




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、機(jī)電工程學(xué)院 中 南 大 學(xué) C+可視化程序設(shè)計實踐題 目: 學(xué)生成績管理系統(tǒng) 成員姓名: 000000000班級: 0000000 學(xué) 號: 00000000 指導(dǎo)教師: 00000 學(xué) 院: 機(jī) 電 工 程 學(xué) 院 完成時間: 2012 年 6 月 28 日 中 南 大 學(xué)C+可視化程序設(shè)計實踐成績評定表 姓名班次學(xué)號成績 指導(dǎo)教師簽名:_ 2012年_月_日 設(shè)計任務(wù)書 設(shè)計題目:學(xué)生成績管理系統(tǒng)設(shè)計目的:運(yùn)用c+的相關(guān)知識制作一個小型的管理系統(tǒng),把理論知識轉(zhuǎn)化為實踐操作。提高對知識運(yùn)用能力。設(shè)計安排:1、在網(wǎng)上、圖書館等查找相關(guān)資料,搜集、整理相關(guān)模塊的程序源代碼;2、完成完成一份課程
2、設(shè)計報告3、報告格式:一級標(biāo)題:3號黑體,二、三級標(biāo)題小四黑體,正文小四宋體,行距23,程序代碼5號宋體4、此程序應(yīng)包含如下功能:(1)所有記錄保存在一個數(shù)據(jù)文件中;(2)具備記錄添加功能;(3)查詢功能(如按學(xué)號查詢成績);(4)計算統(tǒng)計功能(如統(tǒng)計某門課程的平均成績);(5)排序功能(如按成績排序);(6)修改功能; 目錄1、總體設(shè)計方案2、運(yùn)行實例及使用說明3、項目源程序代碼4、課程設(shè)計心得1、 總體設(shè)計方案 創(chuàng)建一個類用于存放學(xué)生的信息,對各個功能模塊進(jìn)行函數(shù)設(shè)計,在寫出各個功能函數(shù)后,在主函數(shù)中運(yùn)用switch語句實現(xiàn)對各個功能函數(shù)的調(diào)用實現(xiàn)特定的功能。 流程圖:Read Save
3、DeleteMain主函數(shù)Menu(選擇判斷) Input DisplaySortSearch Insert Modify2、運(yùn)行實例及使用說明運(yùn)行實例 1、主界面2、 錄入記錄3、顯示所有數(shù)據(jù)4、按平均分降序排4、插入一組數(shù)據(jù)5、查找并顯示一組數(shù)據(jù)6、修改一組數(shù)據(jù)7、刪除一組數(shù)據(jù)8、將所有記錄寫入文件使用說明 用戶運(yùn)行程序后進(jìn)入系統(tǒng)主界面,在主界面用戶可以輸入新的數(shù)據(jù)文件。用戶輸入數(shù)據(jù)要符合操作系統(tǒng)的要求,當(dāng)用戶錄入新的數(shù)據(jù)后,可對已有數(shù)據(jù)進(jìn)行顯示、插入、修改、刪除等操作。3、源程序代碼#include<iostream.h> /*引用庫函數(shù)*/ #include<stdl
4、ib.h> #include<ctype.h> #include<stdio.h> #include<string.h> typedef struct char class_020; /*班級*/ int number; /*學(xué)號*/ char name20; /*姓名*/ float c_program; /*C+語言成績*/ float english; /*大學(xué)英語成績*/ float math; /*高等數(shù)學(xué)成績*/ float sport; /*體育成績*/ float summary; /*總分*/ float average; /*平均分
5、*/ Student; Student stu100; /*結(jié)構(gòu)體數(shù)組變量*/ int menu() /*菜單函數(shù)*/ char c; do system("cls"); /*運(yùn)行前清屏*/ cout<<"*學(xué)生成績管理系統(tǒng)*"<<endl;/*菜單選擇*/ cout<<"【1】輸入數(shù)據(jù)"<<endl; cout<<"【2】顯示所有數(shù)據(jù)"<<endl; cout<<"【3】按平均分降序排列"<<end
6、l; cout<<"【4】查找并顯示一組數(shù)據(jù)"<<endl; cout<<"【5】插入一組數(shù)據(jù)"<<endl; cout<<"【6】修改一組數(shù)據(jù)"<<endl; cout<<"【7】刪除一組數(shù)據(jù)"<<endl; cout<<"【8】從文件中讀入數(shù)據(jù)"<<endl; cout<<"【9】將所有記錄寫入文件"<<endl; cout<
7、;<"【0】退出本系統(tǒng)n"<<endl; cout<<"請你選擇操作(0-9):"<<endl; c=getchar(); /*讀入選擇*/ while(c<'0'|c>'9'); return(c-'0'); /*返回選擇*/ int Input(Student stud,int n) /*輸入若干條記錄*/ int i=0; char sign,x10; /*x10為清除多余的數(shù)據(jù)所用*/ while(sign!='n'&&a
8、mp;sign!='N') /*判斷*/ cout<<"請輸入學(xué)生的班別:" /*交互輸入*/ cin>>studn+i.class_0; cout<<"請輸入學(xué)生的學(xué)號:" cin>>studn+i.number; cout<<"請輸入學(xué)生的姓名:" cin>>studn+; cout<<"請輸入該學(xué)生C+程序設(shè)計的成績:" cin>>studn+i.c_program; cout<&
9、lt;"請輸入該學(xué)生大學(xué)英語的成績:" cin>>studn+i.english; cout<<"請輸入該學(xué)生高等數(shù)學(xué)的成績:" cin>>studn+i.math; cout<<"請輸入該學(xué)生大學(xué)體育的成績:" cin>>studn+i.sport; studn+i.summary=studn+i.c_program+studn+i.english+studn+i.math+studn+i.sport;studn+i.average=studn+i.summary/4; c
10、out<<"該學(xué)生的總分為:"<<studn+i.summary<<"平均分為:"<<studn+i.average<<endl; gets(x); /*清除多余的輸入*/ cout<<"=>提示:繼續(xù)寫入成績?(Y/N)" cin>>sign; /*輸入判斷*/ i+; return(n+i); void Display(Student stud,int n) /*顯示所有記錄*/ int i; if(!stud)cout<<&qu
11、ot;沒有記錄" else cout<<"-"<<endl; /*格式頭*/ cout<<"班別 學(xué)號 姓名 C+ 英語 數(shù)學(xué) 體育 總分 平均分"<<endl; cout<<"-"<<endl; for(i=1;i<n+1;i+) /*循環(huán)輸入*/ studi-1.summary=studi-1.c_program+studi-1.english+studi-1.math+studi-1.sport; studi-1.average=studi-
12、1.summary/4; cout<<studi-1.class_0<<" "<<studi-1.number<<" "<<<<" "<<studi-1.c_program<<" "<<studi-1.english<<" "<<studi-1.math<<" "<<studi-1.sport<
13、;<" "<<studi-1.summary<<" "<<studi-1.average<<endl; cout<<"ttt"<<endl; system("pause"); void Sort(Student stud,int n) /*按平均分排序*/ int i,j,k; float s; char t20; for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(studj
14、.average<studj+1.average) strcpy(t,studj+1.class_0); strcpy(studj+1.class_0,studj.class_0); strcpy(studj.class_0,t); k=studj+1.number; studj+1.number=studj.number; studj.number=k; strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(,t); s=studj+1.c_program; studj+1.c_program
15、=studj.c_program; studj.c_program=s;s=studj+1.english; studj+1.english=studj.english; studj.english=s; s=studj+1.math; studj+1.math=studj.math; studj.math=s; s=studj+1.sport; studj+1.sport=studj.sport; studj.sport=s; s=studj+1.summary; studj+1.summary=studj.summary; studj.summary=s; s=studj+1.averag
16、e; studj+1.average=studj.average; studj.average=s; cout<<"-"<<endl; /*格式頭*/ cout<<"班別 學(xué)號 姓名 電子 C+ 多媒體 英語 數(shù)學(xué) 體育 政治 總分 平均分"<<endl; cout<<"-"<<endl; for(i=1;i<n+1;i+) /*循環(huán)輸入*/ studi-1.summary=studi-1.c_program+studi-1.english+studi-1.
17、math+studi-1.sport; studi-1.average=studi-1.summary/4; cout<<studi-1.class_0<<" "<<studi-1.number<<" "<<<<" "<<studi-1.c_program<<" "<<studi-1.english<<" "<<studi-1.math<
18、;<" "<<studi-1.sport<<" "<<studi-1.summary<<" "<<studi-1.average<<endl; int Insert(Student stud,int n) /*插入一條記錄*/ char x10; /*清除多余輸入所用*/ cout<<"請輸入學(xué)生的班別:"<<endl; /*交互輸入*/ cin>>studn.class_0; cout<<
19、"請輸入學(xué)生的學(xué)號:" cin>>studn.number; cout<<"請輸入學(xué)生的姓名:" cin>>; cout<<"請輸入該學(xué)生C+程序設(shè)計的成績:" cin>>studn.c_program; cout<<"請輸入該學(xué)生大學(xué)英語的成績:" cin>>studn.english; cout<<"請輸入該學(xué)生高等數(shù)學(xué)的成績:" cin>>studn.math;
20、cout<<"請輸入該學(xué)生大學(xué)體育的成績:" cin>>studn.sport; studn.summary=studn.c_program+studn.english+studn.math+studn.sport; studn.average=studn.summary/4; gets(x); n+; Sort(stu,n); /*調(diào)用排序函數(shù)*/ cout<<"=>提示:插入成功!"<<endl; /*返回成功信息*/ return(n); int Delete(Student stud,int
21、n) /*按學(xué)號查找,刪除一條記錄*/ int s; int i=0,j; cout<<"輸入需要刪除學(xué)生的學(xué)號:"<<endl; /*交互式問尋*/ cin>>s; while(studi.number-s)!=0&&i<n) i+; /*查找判斷*/ if(i=n) cout<<"=>提示:對不起,無法找到該學(xué)號"<<endl; /*返回失敗信息*/ return(n); for(j=i;j<n-1;j+) /*刪除操作*/ strcpy(studj.cla
22、ss_0,studj+1.class_0); studj.number=studj+1.number; strcpy(,studj+1.name); studj.c_program=studj+1.c_program; studj.english=studj+1.english; studj.math=studj+1.math; studj.sport=studj+1.sport; cout<<"=>提示:已成功刪除!"<<endl; /*返回成功信息*/ return(n-1); void Search(Student s
23、tud,int n) /*查找并顯示一個記錄*/ int s; int i=0; cout<<"輸入需要查找學(xué)生的學(xué)號:"<<endl; cin>>s; while(studi.number-s)!=0&&i<n) i+; /*查找判斷*/ if(i=n) cout<<"=>提示:對不起,無法找到該學(xué)生的信息!"<<endl; /*輸入失敗信息*/ return; cout<<"-"<<endl; cout<<&
24、quot;班別:"<<studi.class_0<<endl; /*輸出該學(xué)生信息*/ cout<<"學(xué)號:"<<studi.number<<endl; cout<<"姓名:"<<<<endl; cout<<"C+程序設(shè)計:"<<studi.c_program<<endl; cout<<"大學(xué)英語:"<<studi.english&
25、lt;<endl; cout<<"高等數(shù)學(xué):"<<studi.math<<endl; cout<<"大學(xué)體育:"<<studi.sport<<endl; cout<<"總分:"<<studi.summary<<endl; cout<<"平均分:"<<studi.average<<endl; void Modify(Student stud,int n) int s;
26、int i=0; cout<<"輸入需要修改成績學(xué)生的學(xué)號:"<<endl; cin>>s; while(studi.number-s)!=0&&i<n) i+; /*查找判斷*/ if(i=n) cout<<"=>提示:對不起,無該學(xué)生的成績"<<endl; /*輸入失敗信息*/ return; cout<<"-該學(xué)生的信息-"<<endl; /*格式頭*/ cout<<"班別 學(xué)號 姓名 電子 C+
27、 多媒體 英語 數(shù)學(xué) 體育 政治 總分 平均分"<<endl; cout<<"-"<<endl; studi.summary=studi.c_program+studi.english+studi.math+studi.sport; studi.average=studi.summary/4; cout<<studi-1.class_0<<" "<<studi-1.number<<" "<<<<
28、" "<<studi-1.c_program<<" "<<studi-1.english<<" "<< studi-1.math<<" "<<studi-1.sport<<" "<<studi-1.summary<<" "<<studi-1.average<<endl; cout<<"請輸入學(xué)生的班別:"
29、;<<endl; /*交互輸入*/ cin>>studn+i.class_0; cout<<"請輸入學(xué)生的學(xué)號:"<<endl; cin>>studn+i.number; cout<<"請輸入學(xué)生的姓名:"<<endl; cin>>studn+; cout<<"請輸入該學(xué)生C+程序設(shè)計的成績:"<<endl; cin>>studn+i.c_program; cout<<"
30、請輸入該學(xué)生大學(xué)英語的成績:"<<endl; cin>>studn+i.english; cout<<"請輸入該學(xué)生高等數(shù)學(xué)的成績:"<<endl; cin>>studn+i.math; cout<<"請輸入該學(xué)生大學(xué)體育的成績:"<<endl; cin>>studn+i.sport; studi.summary=studi.c_program+studi.english+studi.math+studi.sport; studi.average=s
31、tudi.summary/4; cout<<"該學(xué)生的總分為:"<<studi.summary<<"平均分為:"<<studi.average; int Read(Student stud,int n) /*從文件中讀入數(shù)據(jù)*/ int i=0,num; FILE *fp; /*定義文件指針*/ char filename20; /*定義文件名*/ cout<<"輸入文件名:"<<endl; cin>>filename; /*輸入文件名*/ if(fp
32、=fopen(filename,"rb")=NULL) /*打開文件*/ cout<<"=>提示:無法打開這個文件!"<<endl; /*打開失敗信息*/ cout<<"ttt" system("pause"); return(n); fscanf(fp,"%d",&num); /*讀入總記錄量*/ while(i<num) /*循環(huán)讀入數(shù)據(jù)*/ fscanf(fp,"%s%d%s%f%f%f%f%f%f%f%f%f",
33、studn+i.class_0,&studn+i.number,studn+,&studn+i.c_program,&studn+i.english,&studn+i.math,&studn+i.sport,&studn+i.summary,&studn+i.average); i+; n+=num; fclose(fp); /*關(guān)閉文件*/ cout<<"=>提示:讀入數(shù)據(jù)成功,可選擇【顯示所有成績】查看"<<endl; cout<<"ttt"
34、 system("pause"); return(n); void Save(Student stud,int n) /*將所有記錄寫入文件*/ int i=0; FILE *fp; /*定義文件指針*/ char filename20; /*定義文件名*/ cout<<"輸入文件名:" /*輸入文件名*/ cin>>filename; if(fp=fopen(filename,"w")=NULL) /*打開文件*/ cout<<"=>提示:無法打開這個文件!"<&l
35、t;endl; system("pause"); return; fprintf(fp,"%dn",n); /*循環(huán)寫入數(shù)據(jù)*/ while(i<n) fprintf(fp,"%-8s%-8d%-6s%-6.1f%-7.1f%-7.1f%-6.1f%-6.1f%-6.1f%-7.1f%-8.1f%-6.2n",studi.class_0,studi.number,,studi.c_program,studi.english, studi.math,studi.sport,studi.summary,studi
36、.average); i+; fclose(fp); /*關(guān)閉文件*/ cout<<"=>提示:已成功寫入數(shù)據(jù)!"<<endl; /*返回成功信息*/ void main() /*主函數(shù)*/ int n=0; for(;) switch(menu() /*選擇判斷*/ case 1: cout<<endl<<"=>> 輸入成績 <<="<<endl; /*輸入若干條記錄*/ n=Input(stu,n); break; case 2: cout<<end
37、l<<"=>> 顯示所有記錄 <<="<<endl; /*顯示所有記錄*/ Display(stu,n); break; case 3: cout<<endl<<"=>> 按平均分降序排列 <<="<<endl; Sort(stu,n); /*按學(xué)號排序*/ cout<<"排序成功!"<<endl; cout<<"ttt" system("pause"); break; case 4: cout<<endl<<"=>> 查找并顯示一組成績 <<="<<endl; Search(stu,n); /*插入一條記錄*/ cout<<"ttt" system("pause");
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州省黔東南、黔南、黔西南2025屆英語八年級第二學(xué)期期中綜合測試試題含答案
- 2025年銀發(fā)消費(fèi)市場:高品質(zhì)養(yǎng)老服務(wù)需求研究報告001
- 新能源汽車租賃服務(wù)在2025年新能源環(huán)衛(wèi)車市場的應(yīng)用前景報告
- 2025年農(nóng)業(yè)科技創(chuàng)新成果轉(zhuǎn)化機(jī)制報告:科技成果轉(zhuǎn)化機(jī)制創(chuàng)新與政策支持
- 商業(yè)銀行金融科技人才金融科技人才培養(yǎng)與人才培養(yǎng)評價研究報告
- 制造業(yè)綠色供應(yīng)鏈管理在綠色制造與綠色產(chǎn)業(yè)政策創(chuàng)新報告
- 2025年二手交易電商平臺信用評價體系與市場發(fā)展趨勢研究報告001
- 2025屆上海市長寧區(qū)八下英語期中統(tǒng)考模擬試題含答案
- 2025年醫(yī)院電子病歷系統(tǒng)在醫(yī)院信息化中的數(shù)據(jù)備份優(yōu)化報告
- 2025年養(yǎng)老金制度改革對金融市場投資機(jī)會與風(fēng)險規(guī)避研究報告
- 曹楊二中數(shù)學(xué)試卷
- 農(nóng)業(yè)企業(yè)資產(chǎn)重組方案
- 幼兒園食堂舉一反三自查報告
- 患者發(fā)生窒息的應(yīng)急
- 《環(huán)氧樹脂生產(chǎn)工藝》課件
- 冶金員工安全培訓(xùn)
- 合理雅思學(xué)習(xí)計劃
- 腹股溝疝護(hù)理新進(jìn)展
- 機(jī)修工2025年上半年工作總結(jié)范文
- 食品標(biāo)準(zhǔn)操作規(guī)程
- 《人民法院》課件
評論
0/150
提交評論