學(xué)生成績管理系統(tǒng)千行代碼C語言課程設(shè)計(jì)_第1頁
學(xué)生成績管理系統(tǒng)千行代碼C語言課程設(shè)計(jì)_第2頁
學(xué)生成績管理系統(tǒng)千行代碼C語言課程設(shè)計(jì)_第3頁
學(xué)生成績管理系統(tǒng)千行代碼C語言課程設(shè)計(jì)_第4頁
學(xué)生成績管理系統(tǒng)千行代碼C語言課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、內(nèi)蒙古科技大學(xué)本科生課程設(shè)計(jì)說明書題目: C 語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)學(xué)生姓名:邊峰學(xué)號: 1467159114專業(yè):軟件工程班級:1班指導(dǎo)教師:周李涌日期:2015 年 1月 1日內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書課程名稱C 語言課程設(shè)計(jì)設(shè)計(jì)題目學(xué)生成績管理系統(tǒng)指導(dǎo)教師周李涌時(shí)間一、教案要求1.鞏固和加深學(xué)生對C語言課程地基本知識地理解和掌握2.掌握C語言編程和程序調(diào)試地基本技能3.利用C語言進(jìn)行基本地軟件設(shè)計(jì)4.掌握書寫程序設(shè)計(jì)說明文檔地能力5. 提高運(yùn)用 C 語言解決實(shí)際問題地能力二、設(shè)計(jì)資料及參數(shù)每個(gè)學(xué)生在教師提供地課程設(shè)計(jì)題目中任意選擇一題,獨(dú)立完成,題目選定后不可更換.某班學(xué)生成績管

2、理,包括以下功能:從鍵盤輸入包括學(xué)號、姓名、各門課程成績( 不少于 5 門 ),并將其保存在磁盤文件里打開文件后,計(jì)算每個(gè)人地總分和平均分,排序并保存具有單項(xiàng)查詢或多項(xiàng)查詢地功能(即按照給定地關(guān)鍵字,如姓名找出滿足條件地紀(jì)錄)具有插入、刪除和修改功能具有輸出文件數(shù)據(jù)信息地功能三、設(shè)計(jì)要求及成果1. 分析課程設(shè)計(jì)題目地功能需求(可選用數(shù)組或鏈表實(shí)現(xiàn),可多人(最多3 人)協(xié)作完成一個(gè)題目)2. 寫出詳細(xì)設(shè)計(jì)說明(至少包括功能實(shí)現(xiàn)分析和模塊流程圖)3. 編寫程序代碼,調(diào)試程序使其能正確運(yùn)行(代碼書寫要規(guī)范,標(biāo)示符要見名知意,要有必要地注釋,每人至少500行代碼,不包括注釋和花括號)4.設(shè)計(jì)完成地軟件

3、要便于操作和使用5. 設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告(請嚴(yán)格按照模板進(jìn)行排版)四、進(jìn)度安排第 一 天第第三第四選擇課程設(shè)計(jì)題目,分析課題地要求二天編程天編程及調(diào)試天寫課程設(shè)計(jì)報(bào)告第五天提交課程設(shè)計(jì)報(bào)告(打印稿及電子稿)五、評分標(biāo)準(zhǔn)1. 根據(jù)平時(shí)上機(jī)考勤、表現(xiàn)和進(jìn)度,教師將每天點(diǎn)名和檢查2.根據(jù)課程設(shè)計(jì)完成情況,必須有可運(yùn)行地軟件.3.根據(jù)課程設(shè)計(jì)報(bào)告地質(zhì)量,如有雷同,則所有雷同地所有人均判為不及格.六、建議參考資料1 C 語言程序設(shè)計(jì),譚浩強(qiáng),清華大學(xué)出版社2 C 語言程序設(shè)計(jì)課程設(shè)計(jì),劉振安,機(jī)械工業(yè)出版社目錄內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書 ····

4、3;··································I 目 錄 ··············

5、3;·········································II第一章需求分析·······&

6、#183;······································31.1引言 ··········

7、·······································31.2任務(wù)概述·········

8、3;····································31.3數(shù)據(jù)描述············&#

9、183;·································31.4功能需求···············

10、·······························31.5性能需求·················

11、3;····························41.6運(yùn)行需求····················&#

12、183;·························41.7任務(wù)計(jì)劃·······················

13、·······················4第二章概要設(shè)計(jì)·························

14、3;····················52.1總體設(shè)計(jì)····························&#

15、183;·················52.2數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))·····························6

16、2.3接口設(shè)計(jì)··············································62.4運(yùn)行界面設(shè)計(jì)·&

17、#183;·····································7第三章詳細(xì)設(shè)計(jì)···········

18、;···································83.1輸入模塊設(shè)計(jì)·············&

19、#183;·························83.2輸出模塊設(shè)計(jì)······················

20、83;················103.3查找模塊設(shè)計(jì)·······························

21、3;·······113.4排序模塊設(shè)計(jì)·······································143.5保存及讀取模

22、塊設(shè)計(jì)······································16第四章測試分析··········

23、···································184.1測試程序執(zhí)行情況·············

24、;··························184.2出現(xiàn)地問題和解決地方法·····················&

25、#183;··········21第五章課程設(shè)計(jì)總結(jié)·····································&#

26、183;·22附錄:程序代碼 ··············································

27、3;·22 參考文獻(xiàn) ···············································&#

28、183;·······47第一章需求分析1.1引言此報(bào)告完整呈現(xiàn)了我開發(fā)“學(xué)生成績管理系統(tǒng)”地整個(gè)軟件過程,包括需求分析階段,軟件設(shè)計(jì)與實(shí)現(xiàn)階段和測試階段.在需求分析階段,明確所要開發(fā)地軟件應(yīng)具有地功能、性能與界面,使系統(tǒng)使用人員及系統(tǒng)開發(fā)人員能清楚地了解用戶地需求,并在此基礎(chǔ)上進(jìn)一步提出概要設(shè)計(jì)說明書和完成后續(xù)設(shè)計(jì)與開發(fā)工作.在軟件設(shè)計(jì)與實(shí)現(xiàn)階段,進(jìn)一步細(xì)化軟件設(shè)計(jì)階段得出地軟件總體概貌,把它加工成在程序細(xì)節(jié)上非常接近于源程序地軟件表示,然后著手于實(shí)踐.最后在測試階段檢驗(yàn)了我們地軟件地實(shí)用性,發(fā)現(xiàn)了許多不足.這個(gè)報(bào)告即是對

29、最后軟件地總體描述1.2任務(wù)概述學(xué)生成績管理系統(tǒng):包括以下功能:從鍵盤輸入包括學(xué)號、姓名、各門課程成績(不少于5 門 ),并將其保存在磁盤文件里打開文件后,計(jì)算每個(gè)人地總分和平均分,排序并保存具有單項(xiàng)查詢或多項(xiàng)查詢地功能(即按照給定地關(guān)鍵字,如姓名找出滿足條件地紀(jì)錄)具有插入、刪除和修改功能具有輸出文件數(shù)據(jù)信息地功能1.3數(shù)據(jù)描述數(shù)據(jù)是關(guān)于學(xué)生地資料:包括學(xué)號、姓名、 5 門功課地成績、總分、平均分.1.4功能需求為實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),該程序有以下功能:1.輸入學(xué)生成績 .以插入節(jié)點(diǎn)地形式將輸入地學(xué)生資料按總分降序插入鏈表中.2. 刪除學(xué)生成績 .用學(xué)號進(jìn)行查找,查找到后直接刪除.3. 查詢

30、學(xué)生成績 .三種查找方式, 1.姓名 2.學(xué)號 3.分?jǐn)?shù) .1.2. 為精確查找, 3 為范圍查找,輸入成績后,查找出所有高于該成績地學(xué)生并輸出.4.修改學(xué)生成績 .按學(xué)號查找學(xué)生,查找后可以修改學(xué)生地所有信息,包括學(xué)號.修改成績后自動對總分、平均分更新.5.排序?qū)W生成績 .排序?qū)W生成績有三種排序方案:1.學(xué)號升序 .2.總分升序 .3.總分降序6. 保存學(xué)生成績 .將學(xué)生成績保存到 student 文件內(nèi),以便下次運(yùn)行程序時(shí)讀入數(shù)據(jù).7. 科目設(shè)置 .對五門科目地名稱進(jìn)行設(shè)置 .8. 程序密碼設(shè)置 .程序首次運(yùn)行時(shí),設(shè)置密碼 .密碼保存在 mima.txt 文件內(nèi) .以后每次運(yùn)行程序都需要輸

31、入密碼 .9.程序密碼修改 .在進(jìn)入程序主界面后,可以對程序密碼進(jìn)行修改.修改密碼會覆蓋原有地 mima.txt ,將新地密碼保存在該文件內(nèi) .10.程序字體顏色 .為了程序地美觀性,在主菜單內(nèi)設(shè)置了顏色功能.可以修改程序地顏色 .有 9 種顏色可供選擇 .1.5性能需求本程序采用動態(tài)內(nèi)存申請地方式,儲存學(xué)生成績資料,盡可能地節(jié)省了所占內(nèi)存空間,并且在程序結(jié)束時(shí)釋放所有內(nèi)存.1.6運(yùn)行需求在輸入學(xué)號是學(xué)號數(shù)值大小不大于長整型地?cái)?shù)值范圍.姓名不超過5 個(gè)中文字符、 11 個(gè)英文字符 .學(xué)生成績不超過宏定義地maxscore 100 不小于 minscore 0.本程序在運(yùn)行時(shí),要求有studen

32、t 文件儲存學(xué)生資料,mima.txt 文件儲存程序密碼,kemu.txt 文件儲存科目名稱.在文件不存在時(shí),程序會自行創(chuàng)建這些文件以供使用.1.7任務(wù)計(jì)劃設(shè)計(jì)一個(gè)學(xué)生成績管理系統(tǒng),來管理學(xué)生成績.包括以下功能:從鍵盤輸入包括學(xué)號、姓名、各門課程成績(不少于5 門 ),并將其保存在磁盤文件里打開文件后,計(jì)算每個(gè)人地總分和平均分,排序并保存具有單項(xiàng)查詢或多項(xiàng)查詢地功能(即按照給定地關(guān)鍵字地紀(jì)錄)具有插入、刪除和修改功能,如姓名找出滿足條件具有輸出文件數(shù)據(jù)信息地功能第二章 概要設(shè)計(jì)2.1總體設(shè)計(jì)閃爍歡迎語錯(cuò)三次密碼輸入結(jié)束程序正確從文件倒入數(shù)據(jù)主菜單0.1.2.3.4.5.6.7.8.9.10.1

33、1.結(jié)學(xué)學(xué)查修顯統(tǒng)排程科學(xué)字束生生詢改示計(jì)序序目生體程資資學(xué)學(xué)學(xué)學(xué)學(xué)密設(shè)資顏序料料生生生生生碼置料色輸刪資資資資資修保設(shè)入除料料料料料改存置2.2數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))typedef struct studentlong xuehao 。char name12 。int chengjiN 。int zongfen 。float pingjun 。struct student*next 。 NODE 。2.3接口設(shè)計(jì)void huanyingyu() 。/LED 燈閃爍歡迎語void mytime() 。/輸出問候語句 +時(shí)間void mima(char mi,char mi1) 。 /

34、密碼函數(shù)void caidan() 。/輸出主菜單NODE* daoru (NODE *l,char kemu 20)。 /已存在信息導(dǎo)入void jieshu(NODE* l) 。/ 模塊 0 結(jié)束程序NODE*InsertNode(NODE *head,charkemu 20,int count)。 /模塊 1 插入學(xué)生資料(總分排序)NODE* DeleteNode(NODE* head) 。/模塊 2 刪除學(xué)生資料void FIND (NODE *head,char kemu N20 )。 /模塊 3 查詢學(xué)生資料void xiugai(NODE *head,char kemu N20

35、 )。 /模塊 4 修改學(xué)生資料void DisplyNode(NODE *head,char kemu 20) 。/模塊 5 顯示學(xué)生資料void Tongji(NODE* l,char kemu20) 。/模塊 6統(tǒng)計(jì)學(xué)生資料NODE* paixv(NODE *head)。/ 模塊 7 排列學(xué)生資料void mimaxiugai(char* mi1)。/模塊 8密碼修改void kemushezhi(char kemu20,int k) 。 / 模塊 9 科目設(shè)置void Save(NODE* l) 。/ 模塊 10學(xué)生資料保存void yanse() 。/ 模塊 11 顏色設(shè)置2.4運(yùn)行

36、界面設(shè)計(jì)第二章詳細(xì)設(shè)計(jì)3.1輸入模塊設(shè)計(jì)1. 流程圖若學(xué)號為02.模塊代碼:/* 函數(shù)功能:菜單功能申請內(nèi)存,建立節(jié)點(diǎn)輸入學(xué)號是學(xué)號是否雷同否繼續(xù)輸入其他信息求總分、平均分將該節(jié)點(diǎn)插入鏈表返回主菜單1 輸入學(xué)生信息以總分降序插入鏈表*/NODE *InsertNode(NODE *head,char kemu 20,int count)int j,i 。int sum,xuehao 。NODE *pr = head->next, *p = head, *temp = NULL,*q = head->next。p = (NODE *)malloc(sizeof(NODE)。 /* 讓

37、 p 指向待插入節(jié)點(diǎn)*/if (p = NULL)/* 若為新建節(jié)點(diǎn)申請內(nèi)存失敗,則退出程序*/printf("No enough memory!n")。exit(0) 。p->next = NULL 。 /* 為待插入節(jié)點(diǎn)地指針域賦值為空指針 */ printf(" 請輸入第 %d 位學(xué)生資料: ",count) 。printf(" 請輸入學(xué)號:(輸入 0 返回 )") 。scanf("%ld",&p->xuehao)。xuehao=p->xuehao 。if(p->xuehao=

38、0)free(p) 。return head。elsewhile (xuehao != q->xuehao && q->next != NULL)/*未找到且未到表尾*/q = q->next 。if (xuehao = q->xuehao)printf(" 您輸入地學(xué)好對應(yīng)學(xué)生信息已存在,請檢查是否錯(cuò)誤后重新輸入!free(p) 。return head。n") 。printf(" 請輸入姓名:") 。scanf("%s",p->name) 。for(j=0。 j<N 。j+)w:

39、printf(" 請輸入 %s 地 %s 成績: ",p->name,kemuj)scanf("%d",&p->chengjij)。if(p->chengjij>maxscore|p->chengjij<minscore)。printf(" 輸入成績超出有效范圍,請重新輸入!goto w 。n") 。sum = 0 。for(i=0 。 i<N 。i+)sum+=(*p).chengjii。p->zongfen = sum 。p->pingjun= (float)sum/N

40、。system("pause")。if (head = NULL)/*若原鏈表為空表*/head = p。/* 待插入節(jié)點(diǎn)作為頭節(jié)點(diǎn)*/else/* 若未找到待插入節(jié)點(diǎn)地位置且未到表尾,則繼續(xù)找 while (pr->zongfen > p->zongfen && pr->next != NULL) */temp = pr 。/* 在 temp 中保存當(dāng)前節(jié)點(diǎn)地指針pr = pr->next 。 /* pr 指向當(dāng)前節(jié)點(diǎn)地下一節(jié)點(diǎn)/printf(" 程序運(yùn)行到此") 。if (pr->zongfen &

41、lt;= p->zongfen)*/*/if (pr = head->next)/*若在頭節(jié)點(diǎn)前插入新節(jié)點(diǎn)*/p->next = head->next 。 /* 將新節(jié)點(diǎn)地指針域指向原鏈表地頭節(jié)點(diǎn)*/head->next= p 。/* 讓 head 指向新節(jié)點(diǎn)*/else/*若在鏈表中間插入新節(jié)點(diǎn)*/pr = temp 。p->next = pr->nextpr->next = p 。 /* 將新節(jié)點(diǎn)地指針域指向下一節(jié)點(diǎn)/* 讓前一節(jié)點(diǎn)地指針域指向新節(jié)點(diǎn)*/*/else/* 若在表尾插入新節(jié)點(diǎn)*/pr->next = p 。 /* 讓末節(jié)點(diǎn)

42、地指針域指向新節(jié)點(diǎn)*/printf("學(xué)生資料添加成功!n") 。ziliao = 1 。return head。/* 返回插入新節(jié)點(diǎn)后地鏈表頭指針head 地值 */3.2輸出模塊設(shè)計(jì)1.流程圖傳入鏈表頭指針是是否為空鏈表否是是否達(dá)到表尾否輸出返回主菜單2.模塊代碼/*函數(shù)地功能:菜單更能 5顯示學(xué)生資料 */void DisplyNode(NODE *head,char kemu N20 )NODE *p = head->next 。intj = 1 。printf("學(xué) 號姓 名 %8s%8s%8s%8s%8s總 分平 均 分編 號n",ke

43、mu0,kemu1,kemu2,kemu3,kemu4)。while (p != NULL)/* 若不是表尾,則循環(huán)打印*/printf("%-13ld%-8s%-8d%-8d%-8d%-8d%-6d%-6.0d%-6.1f %-3dn",p->xuehao, p->name,p->chengji0,p->chengji1,p->chengji2,p->chengji3,p->chengji4,p->zongfen,p->pingjun,j)p = p->next 。/*j+ 。 /* 打印第 j 個(gè)節(jié)點(diǎn)地?cái)?shù)據(jù) *

44、/ 讓 p 指向下一個(gè)節(jié)點(diǎn) */3.3查找模塊設(shè)計(jì)1. 流程圖1.學(xué)號查找 2.姓名查找 3.分?jǐn)?shù)查找123學(xué)號是否相等姓名是否相同分?jǐn)?shù)是否大于是否到表尾是否到表尾否否否查詢分?jǐn)?shù)進(jìn)入下一進(jìn)入下一是個(gè)節(jié)點(diǎn)是個(gè)節(jié)點(diǎn)是輸出2.模塊代碼/*函數(shù)地功能:菜單功能3 查詢學(xué)生資料*/void FIND (NODE *head,char kemu N20 )NODE *p = head->next 。intj = 1,k = 1,c=0 。long xuehao 。char name20 。char c11 。int zongfen 。printf(" 請輸出查找方式:n1.學(xué)號查找 n2.

45、姓名查找 n3.總分查找 n=>") 。c10 = getche() 。c = atoi(c1) 。printf("n") 。if(c=1)printf(" 請輸入學(xué)號:") 。scanf("%ld",&xuehao) 。while (p != NULL)/*若不是表尾,則循環(huán)打印*/if(xuehao = p->xuehao)if(k)printf("學(xué) 號n",kemu0,kemu1,kemu2,kemu3,kemu4)姓 名。%8s%8s%8s%8s%8s總 分平 均 分prin

46、tf("%-13ld%-8s%-8d%-8d%-8d%-8d%-6d%-6.0d%-6.1f n",p->xuehao, p->name,p->chengji0,p->chengji1,p->chengji2,p->chengji3,p->chengji4,p->zongfen,p->pingjun) 。 /* 打印第 j 個(gè)節(jié)點(diǎn)地?cái)?shù)據(jù)*/k=0 。p = p->next 。/* 讓 p 指向下一個(gè)節(jié)點(diǎn)*/if(k=1)printf(" 抱歉,您查找地信息不存在!n") 。system(&quo

47、t;pause") 。else if(c=2)printf(" 請輸入姓名:") 。scanf("%s",name) 。while (p != NULL)/*若不是表尾,則循環(huán)打印*/if(strcmp(name,p->name) = 0)if(k)printf("學(xué) 號n",kemu0,kemu1,kemu2,kemu3,kemu4)姓 名。%8s%8s%8s%8s%8s總 分平 均 分printf("%-13ld%-8s%-8d%-8d%-8d%-8d%-6d%-6.0d%-6.1f n",p-

48、>xuehao,p->name,p->chengji0,p->chengji1,p->chengji2,p->chengji3,p->chengji4,p->zongfen,p->pingjun) 。 /* 打印第 j 個(gè)節(jié)點(diǎn)地?cái)?shù)據(jù)*/k=0 。p = p->next 。/* 讓 p 指向下一個(gè)節(jié)點(diǎn)*/if(k=1)printf(" 抱歉,您查找地信息不存在!n") 。system("pause") 。else if(c=3)printf(" 請輸入要查找多少分以上地學(xué)生:"

49、) 。scanf("%d",&zongfen)。while (p != NULL)/*若不是表尾,則循環(huán)打印*/if(zongfen <=p->zongfen)if(k)printf("學(xué) 號n",kemu0,kemu1,kemu2,kemu3,kemu4)姓 名。%8s%8s%8s%8s%8s總 分平 均 分printf("%-13ld%-8s%-8d%-8d%-8d%-8d%-6d%-6.0d%-6.1f n",p->xuehao, p->name,p->chengji0,p->chen

50、gji1,p->chengji2,p->chengji3,p->chengji4,p->zongfen,p->pingjun) 。 /* 打印第 j 個(gè)節(jié)點(diǎn)地?cái)?shù)據(jù)*/k=0 。p = p->next 。/* 讓 p 指向下一個(gè)節(jié)點(diǎn)*/if(k=1)printf(" 抱歉,您查找地信息不存在!n") 。system("pause") 。elseprintf(" 輸入有誤,請重新輸入!n") 。system("pause") 。caidan()。printf("n"

51、;) 。FIND (head,kemu) 。3.4排序模塊設(shè)計(jì)1. 流程圖1.升序排列2.降序排列1.按學(xué)號降序排列2.按總分降序排列1.按學(xué)號升序排序2.按總分升序排序返回主函數(shù)調(diào)用顯示資料函數(shù)2.模塊代碼/*函數(shù)地功能:菜單功能7.1 學(xué)號升序排列學(xué)生*/NODE* paixv(NODE* head)NODE* r = head。NODE* SL = NULL。NODE* t,*cp,*ap。char xv1。int xv1 。printf(" 請選擇排序方式:n1.學(xué)號升序排列tt2. 總分升序排列n3.總分降序排列n") 。xv0 = getche() 。xv1 =

52、 atoi(xv) 。while (r != NULL)t = r->next 。cp = SL 。ap = NULL 。while (cp != NULL)if(xv1=1)if(r->xuehao < cp->xuehao)break。elseap = cp。cp=cp->next 。else if(xv1=2)if(r->zongfen < cp->zongfen)break。elseap = cp。cp=cp->next 。if (ap = NULL)r->next = SL 。SL = r 。elser->next =

53、 cp 。ap->next = r 。r = t 。printf(" 排序完成! n") 。return SL 。3.5保存及讀取模塊設(shè)計(jì)1. 流程圖把本節(jié)點(diǎn)內(nèi)容寫入文件釋放內(nèi)存是否到表尾是返回主菜單否2.模塊代碼/*函數(shù)功能:菜單功能10 對新錄入地學(xué)生信息進(jìn)行保存*/void Save(NODE* l)FILE *fp 。NODE *p 。int flag=1,count=0 。fp=fopen("student","w")。if(fp=NULL)printf("n=>提示 :重新打開文件時(shí)發(fā)生錯(cuò)誤!n&qu

54、ot;) 。exit(1) 。p=l->next 。while(p!=NULL) fprintf(fp,"%ld %s %d %d %d %d %d %d %fn",p->xuehao,p->name,p->chengji0,p->chengji1,p->chengji2,p->chengji3,p->chengji4, p->zongfen, p->pingjun) 。 p=p->next 。 count+ 。 if(flag)printf("n=>提示 :文件保存成功.(有%d 條記錄已經(jīng)

55、保存.)n",count) 。ziliao = 0 。 system("pause")。 fclose(fp) 。第三章測試分析4.1測試程序執(zhí)行情況1. 密碼測試先輸入錯(cuò)誤密碼,在輸入正確密碼.2. 輸入學(xué)生資料測試3. 查詢學(xué)生成績測試4.5.6.7.修改學(xué)生測試顯示學(xué)生資料測試統(tǒng)計(jì)學(xué)生資料測試排序測試8.9.密碼修改測試科目修改測試10. 顏色更換測試4.2出現(xiàn)地問題和解決地方法1.文件數(shù)據(jù)導(dǎo)入錯(cuò)誤,導(dǎo)入后無法正確顯示解決方法:沒有返回頭指針,對daoru();函數(shù)添加了頭指針地返回.2.程序密碼第一次輸入錯(cuò)誤后勿論之后輸入地密碼正確與否,都會提示密碼錯(cuò)誤解

56、決方法:第一次錄入密碼后沒有對mi1 數(shù)組進(jìn)行清空,第二次輸入地密碼會不完全覆蓋第一次輸入地密碼,在每一次判斷密碼是否正確后對mi1 進(jìn)行清空,這樣之后錄入地密碼正確 .3.排序結(jié)果不正確解決方法:排序時(shí)節(jié)點(diǎn)地交換出現(xiàn)問題,導(dǎo)致排序后地鏈表斷點(diǎn).更正交換代碼后問題解決.4.程序運(yùn)行時(shí)如果把數(shù)字輸入成字母,程序會崩潰解決方法:對輸入地?cái)?shù)據(jù)進(jìn)行判斷,如果不是數(shù)字提示輸入錯(cuò)誤,重新錄入.5. 在修改信息函數(shù)中,修改學(xué)好,成績這些用數(shù)組定義地量時(shí)沒有問題可以正確修改,當(dāng)修改庫存數(shù)量和價(jià)格時(shí)會出現(xiàn)程序出錯(cuò)現(xiàn)象,而編譯代碼時(shí)并不提示有錯(cuò),最后在仔細(xì)檢查下終于發(fā)現(xiàn)是這 2 個(gè)地方忘了加取地址 “&”

57、,修改后程序可正確運(yùn)6.不存在文件時(shí)創(chuàng)建新文件后沒有對頭節(jié)點(diǎn)進(jìn)行返回,導(dǎo)致其他功能不能正常運(yùn)行.將頭節(jié)點(diǎn)返回.第四章課程設(shè)計(jì)總結(jié)該課程設(shè)計(jì)是進(jìn)入大學(xué)以來地第一個(gè)課設(shè),通過這次地課設(shè),我對本學(xué)期所學(xué)內(nèi)容有了更深層次地了解與認(rèn)識,同時(shí)我感覺到了作為一個(gè)程序員地幸苦與智慧.就我本人而言,本次課程設(shè)計(jì)編寫將盡兩個(gè)月.這次課程設(shè)計(jì),我明白了對于編寫程序,解題地思路尤為重要. 在編寫程序之前,如果沒有比較清晰地思路,根本不可能編出好地程序. 就算馬馬虎虎地編出來,程序地邏輯性、健壯性、完善性、合理性也不會很強(qiáng). 在編程之前,我們應(yīng)反復(fù)研究題目要求,對題目涉及地情況進(jìn)行比較充分地分析,以便編寫出更加符合題意

58、地程序;其次要充分考慮各種臨界情況,對一些錯(cuò)誤地輸入進(jìn)行處理. 因此在我們編程序之前一定要做好充分地準(zhǔn)備,首先要理清自己地思路,然后再將思路分劃成幾個(gè)模塊,逐塊地寫好算法,最后再將所有地模塊有機(jī)地聯(lián)系起來,組成一個(gè)完整地程序. 在成功通過編譯地情況下,對程序運(yùn)行地結(jié)果進(jìn)行系統(tǒng)地分析,檢驗(yàn)其正確性,如果有錯(cuò)誤,應(yīng)立即去分析源程序地邏輯錯(cuò)誤,直到得到正確地結(jié)果 .附錄:程序代碼#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>#include <window

59、s.h>#include <conio.h>#define N 5#define maxscore 100#define minscore 0int ziliao=0 。typedef struct studentlong xuehao 。char name12 。int chengjiN 。int zongfen 。float pingjun 。struct student*next 。 NODE 。void huanyingyu() 。/LED 燈閃爍歡迎語void mytime() 。/ 輸出問候語句 +時(shí)間void mima(char mi,char mi1) 。/

60、密碼函數(shù)void caidan() 。/ 輸出主菜單NODE* daoru (NODE *l,char kemu 20)。/已存在信息導(dǎo)入void jieshu(NODE* l) 。/模塊 0結(jié)束程序NODE* InsertNode(NODE *head,charkemu 20,intcount)。 /模塊 1 插入學(xué)生資料(總分排序)NODE* DeleteNode(NODE* head) 。/ 模塊 2 刪除學(xué)生資料void FIND (NODE *head,char kemu N20 )。/模塊 3 查詢學(xué)生資料void xiugai(NODE *head,char kemu N20 )。/模塊 4 修改學(xué)生資料void DisplyNode(NODE *head,char kemu 20)。/ 模塊

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論