版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、課程設(shè)計(jì)目的程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)是在學(xué)習(xí)完程序設(shè)計(jì)基礎(chǔ)課程后開(kāi)設(shè)的一門(mén)實(shí)踐性課程。要求學(xué)生以個(gè)人為單位,在教師指導(dǎo)下,運(yùn)用理論課所學(xué)知識(shí),借助參考書(shū)籍,選擇一個(gè)課題,使用c+語(yǔ)言,完成一個(gè)功能相對(duì)完整,具有應(yīng)用價(jià)值的軟件。達(dá)到加深理解課堂教學(xué)內(nèi)容,熟悉程序設(shè)計(jì)的基本流程、掌握程序設(shè)計(jì)基本方法,基本技巧、并能綜合運(yùn)用,提高程序設(shè)計(jì)能力。通過(guò)本課程的實(shí)踐,熟練掌握c+語(yǔ)言中面向過(guò)程部分的內(nèi)容,能夠運(yùn)用c+語(yǔ)言解決一個(gè)實(shí)際問(wèn)題。課程設(shè)計(jì)屬于研究型、創(chuàng)新型、自主型學(xué)習(xí)。學(xué)生可以根據(jù)自己的興趣、愛(ài)好、特長(zhǎng),或者以前已經(jīng)接觸過(guò)的內(nèi)容,自行確定課程設(shè)計(jì)課題。也可完成老師提供的參考課題。2、設(shè)計(jì)環(huán)境及語(yǔ)言
2、visual c+集成開(kāi)發(fā)環(huán)境(ide)c+語(yǔ)言。3、 課題設(shè)計(jì)步驟31 需求分析 從軟件使用者處獲得用戶需求,確定課題開(kāi)發(fā)應(yīng)具備的功能;32 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 將整個(gè)系統(tǒng)功能分塊,考慮各個(gè)功能模塊應(yīng)具備的功能,模塊間的聯(lián)系,劃分成不同的子系統(tǒng)進(jìn)行設(shè)計(jì);33 數(shù)據(jù)設(shè)計(jì) 設(shè)計(jì)系統(tǒng)中新的數(shù)據(jù)類(lèi)型、存儲(chǔ)類(lèi)型;34 代碼設(shè)計(jì) 在上述3個(gè)階段的基礎(chǔ)上編寫(xiě)代碼;35 軟件測(cè)試 使用事先設(shè)計(jì)好的測(cè)試用例、對(duì)編制的程序進(jìn)行測(cè)試,發(fā)現(xiàn)存在錯(cuò)誤(包括潛在的問(wèn)題),加以修改,完善。4、課程設(shè)計(jì)提交材料41 電子版的所有.cpp文件和.h文件。每個(gè)學(xué)生以自己的名字建了一個(gè)文件夾,通過(guò)網(wǎng)絡(luò)提交。42 課程設(shè)計(jì)報(bào)告 內(nèi)容包括
3、;1) 課題設(shè)計(jì)內(nèi)容、具備的功能;2) 模塊(函數(shù))的劃分、各模塊(函數(shù))的功能;3) 采用的自定義的數(shù)據(jù)類(lèi)型;4) 程序設(shè)計(jì)過(guò)程、調(diào)試中過(guò)程中所用的測(cè)試用例、程序運(yùn)行的結(jié)果;5) 在課程設(shè)計(jì)中遇到的問(wèn)題和解決的方法,還沒(méi)有能解決的問(wèn)題;6) 通過(guò)課程設(shè)計(jì)的體會(huì)、收獲。5、參考課題51 參考課題內(nèi)容及知識(shí)點(diǎn)“學(xué)生成績(jī)表”是一個(gè)參考課題。本課題通過(guò)建立、修改、查詢、排序、顯示學(xué)生成績(jī)等功能,具體要求掌握的技術(shù)有:1)結(jié)構(gòu)、枚舉類(lèi)型的定義與使用;2)數(shù)組的定義使用;3)程序的三種基本控制流程的綜合、靈活運(yùn)用;4)普通指針和數(shù)組指針的定義和使用;5)各類(lèi)函數(shù)的定義和調(diào)用;6)文件的輸入/輸出;7)程
4、序的調(diào)試。52 功能要求1) 新增學(xué)生數(shù)據(jù)的添加:學(xué)號(hào),姓名,性別,3門(mén)課程成績(jī),計(jì)算總成績(jī)并顯示;2) 修改學(xué)生成績(jī)數(shù)據(jù):輸入學(xué)號(hào),根據(jù)學(xué)號(hào),修改該生的3項(xiàng)成績(jī)數(shù)據(jù)計(jì)算總成績(jī)并顯示;3) 刪除一個(gè)學(xué)生:輸入學(xué)號(hào),根據(jù)學(xué)號(hào)刪除該生;4) 根據(jù)學(xué)號(hào)查詢:輸入學(xué)號(hào),查找該生并顯示學(xué)生數(shù)據(jù);5) 顯示全部學(xué)生數(shù)據(jù);6) 根據(jù)學(xué)號(hào)排序?qū)W生數(shù)據(jù);7) 根據(jù)總成績(jī)排序?qū)W生數(shù)據(jù);8) 退出:保存學(xué)生總數(shù)文件及學(xué)生數(shù)據(jù)文件,然后結(jié)束程序運(yùn)行。53 設(shè)計(jì)要求1)在visual c+控制臺(tái)應(yīng)用程序方式下設(shè)計(jì)課題。2)設(shè)計(jì)的程序要求完成52節(jié)規(guī)定的功能。3)程序應(yīng)具有一定的健壯性。即程序必須具有必要的檢查和出錯(cuò)處理
5、,如在新增學(xué)生數(shù)據(jù)時(shí)檢查輸入的學(xué)號(hào)是否相同。刪除、查詢學(xué)生時(shí)檢查輸入的學(xué)號(hào)是否存在等。5 參考課題部分設(shè)計(jì)1) 建立student工程2) 在頭文件中,設(shè)計(jì)student結(jié)構(gòu)類(lèi)型,成員為char no5 學(xué)號(hào)char name8姓名char gender7性別int score43門(mén)課程成績(jī)及總成績(jī)3)設(shè)計(jì)下列函數(shù)int enterchoice();/輸入選項(xiàng)void init();/數(shù)據(jù)文件初始化void add();/增加一個(gè)學(xué)生void update();/修改學(xué)生成績(jī)void delete();/刪除一個(gè)學(xué)生void query();/查詢學(xué)生數(shù)據(jù)void display();/顯示全
6、部學(xué)生void display (student*); /顯示一個(gè)學(xué)生的重載函數(shù)void sortno();/按學(xué)號(hào)排序(從小到大)void sortscore();/按成績(jī)排序int checkno(char *);/檢查學(xué)號(hào)是否存在,存在返回序號(hào),不存在返回-1 4)設(shè)計(jì)主函數(shù)main(),運(yùn)行后,屏幕顯示功能菜單 1: add student 2: update student 3: delete student 4: query student 5: display students 6: sort student by no 7: sort student by score 8: e
7、nd用戶輸入選擇后,程序運(yùn)行相應(yīng)的處理函數(shù)add()、update()、delete()、query()、display()、sortno()、sortscore()。運(yùn)行主函數(shù)main(),調(diào)用init()函數(shù),從文件count.dat生總數(shù),從文件student.dat中讀取學(xué)生數(shù)據(jù)。然后等待用戶輸入選項(xiàng),進(jìn)行相應(yīng)處理。程序運(yùn)行結(jié)束前,調(diào)用save ()函數(shù)保存學(xué)生總數(shù)到文件count.txt數(shù)據(jù)到文件student.txt中。設(shè)計(jì)除main()主函數(shù)和init()函數(shù)、add()、sortno()、checkno()、enterchoice()、getdata()函數(shù)之外的display
8、()、update()、delete()、query()、sortscore()等函數(shù)。附件:參考課題部分源程序/結(jié)構(gòu)定義文件/student.h #ifndef student_h#define student_hstruct studentchar no9;char name9;char gender7;int score4;#endif/函數(shù)實(shí)現(xiàn)文件/ student.cpp#include#include#include#include#includestudent.husing namespace std;int enterchoice(); void init();void add
9、();void update();void delete();void query();void sortscore();void display();void display(student*);void sortno();void savetxt();int checkno(char*);void printtitle();void getdata(student*);extern const int maxnum=100;extern int curnum;extern student studentmaxnum; int enterchoice()coutnenter your cho
10、icen 1:add student 2:update studentn3:delete student 4:query studentn5:display students 6:sort student by nonchoice;return choice;void init()ifstream incount,instudent;ofstream outcount,outstudent;incount.open(count.txt,ios:in);if(!incount)incount.close();outcount.open(count.txt,ios:out);outcountcur
11、num;incount.close();if(curnum)instudent.open(student.txt,ios:in);for(int i=0;i(student+i)-no; instudent(student+i)-name; instudent(student+i)-gender; instudent(student+i)-score0; instudent(student+i)-score1; instudent(student+i)-score2; instudent(student+i)-score3;instudent.close();elseoutstudent.op
12、en(student.txt,ios:out);outstudent.close();void add()char no9;coutno;int i=checkno(no);if(i=0)coutno.repeated,input againendl;elsestrcpy(studentcurnum.no,no);cout(student+curnum)-name;cout(student+curnum)-gender;getdata(student+curnum);printtitle();display(student+curnum);curnum+;void sortno()studen
13、t temp;int flag;for(int i=0;icurnum-1;i+)flag=1;for(int j=0;jcurnum-1-i;j+)if(strcmp(studentj+1.no,studentj.no)0)flag=0;temp=studentj+1;studentj+1=studentj;studentj=temp;if(flag)break;display();void printtitle()coutsetiosflags(ios_base:left);coutsetw(6)nosetw(8)namesetw(10)gendersetw(10)score1setw(1
14、0)score2setw(10)score3setw(10)scoreendl;void display()if(curnum)printtitle();for(int i=0;icurnum;i+)display(student+i);elsecoutthe list empty!endl;void display(student* stu)coutsetiosflags(ios_base:left);coutsetw(6)no;coutsetw(8)name;coutsetw(6)gender;coutresetiosflags(ios_base:left);coutsetw(10)sco
15、re0;coutsetw(10)score1;coutsetw(10)score2;coutsetw(10)score3endl;void save()ofstream outcount,outstudent;outcount.open(count.txt,ios:out);outcountcurnum;outcount.close();outstudent.open (student.txt,ios:out);for(int i=0;icurnum;i+)outstudentno ; outstudentname ; outstudentgender ; outstudentscore0 ;
16、 outstudentscore1 ; outstudentscore2 ; outstudentscore3 ; outstudentendl; outstudent.close();int checkno(char* no)for(int i=0;icurnum;i+)if(strcmp(studenti.no,no)=0)return i;return -1;void getdata(student* stu)for(int i=0;i3;i+)coutscoreistu-scorei;stu-score3=stu-score0+stu-score1+stu-score2;void so
17、rtscore()student temp;int i,j,max;for(i=0;icurnum-1;i+) max=i;for(j=i;jcurnum;j+)if(studentmax.score3studentj.score3)max=j;if(max!=i)temp=studentmax;studentmax=studenti;studenti=temp;display();void update()char no9;char c;coutno;int i=checkno(no);if(i0)coutthe number dose not exist!n;elsecoutc;if(c=
18、y|c=y)coutstudenti.score0;coutc;if(c=y|c=y)coutstudenti.score1; coutc;if(c=y|c=y)coutstudenti.score2;student-score3=student-score0+student-score1+student-score2;printtitle();display(student+i);void delete()char no9;char c;coutno;int i=checkno(no);if(i0)coutthe number dose not exist!(y/n)n;elsecoutc;
19、if(c=y|c=y)for(int j=i+1;jcurnum;j+)studentj-1=studentj;curnum-;display();void query()char no9;coutno;int i=checkno(no);if(i0)coutthe nunber dose not exist! n;elseprinttitle();display(student+i);/主函數(shù)文件/ main.cpp#include #include #include #include #include student.husing namespace std;int enterchoice();/輸入選項(xiàng)void init();/數(shù)據(jù)文件初始化void add();/增加一個(gè)學(xué)生void display();/顯示全部學(xué)生void displayone(student*);/顯示全部學(xué)生void sortno();/按學(xué)號(hào)排序(從小到大)void save (); /保存數(shù)據(jù)int checkno(char *);/輸入學(xué)號(hào)void printtitle();/顯示表頭void getdata(student*);/讀取學(xué)生成績(jī)數(shù)據(jù)void update();/修改學(xué)生成績(jī)void delete();/刪
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城東小學(xué)2025年度節(jié)能環(huán)保窗簾紗窗購(gòu)置協(xié)議2篇
- 2020-2025年中國(guó)電池加工設(shè)備行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- 2020-2025年中國(guó)生發(fā)藥物行業(yè)市場(chǎng)調(diào)研分析及投資前景預(yù)測(cè)報(bào)告
- 2025年中國(guó)零售行業(yè)競(jìng)爭(zhēng)格局及市場(chǎng)發(fā)展?jié)摿︻A(yù)測(cè)報(bào)告
- 2025年度婚姻債務(wù)財(cái)產(chǎn)分割與債務(wù)償還調(diào)解合同3篇
- 10《我們愛(ài)和平》第一課時(shí)說(shuō)課稿-2023-2024學(xué)年道德與法治六年級(jí)下冊(cè)統(tǒng)編版
- 2025年新腳氣軟膏行業(yè)深度研究分析報(bào)告
- 二零二五年度跨境電子商務(wù)平臺(tái)合作合同協(xié)議書(shū)4篇
- 2025年移頻增音功放項(xiàng)目投資可行性研究分析報(bào)告
- 2024年游戲動(dòng)漫人才教育培訓(xùn)行業(yè)發(fā)展前景預(yù)測(cè)及投資策略研究報(bào)告
- T-SDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- (人教PEP2024版)英語(yǔ)一年級(jí)上冊(cè)Unit 1 教學(xué)課件(新教材)
- 全國(guó)職業(yè)院校技能大賽高職組(市政管線(道)數(shù)字化施工賽項(xiàng))考試題庫(kù)(含答案)
- 2024胃腸間質(zhì)瘤(GIST)診療指南更新解讀 2
- 光儲(chǔ)電站儲(chǔ)能系統(tǒng)調(diào)試方案
- 2024年二級(jí)建造師繼續(xù)教育題庫(kù)及答案(500題)
- 小學(xué)數(shù)學(xué)二年級(jí)100以內(nèi)連加連減口算題
- 建設(shè)單位如何做好項(xiàng)目管理
- 三年級(jí)上遞等式計(jì)算400題
- 一次性餐具配送投標(biāo)方案
- 《中華民族多元一體格局》
評(píng)論
0/150
提交評(píng)論