C語言畢業課程設計-學生綜合測評系統.doc_第1頁
C語言畢業課程設計-學生綜合測評系統.doc_第2頁
C語言畢業課程設計-學生綜合測評系統.doc_第3頁
C語言畢業課程設計-學生綜合測評系統.doc_第4頁
C語言畢業課程設計-學生綜合測評系統.doc_第5頁
免費預覽已結束,剩余13頁可下載查看

下載本文檔

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

文檔簡介

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

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

3、院課程設計評分表23課程名稱: C 語言程序設計23一、設計內容與設計要求學生綜合測評系統一、問題描述:每個學生的信息為:學號、姓名、性別、家庭住址、聯系電話、語文、數學、外語三門單科成績、考試平均成績、考試名次、同學互評分、品德成績、任課教師評分、綜合測評總分、綜合測評名次。考試平均成績、同學互評分、品德成績、任課教師評分分別占綜合測評總分的 60% , 10% , 10% , 20% 。二、功能描述:A、學生信息處理(1) 輸入學生信息、學號、姓名、性別、家庭住址、聯系電話,按學號以小到大的順序存入文件中。提示:學生信息可先輸入到數組中,排序后可寫到文件中。(2) 插入(修改)同學信息:提

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

5、總分及名次。提示:綜合測評總分(考試成績)*0.6+ (同學互評分)*0.1+ 品德成績 *0.1+ 任課老師評分 *0.2 。(3) 學生數據管理提示:輸入學號,讀出并顯示該同學信息,輸入新數據,將改后信息寫入文件(4) 學生數據查詢:提示:輸入學號或其他信息,即讀出所有數據信息,并顯示出來。C、學生綜合信息輸出提示:輸出學生信息到屏幕。三、算法提示:1、數據結構:結構體類型數組2、數據庫結構:下表構成該系統的基本數據庫。CharCharstructint四、測試數據:N=10二設計要求:掌握結構化程序設計的主體思想,以自頂向下逐步求精的方法編制程序解決一些實際的問題,為將來編寫軟件積累一些

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

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

8、次運行。創建counter.dat 和 student_data.dat,把 counter 的初始值賦為 1。若存在 counter.dat.則讀取其中數據, 把數據賦給變量counter,這個值為已儲存的學生信息數量。這個 counter變量就是計數器變量。用來計量學生信息數量的變化。2.welcome()函數Welcome函數用來顯示選項菜單,并將用戶所選的序號返回。主函數中的變量select接收到 welcome 的返回值。通過開關語句,選擇需要使用的功能。3.void InputInfo()錄入學生信息輸入學生的信息。學生信息由以下結構體定義。struct student_infoi

9、nt num;學號char name6;姓名char sex5;性別char adress20;家庭住址char tel10;電話int chinese,math,english,);getchar();printf(回車鍵返回 .);getchar();system(cls);7.void clean()清除所有信息counter計數變量清零,counter.dat清空, student_info.dat清空。8.void PaimingView()查詢排名根據輸入的學號查詢排名3.程序其他函數A.信息存盤 (結構體 )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.讀取信息 (結構體 )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.學號檢索int NumExist(struct student_info student,int num)int i;for(i=0;icounter;i+)if(studenti.num=num)return i;return -1;檢索學號所在的元素下表,若學號存在,則返回該學號所在下標。若學號不存在,則返回-1 。程序截圖:五程序源代碼學生綜合測評系統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);定義學生信息結構體-struct student_infoint num;學號char name6;姓名char sex5;性別char adress20;家庭住址char tel10;電話int chinese,math,english,()char select;init();while(1)調用初始化函數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;選項選項選項選

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

16、oadInt(&counter,sizeof(counter),1,counter.dat);elsefp=fopen(counter.dat,wb);若沒有 counter文件,則創建一個,counter初始為 0 。fclose(fp);counter=0;if(counter!=0)載入學生數據LoadStruct(student,sizeof(structstudent_info),counter,student_info.dat);- 歡迎函數 -char welcome()char select;while(1)system(cls);printf(tt歡迎使用學生信息管理系統n)

17、;printf(n);printf(1.錄入學生信息nn);printf(2.瀏覽學生信息nn);printf(3.修改學生信息nn);printf(4.刪除學生信息nn);printf(5.排名學生成績nn);printf(6.瀏覽所有學生信息nn);printf(7.清除所有數據nn);printf(8.查詢排名nn);printf(0.退出nn);printf(輸入相應的功能序號 :);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.錄入學生信息-void InputInfo()int i,n;printf(需要錄入多少位學生的信息:);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.游覽學生信息-void view()int i,num;printf(請輸入需要游覽的學生信息的學號:);scanf(%d,&num);getchar();if(i=NumExist(student,num)=-1)printf(不存在該學號, 按回車鍵返回.);getchar();system(cls);return;ViewInfo(&studenti);printf(n按回車鍵返回 .);getchar();system(cls);return;-3.修改學生信息-void xiugai()int i,num;char YN,select;printf(請輸入需要修改

20、的學生信息的學號:);scanf(%d,&num);getchar();if(i=NumExist(student,num)=-1)printf(不存在該學號, 按回車鍵返回.);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.學號n);printf(2.性別n);printf(3.家庭住址n)

21、;printf(4.聯系電話n);printf(5.語文成績n);printf(6.數學成績n);printf(7.外語成績n);printf(8.同學互評分n);printf(9.品德成績n);printf(0.任課教師教師評分n);scanf(%c,&select);switch(select)case 1:printf(修改學號 :);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(修改聯系電話 :);scanf(%s,&studenti.tel);break;case 5:printf(修改語文成績 :);scanf(%d,&studenti.chinese);break;case 6:printf(修改數學成績 :);scanf(%d,&studenti.math);break;case 7:printf(修改外語成績 :);scanf(%d,&studenti.english);break;case 8:printf(修改同學互評分 :);scanf(%d,&studenti.;ViewInfo(&studenti)

23、;printf(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);綜合測評分排名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(綜合測評分排名完成.n);. 瀏覽所有學生信息-void ViewAll()int i;for(i=0;inum);getchar();if(NumExist(student,sp-num)!=-1)printf(該學號已存在, 請重新輸入 .);getchar();system(cls);co

26、ntinue;break;printf(錄入姓名 :);gets(sp-name);printf(錄入性別 :);gets(sp-sex);printf(錄入家庭住址:);gets(sp-adress);printf(錄入聯系電話:);gets(sp-tel);printf(n接下來錄入成績n);printf(語文 :);scanf(%d,&sp-chinese);printf(數學 :);scanf(%d,&sp-math);printf(英語 :);scanf(%d,&sp-english);sp-ave=(sp-chinese+sp-math+sp-english)3.0;printf(

27、同學互評 :);scanf(%d,&sp- stu;-排序函數 -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( 語文 t 數學 t 英語 t 互評 t 品德 t 教評 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綜合測評分排名n);printf(%dtt%dn,sp-paiming1,sp-paiming2);信息存盤 ( 結構體 ) -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);讀取信息 ( 結構體 ) -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);-檢索學號 -int NumExist(struct student_info student,int num)int i

溫馨提示

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

評論

0/150

提交評論