《學(xué)生管理系統(tǒng)》課程設(shè)計(jì)報(bào)告(共19頁(yè))

上傳人:91274****mpsvz 文檔編號(hào):57937453 上傳時(shí)間:2022-02-25 格式:DOC 頁(yè)數(shù):19 大?。?17KB
收藏 版權(quán)申訴 舉報(bào) 下載
《學(xué)生管理系統(tǒng)》課程設(shè)計(jì)報(bào)告(共19頁(yè))_第1頁(yè)
第1頁(yè) / 共19頁(yè)
《學(xué)生管理系統(tǒng)》課程設(shè)計(jì)報(bào)告(共19頁(yè))_第2頁(yè)
第2頁(yè) / 共19頁(yè)
《學(xué)生管理系統(tǒng)》課程設(shè)計(jì)報(bào)告(共19頁(yè))_第3頁(yè)
第3頁(yè) / 共19頁(yè)

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

20 積分

下載資源

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

資源描述:

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

1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 湖南工業(yè)大學(xué) 課程設(shè)計(jì)任務(wù)書(shū) 2012 —2013學(xué)年第 一學(xué)期 計(jì)算機(jī)與通信 學(xué)院(系、部) 軟件工程 專(zhuān)業(yè) 姓名:夏笑聲 班級(jí) 1202 課程名稱(chēng): 《面向過(guò)程程序設(shè)計(jì)》 課程設(shè)計(jì) 設(shè)計(jì)題目: 《學(xué)生信息管理系統(tǒng) 》 完成期限:自 2012 年 12 月 26 日至

2、 2012 年 12 月28日共 三天 內(nèi) 容 及 任 務(wù) 用C語(yǔ)言設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng)軟件,要求實(shí)現(xiàn)以下功能: 1.建立文件功能 ? 可以使用默認(rèn)文件名,或制定文件名將記錄存儲(chǔ)到文件 ? 文件保存成功要有提示 ? 初次使用可以新建一個(gè)保存文件 2.錄入學(xué)生信息功能 ? 可以隨時(shí)錄入制定人數(shù)信息的功能 3.查詢(xún)功能 ? 可以通過(guò)輸入學(xué)號(hào)查詢(xún)制定學(xué)生信息功能 ? 可以通過(guò)輸入姓名查詢(xún)制定學(xué)生信息功能 4.刪除記錄功能 可以通過(guò)學(xué)生的姓名或?qū)W號(hào)信息刪除學(xué)生的信息 5.修改記錄功能 可以通過(guò)學(xué)生的姓名或?qū)W號(hào)信息修改任意一項(xiàng)指定的信息 6

3、.按總分排序功能 可以按照學(xué)生的總分成績(jī)排好序?qū)⑺袑W(xué)生的信息顯示出來(lái) 7.退出 可以在程序運(yùn)行時(shí)很方便地退出程序 進(jìn) 度 安 排 起止日期 工作內(nèi)容 第1天 程序基本設(shè)計(jì)思路 第2天 編輯核心代碼和程序模塊,修改程序,增加部分功能 第3天 再次修改,調(diào)試;完成設(shè)計(jì)文檔和課程設(shè)計(jì)說(shuō)明書(shū)答辯 指導(dǎo)教師(簽字): 2012年12月28日 系教研室)主任(簽字): 年 月 日 計(jì)算機(jī)與通信學(xué)院 《面過(guò)

4、程程序設(shè)計(jì)》課程設(shè)計(jì) 題 目 《 學(xué)生信息管理系統(tǒng) 》 學(xué) 號(hào) 專(zhuān)業(yè)及班級(jí) 軟件工程1202 姓 名 夏笑聲 日 期 2012/12/28

5、 目錄 1、 實(shí)驗(yàn)?zāi)康暮鸵?.........................................................................................4 1、課程設(shè)計(jì)的目的……………………………………………………………4 2、課程設(shè)計(jì)的要求……………………………………………………………4 二、設(shè)計(jì)方案.................................................................................................... 4 1、總體設(shè)計(jì)..

6、........................................................................................................4 2、系統(tǒng)流程圖……………………………………………………………......5 3、 程序說(shuō)明書(shū)...................................................................................................4 三、總結(jié)與體會(huì)......................................

7、........................................................ 17 四、 參考資料 ......................................................................................... 18 一、 實(shí)驗(yàn)?zāi)康暮鸵? 1、課程設(shè)計(jì)目的: 1、使學(xué)生鞏固和加強(qiáng)“C語(yǔ)言程序設(shè)計(jì)”課程的理論知識(shí)。 2、使學(xué)生掌握C語(yǔ)言程序設(shè)計(jì)的方法及編程技巧。 3、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法。、 5、 初步掌握開(kāi)發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法:結(jié)合

8、實(shí)際應(yīng)用的要求,使課程設(shè)計(jì)既覆蓋知識(shí)點(diǎn),又接近工程的實(shí)際需要。 6、培養(yǎng)學(xué)生良好的程序設(shè)計(jì)風(fēng)格。、 7、掌握書(shū)寫(xiě)程序設(shè)計(jì)開(kāi)發(fā)文檔的能力,使學(xué)生學(xué)會(huì)撰寫(xiě)課程設(shè)計(jì)報(bào)告。、 8、通過(guò)查閱手冊(cè)和文獻(xiàn)資料,。培養(yǎng)學(xué)生獨(dú)立分析問(wèn)題和解決問(wèn)題的能力。、 9、培養(yǎng)學(xué)生的創(chuàng)新能力和創(chuàng)新思維。 2、基本要求: (1)要求利用結(jié)構(gòu)化程序設(shè)計(jì)的方法及C語(yǔ)言的編程思想來(lái)完成系統(tǒng)設(shè)計(jì)。 (2)模塊化程序設(shè)計(jì):要求在設(shè)計(jì)過(guò)程中,按功能定義函數(shù)或書(shū)寫(xiě)多個(gè)文件,進(jìn)行模塊化設(shè)計(jì),各個(gè)功能模塊用函數(shù)的形式來(lái)實(shí)現(xiàn)。 (3)學(xué)生所選課題必須上機(jī)通過(guò),并獲得滿(mǎn)意的結(jié)果。 (4)程序書(shū)寫(xiě)風(fēng)格:鋸齒型書(shū)寫(xiě)格式。 二、

9、 設(shè)計(jì)方案 1、總體設(shè)計(jì) 該程序共有6 大模塊構(gòu)成,程序的開(kāi)頭首先是一個(gè)歡迎界面,歡迎界面的下方有提示信息按回車(chē)鍵繼續(xù),這時(shí)按下回車(chē)鍵,界面跳轉(zhuǎn)到程序的主界面,各功能菜單項(xiàng)。此程序一共有六大功能,全部通過(guò)定義函數(shù)來(lái)實(shí)現(xiàn)功能。主要有以下幾項(xiàng)基本功能:1.信息錄入功能2.信息查詢(xún)功能3.刪除記錄功能4.修改記錄功能5.按總分排序輸出所有信息功能,6.退出程序功能。 3、程序說(shuō)明書(shū) 此程序在實(shí)現(xiàn)功能時(shí)采用的方式是編寫(xiě)函數(shù),通過(guò)編寫(xiě)的5個(gè)函數(shù)來(lái)實(shí)現(xiàn)該程序的五大基本功能。主要功能有信息錄入、信息查詢(xún)、刪除記錄、修改指定記錄、輸出所有學(xué)生信息,以及退出程序功能。首先將一系列頭

10、文件包含進(jìn)來(lái)以及定義文件指針和定義了一個(gè)結(jié)構(gòu)數(shù)組用來(lái)存儲(chǔ)學(xué)生的所有信息,源代碼如下: #include #include #include #include struct node { char id[12]; char name[15]; char fale[4]; int score[3]; int all; int _size; }student[50]; struct node2 { char id[12]; char name[15]; char fa

11、le[4]; char score[4][4]; char all[4]; }; FILE *fr; struct node *p=student; char _class[4][10]={"C語(yǔ)言","大機(jī)","高數(shù)","英語(yǔ)"}; int number; void luru(); void chaxun(); void shanchu(); void paixu(); void xiugai(); void main() 打開(kāi)程序,首先可以看到的是一個(gè)精美的歡迎界面,該界面由如下代碼實(shí)現(xiàn): printf("\n\n\n\n\n\n\n\n\n\n\

12、n\n"); printf(" &$&$&$&&$&$&$&$&$&$&$&$&$&&$&$&$&$&$&$&$$&\n"); printf(" &$&$&$&$&&$$&&$&$&$&$&$&$&$&$&$&$&&$&$&$&$\n"); printf(" && ** ** &$\n"); printf(" &$ ** ** ** ** &$\n");

13、 printf(" &$ **歡迎使用學(xué)生管理系統(tǒng)** &$\n"); printf(" &$ &$\n"); printf(" &$ * * * 制作人:夏笑聲 * * * * * * * * &$\n"); printf(" &&$&$&$&$&$&$&$&$&$&$&$&$&$&$&$$&$&$&$&$&$\n"); printf(" &$&$

14、&$&$&$&$$&$&$&$&$&$&$&$&$&&$&$&$&$&$&$\n\n\n\n\n\n\n"); printf("\n\n\n\n\n按回車(chē)鍵繼續(xù)..."); 歡迎界面如下圖所示: 同時(shí),在屏幕的左下方有按回車(chē)鍵繼續(xù)的提示信息,這時(shí)按一下回車(chē)鍵,由歡迎界面跳轉(zhuǎn)到程序的主功能菜單界面,菜單由switch語(yǔ)句實(shí)現(xiàn),如下: printf("請(qǐng)選擇功能:\n"); printf("信息錄入請(qǐng)按1!\n"); printf("信息查詢(xún)請(qǐng)按2!\n"); printf("刪除記錄請(qǐng)按3!\n"); printf("修改記錄請(qǐng)按4!\n"); pri

15、ntf("按總分排序輸出所有信息請(qǐng)按5!\n"); printf("按0或其它任意鍵退出...\n"); 這時(shí),我們?cè)诓藛蔚淖钌戏娇梢钥吹揭粭l警示信息,“注意:在第一次使用本軟件之前,必須先建立一個(gè)存儲(chǔ)文件”,這是因?yàn)榇顺绦蛐枰粋€(gè)文件來(lái)將所有學(xué)生的各項(xiàng)信息存儲(chǔ)在外存中,只有這樣才能使已經(jīng)記錄的信息能夠永久保存。這項(xiàng)功能我采用的是用“w+”的方式打開(kāi)文件,之所以這樣設(shè)計(jì),是因?yàn)橛谩皐+” 的方式打開(kāi)文件使程序獲得的一個(gè)額外功能,當(dāng)按下“8”鍵的時(shí)候,可以將所有已經(jīng)保存的記錄全部清楚掉,即初始化記錄功能,這樣就做到了一舉兩得了。 接下來(lái)介紹的是程序的信息錄入功能。在設(shè)計(jì)信息錄

16、入功能時(shí),我也遇到了不少的問(wèn)題,其中最大的一個(gè)問(wèn)題就是關(guān)于如何將要存儲(chǔ)的程序?qū)懭胛募?,很顯然,如果將輸入的信息一股腦的寫(xiě)入文件的話(huà),后果將是非常嚴(yán)重的,因?yàn)閷?xiě)入的信息始終是要讀出來(lái)的,而如果隨意地寫(xiě)進(jìn)去的話(huà),在讀取信息的時(shí)候,讀取信息的位置指針將無(wú)法定位,因?yàn)閷?xiě)入的時(shí)候沒(méi)有按照一定的規(guī)律。對(duì)于這個(gè)問(wèn)題,我采用的解決辦法的將所有學(xué)生的信息采用一定的格式寫(xiě)入文件,學(xué)號(hào)統(tǒng)一采用11位數(shù)字的格式,姓名統(tǒng)一采用占6各字節(jié)的格式,性別采用兩個(gè)字節(jié)也就是一個(gè)中文字符的格式,后面是各科分?jǐn)?shù),全部采用占3個(gè)字節(jié)的格式,這樣采用一種統(tǒng)一的格式將學(xué)生的信息按照順序一個(gè)接著一個(gè)寫(xiě)入文件。源代碼如下: for(i

17、=0;i<_n1;i++) { printf("請(qǐng)輸入第%d位學(xué)生的學(xué)號(hào),按0退出此次錄入!:\n",i+1); scanf("%s",p[number].id); getchar(); //用于吃掉回車(chē)符 if(!(strcmp(p[number].id,_cheshi5))) //設(shè)置中途退出功能(如果中途不想繼續(xù)輸入的話(huà)) { fclose(fr); //此句用來(lái)控制當(dāng)中途退出時(shí)能將已輸入的信息及時(shí)存到外存

18、中 break; } if(strlen(p[number].id)!=11) { printf("輸入的學(xué)號(hào)有誤!學(xué)號(hào)為標(biāo)準(zhǔn)的11位數(shù),請(qǐng)重新輸入:\n"); i--; continue; } else { fprintf(fr,"%s",p[number].id); loop2: printf("請(qǐng)輸入第%d位學(xué)生的姓名(僅支持中文):\n",i+1); gets(p[number].name); if(strlen(p[number].name)==0||strlen(p

19、[number].name)>6) { printf("姓名長(zhǎng)度不符合要求,請(qǐng)重新輸入!\n"); goto loop2; } fprintf(fr,"%s",p[number].name); a1=strlen(p[number].name); a2=3-(a1/2); for(b2=1;b2<=a2;b2++) fprintf(fr," "); //在姓名不足三個(gè)字的后用空格補(bǔ)齊 loop7: printf("請(qǐng)輸入性別:\n"); gets(p[number].fale); if

20、(strlen(p[number].fale)!=2) { printf("性別輸入有誤,請(qǐng)重新輸入!\n"); goto loop7; } else fprintf(fr,"%2s",p[number].fale); p[number].all=0; //將總分初始化 for(j=0;j<4;j++) { printf("請(qǐng)輸入第%d位學(xué)生的%s成績(jī):\n",i+1,_class[j]); scanf("%s",x[j]); fprintf(fr,"%-3s",x[j]); } _x

21、1=atoi(x[1]); _x2=atoi(x[2]); _x3=atoi(x[3]); _x4=atoi(x[4]); _x5=_x1+_x2+_x3+_x4; fprintf(fr,"%-3d",_x5); printf("第%d位學(xué)生的信息輸入成功!\n",i+1); } } fclose(fr); printf("錄入結(jié)束,按回車(chē)回主菜單!\n"); getchar(); getchar(); system("cls"); } else { printf("\a"); printf

22、("超出最大人數(shù),請(qǐng)重新輸入!\n"); } 在讀取文件時(shí)位置指針移動(dòng)的問(wèn)題就解決啦。其次是,在信息存儲(chǔ)的過(guò)程中,我還考慮到了使用者在使用時(shí)可能遇到的盡可能多的問(wèn)題,如若輸入的學(xué)號(hào)小于11位,便會(huì)有輸入錯(cuò)誤提醒,還有一個(gè)非常使用的是當(dāng)使用著在進(jìn)行信息錄入的過(guò)程中,可以隨時(shí)地退出該功能,在錄入成功后會(huì)有錄入成功的提示信息。并且,為了使程序在使用時(shí)不會(huì)顯得過(guò)于呆板,我還在警示信息顯示的同時(shí)加入了聲音警示的功能,如學(xué)號(hào)輸入錯(cuò)誤不僅有文字提示而且有聲音提示, printf("\a");這樣使程序看起來(lái)顯得更加人性化。 程序的第二個(gè)功能是信息查詢(xún)功能。很顯然,沒(méi)有查詢(xún)的功能,寫(xiě)得再好的錄入

23、功能也相當(dāng)于白寫(xiě)。進(jìn)入信息查詢(xún)功能的菜單鍵是2數(shù)字鍵,進(jìn)入該功能后會(huì)有提示輸入要查詢(xún)的學(xué)生的學(xué)號(hào)或姓名,在設(shè)計(jì)該查詢(xún)功能時(shí),我采用的是strcmp函數(shù)來(lái)比較字符串的方式,來(lái)將輸入的要查詢(xún)的字符與文件中當(dāng)前有的各信息一一匹配,當(dāng)找到相同的學(xué)號(hào)或姓名時(shí),立即退出匹配的循環(huán)。源代碼如下: for(i=0;i<50;i++) //將所有學(xué)生的學(xué)生跟已經(jīng)錄入的學(xué)號(hào)配對(duì) { fscanf(fr,"%11s",_id); fscanf(fr,"%6s",_name); if((!strcmp(shuru,_id))||(!strcmp(shuru,_name))

24、) { printf("學(xué)號(hào):%s\n",_id); printf("姓名:%s\n",_name); fscanf(fr,"%2s",_fale); printf("性別:%2s\n",_fale); for(j=0;j<4;j++) { fscanf(fr,"%3s",fen); printf("%s的成績(jī)?yōu)椋?s\n",_class[j],fen); } fscanf(fr,"%3s",_all); printf("總分:%3s\n",_all); zhuangtai=0;

25、 //標(biāo)記說(shuō)明已查找到記錄 break; } else { fseek(fr,16,1); //將光標(biāo)移到下一次要配對(duì)的前一個(gè),以測(cè)定該信息是否為最后一條 cheshi=fgetc(fr); if(cheshi==EOF) break; } } if(zhuangtai) { printf("\a"); printf("不存在該學(xué)號(hào)的學(xué)生!\n"); } fclose(fr); printf("按回車(chē)鍵回主菜單...\n"); getc

26、har(); getchar(); system("cls"); } 查詢(xún)的界面如下: 這樣寫(xiě)有一個(gè)好處就是使查詢(xún)所要提供的信息不僅僅局限于姓名或著是學(xué)號(hào),這樣就更方便使用者的需要。 若查到結(jié)果則在屏幕上顯示已查到的結(jié)果: for(i=0;i<50;i++) //將所有學(xué)生的學(xué)生跟已經(jīng)錄入的學(xué)號(hào)配對(duì) { fscanf(fr,"%11s",_id); fscanf(fr,"%6s",_name); if((!strcmp(shuru,_id))||(!strcmp(shuru,_name))) { printf("學(xué)

27、號(hào):%s\n",_id); printf("姓名:%s\n",_name); fscanf(fr,"%2s",_fale); printf("性別:%2s\n",_fale); for(j=0;j<4;j++) { fscanf(fr,"%3s",fen); printf("%s的成績(jī)?yōu)椋?s\n",_class[j],fen); } fscanf(fr,"%3s",_all); printf("總分:%3s\n",_all); zhuangtai=0; //標(biāo)記說(shuō)明已查找到

28、記錄 break; } else { fseek(fr,16,1); //將光標(biāo)移到下一次要配對(duì)的前一個(gè),以測(cè)定該信息是否為最后一條 cheshi=fgetc(fr); if(cheshi==EOF) break; } } 同樣,在設(shè)計(jì)此功能時(shí),我也考慮到了查詢(xún)信息不存在的問(wèn)題,當(dāng)使用者輸入的要查詢(xún)的信息不存在時(shí),會(huì)有文字和聲音提示“未找到要查詢(xún)的記錄”,而且,在執(zhí)行此功能的過(guò)程中,也設(shè)置了隨時(shí)退出查詢(xún)的功能。功能界面如下: 接下來(lái)介紹的是刪除記錄功能。同樣,刪除記錄功能也

29、是非常需要的,當(dāng)某個(gè)學(xué)生的信息不再需要時(shí),如果繼續(xù)保存,將使學(xué)生的信息管理變得越來(lái)越復(fù)雜,因此,刪除多余的記錄是非常有必要的。刪除功能的界面如下: 在查找要?jiǎng)h除記錄的位置時(shí),我采用的方式是先將所有信息先存入一個(gè)結(jié)構(gòu)數(shù)組,源代碼如下: for(i=0;i<50;i++) //先將所有信息讀入一個(gè)結(jié)構(gòu)數(shù)組 { _cheshi4=fgetc(fr); if(_cheshi4==EOF) break; else fseek(fr,-1,1); fscanf(fr,"%11s",student5[i].id); fsca

30、nf(fr,"%6s",student5[i].name); fscanf(fr,"%2s",student5[i].fale); fscanf(fr,"%3s",&student5[i].score[0]); fscanf(fr,"%3s",&student5[i].score[1]); fscanf(fr,"%3s",&student5[i].score[2]); fscanf(fr,"%3s",&student5[i].score[3]); fscanf(fr,"%3s",&student5[i].all); } 至于查找要?jiǎng)h除信息的位置跟信息查

31、詢(xún)功能查找的方式是一樣的,即將所輸入的學(xué)號(hào)或姓名跟已存在的信息一一匹配,當(dāng)找到要?jiǎng)h除的記錄時(shí),立即退出匹配的循環(huán)。源代碼如下: for(j2=0;j2

32、的是考慮到當(dāng)使用者只要修改某個(gè)學(xué)生的某一項(xiàng)信息但又不想修改其他信息時(shí)就可以采用修改記錄功能,此功能可以按照使用者的意圖選擇性的修改學(xué)生的某項(xiàng)指定的記錄。這樣就比將該學(xué)生的記錄全部刪除然后又重新存進(jìn)去要方便多了。首先要輸入要?jiǎng)h除的學(xué)生的姓名或?qū)W號(hào),以確定操作對(duì)象,代碼如下: printf("請(qǐng)輸入要修改信息的學(xué)生的姓名或?qū)W號(hào)!(按0取消修改)\n"); scanf("%s",_shuru2); if(strcmp(_cheshi8,_shuru2)) //設(shè)置退出修改功能 { fseek(fr,0,0); for(i=0;i<5

33、0;i++) { _cheshi1=fgetc(fr); if(_cheshi1==EOF) { printf("\a"); printf("未找到要修改的記錄!\n"); goto loop8; } fseek(fr,-1,1); fscanf(fr,"%11s",student4.id); fscanf(fr,"%6s",student4.name); if((!strcmp(_shuru2,student4.id))||(!strcmp(_shuru2,stude

34、nt4.name))) { fseek(fr,17,1); break; } else fseek(fr,17,1); } 在找到要修改的對(duì)象后,就要選擇要修改的項(xiàng)目,使用者可以通過(guò)選擇的方式選擇所要修改的項(xiàng),代碼如下: printf("請(qǐng)選擇要修改的項(xiàng)...\n"); printf("修改學(xué)號(hào)請(qǐng)按1\n"); printf("修改姓名請(qǐng)按2\n"); printf("修改性別請(qǐng)按3\n"); printf("修改分?jǐn)?shù)請(qǐng)按4\n"); scanf("%s",_xiang); xi

35、ang=atoi(_xiang); switch(xiang) { case 1: { printf("請(qǐng)輸入要修改的學(xué)號(hào):\n"); scanf("%s",_xin); if(strlen(_xin)==11) strcpy(student4.id,_xin); else { printf("\a"); printf("輸入學(xué)號(hào)有誤,學(xué)號(hào)為11位數(shù),請(qǐng)重新輸入!\n"); goto loop3; } } break; case 2:

36、 { loop3: printf("請(qǐng)輸入要修改的姓名(僅支持3個(gè)字以?xún)?nèi)中文):\n"); scanf("%s",_xin); if(strlen(_xin)==0||strlen(_xin)>6) { printf("輸入姓名長(zhǎng)度不符合要求,請(qǐng)重新輸入!\n"); goto loop3; } strcpy(student4.name,_xin); } break; case 3: loop4: printf("請(qǐng)輸入要修改的性別...\n"); scanf("%s",_xin)

37、; if(strlen(_xin)!=2) { printf("\a"); printf("性別輸入有誤,請(qǐng)重新輸入!\n"); goto loop4; } else strcpy(student4.fale,_xin); break; 如果選擇要修改的分?jǐn)?shù),又會(huì)提示讓你選擇要修改分?jǐn)?shù)的科目: case 4: printf("請(qǐng)選擇要修改的成績(jī):\n"); loop6: printf("C語(yǔ)言請(qǐng)按1\n大機(jī)請(qǐng)按2\n高數(shù)請(qǐng)按3\n英語(yǔ)請(qǐng)按4...\n"); scanf("%s",_xua

38、nzhe); xuanzhe=atoi(_xuanzhe); switch(xuanzhe) { case 1: { printf("請(qǐng)輸入要修改的學(xué)號(hào):\n"); scanf("%s",_xin); if(strlen(_xin)==11) strcpy(student4.id,_xin); else { printf("\a"); printf("輸入學(xué)號(hào)有誤,學(xué)號(hào)為11位數(shù),請(qǐng)重新輸入!\n"); goto loop3; } } break;

39、 case 2: { loop3: printf("請(qǐng)輸入要修改的姓名(僅支持3個(gè)字以?xún)?nèi)中文):\n"); scanf("%s",_xin); if(strlen(_xin)==0||strlen(_xin)>6) { printf("輸入姓名長(zhǎng)度不符合要求,請(qǐng)重新輸入!\n"); goto loop3; } strcpy(student4.name,_xin); } break; 接下來(lái)介紹的程序的第五大功能——輸出所有學(xué)生信息的功能。當(dāng)然雜亂地輸出所有信息可以說(shuō)是好無(wú)意

40、義的,因此,我在設(shè)計(jì)此功能時(shí)采用了一個(gè)冒泡排序,將所有學(xué)生的信息按照總分從大到小依次輸出。具體是先將所有學(xué)生的信息先存儲(chǔ)在一個(gè)結(jié)構(gòu)數(shù)組中: for(_n2=0;_n2<50;_n2++) { _cheshi4=fgetc(fr); if(_cheshi4==EOF) { fseek(fr,-1,1); break; } else ; fseek(fr,-1,1); fscanf(fr,"%11s",student6[_n2].id); fscanf(fr,"%6s",student6[_n2].name); fsca

41、nf(fr,"%2s",student6[_n2].fale); fscanf(fr,"%3s",student6[_n2].score[0]); fscanf(fr,"%3s",student6[_n2].score[1]); fscanf(fr,"%3s",student6[_n2].score[2]); fscanf(fr,"%3s",student6[_n2].score[3]); fscanf(fr,"%3d",&_laji); qiu[0]=atoi(student6[_n2].score[0]); qiu[1]=atoi(student6

42、[_n2].score[1]); qiu[2]=atoi(student6[_n2].score[2]); qiu[3]=atoi(student6[_n2].score[3]); student6[_n2].all=qiu[0]+qiu[1]+qiu[2]+qiu[3]; } 然后用了一個(gè)冒泡排序: for(i=0;i<_jilu+1;i++) for(j=0;j<_jilu-1;j++) { if((student6[j].all)<(student6[j+1].all)) { student4=student6[j];

43、 student6[j]=student6[j+1]; student6[j+1]=student4; } } 按總分排好序之后就是輸出信息了,輸出信息的時(shí)候,我采用的是一個(gè)學(xué)生的所有信息在一行輸出,這樣可以使使用者在查看的時(shí)候顯得更加清楚明了。 最后就是退出功能。,退出功能在此程序中可以說(shuō)無(wú)處不在,因?yàn)槲以谠O(shè)計(jì)各項(xiàng)功能時(shí)都考慮到了退出的問(wèn)題,在執(zhí)行各個(gè)功能時(shí),隨時(shí)都可以退出到主菜單。但這里所說(shuō)的退出功能是指退出程序功能,沒(méi)有退出的功能,有了該功能將可以使程序在運(yùn)行時(shí)可以很方便地退出。 三.總結(jié)與體會(huì) 回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,從從

44、拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)學(xué)期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體……通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)

45、的知識(shí)重新溫故。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問(wèn)題,最后在郭老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在郭老師的身上我學(xué)得到很多實(shí)用的知識(shí),在次我表示感謝!同時(shí),對(duì)給過(guò)我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝在課程設(shè)計(jì)過(guò)程中,我學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒,黑夜過(guò)去了,我們收獲的是黎明。在本次實(shí)踐中,給我印象最為深刻的是在文件刪除程序的編譯過(guò)程中,先有我的各個(gè)子程序都已經(jīng)編輯成功,那么這最后的程序就將是我成功的關(guān)鍵。老天不會(huì)讓我太過(guò)順利,他在這最后的時(shí)刻設(shè)置的障礙,是要考驗(yàn)我的能力,他

46、要置我于死地?在這個(gè)問(wèn)題的解決上,我打了退堂鼓,我不能忍受長(zhǎng)時(shí)間的無(wú)功而反,時(shí)間正在消磨我的意志。沒(méi)有了柳暗花明的一天,那么我怎么能說(shuō)經(jīng)受住了考驗(yàn)?謝謝老師的那句話(huà),她說(shuō):人力有所不能及,然而,人的精神是不會(huì)敗倒的。我鼓起勇氣,到處問(wèn),到處查資料,黃天不負(fù)有心人,在一篇文章上,終于看到了我所特別要求的函數(shù),我實(shí)現(xiàn)了組合是關(guān)鍵的理論。不得不說(shuō)這是精神的勝利,是永不言敗的精神讓我的程序重見(jiàn)天日。謝謝給我指點(diǎn)迷津的老師。6月11日,我們的課程設(shè)計(jì)結(jié)束了,但是它留給我的印象是不可磨滅的。無(wú)論我以后會(huì)不會(huì)涉及到C語(yǔ)言程序編譯的研究,我想,我至少掌握了一種系統(tǒng)的研究方法,我們學(xué)習(xí)的目的就在于運(yùn)用,我們運(yùn)用這種研究方法的時(shí)候會(huì)很多,我最后要感謝課程設(shè)計(jì),它的確教會(huì)我很多。 四、參考資料 1、李長(zhǎng)云.《C語(yǔ)言程序設(shè)計(jì)》國(guó)防工業(yè)出版社、 2、百度文庫(kù)(尋找C語(yǔ)言課程設(shè)計(jì)的模版及某些實(shí)用功能函數(shù)) 專(zhuān)心---專(zhuān)注---專(zhuān)業(yè)

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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