下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、*實踐教學*XXX大學計算機與通信學院2015年秋季學期C+程序設計課程設計目:學生成績管理系統(tǒng)學號:專業(yè)班級: 姓 名: 指導教師:學生成績管理系統(tǒng)摘要:本次課程設計釆用面向對象C+語言,開發(fā)了一個基本的學生成績管理系 統(tǒng),該系統(tǒng)具備了按班級完成對學生成績信息的錄入和修改,并用文件保存。實 現(xiàn)按班級輸出學生的成績單;實現(xiàn)按學號和姓名進行查詢,按平均成績進行排序 功能,對學生的管理也可以更加方便快捷。采用的的方法和過程:(1)將學生的信息存入文件中,并命名為:score, txt;(2)編譯一個C+語言函數,其中包含三個類:Person類(人員的基本屬性),student類(繼承Person)
2、 , Manage類(實現(xiàn)對成績信息的操作)。(輸入學號時必須是6位以上字符串,不允許重復。)意義:使學生對成績管理有所了解,并且培養(yǎng)學生的分析能力和動手能力、增強學生對 課本理論知識的鞏固。關鍵詞:面向對象C+;課程設計;學生成績管理系統(tǒng)。2需求分析42.1產品需求磁42.1.1功能簡介42.1.2運的境52.1.3限制條件(可選)52.2功能需求52. 2.1 功能 162. 2. 2 功能 262. 2. 3 功能 362. 2.4 功能 46管理員可以按照班級輸出學生成績單2. 2.5 功能 52. 2. 6 功能 6退出系統(tǒng)2. 3數據描述3概要73詳細設計73.1系統(tǒng)主要函數說明7
3、3.1.1函數7源程序:16學生成績管理系統(tǒng)(1)以學校學生成績管理業(yè)務為背景,通過調研、分析現(xiàn)有的管理模式和己有 的管理軟件,建立系統(tǒng)模型;(2)完成軟件結構設計和算法設計;(3)完成系統(tǒng)的軟件開發(fā)和測試工作;(4)撰寫設計說明書;(5)做好答辯工作。2需求分析2.1產品需求概述2.1.1功能簡介1. 學生成績管理在日常生活中運用十分廣泛,因此需要用許多程序來對它們進行 管理,此程序包含了學生成績的錄入,學生成績的查詢和排序,學生成績添加及 修改等。2.1.2運行環(huán)境1. 硬件環(huán)境:主機、顯示器、優(yōu)盤、外部設備等。2. 軟件環(huán)境:操作系統(tǒng)、網絡軟件、數據庫系統(tǒng)以及其它特殊軟件要求。2.1.3
4、限制條件(可選)(1)必須使用或者避免的特定技術、工具、編程語言和數據庫;(2)目前所掌握的只是較少,對于有些函數不能很好的編譯,使系統(tǒng)不能完成 一些高端的任務;(3)系統(tǒng)對外部因素存在依賴,需要有其他組件的參與才能夠完成任務。2. 2功能需求按班級完成對學生成績信息的錄入和修改,并用文件保存。實現(xiàn)按班級輸出學生的成績單;實現(xiàn)按學號和姓名進行查詢,按平均成績進行排序功能。2. 2.1功能1按班錄入所有的學生成績信息管理員可以錄入學生的班級,姓名,學號,各科成績等信息。2. 2.2功能2查詢個人成績(擁有二級菜單:學號,姓名)可以通過輸入學號或姓名查詢學生成績。2. 2.3功能3修改成績(按學號
5、,課程)管理員可以修改學生信息。2. 2.4功能4按班輸出成績單管理員可以按照班級輸出學生成績單。2. 2.5功能5按平均分顯示可以直接按照平均分顯示學生成績。2. 2.6功能6退出系統(tǒng)2. 3數據描述學生成績管理系統(tǒng)按班 錄入 學生 成績査詢 個人 成績修按班改輸出成學生績成績r按平 均分 顯示退出 系統(tǒng)按學 號查 詢按姓 名查 詢3概要本系統(tǒng)主要依據學生成績管理為背景,進行軟件的設計和開發(fā)。該系統(tǒng)主要通過 三個類,一個文件用于錄入學生成績信息。分為五大模塊,以完成對學生成績的 錄入,查詢,修改,顯示,輸出等功能。3詳細設計3.1系統(tǒng)主要函數說明1)主函數main():定義學生結構體數組,調
6、用錄入、統(tǒng)計等函數對成績表進行處理;2)錄入函數IiiputQ:輸入班級到政治課成績:3)統(tǒng)計函數StatisticQ:計算平均成績;4)查詢函數LookupQ:查詢指定學號學生成績記錄;5)修改函數Modi®():修改指定學號學生成績記錄:6)刪除函數DeleteQ:刪除指定學號學生記錄;7)輸出函數OutputQ:輸出班級所有學生成績記錄:8)排序函數Sort。:按平均分對學生成績記錄項進行降序排序;9)插入函數Insert。:按平均分順序插入新記錄。3.1.1函數【功能】主函數根據學生成績管理系統(tǒng)的要求,對學生成績等信息實現(xiàn)錄入,查詢,修改,輸出, 顯示等功能。4系統(tǒng)測試界面歡
7、迎使用學生成績管理系統(tǒng)$詈BS生$ $成成成成成矍套 $生生生生生理級奏 簽515姜 $余找改入列示出$ 鎰i條播排顯溟 $1230-5670$ $LLLLLLCL$:x:;x$遨功能一:錄入學生成績»»»»請輸入學生成績««««班級:1學號:141 652001姓名:張三C*成績:了8英語成績訂8數學成績訂8平均分:78麻續(xù)耒入學生成績?(y/n)y班級煜學號"51652001姓名:李四C"舷績;89英語成績:89數學成績:89平均分:39綻續(xù)錄入學生成絨?(y/n)n功能二:顯示學生成績
8、187;»»»輸岀學生成績<<««<<名三四姓張李分J589T7 8班級學號1 116526012 151652901詒按任意謹繼續(xù)功能三:查找學生成績F:C + +1歡迎使用學生成績管理系統(tǒng)$X【1】輸入學生成績X* 【2】顯示學生成領買x【3】査找學生成績x吳【4】修改學生成領買x【5】插入學生成績x* 【6】排列管理成領買x7顯示班級學生成績x* 0退出本系統(tǒng)箕$請你選擇(0-7):3請選擇1 按學號査找2 按姓名査找1 按學號查找2 按姓名查找>>>>>>>>査找學
9、生成績<<<<<<<<請輸入杳找學生的學號:m6520O1班級門學號:141652061姓名:張三C+:78英語:78數學汀8平均分:了8請按任竟謹繼續(xù)>>>>>>>>査找學生成績<<<<<<<<請輸入査找學生的姓名: 張三班級:1學號:H652001姓名:張三C+:78英語汀8數學:78平均分:78請按任盍鍵繼續(xù)功能四:修改學生成績>»>>>» 修改學生成績<«<<<
10、71; 輸入修改成績學生的學號:141652001該學生的信息班級學號姓名C+英語數學平均分11M1G520O1張三78787878請鍬入要修改的灤程號1。語言2 英語3 數學重新輸入分數82該學生的信息班級學號姓名C+英語數學平均分1141652001張三8278787933331141652001是否保存數據?(y/n)y功能五:插入學生信息扌石入學生成貢XXXXXXXXXXX班級:3學號:161 652001姓名:小米C+成績英語咸績:90數學成績;90平均分90播入成功!是否繼統(tǒng)輸入(y/n)功能六:排列管理成績F:C + +45氐MMXMXKXXKX歹I管理成綜 KXXKMKMMKM
11、班級32學號1616520011516520011141652001請按任意屣繼緩.名米四三姓小李張5998982語妬908978如78"78平均分名次90189279.33333功能七:顯示班級學生成績MMMMMMMXXXXXXMMMM回上纟& F_ 月運XXXXXXXXXXXXXXXXX31G165200121516S2OO111*!02001s=_* ©92C9838 8 8rTT平呦分9©G979 3333功能零:退出系統(tǒng)"F:Ch歡迎使用學生成績管理系統(tǒng)$*【1】輸入學生成績*x121懇示學生成績x【4】L5J【6】狄【3】沓找學生成紙
12、«_ "修改學生成績x摑入學生成績共x17克示斑級學生成績xM|0退出本系統(tǒng)M$ 請你選擇(O-T):0= = = = = = = = = = = = = = = = = = = = = = = = = = =感謝您便用學生成績管鋰系統(tǒng)= = = = = = = = = 請按任意毎継繞5總結通過這次課程設計,使我對面向對象C+語言有了更進一步的認識和了解, 想要學好它重在于實踐,要通過不斷地上機操作才能更好的學習它,我也發(fā)現(xiàn)我 自己的好多不足之處。通過學習也有所改進,再乂對面向對象C+語言的一些函 數不太了解,所以在以后的學習過程中我會更加注重實踐操作。在課程設計的過 程中
13、,收獲知識和提高能力的同時,我也懂得如何去制定和實現(xiàn)計劃。課程設計 是培養(yǎng)學生綜合運用所學知識發(fā)展提出分析和解決實際問題,鍛煉實踐能力的重 要環(huán)節(jié)是對學生實際工作能力的具體訓練和考察過程。隨著科學技術的的日新 月異,從拿到題目到完成整個編程,從理論到實踐,可以學到很多的東西。同時 不僅可以鞏固以前課本中的知識,而且還學到課本以外的知識。通過課程設計使我們知道理論和實踐的結合是十分重要的,只有理論知識是 遠遠不夠的,只有把所學的理論知識和課外實踐很好地結合起來,才能對自己的 的專業(yè)知識有所了解,或者說是為自己以后專業(yè)知識的學習做以鋪墊。在課程過 程中發(fā)現(xiàn)了自己一些明顯的不足,如對面向對象C+語言
14、基礎知識掌握的不牢 靠,不能很好地運用自己以前所學內容進行編程,而且不能夠在特定的環(huán)境下做 到仔細認真,很小的問題在編程過程中出現(xiàn)很多次。但是在老師的耐心教導下, 我們逐步進入狀態(tài),并且做了一個簡單的學生成績管理系統(tǒng)。通過對整個系統(tǒng)的 設計,編譯,使我們對各個系統(tǒng)有所了解。在整個系統(tǒng)中,內容包括很多,運用 的函數也十分復雜,所以過程中容不得半點馬虎。當然在操作過程中也遇到一些 大的問題,如文件的操作,需要有模塊化思維能力,也就是在編程任意功能模塊 和函數的時候需要全面的思考,不能夠局限于完成當前任務的簡單思路上,不能 夠讓模塊脫離整個系統(tǒng)??傊谡n設過程中,學到了很多課外的東西,并且自己對面
15、向對象C+ 語言有了更進一步的了解。自己的動手能力和分析能力有了很大程度的提高,這 兩周看似過的很是悠閑但卻是受益匪淺。附錄:源程序:# iiiclude<iostieam.h># iiiclude<fstream.h># mclude<stdlib.h># mclude<string.h># iiiclude<stdio.h>class Personpublic:char name8;class student:public Person構建學生類public:fiiend void Manage(student stud);fii
16、end void Iiiput(student stud);fiiend void Statistic(student stud);fiiend void Lookup(student stud);fiiend void Modifv(student stud);fiiend void Output(student stud);fiiend void Iiiseit(student stud);fiiend void Write(student stud,int n);fiiend mt Read(student studQ);private:iiit num;char name8;char
17、class_020;float c_piogram;float english;float math;float average;iiit order;stud100;class Manage:public student;void Write(student stud,int n) 向文件中寫入數據fstieam myFile;myFile.openf'score.txf'josoutliosbmaiy);if(!myFile)cout«"score.txt can*t open!H«endl;abort();iiit count=n;myFil
18、e«count«endl«endl;fbr(iiit i=0;i<=count;i+)myFile«studi.class_O«H ',«studi.num«M H«stud1.naiiie«M H«gram«MH«studi.english«M n«studi.matli«M H«studi.aveiage«endl:myFile.closeQ;mt Read(student stud口)
19、從文件中讀數據fstwam mvFile;myFile. openCscoie.txt",ios 二 in|ios 二 binary);if(!myFile)cout«Hscore.txt can*t open!H«endl;abort();iiit count;myFile.seekg(O);mvFile»count;JJfor(iiit i=0;i<=count;i-H-)myFile»studi.class_0»studi.num»studi.naine»studi.c_piogram»stu
20、di.english»sUidi.math »studi.average;myFile.closeQ;return count;void Input(student stud) /輸入學生成績system(”cls”); /* 運行前清屏 */mt i=0;iiit flag;char sign;cout«endl«M»»»» 請輸入學生成績 «««<<nH«eiidl;while(sign!=,n'&&sign!=N) /* 判斷 */c
21、out«H班級,;/*交互輸入*/cin»studi class_O;loop:cout«H 學號cin»studi.num;iiit c=0;while(c<i)C+;if(studi.num=studi-c.num)coutvv”你輸入的學號已經存在!請重新輸入! ”endl; goto loop;cout«H 姓名:”;cin»studi .name;doflag=O;cout«HC卄成績cin»studi.c_program;if(studi.c_program> 100 |stiidi.c_p
22、rogram< 1)cout«H請輸入1 JOO之間的數字!E;elseflag=l;while(flag=O);doflag=O;cout«"英語成績:”;cm»studi.english;if(studi.english> 100 |studi.english<l)cout«H請輸入1-100之間的數字!n”;elseflag=l;while(flag=0);doflag=0;cout«"數學成績:”;cin»studi.math;if(studi.math> 100 |studi.ma
23、tli< 1) cout«H請輸入1-100之間的數字!n”;elseflag=l;while(flag=0);stud i. a verage=(stu d i. c_progiain4-stu d 1. english+stu d i .inath)/3; cout«"平均分:H«studi.average«endl;cout«"繼續(xù)錄入學生成績?(y/n)"cin»sign; /* 輸入判斷 */i+;Wnte(smdj);void Statistic(student stud) /統(tǒng)計學生數
24、據system(” cis”); /* 運行前清屏 */iiit n=Read(stud);cout«endl«M»»»» 輸出學生成績 «««<<nH«endl;cout«n班級”tyv”學號M«Ht”<v” 姓名H«Mt平均分H«endl;fbi(mt i=0;i<n;i+)cout«studi.class_0«',tn«studi.num«nt',«studi.
25、name«ntH«stud i .average«endl;system(HpauseH);void Lookup(student stud) /查找學生成績intp;cout«"請選擇1.按學號查找2.按姓名查找"«endl;cin»p;lf(p=l)system("cls"); /* 運行前清屏 */iiit n=Read(stud);iiit s;mt 1=0;cout«endl«M»»»» 查找學生成績 ««
26、«<<nH«endl;cout«-iW輸入查找學生的學號:n«endl;cin»s;while(stiidi.num-s)!=O&&i<n) i+;嚴查找判斷*7if(i=n)cout«n沒有該學生的信息! ”<<endl; /*輸入失敗信息勺elsecout«Hn«endl;cout«"班級:"«studi .class_O«endl; /* 輸出該學生信息*/cout«H 學號:H«studi .
27、nuin«endl: cout«H 姓名:li««endl;cout«HC+:"«studi.c_progiam«endl;cout«"英語:M«stud 1 .english«endl;cout«"數學:H«stud 1 .niath«endl; cout«"平均分:,«studi.average«endl;if(p=2)system(” cis”); /* 運行前清屏 */
28、mt m=Read(stud);char t;mt i=0;cout«endl«M»»»» 查找學生成績cout«H請輸入查找學生的姓名:H«endl;cin»t;while(strcmp(-t,studinanw)=O&&i<m) i+; /*查找判斷*/cout«ny vendl;cout«"班級:H«stud i. class_O«endl; /* 輸出該學生信息 */ cout«n 學號:M
29、71;suidi.nuin«endl;cout«n 姓名:H«suidi .name«endl; cout«"C-H-:"«studi.c_program«endl;cout«"英語:H«studi .english«endl;cout«"數學:M«studi .niath«endl;cout«"平均分:H«stiidi average«endl;void Modify(student
30、stud) /修改學生成績system(” cis”);嚴運行前清屏*/mt n=Read(stud);iiit s,a; float q;mt i=0;cout«endl«M»»»» 修改學生成績<eiidl;cout«"輸入修改成績學生的學號:"«endl;cin»s;while(stud i. num-s)! =0&&i<n) i+; /* 查找判斷 *7coi】t<v沒有該學生的成績!H«endl; /*輸入失敗信息*/elsecou
31、t«n該學生的信息iiM«endl; /*格式頭*7cout«n 班級學號 H«nt,«M 姓名英語H«Htn«n 數學 yv'tyv'1 平均分 y <endl;cout«nH«endl;cout«studi.class_0«MtM«studi.num«ntM««HtH«studi.c_program«Htil«studi.english«,'t,r
32、71;studi.matli«lltH«studi.aveiage«en dl;cout«nH«endl;cout«"iW輸入要修改的課程號”endl;cout«" 1 .c 語言 2.英語 3.數學H«endl;ciii»a;cout«"fi新輸入分數” <<endl;ciii»q;if(a=l) studi .c_program=q;if(a=2)stud 1 .english=q;if(a=3)studi.niath=q;stud 1.
33、a verage=(stu d i. c_progiain4-stu d 1. english+stu d i .math)/3;cout«"該學生的信息n"«endl; /*格式頭*/cout«n 班級學號 H«nt,«M 姓名英語H«Htn«n 數學 yv'tyv'1 平均分 y <endl;cout«nH«endl; cout«studi.class_0«'ltil«studi.num«llt,t«s
34、tudi.iiaine«llt,«studi.c_piogiam«ntH«snidi.english«,t"«smdi.math«,t,«studi.average< <endl;char c;cout«"是否保存數據?(y/n)H«endl;cin»c;if(c!=d&&c!=N)Wnte(studai);增加學生成績void Insert(student stud) systemCrclsf,); /* 運行前清屏 */iiit n=
35、Read(stud);char s;cout«elldl«,* 插入學生成績*n"«endl;wlule(s!=,n,&&s!=N)cout«n班級:-«endl;嚴交互輸入ciii»snidn.class_O;cout«M 學號二ciii»snidn .num;cout«M 姓名 J:ciii»snidn .name;cout«HC 卄成績cin»studn.c_progiain;cout«"英語成績:";cin
36、87;studn english;cout«"數學成績:”;cin»studn .niatli;studn average=(studn .c_piogiam+stu d n english+ stud n .niath)/3;cout«"平均分"«studn.average;11+;cout«"插入成功! "endl; /*返回成功信息*/cout«"是否繼續(xù)輸入(y/n)H«endl;cin»s;Wnte(snid,n);void Manage(stu
37、dent stud) /按平均分對學生成績記錄項進行降序排序system("cls"); /* 運行前清屏 */int i,j,k;float s;chart20;cout«endl«"* 排列管理成績 *ii"«endl;iiit n=Read(stud);for(i=0;i<n-l;i+)/* 冒泡法排序 */fbr(j=Oj<n-l-i;j-H-)if(smdj.aveiage<stiidj+l.average)sticpy(t,studj+l.class_O);sticpy(smdj-rl.clas
38、s_O.stuclj.class_O);sticpy(studj.class_O,t);k=studlj+l.num;studj+l .num=stud j .num;studlj.num=k;sticpy(t5studj+l .name);sticpy(studj-rl .name,stud j .name);sticpy(smdj .name,t);s=studj+l .c_program:studj+l .c_program=stud j .c_program:studlj. c_program=s;s=studj+l .english;studj+l .english=studj .e
39、nglish;studlj.english=s;s=studj+l.matli;stud j+1 .niath=studj .math;s=studj+l .average;studj+l. average=sni dj. average;studlj.average=s;cout«""«endl; /*格式頭 */cout«H 班級 H«nt H«n 學號 H«ntH«H 姓名英語數學平均分名次H«endl;for(i=0;i<n;i+) /* 循壞輸入studi.order=i+l;c
40、out«studi .class_O«MtH«studi .num«At,l««,tH«studi .c_ program«,rtll«studi.english«,'t,r«studi.matli«,lt,«studi.aveiage«nt H«studi .order«endl;顯示全部學生成績Wnte(stud,n);void Output(student stud) /system(” cis”); /* 運行前清屏*/int n=Read(stud);cout«n* 顯 示 班 級 學 生 成 績* *gy vendb if(!stud)cout«H沒有記錄駕elseH«endl; /*cout«n-格式頭勺cout«n 班級 H«nt學號 n«nt姓名英語 H«Ht,«n 數學平均分 n«endl;fbr(iiit i=0;i<n;i-H-) /*循環(huán)輸入*/cout«
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 接近傳感器相關項目投資計劃書
- 高效跟單與客戶維護培訓
- 教學活動安全保障措施計劃
- 如何通過游戲提高幼兒認知能力計劃
- 環(huán)境借款合同三篇
- 食管癌放療期間營養(yǎng)管理
- 八年級下語文人教版《小石潭記》課件
- 《數據倉庫基礎培訓》課件
- 庫存分析報告范文
- 《機床電氣線路的安裝與調試》課件-第5章
- 唐山港總體規(guī)劃報告
- 鄭州市中原區(qū)2022-2023學年七年級上學期期末數學試題
- 【A電器公司存貨管理存在的問題及優(yōu)化建議探析3400字(論文)】
- 食品營養(yǎng)學智慧樹知到期末考試答案章節(jié)答案2024年華南理工大學
- 基層民兵整組調研報告總結
- 某智慧口岸建設需求
- 汽車技工的汽車維修技能培訓
- 綜合英語智慧樹知到期末考試答案章節(jié)答案2024年喀什大學
- 口腔科醫(yī)療安全隱患
- 《建筑施工安全檢查標準》JGJ59-20248
- (正式版)SHT 3078-2024 立式圓筒形料倉工程設計規(guī)范
評論
0/150
提交評論