歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > DOC文檔下載  

高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)- -學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

  • 資源ID:56911518       資源大?。?span id="26uxywa" class="font-tahoma">202.50KB        全文頁(yè)數(shù):39頁(yè)
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機(jī):
溫馨提示:
用戶(hù)名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)- -學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

河南工程學(xué)院高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)成果報(bào)告學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué)生學(xué)號(hào): 學(xué)生姓名: 學(xué) 院: 計(jì)算機(jī)學(xué)院 專(zhuān)業(yè)班級(jí): 軟件工程1341班 專(zhuān)業(yè)課程: 高級(jí)程序設(shè)計(jì)語(yǔ)言指導(dǎo)教師: 2014 年 6 月 27 日題 目學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)考核項(xiàng)目考核內(nèi)容得分平時(shí)考核(30分)出勤情況、態(tài)度、效率;知識(shí)掌握情況、基本操作技能、知識(shí)應(yīng)用能力、獲取知識(shí)能力系統(tǒng)設(shè)計(jì)(20分)分析系統(tǒng)的功能模塊編程調(diào)試(20分)實(shí)現(xiàn)系統(tǒng)的各個(gè)功能模塊,并完成調(diào)試回答問(wèn)題(15分)回答老師針對(duì)課程設(shè)計(jì)提出的問(wèn)題課程設(shè)計(jì)報(bào)告撰寫(xiě)(10分)嚴(yán)格按照規(guī)范要求完成課程設(shè)計(jì)報(bào)告源代碼(5分)按照規(guī)范要求完成課程設(shè)計(jì)源代碼的排版總 評(píng) 成 績(jī)指導(dǎo)教師評(píng)語(yǔ): 日期: 年 月 日目 錄第1章 系統(tǒng)設(shè)計(jì)目的41.1課程設(shè)計(jì)的要求41.2課程設(shè)計(jì)的目的4第2章 系統(tǒng)實(shí)現(xiàn)思路52.1系統(tǒng)的需求分析52.2系統(tǒng)的功能分析52.3系統(tǒng)流程圖6第3章 系統(tǒng)詳細(xì)設(shè)計(jì)73.1系統(tǒng)的界面設(shè)計(jì)73.2功能設(shè)計(jì)與分析7第4章 系統(tǒng)調(diào)試運(yùn)行204.1主頁(yè)面204.2錄入和增加功能214.3刪除功能224.4查詢(xún)功能224.5查詢(xún)不及格人數(shù)22課程設(shè)計(jì)體會(huì)23參考文獻(xiàn)24第1章 系統(tǒng)設(shè)計(jì)目的1.1課程設(shè)計(jì)的要求(1)設(shè)計(jì)四個(gè)類(lèi),包括學(xué)生類(lèi)(描述學(xué)生基本信息);成績(jī)類(lèi):班級(jí)類(lèi);課程類(lèi)(描述課程信息:課程編號(hào),科目名稱(chēng),如高等數(shù)學(xué),大學(xué)英語(yǔ)等);(2)學(xué)生成績(jī)及課程信息用文件保存,程序執(zhí)行時(shí)從文件讀入;(3)能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);(4)求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序,能查詢(xún)學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單。 設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱(chēng)、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比 計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比) 顯示學(xué)生的姓名、所選課程名稱(chēng)以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息。分單人顯示和以班輸出(班成績(jī)單格式輸出到文件) 注意,至少應(yīng)包含一個(gè)班、30人、三門(mén)課 。1.2課程設(shè)計(jì)的目的通過(guò)本課程設(shè)計(jì),使自己運(yùn)用C或C+語(yǔ)言實(shí)現(xiàn)所設(shè)計(jì)的算法,編寫(xiě)較大型的程序,分析和解決實(shí)際應(yīng)用問(wèn)題,進(jìn)一步加深、鞏固所學(xué)專(zhuān)業(yè)課程的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)自己綜合分析問(wèn)題和解決問(wèn)題的能力。掌握C語(yǔ)言或C+語(yǔ)言獨(dú)立的編寫(xiě)、調(diào)試應(yīng)用程序和進(jìn)行其它相關(guān)設(shè)計(jì)的技能。第2章 系統(tǒng)實(shí)現(xiàn)思路2.1系統(tǒng)的需求分析學(xué)生成績(jī)管理系統(tǒng)主要提供成績(jī)查詢(xún),方便管理的網(wǎng)上的信息查詢(xún)平臺(tái),學(xué)生可以通過(guò)該系統(tǒng)查閱與自己相關(guān)信息。教師可以通過(guò)成績(jī)管理統(tǒng)查閱學(xué)生成績(jī)信息等相關(guān)操作。系統(tǒng)管理員可以實(shí)現(xiàn)以上的所有功能,還有對(duì)學(xué)生的添加、刪除、修改、等相關(guān)操作。根據(jù)開(kāi)發(fā)要求,學(xué)生成績(jī)管理系統(tǒng)主要應(yīng)用于教育系統(tǒng),完成對(duì)日常的教學(xué)教務(wù)、教師以及學(xué)生的計(jì)算機(jī)化的管理。開(kāi)發(fā)學(xué)生成績(jī)管理系統(tǒng)可使學(xué)院教職員減輕工作壓力,比較系統(tǒng)地對(duì)教務(wù)、教學(xué)上的各項(xiàng)服務(wù)和信息進(jìn)行管理,同時(shí),可以減少勞動(dòng)力的使用,加快查詢(xún)速度、加強(qiáng)管理,以及國(guó)家各部門(mén)關(guān)于信息化的步伐,使各項(xiàng)管理更加規(guī)范化。目前,學(xué)校工作繁雜、資料重多。目前,管理信息系統(tǒng)已進(jìn)入高校,但還未普及,而對(duì)于學(xué)生成績(jī)管理來(lái)說(shuō),目前還沒(méi)有一套完整的、統(tǒng)一的系統(tǒng)。因此,開(kāi)發(fā)一套適和大眾的、兼容性好的系統(tǒng)是很有必要的。2.2系統(tǒng)的功能分析系統(tǒng)類(lèi)設(shè)計(jì):(1)學(xué)生類(lèi)用于存放基本個(gè)人信息;(2)課程類(lèi)用于存放課程信息;(3)班級(jí)類(lèi)用于分類(lèi)班級(jí);(4)成績(jī)類(lèi)用于存放成績(jī)。功能分析:(1)能對(duì)學(xué)生各科成績(jī)進(jìn)行錄入;(2)能對(duì)學(xué)生的成績(jī)進(jìn)行增加;(3)能對(duì)學(xué)生的成績(jī)進(jìn)行刪除;(4)能對(duì)學(xué)生的成績(jī)進(jìn)行修改;(5)能對(duì)學(xué)生的成績(jī)按總成績(jī),姓名,進(jìn)行查詢(xún);(6)能輸出學(xué)生的所有數(shù)據(jù);(7)能進(jìn)行成績(jī)統(tǒng)計(jì);(8)能進(jìn)行總分查詢(xún)排名。2.3系統(tǒng)流程圖“學(xué)生成績(jī)管理系統(tǒng)”包括十一個(gè)模塊:學(xué)生數(shù)據(jù)錄入,增加學(xué)生,刪除學(xué)生,修改數(shù)據(jù) ,按總成績(jī)查詢(xún) ,按姓名查詢(xún) ,輸出所有學(xué)生的數(shù)據(jù) ,每個(gè)學(xué)生平均成績(jī),各科不及格人數(shù),按總分查詢(xún)排名及退出系統(tǒng)。這十一個(gè)模塊既有聯(lián)系又相互獨(dú)立。系統(tǒng)流程圖:開(kāi)始主界面數(shù)據(jù)錄入修改數(shù)據(jù)刪除學(xué)生增加學(xué)生按總成績(jī)查詢(xún)每個(gè)學(xué)生的平均成績(jī)按姓名查詢(xún)各科不及格人數(shù)按總分查詢(xún)排名退出本系統(tǒng)輸出所有學(xué)生結(jié)束圖2-1 系統(tǒng)流程圖第3章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1系統(tǒng)的界面設(shè)計(jì)程序運(yùn)行后會(huì)出現(xiàn)一個(gè)簡(jiǎn)捷的窗口,便于用戶(hù)查詢(xún)數(shù)據(jù)。定義菜單函數(shù),通過(guò)輸出函數(shù)顯示系統(tǒng)功能。代碼:cout<<"*歡迎來(lái)到學(xué)生成績(jī)查詢(xún)系統(tǒng)*"<<endl; cout<<"請(qǐng)選擇您需要的操作!"<<endl; /菜單的輸出 cout<<"操作:"<<endl; cout<<"(1)數(shù)據(jù)錄入"<<endl; cout<<"(2)增加學(xué)生"<<endl; cout<<"(3)刪除學(xué)生"<<endl; cout<<"(4)修改數(shù)據(jù)"<<endl; cout<<"查詢(xún):"<<endl; cout<<"(5)按總成績(jī)查詢(xún)"<<endl; cout<<"(6)按姓名查詢(xún)"<<endl; cout<<"(7)輸出所有學(xué)生的數(shù)據(jù)"<<endl; cout<<"成績(jī)統(tǒng)計(jì):"<<endl; cout<<"(8)每個(gè)學(xué)生的平均成績(jī)"<<endl;cout<<"(9)各科不及格人數(shù)"<<endl;cout<<"排名:"<<endl; cout<<"(10)按總分查詢(xún)排名"<<endl; cout<<"(11)退出"<<endl;cout<<"選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!"<<endl; 3.2功能設(shè)計(jì)與分析(1)先編入系統(tǒng)所需的庫(kù)函數(shù),從而使程序可運(yùn)行。#include<iostream> #include<string> #include<fstream>#include<sstream>#include<iomanip>自己定義的函數(shù)float getsum();/綜合成績(jī)float getshu();/數(shù)學(xué)總評(píng)成績(jī)float getcpp();/c總評(píng)成績(jī)float geteng();/英語(yǔ)總評(píng)成績(jī)float getaver();/總平均成績(jī)(2)main()函數(shù)的設(shè)計(jì)。在main()函數(shù)中主要運(yùn)用do-while循環(huán)語(yǔ)句和switch()-case選擇判斷語(yǔ)句來(lái)調(diào)用相關(guān)功能模塊。系統(tǒng)的運(yùn)行是在一個(gè)永真的循環(huán)里進(jìn)行的,只有在主界面并選擇“退出”時(shí),才會(huì)跳出永真循環(huán),并退出程序。(3)程序類(lèi)的構(gòu)造與繼承?;?lèi)class student和class kecheng用來(lái)封裝學(xué)生的所有信息具體見(jiàn)代碼分析。派生類(lèi)class chengji繼承了兩個(gè)類(lèi)的所有數(shù)據(jù),同時(shí)增加了自己的成員,并添加了多個(gè)函數(shù)。Main()用來(lái)實(shí)現(xiàn)所有的操作以及對(duì)程序的整體控制;定義文件輸入流對(duì)象in和輸出流對(duì)象out,實(shí)現(xiàn)對(duì)外部文件的操作,使得數(shù)據(jù)得以保存。程序代碼class Student /聲明學(xué)生類(lèi)public:Student(int n,char nu20) /構(gòu)造函數(shù)num=n;strcpy(name,nu);friend void main(); /聲明友元類(lèi)protected:int num;/學(xué)號(hào)char name20;/姓名;class Kecheng /聲明課程類(lèi)public: /構(gòu)造函數(shù)Kecheng(float ma,float cp,float eng)math=ma;cpp=cp;english=eng;friend void main(); /聲明友元protected:float math;/數(shù)學(xué)float english;/英語(yǔ)float cpp;/c+;class Chengji:public Student,public Kecheng /聲明成績(jī)類(lèi)public:Chengji(int n,string nam,float ma,float cp,float eng,float map,float cpp,float engp,float,bf,float mz,float cz,float ez): /構(gòu)造函數(shù)Student(n,nam),Kecheng(ma,cp,eng),mathp(map),cppp(cpp),englishp(engp),baif(bf),mathz(mz),cppz(cz),englishz(ez)mathp=map;cppp=cpp;englishp=engp;baif=bf;mathz=mz;cppz=cz;englishz=ez;float getsum();/綜合函數(shù)float getshu();/數(shù)學(xué)最后成績(jī)float getcpp();/c最后成績(jī)float geteng();/英語(yǔ)最后成績(jī)friend void main();/聲明友元float getaver();/平均值函數(shù)protected:float mathp ;/數(shù)學(xué)平時(shí)成績(jī)float cppp;/c+平時(shí)成績(jī)float englishp;/英語(yǔ)平時(shí)成績(jī)float baif;/成績(jī)百分比f(wàn)loat mathz ;/數(shù)學(xué)總成績(jī)float cppz;/c+總成績(jī)float englishz;/英語(yǔ)總成績(jī); (4).利用switch語(yǔ)句實(shí)現(xiàn)多分枝選擇結(jié)構(gòu),分支流程圖:圖3-2 分支流程圖具體功能設(shè)計(jì)通過(guò)主窗體調(diào)用其他窗體,實(shí)現(xiàn)其它功能。Case1:錄入功能使用cin輸入流輸入學(xué)生的相關(guān)信息,并創(chuàng)立文件,將所輸入的數(shù)據(jù)存入到文件中。程序代碼docout<<"請(qǐng)輸入姓名"<<endl;/信息輸入過(guò)程cin>>name;cout<<"請(qǐng)輸入學(xué)號(hào)"<<endl;cin>>number;cout<<"請(qǐng)輸入數(shù)學(xué)成績(jī)"<<endl;cin>>math;cout<<"請(qǐng)輸入c+成績(jī)"<<endl;cin>>cpp;cout<<"請(qǐng)輸入英語(yǔ)成績(jī)"<<endl;cin>>english;cout<<"請(qǐng)輸入數(shù)學(xué)平時(shí)成績(jī)"<<endl;cin>>mathp;cout<<"請(qǐng)輸入c+平時(shí)成績(jī)"<<endl;cin>>cppp;cout<<"請(qǐng)輸入英語(yǔ)平時(shí)成績(jī)"<<endl;cin>>englishp;cout<<"請(qǐng)輸入成績(jī)百分比"<<endl;cin>>baif;fstream outfile,infile;outfile.open("f1.txt",ios:out|ios:app);/打開(kāi)文件if(!file)cout<<"f1.txt can not open.n"return ;outfile<<name<<" "<<"學(xué)號(hào):"<<number<<endl;outfile<<"數(shù)學(xué)成績(jī): "<<setw(2)<<math<<setw(20)<<"數(shù)學(xué)平時(shí)成績(jī): "<<setw(2)<<mathp<<setw(20)<<"數(shù)總成績(jī): "<<setw(2)<<math*baif+mathp*(1-baif)<<endl;outfile<<"外語(yǔ)成績(jī):"<<setw(2)<<english<<setw(20)<<"外語(yǔ)平時(shí)成績(jī): "<<setw(2)<<englishp<<setw(20)<<"外總成績(jī): "<<setw(2)<<english*baif+englishp*(1-baif)<<endl;outfile<<"c+成績(jī): "<<setw(2)<<cpp<<setw(20)<<"c+平時(shí)成績(jī): "<<setw(2)<<cppp<<setw(20)<<"c總成績(jī): "<<setw(2)<<cpp*baif+cppp*(1-baif)<<endl;outfile<<"總成績(jī): "<<math*baif+mathp*(1-baif)+cpp*baif+cppp*(1-baif)+english*baif+englishp*(1-baif)<<endl;outfile.close(); infile.open("f1.txt",ios:in);if(!file)cout<<"f1.txt can not open.n"return ;char ch;while(infile.get(ch)cout<<ch;cout<<endl;infile.close();j+;si=new Chengji(number,name,math,cpp,english,mathp,cppp,englishp,baif,mathz,cppz,engz); /將數(shù)據(jù)錄入文件i+;cout<<"數(shù)據(jù)錄入成功,想繼續(xù)嗎(y/n)"<<endl;cin>>c;chris1=0;doif(c!='y'&&c!='n')cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl;cin>>c;elsechris1=1;while(chris1=0);Case2:增加功能與錄入功能程序操作與代碼大體相同 參考錄入功能。Case3:刪除功能用對(duì)文件的操作,判斷所需刪除的數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否相同,利用文件流操作刪除對(duì)應(yīng)數(shù)據(jù)。程序代碼char c;string xingming,line,str,name;doifstream fin("f1.txt");fstream outfile("f2.txt",ios:trunc|ios:out); /創(chuàng)建文件2cout<<"請(qǐng)輸入您要?jiǎng)h除的學(xué)生的姓名:"<<endl;cin>>xingming;while(!fin.eof() /執(zhí)行判斷并刪除數(shù)據(jù)getline(fin,line);istringstream stream(line);name=line.substr(0,line.find(" ",0);if(name!=xingming)outfile<<line<<endl;outfile.close();fin.close();fstream f("f1.txt",ios:trunc|ios:out);ifstream outf("f2.txt");f<<outf.rdbuf();outf.close();f.close();cout<<"數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)"<<endl;cin>>c;.Case4:修改功能參考錄入功能,利用對(duì)文件的操作達(dá)到對(duì)數(shù)據(jù)的修改功能。Case5:按總成績(jī)查詢(xún)用if語(yǔ)句調(diào)用getsum()判斷輸入的總分?jǐn)?shù)與數(shù)據(jù)庫(kù)中的總分?jǐn)?shù)是否有相同的并執(zhí)行輸出文件操作。程序代碼int j=0;float SUM;char c;int flag;if(i=0) /根據(jù)前面的疊加判斷文件中是否有數(shù)據(jù)cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break;Do /輸入查找的成績(jī)利用函數(shù)查找符合條件的數(shù)據(jù)flag=0;cout<<"請(qǐng)輸入您要查詢(xún)的學(xué)生的總成績(jī):"<<endl;cin>>SUM;for(int j=0;j<i;j+)if(sj->getsum()=SUM) /將符合的數(shù)據(jù)輸出flag=1;cout<<"您要查詢(xún)的學(xué)生是:"<<(*sj).name<<endl;cout<<"該生的信息為:"<<endl;cout<<" 學(xué)號(hào):"<<(*sj).num<<" 數(shù)學(xué)分?jǐn)?shù):"<<(*sj).math*(*sj).baif+(*sj).mathp*(1-(*sj).baif)<<" c+分?jǐn)?shù)"<<(*sj).cpp*(*sj).baif+(*sj).cppp*(1-(*sj).baif)<<" 英語(yǔ)分?jǐn)?shù)"<<(*sj).english*(*sj).baif+(*sj).englishp*(1-(*sj).baif)<<endl;if(flag=0) /錯(cuò)誤操作返回繼續(xù)cout<<"對(duì)不起!您要查詢(xún)的學(xué)生不存在!"<<endl;cout<<"是否繼續(xù)查?(y/n);"cin>>c;.Case6:按姓名查詢(xún)程序代碼與按總分功能類(lèi)似,區(qū)別在于這個(gè)功能中利用指針訪問(wèn)類(lèi)中成員,并進(jìn)行判斷。Case7:輸出所有數(shù)據(jù)通過(guò)打開(kāi)文件,對(duì)文件中的所有數(shù)據(jù)進(jìn)行輸出。程序代碼cout<<"所有學(xué)生數(shù)據(jù)如下:"<<endl;ifstream file;file.open("f1.txt",ios:in); /以輸入方式打開(kāi)文件cout<<file.rdbuf(); /以輸出文件的所有數(shù)據(jù)file.close();case8:輸出學(xué)生的平均分利用指針訪問(wèn)Chengji類(lèi)中的成員,調(diào)用getaver ()函數(shù)求得平均分并執(zhí)行輸出操作。程序代碼if(i=0)cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break;for(int m=0;m<i;m+)cout<<(*sm).name<<" 學(xué)號(hào)"<<(*sm).num <<" 總分 "<<(*sm).getsum()<<" 均分"<<(*sm).getaver ()<<endl;Case9:查詢(xún)不及格人數(shù) 調(diào)用get函數(shù)求得三科平均成績(jī),并統(tǒng)計(jì)不及格人數(shù),并輸出查詢(xún)結(jié)果。程序代碼if(i=0)cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break;int m,n,k,j;m=0;n=0;k=0;for(j=0;j<i;j+)if(sj->getshu()<60)m+;if(sj->getcpp()<60)n+;if(sj->geteng()<60)k+;cout<<"數(shù)學(xué)不及格人數(shù)為:"<<m<<endl;cout<<"c+不及格人數(shù)為:"<<n<<endl;cout<<"英語(yǔ)不及格人數(shù)為:"<<k<<endl;.Case10:總成績(jī)排名通過(guò)for函數(shù)尋找最大值并進(jìn)行交換,交換得最大值與最大值對(duì)應(yīng)名字。程序代碼if(i=0)cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break;int h,g,n;int j=0;float a100,temp;string k100,temp1;for(g=0;g<i;g+)aj=(*sg).getsum(); kj=(*sg).name;j+;for(h=0;h<i;h+)for(n=0;n<i-h;n+)if(an>an+1)temp=an; /交換得到最大值an=an+1;an+1=temp;temp1=kn; /交換名字kn=kn+1; kn+1=temp1;for(n=1;n<=i;n+)cout<<kn<<setw(5)<<an<<endl;.第4章 系統(tǒng)調(diào)試運(yùn)行4.1主頁(yè)面學(xué)生成績(jī)查詢(xún)系統(tǒng)主頁(yè)面。圖4-1 學(xué)生成績(jī)查詢(xún)系統(tǒng)主界面4.2錄入和增加功能需要輸入學(xué)生的相關(guān)信息,并保存到f1.txt中。圖4-2 學(xué)生成績(jī)的錄入如果想要增加學(xué)生數(shù)據(jù),系統(tǒng)就會(huì)按照錄入一樣增加同學(xué)數(shù)據(jù)。圖4-3 學(xué)生數(shù)據(jù)的增加4.3刪除功能輸入刪除名字,程序自動(dòng)尋找與名字相符數(shù)據(jù)并刪除。圖4-4 學(xué)生數(shù)據(jù)的刪除4.4查詢(xún)功能分為按總成績(jī)查詢(xún)和按姓名查詢(xún)兩種方式。圖4-5 按名字查詢(xún)學(xué)生信息圖4-6 輸出所有學(xué)生數(shù)據(jù)4.5查詢(xún)不及格人數(shù)調(diào)用get函數(shù)求三科平均成績(jī)并統(tǒng)計(jì)不及格人數(shù)并輸出查詢(xún)結(jié)果。圖4-8 各科不及格人數(shù)課程設(shè)計(jì)體會(huì)本學(xué)生成績(jī)管理系統(tǒng)由十一個(gè)模塊組成,每個(gè)模塊相互聯(lián)系又相互獨(dú)立。這個(gè)學(xué)生成績(jī)管理系統(tǒng)存在著很多不足之處,由于自己本身編程能力的問(wèn)題,這個(gè)系統(tǒng)可以實(shí)現(xiàn)的功能非常有限。只能實(shí)現(xiàn)學(xué)生管理系統(tǒng)最基本的功能,可以進(jìn)行簡(jiǎn)單的輸入、輸出學(xué)生資料,查詢(xún)和修改學(xué)生信息,能直接從文件中讀入數(shù)據(jù),能對(duì)系統(tǒng)所作的修改、操作進(jìn)行保存等。而且在每個(gè)模塊也有不足的地方,比如在輸入學(xué)生資料時(shí),對(duì)每個(gè)信息項(xiàng)沒(méi)有嚴(yán)格的規(guī)定,可以輸入任何的字符。同時(shí)有些模塊還不能實(shí)現(xiàn)本應(yīng)該有的功能,這有待以后努力,爭(zhēng)能夠?qū)崿F(xiàn)該有的功能。參考文獻(xiàn)1 譚浩強(qiáng)C語(yǔ)言程序設(shè)計(jì) 清華大學(xué)出版社 2 陳國(guó)君等C+程序設(shè)計(jì)基礎(chǔ) 清華大學(xué)出版社3 譚浩強(qiáng)C+面向程序設(shè)計(jì) 清華大學(xué)出版社 4 MaryCampione.C+語(yǔ)言導(dǎo)學(xué) 機(jī)械工業(yè)出版社 5 Y.Daniel Liang.C+語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇 機(jī)械工業(yè)出版社 6 Kathy Sierra.Head First C+ 東南大學(xué)出版社#include<iostream>#include<string>#include<fstream>#include<sstream>#include<iomanip>using namespace std;class Tstuchar name20;int number;float math,cpp,english,average,sum;public:Tstu();Tstu(char n20,int num,float ma,float cj,float eng); float getsum();float getaver(); friend void main(); ; Tstu:Tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); number=num; math=ma; cpp=cj; english=eng; float Tstu:getsum() sum=cpp+english+math; return sum; float Tstu:getaver() average=getsum()/3; return average; void main() cout<<"*歡迎來(lái)到學(xué)生成績(jī)查詢(xún)系統(tǒng)*"<<endl; cout<<"請(qǐng)選擇您需要的操作!"<<endl;cout<<"操作:"<<endl; cout<<"(1)數(shù)據(jù)錄入"<<endl; cout<<"(2)增加學(xué)生"<<endl; cout<<"(3)刪除學(xué)生"<<endl; cout<<"(4)修改數(shù)據(jù)"<<endl; cout<<"查詢(xún):"<<endl; cout<<"(5)按總成績(jī)查詢(xún)"<<endl; cout<<"(6)按姓名查詢(xún)"<<endl; cout<<"(7)輸出所有學(xué)生的數(shù)據(jù)"<<endl; cout<<"成績(jī)統(tǒng)計(jì):"<<endl; cout<<"(8)每個(gè)學(xué)生的平均成績(jī)"<<endl; cout<<"(9)各科不及格人數(shù)"<<endl; cout<<"排名:"<<endl; cout<<"(10)按總分查詢(xún)排名"<<endl; cout<<"(11)退出"<<endl; cout<<"選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!"<<endl; int p=0; /全局變量,用于選擇菜單時(shí)的輸入 char w;/全局變量,用于在大項(xiàng)中選擇是否繼續(xù)操作 Tstu *s100; /類(lèi)定義的指針將所錄入的數(shù)據(jù)按類(lèi)中的形式分別存儲(chǔ) ofstream *file100; int i=0; /全局變量,用于做每個(gè)錄入數(shù)據(jù)的下標(biāo) int j=0; int chris1=0; /用于判斷dowhile語(yǔ)句 do /判斷輸入是否正確 cin>>p; if(p>=1&&p<=11) chris1=1; else cout<<"指令錯(cuò)誤!請(qǐng)重新輸入:"<<endl; while(chris1=0); do switch(p) case 1: /數(shù)據(jù)的錄入 char c; /用于在小項(xiàng)中選擇是否繼續(xù)操作 char name20; int number; float math,cpp,english; do cout<<"請(qǐng)輸入姓名:"<<endl; cin>>name; cout<<"請(qǐng)輸入學(xué)號(hào):"<<endl; cin>>number; cout<<"請(qǐng)輸入數(shù)學(xué)成績(jī):"<<endl; cin>>math; cout<<"請(qǐng)輸入C+成績(jī):"<<endl; cin>>cpp; cout<<"請(qǐng)輸入英語(yǔ)成績(jī):"<<endl; cin>>english; fstream outfile,infile; /作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open("f1.txt",ios:out|ios:app); if(!file) cout<<"f1.txt can not open.n" return; outfile<<name<<" "<<"學(xué)號(hào):"<<number<<" "<<"數(shù)學(xué)成績(jī):"<<math<<" "<<"C+成績(jī):"<<cpp<<" "<<"外語(yǔ)成績(jī):"<<english<<endl; outfile.close(); infile.open("f1.txt",ios:in); if(!file) /判斷文件是否打開(kāi) cout<<"f1.txt can not open.n" return; char ch; while(infile.get(ch) cout<<ch; cout<<endl; infile.close(); j+; si=new Tstu(name, number,math, cpp, english); i+; cout<<"數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)"<<endl; cin>>c; chris1=0; do if(c!='y'&&c!='n') cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl; cin>>c; else chris1=1; while(chris1=0); while(c='y'); /重復(fù)輸入 break; case 2: /增加學(xué)生數(shù)據(jù) char name20; int number; float math,cpp,english; char c; do cout<<"請(qǐng)輸入您要增加的學(xué)生的姓名:"<<endl; cin>>name; cout<<"請(qǐng)輸入你要增加的學(xué)生的學(xué)號(hào):"<<endl; cin>>number; cout<<"請(qǐng)輸入數(shù)學(xué)成績(jī):"<<endl; cin>>math; cout<<"請(qǐng)輸入C+成績(jī):"<<endl; cin>>cpp; cout<<"請(qǐng)輸入英語(yǔ)成績(jī):"<<endl; cin>>english; fstream outfile,infile; outfile.open("f1.txt",ios:out|ios:app); if(!file) cout<<"f1.txt can not open.n" return; outfile<<name<<" "<<"學(xué)號(hào):"<<number<<" "<<"數(shù)學(xué)成績(jī):"<<math<<" "<<"C+成績(jī):"<<cpp<<" "<<"外語(yǔ)成績(jī):"<<english<<endl; outfile.close(); infile.open("f1.txt",ios:in); if(!file) cout<<"f1.txt can not open.n" return; char h; while(infile.get(h) cout<<h; cout<<endl; infile.close(); j+; si=new Tstu(name,number, math, cpp, english); i+; cout<<"數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl; cin>>c; while(c='y'); break; case 3:/刪除學(xué)生信息 char c; string xingming,line,str,name; do ifstream fin("f1.txt"); fstream outfile("f2.txt",ios:trunc|ios:out); /作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) cout<<"請(qǐng)輸入您要?jiǎng)h除的學(xué)生的姓名:"<<endl; cin>>xingming; while(!fin.eof() ) getline(fin,line); istringstream stream(line); name = line.substr(0,line.find(" ",0);/找到名字,判斷是否相等 if(name != xingming) outfile<<line<<endl; outfile.close(); fin.close(); fstream f("f1.txt",ios:trunc|ios:out); ifstream outf("f2.txt"); f<<outf.rdbuf(); outf.close(); f.close(); cout<<"數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl; cin>>c; while(c='y'); break; case 4:/修改數(shù)據(jù) string sname,line,str,name; int nu;float eng,ma,com;int flag;char c;if(i=0)cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break;do flag=0; cout<<"請(qǐng)輸入您要修改的學(xué)生的姓名:" cin>>name; fstream fin("f1.txt",ios:in); ofstream outfile("f.txt",ios:trunc|ios:out); cout<<endl; while(!fin.eof() ) /在文件中查找 getline(fin,line); istringstream stream(line); sname = line.substr(0,line.find(" ",0);if(name!=sname)outfile<<line<<endl;else flag=1; fin.close(); if(flag=1) cout<<"請(qǐng)輸入修改學(xué)生姓名及其新學(xué)號(hào),數(shù)學(xué),c+和英語(yǔ)成績(jī):"cin>>name>>nu>>ma>>com>>eng;cout<<endl;outfile<<name<<" "<<"學(xué)號(hào):"<<nu<<" "<<"數(shù)學(xué)成績(jī):"<<ma<<" "<<"C+成績(jī):"<<com<<" "<<"外語(yǔ)成績(jī):"<<eng<<endl; outfile.close();fstream outf("f1.txt",ios:trunc|ios:out);fstream inf("f.txt",ios:in);outf<<inf.rdbuf()<<endl;outf.close();inf.close(); if(flag=0)cout<<"對(duì)不起,您要修改的學(xué)生不存在!請(qǐng)查證后輸入!"<<endl; cout<<"想繼續(xù)修改嗎(y/n):" cin>>c; cout<<endl; if(c!='y'&&c!='n') cout<<" 指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl<<" "cin>>c; while(c='y');break; case 5:/按總分查詢(xún) int j=0;float SUM;char c;int flag; if(i=0)cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break; do flag=0; cout<<"請(qǐng)輸入您要查詢(xún)的學(xué)生的總成績(jī):"<<endl; cin>>SUM; for(int j=0;j<i;j+) if(sj->getsum()=SUM) flag=1;cout<<"您要查詢(xún)的學(xué)生是:"<<(*sj).name<<endl;cout<<"該生的信息為:"<<endl;cout<<" 學(xué)號(hào):"<<(*sj).number<<" 數(shù)學(xué)分?jǐn)?shù):"<<(*sj).math<<" c+分?jǐn)?shù):"<<(*sj).cpp<<" 英語(yǔ)分?jǐn)?shù)"<<(*sj).english<<endl; if(flag=0)cout<<"對(duì)不起!您要查詢(xún)的學(xué)生不存在!"<<endl;cout<<"是否繼續(xù)查?(y/n):"cin>>c;if(c!='y'&&c!='n')cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl; cin>>c; ; while(c='y'); break; case 6:/按姓名查詢(xún) char n20;char c;int j=0;int flag; if(i=0)cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break; do flag=0; cout<<"請(qǐng)輸入要查詢(xún)的名字: "<<endl; cin>>n; for(int j=0;j<i;j+) if(strcmp(n,(*sj).name)=0)flag=1;cout<<"您要查詢(xún)的學(xué)生是:"<<(*sj).name<<endl;cout<<"該生的信息是:學(xué)號(hào):"<<(*sj).number<<" 數(shù)學(xué)分?jǐn)?shù):"<<(*sj).math<<"c+分?jǐn)?shù):"<<(*sj).cpp<<"英語(yǔ)分?jǐn)?shù):"<<(*sj).english<<endl; if(flag=0)cout<<"對(duì)不起您要查詢(xún)的學(xué)生不存在,請(qǐng)查證后再輸入!"<<endl;cout<<"您想繼續(xù)查詢(xún)嗎?(y/n):"cin>>c;if(c!='y'&&c!='n')cout<<"指令錯(cuò)誤!請(qǐng)重新輸入:"<<endl;cin>>c; while(c='y'); break; case 7:/輸出所有學(xué)生數(shù)據(jù) cout<<"所有學(xué)生數(shù)據(jù)如下:"<<endl; ifstream file; file.open("f1.txt",ios:in); cout<<file.rdbuf(); file.close(); break; case 8:/統(tǒng)計(jì)每個(gè)學(xué)生的平均成績(jī) if(i=0) cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break; for(int m=0;m<i;m+) cout<<(*sm).name<<" 學(xué)號(hào):"<<(*sm).number<<" 總分:"<<(*sm).getsum()<<" 均分:"<<(*sm).getaver()<<endl; break; case 9:/統(tǒng)計(jì)各學(xué)科不及格人數(shù) if(i=0) cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break; int m,n,k,j;m=0;n=0;k=0; for(j=0;j<i;j+) if(sj->math<60)m+; if(sj->cpp<60)n+; if(sj->english<60)k+; cout<<"數(shù)學(xué)不及格人數(shù)為:"<<m<<endl; cout<<"c+不及格人數(shù)為:"<<n<<endl; cout<<"英語(yǔ)不及格人數(shù)為:"<<k<<endl; break; case 10:/按總分排名 if(i=0)cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<<endl;break; int h,g,n;int j=0;float a100,temp; for(g=0;g<i;g+) aj=(*sg).getsum();j+; for(h=0;h<i;h+) for

注意事項(xiàng)

本文(高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)- -學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn))為本站會(huì)員(na****u)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!