C++課程設計 學生選修課選課管理系統(tǒng)_第1頁
C++課程設計 學生選修課選課管理系統(tǒng)_第2頁
C++課程設計 學生選修課選課管理系統(tǒng)_第3頁
C++課程設計 學生選修課選課管理系統(tǒng)_第4頁
C++課程設計 學生選修課選課管理系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 程序設計基礎課程設計報告程序設計基礎課程設計報告 學生選修課管理系統(tǒng)學生選修課管理系統(tǒng) 專專 業(yè):業(yè): 電子信息工程電子信息工程 班班 級:級: 20072007 級級 1 1 班班 學學 號:號: 20070820242007082024 姓姓 名:名: 孫孫 曉曉 東東 指導教師:指導教師: 常常 耀耀 輝輝 二二 oooo 八八 年年 六月三十日六月三十日 - 1 - 目目 錄錄 一、一、 編程目的: 1 二、二、 設計要求: 1 三、三、 函數主體說明:.1 四、四、 運行結果.9 五、五、 流程圖: .10 六、六、 總結:10 參考數目: 11 一、一、編程目的:編程目的: 建立

2、一學生選修課選課管理系統(tǒng),并對它進行輸入、輸出、查詢、選課等操 作。 二、二、設計要求設計要求: 1.系統(tǒng)以菜單方式工作 2.課程信息錄入功能(課程信息用文件保存)輸入 3.課程信息瀏覽功能輸出 4.查詢功能:(至少一種查詢方式)算法 5.按學分查詢 - 2 - 6.按課程性質查詢 7.學生選修課程(可選項) 三、三、函數主體說明函數主體說明: #include #include #include #include using namespace std; class course public: void input() coutnumber; coutcourse_name; coutco

3、urse_kind; couttotal_time; coutlearn_time; couttime; coutcredit_hour; coutcourse_time; void input_1(ifstream void display() coutnumbersetw(12)course_namesetw(5)course_kindsetw(1 0) total_timesetw(10)learn_timesetw(10)timesetw(13)credit_hour setw(12)course_timeendl; void display(ofstream friend class

4、 class_array; - 3 - private: int num; / 學號學號 int number; / 編號編號 char course_name40; / 課程名稱課程名稱 char course_kind10; / 課程性質課程性質 int total_time; / 總學時總學時 int learn_time; / 授課學時授課學時 int time; / 實驗或上機學時實驗或上機學時 int credit_hour; / 學分學分 char course_time40; / 開課學期開課學期 ; class student public: void input() cou

5、tnum; coutname; void input_1(ifstream void display() cout學號學號:numsetw(14)姓名姓名:nameendl; void display_1(ofstream if(pb+i)-num=-1) break; else ji(pb+i)-name; l+; ji.close(); class_array(int a) / 建立學生課程建立學生課程 course 數組數組 int i; l=0; ji.open(course.txt,ios:in); p=new course30; for(i=0;i+) ji(p+i)-number

6、; if(p+i)-number=-1) break; else (p+i)-input_1(ji); l+; ji.close(); class_array(int a,int b) / 建立學生已選課的建立學生已選課的 course1 數組數組 int i; l=0; ji.open(course1.txt,ios:in); p=new course20; for(i=0;i+) ji(p+i)-num; if(p+i)-num=-1) break; else ji(p+i)-number; (p+i)-input_1(ji); l+; - 5 - ji.close(); void dis

7、play() / 輸出輸出 student 數組數組 int i; for(i=0;idisplay(); void display_1() / 輸出輸出 course 數組數組 int i; cout編號編號 課程名稱課程名稱 課程性質課程性質 總學時總學時 授課學時授課學時 實驗或上機學實驗或上機學 時時 學分學分 開課學期開課學期endl; for(i=0;idisplay(); void input() / course 課程信息錄入功能課程信息錄入功能,b 調用調用 (p+l)-input(); / 在數組最后增加數據在數組最后增加數據 l+; void find_credit_ho

8、ur() / 按學分查詢按學分查詢 int k,i; coutk; for(i=0;icredit_hour=k) (p+i)-display(); void find_course_kind() / 按課程性質查詢按課程性質查詢 char a20; int i; couta; for(i=0;icourse_kind,a)=0) (p+i)-display(); void find(class_array - 6 - course *b=c.p; coutk; for(i=0;inum=k) (pb+i)-display(); cout編號編號 課程名稱課程名稱 課程性質課程性質 總學時總學

9、時 授課學時授課學時 實驗或上機學時實驗或上機學時 學分學分 開課學期開課學期endl; for(i=0;inum=k) (b+i)-display(); course find_number() / 按課程編碼查詢按課程編碼查詢,b 調用調用 int k,i; coutk; for(i=0;inumber=k) break; return *(p+i); int total_credit(int i) / 計算某學生的總學分計算某學生的總學分,c 調用調用 int k,j=0; for(k=0;kl;k+) if(pk.num=i) j=j+pk.credit_hour; return j;

10、 void choose(class_array course p1; couti; b.display_1(); for(;) p1=b.find_number(); / 選課選課 p1.num=i; / 將學號填到數據中將學號填到數據中 pl=p1; / 將節(jié)點填到將節(jié)點填到 c 鏈表中鏈表中 l+; k=total_credit(i); / 計算學號為計算學號為 i 的總學分的總學分 - 7 - if(k=8) cout請繼續(xù)選課請繼續(xù)選課; else cout你的學分已超過你的學分已超過 8 分分!endl; break; void save() / student.txt保存文件函數

11、保存文件函數 int i,k=-1; jb.open(student.txt,ios:out); if(!jb) cout錯誤錯誤endl; exit(1); for(i=0;idisplay_1(jb); jbk; jb.close(); void save_1() / course.txt保存文件函數保存文件函數 int i,k=-1; jb.open(course.txt,ios:out); if(!jb) cout錯誤錯誤endl; exit(1); for(i=0;idisplay(jb); jbk; jb.close(); void save_2() / course1.txt保存

12、函數保存函數 int i,k=-1; jb.open(course1.txt,ios:out); if(!jb) cout錯誤錯誤endl; exit(1); for(i=0;il;i+) - 8 - jbnumdisplay(jb); jbk; jb.close(); private: course *p; / course 數組地址數組地址 student *pb; / student 數組地址數組地址 ifstream ji; / 輸入流輸入流 ofstream jb; / 輸出流輸出流 int l; / 長度長度 ; int main() class_array a,b(1),c(1,

13、2); int i,j; cout-學生選修課課程系統(tǒng)設計學生選修課課程系統(tǒng)設計-endl; for(;) cout1 新課程信息輸入新課程信息輸入 2 課程信息瀏覽課程信息瀏覽 3 查詢功能查詢功能 4 選課選課 5 結束結束 endl; couti; if(i=1) cout-新課程信息輸入新課程信息輸入-endl; b.input(); else if(i=2) cout-課程信息瀏覽課程信息瀏覽-endl; b.display_1(); else if(i=3) cout-查詢功能查詢功能-endl; cout1 學分查詢學分查詢 2 課程性質查詢課程性質查詢 3 學生選修課程學生選修

14、課程endl; coutj; if(j=1) cout-學分查詢學分查詢-endl; b.find_credit_hour(); else if(j=2) cout-課程性質查詢課程性質查詢-endl; b.find_course_kind(); else if(j=3) - 9 - cout-學生選修課程學生選修課程-endl; a.find(c); else if(i=4) c.choose(b); else if(i=5) break; else cout無效輸入無效輸入endl; a.save(); b.save_1(); c.save_2(); return 0; 四、四、運行結果運

15、行結果 - 10 - 五、五、流程圖:流程圖: - 11 - 開始 選擇功能 課程信息瀏覽 選課查詢功能課程錄入結束 輸入課程信息 瀏覽 以選課程信息瀏覽進行選課 1 2 34 5 5 5 5 5 六、六、總結總結: 剛開始選題的時候就覺得這題有點難度,覺得不怎么好入手。首先是 以菜單方式展開,就覺得怎么這么難。做的時候,就覺得更難了。其次是 把一些以前分開再的小題目合起來,就覺得又難了許多。從未編過這樣的 程序,就覺得僅這個就挺嚇人的。其中,有些函數就沒應用過,比如那輸 入/輸出引用函數,見都沒見過,幸好有師兄們的幫忙,才能把程序弄完, 這也覺得自己什么也沒學懂,也是我覺得自己與別人的差距,通過這次的 設計我也覺得自己又有一點新的收獲,也了解了為什么學這門課程了,對 其有了新認識。在做程序設計前還必須把書本上的基本知識搞懂,程序設 - 12 - 計會用到書中的類做,對類的理解也不是很到位,一些概念的知識還沒有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論