




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、習(xí)報(bào)告一、課程設(shè)計(jì)目的1. C+ 課程設(shè)計(jì),使我們能夠?qū)W(xué)到的面向?qū)ο蟮脑O(shè)計(jì)思想運(yùn)用在具體的工作和學(xué)習(xí)中,加深對(duì)類和對(duì)象的理解,2. 要求學(xué)生對(duì)生活中許多具體的事物抽象出類,并掌握繼承和派生類、基類、虛函數(shù)和多態(tài)的概念。3. 通過課程設(shè)計(jì)掌握C+ 語言程序設(shè)計(jì)的編程思想,為后續(xù)課程打下基礎(chǔ)。4. 培養(yǎng)我實(shí)際操作能力和實(shí)踐能力,為以后的工作打下堅(jiān)實(shí)的基礎(chǔ)。二、課程設(shè)計(jì)的內(nèi)容1、課程設(shè)計(jì)的題目及簡介文本界面為管理員1. 輸入信息2. 保存信息3. 查詢信息4. 修改并保存5. 顯示全部6. 刪除信息7. 退出系統(tǒng)學(xué)生1 信息查詢( 1 )輸入姓名( 2)輸入學(xué)號(hào)2 退出系統(tǒng)2、設(shè)計(jì)說明總體結(jié)構(gòu)我們
2、采取模塊化方式進(jìn)行程序設(shè)計(jì),要求程序的功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及整體結(jié)構(gòu)設(shè)計(jì)合理。也可根據(jù)自己對(duì)題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式(至少采用文本菜單界面,如能采用圖形菜單界面更好)工作,運(yùn)行界面友好,演示程序以用戶和計(jì)算機(jī)的對(duì)話方式進(jìn)行( 1) 首先,看題目要求,每一條記錄包括一個(gè)學(xué)生的姓名、性別、專業(yè)、出生日期、家庭住址、英語成績。同時(shí),應(yīng)具備以下功能:1、輸入功能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生成績記錄的輸入。2保存功能:對(duì)指定學(xué)生的成績進(jìn)行保存3. 查詢功能:選擇某種方式并輸入該成績查詢符合條件的學(xué)生成績4、修改并保存功能:對(duì)指定學(xué)生的成績進(jìn)行修改保存。5顯示功能:將以上功能
3、操作后的學(xué)生成績顯示出來。6、刪除功能:對(duì)指定學(xué)生的成績進(jìn)行刪除。7.退出主菜單,3程序流程圖各功能模塊的實(shí)現(xiàn)流程圖:1增加學(xué)生成績調(diào)用函數(shù)Node* Create()判斷gg是否等于一如果是可創(chuàng)建鏈表輸入相應(yīng)的學(xué)生成績?nèi)绻皇莿t需要運(yùn)用Insert(p)函數(shù)插入結(jié)點(diǎn)增加學(xué)生成績的,并通過chundang(p)函數(shù)進(jìn)行存檔,具體流程如下圖所示流程圖-一'、八梅以前是 /新增學(xué)生)2刪除酗械涉(入學(xué)個(gè)的各)/成績 J WSftH 甑ode* Delete(Node* head褥t num) J )懦楙生的成績必須對(duì)鏈倉點(diǎn)進(jìn)紅嶇意味城等某個(gè)要人型中后指全新連接,完成鏈表結(jié)點(diǎn)的刪除任務(wù)流程圖
4、3.導(dǎo)入學(xué)生成績打開存檔文件ifstream Filein("out.txt");輸出說存檔的學(xué)生成績流程匿二Wf函數(shù) Node* sousuo(No顯示學(xué)生的成績head , char na20):周戰(zhàn)績數(shù)4 Noc 的數(shù)組進(jìn)行比較,按照提示輸 e* tongji(Node* Wead) 然后存遮逾椒索運(yùn)用一,詢的常害成 f for循環(huán),將輸, 績,故學(xué)生白退出該功k的相應(yīng)上季天假附 菜單,繼續(xù)退出該功能,返回主菜 生名進(jìn)籍搜索續(xù)選擇strcmp ()函數(shù)與對(duì)應(yīng)要思想叱首先設(shè)置英de*eadf %1 染1最大值成績的統(tǒng)6十:按50吾成績進(jìn)行排序: 調(diào)用函數(shù)Node* pa
5、ixu(績英語成績一次比較進(jìn)行比較,(如進(jìn)行比較(統(tǒng)計(jì)所設(shè)定的專業(yè)人 數(shù)和男女性別的人100Z最小值相等的就輸出排名輸出統(tǒng)計(jì)的 成績選擇退出該功如果等于99且上次沒有等于100的,就輸出排名能,返回主(也可以使150或者其他)依后魁缸AW生成t后排名1),否則最大1,然后排名加1,如果上次有等于100的排名為2),如果沒有與 99相等的.,則繼續(xù)循環(huán)流程圖:學(xué)生管理系統(tǒng)7保存學(xué)生成 績:提示保存 成功1輸入學(xué)生的成 績:姓名、性別、 專業(yè)、出生日 期、家庭地址、4、輸入你要查 找你學(xué)生姓名.5.6.7.菜單,新增學(xué)生成績 ,刪除學(xué)生成績 .導(dǎo)入學(xué)生成績 .學(xué)生成績搜索 .學(xué)生成績
6、統(tǒng)計(jì) .學(xué)生成績保存.退出5統(tǒng)計(jì)各種專 業(yè)、男女、相應(yīng)年齡的人數(shù)語成績2、輸入要?jiǎng)h除的學(xué) 生的編號(hào),刪除學(xué)生 成績。號(hào)、姓名、性別、專 業(yè)、出生日期、家庭 地址、英語成績7、退出系統(tǒng)3、輸出學(xué)生的編各功能顯示效果模塊圖:學(xué)生和管理員輸入管理員進(jìn)入界面后增加學(xué)生成績和導(dǎo)入學(xué)生成績保存學(xué)生成績學(xué)生進(jìn)入界面后,按學(xué)生姓名查詢并輸出成績4、程序清單#include <iostream>#include <string>#include <fstream> using namespace std;#define password 123456;/people.hcla
7、ss stupeople /人員類基類public:int getage();/年齡char* getname();/姓名char* getsex();/性別voiddisplay();/輸出信息voidpeosearch();/查詢信息voidpeosave();/保存信息private:char name20;char sex4;int age;/student.hclass stustudent:public stupeople public:int getnumber();/ 學(xué)號(hào) double getcscore();/ 語文 double getmscore();/ 高數(shù) doub
8、le getescore();/ 外語 double getpscore();/C+ double getdscore();/ 數(shù)據(jù)庫 double getsscore();/ 體育 double getave();/ 平均成績 double getsum();/ 總成績 voidstuenterinfo();/ 輸入信息voiddisplay();/ 輸出信息voidstusearch();/查找信息voidstusave();/ 保存信息voidstuload();/ 加載信息private:intnumber;double cscore;double mscore;double esco
9、re;double dscore;double pscore;double sscore;double sumscore;double avescore;/admin.hclass stuadmin:public stustudent/派生類管理員類public:void change(); /更改信息void del();/刪除信息private:int newage;int newnumber;char newsex;char newname;char changename20;double newcscore;double newmscore;double newescore;doubl
10、e newdscore;double newpscore;double newsscore;double newsumscore;double newavescore;int i,j,p6;char A,B,x;stuadmin sa;struct studentinfoint number;char name20;char sex4;intage ;doublecscore;doublemscore;doubleescore;double pscore;double dscore;double sscore;double sumscore;double avescore;int flag;s
11、;/人員類的相關(guān)函數(shù)的定義int stupeople:getage()return age;char* stupeople:getname()return name;char* stupeople:getsex()return sex;/學(xué)生類的相關(guān)函數(shù)的定義int stustudent:getnumber()return number;double stustudent:getcscore()return cscore;double stustudent:getmscore()return mscore;double stustudent:getescore()return escore;d
12、ouble stustudent:getpscore()return pscore;double stustudent:getdscore()return dscore;double stustudent:getsscore()return sscore;)double stustudent:getsum()(sumscore=cscore+mscore+escore+pscore+dscore+sscore;return sumscore;)double stustudent:getave()/ 平均成績(avescore=sumscore/6;return avescore;)void s
13、tustudent:stuenterinfo()/ 輸入信息(cout<<"請(qǐng)輸入學(xué)號(hào):"cin>>s.number;cout<<endl;cout<<"請(qǐng)輸入姓名:"cin>>;cout<<endl;cout<<"請(qǐng)輸入性別:"cin>>s.sex;cout<<endl;cout<<"請(qǐng)輸入年齡:"cin>>s.age;cout<<endl;cout<&
14、lt;"請(qǐng)輸入各科成績:"<<endl;cout<<"語文:";cin>>s.cscore;cout<<endl;cout<<"高數(shù):";cin>>s.mscore;cout<<endl;cout<<"外語:"cin>>s.escore;cout<<endl;cout<<"C+:"cin>>s.pscore;cout<<endl;cout&l
15、t;<"數(shù)據(jù)庫:"cin>>s.dscore;cout<<endl;cout<<"體育:";cin>>s.sscore;cout<<endl;cout<<" 信息輸入成功!"<<endl;s.flag=0;s.sumscore= s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore;s.avescore=s.sumscore/6;void stustudent:stusave()/ 保存信息o
16、fstream out("information.txt",ios:app|ios:binary);if(out)out.write(char*)&s, sizeof s);cout<<" 信息保存成功!"<<endl;else cout<<" 文本為空!"<<endl;out.close();void stustudent:display()/ 顯示信息ifstream ifile;ifile.open("information.txt",ios:binar
17、y);if(ifile)while(ifile.read(char*)&s,sizeof s)!=0)if(s.flag=0)cout<<" 學(xué)號(hào) :"<<s.number<<" 姓名 :"<<<<" 性別 :"<<s.sex<<" 年齡 :"<<s.age<<" 語文 :"<< s.cscore<<" 高數(shù) :"<&l
18、t;s.mscore<<" 外語 :"<<s.escore<<"C+:"<<s.pscore<<" 數(shù)據(jù)庫 :"<<s.dscore <<" 體育 :"<<s.sscore<<" 總分 :"<<s.sumscore<<" 平均分 :"<<s.avescore<<endl;elsecout<<" 文本為
19、空!"<<endl;ifile.close();void stustudent:stusearch()/ 查詢信息char stuname20;int e=0;cout<<" 請(qǐng)輸入您要查找的姓名:"cin>>stuname;ifstream ifile;ifile.open("information.txt",ios:binary);if(ifile)while(ifile.read(char*)&s,sizeof s)!=0) (if(strcmp(stuname,)=0)&&
20、amp; s.flag=0) cout<<"學(xué)號(hào):"<<s.number<<"姓名:"<<<<"性另1J :"<<s.sex<<"年齡:"<<s.age<<"語文:"<<s.cscore<<"高數(shù):"<<s.mscore<<"外語:"<<s.escore<<"
21、;C+:"<<s.pscore<<"數(shù)據(jù)庫:"<<s.dscore<<"體育:"<<s.sscore<<"總分:"<<s.sumscore<<"平均分:"<<s.avescore<<endl; e=1;break;else cout<<"文本未建立!"<<endl;ifile.close();if(e=0)cout<<"沒
22、有相關(guān)信息!"<<endl;/管理員類的相關(guān)函數(shù)的定義void stuadmin:change()char changename20;int e;cout<<"請(qǐng)輸入您要修改的姓名:";cin>>changename;fstream ifile("information.txt",ios:in|ios:out);while(ifile.read(char*)&s,sizeof s)!=0) if(strcmp(changename,)=0)&&s.flag=0) cout&
23、lt;<"學(xué)號(hào):"<<s.number<<"姓名:"<<<<"性另h"<<s.sex<<"年齡:"<<s.age<<"語文:"<<s.cscore<<"高數(shù):"<<s.mscore<<" 外語:"<<s.escore<<"C+:"<<s.ps
24、core<<"數(shù)據(jù)庫:"<<s.dscore<<"體育:"<<s.sscore<<"總分:"<<s.sumscore<<"平均 分:"<<s.avescore<<endl;e=1; break;if(e=0)cout<<"沒有相關(guān)信息!"<<endl;if(e=1) int choose;cout<<"t 請(qǐng)選擇修改方式:"<&
25、lt;endl<<endl;cout<<"1.修改學(xué)號(hào):"<<endl;cout<<"2.修改姓名:"<<endl;cout<<"3.修改性別:"<<endl;cout<<"4.修改年齡:"<<endl;cout<<"5.修改語文成績:"<<endl;cout<<"6.修改高數(shù)成績:"<<endl;cout<<
26、"7.修改外語成績:"<<endl;cout<<"8.修改 C+成績:"<<endl;cout<<"9.修改數(shù)據(jù)庫成績:"<<endl;cout<<"10.修改體育成績:"<<endl;cout<<endl;cout<<"請(qǐng)選擇:"<<endl;cin>>choose;switch(choose)case 1:cout<<"請(qǐng)輸入學(xué)生學(xué)號(hào) ci
27、n>>s.number;break;case 2: cout<<"請(qǐng)輸入學(xué)生姓名 cin>>;break;case 3:cout<<"請(qǐng)輸入學(xué)生性別 cin>>s.sex;break;case 4:cout<<"請(qǐng)輸入學(xué)生年齡 cin>>s.age;break;:"<<endl;:"<<endl;<m 男門女>:"<<endl;:"<<endl;case 5:cout&l
28、t;<"請(qǐng)輸入學(xué)生語文成績:"<<endl; cin>>s.cscore;break;case 6:cout<<"請(qǐng)輸入學(xué)生高數(shù)成績:"<<endl;cin>>s.mscore;break;case 7:cout<<"請(qǐng)輸入學(xué)生外語成績:"<<endl;cin>>s.escore;break;case 8:cout<<"請(qǐng)輸入學(xué)生 C+成績:"<<endl; cin>>s.psc
29、ore;break;case 9:cout<<"請(qǐng)輸入數(shù)據(jù)庫成績:"<<endl;cin>>s.dscore;break;case 10:cout<<" 請(qǐng)輸入學(xué)生體育成績:"<<endl;cin>>s.sscore; break; /*default: cout<<"t 輸入錯(cuò)誤,返回主菜單!"<<endl;adminwelcome();*/cout<<" 信息輸入成功!"<<endl;s.fl
30、ag=0;s.sumscore= s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore;s.avescore=s.sumscore/6;ifile.seekp(-(sizeof s),ios:cur);ifile.write(char*)&s,sizeof s);cout<<" 信息已修改并保存!"<<endl; ifile.close();void stuadmin:del()/ 刪除信息char delname20;int e=0;cout<<" 請(qǐng)輸入您要?jiǎng)h除的
31、學(xué)生姓名:"<<endl;cin>>delname;fstream ifile;ifile.open("information.txt",ios:in|ios:out);while(ifile.read(char*)&s,sizeof s)!=0)if(strcmp(delname,)=0)&&s.flag=0) cout<<" 學(xué)號(hào) :"<<s.number<<" 姓名 :"<<<<"
32、; 性別 :"<<s.sex<<" 年齡 :"<<s.age<<"語文:"<<s.cscore<<" 高數(shù) :"<<s.mscore<<" 外語 :"<<s.escore<<"C+:"<<s.pscore<<" 數(shù)據(jù)庫 :"<<s.dscore<<" 體育 :"<<s.
33、sscore<<" 總分 :"<<s.sumscore<<" 平均分 :"<<s.avescore<<endl;e=1; break;if(e=0)cout<<" 沒有相關(guān)信息!"<<endl;if(e=1)s.flag=1;ifile.seekp(-(sizeof s),ios:cur);ifile.write(char*)&s,sizeof s);cout<<" 信息刪除成功!"<<endl;if
34、ile.close();/歡迎界面void studentwelcome()/ 學(xué)生歡迎界面 cout<<"*”<<endl;cout<<"I*歡迎使用學(xué)生信息管理系統(tǒng)<<endl;cout<<"*”<<endl;*”cout<<"tt 1.查詢信息tt 2. 退出系統(tǒng)"<<endl;cout<<"*”<<endl;docout<<" 請(qǐng)輸入您要進(jìn)行的操作編號(hào)(1 或 2):"cin&
35、gt;>i;cout<<endl;if(i<1|i>2)cout<<" 對(duì)不起 ,請(qǐng)輸入 1 或 2 這兩個(gè)選擇數(shù)字!"<<endl;while (i<1|i>2);switch(i)case 1: sa.stusearch();studentwelcome();break;case 2:exit(0);break;void adminwelcome()/ 管理員歡迎界面cout<<"*”<<endl;cout<<"I*歡迎使用學(xué)生信息管理系統(tǒng)<<endl;cout<<"*”<<endl;*”cout<<"*”<<endl;<<endl;"<<endl;cout<<"t1.輸入信息t2.保存信息.t3.查詢信息t4.修改并保存cout<<"t5.顯示全部t6.刪除信息t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國電容式傳感器場行業(yè)運(yùn)行現(xiàn)狀及發(fā)展前景分析報(bào)告
- 衡陽幼兒師范高等??茖W(xué)?!兜乩矶嗝襟w課件制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江樹人學(xué)院《ERP軟件原理與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年四川省建筑安全員《C證》考試題庫
- 陜西理工大學(xué)《數(shù)字化會(huì)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長江大學(xué)文理學(xué)院《報(bào)關(guān)實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建船政交通職業(yè)學(xué)院《網(wǎng)絡(luò)規(guī)劃與優(yōu)化實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆吉林省長春市高三上學(xué)期質(zhì)量監(jiān)測(cè)(一)歷史試卷
- 湘潭大學(xué)《生命科學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶師范大學(xué)《醫(yī)學(xué)影像診斷學(xué)上》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年企業(yè)規(guī)章制度修訂方案
- 聚焦任務(wù)的學(xué)習(xí)設(shè)計(jì)作業(yè)改革新視角
- 血管活性藥物靜脈輸注護(hù)理方法(中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)T CNAS 22-2021)
- 史上最完善IPD培訓(xùn)資料華為IPD培訓(xùn)資料
- 2024高二語文期末試卷(選必上、中)及詳細(xì)答案
- 《選材專項(xiàng)訓(xùn)練》課件
- 附著式升降腳手架安裝平臺(tái)和架體檢查驗(yàn)收表
- 小兒麻疹的護(hù)理查房
- DL-T 2574-2022 混流式水輪機(jī)維護(hù)檢修規(guī)程
- 《鋼鐵是怎樣煉成的》讀書分享課件
- GB/T 19830-2023石油天然氣工業(yè)油氣井套管或油管用鋼管
評(píng)論
0/150
提交評(píng)論