C++課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1_第1頁(yè)
C++課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1_第2頁(yè)
C++課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1_第3頁(yè)
C++課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1_第4頁(yè)
C++課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

高級(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ì)目的11.1 課程設(shè)計(jì)目的11.2 系統(tǒng)設(shè)計(jì)內(nèi)容11.3 程序設(shè)計(jì)思路2第2章 系統(tǒng)實(shí)現(xiàn)思路32.1 對(duì)系統(tǒng)需求的分析32.2 系統(tǒng)的功能分析32.3 系統(tǒng)的功能模塊32.4 模塊框架圖8第3章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)53.1 主函數(shù)的設(shè)計(jì)53.2保存數(shù)據(jù)功能的設(shè)計(jì)63.3 通過(guò)定義類(lèi)來(lái)定義數(shù)據(jù)錄入的函數(shù)83.4 數(shù)據(jù)的錄入123.5 增加修改刪除學(xué)生數(shù)據(jù)133.6查詢(xún)學(xué)生成績(jī)153.7統(tǒng)計(jì)每個(gè)學(xué)生的平均成績(jī)173.8輸出所有學(xué)生數(shù)據(jù)173.9統(tǒng)計(jì)各學(xué)科不及格人數(shù)183.10按總分排名193.11退出程序20課程設(shè)計(jì)體會(huì)21參考文獻(xiàn)22第1章 系統(tǒng)設(shè)計(jì)目的1.1 課程設(shè)計(jì)目的通過(guò)本課程設(shè)計(jì)的實(shí)踐,總結(jié)了解C+課程學(xué)習(xí)中的的數(shù)據(jù)類(lèi)型、數(shù)據(jù)結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體等基本概念,掌握其應(yīng)用范圍及使用方法。掌握面向?qū)ο蟪绦蛟O(shè)計(jì)中有關(guān)類(lèi)、對(duì)象、繼承與派生、重載、多態(tài)性與虛函數(shù)、輸入輸出流類(lèi)體系、文件操作的基本概念,掌握基類(lèi)派生類(lèi)的關(guān)系,了解它們的調(diào)用范圍,初步學(xué)會(huì)用類(lèi)與對(duì)象這種面向?qū)ο蟮某绦蛟O(shè)計(jì)方法編寫(xiě)簡(jiǎn)單的應(yīng)用程序。培養(yǎng)使用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法編寫(xiě)計(jì)算機(jī)程序的能力。本次實(shí)踐通過(guò)設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng),根據(jù)高級(jí)程序設(shè)計(jì)語(yǔ)言課程所學(xué)的概念、理論與方法,按照C+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序來(lái)實(shí)現(xiàn)設(shè)計(jì)課程內(nèi)容中的全部功能。進(jìn)一步熟悉C+中類(lèi)的概念、類(lèi)的封裝的實(shí)現(xiàn)方式,對(duì)類(lèi)和對(duì)象進(jìn)一步討論。了解系統(tǒng)開(kāi)發(fā)的需求分析、類(lèi)層次設(shè)計(jì)、模塊分解、編碼測(cè)試、模塊組裝與整體調(diào)試的全過(guò)程,加深對(duì)C+的理解與VisualC+環(huán)境的使用;自己根據(jù)能力及需要添加相應(yīng)功能模塊,增強(qiáng)模擬系統(tǒng)功能;逐步熟悉程序設(shè)計(jì)的方法,并養(yǎng)成良好的編程習(xí)慣。程序設(shè)計(jì)是一門(mén)實(shí)踐性很強(qiáng)的課程,必須十分重視實(shí)踐環(huán)節(jié)。認(rèn)識(shí)是從實(shí)踐開(kāi)始的,我們要增強(qiáng)自己的實(shí)踐意識(shí),在實(shí)踐中進(jìn)一步鞏固,每一次實(shí)踐都是一次增長(zhǎng)。1.2 系統(tǒng)設(shè)計(jì)內(nèi)容運(yùn)用c+語(yǔ)言面向?qū)ο蟮木幊趟枷胪瓿上旅娴脑O(shè)計(jì)任務(wù):(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.3 程序設(shè)計(jì)思路根據(jù)高級(jí)程序設(shè)計(jì)語(yǔ)言課程所學(xué)的概念、理論與方法,按照C+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序來(lái)實(shí)現(xiàn)設(shè)計(jì)課程內(nèi)容中的全部功能。 此學(xué)生成績(jī)管理系統(tǒng)通過(guò)調(diào)用各個(gè)函數(shù),完成對(duì)基本信息的設(shè)計(jì)需求。具體包括類(lèi)的設(shè)計(jì),設(shè)計(jì)四個(gè)類(lèi),運(yùn)用類(lèi)的派生與繼承,實(shí)現(xiàn)對(duì)四個(gè)基本信息的構(gòu)造,接下來(lái)進(jìn)行主函數(shù)的設(shè)計(jì),然后再分模塊進(jìn)行一層一層的設(shè)計(jì),其中運(yùn)用文件保存學(xué)生成績(jī)及課程信息,使程序執(zhí)行時(shí)從文件讀入,這樣來(lái)實(shí)現(xiàn)每一個(gè)的子功能。第2章 系統(tǒng)實(shí)現(xiàn)思路2.1 對(duì)系統(tǒng)需求的分析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.2 系統(tǒng)的功能分析 資料維護(hù):系統(tǒng)維護(hù)包括對(duì)學(xué)生信息的錄入操作及數(shù)據(jù)表中的學(xué)生信息進(jìn)行瀏覽與數(shù)據(jù)保護(hù);系統(tǒng)功能:可以對(duì)數(shù)據(jù)表中的信息進(jìn)行瀏覽;系統(tǒng)查詢(xún):可以對(duì)學(xué)生的信息進(jìn)行查詢(xún)。2.3 系統(tǒng)功能模塊學(xué)生成績(jī)查詢(xún)系統(tǒng)有:成績(jī)錄入、增加、刪除、修改學(xué)生數(shù)據(jù),數(shù)據(jù)查詢(xún),排序顯示構(gòu)成。2.4模塊框架圖對(duì)學(xué)生成績(jī)查詢(xún)系統(tǒng)進(jìn)行分析,系統(tǒng)可分為四大模塊:1.操作模塊:成績(jī)的錄入、增加、刪除與修改;2.查詢(xún)模塊:包括按總成績(jī)查詢(xún)、按姓名查詢(xún)、輸出所有學(xué)生成績(jī);3.成績(jī)統(tǒng)計(jì):包括輸出每個(gè)學(xué)生的平均成績(jī)、各科不及格人數(shù);4.排名:按總成績(jī)排名;根據(jù)學(xué)生的基本信息,借助C+有的優(yōu)勢(shì)特點(diǎn),我們做出了以下的模版圖塊,便于理解和設(shè)計(jì)運(yùn)用。如圖2-1所示 排名學(xué)生成績(jī)管理系統(tǒng)操作查詢(xún)成績(jī)統(tǒng)計(jì)錄入增加刪除修改總成績(jī)查詢(xún)姓名輸出所有學(xué)生的成績(jī)每個(gè)學(xué)生的平均成績(jī)各科不及格人數(shù)圖2-1 模版框架圖第3章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1主函數(shù)的設(shè)計(jì)設(shè)計(jì)一個(gè)界面,使其出現(xiàn)一個(gè)簡(jiǎn)單的窗口,按提示進(jìn)行進(jìn)行相應(yīng)操作。 代碼如下: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ù)字及字母!p; if(p=1&p=11) chris1=1; else cout指令錯(cuò)誤!請(qǐng)重新輸入:endl; 運(yùn)行程序,得到主界面圖3-1: 3-1 主界面顯示3.2 保存數(shù)據(jù)功能的設(shè)計(jì)保存數(shù)據(jù)主要是對(duì)數(shù)據(jù)的保密性,可持續(xù)性等進(jìn)行完整的保存,以便以后程序在應(yīng)用是能準(zhǔn)確無(wú)誤的調(diào)用所保存的數(shù)據(jù)。 fstream outfile,infile; /作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; outfilename 學(xué)號(hào):number 數(shù)學(xué)成績(jī):math C+成績(jī):cpp 外語(yǔ)成績(jī):englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) /判斷文件是否打開(kāi) coutf1.txt can not open.n; return; char ch; while(infile.get(ch) coutch; coutendl; infile.close(); j+; si=new Tstu(name, number,math, cpp, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c; chris1=0; do if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!c; else chris1=1; while(chris1=0); while(c=y); /重復(fù)輸入 break; 3.3通過(guò)定義類(lèi)來(lái)進(jìn)行數(shù)據(jù)錄入的函數(shù)按題目要求,設(shè)計(jì)四個(gè)類(lèi):student類(lèi)、score類(lèi)、grade類(lèi) 、course類(lèi),其中student類(lèi)是基類(lèi),score是student類(lèi)的公有繼承,grade類(lèi)是score的公有繼承,course是grade的公有繼承。并將類(lèi)中的主函數(shù)定義為友元函數(shù),方便訪問(wèn)類(lèi)中的成員。(1)student類(lèi):其數(shù)據(jù)成員包括學(xué)號(hào)與姓名,按要求用數(shù)組定義三十人的姓名,這樣就可以直接的輸入,以便在之后的程序中用到。其具體構(gòu)造如下class Studentprivate:char name30;int number; public:Student();Student(char n30, int num);friend void main();/將主函數(shù)定義為友元函數(shù),方便訪問(wèn)類(lèi)中的成員;Student:Student(char n30, int num)strcpy(name ,n);/得到姓名number=num;/得到學(xué)號(hào)(2)score類(lèi):大體上分為三類(lèi):數(shù)學(xué)、英語(yǔ)、c+;但是每一類(lèi)又可分為三個(gè)小的部分:平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)。因此,可以這樣定義成績(jī)類(lèi)。class Score:public Studentprivate:double math,cpp,english;double sum,average,mathp,mathq,cppp,cppq,englishp,englishq;public:Score(); Score(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq);double getmath();double getcpp();double getenglish();double getsum(); double getaver();friend void main();/將主函數(shù)定義為友元函數(shù),方便訪問(wèn)類(lèi)中的成員void display();Score:Score(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq)mathp=map;/得到數(shù)學(xué)成績(jī)mathq=maq;cppp=cp;/得到C+成績(jī)cppq=cq;englishp=engp;/得到英語(yǔ)成績(jī)englishq=engq;double Score:getmath() math=mathp*0.3+mathq*0.7; return math;double Score:getcpp()cpp=cppp*0.3+cppq*0.7; return cpp;double Score:getenglish() english=englishp*0.3+englishq*0.7; return english;double Score:getsum() sum=cpp+english+math;return sum;double Score:getaver() average=getsum()/3; return average; void Score:display()coutendlnum: name: math: english: cpp: endl;(3)grade類(lèi):是score類(lèi)的公共派生類(lèi),具體程序代碼如下class Grade:public Scoreprivate:int classn;public:Grade();Grade(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq,int cn); friend void main();Grade:Grade(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq,int cn)classn=cn;(4)course類(lèi):course類(lèi)是grade類(lèi)的公有繼承,在原有的基礎(chǔ)上增加了課程編號(hào)coursenum和課程名稱(chēng)coursename,具體設(shè)計(jì)如下class Course:public Gradepublic:int coursenum;/課程編號(hào)char coursename3;void display();Course(); Course(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq,int cn,int cnum,char cnam3);Course:Course(char n30,int num,double map,double maq,double cp,double cq,double engp,double engq,int cn,int cnum,char cnam3)coursenum=cnum;strcpy(coursename,cnam);void Course:display()coutendlnum: name: cnum: cnam: english: cpp: endl;3.4 數(shù)據(jù)的錄入主要功能用來(lái)對(duì)學(xué)生的成績(jī)進(jìn)行收集和輸入,在學(xué)生信息保存在系統(tǒng)中的前提下,進(jìn)行成績(jī)錄入。按照提示,選擇所需操作,輸入“1”點(diǎn)擊回車(chē),則會(huì)出現(xiàn)主界面,按照提示輸入學(xué)生姓名、學(xué)號(hào)、各科成績(jī)、課程編號(hào)及課程名稱(chēng),本操作執(zhí)行一次系統(tǒng)人數(shù)就增加一個(gè),具體運(yùn)行界面如圖3-2 圖3-2 數(shù)據(jù)錄入圖 3.5 增加、刪除、修改學(xué)生數(shù)據(jù)(1)增加學(xué)生數(shù)據(jù):主要功能是用來(lái)添加學(xué)生資料,有可能會(huì)有遺漏的學(xué)生尚未輸入,對(duì)此,設(shè)計(jì)增加學(xué)生設(shè)計(jì)。進(jìn)入錄入操作之后,按“n”結(jié)束錄入,再按“y”進(jìn)行其他操作,然后輸入“2”即可增加學(xué)生數(shù)據(jù),本操作執(zhí)行一次便可增加一份學(xué)生數(shù)據(jù),具體界面如圖3-3所示圖3-3 增加學(xué)生數(shù)據(jù)圖(2)刪除學(xué)生信息:主要用來(lái)刪除學(xué)生資料,在成績(jī)錄入過(guò)程中存在錄入重復(fù)的情況,就需要進(jìn)行一些刪除工作。在編程過(guò)程中,做一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù),然后輸入名字判斷是否相等,此處用do while 結(jié)構(gòu),若相等則進(jìn)行數(shù)據(jù)刪除。在進(jìn)行其他操作之后,按“n”結(jié)束錄入,再按“y”進(jìn)行其他操作,然后輸入“3”即進(jìn)入刪除操作,具體界面如3-4所示圖 3-4 刪除學(xué)生信息(3)修改學(xué)生信息:主要功能使用來(lái)修改學(xué)生資料,在系統(tǒng)保存了某學(xué)生資料的前提下,輸入該學(xué)生姓名,系統(tǒng)就會(huì)顯示該學(xué)生資料各科成績(jī)信息,這樣就可以修改該學(xué)生的資料了。對(duì)錄入錯(cuò)誤的數(shù)據(jù)進(jìn)行修改,在進(jìn)行其他操作之后,按“n”結(jié)束繼續(xù)的重復(fù)操作,再按“y”進(jìn)行其他操作,然后輸入“4”即進(jìn)入修改操作。具體運(yùn)行成果如圖3-5圖3-5 修改學(xué)生的信息3.6 查詢(xún)學(xué)生成績(jī)(1)按總分查詢(xún):在進(jìn)行其他操作之后,按“n”結(jié)束繼續(xù)的重復(fù)操作,再按“y”進(jìn)行其他操作,然后輸入“5”即進(jìn)入按總分查詢(xún)模塊,輸入特定的分?jǐn)?shù),即可輸出與之相對(duì)應(yīng)的學(xué)生。具體運(yùn)行結(jié)果如圖3-6 3-6 按總分查詢(xún)學(xué)生成績(jī)(2)按姓名查詢(xún):在進(jìn)行其他操作之后,按“n”結(jié)束繼續(xù)的重復(fù)操作,再按“y”進(jìn)行其他操作,然后輸入“6”即進(jìn)入按姓名查詢(xún)操作。輸入要查詢(xún)的姓名,若此姓名存在在庫(kù)中,即可得到其成績(jī)。代碼如下:case 6:/按姓名查詢(xún) char n30;char c;int j=0;int flag;int i; if(i=1)cout系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; do flag=0; cout請(qǐng)輸入要查詢(xún)的名字: n; for(int j=0;ji;j+) if(strcmp(n,(*sj).name)=0)flag=1;cout您要查詢(xún)的學(xué)生是:(*sj).nameendl;cout該生的信息是:學(xué)號(hào):(*sj).number高數(shù)平時(shí)成績(jī):(*sj).mathp 高數(shù)期末成績(jī):(*sj).mathq c+平時(shí)成績(jī):(*sj).cppp c+平時(shí)成績(jī):(*sj).cppq 英語(yǔ)平時(shí)成績(jī):(*sj).englishp 英語(yǔ)平時(shí)成績(jī);(*sj).englishq 班級(jí):(*sj).classn 課程編號(hào):(*sj).coursenum 所選課程:(*sj).coursenameendl; if(flag=0)cout對(duì)不起您要查詢(xún)的學(xué)生不存在,請(qǐng)查證后再輸入!endl;coutc;if(c!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入:c; while(c=y); Break;3.7 統(tǒng)計(jì)每個(gè)學(xué)生的平均成績(jī)?cè)谶M(jìn)行其他操作之后,按“n”結(jié)束繼續(xù)的重復(fù)操作,再按“y”進(jìn)行其他操作,然后輸入“8”即進(jìn)入統(tǒng)計(jì)每個(gè)學(xué)生的平均成績(jī)操作。代碼:case 8:/統(tǒng)計(jì)每個(gè)學(xué)生的平均成績(jī) int i; if(i=0) cout系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; for(int m=0;mi;m+) cout(*sm).name 學(xué)號(hào):(*sm).number 總分:(*sm).getsum() 均分:(*sm).getaver()endl; break;3.8輸出所有學(xué)生數(shù)據(jù)主要功能用來(lái)對(duì)學(xué)生成績(jī)進(jìn)行輸出。在進(jìn)行其他操作之后,按“n”結(jié)束繼續(xù)的重復(fù)操作,再按“y”進(jìn)行其他操作,然后輸入“7”即進(jìn)入輸出所有學(xué)生數(shù)據(jù)操作。運(yùn)行結(jié)果如圖3-7所示3-7 輸出所有的學(xué)生數(shù)據(jù)3.9統(tǒng)計(jì)各科不及格人數(shù)在進(jìn)行其他操作之后,按“n”結(jié)束繼續(xù)的重復(fù)操作,再按“y”進(jìn)行其他操作,然后輸入“9”即可顯示各學(xué)科不及格人數(shù)。代碼:case 9:/統(tǒng)計(jì)各學(xué)科不及格人數(shù) int i; 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;jmathcppenglish60)k+; cout數(shù)學(xué)不及格人數(shù)為:mendl; coutc+不及格人數(shù)為:nendl; cout英語(yǔ)不及格人數(shù)為:kendl; break; 運(yùn)行結(jié)果如圖3-8: 3-8 輸出不及格人數(shù)3.10按總分排名主要功能用來(lái)按總分對(duì)學(xué)生進(jìn)行排名。在進(jìn)行其他操作之后,按“n”結(jié)束繼續(xù)的重復(fù)操作,再按“y”進(jìn)行其他操作,然后輸入“10”即進(jìn)入按總分排名操作。代碼: case 10:/按總分排名 int i; 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;gi;g+) aj=(*sg).getsum();j+; for(h=0;hi;h+) for(n=0;nan+1) temp=an;an=an+1;an+1=temp; for(n=1;n=i;n+) coutanendl; break; coutw; coutendl; if(w!=y&w!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入!endl; else flag=1;3.11退出程序在程序運(yùn)行的簡(jiǎn)捷窗口,選擇自己所要查詢(xún)的目的。例如選擇數(shù)字11,退出程序!如圖3-9圖3-9 退出程序課程設(shè)計(jì)體會(huì)在這次程序設(shè)計(jì)過(guò)程中,我學(xué)會(huì)了好多東西,感受頗深。在編寫(xiě)中遇到了很多困難,會(huì)經(jīng)常忽略一些小的細(xì)節(jié),而偏偏是這些平常不注意的小的細(xì)節(jié)導(dǎo)致程序運(yùn)行錯(cuò)誤。更加使我充分認(rèn)識(shí)到程序的嚴(yán)謹(jǐn)性,深刻的意識(shí)到在以后的學(xué)習(xí)中要不放過(guò)一點(diǎn)小問(wèn)題。也了解到自己所學(xué)知識(shí)的有限,以及熟練應(yīng)用一種程序設(shè)計(jì)語(yǔ)言并不是簡(jiǎn)單的,它不僅需要我們有扎實(shí)的算法基礎(chǔ),也需要多多練習(xí)熟悉掌握。由于對(duì)C+編程的認(rèn)識(shí)還很少,雖然有些好的想法,但沒(méi)有能力實(shí)現(xiàn),更加堅(jiān)定了我學(xué)習(xí)C+的決心。熟練掌握一門(mén)計(jì)算機(jī)語(yǔ)言不是一個(gè)輕松的事,需要長(zhǎng)期不斷學(xué)習(xí),動(dòng)手實(shí)踐。在這次課程設(shè)計(jì)中也大大增強(qiáng)了自己的動(dòng)手能力,將所學(xué)的理論知識(shí)與實(shí)踐有了很好的結(jié)合。經(jīng)過(guò)多次的調(diào)試,拓寬了我的視野,增強(qiáng)了學(xué)習(xí)理論知識(shí)的興趣以及應(yīng)用理論知識(shí)解決實(shí)際問(wèn)題的能力。當(dāng)然也使我意識(shí)到我們應(yīng)保持著一種嚴(yán)謹(jǐn)?shù)膽B(tài)度。真的很珍惜這次實(shí)訓(xùn)機(jī)會(huì),它教會(huì)了我好多,也很感謝老師的指導(dǎo),總之,收獲頗多。我以后也要更加努力學(xué)習(xí)專(zhuān)業(yè)知識(shí),爭(zhēng)取更上一層樓。參考文獻(xiàn)1譚浩強(qiáng)著,C+語(yǔ)言設(shè)計(jì)題解與上機(jī)指導(dǎo),清華大學(xué)出版社2譚浩強(qiáng)著,C+面向?qū)ο蟪绦蛟O(shè)計(jì) 譚浩強(qiáng),清華大學(xué)出版社3李麗娟主編,C+語(yǔ)言程序設(shè)計(jì)教程實(shí)驗(yàn)指導(dǎo)與習(xí)題解答(第3版)4程序設(shè)計(jì) 劉覺(jué)夫王更生等 北京郵電大學(xué)出版社5程序設(shè)計(jì)實(shí)訓(xùn)教程 曾輝王更生等 北京郵電大學(xué)出版社6C+程序設(shè)計(jì)語(yǔ)言(特別版),機(jī)械工業(yè)出版社#include#include#include#include#includeusing namespace std;class Studentprivate:char name30;int number; public:Student();Student(char n30, int num);friend void main();/將主函數(shù)定義為友元函數(shù),方便訪問(wèn)類(lèi)中的成員;Student:Student(char n30, int num)strcpy(name ,n);/得到姓名number=num;/得到學(xué)號(hào)class Score:public Studentprivate:double math,cpp,english;double sum,average,mathp,mathq,cppp,cppq,englishp,englishq;public:Score(); Score(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq);double getmath();double getcpp();double getenglish();double getsum(); double getaver();friend void main();/將主函數(shù)定義為友元函數(shù),方便訪問(wèn)類(lèi)中的成員void display();Score:Score(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq)mathp=map;/得到數(shù)學(xué)成績(jī)mathq=maq;cppp=cp;/得到C+成績(jī)cppq=cq;englishp=engp;/得到英語(yǔ)成績(jī)englishq=engq;double Score:getmath() math=mathp*0.3+mathq*0.7; return math;double Score:getcpp()cpp=cppp*0.3+cppq*0.7; return cpp;double Score:getenglish() english=englishp*0.3+englishq*0.7; return english;double Score:getsum() sum=cpp+english+math;return sum;double Score:getaver() average=getsum()/3; return average; void Score:display()coutendlnum: name: math: english: cpp: endl;class Grade:public Scoreprivate:int classn;public:Grade();Grade(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq,int cn); friend void main();Grade:Grade(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq,int cn)classn=cn;class Course:public Gradepublic:int coursenum;/課程編號(hào)char coursename3;void display();Course();Course(char n30, int num,double map,double maq,double cp,double cq,double engp,double engq,int cn,int cnum,char cnam3);Course:Course(char n30,int num,double map,double maq,double cp,double cq,double engp,double engq,int cn,int cnum,char cnam3)coursenum=cnum;strcpy(coursename,cnam);void Course:display()coutendlnum: name: cnum: cnam: english: cpp: endl;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ù)字及字母!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;char name30;int number;double mathp,mathq,cppp,cppq,englishp,englishq; int classn;int coursenum;/課程編號(hào) char coursename3;/課程名稱(chēng)docout請(qǐng)輸入姓名:name;cout請(qǐng)輸入學(xué)號(hào):number;cout請(qǐng)輸入高數(shù)平時(shí)成績(jī):mathp;cout請(qǐng)輸入高數(shù)期末成績(jī):mathq;cout請(qǐng)輸入c+平時(shí)成績(jī):cppp;cout請(qǐng)輸入c+期末成績(jī):cppq;cout請(qǐng)輸入英語(yǔ)平時(shí)成績(jī):englishp;cout請(qǐng)輸入英語(yǔ)期末成績(jī):englishq; cout請(qǐng)輸入班級(jí):classn;cout請(qǐng)輸入所選課程編號(hào):coursenum;cout請(qǐng)輸入所選課程名稱(chēng):coursename; cout請(qǐng)輸入所選課程編號(hào):coursenum;cout請(qǐng)輸入所選課程名稱(chēng):coursename; cout請(qǐng)輸入所選課程編號(hào):coursenum;cout請(qǐng)輸入所選課程名稱(chēng):coursename;fstream outfile,infile;outfile.open(f1.txt,ios:out|ios:app);if(!file) coutf1.txt can not open.n; return; outfilename 學(xué)號(hào):number 高數(shù)平時(shí)成績(jī):mathp 高數(shù)期末成績(jī):mathq c+平時(shí)成績(jī):cppp c+期末成績(jī):cppq 英語(yǔ)平時(shí)成績(jī):englishp 英語(yǔ)期末成績(jī);englishq 班級(jí):classn 課程編號(hào):coursenum 所選課程:coursenameendl;outfile.close();infile.open(f1.txt,ios:in);if(!file) /判斷文件是否打開(kāi) coutf1.txt can not open.n;return ;char ch;while(infile.get(ch)coutch;coutendl;infile.close();j+;si=new Course(name,number,mathp,mathq,cppp,cppq,englishp,englishq,classn,coursenum,coursename);i+;cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c;chris1=0;doif(c!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入!c;else chris1=1;while(chris1=0);while(c=y); /重復(fù)輸入 break; case 2:/增加學(xué)生數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論