版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C語言課程設(shè)計</b></p><p><b> 報告</b></p><p> 題目 : 學(xué)生成績管理系統(tǒng) </p><p> 姓名 : </p><p> 學(xué)號 :
2、 </p><p> 班級 : </p><p> 專業(yè) : </p><p> 學(xué)院 : </p><p> 指導(dǎo)教師 : </p><p> 2008年 12 月
3、25 日</p><p><b> 一:題目與要求</b></p><p> (一)、 課程設(shè)計題目</p><p> 《學(xué)生成績管理系統(tǒng)》的設(shè)計與實現(xiàn)</p><p> (二)、 課程設(shè)計目的</p><p> 1、 進一步掌握和利用C語言進行程設(shè)計的能力;</p>&
4、lt;p> 2、 進一步理解和運用結(jié)構(gòu)化程設(shè)計的思想和方法;</p><p> 3、 初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;</p><p> 4、 學(xué)會調(diào)試一個較長程序的基本方法;</p><p> 5、 學(xué)會利用流程圖或N-S圖表示算法;</p><p> 6、 掌握書寫程設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計報告)
5、;</p><p><b> (三)、 設(shè)計內(nèi)容</b></p><p> 1、每一條記錄包括一個學(xué)生的學(xué)號、姓名、3門課成績、平均成績。</p><p> 2、輸入功能:可以一次完成若干條記錄的輸入。</p><p> 3、顯示功能:完成全部學(xué)生記錄的顯示。</p><p> 4、查找
6、功能:完成按姓名查找學(xué)生記錄,并顯示。</p><p> 5、排序功能:按學(xué)生平均成績進行排序。</p><p> 6、插入功能:按平均成績高低插入一條學(xué)生記錄。</p><p> 7、將學(xué)生記錄存在文件score中。</p><p> 8、應(yīng)提供一個界面來調(diào)用各個功能,調(diào)用界面和各個功能的操作界面應(yīng)盡可能清晰美觀!</p>
7、;<p><b> (四)、 設(shè)計要求</b></p><p> 1、 用C語言實現(xiàn)系統(tǒng);</p><p> 2、 利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計;</p><p> 3、 系統(tǒng)具有增加,查詢,插入,排序等基本功能;</p><p> 4、 系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn)
8、;</p><p> 5、 完成設(shè)計任務(wù)并書寫課程設(shè)計報告。</p><p> 6、 將學(xué)生成績信息存在文件中。</p><p><b> (五)、提交材料</b></p><p><b> 1、課程設(shè)計報告</b></p><p> 1)課程設(shè)計題目、內(nèi)容、要
9、求。</p><p> 2)總體設(shè)計(包含幾大功能模塊)。</p><p> 3)詳細(xì)設(shè)計(各功能模塊的具體實現(xiàn)算法——流程圖)</p><p> 4)數(shù)據(jù)結(jié)構(gòu)設(shè)計描述,各模塊(函數(shù))的功能介紹,參數(shù)說明等。</p><p> 5)調(diào)試分析(包含各模塊的測試用例,及測試結(jié)果。)</p><p> 6)總結(jié)(課
10、程設(shè)計完成了哪些功能,還有哪些地方需要改進,及通過一周的課程設(shè)計有何收獲,調(diào)試程序的體會等)</p><p> 二:程序數(shù)據(jù)結(jié)構(gòu)說明:</p><p> ?。保湵淼慕⒛K(一次性輸入,輸入個數(shù)由用戶決定,最大可容納80記錄,最大數(shù)可以在源程序中改) 。</p><p> ?。玻湵磔敵瞿K。(在屏幕上顯示當(dāng)前鏈表的數(shù)據(jù))。</p><p&g
11、t;<b> ?。常薷哪K。</b></p><p><b> ?。矗畡h除模塊。</b></p><p><b> ?。担迦肽K。</b></p><p> ?。叮檎夷K(按姓名查找)。</p><p><b> ?。罚迦肽K。</b></p
12、><p> ?。福判蚰K(對記錄進行排序,按平均成績排序)。</p><p><b> 9.清屏。</b></p><p> 10.?dāng)?shù)據(jù)結(jié)構(gòu)是這樣的:學(xué)號只能由數(shù)字字符組成,最大可以11個字符;姓名由字符組成,最大可以20個字符;三門科目分?jǐn)?shù)都是整型;平均成績是實型。</p><p> 11.程序中定義了學(xué)生的容量為
13、50個。容量可以在源程序宏定義中改,本程序宏定義#define N 50</p><p> 三:各個模塊的流程圖</p><p><b> 主菜單函數(shù)</b></p><p><b> 主介面的流程圖如下</b></p><p> 說明:從該流程圖中我們可以看出每個模塊結(jié)構(gòu)所對應(yīng)的功能,從而
14、能夠清楚的了解此程序的結(jié)構(gòu)網(wǎng)絡(luò),只需把每個模塊函數(shù)寫好存放在對應(yīng)的模塊即可,這能夠大大的提高程序的可讀性。</p><p> ?。ㄒ唬?、鏈表建立模塊流程圖</p><p> 說明:在此建立一個鏈表用于存放學(xué)生信息的結(jié)構(gòu)體。</p><p> ?。ǘ?、鏈表輸出模塊流程圖</p><p> 說明:鏈表輸出是對學(xué)生信息輸出的函數(shù)根據(jù)指針P所指
15、向的結(jié)點而輸出對應(yīng)的學(xué)生個人數(shù)據(jù)信息。</p><p> ?。ㄈ?、修改模塊流程圖</p><p> 說明:調(diào)用w1=modify_data(i,n)修改函數(shù)時,若返回值為1則表示用戶在修改函數(shù)里面確認(rèn)了這次修改,其中i表示第i個記錄(要修改的),n表示總共有n個記錄,n以便這修改函數(shù)在調(diào)用輸入函數(shù)時用;若返回值不為1則不保存這次修改,但保存這次之前的修改,這由w2來控制,w2=1則表示
16、有過用戶修改確認(rèn)史。</p><p> (四)、刪除模塊流程圖</p><p> 說明:若在讓用戶選擇操作時選擇了"3).直接退出",則不保存所有刪除過的記錄。這里不同于修改模塊。stu[k].ave=0;作刪除標(biāo)記,保存時則此記錄不保存</p><p> (五)、插入模塊流程圖</p><p> (六)、查找模塊流程圖</p&
17、gt;<p> 說明:這模塊是按姓名查找的,找到以后,增加了對它刪除和修改功能。而刪除和修改模塊都有瀏覽(記錄信息不清楚的用戶進行),或許刪除和修改模塊顯得有點重復(fù)。</p><p> (七)、排序模塊流程圖</p><p> (八)、保存模塊流程圖</p><p> 說明:形參n是控制保存的個數(shù).stu[k].ave=0;作刪除標(biāo)記,保存時則
18、不保存此記錄</p><p> 五:測試心得體會與分析</p><p> 在本次設(shè)計中學(xué)到了不少知識,對C語言的理解加深了,也加強了動手能力。其中知道了清屏函數(shù)clrscr();;按任意鍵可以插入getch();;getchar();的小技巧――當(dāng)輸入整型時可以接收過濾錯誤輸入(如字符輸入),對這個小技巧作了如下的測試:一開始我的主菜單模塊里有多分支選擇,并且對用戶選擇(輸入整型數(shù)
19、字)作判斷,若超出范圍則提示用戶且讓用戶重新選擇。但測試中發(fā)現(xiàn)當(dāng)輸入字符時(如a)就出現(xiàn)死循環(huán):關(guān)鍵部分源代碼如下:do{printf(“Choice your number(1-8): [ ]\b\b”);scanf(“%d”,&n);if(n<1||n>9) {printf(“\nChoice erroe! please again.”); w1=1;getchar(); }else
20、 w1=0;}while (w1==1);最后我測試發(fā)現(xiàn)加了getchar();就可以解決。</p><p> 自定義函數(shù)中最讓我感到得意的是加載函數(shù)load();它既精簡又強大,每當(dāng)要讀文本時用這個函數(shù)既可讀入數(shù)據(jù),又可以統(tǒng)計記錄個數(shù)。它的返回值就是記錄個數(shù)。除全新輸入模塊沒有到,其余的都要調(diào)用它,而且?guī)缀醵加玫剿姆祷刂?。這一函數(shù)也體現(xiàn)出結(jié)構(gòu)化設(shè)計。它的源代碼如下:load(){FILE *fp
21、; int i; if((fp=fopen(“score..txt”,”rb”))==NULL) {printf(“\nCannot open file”); return NULL; } for(i=0;!feof(fp);i++) fread(&stu[i],sizeof(struct student),1,fp); fclose(fp); return(i-1);}原先我不會使用fe
22、of(fp); 緩沖文件系統(tǒng)函數(shù),就用記錄容量值N=50來控制for語句的結(jié)束。寫了源程序后總是覺得不好,因為容量是相對來說是一個常量,而且顯示記錄時也不好控制語句的結(jié)束,有時會出現(xiàn)沒有的記錄也顯示出來(即顯示為0)。這時心里總是不安,我就翻開書看看...,??!終于被我發(fā)現(xiàn)</p><p> 我覺得這次C語言課程設(shè)計還算成功,這程序還比較完善,我對它增加了修改模塊、刪除模塊,而且需要用戶的確認(rèn)才能修改或刪除。增
23、加了對學(xué)號輸入時進行分析判斷――只能輸入0-9的字符,而且不允許學(xué)號雷同。一些重要部分的選擇作了判斷(如主菜單里面的選擇,而且加了getchar();來接收錯誤輸入),在確保程序完善些時避免死循環(huán)。其它次要的選擇(沒有必要的)則沒有加判斷,如果輸入就會自動返回。</p><p> 4. 本程序有待改進的或不足有:保存函數(shù)不能同時對全新輸入模塊與追加模塊調(diào)用,本程序里它沒有被追加模塊調(diào)用。由于本人還不熟悉用
24、文件指針,所以不能對單個記錄保存。沒有另存為功能,也沒有打開其它位置文件(同類型)的功能。我發(fā)現(xiàn)在結(jié)構(gòu)體里的score[3]不能定義為實型,否則編譯正確運行錯誤(當(dāng)輸入科目分?jǐn)?shù)時,直接跳過不給輸入,并提示錯誤。如下由于時間關(guān)系,沒有增加按其它項目的查找(如按科目1,科目2等等)。這里只有按姓名查找。</p><p><b> 各模塊的測試。</b></p><p>
25、 對全新輸入學(xué)生記錄:運行程序進入了主菜單――>選擇(輸入)1――>輸入用戶待輸入記錄的個數(shù)――>然后逐個輸入記錄――>提示成功詢問是瀏覽還是返回,最后對每個函數(shù)調(diào)用,觀察輸出顯示是否正確。</p><p><b> 六:總結(jié)</b></p><p> 本次課程設(shè)計主要是考察我們對一些基本函數(shù)的認(rèn)識以及對鏈表的處理。。在設(shè)計的過程中遇到問
26、題,可以說得是困難重重,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體,指針,鏈表……通過這次課程設(shè)計之后,我們把前面所學(xué)過的知識又重新溫故了一遍。</p><p> 編程是一件很枯燥很無聊的事情,但是出于完成作業(yè),得到學(xué)分的壓力,還必須強破自己堅持下去,按照老師所說的模塊化思想,分部分的進行編寫。而且編程是一件高精度、模范化
27、的事情,稍有疏乎都會影響全局,也可能因為某一處的小的錯誤而導(dǎo)致整個程序的無法運行。所以認(rèn)真仔細(xì)就是非常重要的了。開始的時候真的感覺編程是一件很無聊的事情,不過當(dāng)一個程序運行成功的時候那種喜悅是無法言語的,那種成就感是無法比擬的。又經(jīng)過幾天的努力,終于把程序完成了,盡管程序還是有很多錯誤和漏洞,不過還是很高興的。無論如何是自己的勞動成果,是自己經(jīng)過努力得到的成績,同時也是學(xué)習(xí)C語言的一次實踐作業(yè),自己進步的證明。</p>&
28、lt;p> 通過這次課程設(shè)計,使我對C語言有了更進一步的認(rèn)識和了解,要想學(xué)好它要重在實踐,要通過不斷的上機操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學(xué)習(xí)也有所改進;再有對C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐的學(xué)習(xí),我認(rèn)識到學(xué)好計算機要重視實踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以及其它的計算機方面的
29、知識都要重在實踐,所以后在學(xué)習(xí)過程中,我會更加注視實踐操作,使自己更好地學(xué)好計算機。</p><p><b> 附 錄</b></p><p> /************************************************************************</p><p> C語言 課程設(shè)計程序參考程
30、序</p><p> *************************************************************************/</p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #inclu
31、de<string.h></p><p> #include<malloc.h></p><p> #include<conio.h></p><p> #define NULL 0</p><p> #define LEN sizeof(struct student)</p><
32、;p> #define M 3 /*課程數(shù)*/</p><p> #define TC3</p><p> int n; /*學(xué)生數(shù),用全局變量表示*/</p><p> struct student</p><p><b> {</b></p><p>
33、 unsigned num; /*學(xué)號*/</p><p> char name[10]; /*姓名*/</p><p> unsigned score[M]; /*分?jǐn)?shù)*/</p><p> float aver; /*平均成績*/</p><p> struct student *
34、next;</p><p><b> };</b></p><p> /**************************************************************************</p><p> 幫助函數(shù),提示相關(guān)的操作。</p><p> **************
35、*************************************************************</p><p> void Help()</p><p><b> {</b></p><p> puts(" ***********************************************
36、**********");</p><p> puts(" * Student System Command Help *");</p><p> puts(" *********************************************************");&l
37、t;/p><p> puts(" * L = List all records *");</p><p> puts(" * D = Delete a record select by number *");</p>&
38、lt;p> puts(" * A = Append records *");</p><p> puts(" * I = Insert records *");</p><p> puts(&
39、quot; * S = Sort records *");</p><p> puts(" * H = Show this help message *");</p><p> puts(" * V = S
40、ave records to a file *");</p><p> puts(" * O = Load recors from a file *");</p><p> puts(" * C = Clear screen
41、 *");</p><p> puts(" * Q = Quit Syestem *");</p><p> puts(" **************************************
42、*******************");</p><p> puts(" * 制作人: 日期:2008.12.28 *");</p><p> puts(" *********************************************************");<
43、;/p><p><b> }</b></p><p> /**************************************************************************</p><p> 建立鏈表,即輸入學(xué)生檔案。</p><p> ***********************
44、****************************************************/struct student *CreatTable(void)</p><p><b> {</b></p><p> struct student *p1, *p2, *head;</p><p> int i, j[M];
45、 /*定義臨時變量和數(shù)組*/ </p><p> char name[10];</p><p><b> n = 0;</b></p><p> p1 = p2 = (struct student *) malloc(LEN);/*申請動態(tài)空間*/</p><p> head = NULL;<
46、/p><p> p1->aver = 0;/*初始化頭指針和平均值*/</p><p> printf("Please input the number of student:\n");</p><p> scanf("%d", &i);</p><p> p1 -> num =
47、 i;</p><p> printf("Please input the name of student:\n");</p><p> scanf("%s", name);</p><p> strcpy(p1->name, name);</p><p> for(i = 0; i &l
48、t; M; i++)</p><p><b> {</b></p><p> printf("Please input the score[%d] of student:\n", i);</p><p> scanf("%d", &j[i]);</p><p> p
49、1->score[i] = j[i];</p><p> p1->aver += j[i];</p><p><b> }</b></p><p> p1->aver /= M; /*求平均值*/</p><p> while(p1 -> num != 0)
50、 /*如果學(xué)號是0則退出建表程序*/</p><p><b> {</b></p><p><b> n++;</b></p><p> if(n == 1)</p><p> head = p1;</p><p><b> else
51、</b></p><p> p2->next = p1;</p><p><b> p2 = p1;</b></p><p> p1 = (struct student *)malloc(LEN);</p><p> p1->aver = 0;</p><p>
52、printf("Please input the number of student:\n");</p><p> scanf("%d", &p1 -> num);</p><p> printf("Please input the name of student:\n");</p><p&g
53、t; scanf("%s", name);</p><p> strcpy(p1->name, name);</p><p> for(i = 0; i < M; i++)</p><p><b> {</b></p><p> printf("Please input
54、 the score[%d] of student:\n", i);</p><p> scanf("%d", &j[i]);</p><p> p1->score[i] = j[i];</p><p> p1->aver += j[i];</p><p><b> }<
55、;/b></p><p> p1->aver /= M;</p><p><b> }</b></p><p> p2->next = NULL;</p><p> return(head);</p><p><b> }</b></p>
56、;<p> /**************************************************************************</p><p> 打印鏈表,即輸出學(xué)生檔案。</p><p> ************************************************************************
57、***/void PrintTable(struct student *head)</p><p><b> {</b></p><p> struct student *p;</p><p><b> int i;</b></p><p> printf("\nNow,These
58、 %d record are\n", n);</p><p> printf("num name ");</p><p> for(i = 0; i < M; i++)</p><p> printf("score[%d] ", i);</p><p> printf(&qu
59、ot;aver");</p><p> printf("\n-------------------------------------------------------\n");</p><p><b> p = head;</b></p><p> if(head != NULL)</p>
60、<p><b> do</b></p><p><b> {</b></p><p> printf("%-5d%-6s", p->num, p->name);</p><p> for(i = 0; i < M; i++)</p><p>
61、 printf("%-9d", p->score[i]);</p><p> printf("%-5.1f\n", p->aver);</p><p> p = p->next;</p><p><b> }</b></p><p> while(p !=
62、 NULL);</p><p><b> }</b></p><p> /**************************************************************************</p><p> 刪除鏈表中的一個元素。</p><p> ***************
63、************************************************************</p><p> struct student *DeleteTable(struct student *head, int num)</p><p><b> {</b></p><p> struct studen
64、t *p1, *p2;</p><p> p1 = head;</p><p> while((unsigned)num != p1->num && p1->next != NULL)</p><p><b> {</b></p><p><b> p2 = p1;</
65、b></p><p> p1 = p1->next;</p><p><b> }</b></p><p> if(p1->num == (unsigned)num)</p><p><b> {</b></p><p> if(p1 == hea
66、d)</p><p> head = p1 -> next;</p><p><b> else</b></p><p> p2->next = p1->next;</p><p><b> n--;</b></p><p><b> f
67、ree(p1);</b></p><p><b> }</b></p><p> return head;</p><p><b> }</b></p><p> /*******************************************************
68、*******************</p><p> 在鏈表中追加一個元素</p><p> **************************************************************************/</p><p> void AppendToTable(struct student *head)</p&
69、gt;<p><b> {</b></p><p> struct student *p, *pt;</p><p> int i, j[M];</p><p> char name[10];</p><p> pt = (struct student *)malloc(LEN);</p&g
70、t;<p> pt->aver = 0;</p><p> printf("Please input the number of student:\n");</p><p> scanf("%d", &i);</p><p> pt -> num = i;</p><
71、;p> printf("Please input the name of student:\n");</p><p> scanf("%s", name);</p><p> strcpy(pt->name, name);</p><p> for(i = 0; i < M; i++)</p&g
72、t;<p><b> {</b></p><p> printf("Please input the score[%d] of student:\n", i);</p><p> scanf("%d", &j[i]);</p><p> pt->score[i] = j
73、[i];</p><p> pt->aver += j[i];</p><p><b> }</b></p><p> pt->aver /= M;</p><p><b> p = head;</b></p><p> while(p->next
74、 != NULL)</p><p> p = p->next;</p><p> p->next = pt;</p><p> pt->next = NULL;</p><p><b> n++;</b></p><p><b> }</b><
75、;/p><p> struct student *InsertToTable(struct student *head)</p><p><b> {</b></p><p> struct student *p1, *p2, *pt;</p><p> int i, j[M];</p><p&g
76、t; char name[10];</p><p> pt = (struct student *)malloc(LEN);</p><p> pt->aver = 0;</p><p> printf("Please input the number of student:\n");</p><p> s
77、canf("%d", &i);</p><p> pt -> num = i;</p><p> printf("Please input the name of student:\n");</p><p> scanf("%s", name);</p><p>
78、 strcpy(pt->name, name);</p><p> for(i = 0; i < M; i++)</p><p><b> {</b></p><p> printf("Please input the score[%d] of student:\n", i);</p>&l
79、t;p> scanf("%d", &j[i]);</p><p> pt->score[i] = j[i];</p><p> pt->aver += j[i];</p><p><b> }</b></p><p> pt->aver /= M;</p
80、><p> p1 = head;</p><p> while((p1->num < pt->num) && (p1->next != NULL))</p><p><b> {</b></p><p><b> p2 = p1;</b></p>
81、;<p> p1 = p1->next;</p><p><b> }</b></p><p> if(p1->num > pt->num)</p><p><b> {</b></p><p> if(head == p1)</p>&
82、lt;p> head = pt;</p><p><b> else</b></p><p> p2->next = pt;</p><p> pt->next = p1;</p><p><b> }</b></p><p><b>
83、 else</b></p><p><b> {</b></p><p> p1->next = pt; </p><p> pt->next = NULL;</p><p><b> }</b></p><p><b> n++;
84、</b></p><p> return(head);</p><p><b> }</b></p><p> struct student *SortTable(struct student *head)</p><p><b> {</b></p><p
85、> struct student *ph, *p1, *p2, *pb, *pa, *pt;</p><p> ph = head; </p><p> head = pa = NULL;</p><p> while(ph != NULL)</p><p><b> {</b><
86、;/p><p> p1 = pt = ph; </p><p> while(p1->next != NULL)</p><p><b> {</b></p><p><b> p2 = p1;</b></p><p> p1 = p1->next;&l
87、t;/p><p> if(pt->aver > p1->aver)</p><p><b> {</b></p><p> pb = p2;/*pb指向最小平均值的元素前面的一個元素*/</p><p> pt = p1;/*pt指向最小平均值的元素*/</p><p>&l
88、t;b> }</b></p><p><b> }</b></p><p> if(pt == ph)</p><p><b> {</b></p><p> ph = ph->next;</p><p><b> }</b
89、></p><p><b> else</b></p><p><b> {</b></p><p> pb->next = pt->next; //從表中刪除元素</p><p><b> }</b></p><p>
90、head = pt;</p><p> pt->next = pa;</p><p><b> pa = pt;</b></p><p><b> }</b></p><p> return head;</p><p><b> }</b>
91、;</p><p> void Save(struct student *head)</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> struct student *p;</p><p><b>
92、 p = head;</b></p><p> if((fp = fopen("stulist", "wb")) == NULL)</p><p><b> {</b></p><p> printf("Cant open file\n");</p>
93、<p><b> }</b></p><p> while(p != NULL)</p><p><b> {</b></p><p> if((fwrite(p, LEN, 1, fp)) != 1)</p><p> printf("File write error
94、\n");</p><p> p = p->next;</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> void Load(struct student *hea
95、d)</p><p><b> {</b></p><p> struct student *p;</p><p><b> FILE *fp;</b></p><p><b> int i;</b></p><p><b> p =
96、 head;</b></p><p> fp = fopen("stulist", "rb");</p><p> printf("\nNow,These %d record are\n", n);</p><p> while(p != NULL)</p><p>
97、;<b> {</b></p><p> fread(p, LEN, 1, fp);</p><p> printf("%-5d%-6s", p->num, p->name);</p><p> for(i = 0; i < M; i++)</p><p> printf(
98、"%-9d", p->score[i]);</p><p> printf("%-5.1f\n", p->aver);</p><p> p = p->next;</p><p><b> }</b></p><p> fclose(fp);</p&
99、gt;<p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> struct student *stu;</p><p> unsigned num;</p><p><b&g
100、t; char key;</b></p><p> stu = CreatTable();</p><p> #ifdef TC3</p><p> clrscr(); // TC中的清屏操作要包含#include<conio.h></p><p><b> #else<
101、/b></p><p> system("cls"); //VC中的清屏操作要包含#include<stdlib.h></p><p><b> #endif</b></p><p><b> Help();</b></p><p> prin
102、tf("Plese select your want:\n");</p><p> while((key = getche()) != 'q' && key != 'Q' && key != 27)</p><p><b> {</b></p><p>
103、puts(" ");</p><p> switch(key)</p><p><b> {</b></p><p> case 'l' : case 'L' :</p><p> PrintTable(stu);</p><p><
104、;b> break;</b></p><p> case 'd' : case 'D' :</p><p> printf("Please input the number you want delete:");</p><p> scanf("%d", &nu
105、m);</p><p> stu = DeleteTable(stu, num);</p><p><b> break;</b></p><p> case 'a' : case 'A' :</p><p> AppendToTable(stu);</p><
106、p><b> break;</b></p><p> case 'i' : case 'I':</p><p> stu = InsertToTable(stu);</p><p><b> break;</b></p><p> case '
107、s' : case 'S' :</p><p> stu = SortTable(stu);</p><p> puts("Sort complished! Please use command L to list.");</p><p><b> break;</b></p>&
108、lt;p> case 'v' : case 'V' :</p><p> Save(stu);</p><p><b> break;</b></p><p> case 'o' : case 'O' :</p><p> Load(stu)
109、;</p><p><b> break;</b></p><p> case 'c' : case 'C' :</p><p> #ifdef TC3</p><p> clrscr(); // TC中的清屏操作要包含#include<conio.h&
110、gt;</p><p><b> #else</b></p><p> system("cls"); //VC中的清屏操作要包含#include<stdlib.h></p><p><b> #endif</b></p><p><b>
111、break;</b></p><p> case 'h' : case 'H' :</p><p><b> Help();</b></p><p><b> break;</b></p><p> default : puts("Err
112、or command!");</p><p><b> }</b></p><p> printf("\n The key you input is:%c ",key);</p><p><b> }</b></p><p><b> }</b&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)--c語言課程設(shè)計
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計———學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計_學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)設(shè)計
- c語言課程設(shè)計--學(xué)生成績管理
- c語言課程設(shè)計--- 學(xué)生成績管理
評論
0/150
提交評論