學(xué)生管理系統(tǒng)

上傳人:jun****875 文檔編號(hào):23687844 上傳時(shí)間:2021-06-10 格式:DOC 頁(yè)數(shù):31 大?。?.13MB
收藏 版權(quán)申訴 舉報(bào) 下載
學(xué)生管理系統(tǒng)_第1頁(yè)
第1頁(yè) / 共31頁(yè)
學(xué)生管理系統(tǒng)_第2頁(yè)
第2頁(yè) / 共31頁(yè)
學(xué)生管理系統(tǒng)_第3頁(yè)
第3頁(yè) / 共31頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《學(xué)生管理系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)生管理系統(tǒng)(31頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 信息科學(xué)與技術(shù)學(xué)院 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告 題目名稱: 學(xué)生管理系統(tǒng) 專業(yè)班級(jí): 11級(jí)計(jì)科2班 學(xué)生姓名: 陶 鑫 學(xué)生學(xué)號(hào): 2011508035 指導(dǎo)教師: 郭 理 完成日期:2013-01-09 1 課程設(shè)計(jì)的目的 1 1.1 課程設(shè)計(jì)的目的 1 1.2 課程設(shè)計(jì)的題目 1 1.3 題目要求 1 2 概要設(shè)計(jì) 2 2.1 存儲(chǔ)結(jié)構(gòu) 2 2.2 基本操作 3 3 詳細(xì)設(shè)計(jì) 3 3.1 流程圖 3 3.2 源程序 10 4 測(cè)試 21 5 課

2、程設(shè)計(jì)總結(jié) 29 6參考書目: 29 1 課程設(shè)計(jì)的目的 1.1 課程設(shè)計(jì)的目的 更好的掌握數(shù)據(jù)結(jié)構(gòu)這門課程,會(huì)用數(shù)據(jù)結(jié)構(gòu)的基本思想及算法解決實(shí)際問(wèn)題。更好的掌握鏈表,能進(jìn)行各種基本的操作,提高編程能力。 1.2 課程設(shè)計(jì)的題目 《學(xué)生管理系統(tǒng)》 1.3 題目要求 使用下面的數(shù)據(jù),用C/C++設(shè)計(jì)一個(gè)簡(jiǎn)單的學(xué)籍管理系統(tǒng),實(shí)現(xiàn)出最基本的功能。 學(xué)生基本信息文件(A.TXT)及其內(nèi)容:A.TXT文件不需要編程錄入數(shù)據(jù),可用文本編輯工具直接生成 學(xué)號(hào) 姓名 性別 宿舍號(hào)碼 電話號(hào)碼 01 張成成 男 501 87732111

3、 02 李成華 女 101 87723112 03 王成鳳 女 101 87723112 04 張明明 男 502 87734333 05 陳東 男 501 87732111 06 李果 男 502 87734333 07 張園園 女 102 87756122 … …. .. … ……….. 學(xué)生成績(jī)基本信息文件(B.TXT)及其內(nèi)容: 學(xué)號(hào) 課程編號(hào) 課程名稱 學(xué)分 平時(shí)成績(jī) 實(shí)驗(yàn)成績(jī) 卷面成績(jī)

4、 綜合成績(jī) 實(shí)得學(xué)分 01 A01 大學(xué)物理 3 66 78 82 02 B03 高等數(shù)學(xué) 4 78 -1 90 01 B03 高等數(shù)學(xué) 4 45 -1 88 02 C01 VF 3 65 76 66 … …. ………. .. .. … (一) 功能要求及說(shuō)明: (1) 數(shù)

5、據(jù)錄入功能: 對(duì)B.TXT進(jìn)行數(shù)據(jù)錄入,只錄入每個(gè)學(xué)生的學(xué)號(hào)、課程編號(hào)、課程名稱、學(xué)分、平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)、卷面成績(jī)共7個(gè)數(shù)據(jù). 綜合成績(jī)、學(xué)分由程序根據(jù)條件自動(dòng)運(yùn)算。 綜合成績(jī)的計(jì)算:如果本課程的實(shí)驗(yàn)成績(jī)?yōu)?1,則表示無(wú)實(shí)驗(yàn),綜合成績(jī)=平時(shí)成績(jī)*30%+卷面成績(jī)*70%; 如果實(shí)驗(yàn)成績(jī)不為-1,表示本課程有實(shí)驗(yàn),綜合成績(jī)=平時(shí)成績(jī)*15%+實(shí)驗(yàn)成績(jī)*.15%+卷面成績(jī)*70% . 實(shí)得學(xué)分的計(jì)算: 采用等級(jí)學(xué)分制. 綜合成績(jī)?cè)?0-100之間 ,應(yīng)得學(xué)分=學(xué)分*100% 綜合成績(jī)?cè)?0-90之間 ,應(yīng)得學(xué)分=學(xué)分*80% 綜合成績(jī)?cè)?0-80之間 ,應(yīng)得學(xué)分=學(xué)分

6、*75% 綜合成績(jī)?cè)?0-70之間 ,應(yīng)得學(xué)分=學(xué)分*60% 綜合成績(jī)?cè)?0以下 ,應(yīng)得學(xué)分=學(xué)分*0% (2)查詢功能:分為學(xué)生基本情況查詢和成績(jī)查詢兩種 A:學(xué)生基本情況查詢: A1----輸入一個(gè)學(xué)號(hào)或姓名(可實(shí)現(xiàn)選擇),查出此生的基本信息并顯示輸出。 A2---輸入一個(gè)宿舍號(hào)碼,可查詢出本室所有的學(xué)生的基本信息并顯示輸出。 B:成績(jī)查詢: B1:輸入一個(gè)學(xué)號(hào)時(shí),查詢出此生的所有課程情況,格式如下: 學(xué) 號(hào):xx 姓 名:xxxxx 課程編號(hào):xxx 課程名稱:xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx

7、 課程編號(hào):xxx 課程名稱:xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx 課程編號(hào):xxx 課程名稱:xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx … … … … ……… … … 共修:xx科,實(shí)得總學(xué)分為: xxx (3)刪除功能:當(dāng)在A.TXT中刪除一個(gè)學(xué)生時(shí),自動(dòng)地在B.TXT中刪除此人所有信息。 (4 ) 排序功能:能實(shí)現(xiàn)選擇按綜合成績(jī)或?qū)嵉脤W(xué)分升序或降序排序并顯示數(shù)據(jù)。 (二)其它要求: (1) 只能使用C/C++語(yǔ)言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易?/p>

8、讀 (2) 至少采用文本菜單界面(如果能采用圖形菜單界面更好) (3) 學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分) (4)寫出課程設(shè)計(jì)報(bào)告,具體要求見(jiàn)相關(guān)說(shuō)明文檔 2 概要設(shè)計(jì) 2.1 存儲(chǔ)結(jié)構(gòu) 首先,為了能使自己得到鍛煉,存儲(chǔ)結(jié)構(gòu)我使用了順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ),學(xué)生基本信息用的數(shù)組來(lái)存儲(chǔ),對(duì)學(xué)生成績(jī)基本信息使用鏈表進(jìn)行存儲(chǔ)。結(jié)構(gòu)體定義如下: //學(xué)生基本信息的結(jié)構(gòu)體定義 typedef struct student {string xuehao; //學(xué)號(hào) string name; //姓名 string gender; //性別 string sushe

9、; //宿舍號(hào) string tel;//電話 }student; //學(xué)生成績(jī)信息的結(jié)構(gòu)體定義 typedef struct grade {string xuehao;//學(xué)號(hào) string courseno; //課程號(hào) string coursename; //課程名稱 int xuefen; //學(xué)分 int pingshi; //平時(shí)成績(jī) int shiyan; //實(shí)驗(yàn)成績(jī) int juanmian;//卷面成績(jī) float zonghe;//綜合成績(jī) float shide;//實(shí)得學(xué)分 grade *next; }

10、grade; 2.2 基本操作 (1)數(shù)據(jù)錄入功能 (2)查詢功能 (3)刪除功能 (4)排序功能 (5)顯示所有學(xué)生信息 (6)保存 (7)退出 3 詳細(xì)設(shè)計(jì) 3.1 流程圖 各個(gè)算法的設(shè)計(jì)如下: 1.主函數(shù):int main( ); 從A.txt中讀取存儲(chǔ)的學(xué)生基本信息到內(nèi)存,以便進(jìn)行處理,過(guò)程如圖1 開(kāi)始 創(chuàng)建存儲(chǔ)學(xué)生信息的單鏈表的頭結(jié)點(diǎn) 將學(xué)生信息讀取到內(nèi)存 調(diào)用菜單函數(shù) 結(jié)束

11、 圖 1 2. 菜單函數(shù):void menu(student *stu,grade *head,grade *gra); stu是指向?qū)W生基本信息數(shù)組的指針,head是指向?qū)W生成績(jī)信息鏈表頭結(jié)點(diǎn)的指針,gra是指向?qū)W生成績(jī)信息鏈表最后一個(gè)結(jié)點(diǎn)的指針。 用于進(jìn)行指示進(jìn)行各種操作,是與每個(gè)函數(shù)都相聯(lián)系的一個(gè)函數(shù),功能操作見(jiàn)圖2 6保存 0退出 開(kāi)始 輸入i 菜單 4排序 3刪除 5顯示學(xué)生信息 2查詢 1數(shù)據(jù)錄入 其他有誤誤 結(jié)束 6保存

12、 0退出 開(kāi)始 輸入i 菜單 4排序 3刪除 5顯示學(xué)生信息 2查詢 1數(shù)據(jù)錄入 其他有誤誤 圖2 3. 數(shù)據(jù)錄入函數(shù):void luru(grade *gra); 其中g(shù)ra是指向單鏈表最后一個(gè)結(jié)點(diǎn)的指針,用于后插法中進(jìn)行插入。 將學(xué)生成績(jī)信息依次輸入單鏈表中,其中單鏈表邊輸入邊創(chuàng)建,綜合成績(jī)和實(shí)得學(xué)分可由計(jì)算機(jī)自己計(jì)算。流程圖見(jiàn)圖3 判斷成績(jī)范圍 應(yīng)得學(xué)分=學(xué)分*100% 應(yīng)得學(xué)分=學(xué)分*80% 應(yīng)得學(xué)

13、分=學(xué)分*75% 應(yīng)得學(xué)分=學(xué)分*60% 應(yīng)得學(xué)分=0 結(jié)束 綜合成績(jī)=平時(shí)成績(jī)*15%+實(shí)驗(yàn)成績(jī)*.15%+卷面成績(jī)*70% 輸入學(xué)生平時(shí)成績(jī) 輸入學(xué)生實(shí)驗(yàn)成績(jī) 輸入學(xué)生卷面成績(jī) 輸入學(xué)生課程編號(hào) 輸入學(xué)生的學(xué)號(hào) 輸入學(xué)生學(xué)分 開(kāi)始 gra->shiyan=-1 綜合成績(jī)=平時(shí)成績(jī)*30%+卷面成績(jī)*70% 輸入學(xué)生平時(shí)成績(jī) 輸入學(xué)生實(shí)驗(yàn)成績(jī) 輸入學(xué)生卷面成績(jī) 輸入學(xué)生課程編號(hào) 輸入學(xué)生的學(xué)號(hào) 輸入學(xué)生學(xué)分 開(kāi)始 gra->shiyan=-1

14、 Y N 綜合成績(jī)=平時(shí)成績(jī)*30%+卷面成績(jī)*70% 90-100 80-90 70-80 60-70 60以下   圖3 4.查詢功能:void lookfor(student *p,grade *h

15、ead); P為指向?qū)W生基本信息數(shù)組的指針,head為指向?qū)W生成績(jī)鏈表的頭結(jié)點(diǎn)的指針。 有學(xué)生基本情況查詢和成績(jī)查詢兩種大功能,基本情況查詢又分為按學(xué)號(hào)或姓名查找單個(gè)學(xué)生基本信息,也可輸入宿舍號(hào)查詢整個(gè)宿舍學(xué)生的基本信息。成績(jī)查詢只要輸入學(xué)號(hào)便可查詢相應(yīng)學(xué)生的成績(jī)信息。見(jiàn)圖4 1.輸入一個(gè)學(xué)號(hào)或姓名 2.輸入一個(gè)宿舍號(hào)碼 a 按學(xué)號(hào)查找 b 按姓名查找 輸出一個(gè)宿舍學(xué)生信息 輸出相應(yīng)學(xué)生信息 輸出相應(yīng)學(xué)生所有成績(jī) 結(jié)束 開(kāi)始 輸入i A:學(xué)生基本情況查詢 B:成績(jī)查詢 輸入j 輸入學(xué)號(hào)

16、 圖4 5. 刪除功能:void del(student *stu,grade *head); stu為指向?qū)W生基本信息數(shù)組的指針,head為指向?qū)W生成績(jī)鏈表的頭結(jié)點(diǎn)的指針。 執(zhí)行刪除功能時(shí)在存儲(chǔ)學(xué)生基本信息的數(shù)組中與存儲(chǔ)學(xué)生成績(jī)信息的鏈表中同時(shí)刪除該學(xué)生信息,以便進(jìn)行下面操作與向文件中存儲(chǔ)信息。功能見(jiàn)圖5 開(kāi)始 輸入要?jiǎng)h除學(xué)生的學(xué)號(hào) 在學(xué)生基本信息中刪除 在學(xué)生成績(jī)基本信息中刪除 結(jié)束

17、 圖5 6. 排序功能:void sort(grade *head); head為指向?qū)W生成績(jī)鏈表的頭結(jié)點(diǎn)的指針。 下面流程圖實(shí)現(xiàn)的是按綜合成績(jī)升序排序,使用的選擇排序法,雖說(shuō)使用的存儲(chǔ)結(jié)構(gòu)為鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),但排序時(shí)并非改變的指針指向,而是只修改存儲(chǔ)的信息,指針指向不用改變。如圖6 開(kāi)始 head=head->next head->next!=NULL p=head->next P!=NULL

18、 head->zonghe>p->zonghe 交換相鄰節(jié)點(diǎn)中數(shù)據(jù) p=p->next 結(jié)束 N Y P!=NULL head->zonghe>p->zonghe 交換相鄰節(jié)點(diǎn)中數(shù)據(jù) p=p->next

19、 N Y N Y head=head->next

20、 圖6 7. 顯示所有學(xué)生信息:void show(student *stud); stud為指向?qū)W生基本信息數(shù)組的指針 用于顯示內(nèi)存中學(xué)生基本情況信息,以便更好了解學(xué)生的一些情況. 開(kāi)始 i=1 stud[i].xuehao!="0" 輸出學(xué)號(hào),姓名,性別,宿舍,電話號(hào) 結(jié)束 N Y

21、 i++ 圖7 8. 保存功能:void save1(student *stud); void save2(grade *head); stud為指向?qū)W生基本信息數(shù)組的指針,head為指向?qū)W生成績(jī)鏈表的頭結(jié)點(diǎn)的指針。函數(shù)用于將內(nèi)存中數(shù)據(jù)存儲(chǔ)到文件中以便更好保存信息。 開(kāi)始 輸入i i==1 I==2 保存學(xué)生基本信息到A.TXT 保

22、存學(xué)生成績(jī)信息到B.TXT 輸入有誤,重新操作! 結(jié)束 N Y N Y 圖8 3.2 源程序 #define num 10 #include .

23、 #include #include //定義文件輸入輸出流 using namespace std; //學(xué)生基本信息的結(jié)構(gòu)體定義 typedef struct student {string xuehao; //學(xué)號(hào) string name; //姓名 string gender; //性別 string sushe; //宿舍號(hào) string tel;//電話 }student; //學(xué)生成績(jī)信息的結(jié)構(gòu)體定義 typedef struct grade {string xuehao;//學(xué)號(hào) st

24、ring courseno; //課程號(hào) string coursename; //課程名稱 int xuefen; //學(xué)分 int pingshi; //平時(shí)成績(jī) int shiyan; //實(shí)驗(yàn)成績(jī) int juanmian;//卷面成績(jī) float zonghe;//綜合成績(jī) float shide;//實(shí)得學(xué)分 grade *next; }grade; void luru(grade *gra); void menu(student *stu,grade *head,grade *gra); void lookfor(studen

25、t *p,grade *head); void sort(grade *head); void out(grade *head); void sort1(grade *head); void del(student *stu,grade *head); void show(student *stu); void save1(student *stud); void save2(grade *head); void leave(); //數(shù)據(jù)錄入 void luru(grade *gra) {string str; cout<<"請(qǐng)輸入學(xué)生的學(xué)號(hào),"<<

26、endl; cin>>str; gra->xuehao=str; cout<<"請(qǐng)錄入該生課程編號(hào)"<>gra->courseno; cout<<"請(qǐng)錄入該生課程名稱"<>gra->coursename; cout<<"請(qǐng)錄入該生學(xué)分"<>gra->xuefen; cout<<"請(qǐng)錄入該生平時(shí)成績(jī)"<>gra->pingshi; cout<<"請(qǐng)

27、錄入該生實(shí)驗(yàn)成績(jī)"<>gra->shiyan; cout<<"請(qǐng)錄入該生卷面成績(jī)"<>gra->juanmian; //綜合成績(jī)計(jì)算 if(gra->shiyan==-1) gra->zonghe=gra->pingshi*0.3+gra->juanmian*0.7; else gra->zonghe=gra->pingshi*0.15+gra->juanmian*0.7+gra->shiyan*0.15; //實(shí)得學(xué)分的

28、計(jì)算 if(gra->zonghe>=90&&gra->zonghe<=100) gra->shide=gra->xuefen; else if(gra->zonghe>=80) gra->shide=gra->xuefen*0.8; else if(gra->zonghe>=70) gra->shide=gra->xuefen*0.75; else if(gra->zonghe>=60) gra->shide=gra->xuefen*0.60; else

29、if(gra->zonghe<60) gra->shide=0; else cout<<"您輸入有誤,請(qǐng)按提示操作!"<

30、成績(jī)查詢 --"<>i; switch(i) {//學(xué)生基本情況查詢 case A:cout<<"-------------------------------------------------"<

31、--------------"<>j; //A1----輸入一個(gè)學(xué)號(hào)或姓名(可實(shí)現(xiàn)選擇),查出此生的基本信息并顯示輸出。 if(j==1) { cout<<"*****************************************************"<

32、<>k; if(k==a) {cout<<"請(qǐng)輸入學(xué)號(hào):"<>str; for( j=1;j<8;j++) {if(p[j].xuehao==str) cout<

33、t<<"請(qǐng)輸入姓名:"<>str; for( j=1;j<8;j++) {if(p[j].name==str) cout<

34、輸入宿舍號(hào):"<>str; for( j=1;j<8;j++) {if(p[j].sushe==str) cout<

35、 B: cout<<"請(qǐng)輸入要查詢學(xué)生的學(xué)號(hào):"<>str; for(j=1;j<8;j++) {if(p[j].xuehao==str) cout<<"學(xué)號(hào):"<next;//指向首元結(jié)點(diǎn) while(head!=NULL) { if(head->xuehao==str) {cout<<"課程編號(hào):"<courseno<<"\t"

36、 <<"課程名稱:"<coursename<<"\t" <<"綜合成績(jī):"<zonghe<<"\t" <<"實(shí)得學(xué)分:"<shide<shide; } head=head->next; //指針后指 } cout<<"共修:"<

37、} //刪除功能 void del(student *stu,grade *head) {string str; grade *p=head->next; grade *q; cout<<"請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):"<>str; //在學(xué)生基本信息中刪除 for(int i=1;stu[i].xuehao!="0";i++) { if(stu[i].xuehao==str) { for(int j=i;stu[j].xuehao!="0";j++) {stu[j].gender=stu[j+1].gender

38、; stu[j].name=stu[j+1].name; stu[j].sushe=stu[j+1].sushe; stu[j].tel=stu[j+1].tel; stu[j].xuehao=stu[j+1].xuehao; } stu[j].gender="0"; stu[j].name="0"; stu[j].sushe="0"; stu[j].tel="0"; stu[j].xuehao="0"; } } //在學(xué)生成績(jī)基本信息中刪除 while(p) { if

39、(p->xuehao==str) {head->next=p->next; q=p; p=p->next; delete q; } else {p=p->next; head=head->next; } } cout<<"刪除成功!"<next;head->next;

40、head=head->next) {for(grade *p=head->next;p;p=p->next) { if(head->zonghe>p->zonghe) {temp->xuehao=head->xuehao; head->xuehao=p->xuehao; p->xuehao=temp->xuehao; temp->courseno=head->courseno; head->courseno=p->courseno; p->courseno=temp->courseno;

41、 temp->coursename=head->coursename; head->coursename=p->coursename; p->coursename=temp->coursename; temp->xuefen=head->xuefen; head->xuefen=p->xuefen; p->xuefen=temp->xuefen; temp->pingshi=head->pingshi; head->pingshi=p->pingshi; p->pingshi=temp->pingshi;

42、 temp->shiyan=head->shiyan; head->shiyan=p->shiyan; p->shiyan=temp->shiyan; temp->juanmian=head->juanmian; head->juanmian=p->juanmian; p->juanmian=temp->juanmian; temp->zonghe=head->zonghe; head->zonghe=p->zonghe; p->zonghe=temp->zonghe; temp->shide=head-

43、>shide; head->shide=p->shide; p->shide=temp->shide;//數(shù)據(jù)交換 } } } cout<<"按綜合成績(jī)升序排序?yàn)椋?<next;head->next;head=head->next) {for(grade *p=head->next;p;p=p->next) {

44、 if(head->shideshide) {temp->xuehao=head->xuehao; head->xuehao=p->xuehao; p->xuehao=temp->xuehao; temp->courseno=head->courseno; head->courseno=p->courseno; p->courseno=temp->courseno; temp->coursename=head->coursename; head->coursename=p->cour

45、sename; p->coursename=temp->coursename; temp->xuefen=head->xuefen; head->xuefen=p->xuefen; p->xuefen=temp->xuefen; temp->pingshi=head->pingshi; head->pingshi=p->pingshi; p->pingshi=temp->pingshi; temp->shiyan=head->shiyan; head->shiyan=p->shiyan; p

46、->shiyan=temp->shiyan; temp->juanmian=head->juanmian; head->juanmian=p->juanmian; p->juanmian=temp->juanmian; temp->zonghe=head->zonghe; head->zonghe=p->zonghe; p->zonghe=temp->zonghe; temp->shide=head->shide; head->shide=p->shide; p->shide=temp->shide;

47、 } } } cout<<"按實(shí)得學(xué)分降序排序?yàn)椋?<next; cout<<"學(xué)號(hào)"<<" "<<"課程編號(hào)"<<" "<<"課程名稱\t"<<" " <<"學(xué)分"<<" "<<" 平時(shí)成績(jī)"<<" " <<"實(shí)驗(yàn)成績(jī)"<<" "<< "卷面成績(jī)"<<" "<< "綜合成績(jī)"<<" "<< "實(shí)得學(xué)分"<xuehao<<"\t"<courseno<<

48、"\t"<coursename<<"\t"<xuefen<<"\t"<pingshi<<"\t"<shiyan<<"\t"<juanmian<<"\t"<zonghe<<" \t"<shide<next; } } //顯示所有學(xué)生信息 void show(student *stud) {for(int i=1;stud[i].xuehao!="0";i++) { cout<

49、tud[i].name<<" "<

50、xuehao!="0";i++) { outfile<

51、err<<" 打開(kāi)文件失敗,程序中止!"<next; outfile<<"學(xué)號(hào)"<<" "<<"課程編號(hào)"<<" "<<"課程名稱\t"<<" " <<"學(xué)分"<<" "<<" 平時(shí)成績(jī)"<<" " <<"實(shí)驗(yàn)成績(jī)"<<" "<< "卷面成績(jī)"<<" "<< "綜合成績(jī)"<<" "<< "實(shí)得學(xué)分"<xuehao<<"\t"<courseno<<"\t"<cours

52、ename<<"\t"<xuefen<<"\t" <pingshi<<"\t"<shiyan<<"\t"<juanmian<<"\t"<zonghe<<"\t"<shide<next; } outfile.close(); //關(guān)閉文件 } void leave() { cout<<"本系統(tǒng)由計(jì)科11陶鑫制作,謝謝使用!"<

53、nt *stu,grade *head,grade *gra) {int i;grade *p; cout<<" 歡迎使用學(xué)生管理系統(tǒng),請(qǐng)按提示操作! "<

54、**********************"<>i; switch(i) {case 1:p=new grade; p->next=NULL; gra->next=p; gra=p; luru(g

55、ra); system("pause"); system("cls"); menu(stu,head,gra); break; case 2:lookfor(stu,head); system("pause"); system("cls"); menu(stu,head,gra); break; case 3: del(stu,head); system("pause"); system("cls"); menu(stu,head,

56、gra); break; case 4: cout<<"-------------------------------------------------"<>i; if(i==1) sort(head); else if(i==2) so

57、rt1(head); else {cout<<"您輸入有誤,請(qǐng)重新操作!"<

58、ra); break; case 6:cout<<"-------------------------------------------------"<>i; if(i==1) save1(stu); else if(i==2) save2(

59、head); else {cout<<"您輸入有誤,請(qǐng)重新操作!"<

60、em("cls"); menu(stu,head,gra); break; } } int main() {system("color 0e"); student stud[num]; grade *gra1,*r; gra1=new grade; gra1->next=NULL; r=gra1; for(int i=0;i

61、she="0"; stud[i].tel="0"; } ifstream infile("A.txt",ios::in); //打開(kāi)文件 if(!infile) { cerr<<" 讀取信息失敗,程序中止!"<>stud[i].xuehao>>stud[i].name>>stud[i].gender>>stud[i].sushe>>stud[i].tel; } infil

62、e.close(); //關(guān)閉文件 menu(stud,gra1,r); return 0; }    4 測(cè)試 (1)菜單界面 顯示各種功能需進(jìn)行的各種操作,界面如下: 當(dāng)輸入操作有誤時(shí)結(jié)果如下: (2) 數(shù)據(jù)錄入功能 負(fù)責(zé)錄入學(xué)生成績(jī)信息,綜合成績(jī)和實(shí)得學(xué)分將由計(jì)算機(jī)自己完成。學(xué)生成績(jī)由鏈表相連時(shí)間復(fù)雜度為O(1),但程序還存在漏洞,當(dāng)輸入成績(jī)?yōu)榉菙?shù)字類型時(shí)便會(huì)出現(xiàn)錯(cuò)誤,還需進(jìn)行完善。 輸入成績(jī)?yōu)榉菙?shù)字類型時(shí)便會(huì)出現(xiàn)錯(cuò)誤,還需進(jìn)行完善。如下圖: (3) 查詢功能

63、 按提示進(jìn)行操作得到的結(jié)果如下圖,其中包括正確操作與非正確操作下的情況。 無(wú)成績(jī)輸入時(shí)成績(jī)查詢結(jié)果為: 有成績(jī)輸入時(shí)查詢結(jié)果: (4) 排序功能 當(dāng)已有成績(jī)輸入時(shí)操作結(jié)果如下: 當(dāng)無(wú)成績(jī)輸入時(shí),給出提示“請(qǐng)先輸入學(xué)生成績(jī)信息再排序!” (5) 刪除功能: 刪除后需保存,經(jīng)保存后便可在相應(yīng)文件中觀察到相應(yīng)信息的改變。 (6) 保存功能 分為學(xué)生基本信息保存和學(xué)生成績(jī)保存兩個(gè)功能: (7) 顯示所有學(xué)生信

64、息功能: (8) 退出功能: 5 課程設(shè)計(jì)總結(jié) 通過(guò)本次課程設(shè)計(jì),我最大的收獲就是自己的動(dòng)手能力得到了很大的提升,我發(fā)現(xiàn)只有自己動(dòng)手才能更好的了解到自己的知識(shí)漏洞,很多小問(wèn)題可能對(duì)代碼的編寫都有很大影響,像在編寫過(guò)程中我有時(shí)漏掉半撇括號(hào),而在查找時(shí)就相當(dāng)費(fèi)力,所以多敲代碼很重要啊。對(duì)語(yǔ)言也得到了更深的了解。語(yǔ)言等于算法加數(shù)據(jù)結(jié)構(gòu),這句話確實(shí)很有道理,數(shù)據(jù)結(jié)構(gòu)給了我一種更好的思路,一種更好的思想,掌握一種思想遠(yuǎn)比會(huì)很多語(yǔ)言來(lái)的重要,只有我們有了思路,有了更好的算法,我們的程序才會(huì)更加優(yōu)秀,空間復(fù)雜度,時(shí)間復(fù)雜度才會(huì)更加少。在設(shè)計(jì)過(guò)程中我遇到了很多錯(cuò)誤或是難題,其中耗時(shí)最多的就是考慮存儲(chǔ)結(jié)構(gòu),只有有了一個(gè)好的存儲(chǔ)結(jié)構(gòu)對(duì)數(shù)據(jù)的操作才更加便利。 另外就是要有一顆永不言棄的心,遇到困難很正常,但不要輕易放棄,只要自信,有一顆戰(zhàn)勝一切的心,仔細(xì)查找錯(cuò)誤,堅(jiān)持下來(lái)肯定可以成功。 6參考書目: [1]譚浩強(qiáng),《C++程序設(shè)計(jì)》,清華大學(xué)出版社 [2]嚴(yán)蔚敏,李冬梅,吳偉民,《數(shù)據(jù)結(jié)構(gòu)》,人民郵電出版社

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!