




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) 沈陽(yáng)航空航天大學(xué)課 程 設(shè) 計(jì) 報(bào) 告大作業(yè)名稱:C 語(yǔ)言課程設(shè)計(jì)大作業(yè)題目:學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)院(系):計(jì)算機(jī)學(xué)院專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí):學(xué) 號(hào):姓 名:指導(dǎo)教師:完成日期:2016年12月24日精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)目目 錄錄 2精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第 1 章 概要設(shè)計(jì)1.1 題目的內(nèi)容與要求題目的內(nèi)容與要求內(nèi)容: 學(xué)生成績(jī)信息包括:姓名、學(xué)號(hào)、語(yǔ)文、數(shù)學(xué)、英語(yǔ)。 實(shí)現(xiàn)的主要功能有: 1)信息維護(hù)。包括學(xué)生成績(jī)的輸入、按學(xué)號(hào)刪除、按學(xué)號(hào)修改等。 2) 信息查詢。輸入學(xué)號(hào)或姓名,顯示出該生三個(gè)科目
2、的成績(jī),計(jì)算出三科總分 并顯示,按總分將所有學(xué)生成績(jī)排序,顯示出該生的名次。 3)成績(jī)統(tǒng)計(jì)。先輸入任意一個(gè)科目,接著選擇 a 或 b 來(lái)分別顯示平均分或統(tǒng)計(jì) 分?jǐn)?shù)段學(xué)生,若選擇 a,則直接顯示出該科目的平均分;若選擇 b,則提示 用戶輸入一個(gè)分?jǐn)?shù)段,顯示所有該科目屬于該分?jǐn)?shù)段內(nèi)的學(xué)生信息,并給出 學(xué)生總數(shù)。要求: 1)系統(tǒng)以菜單方式工作。在不同的界面為用戶給出具體提示。 2)系統(tǒng)利用 C 語(yǔ)言實(shí)現(xiàn),源程序要有適當(dāng)?shù)淖⑨尅?3)采用 VC 環(huán)境進(jìn)行運(yùn)行調(diào)試。1.2 總體結(jié)構(gòu)總體結(jié)構(gòu)本程序主要分為七個(gè)模塊(功能模塊圖見圖功能模塊圖見圖 1.1):結(jié)構(gòu)體模塊,輸入模塊,顯示模塊,修改模塊,刪除模塊,
3、查詢模塊,統(tǒng)計(jì)模塊。結(jié)構(gòu)體模塊:建立一個(gè)結(jié)構(gòu)體模塊,為鏈表存信息用。輸入模塊:鍵盤輸入每個(gè)學(xué)生的信息,并保存在文件中。顯示模塊:顯示全部學(xué)生的具體信息。修改模塊:修改某個(gè)學(xué)生的成績(jī)信息。刪除模塊:刪除某個(gè)學(xué)生的全部信息。查詢模塊:查詢某個(gè)學(xué)生的具體信息。統(tǒng)計(jì)模塊:通過(guò)功能選擇,統(tǒng)計(jì)并顯示某一科目精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)的平均分或某分?jǐn)?shù)段學(xué)生的具體信息。 圖圖 1.1 功能模塊圖功能模塊圖第 2 章 詳細(xì)設(shè)計(jì)2.1 主模塊主模塊控制整個(gè)程序的運(yùn)行,控制菜單操作,通過(guò)主函數(shù)模塊分別調(diào)用各個(gè)模塊,實(shí)現(xiàn)各項(xiàng)功能,流程如圖 2.1 所示。 Y N N Y 學(xué)生成績(jī)管理系統(tǒng)顯示模塊修改模
4、塊刪除模塊輸入模塊查詢模塊統(tǒng)計(jì)模塊主模塊 開始 顯示主菜單選 0 退出 執(zhí)行具體功能 顯示結(jié)果 結(jié)束選 1-6精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) 圖圖 2.1 主模塊流程圖主模塊流程圖注釋:1. 顯示主菜單;2. 選擇不同序號(hào)執(zhí)行不同功能;2.2 輸入模塊輸入模塊輸入所有學(xué)生信息并保存,流程如圖 2.2 所示。圖圖 2.2 輸入模塊流程圖輸入模塊流程圖注釋:1. 循環(huán)輸入每個(gè)學(xué)生的信息;2.保存所有信息2.3 顯示模塊顯示模塊 顯示所有學(xué)生的具體信息,流程圖如 2.3 所示。 input()printf(輸入學(xué)號(hào):);printf(輸入姓名:);printf(第%d 門成績(jī)的分?jǐn)?shù):,j
5、+1); 結(jié)束計(jì)算總分、平均分 printf(nn 信息保存成功!恭喜!nn);Print() 顯示信息精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) 圖圖 2.3 顯示模塊流程圖顯示模塊流程圖 注釋:1. 選擇號(hào)好功能;2. 顯示全部學(xué)生的具體信息。2.4 修改模塊修改模塊修改某個(gè)學(xué)生各個(gè)科目的成績(jī),流程圖如 2.4 所示。 Y N 圖圖 2.4 修改模塊流程圖修改模塊流程圖注釋:1. 輸入要修改學(xué)生的學(xué)號(hào);2. 輸入要修改的科目信息;3. 修改成功,是否要繼續(xù)修改。是,繼續(xù);否,回到主菜單。2.5 刪除模塊刪除模塊 結(jié)束xiugai()printf(n 請(qǐng)輸入要修改的同學(xué)的學(xué)號(hào):);print
6、f(n 請(qǐng)輸入要修改學(xué)生修改后的的信息n);是否繼續(xù)修改?結(jié)束printf(n 修改成功!恭喜!n);精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) 按學(xué)號(hào)刪除某學(xué)生的全部信息,流程圖如圖 2.5 所示。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) Y NN 圖圖 2.5 刪除模塊流程圖刪除模塊流程圖注釋:1. 輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào);2. 顯示該生信息,是否刪除。是,刪除;否,是否繼續(xù)操作。3. 是否繼續(xù)刪除。是,重復(fù)上述操作;否,退出回到主菜單。2.6 查詢模塊查詢模塊 輸入要查詢學(xué)生的學(xué)號(hào),顯示該生具體信息,流程圖如圖 2.6 所示。Yshanchu()printf(n 請(qǐng)輸入要?jiǎng)h除的同學(xué)的學(xué)
7、號(hào):); printf(n 該同學(xué)信息如下:n);是否刪除?printf(n 刪除成功!恭喜!n);是否繼續(xù)刪除?結(jié)束Ychaxun()printf(n 請(qǐng)輸入學(xué)生學(xué)號(hào):);顯示該生具體信息是否繼續(xù)查詢?結(jié)束精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) N 圖圖 2.6 查詢模塊流程圖查詢模塊流程圖注釋:1. 輸入要查詢的學(xué)生的學(xué)號(hào);2. 顯示該生的具體信息;3. 是否繼續(xù)查詢。是,繼續(xù)查詢下一位;否,回到主菜單。2.7 統(tǒng)計(jì)模塊統(tǒng)計(jì)模塊 通過(guò)選擇不同功能,顯示某個(gè)科目的平均分或某分?jǐn)?shù)段學(xué)生的具體信息,流程圖如圖 2.7 所示。case a:case b:Y N 圖圖 2.7 統(tǒng)計(jì)模塊流程圖統(tǒng)計(jì)
8、模塊流程圖注釋:1. 通過(guò)菜單選擇科目;2. 通過(guò)菜單選擇 a 或 b 功能,分別顯示該科目平均分或某分?jǐn)?shù)段學(xué)生信息;tongji()printf(n 輸入一個(gè)科目:);選擇功能 a 或b計(jì)算該科目平均分 printf(nn 該科目的平均成績(jī)?yōu)椋?.2fn,ave);printf(n 請(qǐng)輸入分?jǐn)?shù)段:_ 空格_ n);顯示屬于該分?jǐn)?shù)段的學(xué)生;學(xué)生總數(shù)是否繼續(xù)查詢其他科目? 結(jié)束精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)3. 是否繼續(xù)查詢?是,繼續(xù);否,回到主菜單。第 3 章 調(diào)試分析在這次課程設(shè)計(jì)中,程序編寫的過(guò)程中遇到了很多問題,主要是函數(shù)實(shí)現(xiàn)方面問題較多。問題 1:查詢函數(shù) chaxun(
9、)中,會(huì)造成數(shù)據(jù)混亂,原因是 for 循環(huán)中某行代碼運(yùn)用錯(cuò)誤,如下: for(i=0;in;i+) if(stui.num=x) k=i;/*找到要查詢的同學(xué)學(xué)號(hào),并用 k 記下其下標(biāo)*/ OutputOneStudent(k); 將 OutputOneStudent(k);拿出后,查詢功能正常實(shí)現(xiàn)。正確編寫如下: for(i=0;in;i+) if(stui.num=x) k=i;/*找到要查詢的同學(xué)學(xué)號(hào),并用 k 記下其下標(biāo)*/ OutputOneStudent(k); 問題 2:統(tǒng)計(jì)函數(shù) tongji() ,功能實(shí)現(xiàn)完后不能回到主菜單。解決方法是,精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專
10、業(yè)把功能函數(shù) gongneng()其中的 while 循環(huán)刪掉。 第 4 章 使用說(shuō)明運(yùn)行截圖如下:1.輸入成績(jī)2.信息顯示精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)3.修改信息4.刪除信息精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)5.查詢信息6.1 統(tǒng)計(jì)信息-科目平均分6.2 統(tǒng)計(jì)信息-科目某分?jǐn)?shù)段學(xué)生信息精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)7.退出系統(tǒng)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)參考文獻(xiàn)1. 王敬華, C 語(yǔ)言程序設(shè)計(jì)教程(第二版) ,清華大學(xué)出版社,2009 年 8 月2. 譚浩強(qiáng), C 語(yǔ)言程序設(shè)計(jì)教程(第二版) ,清華大學(xué)出版社,1999 年 12 月3. 譚浩強(qiáng)
11、, C 語(yǔ)言程序設(shè)計(jì)題解與上機(jī)指導(dǎo) ,清華大學(xué)出版社,2000 年 11 月4. 田淑清, C 語(yǔ)言程序設(shè)計(jì)輔導(dǎo)與習(xí)題集 ,中國(guó)鐵道出版社,2000 年 1 月5. 張榮梅、梁曉林, Visual C+實(shí)用教程 ,冶金工業(yè)出版社,2004 年附 錄(程序清單)程序代碼:#include#include#include#define N 3struct studentint num; /學(xué)號(hào)char name20; /姓名float score3; /三門課成績(jī)float sum; /總分float aver; /平均分stuN;void menu(); /主菜單功能void input();
12、/輸入信息到結(jié)構(gòu)體中void save(int x); /保存 stud.dat 文件函數(shù)void print(); /輸出顯示所有學(xué)生信息void SaveAllStudent(int n); /保存全部學(xué)生信息void xiugai(int n); /按學(xué)號(hào)修改成績(jī)int shanchu(int n); /按學(xué)號(hào)刪除void OutputOneStudent(int i); /查詢一個(gè)學(xué)生的信息精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)void chaxun(int n); /按學(xué)號(hào)查詢成績(jī)void tongji(); /統(tǒng)計(jì)科目信息void gongneng(int x); /a 或 b
13、 功能分別顯示科目平均分或分?jǐn)?shù)段學(xué)生信息int main() printf(*n); printf(* *n); printf(* Hwadee &學(xué)生成績(jī)管理系統(tǒng)& Hwadee *n); printf(* *n); printf(*nnn); printf(*歡迎使用*n);while(1)menu();return 0;/*主菜單*/void menu()int choice; int n=N; printf(n 請(qǐng)選擇功能:n);printf(n1:輸入成績(jī)n2:顯示信息n3:修改成績(jī)n4:刪除信息n5:查詢成績(jī)n6:成績(jī)統(tǒng)計(jì)n0:退出系統(tǒng)nn);printf(n 請(qǐng)選
14、擇序號(hào):n);scanf(%d,&choice);精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)switch(choice)case 1:input();save(N);break;case 2:print();break;case 3:xiugai(n);break;case 4:shanchu(n);break;case 5:chaxun(n);break;case 6:tongji();break;case 0:printf (n 謝謝使用,再見!nn);exit (-1);break;default:printf(輸入錯(cuò)誤!n);break;/*寫入函數(shù)*/void input()
15、int i,j;printf(n 輸入信息n);for(i=0;iN;i+)printf(輸入學(xué)號(hào):);scanf(%d,&stui.num);printf(輸入姓名:);scanf(%s,&);精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)for(j=0;jN;j+)printf(第%d 門成績(jī)的分?jǐn)?shù):,j+1);scanf(%f,&stui.scorej);stui.sum=stui.score0+stui.score1+stui.score2;stui.aver=stui.sum/3;printf(n);/*寫入文件*/void save(int x
16、) FILE *fp;/*定義文件指針用于向文件讀入數(shù)據(jù)*/ int i; if(fp=fopen(student.dat,rb+)=NULL)/*以二進(jìn)制讀,寫方式打開文件*/ printf(cannot open filen); exit(1); for(i=0;iN;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(file write errorn); fclose(fp); printf(nn 信息保存成功!恭喜!nn);/*顯示全部學(xué)生信息*/void print()int i;printf(學(xué)號(hào) 姓名
17、語(yǔ)文 數(shù)學(xué) 英語(yǔ) 總分 平均分n);for(i=0;iN;i+)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)printf(%d %s %.2f %.2f %.2f %.2f %.2fn,stui.num,,stui.score0,stui.score1,stui.score2,stui.sum,stui.aver);/*保存全部學(xué)生信息*8*/void SaveAllStudent(int n) FILE *fp; if(fp=fopen(student.dat,wb)=NULL) printf(文件打開失敗!n); exit(1); fwrite(stu,sizeof(str
18、uct student),n,fp); fclose(fp);/*修改學(xué)生信息*/void xiugai(int n) struct student temp;int k=-1,x,i; char c1=y; while(c1=y) printf(n 請(qǐng)輸入要修改的同學(xué)的學(xué)號(hào):); scanf(%d,&x); for(i=0;in;i+) if(x=stui.num) k=i;/*找到要修改的同學(xué)學(xué)號(hào),并用 k 記下其下標(biāo)*/ break; if(k0)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) printf(n 輸入學(xué)號(hào)有誤,請(qǐng)重新輸入!); else printf(n 請(qǐng)輸入要修改
19、學(xué)生修改后的的信息n); printf(語(yǔ)文(空格)數(shù)學(xué)(空格)英語(yǔ)tn); scanf(%f %f %f,&temp.score0,&temp.score1,&temp.score2); temp.sum=(temp.score0+temp.score1+temp.score2); temp.aver=(temp.score0+temp.score1+temp.score2)/3;stuk.score0=temp.score0;/*修改該學(xué)生信息*/ stuk.score1=temp.score1; stuk.score2=temp.score2;stuk.sum=t
20、emp.sum;stuk.aver=temp.aver;printf(n 修改成功!恭喜!n); break; SaveAllStudent(k); printf(n 繼續(xù)修改操作嗎?); printf(n 繼續(xù)修改請(qǐng)按 y;不進(jìn)行修改請(qǐng)按 nn);getchar(); c1=getchar(); printf(n 按任意鍵繼續(xù)!n); getchar();/*刪除學(xué)生信息*/int shanchu(int n) int i,k=-1,x; char c1=y,c2; while(c1=y)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) c2=n; printf(n 請(qǐng)輸入要?jiǎng)h除的同學(xué)的學(xué)號(hào):);
21、 scanf(%d,&x); for(i=0;in;i+) if(x=stui.num) k=i;/*找到要?jiǎng)h除的同學(xué)學(xué)號(hào),并用 k 記下其下標(biāo)*/ break; if(k0) printf(n 輸入學(xué)號(hào)有誤,請(qǐng)重新輸入!); else printf(n 該同學(xué)信息如下:n); OutputOneStudent(k); printf(nn 確定刪除?n); printf(確定進(jìn)行刪除請(qǐng)按 y;不進(jìn)行刪除請(qǐng)按 nn);getchar();c2=getchar(); if(c2=y) for(i=k;i3|x1) break; 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) for(i=0;i
22、n;i+) if(stui.num=x) k=i;/*找到要查詢的同學(xué)學(xué)號(hào),并用 k 記下其下標(biāo)*/ OutputOneStudent(k); stux-1.num=1; /該生排名 for(j=0;jstux-1.sum)stux-1.num+; printf(n 該生排名為第%d 名。n,stux-1.num); printf(nn 繼續(xù)查詢其他學(xué)生信息嗎?); printf(n 繼續(xù)查詢請(qǐng)按 y;不進(jìn)行查詢請(qǐng)按 nn);getchar(); c=getchar(); printf(n 按任意鍵繼續(xù)!n); getchar();/*學(xué)生信息統(tǒng)計(jì)操作*/void tongji()char c
23、=y; while(c=y) int x; printf(n 輸入一個(gè)科目:); printf(nn1:語(yǔ)文n2:數(shù)學(xué)n3:英語(yǔ)n0:退出); printf(nn 請(qǐng)選擇序號(hào):); scanf(%d,&x);精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) if(x0&x6) switch(x) case 1: gongneng(x);break; case 2: gongneng(x);break; case 3:gongneng(x);break; case 0: exit (-1); break; default: printf(輸入錯(cuò)誤!n); printf(nn 繼續(xù)查詢其他科目信息嗎?); printf(n 繼續(xù)查詢請(qǐng)按 y;不進(jìn)行查詢請(qǐng)按 nn);getchar(); c=getchar();/*選擇 a 或 b 來(lái)分別顯示該科平均分或統(tǒng)計(jì)分?jǐn)?shù)段學(xué)生*/void gongneng(int x) printf(nn 請(qǐng)選擇功能:n); printf(na:顯示該科目平均分nb:統(tǒng)計(jì)分?jǐn)?shù)段學(xué)生n); printf(n 請(qǐng)選擇 a 或 b:);char c; scanf(%s,&c);switch(c)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度月子中心產(chǎn)后恢復(fù)中心合作框架協(xié)議
- 中國(guó)廣電手機(jī)產(chǎn)品白皮書2025年版
- 2025年度儲(chǔ)能設(shè)備箱涵項(xiàng)目施工臨時(shí)照明勞務(wù)分包合同
- 2025年發(fā)酵類制品項(xiàng)目建議書
- 2025年鉆采裝備項(xiàng)目發(fā)展計(jì)劃
- 2025年青霉素類抗菌藥物合作協(xié)議書
- 如何將個(gè)人成長(zhǎng)納入月度工作計(jì)劃
- 學(xué)生發(fā)展報(bào)告與個(gè)案分析計(jì)劃
- 如何開展班級(jí)傳統(tǒng)文化教育計(jì)劃
- 幼兒閱讀推廣計(jì)劃
- 中國(guó)氫內(nèi)燃機(jī)行業(yè)發(fā)展環(huán)境、市場(chǎng)運(yùn)行格局及前景研究報(bào)告-智研咨詢(2024版)
- 2025年人教版英語(yǔ)五年級(jí)下冊(cè)教學(xué)進(jìn)度安排表
- 學(xué)校食堂餐廳管理者食堂安全考試題附答案
- 同等學(xué)力英語(yǔ)申碩考試詞匯(第六版大綱)電子版
- 2024義務(wù)教育道德與法治課程標(biāo)準(zhǔn)(2022版)
- 中日合同范本
- T-CARM 002-2023 康復(fù)醫(yī)院建設(shè)標(biāo)準(zhǔn)
- 《康復(fù)按摩知識(shí)》課件
- 立式加工中心說(shuō)明書
- 唐納森焊煙除塵器(共22頁(yè))
- 教育培訓(xùn)管理辦法
評(píng)論
0/150
提交評(píng)論