C語(yǔ)言課程設(shè)計(jì)-學(xué)生綜合測(cè)評(píng)系統(tǒng)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)-學(xué)生綜合測(cè)評(píng)系統(tǒng)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)-學(xué)生綜合測(cè)評(píng)系統(tǒng)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)-學(xué)生綜合測(cè)評(píng)系統(tǒng)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)-學(xué)生綜合測(cè)評(píng)系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告課程名稱(chēng) C語(yǔ)言程序設(shè)計(jì)課題名稱(chēng) 學(xué)生綜合測(cè)評(píng)系統(tǒng)專(zhuān)業(yè) 通信工程班級(jí) 1503學(xué)號(hào)2015014109, 2015014128姓名湯華貝,余旭升,郭夢(mèng)婷,雍甜甜指導(dǎo)教師 毛德梅編寫(xiě) 2016 年6月需求分析一、問(wèn)題描述:每個(gè)學(xué)生的信息為:學(xué)號(hào)、姓名、性別、家庭住址、聯(lián)系電話(huà)、語(yǔ)文、數(shù)學(xué)、外語(yǔ)三門(mén)單科成績(jī)、考試平均成績(jī)、考試名 次、同學(xué)互評(píng)分、品德成績(jī)、任課教師評(píng)分、綜合測(cè)評(píng)總分、綜合測(cè)評(píng)名次??荚嚻骄煽?jī)、同學(xué)互評(píng)分、品德成績(jī)、任課教 師評(píng)分分別占綜合測(cè)評(píng)總分的 60%, 10%, 10%, 20%。二、功能描述:A、學(xué)生信息處理(1)輸入學(xué)生信息、學(xué)號(hào)、姓名、性別、家庭住址、聯(lián)系

2、電話(huà),按學(xué)號(hào)以小到大的順序存入文件中。提示:學(xué)生信息可先輸入到數(shù)組中,排序后可寫(xiě)到文件中。(2)插入(修改)同學(xué)信息:提示:先輸入將插入的同學(xué)信息,然后再打開(kāi)源文件并建立新文件,把源文件和輸入的信息合并到新文件中(保持按學(xué)號(hào)有序)若存在該同學(xué)則將新記錄內(nèi)容替換源內(nèi)容,(3)刪除同學(xué)信息:提示:輸入將刪除同學(xué)號(hào),讀出該同學(xué)信息,要求對(duì)此進(jìn)行確認(rèn),以決定是否刪除將刪除后的信息寫(xiě)到文件中。(4)瀏覽學(xué)生信息:提示:打開(kāi)文件,顯示該文件的學(xué)生信息。B、學(xué)生數(shù)據(jù)處理:(1)按考試科目錄入學(xué)生成績(jī)并且按公式:考試成績(jī)=(語(yǔ)文+數(shù)學(xué)+外語(yǔ))/3計(jì)算考試成績(jī),并計(jì)算考試名次,提示:先把學(xué)生信息讀入數(shù)組,然后按

3、提示輸入每科成績(jī),計(jì)算考試成績(jī),求出名次,最后把學(xué)生記錄寫(xiě)入一個(gè)文件中。(2)學(xué)生測(cè)評(píng)數(shù)據(jù)輸入并計(jì)算綜合測(cè)評(píng)總分及名次。提示:綜合測(cè)評(píng)總分=(考試成績(jī)) *0.6+ (同學(xué)互評(píng)分)*0.1+品德成績(jī)*0.1 +任課老師評(píng)分*0.2。(3)學(xué)生數(shù)據(jù)管理提示:輸入學(xué)號(hào),讀出并顯示該同學(xué)信息,輸入新數(shù)據(jù),將改后信息寫(xiě)入文件(4)學(xué)生數(shù)據(jù)查詢(xún):提示:輸入學(xué)號(hào)或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來(lái)。C、學(xué)生綜合信息輸出提示:輸出學(xué)生信息到屏幕。1、數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類(lèi)型數(shù)組2、數(shù)據(jù)庫(kù)結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫(kù)。學(xué)號(hào)姓名考試成績(jī)?cè)u(píng)分CharCharstructint第3頁(yè)共24頁(yè)二總體設(shè)計(jì)方案1.

4、總體流程圖三程序源代碼#include<stdio.h>#include<stdlib.h>#define N 100void init();char welcome();void InputInfo();void view();void xiugai();void DeleteInfo();void paiming1(struct student_info student);void paiming2(struct student_info student);void ViewAll();void clean();void PaimingView();void exi

5、ts();struct student_info input();void SortInfo(struct student_info student);void ViewInfo(struct student_info *sp);void SaveStruct(struct student_info *sp,int size,int n,char filename20); void LoadStruct(struct student_info *sp,int size,int n,char filename20);void SaveInt(int *p,int size,int n,char

6、filename20);void LoadInt(int *p,int size,int n,char filename20);int NumExist(struct student_info student,int num);struct student_infoint num;/學(xué)號(hào)char name6;/姓名char sex5;/ 性別char adress20;/家庭住址char tel10;/電話(huà)int chinese,math,english,huping,pingde,jiaoping,paiming1,paiming2;/ 語(yǔ)文 數(shù)學(xué) 英語(yǔ)互評(píng) 品德教評(píng)double ave,z

7、hongping;struct student_info studentN;int counter,PM;void main()char select;init(); / 調(diào)用初始化函數(shù)while(1)select=welcome();第 20 頁(yè) 共 24 頁(yè)switch(select)case '1': system("cls");case '2': system("cls");case '3': system("cls");case '4': system(&quo

8、t;cls");InputInfo(); break;view(); break;xiugai(); break;DeleteInfo(); break;/選項(xiàng)1:輸入學(xué)生信息/ / 選項(xiàng) 2: 瀏覽學(xué)生信息/選項(xiàng)3:修改學(xué)生信息/選項(xiàng)4:刪除學(xué)生信息case '5': system("cls"); paiming1(student);paiming2(student);PM=1;getchar();getchar(); system("cls"); break;case '6': system("cl

9、s"); ViewAll();break;case '7': system("cls"); clean();break;case '8': system("cls"); PaimingView();break;case '0': system("cls"); exits(); break;/ 選項(xiàng) 5: 學(xué)生信息排名/ 選項(xiàng) 6: 瀏覽全部學(xué)生信息/ 選項(xiàng) 7: 清除所有信息/ 選項(xiàng) 8: 查詢(xún)排名/ 選項(xiàng) 9: 退出void init()FILE *fp;fp=fopen(&

10、quot;counter.dat","rb");/ 打開(kāi)計(jì)數(shù)變量counter 文件if(fp!=NULL)/ 載入 counterfclose(fp);LoadInt(&counter,sizeof(counter),1,"counter.dat");elsefp=fopen("counter.dat","wb");/ 若沒(méi)有 counter 文件, 則創(chuàng)建一個(gè),counter 初始為 0 。fclose(fp);counter=0;if(counter!=0)/ 載入學(xué)生數(shù)據(jù)LoadStruc

11、t(student,sizeof(struct student_info),counter,"student_info.dat");char welcome()char select;while(1)system("cls");printf("tt 歡迎使用學(xué)生信息管理系統(tǒng)n");printf("n");printf("1.錄入學(xué)生信息nn");printf("2.瀏覽學(xué)生信息nn");printf("3.修改學(xué)生信息nn");printf("4

12、.刪除學(xué)生信息nn");printf("5.排名學(xué)生成績(jī)nn");printf("6.瀏覽所有學(xué)生信息nn");printf("7.清除所有數(shù)據(jù)nn");printf("8.查詢(xún)排名nn");printf("0.退出nn");printf(" 輸入相應(yīng)的功能序號(hào):");select=getchar();if(select='1'|select='2'|select='3'|select='4'|sele

13、ct='5'|select='6'|select='7'|select='8'|select='0')return select;system("cls");continue;void InputInfo()int i,n;printf(" 需要錄入多少位學(xué)生的信息:");scanf("%d",&n);system("cls");for(i=1;i<=n;i+)studentcounter=input();counter+

14、;PM=0;SortInfo(student);SaveStruct(student,sizeof(struct student_info),counter,"student_info.dat");SaveInt(&counter,sizeof(counter),1,"counter.dat");void view()int i,num;printf(" 請(qǐng)輸入需要游覽的學(xué)生信息的學(xué)號(hào):");scanf("%d",&num);getchar();if(i=NumExist(student,num)=

15、-1)printf(" 不存在該學(xué)號(hào),按回車(chē)鍵返回.");getchar();system("cls");return;ViewInfo(&studenti);printf("n 按回車(chē)鍵返回.");getchar();system("cls");return;void xiugai()int i,num;char YN,select;printf(" 請(qǐng)輸入需要修改的學(xué)生信息的學(xué)號(hào):");scanf("%d",&num);getchar();if(i=Num

16、Exist(student,num)=-1)printf(" 不存在該學(xué)號(hào), 按回車(chē)鍵返回.");getchar();system("cls");return;ViewInfo(&studenti);printf(" 是否要修改?(Y/N):");scanf("%c",&YN);getchar();if(YN !='Y'&& YN !='y')printf(" 修改取消.");getchar();system("cls&q

17、uot;);return;system("cls");printf("1.學(xué)號(hào)n");printf("2.性別n");printf("3.家庭住址n");printf("4.聯(lián)系電話(huà)n");printf("5.語(yǔ)文成績(jī)n");printf("6.數(shù)學(xué)成績(jī)n");printf("7.外語(yǔ)成績(jī)n");printf("8. 同學(xué)互評(píng)分n");printf("9.品德成績(jī)n");printf("

18、0. 任課教師教師評(píng)分n");scanf("%c",&select);switch(select)case '1':printf("修改學(xué)號(hào):");scanf("%d",&studenti.num);break;case '2':printf("修改性別:");scanf("%s",&studenti.sex);break;case '3':printf("修改家庭住址:");scanf(&qu

19、ot;%s",&studenti.adress);break;case '4':printf("修改聯(lián)系電話(huà):");scanf("%s",&studenti.tel);break;case '5':printf("修改語(yǔ)文成績(jī):");scanf("%d",&studenti.chinese);break;case '6':printf("修改數(shù)學(xué)成績(jī):");scanf("%d",&stu

20、denti.math);break;case '7':printf("修改外語(yǔ)成績(jī):");scanf("%d",&studenti.english);break;case '8':printf(" 修改同學(xué)互評(píng)分:");scanf("%d",&studenti.huping);break;case '9':printf("修改品德成績(jī):");scanf("%d",&studenti.pingde);bre

21、ak;case '0':printf(" 修改任課教師評(píng)分:");scanf("%d",&studenti.jiaoping);break;SortInfo(student);SaveStruct(student,sizeof(struct student_info),counter,"student_info.dat");PM=0;getchar();printf(" 修改完成.");getchar();system("cls");void DeleteInfo()in

22、t i,j,num;char YN;printf(" 請(qǐng)輸入要?jiǎng)h除的學(xué)生信息學(xué)號(hào):");scanf("%d",&num);getchar();if(i=NumExist(student,num)=-1)printf(" 沒(méi)有該學(xué)號(hào),按回車(chē)鍵返回.");getchar();system("cls");return;ViewInfo(&studenti);printf("n 確認(rèn)刪除(Y/N):");scanf("%c",&YN);getchar();if

23、(YN!='Y' && YN!='y')printf(" 刪除取消.");elsefor(j=i;j<counter-1;j+)studentj=studentj+1;counter-;PM=0;SaveStruct(student,sizeof(struct student_info),counter,"student_info.dat");SaveInt(&counter,sizeof(counter),counter,"counter.dat");printf(&qu

24、ot; 刪除完成.");getchar();system("cls");void paiming1(struct student_info student)struct student_info *pN,*temp;int i,j;for(i=0;i<counter;i+)pi=&studenti;for(i=0;i<counter-1;i+)for(j=i+1;j<counter;j+)if(pi->ave < pj->ave)temp=pi;pi=pj;pj=temp;for(i=0;i<counter;i+)

25、pi->paiming1=i+1;printf(" 平均分排名完成.n");void paiming2(struct student_info student)struct student_info *pN,*temp;int i,j;for(i=0;i<counter;i+)pi=&studenti;for(i=0;i<counter-1;i+)for(j=i+1;j<counter;j+)if(pi->zhongping < pj->zhongping)temp=pi;pi=pj;pj=temp;for(i=0;i<

26、;counter;i+)pi->paiming2=i+1;printf(" 綜合測(cè)評(píng)分排名完成.n");void ViewAll()int i;for(i=0;i<counter;i+)ViewInfo(&studenti);printf("n");getchar();printf(" 回車(chē)鍵返回.");getchar();system("cls");void clean()counter=0;SaveInt(&counter,sizeof(counter),1,"counte

27、r.dat");printf(" 清除完畢.");getchar();getchar();system("cls");void PaimingView()int i,num;printf(" 輸入要查詢(xún)的學(xué)號(hào):");scanf("%d",&num);getchar();i=NumExist(student,num);if(i=-1)printf(" 該學(xué)號(hào)不存在.");getchar();return;if(PM=0)printf(" 請(qǐng)先進(jìn)行成績(jī)排名.")

28、;getchar();return;printf("%s 的平均分排名%dn",,studenti.paiming1);printf("%s 的綜合測(cè)評(píng)分排名%dn",,studenti.paiming2);printf(" 按回車(chē)鍵返回.");getchar();return;void exits()printf(" 謝謝使用!n");struct student_info input()struct student_info stu,*sp;char YN;s

29、p=&stu;while(1)while(1)printf(" 錄入學(xué)號(hào):");scanf("%d",&sp->num);getchar();if(NumExist(student,sp->num)!=-1)printf(" 該學(xué)號(hào)已存在,請(qǐng)重新輸入.");getchar();system("cls");continue;break;printf("錄入姓名:");gets(sp->name);printf("錄入性別:");gets(sp-

30、>sex);printf("錄入家庭住址:");gets(sp->adress);printf("錄入聯(lián)系電話(huà):");gets(sp->tel);printf("n 接下來(lái)錄入成績(jī)n");printf(" 語(yǔ)文 :");scanf("%d",&sp->chinese);printf("數(shù)學(xué):");scanf("%d",&sp->math);printf("英語(yǔ):");scanf("

31、%d",&sp->english);sp->ave=(sp->chinese+sp->math+sp->english)/3.0;printf(" 同學(xué)互評(píng):");scanf("%d",&sp->huping);printf("品德分?jǐn)?shù):");scanf("%d",&sp->pingde);printf("教師評(píng)價(jià):");scanf("%d",&sp->jiaoping);getchar

32、();sp->zhongping=(sp->ave*0.6+sp->huping*0.1+sp->pingde*0.1+sp->jiaoping*0.2);printf(" 錄入完畢,確認(rèn)信息是否正確(Y/N)");YN=getchar();getchar();if(YN='Y'| YN='y')break;elseprintf(" 按回車(chē)鍵重新錄入信息。");getchar();system("cls");continue;system("cls");

33、return stu;void SortInfo(struct student_info student)int i,j;struct student_info temp;for(i=0;i<counter-1;i+)for(j=i+1;j<=counter-1;j+)if(studenti.num<studentj.num)temp=studenti;studenti=studentj;studentj=temp;void ViewInfo(struct student_info *sp)printf(" 學(xué)號(hào) t 姓名 t 性別 t 家庭住址t 聯(lián)系電話(huà)n");printf("%dt%st%st%stt%sn",sp->num,sp->name,sp->sex,sp->adress,sp->tel);printf(" 語(yǔ)文 t 數(shù)學(xué) t 英語(yǔ) t 互評(píng) t 品德 t 教評(píng) n");printf("%dt%dt%dt%dt%dt%dtn",sp->chinese,sp->math,sp->english,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論