




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 淮北師范大學(xué)綜合設(shè)計報告英語四級管理系統(tǒng)(綜合設(shè)計題目)課 程 面向?qū)ο蟪绦蛟O(shè)計實驗 學(xué) 院 計算機(jī)科學(xué)與技術(shù) 專 業(yè) 網(wǎng)絡(luò)工程 年 級 2014級 學(xué) 號 20141204011 姓 名 王子聞 任課教師 肖 建 于 2015年7月 2 日17一、設(shè)計目的與內(nèi)容(根據(jù)設(shè)計題目進(jìn)行需求分析,確定系統(tǒng)主要功能模塊。)為了進(jìn)一步鞏固和復(fù)習(xí)C 程序設(shè)計的基礎(chǔ)知識,培養(yǎng)我們結(jié)構(gòu)化程序、模塊化程序設(shè)計的方法和能力,提高調(diào)試程序的技巧和軟件設(shè)計的能力,提高分析問題、解決問題以及綜合利用C +進(jìn)行程序設(shè)計的能力,了解軟件的編制過程。并實現(xiàn)能記錄英語四級成績的數(shù)據(jù)結(jié)構(gòu),要有準(zhǔn)考證號、考生姓名、四級成績等信息
2、,而且可以進(jìn)行輸入、載入、輸出、按條件查找等基本功能。二、算法的基本思想(進(jìn)行概要設(shè)計和詳細(xì)設(shè)計。說明用到的數(shù)據(jù)結(jié)構(gòu)定義、主程序的流程及各程序模塊之間的調(diào)用關(guān)系。用自然語言描述各功能模塊所涉及的算法。)(此處可加框圖描述基本功能模塊)英語四級成績管理系統(tǒng)輸入考生信息按準(zhǔn)考證排序按準(zhǔn)考證查找退出本系統(tǒng)清空文件內(nèi)容保存信息到文件刪除考生信息輸出考生信息載入考生信息三、主要功能模塊流程圖(畫出系統(tǒng)主要功能模塊的流程圖,流程圖按教材中規(guī)范要求為準(zhǔn)。)流程圖如下:開始 選擇界面載入考生信息退出本系統(tǒng)按準(zhǔn)考證查找按準(zhǔn)考證排序清空文件內(nèi)容保存信息到文件刪除考生信息輸出考生信息輸入考生信息結(jié)束四、系統(tǒng)測試(列
3、出對于給定的輸入所產(chǎn)生的輸出結(jié)果,要有運行結(jié)果截圖。)程序運行實例如下:1 選擇1,運行界面如下:2 選擇2,運行界面如下:3 選擇3,運行界面如下:4 選擇4,運行界面如下:5 選擇5,運行界面如下:5、 小結(jié)(進(jìn)行總結(jié),并提出程序的缺陷以及可以改進(jìn)的功能) 一周多的課程設(shè)計,終于成功的驗收了,雖然有些疲憊,但還是有很多的收獲的,像計算機(jī)組成原理的課設(shè)一樣,我又一次鞏固了所學(xué)到的知識,之前的學(xué)習(xí)只是停留在理論基礎(chǔ)上,現(xiàn)在自己動手操作試驗后,才是真正的理解及體會。C+也學(xué)了很久,有很多知識都是似懂非懂,通過平時上機(jī)操作,自己也了解了一些,但讓我有了更深的理解和更好的認(rèn)識,則是在這次的課設(shè)上,之
4、前的困惑也通過這次的課設(shè)解決了一些,雖然還是不能夠全面的理解,但是有進(jìn)步就很高興。 在課程設(shè)計之前,因為有了綜合實驗的經(jīng)驗與教訓(xùn),明白了寫代碼這一步是非常重要的,因為當(dāng)你把代碼輸進(jìn)去之后,并編譯讓其運行,發(fā)現(xiàn)通過不了,再來檢查出問題,是很費費力的事情,因此分析和規(guī)劃代碼是很重要的,最重要的是要把邏輯結(jié)構(gòu)寫好,這樣就不會出現(xiàn)大問題,寫代碼就要先找出核心的內(nèi)容,用多種方法來實現(xiàn)核心部分,這樣可以盡可能的避免發(fā)現(xiàn)邏輯或編譯不支持的錯誤。 通過本次論文設(shè)計,我初步學(xué)會了論文設(shè)計的基本方法,學(xué)會了怎樣去借鑒別人的方法和經(jīng)驗,知道了如何整合資料和處理這些資料的能力,這位以后做畢設(shè)的論文打下了基礎(chǔ),使我感覺
5、比較好的是有一種成功的喜悅,雖然在編譯的時候會經(jīng)常因為一些小的錯誤而心煩意亂,但是也不失為一件好事,失敗的越多積累的經(jīng)驗越豐富,對人的考驗也比較多,那么在最后編譯成功時的喜悅就越濃烈,也是自己的能力有了進(jìn)一步的提高。由于知識和經(jīng)驗的不足,這個程序編寫的不是很盡如人意,但是融合了自己的心血,就覺得是最好的,所以在以后還是需要較多的努力的,還是會在以后的學(xué)習(xí)過程中不斷地提高和改進(jìn)的。六、源程序及系統(tǒng)文件使用說明附上關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的定義及系統(tǒng)源代碼,各自定義函數(shù)的聲明部分中,要求對主要變量作用進(jìn)行注釋,語句部分中要求對關(guān)鍵語句進(jìn)行注釋,以方便閱讀程序。源代碼:#include<iostream.
6、h>#include<stdlib.h>#include<iomanip.h>/主要是對cin,cout之類的一些操縱運算,是I/O流控制頭文件。 #include <conio.h> /文件和標(biāo)準(zhǔn)控制臺的輸入輸出#include<stdio.h> struct Student /結(jié)構(gòu)體int year;/年份int examnum;/學(xué)號char name12;/姓名float mark1;/成績float mark2;float mark3;float sum;/總分float average;/平均分;int examnum=0;vo
7、id input(Student *r); /輸入void output(Student *r); /輸出void searchexamnum(Student *r); /按學(xué)號及年份查找void searchname(Student *r); /按姓名及年份查找void change(Student *r); /按準(zhǔn)考證號及年份修改信息Student *insert(Student *r); /插入信息void shanchu(Student *r); /按準(zhǔn)考證號及年份刪除信息void maopao(Student *r); /按數(shù)據(jù)結(jié)構(gòu)降序(冒泡)排序void xuanze(Studen
8、t *r); /按總分降序(選擇)排序void tongji(Student *r); /統(tǒng)計各科總分和平均分信息void main()cout<<"輸入學(xué)生的個數(shù):"cin>>examnum;Student *p=(Student *)new Studentexamnum;/定義指針數(shù)組,存放學(xué)生個數(shù)int m;docout<<endl;cout<<endl;cout<<"t*菜單欄*n"<<endl;cout<<"t* 1 輸入學(xué)生信息并保存到文件 2 讀取
9、文件并輸出學(xué)生信息 *"<<endl;cout<<"t* 3 按準(zhǔn)考證號及年份查詢 4 按姓名及年份查詢 *"<<endl;cout<<"t* 5 按學(xué)號及學(xué)期修改信息 6 插入信息 *"<<endl;cout<<"t* 7 按學(xué)號及年份刪除信息 8 按數(shù)據(jù)結(jié)構(gòu)降序(冒泡)排序 *"<<endl;cout<<"t* 9 按總分降序(選擇)排序 10 統(tǒng)計各科成績的總分和平均分 *"<<endl;co
10、ut<<"t* 11 退出 *"<<endl;cout<<"t*n"<<endl;cout<<"請選擇:"cin>>m;switch(m)case 1: input(p);break;case 2:output(p);break;case 3: searchexamnum(p);break;case 4: searchname(p);break;case 5: change(p);break;case 6: p=insert(p);break;case 7: sh
11、anchu(p);break;case 8: maopao(p);break;case 9:xuanze(p);break;case 10: tongji(p);break;case 11:break;while(m!=11); void input(Student *r) /輸入信息FILE *fp;int n=0;int i;int t=0; /t為控制標(biāo)量,1為找到,0為未找到 cout<<endl<<"=>> 請輸入學(xué)生信息 <<="<<endl;for(i=0;i<examnum;i+)cout&l
12、t;<"請輸入年份:"cin>>ri.year;cout<<"請輸入第"<<i+1<<"個人的準(zhǔn)考證號:"cin>>ri.examnum; if(i>=1)for(n=0;n<i;n+)if(rn.examnum=ri.examnum) cout<<"該準(zhǔn)考證號已存在!"<<endl;t=1;if(t=1)/表示有重復(fù)i-;t=0;continue;cout<<"請輸入姓名:"cin
13、>>;cout<<"請輸入 聽力 成績:"cin>>ri.mark1;cout<<"請輸入 閱讀 成績:"cin>>ri.mark2;cout<<"請輸入 綜合 成績:"cin>>ri.mark3;ri.sum=ri.mark1+ri.mark2+ri.mark3;ri.average=(ri.mark1+ri.mark2+ri.mark3)/3;if(fp=fopen("student.txt","w&qu
14、ot;)=NULL) cout<<"文件不能打開"<<endl;exit(0); for(n=0;n<i;n+)fprintf(fp,"%d %s %.1f %.1f %.1f %d %.1f %.1f",rn.examnum,,rn.mark1,rn.mark2,rn.mark3,rn.year,rn.sum,rn.average);fprintf(fp,"n");fclose(fp);cout<<"文件已經(jīng)寫入"<<endl;void outp
15、ut(Student *r) /輸出信息int m;system("cls");if(examnum>0)FILE *fp;if(fp=fopen("student.txt","r")=NULL) cout<<"文件不能打開"<<endl;exit(0); for(int n=0;n<examnum;n+)fscanf(fp,"%d%s%f%f%f%d%f%f",&rn.examnum,,&rn.mark1,&rn.mar
16、k2,&rn.mark3,&rn.year,&rn.sum,&rn.average);fclose(fp);cout<<"文件已經(jīng)讀入"<<endl;cout<<"*學(xué)生信息如下*"<<endl;cout<<"準(zhǔn)考證號"<<setw(6)<<"姓名"<<setw(10)<<"聽力"<<setw(10)<<"閱讀"&
17、lt;<setw(10)<<"綜合"<<setw(6)<<"年份"<<setw(6)<<"總分"<<setw(8)<<"平均分"<<endl;cout<<"-"<<endl;for(m=0;m<examnum;m+)cout<<rm.examnum<<setw(6)<<<<setw(7)<<r
18、m.mark1<<setw(10)<<rm.mark2<<setw(10)<<rm.mark3<<setw(8)<<rm.year<<setw(6)<<rm.sum<<setw(6)<<rm.average<<endl;cout<<"00"<<endl;elsecout<<"未輸入任何信息!"<<endl;void searchexamnum(Student *r) /按準(zhǔn)考證
19、號及年份查找int n,k;system("cls");if(examnum>0)cout<<"請輸入要查找學(xué)生的準(zhǔn)考證號:"cin>>n;cout<<"請輸入年份號:"cin>>k;for(int m=0;m<examnum;m+)if(rm.examnum=n&&rm.year=k)/如果找到了輸出并跳出循環(huán)cout<<endl;cout<<"-要查找的信息如下-"<<endl;cout<<
20、;"準(zhǔn)考證號"<<setw(6)<<"姓名"<<setw(10)<<"聽力"<<setw(10)<<"閱讀"<<setw(10)<<"綜合"<<setw(6)<<"年份"<<setw(6)<<"總分"<<setw(8)<<"平均分"<<endl;cout<
21、;<rm.examnum<<setw(6)<<<<setw(7)<<rm.mark1<<setw(10)<<rm.mark2<<setw(10)<<rm.mark3<<setw(8)<<rm.year<<setw(6)<<rm.sum<<setw(8)<<rm.average<<endl;break;if(rm.examnum!=n&&rm.year!=k) /若沒找到提示不存在c
22、out<<"該準(zhǔn)考證號不存在,或沒有這個年份的成績!"<<endl;elsecout<<"未輸入任何信息!"<<endl;void searchname(Student *r) /按姓名及年份查找char n12;int k;system("cls");if(examnum>0) /如果沒輸入就查找提示cout<<"請輸入要查找學(xué)生的姓名:"cin>>n;cout<<"請輸入年份號:"cin>>
23、k;for(int m=0;m<examnum;m+)if(0=n0&&rm.year=k) /如果找到了輸出并跳出循環(huán)cout<<endl;cout<<"-要查找的信息如下-"<<endl;cout<<"準(zhǔn)考證號"<<setw(6)<<"姓名"<<setw(10)<<"聽力"<<setw(10)<<"閱讀"<<setw(10)&
24、lt;<"綜合"<<setw(6)<<"年份"<<setw(6)<<"總分"<<setw(8)<<"平均分"<<endl;cout<<rm.examnum<<setw(6)<<<<setw(7)<<rm.mark1<<setw(10)<<rm.mark2<<setw(10)<<rm.mark3<<
25、;setw(8)<<rm.year<<setw(6)<<rm.sum<<setw(8)<<rm.average<<endl;break;if(0!=n0&&rm.year!=k) /若沒找到提示不存在cout<<"該姓名不存在,或沒有這個年份的成績!"<<endl;elsecout<<"未輸入任何信息!"<<endl;void change(Student *r)/修改信息FILE *fp;int n=0;
26、char chiose='Y'if(examnum>0)int n,k;int t=0;system("cls");cout<<"輸入要修改成績的學(xué)生準(zhǔn)考證號:"cin>>n;cout<<"所需修改的年份:"cin>>k;for(int m=0;m<examnum;m+)if(rm.examnum=n&&rm.year=k)int j;cout<<endl;cout<<"-修改前的信息如下-"<
27、<endl;cout<<"準(zhǔn)考證號"<<setw(6)<<"姓名"<<setw(10)<<"聽力"<<setw(10)<<"閱讀"<<setw(10)<<"綜合"<<setw(6)<<"年份"<<setw(6)<<"總分"<<setw(8)<<"平均分"
28、<<endl;cout<<rm.examnum<<setw(6)<<<<setw(7)<<rm.mark1<<setw(10)<<rm.mark2<<setw(10)<<rm.mark3<<setw(8)<<rm.year<<setw(6)<<rm.sum<<setw(8)<<rm.average<<endl;cout<<endl;while (chiose='
29、;Y'|chiose='y')cout<<"ttt*可以修改的項目如下*n"<<endl; cout<<"ttt 1.修改學(xué)生的 聽力 成績記錄n"<<endl; cout<<"ttt 2.修改學(xué)生的 閱讀 成績記錄n"<<endl; cout<<"ttt 3.修改學(xué)生的 綜合 成績記錄n"<<endl; cout<<"請選擇:" cin>>j;swit
30、ch(j)case 1:cout<<"輸入新的 聽力 成績:" cin>>rm.mark1; break; case 2: cout<<"輸入新的 閱讀 成績:" cin>>rm.mark2; break; case 3: cout<<"輸入新的 綜合 成績:" cin>>rm.mark3; break;t=1;printf("是否要繼續(xù)修改此學(xué)生的其他成績記錄呢?(Y/N)");fflush(stdin);/清空輸入緩沖區(qū),通常是為了確保不影
31、響后面的數(shù)據(jù)讀取scanf("%c",&chiose);elsecout<<"未輸入任何信息!"<<endl;if(fp=fopen("student.txt","w")=NULL) cout<<"文件不能打開"<<endl;exit(0); for(n=0;n<examnum;n+)fprintf(fp,"%d %s %.1f %.1f %.1f %d %.1f %.1f",rn.examnum,,
32、rn.mark1,rn.mark2,rn.mark3,rn.year,rn.sum,rn.average);fprintf(fp,"n");fclose(fp);cout<<"文件已修改并寫入"<<endl;Student *insert(Student *r) /插入FILE *fp;int m;char n;doif(fp=fopen("student.txt","r")=NULL) cout<<"文件不能打開"<<endl;exit(0);
33、for(int o=0;o<examnum;o+)fscanf(fp,"%d%s%f%f%f%d%f%f",&ro.examnum,,&ro.mark1,&ro.mark2,&ro.mark3,&ro.year,&ro.sum,&ro.average);Student *y=(Student *)new Studentexamnum+1; /定義另一個數(shù)組,用于存放新添加的記錄for(m=0;m<examnum;m+)ym=rm;r=y;cout<<"請輸入年份:&quo
34、t;cin>>rexamnum.year;cout<<"請輸入準(zhǔn)考證號:"cin>>rexamnum.examnum;cout<<"請輸入姓名:"cin>>;cout<<"請輸入 聽力 成績:"cin>>rexamnum.mark1;cout<<"請輸入 閱讀 成績:"cin>>rexamnum.mark2;cout<<"請輸入 綜合 成績:"cin&
35、gt;>rexamnum.mark3;rexamnum.sum=rexamnum.mark1+rexamnum.mark2+rexamnum.mark3;/計算總分rexamnum.average=(rexamnum.mark1+rexamnum.mark2+rexamnum.mark3)/3;examnum+;cout<<"是否繼續(xù)輸入?(繼續(xù),輸入y,否則輸入其他)"<<endl;cin>>n;while(n='y');if(fp=fopen("student.txt","w&quo
36、t;)=NULL)cout<<"文件不能打開"<<endl;exit(0); for(n=0;n<examnum;n+)fprintf(fp,"%d %s %.1f %.1f %.1f %d %.1f %.1f",rn.examnum,,rn.mark1,rn.mark2,rn.mark3,rn.year,rn.sum,rn.average);fprintf(fp,"n");fclose(fp);cout<<"文件已經(jīng)寫入"<<endl;retur
37、n r;void shanchu(Student *r) /刪除FILE *fp;if(examnum>0)if(fp=fopen("student.txt","r")=NULL) cout<<"文件不能打開"<<endl;exit(0); for(int o=0;o<examnum;o+)fscanf(fp,"%d%s%f%f%f%d%f%f",&ro.examnum,,&ro.mark1,&ro.mark2,&ro.mark3,&
38、amp;ro.year,&ro.sum,&ro.average);int n,k,t=0;cout<<"請輸入要刪除學(xué)生的準(zhǔn)考證號:"cin>>n;cout<<"請輸入要刪除成績的年份:"cin>>k;for(int m=0;m<examnum;m+)if(rm.examnum=n&&rm.year=k) for(int k=m;k<examnum;k+) /循環(huán)把后一位的信息提前一位rk=rk+1;examnum-; /整體數(shù)量減一t=1; /標(biāo)志變量 1為找到
39、0為未找到 if(fp=fopen("student.txt","w")=NULL) cout<<"文件不能打開"<<endl;exit(0); for(n=0;n<examnum;n+)fprintf(fp,"%d %s %.1f %.1f %.1f %d %.1f %.1f",rn.examnum,,rn.mark1,rn.mark3,rn.mark3,rn.year,rn.sum,rn.average);fprintf(fp,"n");fclos
40、e(fp);cout<<"文件已經(jīng)寫入"<<endl;if(t=0)cout<<"該準(zhǔn)考證號不存在!"<<endl;elsecout<<"未輸入任何信息!"<<endl;void maopao(Student *r) /按數(shù)據(jù)結(jié)構(gòu)成績冒泡降序排序FILE *fp;if(examnum>0)if(fp=fopen("student.txt","r")=NULL) cout<<"文件不能打開"
41、;<<endl;exit(0); for(int n=0;n<examnum;n+)fscanf(fp,"%d%s%f%f%f%d%f%f",&rn.examnum,,&rn.mark1,&rn.mark2,&rn.mark3,&rn.year,&rn.sum,&rn.average);for(int k=0;k<examnum-1;k+)for(int m=0;m<examnum-k;m+) Student max;if(rm.mark2<rm+1.mark2) ma
42、x=rm+1;rm+1=rm;rm=max; cout<<"排序完畢"<<endl;if(fp=fopen("student.txt","w")=NULL) cout<<"文件不能打開"<<endl;exit(0); for(n=0;n<examnum;n+)fprintf(fp,"%d %s %.1f %.1f %.1f %d %.1f %.1f",rn.examnum,,rn.mark1,rn.mark2,rn.mark3,
43、rn.year,rn.sum,rn.average);fprintf(fp,"n");fclose(fp);cout<<"文件已經(jīng)寫入"<<endl;elsecout<<"未輸入任何信息!"<<endl;void xuanze(Student *r) /按總分選擇降序排序FILE *fp;if(examnum>0)if(fp=fopen("student.txt","r")=NULL) cout<<"文件不能打開&quo
44、t;<<endl;exit(0); for(int n=0;n<examnum;n+)fscanf(fp,"%d%s%f%f%f%d%f%f",&rn.examnum,,&rn.mark1,&rn.mark2,&rn.mark3,&rn.year,&rn.sum,&rn.average);for(int i=0;i<examnum;i+)int max=i;for(int j=i;j<examnum;j+)if(rmax.sum<rj.sum)max=j;Student temp;temp=rmax;rmax=ri;ri=temp;cout<<"排序完畢"<<endl;if(fp=fopen("student.txt","w")=NULL) cout<<"文件不能打開"<<endl;exit(0); for(n=0;n<examnum;n+)fprintf(fp,"%d %s %.1f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多人合作合同協(xié)議
- 三農(nóng)產(chǎn)品質(zhì)量安全監(jiān)管作業(yè)指導(dǎo)書
- 項目開發(fā)合作協(xié)議
- 預(yù)制蓋板施工技術(shù)方案
- 2024年微波器件及電路項目資金需求報告
- 2025年上半年宜春市事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽銅陵市人民政府信訪局招聘1人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽宿州市埇橋區(qū)事業(yè)單位招考(303人)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽安慶市大觀區(qū)事業(yè)單位公開招聘工作人員14人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽大別山產(chǎn)業(yè)投資發(fā)展集團(tuán)限公司公開招聘人員易考易錯模擬試題(共500題)試卷后附參考答案
- DL∕T 1529-2016 配電自動化終端設(shè)備檢測規(guī)程
- 2024年廣東深圳市中考英語試卷試題真題及答案(精校打印版)
- CJJ12-2013 家用燃?xì)馊紵骶甙惭b及驗收規(guī)程
- 2024年湖南鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 2024年2天津理工大學(xué)馬克思主義基本原理概論(期末考試題+答案)
- 2023年保險理賠半年工作總結(jié)
- 趙尚志愛國主義教育班會
- 苗族文化小鎮(zhèn)規(guī)劃方案
- 仔豬購銷合同(豬苗購銷合同)1
- 供電公司一把手講安全
- 中國常見食物營養(yǎng)成分表
評論
0/150
提交評論