C ++ 課程設(shè)計報告學(xué)生成績表_第1頁
C ++ 課程設(shè)計報告學(xué)生成績表_第2頁
C ++ 課程設(shè)計報告學(xué)生成績表_第3頁
C ++ 課程設(shè)計報告學(xué)生成績表_第4頁
C ++ 課程設(shè)計報告學(xué)生成績表_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論