學(xué)生電話薄管理系統(tǒng)C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁(yè)
學(xué)生電話薄管理系統(tǒng)C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁(yè)
學(xué)生電話薄管理系統(tǒng)C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁(yè)
學(xué)生電話薄管理系統(tǒng)C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁(yè)
學(xué)生電話薄管理系統(tǒng)C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 C語言課程設(shè)計(jì):顯安學(xué)號(hào):09041131班級(jí):090411專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院:信息工程學(xué)院設(shè)計(jì)題目:學(xué)生通訊錄管理系統(tǒng)指導(dǎo)教師:宋文琳提交時(shí)間:2010年9月4日課程題目:學(xué)生通訊錄管理系統(tǒng)要求:學(xué)生通訊錄信息包括:學(xué)號(hào)、班機(jī)、聯(lián)系、E-mail、宿舍等主要功能:1、 通訊錄信息錄入功能2、 通訊錄信息刪除功能3、 通訊錄信息瀏覽功能4、 通訊錄信息查詢功能5、 按學(xué)號(hào)排序功能一、總體設(shè)計(jì)首先,整個(gè)系統(tǒng)必須有一個(gè)主函數(shù),為了盡量提高程序的易修改性,且不至于相互干擾,將每一個(gè)功能分成不同的模塊,用不同的函數(shù)來實(shí)現(xiàn),例如在我寫的這個(gè)程序中,一共用了11個(gè)函數(shù),分別是:主菜單函數(shù)menu

2、()、關(guān)于函數(shù)gaunyu()、幫助函數(shù)help()、輸出單個(gè)學(xué)生信息函數(shù)shuchu()、輸入函數(shù)shuru()、輸出所有學(xué)生信息函數(shù)findall()、按查找函數(shù)findname()、按學(xué)號(hào)查找函數(shù)findnum()、刪除函數(shù)shanchu()、排序函數(shù)paixu()、主函數(shù)main(),這樣在整個(gè)程序的設(shè)計(jì)過程中也就一目了然,寫起來也相對(duì)輕松了不少。這個(gè)程序我只是總體上參考了一下網(wǎng)上程序的架構(gòu),具體的各個(gè)函數(shù)是參照課本上鏈表那一章的容的,比如結(jié)構(gòu)體的建立、查找和排序等功能,這些書上都有類似的,其中排序功能雖沒有原版的,但是在第六章中有一個(gè)用冒泡法排序的例題,我就是仿照這個(gè)模式來對(duì)結(jié)構(gòu)體進(jìn)

3、行排序的,總之整個(gè)程序中蘊(yùn)含了我很多的汗水。二、具體設(shè)計(jì)關(guān)于這個(gè)程序的具體設(shè)計(jì),也不是一兩句話就能說完的,所以我也不想再在這里贅述了,因?yàn)槌绦蚶锒伎梢钥吹牡?,幾乎每個(gè)函數(shù)都傾注了我的大量汗水,我在這上面花了不少的時(shí)間,不過從中也收獲了很多,因?yàn)椴煌5匦薷牟煌5恼{(diào)試,總之還是直接看源程序吧,因?yàn)橐矝]必要在這里重復(fù)地說廢話。三、源代碼以下是整個(gè)程序的源代碼,其中我的主菜單函數(shù)是很美觀的,但由于這里字體和板式的限制,不能很好的顯現(xiàn),可以看我下面程序運(yùn)行的截圖就知道了。#include#include#include#include#include#define NULL 0struct studen

4、tlong num;char name20;int banji;char tel11;char Email20;int sushe;struct student *next;struct student *stu;int n;void menu(void) /*主菜單函數(shù)*/system(cls);puts(*);puts(* _學(xué)生通訊錄管理系統(tǒng)_ *);puts(*);puts(* 計(jì) *);puts(* *);puts(* 算 *);puts(* 0 1=錄入學(xué)生通訊錄信息 *);puts(* 9 2=列出所有學(xué)生通訊錄 機(jī) *);puts(* 0 3=按查詢信息 *);puts(* 4

5、 顯 4=按學(xué)號(hào)查詢信息 科 *);puts(* 1 5=刪除學(xué)生信息 *);puts(* 1 安 6=按學(xué)號(hào)將通訊錄排序 學(xué) *);puts(* 3 7=關(guān)于 *);puts(* 1 8=幫助 與 *);puts(* 0=退出 *);puts(* 技 *);puts(* *);puts(* 術(shù) *);puts(*);void guanyu() /*關(guān)于函數(shù)*/system(cls);puts(n * );puts( * 所有,翻版必究! *);puts(* copyright顯安! *);puts( * 20092010 *);puts( *);puts(n返回主菜單請(qǐng)按9);if(getc

6、he()=9) menu();struct student *shuru(void) /*輸入函數(shù)*/system(cls);struct student *s1,*s2;n=1;int num;puts(請(qǐng)輸入學(xué)生個(gè)數(shù)(提示:個(gè)數(shù)不能輸入0!):);scanf(%d,&num);s1=s2=(struct student *)malloc(sizeof(struct student);puts(*);puts(請(qǐng)輸入學(xué)號(hào):);scanf(%ld,&s1-num);puts(請(qǐng)輸入學(xué)生:);scanf(%s,s1-name);puts(請(qǐng)輸入班級(jí):);scanf(%d,&s1-banji);p

7、uts(請(qǐng)輸入:);scanf(%s,s1-tel);puts(請(qǐng)輸入電子:);scanf(%s,s1-Email);puts(請(qǐng)輸入學(xué)生宿舍號(hào):);scanf(%d,&s1-sushe);stu=s1;while(nnext=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student);puts(*);puts(請(qǐng)輸入學(xué)號(hào):);scanf(%ld,&s1-num);puts(請(qǐng)輸入學(xué)生:);scanf(%s,s1-name);puts(請(qǐng)輸入班級(jí):);scanf(%d,&s1-banji);puts(請(qǐng)輸入:);scanf(%s,s1

8、-tel);puts(請(qǐng)輸入電子:);scanf(%s,s1-Email);puts(請(qǐng)輸入學(xué)生宿舍號(hào):);scanf(%d,&s1-sushe);n=n+1;puts(*);s2-next=s1;s2=s1;s2-next=NULL;return(stu);/system(cls);void shuchu(struct student *s) /*輸出單個(gè)學(xué)生信息*/printf(* %-8ld,s-num);printf(%-15s,s-name);printf(%-8d,s-banji);printf(%-15s,s-tel);printf(%-15s,s-Email);printf(%

9、-5d *n,s-sushe);void findall() /*輸出所有學(xué)生信息*/ system(cls);struct student *s;/if(n=2)/printf(n現(xiàn)在有%d個(gè)學(xué)生信息,分別是:n,n);/elseprintf(n現(xiàn)在有%d個(gè)學(xué)生信息,分別是:n,n);puts(_);puts(* 學(xué)號(hào) 班級(jí) 電子 宿舍 *);s=stu;while(s!=NULL) shuchu(s); s=s-next;puts(_);puts(返回主菜單請(qǐng)按9);if(getche()=9) menu();void findname() /*按查找函數(shù)*/system(cls);str

10、uct student *s;char name20;printf(n請(qǐng)輸入你要查詢的學(xué)生:n);scanf(%s,name);s=stu;while(strcmp(s-name,name)!=0)s=s-next;if(s=NULL)puts(查無此學(xué)生!);goto end;elseputs(該學(xué)生的信息為:); puts(* 學(xué)號(hào) 班級(jí) 電子 宿舍 *);shuchu(s);end:;puts(返回主菜單請(qǐng)按9);if(getche()=9) menu();void findnum() /*按學(xué)號(hào)查找函數(shù)*/system(cls);struct student *s;puts(請(qǐng)輸入你要

11、查詢的學(xué)生學(xué)號(hào):);long i;scanf(%ld,&i);s=stu;while(s-num!=i)s=s-next;if(s=NULL)puts(查無此學(xué)生學(xué)號(hào)!);goto end;elseputs(該學(xué)生的信息為:);puts(* 學(xué)號(hào) 班級(jí) 電子 宿舍 *);shuchu(s);end:;puts(返回主菜單請(qǐng)按9);if(getche()=9) menu();struct student *shanchu(struct student*stu) /*刪除函數(shù)*/system(cls);long num;char s;struct student *s1,*s2;if(stu=NU

12、LL)puts(傻冒!沒有任何學(xué)生信息,還刪個(gè)屁啊,刪刪刪!);goto end;puts(請(qǐng)輸入你要?jiǎng)h除的學(xué)生學(xué)號(hào):);scanf(%ld,&num);s1=stu;puts(警告:你確定要?jiǎng)h除這個(gè)學(xué)生的信息嗎(Y/N)?);scanf(%s,&s);if(s=Y)|(s=y) while(num!=s1-num)&(s1-next!=NULL) s2=s1;s1=s1-next; if(num=s1-num) puts(該學(xué)生的信息為:); puts(* 學(xué)號(hào) 班級(jí) 電子 宿舍 *); shuchu(s1);if(s1=stu) stu=s1-next; else s2-next=s1-n

13、ext; puts(注意喲,該學(xué)生的信息已經(jīng)刪除了!剩下的學(xué)生通訊錄信息如下:); n=n-1; findall();return(stu);end:;puts(返回主菜單請(qǐng)按9);if(getche()=9) menu();void paixu() /*排序函數(shù)*/struct student *p, *p1,*p2;int i,j;int temp; char b20; if(stu=NULL) printf(n學(xué)生信息不存在n); goto end; for(i=0;in-1;i+) p1=stu; for(j=0;jnext; if(p1-nump2-num) temp=p1-num;

14、p1-num=p2-num;p2-num=temp; strcpy(b,p1-name);strcpy(p1-name,p2-name);strcpy(p2-name,b); temp=p1-banji;p1-banji=p2-banji;p2-banji=temp; strcpy(b,p1-tel);strcpy(p1-tel,p2-tel);strcpy(p2-tel,b); strcpy(b,p1-Email);strcpy(p1-Email,p2-Email);strcpy(p2-Email,b); temp=p1-sushe;p1-sushe=p2-sushe;p2-sushe=te

15、mp; p1=p1-next; p=stu; puts(已按學(xué)生學(xué)號(hào)順序排序完畢!重新排序如下:); puts(*); puts(* 學(xué)號(hào) 班級(jí) 電子 宿舍 *);while(p!=NULL)printf(* %-8ld,p-num);printf(%-15s,p-name);printf(%-8d,p-banji);printf(%-15s,p-tel);printf(%-15s,p-Email);printf(%-5d *n,p-sushe);p=p-next;end:;puts(返回主菜單請(qǐng)按9); if(getche()=9) menu();void help() /*幫助函數(shù)*/sy

16、stem(cls);puts(n1、請(qǐng)按提示操作,第一次進(jìn)入本系統(tǒng)時(shí)請(qǐng)按“1”錄入學(xué)生信息,);puts( 否則有可能造成程序運(yùn)行錯(cuò)誤!);puts(2、添加、修改功能本系統(tǒng)暫不提供,還有待以后完善,合作!);puts(3、請(qǐng)注意查看“Num Lock”是否打開,如果沒有打開,則按數(shù)字n 鍵可能導(dǎo)致程序錯(cuò)誤!);puts(4、所有,翻版必究!請(qǐng)按“7”鍵查看關(guān)于。);puts(n返回主菜單請(qǐng)按9);if(getche()=9) menu();void main() /*主函數(shù)*/char a;menu();puts(n您為首次使用本系統(tǒng),強(qiáng)烈建議您按1開始錄入學(xué)生信息,);puts(否則有可能

17、導(dǎo)致程序運(yùn)行錯(cuò)誤!您可以按8查看幫助.);a=getche();while(a) puts(); switch(a) case0:goto end;break; case 1: puts(n好了,您可以開始向本系統(tǒng)錄入學(xué)生通訊錄信息了:); stu=shuru(); system(cls); menu(); puts(n學(xué)生信息錄入完畢,請(qǐng)輸入你的選擇(06):n); break; case 2:findall();puts(n請(qǐng)輸入你的選擇(06):); break; case 3:findname();puts(n請(qǐng)輸入你的選擇(06):); break; case 4:findnum()

18、;puts(n請(qǐng)輸入你的選擇(06):); break; case 5:stu=shanchu(stu);puts(n請(qǐng)輸入你的選擇(06):); break; case 6:paixu();puts(n請(qǐng)輸入你的選擇(06):); break; case 7:guanyu();puts(n請(qǐng)輸入你的選擇(06):); break; case 8:help();puts(n請(qǐng)輸入你的選擇(06):); break; default:puts(輸錯(cuò)了!笨蛋!快點(diǎn)按數(shù)字1鍵錄入學(xué)生信息吧!); break; a=getche(); end:;puts(您使用本系統(tǒng),歡迎再次使用!);四、調(diào)試主要是通過截圖來顯示運(yùn)行過程以下是程序運(yùn)行的主界面:按1后,開始錄入信息,程序會(huì)提示你輸入學(xué)生個(gè)數(shù)(例如本例中輸入4個(gè)),當(dāng)輸完4個(gè)學(xué)生的信息時(shí),程序會(huì)提示你已輸入完畢:學(xué)生信息錄入完畢,提示輸入(0到6)進(jìn)行選擇:這時(shí)我選擇按2輸出所有學(xué)生信息,按9返回:按3按查詢信息:按4按學(xué)號(hào)查詢信息:按5刪除學(xué)生信息,這是按學(xué)號(hào)刪除學(xué)生信息

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論