已閱讀5頁(yè),還剩18頁(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)介
本文檔大部分來(lái)自湖工程大神的文檔 我把實(shí)習(xí)報(bào)告全部整理了一下 歡迎大家參考一下雖然我的水平很渣渣哈哈2015.7.10程序?qū)嵙?xí)報(bào)告題 目: 學(xué)生綜合測(cè)評(píng)系統(tǒng) 姓 名 學(xué) 號(hào) 專 業(yè) 通信工程 班 級(jí) 指導(dǎo)教師 編寫(xiě)日期 2015-7-8 1、 學(xué)生測(cè)評(píng)系統(tǒng)具體要求:每個(gè)學(xué)生的信息為:學(xué)號(hào)、姓名、性別、家庭住址、聯(lián)系電話、語(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)系電話,按學(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ù)組,然后按提示輸入每科成績(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ù)查詢:提示:輸入學(xué)號(hào)或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來(lái)。c、學(xué)生綜合信息輸出提示:輸出學(xué)生信息到屏幕。二、總體設(shè)計(jì) 三、詳細(xì)設(shè)計(jì)(要求列出所有編寫(xiě)的函數(shù)清單,說(shuō)明每個(gè)函數(shù)的功能,各形式參數(shù)的意義,畫(huà)出各函數(shù)的調(diào)用關(guān)系圖。即模塊功能說(shuō)明(如函數(shù)功能、入口及出口參數(shù)說(shuō)明,函數(shù)調(diào)用關(guān)系描述等)。)l void chushihua();初始化函數(shù)l char menu();歡迎界面(目錄)l void inputinfo();輸入信息函數(shù)l void view();查詢l void xiugai();修改l void del();刪除l void paiming1(struct student_info student);定義排名l void paiming2(struct student_info student);l void viewall();輸出所有信息l void clean();清除所有函數(shù)l void zz();作者信息l void paimingview();排名查詢l void exit();推出l struct student_info input();定義學(xué)生結(jié)構(gòu)體l 函數(shù)調(diào)用基本按照流程圖所畫(huà)關(guān)系調(diào)用四、程序運(yùn)行結(jié)果測(cè)試與分析1.void chushihua() 初始化函數(shù) 初始化函數(shù)用于從硬盤(pán)中加載學(xué)生數(shù)據(jù)和學(xué)生數(shù)目。首先,從硬盤(pán)讀取counter.dat的數(shù)據(jù)。若不存在counter.dat則說(shuō)明程序第一次運(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.meue() 函數(shù)meue函數(shù)用來(lái)顯示選項(xiàng)菜單,并將用戶所選的序號(hào)返回。主函數(shù)中的變量select接收到meue的返回值。通過(guò)開(kāi)關(guān)語(yǔ)句,選擇需要使用的功能。3.void inputinfo() 錄入學(xué)生信息輸入學(xué)生的信息。學(xué)生信息由以下結(jié)構(gòu)體定義。struct student_info int num;/學(xué)號(hào)char name6;/姓名char sex5;/性別char adress20;/家庭住址char tel10;/電話int chinese,math,english,huping,pingde,jiaoping,paiming1,paiming2; /語(yǔ)文 數(shù)學(xué) 英語(yǔ) 互評(píng) 品德 教評(píng) double ave,zhongping;/ 平均 綜合;inputinfo調(diào)用input函數(shù)。在input函數(shù)中的局部變量stu中錄入數(shù)據(jù),然后input函數(shù)返回stu給inputinfo中的結(jié)構(gòu)體數(shù)組的counter號(hào)元素。然后,inputinfo通過(guò)sortinfo();savestruct();saveint();將數(shù)組按學(xué)號(hào)排序,并存儲(chǔ)結(jié)構(gòu)體student和counter。4.void del() 刪除信息刪除信息函數(shù),從要?jiǎng)h除位信息開(kāi)始,前位用后一位覆蓋,直到數(shù)組結(jié)束。并同時(shí)將counter減1。之后調(diào)用savestruct();saveint();儲(chǔ)存student結(jié)構(gòu)體數(shù)組和counter計(jì)數(shù)變量。5.void paiming1() / void paiming2() 成績(jī)排名排名函數(shù)將student的給個(gè)元素的首地址儲(chǔ)存在pn指針數(shù)組中。通過(guò)冒泡法將指針數(shù)組排序。接下來(lái),按順序把指針數(shù)組順序,把排名賦給student的成員paiming1,paiming2。冒泡排序for(i=0;icounter-1;i+)for(j=i+1;jave ave)temp=pi;pi=pj;pj=temp;排名名詞給每一個(gè)student的成員paiming1或paiming2。for(i=0;ipaiming1=i+1;這一步的目的就是為了把所有信息排名。6.void viewall() 瀏覽全部學(xué)生信息void viewall()int i;for(i=0;icounter;i+)viewinfo(&studenti);printf(n);getchar();printf(回車鍵返回.);getchar();system(cls);7.void clean() 清除所有信息counter計(jì)數(shù)變量清零,counter.dat清空,student_info.dat清空。8. void paimingview() 查詢排名根據(jù)輸入的學(xué)號(hào)查詢排名五、結(jié)論與心得其實(shí)在編寫(xiě)程序的過(guò)程中,我發(fā)現(xiàn)很多地方都可以用一些簡(jiǎn)單的思路考慮,比如在進(jìn)行第五步排名的過(guò)程過(guò),用的也是冒泡排序,不過(guò)就僅僅只是不用整型數(shù)據(jù)交換而是結(jié)構(gòu)體交換。其次在排名成與其排列構(gòu)造體數(shù)組,我更推薦新建一個(gè)指針數(shù)組,來(lái)排列這個(gè)指針數(shù)組來(lái)代替排列構(gòu)造體數(shù)組。很顯然,排列指針比排列構(gòu)造體要快捷多了。而且在關(guān)于存儲(chǔ)數(shù)據(jù)方面,我們主動(dòng)設(shè)計(jì)程序使他保存下來(lái),然后在程序剛剛啟動(dòng)的初始化過(guò)程中,加載counter.dat和student_info.dat進(jìn)入內(nèi)存,使得上次數(shù)據(jù)保留下來(lái),并且可以隨意修改。當(dāng)然,在本次實(shí)習(xí)中,我感覺(jué)最有收獲的是過(guò)程,雖然才剛開(kāi)始接觸結(jié)構(gòu)體、指針,不過(guò)在編寫(xiě)過(guò)程中,由于對(duì)知識(shí)的匱乏吸引我不斷看書(shū),以及通過(guò)在課余時(shí)間惡補(bǔ)結(jié)構(gòu)體等網(wǎng)絡(luò)教學(xué)視頻,使我真真切切的學(xué)會(huì)一種學(xué)習(xí)方法。當(dāng)然雖然到最后,大部分程序也是借鑒網(wǎng)絡(luò)平臺(tái),但也通過(guò)這些程序以及運(yùn)行之后的效果進(jìn)一步實(shí)踐了那么多知識(shí)點(diǎn)。這一些我感覺(jué)是我收獲最大的地方。六程序源代碼 學(xué)生綜合測(cè)評(píng)系統(tǒng)2015-07-08#include#include#include#define n 100/-函數(shù)聲明-void chushihua();char menu();void inputinfo();void view();void xiugai();void del();void paiming1(struct student_info student);void paiming2(struct student_info student);void viewall();void clean();void zz();void paimingview();void exit();struct student_info input();void sort(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 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_info int num;/學(xué)號(hào)char name6;/姓名char sex5;/性別char address20;/家庭住址char tel10;/電話int chinese,math,english,huping,pingde,jiaoping,paiming1,paiming2; /語(yǔ)文 數(shù)學(xué) 英語(yǔ) 互評(píng) 品德 教評(píng) double ave,zhongping;/ 平均 綜合/每個(gè)學(xué)生的信息為:學(xué)號(hào)、姓名、性別、家庭住址、聯(lián)系電話、語(yǔ)文、數(shù)學(xué)、英語(yǔ)三門(mén)單科得分、/考試平均得分、考試名次、互評(píng)、品德、教評(píng)、綜合測(cè)評(píng)總分、綜合測(cè)評(píng)名次。/考試平均得分、互評(píng)、品德、教評(píng)分別占綜合測(cè)評(píng)總分的60%,10%,10%,20%。;/-定義全局結(jié)構(gòu)體數(shù)據(jù)-struct student_info studentn;int counter,pm;/-主函數(shù)-void main()char select;chushihua(); /調(diào)用初始化函數(shù)while(1)select=menu();switch(select)case 1:system(cls);inputinfo(); break; /選項(xiàng)1:輸入學(xué)生信息case 2:system(cls); view(); break; /選項(xiàng)2:瀏覽學(xué)生信息case 3:system(cls);xiugai(); break; /選項(xiàng)3:修正學(xué)生信息case 4:system(cls);del(); break; /選項(xiàng)4:刪除學(xué)生信息case 5:system(cls); paiming1(student);paiming2(student);pm=1;getchar();getchar();system(cls); break; /選項(xiàng)5:學(xué)生信息排名case 6: system(cls); viewall();break; /選項(xiàng)6:瀏覽全部學(xué)生信息case 7: system(cls); clean();break;/選項(xiàng)7:清除所有信息case 8: system(cls); paimingview();break;/選項(xiàng)8:查詢排名case 9: system(cls); zz();break;/選項(xiàng)9:尋找作者case 0:system(cls); exit(0); /選項(xiàng)10:退出/-初始化函數(shù)-void chushihua()file *fp;fp=fopen(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ù)loadstruct(student,sizeof(struct student_info),counter,student_info.dat);/-歡迎函數(shù)-char menu()char select;system(color bc);while(1)system(cls);printf(t*n);printf(t menu to 學(xué)生綜合測(cè)評(píng)系統(tǒng) n);printf(tn);printf(tn);printf(t* 1.錄入學(xué)生信息 2.瀏覽學(xué)生信息 * nn);printf(t* 3.修正學(xué)生信息 4.刪除學(xué)生信息 * nn); printf(t* enter.作者 * nn);printf(t* 5.排名學(xué)生得分 6.瀏覽學(xué)生信息 * nn);printf(t* 7.清除所有數(shù)據(jù) 8.查詢學(xué)生排名 * nn);printf(t* 0.退出 * nn); printf(n);printf(t輸入相應(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)return select;system(cls);continue;else zz(); /-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;sort(student);savestruct(student,sizeof(struct student_info),counter,student_info.dat);saveint(&counter,sizeof(counter),1,counter.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)輸入需要修正的學(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(是否要修正?(y/n):);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);printf(4.聯(lián)系電話 n);printf(5.語(yǔ)文得分 n);printf(6.數(shù)學(xué)得分 n);printf(7.英語(yǔ)得分 n);printf(8.互評(píng) n);printf(9.品德 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.address);break;case 4:printf(修正聯(lián)系電話:);scanf(%s,&studenti.tel);break;case 5:printf(修正語(yǔ)文得分:);scanf(%d,&studenti.chinese);break;case 6:printf(修正數(shù)學(xué)得分:);scanf(%d,&studenti.math);break;case 7:printf(修正英語(yǔ)得分:);scanf(%d,&studenti.english);break;case 8:printf(修正互評(píng):);scanf(%d,&studenti.huping);break;case 9:printf(修正品德:);scanf(%d,&studenti.pingde);break;case 0:printf(修正教評(píng):);scanf(%d,&studenti.jiaoping);break;sort(student);savestruct(student,sizeof(struct student_info),counter,student_info.dat);pm=0;getchar();printf(修正完成.);getchar();system(cls);/-4.刪除學(xué)生信息-void del()int 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),按回車鍵返回.);getchar();system(cls);return;viewinfo(&studenti);printf(n確認(rèn)刪除(y/n):);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(struct student_info),counter,student_info.dat);saveint(&counter,sizeof(counter),counter,counter.dat);printf(刪除完成.);getchar();system(cls);/-平均分、綜合分排名-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,*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);/-6.瀏覽所有學(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);continue;break;printf(錄入姓名:);gets(sp-name);printf(錄入性別:);gets(sp-sex);printf(錄入家庭住址:);gets(sp-address);printf(錄入聯(lián)系電話:);gets(sp-tel);printf(n接下來(lái)錄入得分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(同學(xué)互評(píng):);scanf(%d,&sp-huping);printf(品德分?jǐn)?shù):);scanf(%d,&sp-pingde);printf(教師評(píng)價(jià):);scanf(%d,&sp-jiaoping);getchar();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(按回車鍵重新錄入信息。);getchar();system(cls);continue;system(cls);return stu;/-排序函數(shù)-void sort(struct student_info student)int i,j;struct student_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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 輔具中心考核制度
- 鍋爐各項(xiàng)考核制度
- 工段安全考核制度
- 車輛調(diào)派考核制度
- 電大教師考核制度
- 國(guó)企出勤考核制度
- 保潔獎(jiǎng)懲考核制度
- 高爐維修考核制度
- 教學(xué)評(píng)價(jià)考核制度
- 2025年四川能投高縣電力有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 旅游行業(yè)如何玩轉(zhuǎn)視頻號(hào) 從0到1開(kāi)啟私域營(yíng)銷
- 急腹癥影像診斷課件
- 【《紫鑫藥業(yè)財(cái)務(wù)報(bào)告審計(jì)失敗案列分析》12000字(論文)】
- 三級(jí)醫(yī)院營(yíng)養(yǎng)科建設(shè)方案
- 醫(yī)院外聯(lián)部主任述職報(bào)告
- 集團(tuán)內(nèi)部融媒體管理辦法
- ASTM-D1238中文翻譯(熔融流動(dòng)率、熔融指數(shù)、體積流動(dòng)速率)
- 2025年浙江省寧波市鎮(zhèn)海中學(xué)高考英語(yǔ)模擬試卷(1月份)
- 短視頻創(chuàng)作-短視頻手機(jī)拍攝與剪輯
- 車輛掛靠駕校合同協(xié)議
- 工地盤(pán)扣打包合同協(xié)議
評(píng)論
0/150
提交評(píng)論