C++學生成績管理系統(tǒng)_第1頁
C++學生成績管理系統(tǒng)_第2頁
C++學生成績管理系統(tǒng)_第3頁
C++學生成績管理系統(tǒng)_第4頁
C++學生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、課程:C+課程設(shè)計課程設(shè)計題目:學生成績管理系統(tǒng)班級學號:電信S2009-5-17姓名:寧思敏指導老師:劉曼春日期:2010年12月29號目 錄一、系統(tǒng)總體框架二、功能分析三、模塊設(shè)計與分析四、類的設(shè)計與分析五、特色算法分析六、特色算法七、存在的不足八、使用說明一、系統(tǒng)總體框架主菜單輸入學生資料模塊輸出學生資料模塊查找并顯示學生資料模塊按學生姓名查找刪除學生資料模塊添加學生資料模塊按學生姓名排列模塊從文件中讀入數(shù)據(jù)模塊儲存學生資料并退出系統(tǒng)模塊按學生姓名查找修改學生資料模塊二、功能分析“學生成績管理系統(tǒng)”包括九個模塊:輸入學生資料,輸出學生資料,學生姓名按順序排列,添加學生資料,按姓名查找,刪

2、除該學生資料,查找并顯示學生資料,按姓名查找,修改該學生資料,從文件中讀入數(shù)據(jù),儲存學生資料并退出系統(tǒng)。這九個模塊既相互聯(lián)系又相互獨立。本系統(tǒng)根據(jù)學生成績管理的需要,而建立一個“學生成績管理系統(tǒng)”,以方便對成績的各項管理操作。本系統(tǒng)能對成績進行輸入和輸出;能按姓名對學生進行排序,并顯示學生資料、成績等,不過得以系統(tǒng)輸入學生資料、成績?yōu)榍疤?;能添加學生成績資料;能根據(jù)學生的姓名來查詢該學生的成績資料,并修改或是刪除該學生信息;能夠從文件中讀取學生信息,并且添加到系統(tǒng)中;能把對系統(tǒng)所進行的操作進行保存,以及時更新系統(tǒng)中的數(shù)據(jù)。三、模塊設(shè)計與分析(1)輸入學生資料模塊:主要功能用來對學生的成績進行收

3、集和輸入。在學生信息保存在系統(tǒng)中的前提下,成績錄入需要輸入學生資料,比如班級,學號,姓名。在準確輸入學生資料后,就可以對該學生的各科成績進行錄入。該學生各科成績輸入成功后,系統(tǒng)會提示是否繼續(xù)進行操作,如果想繼續(xù)輸入學生成績就輸入y,不想再輸入學生成績的話就輸入n,再輸入n之后,系統(tǒng)返回到主菜單。(2)輸出學生資料模塊:主要功能用來對學生的成績進行輸出。在系統(tǒng)已經(jīng)錄入了學生資料成績的前提下,使用該功能可以顯示所有學生的信息,資料等等。具體包括學生的班級,學號,姓名和各科成績。在查看學生的資料,成績各方面的信息后,按任意鍵就可以返回到主菜單。(3) 按學生姓名進行排列模塊:主要功能是用來對學生的資

4、料按姓名進行排序。在系統(tǒng)保存學生資料,成績的前提下,使用此功能可以對學生的資料按姓名進行排序,這樣就方便查找姓氏相同或是相近的同學的資料。(4) 添加學生資料模塊:主要功能是用來添加學生資料,成績。如果系統(tǒng)有保存學生資料的情況下,想錄入學生成績的話,就不用添加學生資料這模塊。如果系統(tǒng)沒有保存該學生信息的話,就要使用此模塊,在成功添加學生資料后,就可以對該學生進行其他的操作。(5)按姓名查找,刪除該學生資料模塊:主要功能是用來刪除學生資料。在系統(tǒng)保存學生資料的前提下,想刪除某學生的資料,可以輸入學生姓名,系統(tǒng)查找該學生資料后,就可以刪除了。由于學生輟學,畢業(yè)等原因,及時對系統(tǒng)進行更新,刪除一些沒

5、用的信息,可以使系統(tǒng)更加優(yōu)化。(6)查找并顯示學生資料模塊:主要功能是用來查找學生資料。在系統(tǒng)保存了某學生資料的前提下,想要查找該學生資料,可以輸入該學生姓名,這樣系統(tǒng)就會顯示該學生資料和各科成績等信息。(7)按姓名查找,修改學生資料模塊:主要功能是用來修改學生資料。在系統(tǒng)保存了某學生資料的前提下,想要查找該學生資料,可以輸入該學生姓名,系統(tǒng)就會顯示該學生資料和各科成績等信息,這樣就可以修改該學生的資料,成績等信息。(8)從文件中讀入數(shù)據(jù)模塊:主要功能是用來從文件中讀入學生數(shù)據(jù)。由于一些資料可以用Word文檔或Excel表格輸入,故在此模塊中增加了導入數(shù)據(jù)的功能。這樣就方便很多,不用把學生資料

6、一個一個添加,節(jié)省了很多時間精力。(9)儲存學生資料并退出系統(tǒng)模塊:主要功能是用來儲存學生資料。在對系統(tǒng)進行一系列操作,比如添加、刪除、修改學生資料后,對系統(tǒng)的最新操作進行保存,及時更新系統(tǒng),方便下一次的操作。四、類的設(shè)計與分析Student類類圖如下studentsmummummummummummummumtypedef classpublic:char num10;char cla10;char name20;char byyl10;char jsjzc20;char sjk10;char jsjyy20;char jsdl20;Student;student類說明表如下名稱屬性說明num

7、數(shù)據(jù)成員說明學生學號cla數(shù)據(jù)成員說明學生班級name數(shù)據(jù)成員說明學生名字byyl數(shù)據(jù)成員說明學生數(shù)據(jù)結(jié)構(gòu)成績jsjzc數(shù)據(jù)成員說明學生離散數(shù)學成績sjk數(shù)據(jù)成員說明學生大學物理成績jsjyy數(shù)據(jù)成員說明學生大學英語成績Jssl數(shù)據(jù)成員說明學生模擬電路成績五、特色算法分析功能:定義菜單函數(shù),通過輸出函數(shù)顯示系統(tǒng)功能。利用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)。算法思路:switch語句的執(zhí)行流程是:首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比較,若圓括號中表達式的值與某個case后面的常量表達式的值相等,就執(zhí)行此case后面的語句,執(zhí)行后遇break語句就

8、退出switch語句。代碼:void main() /主函數(shù)調(diào)用。int n=0;for(;)switch(menu()case 1:coutsetw(15) 輸入學生資料endl;n=Input(stu,n);break;case 2:coutsetw(15) 輸出所有學生資料endl;Display(stu,n);break;case 3:coutsetw(15) 按姓名排序endl;Sort(stu,n);coutsetw(15) ;system(pause);break;case 4:coutsetw(15) 插入學生資料endl;n=Insert(stu,n);coutsetw(15

9、) ;system(pause);break;case 5:coutsetw(15) 刪除學生資料endl;coutsetw(15) 輸入他(她)的姓名:;n=Delete(stu,n);coutsetw(15) ;system(pause);break;case 6:coutsetw(15) 查找學生endl;Query(stu,n);coutsetw(15) ;system(pause);break;case 7:coutsetw(15) 修改學生資料endl;coutsetw(15) 輸入你要修改的學生的姓名:;n=Xiugai(stu,n);system(pause);break;ca

10、se 8:coutsetw(15) 從文件中讀入數(shù)據(jù)endl;n=AddfromText(stu,n);break;case 0:coutsetw(15) 將所有資料寫入文件endl;WritetoText(stu,n);coutsetw(15) ;system(pause);break;六、功能測試學生成績管理系統(tǒng)主菜單頁面輸入學生資料模塊頁面輸出學生資料模塊頁面按學生姓名進行排列模塊頁面添加學生資料模塊頁面按姓名查找,刪除該學生資料模塊頁面查找并顯示學生資料模塊情況頁面按姓名查找,修改學生資料模塊頁面從文件中讀入數(shù)據(jù)模塊頁面儲存學生資料并退出系統(tǒng)模塊頁面七、源程序代碼#include#in

11、clude#include#include#include#include#includeusing namespace std;typedef classpublic:char num10;char cla10;char name20;char byyl10;char jsjzc20;char sjk10;char jsjyy20;char jsdl20;Student;Student stu80;int menu()char c;for(;c8;)system(cls);cout 歡迎使用本學生成績管理系統(tǒng)!endl;cout ;coutendl;cout* 學生成績管理系統(tǒng) * endl

12、;coutsetw(32) 1.輸入學生資料endl;coutsetw(32) 2.輸出學生資料endl;coutsetw(32) 3.按學生姓名進行排列endl;coutsetw(32) 4.添加學生資料endl;coutsetw(32) 5.按姓名查找,刪除該學生資料endl;coutsetw(32) 6.查找并顯示學生資料endl;coutsetw(32) 7.按姓名查找,修改該學生資料endl;coutsetw(32) 8.從文件中讀入數(shù)據(jù)endl;coutsetw(32) 0.儲存學生資料并退出系統(tǒng)endl;coutsetfill(=)setw(48)=endl;coutsetw(1

13、5) ;cout請選擇(0-8):;c=getchar();return(c-0);int Input(Student stud,int n) /輸入數(shù)據(jù)。int i=0;char sign,x10;for(;sign != n & sign != N;)coutsetw(15) studn+i.cla;coutsetw(15) studn+i.num;coutsetw(15) studn+;coutsetw(15) studn+i.byyl;coutsetw(15) studn+i.jsjzc;coutsetw(15) studn+i.sjk;coutsetw(15) studn

14、+i.jsjyy;coutsetw(15) studn+i.jsdl;gets(x);coutsetw(10) ;cout&sign;i+;return(n+i);void Display(Student stud, int n) /輸出數(shù)據(jù)。int i;coutsetw(15) setfill(-)setw(65)-endl;coutsetw(15) 班級 學號 姓名 數(shù)據(jù)結(jié)構(gòu) 離散數(shù)學 大學物理 大學英語 模擬電路endl;coutsetw(15) ;coutsetfill(-)setw(65)-endl;for(i=1;i1 & i%10=0)coutsetw(15) setfill(-

15、)setw(35)-endl;coutsetw(15) ;system(pause);coutsetw(15) setfill(-)setw(35)-endl;coutsetw(15) ;system(pause);void Sort(Student stud,int n) /按名字排序。int i,j;char t20;for(i=0;in-1;i+)for(j=0;j0)strcpy(t,studj+1.cla);strcpy(studj+1.cla,studj.cla);strcpy(studj.cla,t);strcpy(t,studj+1.num);strcpy(studj+1.nu

16、m,studj.num);strcpy(studj.num,t);strcpy(t,studj+1.name);strcpy(studj+1.name,);strcpy(,t);strcpy(t,studj+1.byyl);strcpy(studj+1.name,studj.byyl);strcpy(studj.byyl,t);strcpy(t,studj+1.jsjzc);strcpy(studj+1.name,studj.jsjzc);strcpy(studj.jsjzc,t);strcpy(t,studj+1.sjk);strcpy(studj+1

17、.name,studj.sjk);strcpy(studj.sjk,t);strcpy(t,studj+1.jsjyy);strcpy(studj+1.name,studj.jsjyy);strcpy(studj.jsjyy,t);strcpy(t,studj+1.jsdl);strcpy(studj+1.name,studj.jsdl);strcpy(studj.jsdl,t);coutsetw(15) 排序成功!endl;int Insert(Student stud,int n) /插入一條學生信息。char x10;coutsetw(15) studn.cla;coutsetw(15)

18、 studn.num;coutsetw(15) ;coutsetw(15) studn.byyl;coutsetw(15) studn.jsjzc;coutsetw(15) studn.sjk;coutsetw(15) studn.jsjyy;coutsetw(15) studn.jsdl;gets(x);n+;coutsetw(15) 插入成功!s;while(strcmp(,s)!=0&in) i+; /*查找判斷*/if(i=n)printf(ttt沒有發(fā)現(xiàn)該學生資料!n); /*返回失敗信息*/return(n);for(j=i;jn-1;j+)

19、 /*刪除操作*/strcpy(studj.num,studj+1.num);strcpy(,studj+1.name);strcpy(studj.cla,studj+1.cla);strcpy(studj.byyl,studj+1.byyl);strcpy(studj.jsjzc,studj+1.jsjzc);strcpy(studj.sjk,studj+1.sjk);strcpy(studj.jsjyy,studj+1.jsjyy);strcpy(studj.jsdl,studj+1.jsdl);coutsetw(15) 當前信息已刪除成功!endl; /*返回成功信息

20、*/return(n-1);void Query(Student stud,int n) /按名字查找信息char s20;int i=0;coutsetw(15) s;while(strcmp(,s)!=0&in)i+; /*查找判斷*/if(i=n)printf(ttt沒有發(fā)現(xiàn)該學生資料!n); /*輸入失敗信息*/return;coutsetw(15) 學號:studi.numendl;coutsetw(15) 數(shù)據(jù)結(jié)構(gòu):studi.byylendl;coutsetw(15) 離散數(shù)學:studi.jsjzcendl;coutsetw(15) 大學物理:studi.s

21、jkendl;coutsetw(15) 大學英語:studi.jsjyyendl;coutsetw(15) 模擬電路:studi.jsdlendl;int Xiugai(Student stud,int n) /修改信息。n=Delete(stud,n);coutsetw(15) 輸入你要修改的學生資料endl;n=Insert(stud,n);coutsetw(15) 修改完成endl;return(n);int AddfromText(Student stud, int n) /從文件中讀入數(shù)據(jù)。int i=0,num;FILE *fp;char filename20;coutsetw(1

22、5) filename;if(fp=fopen(filename,rb)=NULL)coutsetw(15) 無法打開文件endl;coutsetw(15) ;system(pause);return(n);fscanf(fp,%d,&num);for(;inum;)fscanf(fp,%s%s%s%s%s%s%s,studn+i.cla,studn+i.num,studn+,studn+i.byyl,studn+i.jsjzc,studn+i.sjk,studn+i.jsjyy,studn+i.jsdl);i+;n+=num;fclose(fp);coutsetw(15) 讀入成

23、功!endl;coutsetw(15) ;system(pause);return(n);void WritetoText(Student stud,int n) /將所有記錄寫入文件。int i=0;FILE *fp;char filename20;coutsetw(15) 將資料輸入文件endl;coutsetw(15) filename;if(fp=fopen(filename,w)=NULL)coutsetw(15) 無法打開文件endl;system(pause);return;fprintf(fp,%dn,n);for(;in;)fprintf(fp,%-6s%-5s%-5s%-5

24、s%-5s%-5s%-5sn,studi.cla,studi.num,,studi.byyl,studi.jsjzc,studi.sjk,studi.jsjyy);i+;fclose(fp);coutsetw(15) 輸入成功!endl;int b;coutsetw(15) 請確定是否退出系統(tǒng):endl;coutsetw(15) 0.退出系統(tǒng)endl;coutsetw(15) 1.返回b;if(b=0)coutsetw(15) 謝謝使用!endl;coutsetw(15) ;system(pause);exit(0);void main() /主函數(shù)調(diào)用。int n=0;for(;)switch(menu()case 1:coutsetw(15) 輸入學生資料endl;n=Input(stu,

溫馨提示

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

評論

0/150

提交評論