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

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

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

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

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

河南工程學(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é)院 專業(yè)班級(jí): 軟件工程1341 專業(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ì)(30分)分析系統(tǒng)的功能模塊編程調(diào)試(30分)實(shí)現(xiàn)系統(tǒng)的各個(gè)功能模塊,并完成調(diào)試回答問(wèn)題(15分)回答老師針對(duì)課程設(shè)計(jì)提出的問(wèn)題課程設(shè)計(jì)報(bào)告撰寫(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ì)目的11.1 設(shè)計(jì)目的11.2設(shè)計(jì)任務(wù)11.3 課程設(shè)計(jì)要求1第2章 系統(tǒng)實(shí)現(xiàn)思路22.1 需求分析22.2 系統(tǒng)功能模塊以及性能要求22.3 模塊框架圖3第3章 系統(tǒng)詳細(xì)設(shè)計(jì)43.1 關(guān)鍵類的設(shè)計(jì)43.2 界面設(shè)計(jì)43.3 主要功能函數(shù)的設(shè)計(jì)5第4章 系統(tǒng)調(diào)試運(yùn)行94.1 程序運(yùn)行結(jié)果94.2 程序結(jié)果分析12課程設(shè)計(jì)體會(huì)13參考文獻(xiàn)14附 錄15第1章 系統(tǒng)設(shè)計(jì)目的1.1 設(shè)計(jì)目的進(jìn)一步深化掌握C+語(yǔ)言的基本知識(shí);掌握結(jié)構(gòu)化程序設(shè)計(jì)的基本方法和設(shè)計(jì)技巧,初步了解算法分析與設(shè)計(jì)概念;理解面向?qū)ο蟪绦蛟O(shè)計(jì)思想,初步具備運(yùn)用面向?qū)ο蟪绦蛟O(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)的能力。能熟練應(yīng)用VC+集成環(huán)境進(jìn)行C+語(yǔ)言程序的編寫、編譯與調(diào)試,提高對(duì)本課程知識(shí)綜合運(yùn)用能力。通過(guò)本課程設(shè)計(jì)的實(shí)踐,將學(xué)到的面向?qū)ο蟮某绦蛟O(shè)計(jì)思想用到具體的工作學(xué)習(xí)中,加深對(duì)類與對(duì)象的理解,提高分析問(wèn)題、解決問(wèn)題、從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力。1.2設(shè)計(jì)任務(wù)1.設(shè)計(jì)四個(gè)類,包括學(xué)生類(描述學(xué)生基本信息);成績(jī)類;班級(jí)類;課程類(描述課程信息:課程編號(hào),科目名稱,如高等數(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)行排序,能查詢學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單。5. 設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比。 6.計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比)。 7. 顯示學(xué)生的姓名、所選課程名稱以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息。分單人顯示和以班輸出(班成績(jī)單格式輸出到文件) 注意,至少應(yīng)包含一個(gè)班、30人、三門課。 1.3設(shè)計(jì)要求根據(jù)C+課程所學(xué)的概念、理論和方法,按照C+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序來(lái)實(shí)現(xiàn)設(shè)計(jì)課程內(nèi)容中的全部功能;設(shè)計(jì)主控模塊程序?qū)o出的程序源代碼要給出各部分的詳細(xì)注釋自己根據(jù)能力及需要添加相應(yīng)功能模塊,增強(qiáng)模擬系統(tǒng)功能。包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計(jì)、程序流程圖或結(jié)構(gòu)框圖、邏輯結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫(kù)中的表、視圖(如果使用)、索引的結(jié)構(gòu)和定義、觸發(fā)器、存儲(chǔ)過(guò)程、課程設(shè)計(jì)體會(huì)。第2章 系統(tǒng)實(shí)現(xiàn)思路2.1 需求分析學(xué)生教務(wù)管理系統(tǒng)是一個(gè)教學(xué)單位中教學(xué)管理不可缺少的一部分,它的內(nèi)容對(duì)學(xué)生情況管理來(lái)說(shuō)至關(guān)重要。一直以來(lái),人們使用人工的管理方式,其效率低,時(shí)間長(zhǎng)。為提高教務(wù)管理的效率和水平,與時(shí)俱進(jìn),對(duì)一個(gè)擁有如下功能的學(xué)生教務(wù)管理系統(tǒng)需求日益迫切。能對(duì)學(xué)生各科成績(jī)進(jìn)行錄入:。能對(duì)學(xué)生的成績(jī)進(jìn)行增加。能對(duì)學(xué)生的成績(jī)進(jìn)行刪除。能對(duì)學(xué)生的成績(jī)進(jìn)行修改。能對(duì)學(xué)生的成績(jī)按總成績(jī),姓名,進(jìn)行查詢。能輸出學(xué)生的所有數(shù)據(jù)。能進(jìn)行成績(jī)統(tǒng)計(jì)。能進(jìn)行總分查詢排名。2.2 系統(tǒng)功能模塊以及性能要求學(xué)生成績(jī)查詢系統(tǒng)有:成績(jī)錄入、增加、刪除、修改,數(shù)據(jù)查詢,排序顯示構(gòu)成。(1)磁盤容量要求:存儲(chǔ)容量嬌小,數(shù)據(jù)庫(kù)系統(tǒng)也不是很大,系統(tǒng)文件占一些磁盤空間,需要足夠大磁盤空間以容納系統(tǒng),倘若空間不足,應(yīng)該即使清理系統(tǒng)中過(guò)期文件。(2)安全性要求:系統(tǒng)有著權(quán)限設(shè)置,不同的用戶有著不同的權(quán)限,非相關(guān)人員不可越權(quán)進(jìn)行學(xué)生的操作,學(xué)生也不可越權(quán)修改或訪問(wèn),教師可賦予管理員的權(quán)限,可以對(duì)網(wǎng)站進(jìn)行任何操作。同時(shí)對(duì)于非法用戶,不能夠根據(jù)用戶的相對(duì)網(wǎng)址來(lái)訪問(wèn)網(wǎng)站和對(duì)網(wǎng)站進(jìn)行任何操作。(3)適應(yīng)性要求:要求界面菜單清楚,學(xué)生和老師都能很快熟悉網(wǎng)站。2.3 模塊框架圖根據(jù)該程序設(shè)計(jì)的任務(wù)和目的畫出模塊框架圖2-3。 學(xué)生成績(jī)管理系統(tǒng)操作查詢成績(jī)統(tǒng)計(jì)按總成績(jī)排名錄入增加刪除修改總成績(jī)查詢姓名每個(gè)學(xué)生的平均成績(jī)各科不及格的人數(shù)輸出所有學(xué)生的成績(jī) 圖2-3 模塊框架圖 第3章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1關(guān)鍵類的設(shè)計(jì)創(chuàng)建Stu類,在其中公用部分定義構(gòu)造函數(shù),成為類與外部的接口,而數(shù)據(jù)私有,形成接口與實(shí)現(xiàn)的分離,主函數(shù)定義為友元函數(shù),方便訪問(wèn)類成員。class Stu /通過(guò)定義一個(gè)類來(lái)定義數(shù)據(jù)錄入的函數(shù) 。 char name30; int number; float math,cpp,english,average,sum; public: Stu() ; Stu ( char n30, int num,float ma,float cj,float eng ) ; float getsum();/得到總分的函數(shù) float getaver(); /得到平均分的函數(shù) friend void main(); /將主函數(shù)定義為友元函數(shù),方便訪問(wèn)類中的成員 ;3.2 界面設(shè)計(jì)主函數(shù)中運(yùn)用ASCII字符以及endl換行符構(gòu)造一個(gè)友好而簡(jiǎn)潔的界面。void main() cout<<"*歡迎來(lái)到學(xué)生成績(jī)查詢系統(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<<"查詢:"<<endl; cout<<"(5)按總成績(jī)查詢"<<endl; cout<<"(6)按姓名查詢"<<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)按總分查詢排名"<<endl; cout<<"(11)退出"<<endl;cout<<"選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!"<<endl; 3.3主要功能函數(shù)的設(shè)計(jì)主函數(shù)中通過(guò)switch()函數(shù)調(diào)用不同的功能,同時(shí)采用對(duì)文件的輸入輸出進(jìn)而來(lái)保存刪除查找數(shù)據(jù)。(1)此函數(shù)為數(shù)據(jù)錄入的實(shí)現(xiàn)過(guò)程,程序用fstream類定義文件流對(duì)outfile,infile調(diào)用結(jié)構(gòu)函數(shù)打開磁盤文件f1.txt,用if語(yǔ)句判斷文件是否打開。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) /判斷文件是否打開 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; (2)此函數(shù)為按總分查詢的實(shí)現(xiàn)過(guò)程巧妙運(yùn)用字母i,定義i的值為零時(shí)數(shù)據(jù)不存在, 1為是數(shù)據(jù)存在的情況,查詢時(shí)考慮數(shù)據(jù)是否存在;然后利用指針調(diào)用分?jǐn)?shù)。case 5:/按總分查詢 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)輸入您要查詢的學(xué)生的總成績(jī):"<<endl; cin>>SUM; for(int j=0;j<i;j+) if(sj->getsum()=SUM) flag=1;cout<<"您要查詢的學(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ì)不起!您要查詢的學(xué)生不存在!"<<endl;cout<<"是否繼續(xù)查?(y/n):"cin>>c;if(c!='y'&&c!='n')cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl; cin>>c; ;while(c='y');break;(3)此函數(shù)為按總分排名的實(shí)現(xiàn)過(guò)程,先利用指針調(diào)用總分函數(shù)sum,然后利用冒泡法進(jìn)行總分的排序。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(n=0;n<i-h;n+) if(an>an+1) temp=an;an=an+1;an+1=temp; for(n=1;n<=i;n+) cout<<an<<endl;break;第4章 系統(tǒng)調(diào)試運(yùn)行4.1程序運(yùn)行結(jié)果通過(guò)單步跟蹤,動(dòng)態(tài)調(diào)試,程序成功運(yùn)行,運(yùn)行和測(cè)試的一些結(jié)果如圖4-1到4-5所示。圖4-1系統(tǒng)的主界面圖4-2學(xué)生成績(jī)的錄入 圖4-3系統(tǒng)的主界面圖4-4各科不及格人數(shù)統(tǒng)計(jì)圖4-5 所有學(xué)生成績(jī)輸出 4.2程序結(jié)果分析系統(tǒng)性能相對(duì)穩(wěn)定,能達(dá)到要求的操作,根據(jù)界面的要求輸入數(shù)字,以及相關(guān)的信息,便可以對(duì)學(xué)生成績(jī)進(jìn)行管理。每一個(gè)case都能執(zhí)行,但是有很多的地方都不夠完善,例如:在總成績(jī)排序中,只能輸出總成績(jī),不能單獨(dú)的輸出學(xué)生的相應(yīng)的信息;每次進(jìn)行別的操作之前都要在進(jìn)行一次數(shù)據(jù)的錄入,不能直接對(duì)原有的文件進(jìn)行讀取。課程設(shè)計(jì)體會(huì)這次實(shí)習(xí)讓我意識(shí)到了自身知識(shí)的欠缺,原本以為掌握的不錯(cuò)的知識(shí),到了這時(shí)卻發(fā)現(xiàn)了欠缺,很多很簡(jiǎn)單的語(yǔ)法,像do while 也可以變得如此復(fù)雜神奇。讓我明白了掌握一門計(jì)算機(jī)語(yǔ)言的語(yǔ)法僅僅是最基本的要求,更重要的是運(yùn)用去綜合,而語(yǔ)言的綜合則要求對(duì)各個(gè)知識(shí)點(diǎn)的良好掌握。 通過(guò)這次明白了C+等語(yǔ)言只是工具,重要的是思路,但僅僅有思路,工具掌握的不好,又會(huì)無(wú)從下手。同時(shí)也要加強(qiáng)自己的讀寫長(zhǎng)代碼的能力。只有通過(guò)不斷讀,不斷的寫,才能把語(yǔ)言運(yùn)用到實(shí)際,而不是僅僅停留在膚淺的理論層次。同時(shí)感謝老師貫穿實(shí)習(xí)過(guò)程的不厭其煩的指導(dǎo)。參考文獻(xiàn)1譚浩強(qiáng)著,c+面向?qū)ο蟪绦蛟O(shè)計(jì),清華大學(xué)出版社1譚浩強(qiáng)著, C+面向?qū)ο蟪绦蛟O(shè)計(jì)題解與上機(jī)指導(dǎo)清華大學(xué)出版社3錢能編著,c+程序設(shè)計(jì)教程,清華大學(xué)出版社4譚浩強(qiáng)編著,c程序設(shè)計(jì)題解與上機(jī)指導(dǎo),清華大學(xué)出版社5呂鳳煮著,C+語(yǔ)言基礎(chǔ)教程,清華大學(xué)出版社6 Robert L.Kruse著,C+數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì),清華大學(xué)出版社 附錄:原程序#include<iostream> #include<string> #include<fstream>#include<sstream>#include<iomanip>using namespace std; class Tstu /通過(guò)定義一個(gè)類來(lái)定義數(shù)據(jù)錄入的函數(shù) char name20; int number; float math,cpp,english,average,sum; public: Tstu() ; Tstu ( char n20, int num,float ma,float cj,float eng ) ; float getsum();/得到總分的函數(shù) float getaver(); /得到平均分的函數(shù) friend void main(); /將主函數(shù)定義為友元函數(shù),方便訪問(wèn)類中的成員 ; Tstu:Tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); /得到姓名 number=num; /得到學(xué)號(hào) math=ma; /得到數(shù)學(xué)成績(jī) cpp=cj; /得到c+成績(jī) english=eng; /得到英語(yǔ)成績(jī) float Tstu:getsum() /得到總分的函數(shù) sum=cpp+english+math; return sum; float Tstu:getaver() /得到平均分的函數(shù) average=getsum()/3; return average; void main() cout<<"*歡迎來(lái)到學(xué)生成績(jī)查詢系統(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<<"查詢:"<<endl; cout<<"(5)按總成績(jī)查詢"<<endl; cout<<"(6)按姓名查詢"<<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)按總分查詢排名"<<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; /類定義的指針將所錄入的數(shù)據(jù)按類中的形式分別存儲(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) /判斷文件是否打開 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:/按總分查詢 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)輸入您要查詢的學(xué)生的總成績(jī):"<<endl; cin>>SUM; for(int j=0;j<i;j+) if(sj->getsum()=SUM) flag=1;cout<<"您要查詢的學(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ì)不起!您要查詢的學(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:/按姓名查詢 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)輸入要查詢的名字: "<<endl; cin>>n; for(int j=0;j<i;j+) if(strcmp(n,(*sj).name)=0)flag=1;cout<<"您要查詢的學(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ì)不起您要查詢的學(xué)生不存在,請(qǐng)查證后再輸入!"<<endl;cout<<"您想繼續(xù)查詢嗎?(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(n=0;n<i-h;n+) if(an>an+1) temp=an;an=an+1;an+1=temp; for(n=1;n<=i;n+) cout<<an<<endl; break; cout<<" 您想繼續(xù)進(jìn)行其他操作嗎?(y/n):" int flag=0; do cin>>w; cout<<endl; if(w!='y'&&w!='n') cout<<" 指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl; else flag=1; while(flag=0); if(w='y') cout<<"*歡迎來(lái)到學(xué)生成績(jī)查詢系統(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<<"查詢:"<<endl; cout<<"(5)按總成績(jī)查詢"<<endl; cout<<"(6)按姓名查詢"<<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)按總分查詢排名"<<endl; cout<<"(11)退出"<<endl; cout<<"選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!"<<endl; cin>>p; while(w='y'); #include<iostream> #include<string> #include<fstream>#include<sstream>#include<iomanip>using namespace std; class Tstu /通過(guò)定義一個(gè)類來(lái)定義數(shù)據(jù)錄入的函數(shù) char name20; int number; float math,cpp,english,average,sum; public: Tstu() ; Tstu ( char n20, int num,float ma,float cj,float eng ) ; float getsum();/得到總分的函數(shù) float getaver(); /得到平均分的函數(shù) friend void main(); /將主函數(shù)定義為友元函數(shù),方便訪問(wèn)類中的成員 ; Tstu:Tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); /得到姓名 number=num; /得到學(xué)號(hào) math=ma; /得到數(shù)學(xué)成績(jī) cpp=cj; /得到c+成績(jī) english=eng; /得到英語(yǔ)成績(jī) float Tstu:getsum() /得到總分的函數(shù) sum=cpp+english+math; return sum; float Tstu:getaver() /得到平均分的函數(shù) average=getsum()/3; return average; void main() cout<<"*歡迎來(lái)到學(xué)生成績(jī)查詢系統(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<<"查詢:"<<endl; cout<<"(5)按總成績(jī)查詢"<<endl; cout<<"(6)按姓名查詢"<<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)按總分查詢排名"<<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; /類定義的指針將所錄入的數(shù)據(jù)按類中的形式分別存儲(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;

注意事項(xiàng)

本文(學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)報(bào)告)為本站會(huì)員(na****u)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(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)系電話:18123376007

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


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