C學生成績管理系統課程設計分析方案_第1頁
C學生成績管理系統課程設計分析方案_第2頁
免費預覽已結束,剩余18頁可下載查看

下載本文檔

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

文檔簡介

1、棗莊學院 信息科學與工程學院 課程設計任務書 題目 組 員: _ 崔浩、孫睿、韓豐壯 專 業:網絡工程 課 程:C+C+語言程序設計 指導教師: 馬懷志 職稱: 助 教 完成時間: 20132013 年 5 5 月-20132013 年 6 6 月 棗莊學院信息科學與工程學院制 年 月 日 課程設計任務書及成績評定 課程設計的任務和具體要求(學生根據實際情況填寫) 編寫一個簡單的學生成績管理系統。學生成績管理系統有若干學生成績記 錄組成,每個記錄由學號、姓名、性別和成績四部分組成,學號不超過 11個 字符,姓名不超過21個字符,性別為m (male)或f (female),成績為 double

2、型數據;系統具有添加、顯示查找、記錄、刪除、保存、加載學生成 績記錄,退出學生成績管理系統的功能 指導教師評語 成績:指導教師簽字: 日期: 課程設計所需軟件、硬件等 一臺電腦配備 Visual C+6.0 軟件, 課程設計進度計劃 起止日期 工作內容 備注 6-6 至 6-8 小組收集資料 6-9 組內商量整體規劃課程 設計 6-10 至 6-11 組內分工做各自負責的 工作 6-12 至 6-13. 組內匯總各自所做的成 果 6-14 至 6-15 小組用visualc+6.0 調 試 6-16 撰寫任務書 參考文獻、資料索引 序號 文獻資料名稱 編者者 出版單位 1 C+語言程序設計 溫

3、秀梅、丁學鈞、 李建華 清華大學出版社 2 C+程序設計教程(第二版) 羅建軍等 高等教育出版社 3 百度文庫 未知 未知 、摘要 二、問題描述 . 1摘要 本系統主要用于對學生的成績進行管理。通過本系統,可以將各個學生的成績記錄輸入 到系統中,保存到文件,便于查閱和相關管理。此外,該系統還能實現對學生成績記錄的 顯示,查詢以及插入或刪除學生的成績記錄等功能。 2. 問題描述 編寫一個簡單的學生成績管理系統。學生成績管理系統有若干學生成績記錄組成,每個 記錄由學號、姓名、性別和成績四部分組成,學號不超過 11 個字符,姓名不超過 21 個字 符,性別為m(male)或(female),成績為

4、double 型數據。該系統具有以下功能: 程序開始執行時顯示如下版權信息和主菜單: * 學生成績管理系統 * *1.添加學生成績記錄 *2.顯示學生成績記錄 *3.查找學生成績記錄 *4.刪除學生成績記錄 *5.保存學生成績記錄 *6.加載學生成績記錄 *7.退出學生成績管理系統 * 請輸入 (17): 通過鍵盤輸入數字 17 后,程序能夠執行相應的功能,執行完后回到上述主菜單繼續等 待用戶輸入,輸入數字 7 后退出程序。 選擇“添加學生成績記錄”后,輸入要插入記錄的位置。按程序提示依次輸入學號,姓 名,性別,成績,插入記錄成功。 選擇“顯示學生成績記錄”,顯示學生成績表中已有的學生記錄的個

5、數,并顯示出各個 學生記錄的相關信息。 選擇“查找學生成績記錄”,按提示輸入要查找的學生的學號,輸入學號,若該學號存 在,則輸出相應的學生記錄,如該學號不存在,則按任意鍵返回主菜單。 選擇“刪除學生成績記錄”,按提示輸入要刪除的學生的學號,輸入學號,若改學號存 在,則刪除相應的學生記錄,如果該學號不存在,則按任意鍵返回主菜單。 選擇“保存學生成績記錄”,系統會將已有的學生記錄保存在默認的文件名為 fname.txt 的文件中。 選擇“加載學生成績記錄”,系統會提示輸入文件名,輸入默認的文件名為 fname.txt , 則可將文件中的相關信息導出。 選擇“退出學生成績管理系統”,按任意鍵退出系統

6、。 3. 解決方案 這是一個很實際的編程實例。編程要求很詳細,內容也比較多,有一定難度。首先,學 生成績記錄是一個復雜的數據結構,至少應包括學號,姓名,性別和成績。所以,必須建 立一個類 stude nt,用來記錄學號,姓名,性別和成績。此外還得建立一個類 stuscore,用 來記錄多個學生的成績記錄。 3.1 建立類學生類 student 它至少包括學號 number,姓名 name,性別 sex,成績 chengji。具體如下: class student public: char name21。 /姓名 char number11 。 /學號 char sex。 /性別 double

7、chengji 。 /成績 student *next。 /類指針,用來指向下一個記錄 student()。 void init(string &Name,string &Number,char Sex,double Chengji) 。 /輸入學生成績記錄 virtual student() 。 。 函數 init(string &Name,string &Number,char Sex,double Chengji) 用于輸入學生記錄,相當 于一個注冊。其具體實現如下: void student:init(string &Name,string &a

8、mp;Number,char Sex,double Chengji) int len 。 len=Name.length() 。 if(len20)len=20 。 Name.copy(name,len,0)。 namelen=0。 len=Number.length() 。 if(len10)len=10 。 Number.copy(number,len,0) 。 numberlen=0 。 sex=(sex=m)?m:f) 。 chengji=Chengji 。 3.2 建立學生成績記錄類 stuscore 該類是學生成績記錄的集合。其成員函數則是問題中要求的添加、顯示、查找、刪除、 保存

9、、導出等各種操作。改類具體如下: class stuscore student* head。 public: bool add_record() 。 /添加學生成績記錄 void display_record() 。 /顯示學生成績記錄 int length() 。 /學生成績記錄個數 bool delete_record() 。 /刪除學生成績記錄 void save_record() 。/ 保存學生成績記錄 void load_record() 。 /加載學生成績記錄 bool find_record() 。 /查找學生成績記錄 stuscore()。 virtual stuscore()

10、 。 。 3.3 編寫各個功能的函數實體 3.3.1 添加學生成績記錄 add_record() 建立一個鏈表: bool stuscore:add_record() int i 。 int j=1 。 string Name 。 string Number 。 char Sex。 double Chengji 。 student *newnode,*current,*previous 。 current=previous=head 。 couti 。 if(ilength()+1) cout 輸入的位置不正確 ! 。 return false 。 coutNumber 。 coutName

11、。 coutSex 。 coutChengji 。 newnode=new student() 。 newnode-init(Name,Number,Sex,Chengji) 。 newnode-next=null 。 if(!newnode) coutnext=head。 head=newnode。 return true 。 Else while(current&jnext 。 j+ 。 newnode-next=current 。 previous-next=newnode 。 return true 。 3.3.2 顯示學生成績記錄 display_record() 具體實現如

12、下: void stuscore:display_record() student*current 。 current=head 。 cout 表中有 length() 條記錄 !n 。 if(length() coutsetiosflags(ios:left)setw(15) 學 號 setw(15) 姓 名 setw(12) 性 別 setw(5) 成績 endl 。 while(current) coutnext 。 另外,對 運算符進行了重載,這樣就可以直接用 cout 輸出學生成績記錄,函數重載如 下: ostream&operator(ostream&output,

13、const student *addr) outputsetiosflags(ios:left)setw(15)numbersetw(15)namesetw(12)sexsetw(5)chengjiendl 。 return output 。 3.3.3 查找學生成績記錄 find_record() 具體實現如下: bool stuscore:find_record() student *current,*previous 。 string Number 。 coutNumber 。 current=previous=head 。 while(current) if(current-numbe

14、r=Number) coutsetiosflags(ios:left)setw(15) 學號 setw(15) 姓名 setw(12) 性別 setw(5) 成績 endl 。 coutnext 。 if(!current) cout 沒有找到該學生 ! 。 return false 。 return true 。 3.3.4 刪除學生記錄 delete_record() 具體實現如下: bool stuscore:delete_record() string s。 student*current,*previous 。 current=previous=head 。 cout 成績表中有 l

15、ength() 個學生成績記錄 endl 。 if(!length() cout 學生成績表已空 !n 。 return false 。 else couts 。 while(current) if(current-number=s) if(current=head) head=head-next。 delete current。 coutnext=current-next 。 delete current。 coutnext 。 if(!current) cout 沒有找到該學號所對應的學生記錄 ! 。 return false 。 return true 3.3.5 保存學生成績記錄 sa

16、ve_record() 具體實現如下: void stuscore:save_record() ofstream file 。 student*current=head 。 file.open(./fname.txt,ios:out) 。 if(!file) coutnext 。 cout 保存完成 ! 。 file.close() 。 3.3.6 加載學生成績記錄 load_record() 具體實現如下: void stuscore:load_record() ifstream file 。 char fname20 。 student *n 。 n=new student() 。 cou

17、tfname 。 file.open(fname,ios:in) 。 if(!file) cout 文件打開失敗 ! 。 cin.get() 。 else coutsetiosflags(ios:left)setw(21) 姓名 setw(11) 學號 setw(5) 性 別 setw(5) 成績 endl 。 while(file&file.peek()!=EOF) file.read(char*)n,sizeof(*n) 。 coutnnext 。 j+。 return j 。 四.程序運行結果 4.1 主菜單界面 c* *D: C+4-020840306studenlscares

18、Debufstudent scores- exe 4.2 添加學生成績記錄二 二 二 二 二 二 二 二 統一一 系一一 錄錄錄錄錄錄理- 奪I記記記萼= 聾績績績績績績- J1H - 二一.111.1二二二一.二一二-= 嗨加示找 Ot#岀- 環D:就是你了張亞炬 02084D306C+程設計Debugstudent scores.exe 二 X 二 X 二 二 二 二 二 統一- 系一一 j 錄錄錄錄錄錄理= 膏巾韋記記記記管 星主 ,士 _需青濤書丄 叢成成成成成成 成少一二一一一一二二于二一二一二耳二 41J 尸二 JJ E -上疋1 3 :歸- 丄位。續 尋m顯示學生成績記錄 3 A

19、. 環D:St是你了張亞炬 02084D306C+程設計Debugstudent scores.exe 駆錄錄錄錄錄錄理 S3記記記記記記管 聾績績績績績曹 腭成成成成成成成 nLcrl 二一.二一二rli R瓷HHxHHb 昭加示找岀 協添顯查刪保成績 90 性別 請輸入“r匹 中有丄條記錄t 于號 2840301 主按任意犍繼續 顯示結果為: 4.6 刪除學生成績記錄 環D:就是你了張亞炬 02084D306C+程設計Debugstudent scores.exe 4.5 查找學生成績記錄 c* D:St是你了張亞炬 02084D306C+程設計Debugstudent scores.ex

20、e 1MWA:3 盲駆入要查找的學生的學號= 020840306 學號 208403Q& 主按任意鍵繼續 駆錄錄錄錄錄錄理 S3記記記記記記管 聾績績績績績曹 腭成成成成成成成 nLcrl 二一.二一二rli R瓷HHxHHb 昭加示找岀 協添顯查刪保 - 理己-錄錄錄錄錄韋理 豈耳T韋記記記記管 翳績績績績績竿 r成成成成成成成 成嚴一藝一一一一二二于二一二一一二 昭加示找岀 協添顯查刪保加退 H H H H H H 于號 2U840301 208403Q& 28840616 2BB404A1 20B4O305 按任意鍵繼續 性別 m 成績 請輸入“r沱 中有5條記錄T 成績

21、 90 100 100 88 90 性別 m m f Fl m 薯玲星 名瑩ffi盼3 4.8 保存學生成績記錄 系 Hl 1入 tin _ 沖有5個學生成績記錄 *要刪陟的學生記錄的學號= 920840401 刪除成功?當按任意犍繼續 . c* D:就是你了、張亞炬 02084D306C+程設計Debugstudent scores.exe 3 A. 統 野錄錄錄錄錄錄理 詞記記記記記記管 摯績績績績績F 叢成成成成成成 成2.二 一.111.二 l.llrl 1.二一 一二 昭加刪除記錄后再顯示學生成績記錄 環D:St是你了張亞炬 02084D306C+程設計Debugstudent sc

22、ores.exe 成績 90 100 100 90 性別 Fl 駆錄錄錄錄錄錄理 S3記記記記記記管 聾績績績績績曹 腭成成成成成成成 nLcrl 二一.二一二rli R瓷HHxHHb 昭加示找岀 協添顯查刪保薯玲 名世亞艷濤 姓李張馬溫 請輸入“r匹 中有碌記錄t 于號 2840301 208403Q& 28840616 2酣40305 按任意犍繼續 葆右完成F請按任意鍵繼續 統 系 N N M Mc* D:就是你了、張亞炬 02084D306C+程設計Debugstudent scores.exe 野錄錄錄錄錄錄理 詞記記記記記記管 十翳績第“績績績績 叢成成成成成成 成2.二 一

23、.111.二 l.llrl 1.二一 一二 昭3 A. 寥績績績績績曹 鏟成成成成成成成 2. 1藝.11二一.二一二rli 嗨加示找除存載岀 協添顯查刪保加退 nane 2840301 .txt:fname 性別 txt 成績 90 請按任意鍵繼續 2084030S 90 208061& 馬艷玲 f 100 20840306 弓也亞矩 f 1UH f mj 1 m w-m IH H HI H flFH K H HJ M N-M c* : Dociuent s and Sett incsAdinist rat ar桌面張亞 102084D306C-I-+S代瑪. _ . 統 系 轟g矗 加載學生成

溫馨提示

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

評論

0/150

提交評論