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

下載本文檔

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

文檔簡(jiǎn)介

1、( 此文檔為 word 格式,下載后您可任意編輯修改!)注意:本文檔可供大家參考,學(xué)習(xí)。請(qǐng)大家借鑒優(yōu)點(diǎn),批評(píng)不足。請(qǐng)各位湖工學(xué)弟,學(xué)妹不要署名后直接打印,應(yīng)付老師。一定要弄懂代碼,這對(duì)大家的代碼編寫技術(shù)很有好處。雖然現(xiàn)在完全自主編寫有些困難,但是也要有一個(gè)迎難而上的心態(tài)。祝大家學(xué)業(yè)有成!課程設(shè)計(jì)報(bào)告課程名稱C 語(yǔ)言程序設(shè)計(jì)課題名稱學(xué)生綜合測(cè)評(píng)系統(tǒng)專業(yè)班級(jí)學(xué)號(hào)姓名指導(dǎo)教師任務(wù)書下達(dá)日期年月日任務(wù)完成日期年月日1目 錄一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求3學(xué)生綜合測(cè)評(píng)系統(tǒng)3一、問(wèn)題描述:3二、功能描述:3三、算法提示:3四、測(cè)試數(shù)據(jù):4二設(shè)計(jì)要求:4三進(jìn)度安排4四總體設(shè)計(jì)方案51.總體流程圖52. 程序主要函數(shù)

2、51.void inti()初始化函數(shù)52.welcome()函數(shù)53.void InputInfo()錄入學(xué)生信息64.void DeleteInfo()刪除信息75.void paiming1()void paiming2()成績(jī)排名76.void ViewAll()瀏覽全部學(xué)生信息77.void clean()清除所有信息88. void PaimingView()查詢排名83.程序其他函數(shù)8A. 信息存盤 (結(jié)構(gòu)體 )8B.讀取信息 (結(jié)構(gòu)體 )8C. 信息存盤 (整型 )8D. 讀取信息 (整型 )8E. 學(xué)號(hào)檢索9五程序源代碼10六 .收獲及體會(huì)22七 .參考文獻(xiàn)22計(jì)算機(jī)與通信學(xué)

3、院課程設(shè)計(jì)評(píng)分表23課程名稱: C 語(yǔ)言程序設(shè)計(jì)23一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求學(xué)生綜合測(cè)評(píng)系統(tǒng)一、問(wèn)題描述:每個(gè)學(xué)生的信息為:學(xué)號(hào)、姓名、性別、家庭住址、聯(lián)系電話、語(yǔ)文、數(shù)學(xué)、外語(yǔ)三門單科成績(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)系電話,按學(xué)號(hào)以小到大的順序存入文件中。提示:學(xué)生信息可先輸入到數(shù)組中,排序后可寫到文件中。(2) 插入(修改)同學(xué)信息:提

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

5、總分及名次。提示:綜合測(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ù),將改后信息寫入文件(4) 學(xué)生數(shù)據(jù)查詢:提示:輸入學(xué)號(hào)或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來(lái)。C、學(xué)生綜合信息輸出提示:輸出學(xué)生信息到屏幕。三、算法提示:1、數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組2、數(shù)據(jù)庫(kù)結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫(kù)。CharCharstructint四、測(cè)試數(shù)據(jù):N=10二設(shè)計(jì)要求:掌握結(jié)構(gòu)化程序設(shè)計(jì)的主體思想,以自頂向下逐步求精的方法編制程序解決一些實(shí)際的問(wèn)題,為將來(lái)編寫軟件積累一些

6、典型的案例處理經(jīng)驗(yàn)。(1)按學(xué)號(hào)順序選課題號(hào),并在規(guī)定的時(shí)間內(nèi)獨(dú)自完成相關(guān)課題的C 源程序編寫、 調(diào)試和運(yùn)行。 源程序及編譯生成各文件均保存;(2)按本任務(wù)書的要求,編寫課程設(shè)計(jì)報(bào)告( Word 文檔格式)。并用 A4 的復(fù)印紙打印并裝訂;(3)在 2013 年 1 月 5 日之前,請(qǐng)各班學(xué)習(xí)委員收齊課程設(shè)計(jì)報(bào)告交老師。附:課程設(shè)計(jì)報(bào)告內(nèi)容要求如下:封面課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)主文檔內(nèi)容如下:1、 課程設(shè)計(jì)題目2、 課程設(shè)計(jì)目的3、 課程設(shè)計(jì)主要任務(wù)4、 設(shè)計(jì)環(huán)境5、 總體設(shè)計(jì)方案的選定(主控模塊和各子模塊的設(shè)計(jì)方法及框圖)6、 源程序清單7、 收獲及體會(huì)參考資料四、報(bào)告內(nèi)容要求用宋體五號(hào)字,主

7、標(biāo)題用黑三號(hào)、一級(jí)標(biāo)題用黑四號(hào)字,二級(jí)標(biāo)題用宋體小四號(hào)字加粗,要求用 A4 紙張打印出來(lái) 。課程設(shè)計(jì)說(shuō)明書裝訂順序:封面、任務(wù)書、正文、附件(A4 大小的圖紙及程序清單)。三進(jìn)度安排第 18 周,具體安排如下:星期時(shí)間班級(jí)內(nèi)容地點(diǎn)第 17周任務(wù)布置第 18周星期三第一次上機(jī)機(jī)房第 18周星期四第二次上機(jī)機(jī)房第 18周星期五第三次上機(jī)與答辯機(jī)房湖南工程學(xué)院計(jì)算機(jī)與通信學(xué)院年月日四總體設(shè)計(jì)方案1.總體流程圖2. 程序主要函數(shù)1.void inti()初始化函數(shù)初始化函數(shù)用于從硬盤中加載學(xué)生數(shù)據(jù)和學(xué)生數(shù)目。首先,從硬盤讀取counter.dat 的數(shù)據(jù)。若不存在counter.dat 則說(shuō)明程序第一

8、次運(yùn)行。創(chuàng)建counter.dat 和 student_data.dat,把 counter 的初始值賦為 1。若存在 counter.dat.則讀取其中數(shù)據(jù), 把數(shù)據(jù)賦給變量counter,這個(gè)值為已儲(chǔ)存的學(xué)生信息數(shù)量。這個(gè) counter變量就是計(jì)數(shù)器變量。用來(lái)計(jì)量學(xué)生信息數(shù)量的變化。2.welcome()函數(shù)Welcome函數(shù)用來(lái)顯示選項(xiàng)菜單,并將用戶所選的序號(hào)返回。主函數(shù)中的變量select接收到 welcome 的返回值。通過(guò)開(kāi)關(guān)語(yǔ)句,選擇需要使用的功能。3.void InputInfo()錄入學(xué)生信息輸入學(xué)生的信息。學(xué)生信息由以下結(jié)構(gòu)體定義。struct student_infoi

9、nt num;學(xué)號(hào)char name6;姓名char sex5;性別char adress20;家庭住址char tel10;電話int chinese,math,english,);getchar();printf(回車鍵返回 .);getchar();system(cls);7.void clean()清除所有信息counter計(jì)數(shù)變量清零,counter.dat清空, student_info.dat清空。8.void PaimingView()查詢排名根據(jù)輸入的學(xué)號(hào)查詢排名3.程序其他函數(shù)A.信息存盤 (結(jié)構(gòu)體 )void SaveStruct(struct student_info

10、*sp,int size,int n,char filename20)FILE *fp;fp=fopen(filename,wb);fwrite(sp,size,n,fp);fclose(fp);B.讀取信息 (結(jié)構(gòu)體 )void LoadStruct(struct student_info *sp,int size,int n,char filename20)略C.信息存盤 (整型 )void SaveInt(int *p,int size,int n,char filename20)FILE *fp;fp=fopen(filename,wb);fwrite(p,size,n,fp);fcl

11、ose(fp);D.讀取信息 (整型 )void LoadInt(int *p,int size,int n,char filename20)略E.學(xué)號(hào)檢索int NumExist(struct student_info student,int num)int i;for(i=0;icounter;i+)if(studenti.num=num)return i;return -1;檢索學(xué)號(hào)所在的元素下表,若學(xué)號(hào)存在,則返回該學(xué)號(hào)所在下標(biāo)。若學(xué)號(hào)不存在,則返回-1 。程序截圖:五程序源代碼學(xué)生綜合測(cè)評(píng)系統(tǒng)2013年1月3日#includestdio.();void PaimingView();v

12、oid exit();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

13、n,char filename20);void LoadInt(int *p,int size,int n,char filename20);int NumExist(struct student_info student,int num);定義學(xué)生信息結(jié)構(gòu)體-struct student_infoint num;學(xué)號(hào)char name6;姓名char sex5;性別char adress20;家庭住址char tel10;電話int chinese,math,english,()char select;init();while(1)調(diào)用初始化函數(shù)select=welcome();switch

14、(select)case 1: system(cls);InputInfo(); break;case 2: system(cls);view(); break;case 3: system(cls);xiugai(); break;case 4: system(cls);DeleteInfo(); break;case 5: system(cls);paiming1(student);paiming2(student);PM=1;getchar();getchar();system(cls); break;case 6:system(cls); ViewAll();break;選項(xiàng)選項(xiàng)選項(xiàng)選

15、項(xiàng)選項(xiàng)選項(xiàng)1: 輸入學(xué)生信息2: 瀏覽學(xué)生信息3: 修改學(xué)生信息4: 刪除學(xué)生信息5: 學(xué)生信息排名6: 瀏覽全部學(xué)生信息case 7:system(cls); clean();break;case 8:system(cls); PaimingView();break;選項(xiàng) 7: 清除所有信息選項(xiàng) 8: 查詢排名case 0: system(cls);exit(); break;選項(xiàng) 9: 退出-初始化函數(shù) -void init()FILE *fp;fp=fopen(counter.dat,rb);打開(kāi)計(jì)數(shù)變量counter文件if(fp!=NULL)載入counterfclose(fp);L

16、oadInt(&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ù)LoadStruct(student,sizeof(structstudent_info),counter,student_info.dat);- 歡迎函數(shù) -char welcome()char select;while(1)system(cls);printf(tt歡迎使用學(xué)生信息管理系統(tǒng)n)

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

18、eturn select;system(cls);continue;-1.錄入學(xué)生信息-void InputInfo()int i,n;printf(需要錄入多少位學(xué)生的信息:);scanf(%d,&n);system(cls);for(i=1;i=n;i+)studentcounter=input();counter+;PM=0;SortInfo(student);SaveStruct(student,sizeof(struct student_info),counter,student_info.dat); SaveInt(&counter,sizeof(counter),1,counte

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

20、的學(xué)生信息的學(xué)號(hào):);scanf(%d,&num);getchar();if(i=NumExist(student,num)=-1)printf(不存在該學(xué)號(hào), 按回車鍵返回.);getchar();system(cls);return;ViewInfo(&studenti);printf(是否要修改?(YN):);scanf(%c,&YN);getchar();if(YN !=Y& YN !=y)printf(修改取消 .);getchar();system(cls);return;system(cls);printf(1.學(xué)號(hào)n);printf(2.性別n);printf(3.家庭住址n)

21、;printf(4.聯(lián)系電話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(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(%s,&studenti.adr

22、ess);break;case 4:printf(修改聯(lián)系電話 :);scanf(%s,&studenti.tel);break;case 5:printf(修改語(yǔ)文成績(jī) :);scanf(%d,&studenti.chinese);break;case 6:printf(修改數(shù)學(xué)成績(jī) :);scanf(%d,&studenti.math);break;case 7:printf(修改外語(yǔ)成績(jī) :);scanf(%d,&studenti.english);break;case 8:printf(修改同學(xué)互評(píng)分 :);scanf(%d,&studenti.;ViewInfo(&studenti)

23、;printf(n確認(rèn)刪除 (YN):);scanf(%c,&YN);getchar();if(YN!=Y & YN!=y)printf(刪除取消 .);elsefor(j=i;jcounter-1;j+)studentj=studentj+1;counter-;PM=0;SaveStruct(student,sizeof(structstudent_info),counter,student_info.dat); SaveInt(&counter,sizeof(counter),counter,counter.dat);printf(刪除完成 .);getchar();system(cls)

24、;- 平均分、綜合分排名void paiming1(struct student_info student)struct student_info *pN,*temp;int i,j;for(i=0;icounter;i+)pi=&studenti;for(i=0;icounter-1;i+)for(j=i+1;jave ave)temp=pi;pi=pj;pj=temp;for(i=0;ipaiming1=i+1;printf(平均分排名完成.n);綜合測(cè)評(píng)分排名void paiming2(struct student_info student)struct student_info *pN

25、,*temp;int i,j;for(i=0;icounter;i+)pi=&studenti;for(i=0;icounter-1;i+)for(j=i+1;jzhongping zhongping)temp=pi;pi=pj;pj=temp;for(i=0;ipaiming2=i+1;printf(綜合測(cè)評(píng)分排名完成.n);. 瀏覽所有學(xué)生信息-void ViewAll()int i;for(i=0;inum);getchar();if(NumExist(student,sp-num)!=-1)printf(該學(xué)號(hào)已存在, 請(qǐng)重新輸入 .);getchar();system(cls);co

26、ntinue;break;printf(錄入姓名 :);gets(sp-name);printf(錄入性別 :);gets(sp-sex);printf(錄入家庭住址:);gets(sp-adress);printf(錄入聯(lián)系電話:);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(%d,&sp-english);sp-ave=(sp-chinese+sp-math+sp-english)3.0;printf(

27、同學(xué)互評(píng) :);scanf(%d,&sp- stu;-排序函數(shù) -void SortInfo(struct student_info student)int i,j;struct student_info temp;for(i=0;icounter-1;i+)for(j=i+1;j=counter-1;j+)if(studenti.numnum,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-engl

28、ish,sp-);printf(%.2ft%.2fn,sp-ave,sp-zhongping);if(PM=1)printf(平均分排名 t綜合測(cè)評(píng)分排名n);printf(%dtt%dn,sp-paiming1,sp-paiming2);信息存盤 ( 結(jié)構(gòu)體 ) -void SaveStruct(struct student_info *sp,int size,int n,char filename20)FILE *fp;fp=fopen(filename,wb);fwrite(sp,size,n,fp);fclose(fp);讀取信息 ( 結(jié)構(gòu)體 ) -void LoadStruct(st

29、ruct student_info *sp,int size,int n,char filename20)FILE *fp;fp=fopen(filename,rb);fread(sp,size,n,fp);fclose(fp);- 信息存盤 ( 整型 ) -void SaveInt(int *p,int size,int n,char filename20)FILE *fp;fp=fopen(filename,wb);fwrite(p,size,n,fp);fclose(fp);- 讀取信息 ( 整型 ) -void LoadInt(int *p,int size,int n,char filename20)FILE *fp;fp=fopen(filename,rb);fread(p,size,n,fp);fclose(fp);-檢索學(xué)號(hào) -int NumExist(struct student_info student,int num)int i

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論