

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)題目:學(xué)生成績管理 第1章 系統(tǒng)概要1.1 系統(tǒng)介紹 設(shè)計(jì)一個(gè)學(xué)生管理系統(tǒng),能夠?qū)崿F(xiàn)學(xué)生信息輸入,并對這些信息進(jìn)行處理并輸出。1.2 基本功能要求 從鍵盤輸入某班級若干個(gè)學(xué)生的學(xué)號、姓名、三門課(語文、數(shù)學(xué)、英語)的成績,分別實(shí)現(xiàn)如下功能;(1) 統(tǒng)計(jì)每個(gè)學(xué)生的總分和平均分。(2) 按總分由大到小排出名次。(3) 打印出成績在全班平均分以上的學(xué)生名單和數(shù)據(jù)信息。(4) 任意輸入一個(gè)學(xué)號或姓名,能夠查找出該學(xué)生在班級中的排名及其考試成績。 本系統(tǒng)是根據(jù)學(xué)生成績管理的需要,而建立一個(gè)“學(xué)生成績管理系統(tǒng)”,以及方便對成績的各項(xiàng)管理操作。本系統(tǒng)能對成績進(jìn)行輸入和輸出;能按成績對學(xué)生進(jìn)行排序,并
2、顯示學(xué)生資料、成績等,不過得以系統(tǒng)輸入學(xué)生資料、成績?yōu)榍疤?。能根?jù)學(xué)生的姓名或?qū)W號來查詢該學(xué)生的資料。- 16 - 第2章 設(shè)計(jì)思路與算法2.1 程序功能結(jié)構(gòu)圖學(xué)生成績管理統(tǒng)設(shè)置班級人數(shù)輸入學(xué)生信息統(tǒng)計(jì)平均分和總分對學(xué)生成績排序統(tǒng)計(jì)高于班級平均成績學(xué)生查找利用學(xué)號查找學(xué)生利用姓名查找學(xué)生利用姓名查找學(xué)生打印學(xué)生信息主菜單 圖2-1 學(xué)生成績管理系統(tǒng)功能圖 2.2 各模塊介紹學(xué)生成績管理系統(tǒng)包括七個(gè)模塊:輸入學(xué)生資料,輸出學(xué)生資料,統(tǒng)計(jì)總分和平均分,按學(xué)生總成績或平均成績排序,打印平均分高于班級平均分的學(xué)生信息,按姓名或?qū)W號查找,菜單選擇這七個(gè)模塊既相互聯(lián)系又相互獨(dú)立。 各模塊功能介紹1)輸入模
3、塊(void setdata(student stu)):主要功能是用來對學(xué)生的成績進(jìn)行輸入。使用該功能可以輸入所有學(xué)生的信息、資料等。具體包括學(xué)生的班級,學(xué)號,姓名,各科成績。2)輸出模塊(void print(student stu,int i)):主要功能是用來對學(xué)生的成績進(jìn)行輸出。在系統(tǒng)已經(jīng)錄入了學(xué)生資料成績的前提下,使用該功能可以顯示所有學(xué)生的信息、資料等。具體包括學(xué)生的班級,學(xué)號,姓名,各科成績,總成績和平均成績。3)統(tǒng)計(jì)模塊(void count(student stu)):主要功能是用來對學(xué)生的成績進(jìn)行計(jì)算。在系統(tǒng)已經(jīng)錄入了學(xué)生資料成績的前提下,使用該功能可以計(jì)算出每個(gè)學(xué)生的總
4、成績和平均成績。4)排序模塊(void sort(student stu)):按學(xué)生平均成績進(jìn)行排列模塊塊,此模塊的主要功能是用來對學(xué)生的平均成績進(jìn)行排序,這樣在統(tǒng)計(jì)名次是就比較方便。在系統(tǒng)保存學(xué)生資料的前提下,使用此功能能快速統(tǒng)計(jì)出學(xué)生的名次情況。5)打印平均分高于班級平均分的學(xué)生信息模塊(void getaverage(student stu)):主要功能是輸出學(xué)生平均分高于等于班級平均分的學(xué)生信息。6)查找模塊(void search1(student stu,char*a) 按學(xué)號查找 void search2(student stu,char*b) 按姓名查找):主要功能是用來查找學(xué)
5、生資料,在系統(tǒng)輸入學(xué)生資料的前提下,想查找某個(gè)學(xué)生的資料,我們只要知道他的學(xué)號或姓名,輸入學(xué)號或姓名后,系統(tǒng)可以幫我們把他的信息輸出。7)菜單模塊(int select1()): 主要功能是用來選擇哪種操作。根據(jù)提示可對學(xué)生信息進(jìn)行處理。 第3章 源程序代碼#include /輸入輸出流的頭文件/* 文件包含命令,strcmp函數(shù)存放在string.h文件中。*/#include /字符串處理的頭文件#includeint n; /設(shè)置一個(gè)全局變量struct student /聲明學(xué)生信息的結(jié)構(gòu)體 char number20; /學(xué)生的學(xué)號:20個(gè)字符長度 char name30; /學(xué)生的
6、名字:20個(gè)字符長度 char c5; /學(xué)生的班級:5個(gè)字符長度 double math; /數(shù)學(xué)成績 double chinese; /語文成績 double english; /英語成績 double total; /總分 double average; /平均分 int rank; /排名s;void setdata(student stu); /輸入信息void count(student stu); /統(tǒng)計(jì)平均分和總分void sort(student stu); /排序void getaverage(student stu); /求出平均分void print(student s
7、tu,int i); /打印輸出void search1(student stu,char*a);/按學(xué)號查找void search2(student stu,char*b);/按姓名查找int select1(); /主菜單int select2(); /菜單void main() system(color 1A);/*設(shè)置默認(rèn)的控制臺前顏色。顏色屬性由兩個(gè)十六進(jìn)制數(shù)字指定,第一個(gè)為背景,第二個(gè)為前景。每個(gè)數(shù)字可以是以下任何值之一:0=黑色;1=藍(lán)色;2=綠色;3=淺綠色;4=紅色;5=紫色;6=黃色;7=白色;8=灰色;9=淡藍(lán)色;,A=淡綠色;B=淡淺綠色;C=淡紅色;D=淡紫色;E=淡
8、黃色;F=亮白色。例如system(color 1A)為背景為藍(lán)色,前景為淡綠色,即字體為淡綠色。*/coutendl;couttttt歡迎使用學(xué)生管理系統(tǒng)endl;coutendl; extern int n; student *stu; coutn; stu=new studentn; setdata(stu); for(; ;) /實(shí)現(xiàn)重復(fù)循環(huán)選擇 switch(select1() /調(diào)用菜單選擇函數(shù) case 1: count(stu); cout學(xué)號t姓名t班級t語文:t 數(shù)學(xué):t英語:t總分:t平均分:endl; for(int i=0;in;i+) coutstui.number
9、tstui.ct stui.chinesetstui.mathtstui.englisht stui.totaltstui.averageendl; break; case 2: sort(stu); for(int m=0;mn;m+) print(stu,m); /實(shí)現(xiàn)按總分排序打印 break; case 3: getaverage(stu); /實(shí)現(xiàn)成績在平均分以上的打印 break; case 4: switch(select2() case 1:char a20; couta; search1(stu,a); break; case 2:char b20; co
10、utb; search2(stu,b); break; break; case 5: coutt再見!謝謝您的使用。n; return; void setdata(student stu) /輸入學(xué)生的數(shù)據(jù) for(int i=0;in;i+) cout下面輸入第i+1位同學(xué)的數(shù)據(jù):endl; coutstui.number; ; coutstui.c; coutstui.chinese; coutstui.math; coutstui.english; /*打印學(xué)生信息*/void print(student stu,int i) /打印 cout學(xué)號t姓名t班級t
11、語文:t 數(shù)學(xué):t英語:t總分:t平均分:t排名:endl; tstui.ct stui.chinesetstui.mathtstui.englisht stui.totaltstui.averagetstui.rankendl;/*計(jì)算總分和平均分*/void count(student stu) for(int i=0;in;i+) stui.total=stui.math+stui.chinese+stui.english;/計(jì)算一個(gè)總分,記錄在tatal里面 stui.average=stui.total/3; /計(jì)算一個(gè)平均分,記錄在
12、average里面 /*利用冒泡法對學(xué)生的成績排序,并得出排名。*/void sort(student stu)/冒泡法排序 count(stu); for(int i=0;in;i+) for(int j=0;jn-1-i;j+) if(stuj.totalstuj+1.total) s=stuj; stuj=stuj+1; stuj+1=s; for(int k=0;kn;k+) stuk.rank=k+1; /設(shè)置排名/*打印成績高于等于班級平均成績的學(xué)生信息。*/void getaverage(student stu) sort(stu); double a; double sum=0
13、; for(int i=0;in;i+) sum=sum+stui.average; a=(sum/n); for(int j=0;j=a) print(stu,j);/*通過學(xué)號查找學(xué)生信息。*/void search1(student stu,char*a) sort(stu); for(int i=0;in;i+) if(strcmp(stui.number,a)=0)/*Strcmp()函數(shù)簡介;原型:extern int strcmp(const char *s1,const char * s2);所在頭文件:string.h功能:比較字符串s1和s2。一般形式:strcmp(字符串
14、1,字符串2)說明:當(dāng)s1s2時(shí),返回值s2時(shí),返回值0;即:兩個(gè)字符串自左向右逐個(gè)字符相比(按ASCII值大小相比較),直到出現(xiàn)不同的字符或遇0為止。如:AA computercompare特別注意:strcmp(const char *s1,const char * s2)這里面只能比較字符串,不能比較數(shù)字等其他形式的參數(shù)。詳細(xì)C+程序設(shè)計(jì)p83。*/ print(stu,i); break; else if(i=n-1) cout您輸入的學(xué)號不存在endl; /*通過學(xué)生姓名查找學(xué)生信息。*/void search2(student stu,char*b) for(int i=0;in;
15、i+) if(strcmp(,b)=0) print(stu,i); break; else if(i=n-1) cout您輸入的姓名不存在endl; /*選擇菜單。*/int select1() int cn; coutt1.統(tǒng)計(jì)平均分和總分n; coutt2.按成績排序n; coutt3.平均分以上的打印n; coutt4.查找學(xué)生信息n; coutt5.再見n; coutcn ; if(cn6) coutt輸入錯(cuò)誤,重選1-5:n; coutt; else break; return cn; /*選擇菜單,選擇通過學(xué)號查找還是姓名查找。*/int select2() i
16、nt cn; coutt1.按學(xué)號查找n; coutt2.按姓名查找n; coutcn ; if(cn2) coutt輸入錯(cuò)誤,重選:n; coutt; else break; return cn; 第4章 運(yùn)行結(jié)果及分析 圖4-1 進(jìn)入時(shí)的界面,動態(tài)設(shè)置班級人數(shù) 圖4-2 輸入學(xué)生信息,班級人數(shù)為3人 圖4-3 命令1,統(tǒng)計(jì)各個(gè)學(xué)生的總分及其平均分 圖4-4 命令2,對學(xué)生成績進(jìn)行排序并打印 圖4-5 命令3,打印成績高于班級平均成績的學(xué)生信息 圖4-6 命令菜單4,查找菜單,可采用學(xué)號和姓名查找學(xué)生信息 圖4-7 利用學(xué)號查找學(xué)生信息 圖4-8 利用姓名查找學(xué)生信息 圖4-9 輸入信息錯(cuò)誤
17、提示,不存在學(xué)生學(xué)號或姓名需重新輸入。 圖4-10 輸入命令錯(cuò)誤提示。 圖4-11 結(jié)束操作 圖4-12 程序總界面(1) 圖1-12 程序總界面(2)第5章 心得體會 在程序的編寫過程中,我充分體會了“細(xì)節(jié)決定成敗”這句話的內(nèi)涵,因?yàn)槊恳粋€(gè)細(xì)微的細(xì)節(jié)都必須十分的注意。如果稍有不慎,就會全盤皆“輸”。而且往往很多時(shí)候,自己覺得程序非常正確,但是就是通不過,在查找錯(cuò)誤的過程中,開始否認(rèn)自己的過程,非常的難受。 剛開始看到課題的時(shí)候覺得也不是很難,就開始寫了,但是當(dāng)實(shí)際開始寫的過程中卻發(fā)現(xiàn)自己有好多欠缺的地方,知識點(diǎn)沒有完全扎實(shí)的掌握,在實(shí)踐中逐一凸顯出來了。對于傳址調(diào)用可以采用數(shù)組名作為函數(shù)參數(shù)
18、和指針作為函數(shù)參數(shù)兩種方法,在形參哪兒往往漏寫,導(dǎo)致編譯錯(cuò)誤。在寫查找函數(shù)時(shí),對于字符串的比較毫無頭緒,在利用循環(huán)比較字符串的各個(gè)元素是否相同未果的情況下,內(nèi)心開始失落,崩潰。想著把學(xué)號弄成整型的這樣雖然容易解決但內(nèi)心又不甘,在這個(gè)地方糾結(jié)了好長時(shí)間,最后還是“度娘”給了提示,利用strcmp函數(shù)可以輕松的解決這個(gè)問題。在開始編寫程序的時(shí)候,總希望自己的程序多一些功能,可以更加的完善。但是往往因?yàn)榧庇谇蟪啥┒窗俪?。對于班級人?shù)的設(shè)置,想動態(tài)的改變,所以類比數(shù)組的動態(tài)設(shè)置寫出了結(jié)構(gòu)體的動態(tài)設(shè)置,但是忽略了設(shè)置一個(gè)全局變量n。這個(gè)過程曾給我沉重打擊,不過當(dāng)看到程序沒錯(cuò)誤能執(zhí)行出來時(shí),心中的喜悅難以用言語來表達(dá)。 雖然學(xué)生成績管理系統(tǒng)基本實(shí)現(xiàn)預(yù)定功能,當(dāng)時(shí)它并不止步于此。本系統(tǒng)只能一次性輸入學(xué)生信息且不能保存輸入的學(xué)生信息,若出現(xiàn)輸入學(xué)生信息錯(cuò)誤和要對學(xué)生信息進(jìn)行刪除,插入等操作時(shí),則需將所有學(xué)生信息重新輸入,此操作繁瑣且浪費(fèi)時(shí)間??稍黾觾Υ妫迦牒蛣h除功能,實(shí)現(xiàn)將各個(gè)學(xué)生的成績記錄輸入到系統(tǒng)中,并保存到文件,可以查詢以及插入或刪除學(xué)生的成績記錄。 通過這次C+課程設(shè)計(jì)使我深深的體會到了編程的辛苦,特別是當(dāng)一個(gè)程序無法運(yùn)行而又無計(jì)可施時(shí),那種難受實(shí)在無法用語言表達(dá),但當(dāng)為一個(gè)程序而絞盡腦汁,在
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)科技園區(qū)用地購置居間
- 項(xiàng)目立項(xiàng)和可行性研究報(bào)告順序
- 新能源汽車充電樁的公司
- 公司日常行為規(guī)范及管理辦法
- 心電監(jiān)護(hù)儀的使用與維護(hù)指南
- 游戲開發(fā)引擎跨平臺移植指南
- 智能倉儲物流項(xiàng)目
- 雨水如何收集系統(tǒng)
- MES系統(tǒng):制造業(yè)智能化管理與流程優(yōu)化的關(guān)鍵
- 美容師中級考試復(fù)習(xí)測試卷附答案
- 醫(yī)師定期考核人文醫(yī)學(xué)考試題庫500題(含參考答案)
- 湖北省七市2025屆高三第二次調(diào)研物理試卷含解析
- 第十三章-印花稅
- 讓你文思泉涌的公文寫作方法
- 2024機(jī)器人分類及型號編制方法
- 軸對稱圖形(課件)-2023-2024學(xué)年二年級下冊數(shù)學(xué)人教版-1
- 預(yù)包裝食品食品安全管理制度
- 2024年4月全國自學(xué)考試高級財(cái)務(wù)會計(jì)真題試題及答案
- DL∕T 5362-2018 水工瀝青混凝土試驗(yàn)規(guī)程
- 中國產(chǎn)科麻醉現(xiàn)狀及產(chǎn)科麻醉指南解讀專家講座
- 二年級上冊心理健康教學(xué)設(shè)計(jì)-第四課 找朋友|遼大版
評論
0/150
提交評論