版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課程設(shè)計說明書(論文)</p><p> 題 目 學(xué)生信息管理系統(tǒng)設(shè)計 </p><p> 課 程 名 稱 高級語言程序設(shè)計課程設(shè)計 </p><p> 專 業(yè) 通信工程
2、 </p><p> 班 級 </p><p> 學(xué) 生 姓 名 </p><p> 學(xué) 號 </p>&l
3、t;p> 設(shè) 計 地 點(diǎn) 信息樓C207 </p><p> 指 導(dǎo) 教 師 </p><p> 設(shè)計起止時間:2013 年 12 月23 日至2013年 12 月27日 </p><p><b> 學(xué)生信息
4、管理系統(tǒng)</b></p><p><b> 摘要</b></p><p> 隨著學(xué)校的規(guī)模不斷過大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種 信息量也成倍增加。面對龐大的信息量需要有學(xué)生信息管理系統(tǒng)來提高學(xué)生管理工作的效率。通過這樣的系統(tǒng)可以做到信息的規(guī)范化管理,其基本功能為快速查詢、修改、增加、刪除等,從而減少管理方面的工作量。</p><
5、;p> 關(guān)鍵詞:學(xué)生信息管理系統(tǒng),基本功能</p><p><b> 目 錄 </b></p><p><b> 中文摘要Ⅰ</b></p><p><b> 1 題目要求1</b></p><p><b> 要求.1</b>&
6、lt;/p><p><b> 2 需求分析1</b></p><p><b> 3 總體設(shè)計1</b></p><p><b> 詳細(xì)設(shè)計2</b></p><p> 4.1主函數(shù)及流程圖2</p><p> 4.2各功能模塊設(shè)計及流程
7、圖5</p><p> 5.運(yùn)行結(jié)果(附帶抓圖)12</p><p> 6、程序調(diào)試過程14</p><p><b> 7.總結(jié)15</b></p><p><b> 參考文獻(xiàn)15</b></p><p> 附錄 源程序代碼16</p>&
8、lt;p><b> 1 題目要求</b></p><p> 1)系統(tǒng)以菜單方式工作:至少采用文本菜單界面</p><p> 2)學(xué)生信息錄入功能</p><p> 3)學(xué)生信息瀏覽功能 4)查詢、排序功能(至少一種查詢方式) 按學(xué)號查詢</p><p><b> 按姓名
9、查詢 </b></p><p> 5)學(xué)生信息的刪除、修改。</p><p> 用鏈表或結(jié)構(gòu)體數(shù)組實現(xiàn)</p><p><b> 2 需求分析</b></p><p> 根據(jù)題目要求,學(xué)生信息數(shù)據(jù)以文本文件存儲,故應(yīng)提供文件的輸入、輸出等操作;還應(yīng)提供顯示、查找、刪除、排序等操作;另外還應(yīng)提供鍵盤
10、式選擇菜單實現(xiàn)功能選擇。</p><p><b> 3 總體設(shè)計</b></p><p> 本程序分為七大模塊:新建菜單、增加菜單、刪除菜單、查詢菜單、修改菜單、顯示菜單(按學(xué)號排序顯示)以及退出菜單。主要模塊為前六個,新建菜單可以新建一整份含多個學(xué)生信息的記錄,增加菜單可以一次增加一條關(guān)于一個學(xué)生的記錄,刪除菜單可以一次刪除一條學(xué)生記錄,查詢菜單可以按學(xué)生學(xué)號
11、查詢其相關(guān)信息,修改菜單可以根據(jù)學(xué)號找到該學(xué)生記錄然后修改其某項信息,顯示菜單可以按學(xué)號順序?qū)⑺袑W(xué)生信息排序顯示。</p><p> 圖1 系統(tǒng)功能模塊</p><p><b> 4 詳細(xì)設(shè)計 </b></p><p><b> (1)主菜單函數(shù) </b></p><p> 此函數(shù)
12、功能是為提供鍵盤式選擇菜單以調(diào)用不同函數(shù)。</p><p><b> N</b></p><p><b> Y </b></p><p> 圖2 主菜單函數(shù)流程圖</p><p> int main(void)</p><p><b> {&
13、lt;/b></p><p> struct student stu[MAXLEN];</p><p><b> char c;</b></p><p> if(!load("student.txt",stu))exit(0);</p><p><b> do{</b&g
14、t;</p><p> system("cls");</p><p> puts("--------------------------------------\n");</p><p> puts("1.新建\n");</p><p> puts("2.增加\
15、n");</p><p> puts("3.刪除\n");</p><p> puts("4.查詢\n");</p><p> puts("5.修改\n");</p><p> puts("6.按學(xué)號排序顯示\n");</p>
16、<p> puts("0.退出\n");</p><p> puts("--------------------------------------\n");</p><p> puts("請輸入選項...\n");</p><p> fflush(stdin);//清除緩沖區(qū)<
17、;/p><p> c = getchar();</p><p><b> switch(c)</b></p><p><b> {</b></p><p><b> case '0':</b></p><p><b> {
18、</b></p><p> unload("student.txt",stu);</p><p><b> return 0;</b></p><p><b> }break;</b></p><p><b> case '1':&l
19、t;/b></p><p><b> {</b></p><p> creat(stu);</p><p><b> }break;</b></p><p><b> case '2':</b></p><p><b&
20、gt; {</b></p><p><b> do{</b></p><p> struct student s;</p><p> system("cls");</p><p> puts("請輸入班級 姓名 性別 學(xué)號...\n");</p>
21、<p> fflush(stdin);</p><p> scanf("%s%s%s%ld",s.clas,s.name,s.sex,&s.id);</p><p> add(stu,&s);</p><p> system("cls");</p><p> put
22、s("操作成功!\n繼續(xù)請按y,返回主菜單請按任意鍵...\n");</p><p> fflush(stdin);</p><p> }while(getch() == 'y');</p><p><b> }break;</b></p><p><b> case
23、 '3':</b></p><p><b> {</b></p><p><b> do{</b></p><p><b> long id;</b></p><p> system("cls");</p>
24、<p> puts("請輸入學(xué)號...\n");</p><p> scanf("%ld",&id);</p><p> system("cls");</p><p> if(del(stu,id))puts("操作成功!\n");</p><
25、;p> puts("繼續(xù)請按y,返回主菜單請按任意鍵...\n");</p><p> }while(getch() == 'y');</p><p><b> }break;</b></p><p><b> case '4':</b></p>
26、<p><b> {</b></p><p><b> do{</b></p><p><b> long id;</b></p><p><b> int i;</b></p><p> system("cls"
27、;);</p><p> puts("請輸入學(xué)號...\n");</p><p> scanf("%ld",&id);</p><p> system("cls");</p><p> if((i = find(stu,id)) != -1){</p>
28、<p> printf("%s%s%s%ld\n\n",stu[i].clas,stu[i].name,</p><p> stu[i].sex,stu[i].id);</p><p><b> }else{</b></p><p> puts("查無此人!\n");</p&
29、gt;<p><b> }</b></p><p> puts("繼續(xù)請按y,返回請按任意鍵...\n");</p><p> }while(getch() == 'y');</p><p><b> }break;</b></p><p>
30、<b> case '5':</b></p><p><b> {</b></p><p><b> do{</b></p><p><b> long id;</b></p><p> system("cls"
31、;);</p><p> puts("請輸入學(xué)號...\n");</p><p> scanf("%ld",&id);</p><p> if(modify(stu,id)){</p><p> system("cls");</p><p>
32、 puts("操作成功!\n");</p><p><b> }</b></p><p> puts("繼續(xù)請按y,返回主菜單請按任意鍵...\n");</p><p> }while(getch() == 'y');</p><p><b> }
33、break;</b></p><p><b> case '6':</b></p><p><b> {</b></p><p> int i = 0;</p><p> system("cls");</p><p>
34、 puts("學(xué)生名單:\n");</p><p> puts("班級姓名 性別學(xué)號\n");</p><p> sort(stu);</p><p> while(stu[i].id != END){</p><p> printf("%s%s%s%ld\n",
35、stu[i].clas,stu[i].name,</p><p> stu[i].sex,stu[i].id);</p><p><b> i++;</b></p><p><b> }</b></p><p> puts("請按任意鍵結(jié)束...\n");</p&g
36、t;<p><b> getch();</b></p><p><b> }break;</b></p><p> default:puts("輸入錯誤\n");break;</p><p><b> } </b></p><p>
37、}while(1);</p><p> unload("student.txt",stu);</p><p><b> return 0;</b></p><p><b> } </b></p><p><b> 新建菜單函數(shù)</b></p&g
38、t;<p> 此函數(shù)的功能是創(chuàng)建一整份關(guān)于多個學(xué)生的相關(guān)信息的記錄,每次新建會覆蓋之前的記錄。</p><p> 圖3 新建菜單函數(shù)流程圖</p><p> void creat(struct student *stu)</p><p><b> {</b></p><p><b>
39、int n;</b></p><p> int i = 0;</p><p> system("cls");</p><p> puts("請輸入學(xué)生人數(shù)...\n");</p><p> scanf("%ld",&n);</p><p
40、> system("cls");</p><p> printf("請輸入%d位學(xué)生的班級 姓名 性別 學(xué)號...\n\n",n);</p><p> while(i != n){</p><p> scanf("%s%s%s%ld",stu[i].clas,stu[i].name,st
41、u[i].sex,</p><p> &stu[i].id);</p><p><b> i++;</b></p><p><b> }</b></p><p> stu[i].id = END;</p><p><b> }</b>&
42、lt;/p><p><b> ?。?)增加菜單函數(shù)</b></p><p> 此函數(shù)的功能是增加一條關(guān)于一名學(xué)生信息的記錄。</p><p><b> Y </b></p><p><b> N</b></p><p><b> case
43、'2':</b></p><p><b> {</b></p><p><b> do{</b></p><p> struct student s;</p><p> system("cls");</p><p>
44、puts("請輸入班級 姓名 性別 學(xué)號...\n");</p><p> fflush(stdin);</p><p> scanf("%s%s%s%ld",s.clas,s.name,s.sex,&s.id);</p><p> add(stu,&s);</p><p> s
45、ystem("cls");</p><p> puts("操作成功!\n繼續(xù)請按y,返回主菜單請按任意鍵...\n");</p><p> fflush(stdin);</p><p> }while(getch() == 'y');</p><p> }break; (此部分
46、位于主函數(shù)中)</p><p> void add(struct student *stu,const struct student *s)</p><p><b> {</b></p><p> int i = size(stu);</p><p> stu[i] = *s;</p><p&
47、gt; stu[i + 1].id = END;</p><p> sort(stu);</p><p><b> }</b></p><p><b> ?。?)刪除菜單函數(shù)</b></p><p> 此函數(shù)的功能是刪除一條學(xué)生記錄。</p><p><b>
48、; N</b></p><p><b> Y </b></p><p> N Y </p><p> int del(struct student *stu,long id)</p><p><b> {</b&g
49、t;</p><p><b> int i,n;</b></p><p> if((i = find(stu,id)) == -1)</p><p><b> {</b></p><p> puts("查無此人...\n");</p><p>&l
50、t;b> return 0;</b></p><p><b> }</b></p><p> n = size(stu);</p><p> if(stu[n - 1].id == id)</p><p><b> {</b></p><p>
51、stu[n - 1].id = END;</p><p><b> return 1;</b></p><p><b> } </b></p><p> while(i != n - 1)</p><p><b> {</b></p><p>
52、 stu[i] = stu[i + 1];</p><p><b> i++;</b></p><p><b> }</b></p><p> stu[i].id = END;</p><p><b> return 1;</b></p><p>
53、;<b> }</b></p><p><b> ?。?)查詢菜單函數(shù)</b></p><p> 此函數(shù)的功能是按照學(xué)號查詢某個學(xué)生的信息。</p><p><b> N</b></p><p><b> Y</b></p><
54、p> N Y</p><p><b> case '4':</b></p><p><b> {</b></p><p><b> do{</b></p><p><b> lo
55、ng id;</b></p><p><b> int i;</b></p><p> system("cls");</p><p> puts("請輸入學(xué)號...\n");</p><p> scanf("%ld",&id);<
56、;/p><p> system("cls");</p><p> if((i = find(stu,id)) != -1){</p><p> printf("%s%s%s%ld\n\n",stu[i].clas,stu[i].name,</p><p> stu[i].sex,stu[i].
57、id);</p><p><b> }else{</b></p><p> puts("查無此人!\n");</p><p><b> }</b></p><p> puts("繼續(xù)請按y,返回請按任意鍵...\n");</p><
58、p> }while(getch() == 'y');</p><p> }break; (此部分位于主函數(shù)中)</p><p> int find(const struct student *stu,long id)</p><p><b> {</b></p><p> int i
59、 = 0;</p><p> while(stu[i].id != END)</p><p><b> {</b></p><p> if(stu[i].id == id)</p><p><b> {</b></p><p><b> return i;
60、</b></p><p><b> }</b></p><p><b> i++;</b></p><p><b> }</b></p><p> return -1;</p><p><b> }</b>&l
61、t;/p><p><b> ?。?)修改菜單函數(shù)</b></p><p> 此函數(shù)功能為根據(jù)學(xué)號找到該學(xué)生記錄然后修改其某項信息。</p><p><b> N</b></p><p><b> Y</b></p><p> N
62、 Y</p><p> int modify(struct student *stu,long id)</p><p><b> {</b></p><p><b> int i;</b></p><p><b> int flag;<
63、/b></p><p><b> char c;</b></p><p> if((i = find(stu,id)) == -1)</p><p><b> {</b></p><p> system("cls");</p><p> p
64、uts("查無此人...\n");</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> do{</b></p><p><b> flag = 1;</b><
65、;/p><p> system("cls");</p><p> printf("原數(shù)據(jù):\n%s %s %s %ld\n\n",stu[i].clas,stu[i].name,</p><p> stu[i].sex,stu[i].id);</p><p> puts("請輸入修改
66、的選項...\n");</p><p> puts("1.班級\n2.姓名\n3.性別\n4.學(xué)號\n");</p><p> fflush(stdin);</p><p> c = getchar();</p><p> fflush(stdin);</p><p><b&
67、gt; switch(c)</b></p><p><b> {</b></p><p><b> case '1':</b></p><p><b> {</b></p><p> char clas[30];</p>&l
68、t;p> system("cls");</p><p> puts("請輸入班級...\n");</p><p> gets(clas);</p><p> strcpy(stu[i].clas,clas);</p><p><b> }break;</b><
69、/p><p><b> case '2':</b></p><p><b> {</b></p><p> char name[20];</p><p> system("cls");</p><p> puts("請輸入姓
70、名...\n");</p><p> gets(name);</p><p> strcpy(stu[i].name,name);</p><p><b> }break;</b></p><p><b> case '3':</b></p><
71、p><b> {</b></p><p> char sex[5];</p><p> system("cls");</p><p> puts("請輸入性別...\n");</p><p> gets(sex);</p><p> str
72、cpy(stu[i].sex,sex);</p><p><b> }break;</b></p><p><b> case '4':</b></p><p><b> {</b></p><p><b> long id;</b>
73、;</p><p> system("cls");</p><p> puts("請輸入學(xué)號...\n");</p><p> scanf("%ld",&id);</p><p> stu[i].id = id;</p><p><b&g
74、t; }break;</b></p><p> default:flag = 0;break;</p><p><b> }</b></p><p> fflush(stdin);</p><p><b> if(flag)</b></p><p>&l
75、t;b> {</b></p><p> puts("\n操作成功!\n");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p
76、> puts("輸入錯誤!請重新輸入...\n");</p><p><b> }</b></p><p> }while(!flag);</p><p><b> return 1;</b></p><p><b> }</b></p
77、><p><b> (7)排序菜單函數(shù)</b></p><p> 此函數(shù)功能為按學(xué)號順序?qū)⑺袑W(xué)生信息排序顯示。</p><p> void sort(struct student *stu)</p><p><b> {</b></p><p> int i,j,n;
78、</p><p><b> int flag;</b></p><p> struct student temp;</p><p> n = size(stu);</p><p> for(i = 0;i < n - 1;i++){</p><p><b> flag =
79、 1;</b></p><p> for(j = 0;j < n - i - 1;j++){</p><p> if(stu[j].id > stu[j + 1].id){</p><p> temp = stu[j];</p><p> stu[j] = stu[j + 1];</p><
80、p> stu[j + 1] = temp;</p><p><b> flag = 0;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(flag)break;</p><p>
81、<b> }</b></p><p><b> } </b></p><p><b> 5 運(yùn)行結(jié)果</b></p><p><b> 主菜單</b></p><p><b> 新建菜單</b></p>
82、<p><b> 增加菜單</b></p><p><b> 刪除菜單</b></p><p><b> 查詢菜單</b></p><p><b> 修改菜單</b></p><p><b> 排序菜單</b>
83、</p><p><b> 6 程序調(diào)試過程</b></p><p> 本程序是在Microsoft Visual C++6.0下進(jìn)行的,采用分模塊調(diào)試的方法進(jìn)行編譯,即完成一個函數(shù)功能模塊就編譯一個功能模塊,最后再進(jìn)行整體編譯并生成可執(zhí)行文件。</p><p> 開始制作它時常常和有很多代碼不認(rèn)識,我一般都會導(dǎo)航網(wǎng)搜索查出相關(guān)代碼的意
84、思并記住他們。調(diào)試過程中曾出現(xiàn)過亂碼現(xiàn)象,通過仔細(xì)檢查原因在于輸出時定義的位數(shù)不足,我增大了位數(shù)解決了該問題。</p><p> 在運(yùn)行程序時,每個功能在開始工作前都需要清屏,否則會導(dǎo)致界面上的字符會一直往下顯示排成一長串,不美觀而且很麻煩,VC上不知道如何清屏,通過上網(wǎng)查詢后知道使用system("cls");。</p><p> 剛開始調(diào)試時系統(tǒng)經(jīng)常報出很多相同
85、或者相似的錯誤,我參考了老師發(fā)的C語言常見出錯表,一個個的改正,并利用單步調(diào)試確定自己的改正無誤后才繼續(xù)下一步操作。</p><p> 在程序編寫過程中還經(jīng)常會犯一些低級錯誤:在一些該加逗號的語句后不加逗號,不該加的語句后加上;函數(shù)未定義就使用等等。</p><p> 還有就是字符與字符串混淆:C語言中字符常量是由一對單引號括起來的單個字符;而字符串常量是用一對雙引號括起來的字符序列。
86、字符常量存放在字符型變量中,而字符串常量只能存放在字符型數(shù)組中。</p><p><b> 7 總結(jié)</b></p><p> C語言是一門不簡單的課程。原本以為做程序是很簡單的事,但是想錯了,要完完整整地把一個程序按照要求編寫出來是一件很不容易的事。從開始看題目,一個個分部的分析、寫算法、畫流程圖、設(shè)計等等,是要花費(fèi)很長時間的。</p><
87、p> 經(jīng)過五天的努力,我終于完成自己的編寫并運(yùn)行成功。通過本次課程設(shè)計,我了解掌握了模塊化程序設(shè)計方法,理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計的思路和方法。程序設(shè)計的過程就是確定問題的詳細(xì)步驟,即流程。而在程序設(shè)計中理清整個問題的流程很重要,然后再采用逐步細(xì)化的方法實現(xiàn)整個程序。一個較大的程序,一般不可能一次就設(shè)計出一個很完善的系統(tǒng)。通常要先設(shè)計出滿足基本要求的系統(tǒng),然后在測試或使用過程中再不斷完善。</p><p>
88、 這個程序做下來,我覺得做程序需要很大的耐心,要耐得住不停編譯改錯的枯燥。還得細(xì)心,有很多錯誤就是因為自己的粗心造成的,有時候一個錯可能從頭到尾看個幾遍都看不出來錯在了哪里。</p><p> 現(xiàn)在覺得我們學(xué)的東西還是有限的,一個稍微大點(diǎn)的程序就讓我們花費(fèi)了很大的精力,還是要多學(xué)點(diǎn),多實踐,才能真正掌握好C語言這門學(xué)科。在以后的日子里,要想把編程學(xué)好還是要下很大一番功夫的,自己要多多努力。</p>
89、<p><b> 參考文獻(xiàn)</b></p><p> ?。?)廖雷等.C語言程序設(shè)計基礎(chǔ)實驗教程.北京:高等教學(xué)出版社,2006</p><p> (2)譚浩強(qiáng).C程序設(shè)計.北京:清華大學(xué)出版社,2007</p><p> ?。?)譚浩強(qiáng). C程序設(shè)計題解與上機(jī)指導(dǎo)(第三版).北京:清華大學(xué)出版社,2005</p>
90、<p> ?。?)其他圖書館或網(wǎng)上資源</p><p> 附錄 源程序代碼</p><p> #include <stdio.h></p><p> #include <string.h></p><p> #include <conio.h></p><p&g
91、t; #define MAXLEN50</p><p> #define END-1</p><p> #define NONE0</p><p> struct student{</p><p> char clas[30];</p><p> char name[20];</p>
92、<p> char sex[5];</p><p><b> long id;</b></p><p><b> };</b></p><p> int load(const char*,struct student*);</p><p> int unload(const ch
93、ar*,const struct student*);</p><p> void creat(struct student*);</p><p> void add(struct student*,const struct student*);</p><p> int del(struct student*,long);</p><p&
94、gt; int modify(struct student*,long);</p><p> void sort(struct student*);</p><p> int size(const struct student*);</p><p> int find(const struct student*,long);</p><p
95、> int load(const char *fname,struct student *stu)</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> int i = 0;</p><p> if((fp = fopen(fn
96、ame,"rb")) == NULL){</p><p> puts("fail to open file---");</p><p> puts(fname);</p><p> puts("\n");</p><p><b> return 0;</b&g
97、t;</p><p><b> }</b></p><p> while(fgetc(fp) != EOF){</p><p> fseek(fp,-1,SEEK_CUR);</p><p> fread(stu + i,sizeof(struct student),1,fp);</p><p
98、><b> i++;</b></p><p><b> }</b></p><p> (stu + i)->id = END;</p><p> fclose(fp);</p><p><b> return 1;</b></p><p
99、><b> }</b></p><p> int unload(const char *fname,const struct student *stu)</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p>
100、 int i = 0;</p><p> if((fp = fopen(fname,"wb")) == NULL){</p><p> puts("fail to open file---");</p><p> puts(fname);</p><p> puts("\n"
101、);</p><p><b> return 0;</b></p><p><b> }</b></p><p> while(stu[i].id != END){</p><p> fwrite(stu + i,sizeof(struct student),1,fp);</p>
102、<p><b> i++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> return 1;</b></p><p><b> }</b></p>&
103、lt;p> int size(const struct student *stu)</p><p><b> {</b></p><p> int i = 0;</p><p> while(stu[i].id != END)i++;</p><p><b> return i;</b&g
104、t;</p><p><b> }</b></p><p> int find(const struct student *stu,long id)</p><p><b> {</b></p><p> int i = 0;</p><p> while(stu[
105、i].id != END)</p><p><b> {</b></p><p> if(stu[i].id == id)</p><p><b> {</b></p><p><b> return i;</b></p><p><b&g
106、t; }</b></p><p><b> i++;</b></p><p><b> }</b></p><p> return -1;</p><p><b> }</b></p><p> void add(struct s
107、tudent *stu,const struct student *s)</p><p><b> {</b></p><p> int i = size(stu);</p><p> stu[i] = *s;</p><p> stu[i + 1].id = END;</p><p>
108、 sort(stu);</p><p><b> }</b></p><p> int del(struct student *stu,long id)</p><p><b> {</b></p><p><b> int i,n;</b></p>&l
109、t;p> if((i = find(stu,id)) == -1)</p><p><b> {</b></p><p> puts("查無此人...\n");</p><p><b> return 0;</b></p><p><b> }</
110、b></p><p> n = size(stu);</p><p> if(stu[n - 1].id == id)</p><p><b> {</b></p><p> stu[n - 1].id = END;</p><p><b> return 1;</
111、b></p><p><b> } </b></p><p> while(i != n - 1)</p><p><b> {</b></p><p> stu[i] = stu[i + 1];</p><p><b> i++;</b>
112、;</p><p><b> }</b></p><p> stu[i].id = END;</p><p><b> return 1;</b></p><p><b> }</b></p><p> int modify(struct st
113、udent *stu,long id)</p><p><b> {</b></p><p><b> int i;</b></p><p><b> int flag;</b></p><p><b> char c;</b></p>
114、<p> if((i = find(stu,id)) == -1)</p><p><b> {</b></p><p> system("cls");</p><p> puts("查無此人...\n");</p><p><b> return
115、 0;</b></p><p><b> }</b></p><p><b> do{</b></p><p><b> flag = 1;</b></p><p> system("cls");</p><p>
116、 printf("原數(shù)據(jù):\n%s %s %s %ld\n\n",stu[i].clas,stu[i].name,</p><p> stu[i].sex,stu[i].id);</p><p> puts("請輸入修改的選項...\n");</p><p> puts("1.班級\n2.姓名\n3.性
117、別\n4.學(xué)號\n");</p><p> fflush(stdin);</p><p> c = getchar();</p><p> fflush(stdin);</p><p><b> switch(c)</b></p><p><b> {</b&g
118、t;</p><p><b> case '1':</b></p><p><b> {</b></p><p> char clas[30];</p><p> system("cls");</p><p> puts(&quo
119、t;請輸入班級...\n");</p><p> gets(clas);</p><p> strcpy(stu[i].clas,clas);</p><p><b> }break;</b></p><p><b> case '2':</b></p>
120、<p><b> {</b></p><p> char name[20];</p><p> system("cls");</p><p> puts("請輸入姓名...\n");</p><p> gets(name);</p><p
121、> strcpy(stu[i].name,name);</p><p><b> }break;</b></p><p><b> case '3':</b></p><p><b> {</b></p><p> char sex[5];<
122、;/p><p> system("cls");</p><p> puts("請輸入性別...\n");</p><p> gets(sex);</p><p> strcpy(stu[i].sex,sex);</p><p><b> }break;</b
123、></p><p><b> case '4':</b></p><p><b> {</b></p><p><b> long id;</b></p><p> system("cls");</p><p
124、> puts("請輸入學(xué)號...\n");</p><p> scanf("%ld",&id);</p><p> stu[i].id = id;</p><p><b> }break;</b></p><p> default:flag = 0;brea
125、k;</p><p><b> }</b></p><p> fflush(stdin);</p><p><b> if(flag)</b></p><p><b> {</b></p><p> puts("\n操作成功!\n&q
126、uot;);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> puts("輸入錯誤!請重新輸入...\n");</p><p><
127、b> }</b></p><p> }while(!flag);</p><p><b> return 1;</b></p><p><b> }</b></p><p> void sort(struct student *stu)</p><p&
128、gt;<b> {</b></p><p> int i,j,n;</p><p><b> int flag;</b></p><p> struct student temp;</p><p> n = size(stu);</p><p> for(i =
129、0;i < n - 1;i++){</p><p><b> flag = 1;</b></p><p> for(j = 0;j < n - i - 1;j++){</p><p> if(stu[j].id > stu[j + 1].id){</p><p> temp = stu[j];&
130、lt;/p><p> stu[j] = stu[j + 1];</p><p> stu[j + 1] = temp;</p><p><b> flag = 0;</b></p><p><b> }</b></p><p><b> }</b>
131、</p><p> if(flag)break;</p><p><b> }</b></p><p><b> }</b></p><p> void creat(struct student *stu)</p><p><b> {</b>
132、</p><p><b> int n;</b></p><p> int i = 0;</p><p> system("cls");</p><p> puts("請輸入學(xué)生人數(shù)...\n");</p><p> scanf("%ld
133、",&n);</p><p> system("cls");</p><p> printf("請輸入%d位學(xué)生的班級 姓名 性別 學(xué)號...\n\n",n);</p><p> while(i != n){</p><p> scanf("%s%s%s%ld&
134、quot;,stu[i].clas,stu[i].name,stu[i].sex,</p><p> &stu[i].id);</p><p><b> i++;</b></p><p><b> }</b></p><p> stu[i].id = END;</p>
135、<p><b> }</b></p><p> int main(void)</p><p><b> {</b></p><p> struct student stu[MAXLEN];</p><p><b> char c;</b></p>
136、<p> if(!load("student.txt",stu))exit(0);</p><p><b> do{</b></p><p> system("cls");</p><p> puts("-----------------------------------
137、---\n");</p><p> puts("1.新建\n");</p><p> puts("2.增加\n");</p><p> puts("3.刪除\n");</p><p> puts("4.查詢\n");</p>
138、<p> puts("5.修改\n");</p><p> puts("6.按學(xué)號排序顯示\n");</p><p> puts("0.退出\n");</p><p> puts("--------------------------------------\n"
139、;);</p><p> puts("請輸入選項...\n");</p><p> fflush(stdin);//清除緩沖區(qū)</p><p> c = getchar();</p><p><b> switch(c)</b></p><p><b> {
140、</b></p><p><b> case '0':</b></p><p><b> {</b></p><p> unload("student.txt",stu);</p><p><b> return 0;</b&g
141、t;</p><p><b> }break;</b></p><p><b> case '1':</b></p><p><b> {</b></p><p> creat(stu);</p><p><b> }
142、break;</b></p><p><b> case '2':</b></p><p><b> {</b></p><p><b> do{</b></p><p> struct student s;</p><p
143、> system("cls");</p><p> puts("請輸入班級 姓名 性別 學(xué)號...\n");</p><p> fflush(stdin);</p><p> scanf("%s%s%s%ld",s.clas,s.name,s.sex,&s.id);</p>
144、<p> add(stu,&s);</p><p> system("cls");</p><p> puts("操作成功!\n繼續(xù)請按y,返回主菜單請按任意鍵...\n");</p><p> fflush(stdin);</p><p> }while(getch()
145、 == 'y');</p><p><b> }break;</b></p><p><b> case '3':</b></p><p><b> {</b></p><p><b> do{</b></p&
146、gt;<p><b> long id;</b></p><p> system("cls");</p><p> puts("請輸入要刪除的學(xué)生學(xué)號...\n");</p><p> scanf("%ld",&id);</p><p&
147、gt; system("cls");</p><p> if(del(stu,id))puts("操作成功!\n");</p><p> puts("繼續(xù)請按y,返回主菜單請按任意鍵...\n");</p><p> }while(getch() == 'y');</p>
148、<p><b> }break;</b></p><p><b> case '4':</b></p><p><b> {</b></p><p><b> do{</b></p><p><b> lo
149、ng id;</b></p><p><b> int i;</b></p><p> system("cls");</p><p> puts("請輸入學(xué)號...\n");</p><p> scanf("%ld",&id);<
150、;/p><p> system("cls");</p><p> if((i = find(stu,id)) != -1){</p><p> printf("%s%s%s%ld\n\n",stu[i].clas,stu[i].name,</p><p> stu[i].sex,stu[i].
151、id);</p><p><b> }else{</b></p><p> puts("查無此人!\n");</p><p><b> }</b></p><p> puts("繼續(xù)請按y,返回請按任意鍵...\n");</p><
152、p> }while(getch() == 'y');</p><p><b> }break;</b></p><p><b> case '5':</b></p><p><b> {</b></p><p><b>
153、 do{</b></p><p><b> long id;</b></p><p> system("cls");</p><p> puts("請輸入學(xué)號...\n");</p><p> scanf("%ld",&id);<
154、;/p><p> if(modify(stu,id)){</p><p> system("cls");</p><p> puts("操作成功!\n");</p><p><b> }</b></p><p> puts("繼續(xù)請按y,返回
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計----學(xué)生信息管理系統(tǒng)
- 課程設(shè)計--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 課程設(shè)計-- 學(xué)生信息管理系統(tǒng)設(shè)計
- 學(xué)生信息管理系統(tǒng)課程設(shè)計
- 學(xué)生信息管理系統(tǒng)課程設(shè)計
- 學(xué)生信息管理系統(tǒng) 課程設(shè)計
- 課程設(shè)計-學(xué)生信息管理系統(tǒng)
- 課程設(shè)計——學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理管理系統(tǒng)課程設(shè)計
- 學(xué)生信息管理系統(tǒng)課程設(shè)計 (4)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計報告
- java課程設(shè)計--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計報告--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計delphi學(xué)生信息管理系統(tǒng)
- vfp課程設(shè)計學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)java課程設(shè)計
- 學(xué)生信息管理系統(tǒng)課程設(shè)計3
- java課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計 (3)
評論
0/150
提交評論