版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1、課程設(shè)計目的程序設(shè)計基礎(chǔ)課程設(shè)計是在學(xué)習(xí)完程序設(shè)計基礎(chǔ)課程后開設(shè)的一門實(shí)踐性課程。要求學(xué)生以個人為單位,在教師指導(dǎo)下,運(yùn)用理論課所學(xué)知識,借助參考書籍,選擇一個課題,使用c+語言,完成一個功能相對完整,具有應(yīng)用價值的軟件。達(dá)到加深理解課堂教學(xué)內(nèi)容,熟悉程序設(shè)計的基本流程、掌握程序設(shè)計基本方法,基本技巧、并能綜合運(yùn)用,提高程序設(shè)計能力。通過本課程的實(shí)踐,熟練掌握c+語言中面向過程部分的內(nèi)容,能夠運(yùn)用c+語言解決一個實(shí)際問題。課程設(shè)計屬于研究型、創(chuàng)新型、自主型學(xué)習(xí)。學(xué)生可以根據(jù)自己的興趣、愛好、特長,或者以前已經(jīng)接觸過的內(nèi)容,自行確定課程設(shè)計課題。也可完成老師提供的參考課題。2、設(shè)計環(huán)境及語言
2、visual c+集成開發(fā)環(huán)境(ide)c+語言。3、 課題設(shè)計步驟31 需求分析 從軟件使用者處獲得用戶需求,確定課題開發(fā)應(yīng)具備的功能;32 系統(tǒng)結(jié)構(gòu)設(shè)計 將整個系統(tǒng)功能分塊,考慮各個功能模塊應(yīng)具備的功能,模塊間的聯(lián)系,劃分成不同的子系統(tǒng)進(jìn)行設(shè)計;33 數(shù)據(jù)設(shè)計 設(shè)計系統(tǒng)中新的數(shù)據(jù)類型、存儲類型;34 代碼設(shè)計 在上述3個階段的基礎(chǔ)上編寫代碼;35 軟件測試 使用事先設(shè)計好的測試用例、對編制的程序進(jìn)行測試,發(fā)現(xiàn)存在錯誤(包括潛在的問題),加以修改,完善。4、課程設(shè)計提交材料41 電子版的所有.cpp文件和.h文件。每個學(xué)生以自己的名字建了一個文件夾,通過網(wǎng)絡(luò)提交。42 課程設(shè)計報告 內(nèi)容包括
3、;1) 課題設(shè)計內(nèi)容、具備的功能;2) 模塊(函數(shù))的劃分、各模塊(函數(shù))的功能;3) 采用的自定義的數(shù)據(jù)類型;4) 程序設(shè)計過程、調(diào)試中過程中所用的測試用例、程序運(yùn)行的結(jié)果;5) 在課程設(shè)計中遇到的問題和解決的方法,還沒有能解決的問題;6) 通過課程設(shè)計的體會、收獲。5、參考課題51 參考課題內(nèi)容及知識點(diǎn)“學(xué)生成績表”是一個參考課題。本課題通過建立、修改、查詢、排序、顯示學(xué)生成績等功能,具體要求掌握的技術(shù)有:1)結(jié)構(gòu)、枚舉類型的定義與使用;2)數(shù)組的定義使用;3)程序的三種基本控制流程的綜合、靈活運(yùn)用;4)普通指針和數(shù)組指針的定義和使用;5)各類函數(shù)的定義和調(diào)用;6)文件的輸入/輸出;7)程
4、序的調(diào)試。52 功能要求1) 新增學(xué)生數(shù)據(jù)的添加:學(xué)號,姓名,性別,3門課程成績,計算總成績并顯示;2) 修改學(xué)生成績數(shù)據(jù):輸入學(xué)號,根據(jù)學(xué)號,修改該生的3項(xiàng)成績數(shù)據(jù)計算總成績并顯示;3) 刪除一個學(xué)生:輸入學(xué)號,根據(jù)學(xué)號刪除該生;4) 根據(jù)學(xué)號查詢:輸入學(xué)號,查找該生并顯示學(xué)生數(shù)據(jù);5) 顯示全部學(xué)生數(shù)據(jù);6) 根據(jù)學(xué)號排序?qū)W生數(shù)據(jù);7) 根據(jù)總成績排序?qū)W生數(shù)據(jù);8) 退出:保存學(xué)生總數(shù)文件及學(xué)生數(shù)據(jù)文件,然后結(jié)束程序運(yùn)行。53 設(shè)計要求1)在visual c+控制臺應(yīng)用程序方式下設(shè)計課題。2)設(shè)計的程序要求完成52節(jié)規(guī)定的功能。3)程序應(yīng)具有一定的健壯性。即程序必須具有必要的檢查和出錯處理
5、,如在新增學(xué)生數(shù)據(jù)時檢查輸入的學(xué)號是否相同。刪除、查詢學(xué)生時檢查輸入的學(xué)號是否存在等。5 參考課題部分設(shè)計1) 建立student工程2) 在頭文件中,設(shè)計student結(jié)構(gòu)類型,成員為char no5 學(xué)號char name8姓名char gender7性別int score43門課程成績及總成績3)設(shè)計下列函數(shù)int enterchoice();/輸入選項(xiàng)void init();/數(shù)據(jù)文件初始化void add();/增加一個學(xué)生void update();/修改學(xué)生成績void delete();/刪除一個學(xué)生void query();/查詢學(xué)生數(shù)據(jù)void display();/顯示全
6、部學(xué)生void display (student*); /顯示一個學(xué)生的重載函數(shù)void sortno();/按學(xué)號排序(從小到大)void sortscore();/按成績排序int checkno(char *);/檢查學(xué)號是否存在,存在返回序號,不存在返回-1 4)設(shè)計主函數(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è)計除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();/增加一個學(xué)生void display();/顯示全部學(xué)生void displayone(student*);/顯示全部學(xué)生void sortno();/按學(xué)號排序(從小到大)void save (); /保存數(shù)據(jù)int checkno(char *);/輸入學(xué)號void printtitle();/顯示表頭void getdata(student*);/讀取學(xué)生成績數(shù)據(jù)void update();/修改學(xué)生成績void delete();/刪
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年車輛產(chǎn)權(quán)轉(zhuǎn)移與保險續(xù)保一體化服務(wù)合同4篇
- 2025年度豪華郵輪定期檢修合同范本4篇
- 2025年度船舶設(shè)備進(jìn)出口代理合同4篇
- 二零二五年度高空作業(yè)安全防護(hù)及責(zé)任劃分合同3篇
- 二零二五年度跨國企業(yè)員工外派勞務(wù)合同范本4篇
- 二零二五年度存量房屋買賣合同房屋交易稅費(fèi)減免申請合同3篇
- 二零二五年度智能溫室大棚種植基地合作開發(fā)合同3篇
- 土地使用權(quán)轉(zhuǎn)讓合同法律條款解析
- 門店裝修終止合同模板
- 二零二五年度苗木種植與生態(tài)旅游規(guī)劃實(shí)施合同4篇
- 《浸沒式液冷冷卻液選型要求》
- 我的消防文員職業(yè)規(guī)劃
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數(shù)字化施工組”賽項(xiàng)考試題庫
- 介紹蝴蝶蘭課件
- CSC資助出國博士聯(lián)合培養(yǎng)研修計劃英文-research-plan
- 《環(huán)境管理學(xué)》教案
- 《阻燃材料與技術(shù)》課件 第5講 阻燃塑料材料
- 2025年蛇年年度營銷日歷營銷建議【2025營銷日歷】
- (一模)寧波市2024學(xué)年第一學(xué)期高考模擬考試 數(shù)學(xué)試卷(含答案)
- 金蛇納瑞企業(yè)2025年會慶典
- 安保服務(wù)評分標(biāo)準(zhǔn)
評論
0/150
提交評論