版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)學(xué)與計(jì)算機(jī)學(xué)院</b></p><p><b> 課程設(shè)計(jì)說(shuō)明書(shū)</b></p><p> 課 程 名 稱:計(jì)算機(jī)科學(xué)與技術(shù)程序設(shè)計(jì)語(yǔ)言-課程設(shè)計(jì)</p><p> 課 程 代 碼: </p><p&g
2、t; 題 目:學(xué)生成績(jī)管理系統(tǒng) </p><p> 年級(jí)/專業(yè)/班: </p><p> 學(xué) 生 姓 名: </p><p> 學(xué) 號(hào):
3、 </p><p> 開(kāi) 始 時(shí) 間: 年 月 日</p><p> 完 成 時(shí) 間: 年 月 日</p><p><b> 課程設(shè)計(jì)成績(jī):</b></p><p> 指導(dǎo)教師簽名: 年 月 日&l
4、t;/p><p> 程序設(shè)計(jì)語(yǔ)言 課程設(shè)計(jì) 任務(wù)書(shū)</p><p><b> 一、設(shè)計(jì)題目</b></p><p><b> 學(xué)生管理系統(tǒng)</b></p><p><b> 二、主要內(nèi)容</b></p><p> 設(shè)計(jì)一個(gè)簡(jiǎn)單的學(xué)生管理系統(tǒng),實(shí)現(xiàn)出
5、最基本的功能。</p><p> 三、具體要求及應(yīng)提交的材料</p><p> 學(xué)生基本信息文件(StuInfor.txt)及其內(nèi)容:StuInfor.txt文件不需要編程錄入數(shù)據(jù),可用文本編輯工具直接生成。</p><p> 學(xué)號(hào) 姓名 性別 宿舍號(hào)碼 電話號(hào)碼</p><p> 01 張成成 男
6、501 87732111</p><p> 02 李成華 女 101 87723112</p><p> 03 王成鳳 女 101 87723112</p><p> 04 張明明 男 502 87734333</p><p> 05 陳東
7、 男 501 87732111</p><p> 06 李果 男 502 87734333</p><p> 07 張園園 女 102 87756122</p><p> … …. .. … ………..</p><p> 學(xué)生成績(jī)基本信
8、息文件(StuScore.txt)及其內(nèi)容:</p><p> 學(xué)號(hào) 課程編號(hào) 課程名稱 學(xué)分 平時(shí)成績(jī) 實(shí)驗(yàn)成績(jī) 卷面成績(jī) 綜合成績(jī) 實(shí)得學(xué)分</p><p> 01 A01 大學(xué)物理 3 66 78 82 </p><p> 02 B03 高等數(shù)學(xué) 4 7
9、8 -1 90</p><p> 01 B03 高等數(shù)學(xué) 4 45 -1 88</p><p> 02 C01 VF 3 65 76 66</p><p> … …. ………. ..
10、 .. …</p><p><b> 功能要求及說(shuō)明:</b></p><p> (1) 數(shù)據(jù)錄入功能: 對(duì)StuInfor.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)算。</p><p> 綜合成績(jī)的
11、計(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% 。 </p><p> 實(shí)得學(xué)分的計(jì)算: 采用等級(jí)學(xué)分制。 </p><p> 綜合成績(jī)?cè)?0-100之間,應(yīng)得學(xué)分=學(xué)分*100% 綜合成績(jī)?cè)?0-90之間 ,應(yīng)得學(xué)分=學(xué)分*8
12、0%</p><p> 綜合成績(jī)?cè)?0-80之間,應(yīng)得學(xué)分=學(xué)分*75% 綜合成績(jī)?cè)?0-70之間 ,應(yīng)得學(xué)分=學(xué)分*60%</p><p> 綜合成績(jī)?cè)?0以下,應(yīng)得學(xué)分=學(xué)分*0%</p><p> ?。?)查詢功能:分為學(xué)生基本情況查詢和成績(jī)查詢兩種</p><p> A:學(xué)生基本情況查詢:</p><
13、;p> A1----輸入一個(gè)學(xué)號(hào)或姓名(可實(shí)現(xiàn)選擇),查出此生的基本信息并顯示輸出。</p><p> A2---輸入一個(gè)宿舍號(hào)碼,可查詢出本室所有的學(xué)生的基本信息并顯示輸出。</p><p><b> B:成績(jī)查詢:</b></p><p> B1:輸入一個(gè)學(xué)號(hào)時(shí),查詢出此生的所有課程情況,格式如下:</p>&l
14、t;p> 學(xué) 號(hào):xx 姓 名:xxxxx</p><p> 課程編號(hào):xxx 課程名稱:xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx</p><p> 課程編號(hào):xxx 課程名稱:xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx</p><p> 課程編號(hào):xxx 課程名稱
15、:xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx</p><p> … … … … ……… … … </p><p> 共修:xx科,實(shí)得總學(xué)分為: xxx</p><p> ?。?)刪除功能:當(dāng)在StuInfor.txt中刪除一個(gè)學(xué)生時(shí),自動(dòng)地在StuScore.txt中刪除此人所有信息。
16、</p><p> ?。?) 排序功能:能實(shí)現(xiàn)選擇按綜合成績(jī)或?qū)嵉脤W(xué)分升序或降序排序并顯示數(shù)據(jù)。</p><p><b> 設(shè)計(jì)要求:</b></p><p> 分析設(shè)計(jì)要求,給出解決方案(要說(shuō)明設(shè)計(jì)實(shí)現(xiàn)所用的原理,采用的數(shù)據(jù)結(jié)構(gòu));</p><p> 模塊化程序設(shè)計(jì),畫(huà)出程序的基本結(jié)構(gòu)框圖和流程圖;</p&
17、gt;<p> 對(duì)程序的每一部分要有詳細(xì)的設(shè)計(jì)分析說(shuō)明;</p><p> 程序執(zhí)行的每個(gè)步驟要有具體的提示內(nèi)容或輸出;</p><p> 源代碼格式規(guī)范(鋸齒型書(shū)寫(xiě)格式),注釋不少于三分之一;</p><p> 設(shè)計(jì)合適的測(cè)試用例,對(duì)得到的運(yùn)行結(jié)果要有分析;</p><p> 設(shè)計(jì)中遇到的問(wèn)題,設(shè)計(jì)的心得體會(huì)。<
18、;/p><p> 設(shè)計(jì)結(jié)束后,每位同學(xué)必須上交如下材料:</p><p> 《課程設(shè)計(jì)說(shuō)明書(shū)》打印稿一份;</p><p> 《課程設(shè)計(jì)說(shuō)明書(shū)》電子文檔及課程設(shè)計(jì)的程序源代碼 刻盤(pán)</p><p> 四、主要技術(shù)路線提示</p><p> 首先根據(jù)要解決的問(wèn)題進(jìn)行分析和總體設(shè)計(jì),得到要定義的數(shù)據(jù)結(jié)構(gòu)(可使用鏈表或
19、結(jié)構(gòu)數(shù)組存儲(chǔ)數(shù)據(jù))和函數(shù),然后進(jìn)行詳細(xì)編碼,在主函數(shù)中對(duì)各功能函數(shù)進(jìn)行測(cè)試。</p><p><b> 五、進(jìn)度安排</b></p><p> 一周完成。1天查閱資料和分析,3天編寫(xiě)軟件,2天寫(xiě)出課程設(shè)計(jì)報(bào)告并上交。</p><p> 六、推薦參考資料(不少于3篇)</p><p> 譚浩強(qiáng).程序設(shè)計(jì)題解與上機(jī)指
20、導(dǎo). 北京:清華大學(xué)出版社,2005.10</p><p> 黃明,梁旭 等編著.C語(yǔ)言課程設(shè)計(jì). 北京:電子工業(yè)出版社,2006.6</p><p> 陳清華,朱紅主編. Visual C++課程設(shè)計(jì)案例精選與編程指導(dǎo). 南京:東南大學(xué)出版社,2003.06 </p><p> 李春葆. C語(yǔ)言習(xí)題與解析 A級(jí). 北京:清華大學(xué)出版社,2006.10<
21、/p><p> 指導(dǎo)教師 簽名日期 年 月 日</p><p> 系 主 任 審核日期 年 月 日</p><p><b> 目 錄</b></p><p><b> 1 引 言1</b></p><
22、p> 1.1 問(wèn)題的提出1</p><p> 1.2國(guó)內(nèi)外研究的現(xiàn)狀1</p><p> 1.3任務(wù)與分析1</p><p> 2 程序的主要功能1</p><p> 2.1學(xué)生信息錄入-------課程信息錄入1</p><p> 2.2學(xué)生信息查詢1</p><p&
23、gt; 2.3刪除學(xué)生信息1</p><p> 2.4按所修學(xué)分高低進(jìn)行排序2</p><p> 3 程序運(yùn)行平臺(tái)2</p><p><b> 4 總體設(shè)計(jì)2</b></p><p><b> 5模塊分析:2</b></p><p> 5.1學(xué)生信息錄入
24、模塊:5</p><p> 5.2查詢學(xué)生信息模塊:6</p><p> 5.3刪除學(xué)生信息瀏覽模塊:7</p><p> 5.4按學(xué)分高低進(jìn)行排序模塊:8</p><p><b> 6系統(tǒng)測(cè)試15</b></p><p> 6.0進(jìn)入主菜單:15</p>&l
25、t;p> 6.1選“1”進(jìn)入學(xué)生信息錄入:15</p><p> 6.2選“2”進(jìn)入查詢學(xué)生信息:16</p><p> 6.3選“3”刪除學(xué)生信息:16</p><p> 6.4選“4”,進(jìn)行排序:17</p><p> 6.5選“0”退出系統(tǒng):18</p><p><b> 結(jié)
26、論20</b></p><p><b> 致 謝21</b></p><p><b> 參考文獻(xiàn)22</b></p><p><b> 摘 要 </b></p><p> 隨著計(jì)算機(jī)的普及,計(jì)算機(jī)系統(tǒng)越來(lái)使用于社會(huì)的各個(gè)領(lǐng)域。社會(huì)需求以及市場(chǎng)競(jìng)爭(zhēng)
27、等日新月異、瞬息萬(wàn)變,在這種情況下,信息進(jìn)入重要資源的行列。隨著信息技術(shù)的推廣應(yīng)用和信息資源的不斷開(kāi)發(fā)利用,管理信息化正在往廣度和深度發(fā)展,這導(dǎo)致信息管理在整個(gè)管理中地位的提升。信息管理滲透于和體現(xiàn)在各種管理的全部過(guò)程。自從有了計(jì)算機(jī)以后,好的學(xué)生選課系統(tǒng)能夠使教育更加繁榮,更加規(guī)范化,提高了教育人士的辦事效率,創(chuàng)造出無(wú)形的價(jià)值,讓學(xué)生更好的發(fā)展。在以前沒(méi)有學(xué)生選課系統(tǒng),對(duì)學(xué)生的學(xué)習(xí)情況不能夠及時(shí)的了解,做出快的政策,致使很多學(xué)生延誤。
28、因此,針對(duì)這些問(wèn)題。設(shè)計(jì)學(xué)生選課系統(tǒng)解決對(duì)學(xué)生每科每人的統(tǒng)計(jì),能夠了解學(xué)生學(xué)習(xí)情況,能夠輸出一覽表,直觀的快速的看到各種情況。對(duì)各種數(shù)據(jù)自動(dòng)化計(jì)算,大大提高了工作效率。</p><p> 關(guān)鍵詞:學(xué)生管理系統(tǒng);計(jì)算機(jī);學(xué)生;信息。</p><p><b> 1 引 言 </b></p><p> 1.1 問(wèn)題的提出 </p>
29、<p> 在現(xiàn)代化的教育管理中,學(xué)生管理系統(tǒng)有著十分重要的作用,然而,用大型軟件系統(tǒng)來(lái)于小型的教育單位,不啻于“殺雞用牛刀”,因此小型的的軟件對(duì)于這種單位自然有十分重要作用。</p><p> 1.2國(guó)內(nèi)外研究的現(xiàn)狀 </p><p> 現(xiàn)在各大高校已基本上全部使用。</p><p><b> 1.3任務(wù)與分析 </b>&
30、lt;/p><p> 本課程設(shè)計(jì)主要是錄入并保存學(xué)生的基本信息以及學(xué)生所選課程的所有信息包括課程編碼、課程名稱、平時(shí)成績(jī)、學(xué)分、卷面成績(jī)等,最后在按學(xué)生所修學(xué)分高低進(jìn)行排序。</p><p><b> 系統(tǒng)以菜單方式工作</b></p><p> 1、學(xué)生信息錄入功能(課程信息用文件保存)--輸入</p><p>
31、2、信息查詢功能--輸出</p><p> 3、刪除學(xué)生信息功能 </p><p><b> 4、排序功能</b></p><p><b> 2 程序的主要功能</b></p><p><b> 2.1學(xué)生信息錄入</b></p><p> 錄
32、入學(xué)生的基本信息。 </p><p><b> 2.2信息查詢 </b></p><p> 能夠?qū)λ袑W(xué)生的信息進(jìn)行瀏覽</p><p> 2.3刪除學(xué)生信息 </p><p> 能夠?qū)τ谒袑W(xué)生的信息進(jìn)行刪除</p><p><b> 2.4排序</b></
33、p><p> 按學(xué)生所修學(xué)分高低進(jìn)行排序</p><p><b> 3 程序運(yùn)行平臺(tái)</b></p><p><b> VC++6.0。</b></p><p> 具體操作如下:新建工程,建立新的源文件,再編譯,鏈接,執(zhí)行,調(diào)試 </p><p><b> 4
34、 總體設(shè)計(jì)</b></p><p> 圖4.1 系統(tǒng)總體框架圖</p><p><b> 5模塊分析:</b></p><p> 本函數(shù)有兩個(gè)結(jié)構(gòu)體和兩個(gè)主調(diào)函數(shù)(其中choice主調(diào)函數(shù)調(diào)用4個(gè)功能函數(shù))。</p><p> #include <stdio.h></p>&
35、lt;p> #include <stdlib.h></p><p> #include <conio.h></p><p> #include <string.h></p><p> #define N 20</p><p> struct kec</p><p>&
36、lt;b> {</b></p><p> char kcbm[10];//課程編碼</p><p> char kcmc[10];//課程名稱</p><p> float xf;//學(xué)分</p><p> float pscj;//平時(shí)成績(jī)</p><p> float sycj;//實(shí)
37、驗(yàn)成績(jī)</p><p> float jmcj;//卷面成績(jī)</p><p> float zhcj;//綜合成績(jī)</p><p> float sdxf;//實(shí)得學(xué)分</p><p><b> };</b></p><p> typedef struct </p><
38、;p><b> {</b></p><p> char xh[4];//學(xué)號(hào)</p><p> char name[10];//姓名</p><p> char xb[4];//性別</p><p> char qsh[10];//寢室號(hào)碼</p><p> char dhh[1
39、0];//電話號(hào)碼</p><p> struct kec kc[10];//所選課程</p><p> float gxxf;//共修學(xué)分</p><p><b> }stu;</b></p><p> void print(stu *x);</p><p><b> //菜
40、單選擇</b></p><p> void choice()</p><p><b> {</b></p><p><b> char ch;</b></p><p><b> while(1)</b></p><p> {syst
41、em("cls");</p><p> menu();//顯示菜單</p><p> ch=getch();//選擇菜單</p><p> if(ch=='0')break;</p><p> switch(ch)//判斷功能項(xiàng)</p><p><b> {<
42、;/b></p><p> case'1':input();break;</p><p> case'2':search();break;</p><p> case'3':dele();break;</p><p> case'4':sort();break;&l
43、t;/p><p><b> }</b></p><p><b> }</b></p><p> printf("\n歡迎使用!!!\n");</p><p><b> }</b></p><p> void main()<
44、/p><p><b> {</b></p><p> choice();//調(diào)用菜單選擇</p><p><b> }</b></p><p> 下面是4個(gè)函數(shù)模塊:(它們通過(guò)主菜單函數(shù)指示功能)</p><p><b> //菜單</b><
45、/p><p> void menu()</p><p><b> {</b></p><p> printf(" 學(xué)生管理系統(tǒng)\n");</p><p> printf("=====================\n");</p><p> p
46、rintf("1.數(shù)據(jù)錄入\n");</p><p> printf("2.查詢\n");</p><p> printf("3.刪除\n");</p><p> printf("4.排序\n");</p><p> printf("0.退出\n
47、");</p><p> printf("====================\n");</p><p> printf("請(qǐng)選擇相應(yīng)的功能:");</p><p><b> }</b></p><p> 5.1課程錄入模塊:</p><p
48、> 進(jìn)入主菜單后,選擇功能“1”,進(jìn)入學(xué)生信息錄入階段.</p><p><b> 其函數(shù)代碼為: </b></p><p><b> //數(shù)據(jù)錄入</b></p><p> void input()</p><p> {system("cls");</p&
49、gt;<p><b> float s;</b></p><p><b> int t; </b></p><p><b> stu x;</b></p><p><b> FILE *fp;</b></p><p> if((fp
50、=fopen("student.txt","ab"))==NULL)</p><p> {printf("cannot open this file\n");</p><p><b> exit(0);</b></p><p><b> }</b></
51、p><p><b> while(1)</b></p><p><b> {t=0; </b></p><p><b> s=0;</b></p><p> printf("\n學(xué)生基本信息錄入格式:學(xué)號(hào) 姓名 性別 寢室號(hào)碼 電話號(hào)碼 . 當(dāng)輸入學(xué)號(hào)為1結(jié)束錄入
52、\n");</p><p> scanf("%s",x.xh);</p><p> if(strcmp(x.xh,"1")==0) break;</p><p> scanf("%s %s %s %s",x.name,x.xb,x.qsh,x.dhh);</p><p&
53、gt; printf("\n學(xué)生成績(jī)基本信息錄入格式 課程編碼 課程名稱 學(xué)分 平時(shí)成績(jī) 實(shí)驗(yàn)成績(jī) 卷面成績(jī). \n ");</p><p> printf("第%d個(gè)課程信息:當(dāng)輸入課程編碼為A時(shí)結(jié)束\n",t+1); </p><p><b> while(1)</b></p><p><
54、;b> { </b></p><p> scanf("%s",x.kc[t].kcbm);</p><p> if(strcmp(x.kc[t].kcbm,"A")==0)</p><p><b> break;</b></p><p> scanf(
55、"%s %f %f %f %f",x.kc[t].kcmc,&x.kc[t].xf,&x.kc[t].pscj,&x.kc[t].sycj,&x.kc[t].jmcj);</p><p> if(x.kc[t].sycj==-1)</p><p> x.kc[t].zhcj=(float)(x.kc[t].pscj*0.3+x.kc[
56、t].jmcj*0.7);</p><p><b> else </b></p><p> x.kc[t].zhcj=(float)((x.kc[t].pscj+x.kc[t].sycj)*0.15+x.kc[t].jmcj*0.7);</p><p> if(90<=x.kc[t].zhcj)</p><p&g
57、t; x.kc[t].sdxf=(float)(x.kc[t].xf);</p><p> else if(80<=x.kc[t].zhcj)</p><p> x.kc[t].sdxf=(float)(x.kc[t].xf*0.8);</p><p> else if(70<=x.kc[t].zhcj)</p><p>
58、 x.kc[t].sdxf=(float)(x.kc[t].xf*0.75);</p><p> else if(60<=x.kc[t].zhcj)</p><p> x.kc[t].sdxf=(float)(x.kc[t].xf*0.6);</p><p> else if(60>x.kc[t].zhcj)</p><p&g
59、t; x.kc[t].sdxf=0; </p><p> s=s+x.kc[t].sdxf;</p><p><b> t=t+1;</b></p><p> printf("\n學(xué)生成績(jī)基本信息錄入格式 課程編碼 課程名稱 學(xué)分 平時(shí)成績(jī) 實(shí)驗(yàn)成績(jī) 卷面成績(jī). \n ");</p><p>
60、; printf("第%d個(gè)課程信息:當(dāng)輸入課程編碼為A時(shí)結(jié)束\n",t+1); </p><p><b> }</b></p><p><b> x.gxxf=s;</b></p><p> fwrite(&x,sizeof(stu),1,fp); //將信息寫(xiě)入文件</p>
61、;<p><b> }</b></p><p> fclose(fp);//用完文件關(guān)閉文件</p><p> getchar();</p><p><b> }</b></p><p> 5.2查詢信息模塊:</p><p> 進(jìn)入主菜單后,選擇功
62、能“2”,進(jìn)入更改查詢信息階段.</p><p><b> 其函數(shù)代碼為: </b></p><p> void search()//按學(xué)號(hào)查找</p><p><b> {</b></p><p> system("cls");</p><p>
63、<b> stu x;</b></p><p><b> FILE *fp;</b></p><p> char number[4];</p><p> printf("\n輸入要查學(xué)生的學(xué)號(hào): ");</p><p> scanf("%s",num
64、ber);</p><p> if((fp=fopen("student.txt","rb"))==NULL) {printf("can't open file!\n");exit(0);}</p><p> while(!feof(fp))</p><p> {fread(&x,si
65、zeof(stu),1,fp);//把文件的學(xué)生信息讀入到xs結(jié)構(gòu)體</p><p> if(strcmp(number,x.xh)==0)//學(xué)號(hào)相當(dāng)?shù)臅r(shí)候運(yùn)行下面程序</p><p> { printf(" 學(xué)生的信息如下:\n");</p><p> printf("學(xué)生姓名 性別 寢室號(hào)碼 電話號(hào)碼"
66、;);</p><p> printf("\n %s %s %s %s\n",x.name,x.xb,x.qsh,x.dhh);</p><p> print(&x);</p><p><b> break;</b></p><p><b>
67、; }</b></p><p><b> }</b></p><p> if(feof(fp)) printf("cannot find\n");</p><p> fclose(fp);</p><p> getchar();</p><p> get
68、char();</p><p><b> }</b></p><p> void print(stu *x)</p><p><b> {int i;</b></p><p> printf("學(xué)號(hào) 姓名");</p><p> printf
69、("%s %s\n",x->xh,x->name);</p><p> for(i=0;i<10;i++)</p><p> {if(strcmp((x->kc[i]).kcbm,"A")==0)</p><p><b> break;</b></p>&l
70、t;p> printf("課程名稱:%s 綜合成績(jī):%6.2f 實(shí)得學(xué)分:%6.2f\n",(x->kc[i]).kcmc,(x->kc[i]).zhcj,(x->kc[i]).sdxf);</p><p><b> }</b></p><p> printf("共修科目:%d ",i)
71、;</p><p> printf("共修學(xué)分:%6.2f\n",x->gxxf);</p><p><b> }</b></p><p> 5.3刪除信息模塊:</p><p> 進(jìn)入主菜單后,選擇功能“3”,進(jìn)入刪除信息階段.</p><p><b>
72、; 其函數(shù)代碼為: </b></p><p> //刪除:輸入學(xué)生姓名,若該學(xué)生存在,則刪除</p><p> void dele()</p><p><b> {</b></p><p> stu xs[N]; </p><p><b> FILE *fp;&l
73、t;/b></p><p> char name[10];</p><p> int i,len,k=-1;</p><p> system("cls");</p><p> printf("\n輸入要?jiǎng)h除的學(xué)生姓名: ");scanf("%s",name);</
74、p><p><b> i=0;;</b></p><p> if((fp=fopen("student.txt","rb+"))==NULL) {printf("can't open file!\n");exit(0);}</p><p> while(!feof(fp))&
75、lt;/p><p> {fread(&xs[i],sizeof(stu),1,fp);</p><p> if(feof(fp)) break;</p><p> if(strcmp(xs[i].name,name)==0) k=i;</p><p><b> i++;</b></p><
76、p><b> }</b></p><p> fclose(fp);</p><p> //以下是刪除后重新寫(xiě)文件</p><p><b> len=i;</b></p><p><b> if(k>=0)</b></p><p>
77、 {if((fp=fopen("student.txt","wb+"))==NULL) {printf("can't open file!\n");exit(0);}</p><p> for(i=0;i<len;i++)</p><p> {if(i==k) continue;</p><p
78、> fwrite(&xs[i],sizeof(stu),1,fp);</p><p><b> }</b></p><p> printf("刪除成功");</p><p> fclose(fp);</p><p><b> }</b></p>
79、<p> else printf("刪除失敗!!!\n"); </p><p> getchar();</p><p> getchar();</p><p><b> }</b></p><p><b> 5.4排序模塊:</b></p>
80、<p> 進(jìn)入主菜單后,選擇功能“4”,進(jìn)入排序階段。</p><p><b> 其函數(shù)代碼為: </b></p><p><b> //排序</b></p><p> void sort()</p><p><b> {</b></p>&l
81、t;p> stu xs[N],s; </p><p> void print();</p><p><b> FILE *fp;</b></p><p> int i,j,k,len;</p><p> system("cls");</p><p><b&
82、gt; i=0;</b></p><p> if((fp=fopen("student.txt","rb+"))==NULL) {printf("can't open file!\n");exit(0);}</p><p> while(!feof(fp))</p><p> {
83、fread(&xs[i],sizeof(stu),1,fp);</p><p> if(feof(fp)) break;</p><p><b> i++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p>
84、;<b> len=i;</b></p><p> for(i=0;i<len-1;i++)</p><p><b> {k=i;</b></p><p> for(j=i+1;j<len;j++)</p><p> if(xs[k].gxxf<xs[j].gxxf) k
85、=j;</p><p><b> if(k!=i) </b></p><p> {s=xs[i];xs[i]=xs[k];xs[k]=s;}</p><p><b> }</b></p><p> printf("\n %s %s\n","姓名&qu
86、ot;,"共修學(xué)分");</p><p> for(i=0;i<len;i++)</p><p> printf("\n%10s %6.2f",xs[i].name,xs[i].gxxf);</p><p><b> getch();</b></p><p><b
87、> }</b></p><p><b> 6系統(tǒng)測(cè)試</b></p><p><b> 6.0進(jìn)入主菜單:</b></p><p> 輸入函數(shù)代碼后,運(yùn)行.</p><p><b> 圖6.0—進(jìn)入菜單</b></p><p>
88、; 6.1選“1”進(jìn)入學(xué)生信息錄入:</p><p> 圖6.1--課程信息錄入</p><p> 6.2選“2”進(jìn)入信息查詢:</p><p> 圖6.2--更改課程信息</p><p> 6.3選“3”信息刪除:</p><p> 圖6.3--課程信息瀏覽</p><p> 6
89、.4選“4”排序:</p><p><b> 圖6.4—排序</b></p><p><b> 結(jié)論</b></p><p> 本次課程設(shè)計(jì)不僅完成了題目的要求,而且實(shí)現(xiàn)了程序的普遍化,能夠適用于更普遍的情況,能夠進(jìn)行小數(shù)據(jù)的修改就能夠改變其適用范圍。菜單函數(shù),提示信息使得程序能夠被大部分的人使用,看懂,操作,實(shí)現(xiàn)了
90、使用人的普遍化。改程序采用輸入文件名,實(shí)現(xiàn)了對(duì)各種文件的調(diào)用,使得程序可以操作各個(gè)月份,各種信息,實(shí)現(xiàn)了對(duì)信息的普遍化。本程序采用了數(shù)據(jù)之間的邏輯性,使得他們相互連接起來(lái)。節(jié)約原代碼,使得程序更加優(yōu)化。</p><p> 它還采用了選擇程序,使得用戶可以隨意的操作,采用文件可以使得用戶可以隨意退出,而不必重復(fù)的進(jìn)行龐大的數(shù)據(jù)輸入。數(shù)據(jù)采用二進(jìn)制,加快了程序的處理數(shù)度,還采用了其他的優(yōu)化手段。數(shù)據(jù)輸入時(shí),程序可以
91、發(fā)現(xiàn)錯(cuò)誤信息,而且指出。并且提示用戶修改重新輸入。</p><p> 如果操作員輸入數(shù)據(jù)時(shí)遺漏輸入,程序不能夠識(shí)別錯(cuò)誤,把后面的數(shù)據(jù)當(dāng)做前面數(shù)據(jù)。(我的解決方法是在輸入函數(shù)加字符但是使得函數(shù)操作復(fù)雜)。還有程序輸出還不夠美觀,程序的設(shè)計(jì)還存在不合理的地方,使得程序冗余。程序所需數(shù)據(jù)較大,對(duì)一些問(wèn)題沒(méi)有檢測(cè)到。希望老師通過(guò)多年的經(jīng)驗(yàn),提出寶貴的建議,使得程序更加優(yōu)化,更加實(shí)用。</p><p&
92、gt; 通過(guò)此次課程設(shè)計(jì),我對(duì)C程序的使用更加理解,對(duì)結(jié)構(gòu)體,數(shù)組,變量,指針,文件等等更有深刻的理解。但是本程序還存在不少問(wèn)題,處理問(wèn)題太少,只能處理一些基本問(wèn)題。比如說(shuō),我覺(jué)得這個(gè)學(xué)生選修課系統(tǒng)還應(yīng)該編一個(gè)按課程排序的函數(shù)模塊.這樣打印出課表才美觀.還有可以加入一點(diǎn)鏈表的知識(shí),這樣會(huì)使選修課系統(tǒng)更優(yōu)化,簡(jiǎn)便,適用.</p><p><b> 致 謝 </b></p>
93、<p> 本次課程設(shè)計(jì)能順利完成,感謝學(xué)校的大力支持,感謝數(shù)學(xué)與計(jì)算機(jī)學(xué)院為我們提供實(shí)練的機(jī)會(huì),感謝老師的細(xì)心指導(dǎo)。</p><p> 此次的課程設(shè)計(jì)是本人人生當(dāng)中的第一個(gè),雖然經(jīng)過(guò)了一段漫長(zhǎng)而又痛苦的過(guò)程,但最終還是完成了,這是與自己的努力和老師同學(xué)們的幫助分不開(kāi)的,自己在調(diào)試過(guò)程當(dāng)中還是遇到了一些問(wèn)題,自己仍然不懂,是在同學(xué)和老師的幫助下才得以完成,在這里對(duì)他們的幫助與付出表示衷心感謝。<
94、/p><p><b> 參考文獻(xiàn)</b></p><p> [1] 譚浩強(qiáng).程序設(shè)計(jì)題解與上機(jī)指導(dǎo). 北京:清華大學(xué)出版社,2005.10 </p><p> [2] 黃明,梁旭 等編著.C語(yǔ)言課程設(shè)計(jì). 北京:電子工業(yè)出版社,2006.6</p><p> [3] 陳清華,朱紅主編. Visual C++課程設(shè)計(jì)案
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c_語(yǔ)言課程設(shè)計(jì)---學(xué)生選課系統(tǒng)
- c語(yǔ)言學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- c語(yǔ)言學(xué)生選課管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生選課系統(tǒng)管理
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生選課系統(tǒng)加源代碼
- 課程設(shè)計(jì)-c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
- c#學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言學(xué)生證管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (2)
- c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (3)
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 學(xué)生考勤系統(tǒng)c語(yǔ)言課程設(shè)計(jì)
- 學(xué)生選課系統(tǒng)c語(yǔ)言設(shè)計(jì)資料
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--學(xué)生選課系統(tǒng)
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論