C語言通訊錄管理系統(tǒng)程序代碼_第1頁
C語言通訊錄管理系統(tǒng)程序代碼_第2頁
C語言通訊錄管理系統(tǒng)程序代碼_第3頁
C語言通訊錄管理系統(tǒng)程序代碼_第4頁
C語言通訊錄管理系統(tǒng)程序代碼_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第 頁一、課程設計題目及要求題目通訊錄管理系統(tǒng)任務:自學C語言中相關(guān)知識,設計出通訊錄管理系統(tǒng)。要求如下所述:建立通訊錄信息,信息至少包含編號、姓名、年齡、電話、通訊地址、電子郵箱等;能夠提供添加、刪除和修改通訊錄信息的功能;能夠提供按姓名或電話等查詢;將通訊錄保存在文件中;能夠按表格方式輸出通訊錄信息。二、系統(tǒng)設計方案(一)總體框架圖:通訊錄管理系統(tǒng):1、錄入通訊錄信息2、修改通訊錄信息3、查詢通訊錄信息4、瀏覽通訊錄信息5、增加通訊錄信息6、推出系通訊錄統(tǒng)(二)模塊設計模塊一:頭文件,變量定義,函數(shù)的聲明對系統(tǒng)所使用的變量進行定義,對函數(shù)進行聲明模塊二:錄入通訊錄信息聲明函數(shù)voidrea

2、dfile(),說明一個文件指針FILE*fp打開文件student.txt模塊三:通訊錄信息的查找聲明voidseek()為查找函數(shù),通過switch(item)設定用學號查找,用姓名查找兩個分支模塊四:通訊錄信息的修改聲明voidmodify()為學生信息修改函數(shù),通過switch(item)設定所要修改的項目模塊五:通訊錄信息按學號排序聲明voidsort()將錄入通訊錄信息系按升序排列,用的是“冒泡排序法”實現(xiàn)排序模塊六:加通訊錄信息聲明voidinsert()插入通訊錄信息,先通過判斷通訊錄是否存在,若否則繼續(xù)輸入,若是跳出,重新循環(huán)模塊七:通訊錄信息聲明voiddel()實現(xiàn)通訊錄

3、信息刪除,通過學號對比確定要刪除的信息,然后用后一個替換掉。模塊八:示學生信息通過display()函數(shù)輸出通訊錄信息模塊九;存信息通過fp=fopen(student.txt,w);寫入信息模塊十:界面菜單通過switch(num)調(diào)用,以上各函數(shù),實現(xiàn)功能三、設計詳情1.主函數(shù)主函數(shù)設計要求簡潔,只提供部分提示語和函數(shù)的調(diào)用【程序】開始顯示一系列功能選項根據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束圖1.主函數(shù)流程圖voidmenu()/*界面*/intnum;printf(nn自動化0901通訊錄管理系統(tǒng)nn);printf(printf(*制作人:翁行興*nn);nn);nn);printf(系統(tǒng)功

4、能菜單n);printf(*1.刷新學生信息*2.查詢學生信息*n);printf(*3.修改學生信息*4.增加學生信息*n);printf(*5.按學號刪除信息*6.顯示當前信息*n);printf(*7.保存當前學生信息*8.退出系統(tǒng)*n);printf(n);printf(-printf(”請選擇菜單編號:”);scanf(%d,&num);switch(num)case1:readfile();break;case2:seek();break;case3:modify();break;case4:insert();break;case5:del();break;case6:displa

5、y();break;case7:save();break;case8:k=0;break;default:printf(請在1-8之間選擇n);n);printf(四、源代碼#include#include#include#defineBUFLEN100#defineLEN15#defineN100structrecord/*結(jié)構(gòu)體*/charcodeLEN+1;/*學號*/charnameLEN+1;/*姓名*/intage;/*年齡*/charsex3;/*性別*/chartimeLEN+1;/*出生年月*/charadd30;/*家庭地址*/chartelLEN+1;/*電話號碼*/ch

6、armail30;/*電子郵件地址*/stuN;intk=1,n,m;/*定義全局變量*/voidreadfile();/*函數(shù)聲明*/voidseek();voidmodify();voidinsert();voiddel();voiddisplay();voidsave();voidmenu();intmain()計科1001賴祥燃第 頁計科1001賴祥燃第 頁while(k)menu();system(pause);return0;voidreadfile()/*建立信息*/char*p=student.txt;FILE*fp;inti=0;if(fp=fopen(student.txt

7、,r)=NULL)printf(Openfile%serror!Strikeanykeytoexit!,p);system(pause);exit(0);while(fscanf(fp,%s%s%d%s%s%s%s%s,stui.code,,&stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail)=8)i+;i=i;fclose(fp);n=i;printf(錄入完畢!n);voidseek()/*查找*/inti,item,flag;chars121;/*以姓名和學號最長長度+1為準*/n);printf(print

8、f(-1.按學號查詢-n);printf(-2.按姓名查詢-n);printf(-3.退出本菜單-n);printf(printf(n);n);while(1)printf(”請選擇子菜單編號:”);scanf(%d,&item);flag=0;switch(item)case1:printf(請輸入要查詢的學生的學號:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.code,s1)=0)flag=1;printf(學號姓名年齡性別出生年月地址電話E-mailn);printf(n);printf(%6s%7s%6d%5s%9s%8s%10s%14sn

9、,stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag=0)printf(該學號不存在!n);break;case2:printf(請輸入要查詢的學生的姓名:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(,s1)=0)flag=1;printf(學號姓名年齡性別出生年月地址電話E-mailn);printf(n);printf(%6s%7s%6d%5s%9s%8s%10s%14sn,stui.code,,stu

10、i.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag=0)printf(”該姓名不存在!n);break;case3:return;default:printf(請在1-3之間選擇n);voidmodify()/*修改信息*/inti,item,num;charsex13,s1LEN+1,s2LEN+1;/*以姓名和學號最長長度+1為準*/printf(請輸入要要修改的學生的學號:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.code,s1)=0)/*比較字符串是否相等*/num=

11、i;printf(n);printf(1.修改姓名n);printf(2.修改年齡n);printf(3.修改性別n);printf(4.修改出生年月n);printf(5.修改地址n);printf(6.修改電話號碼n);printf(7.修改E-mail地址n);printf(8.退出本菜單n);printf(n);while(1)printf(請選擇子菜單編號:”);scanf(%d,&item);switch(item)case1:printf(請輸入新的姓名:n);scanf(%s,s2);strcpy(,s2);break;case2:printf(請輸入新的

12、年齡:n);scanf(%d,&stunum.age);break;case3:printf(請輸入新的性別:n);scanf(%s,sex1);strcpy(stunum.sex,sex1);break;case4:printf(請輸入新的出生年月:n);scanf(%s,s2);strcpy(stunum.time,s2);break;case5:printf(請輸入新的地址:n);scanf(%s,s2);strcpy(stunum.add,s2);break;case6:printf(請輸入新的電話號碼:n);scanf(%s,s2);strcpy(stunum.tel,s2);bre

13、ak;case7:printf(請輸入新的E-mail地址:n);scanf(%s,s2);strcpy(stunum.mail,s2);break;case8:return;default:printf(請在1-8之間選擇n);voidsort()/*按學號排序*/inti,j,*p,*q,s;chartemp10;for(i=0;ii;j-)if(strcmp(stuj-1.code,stuj.code)0)strcpy(temp,stuj-1.code);strcpy(stuj-1.code,stuj.code);strcpy(stuj.code,temp);strcpy(temp,st

14、);strcpy(,);strcpy(,temp);strcpy(temp,stuj-1.sex);strcpy(stuj-1.sex,stuj.sex);strcpy(stuj.sex,temp);strcpy(temp,stuj-1.time);strcpy(stuj-1.time,stuj.time);計科1001賴祥燃第 頁計科1001賴祥燃第 頁strcpy(stuj.time,temp);strcpy(temp,stuj-1.add);strcpy(stuj-1.add,stuj.add);strcpy(s

15、tuj.add,temp);strcpy(temp,stuj-1.tel);strcpy(stuj-1.tel,stuj.tel);strcpy(stuj.tel,temp);strcpy(temp,stuj-1.mail);strcpy(stuj-1.mail,stuj.mail);strcpy(stuj.mail,temp);p=&stuj-1.age;q=&stuj.age;s=*q;*q=*p;*p=s;voidinsert()/*插入函數(shù)*/inti=n,j,flag;printf(請輸入待增加的學生數(shù):n);scanf(%d,&m);doflag=1;while(flag)flag

16、=0;printf(請輸入第d個學生的學號:n,i+1);scanf(%s,stui.code);for(j=0;ji;j+)if(strcmp(stui.code,stuj.code)=0)printf(”已有該學號,請檢查后重新錄入!n);flag=1;break;/*如有重復立即退出該層循環(huán),提高判斷速度*/printf(請輸入第d個學生的姓名:n,i+1);scanf(%s,);printf(請輸入第%d個學生的年齡:n,i+1);scanf(%d,&stui.age);printf(請輸入第%d個學生的性別:n,i+1);scanf(%s,stui.sex);pri

17、ntf(請輸入第%d個學生的出生年月:(格式:年月)n,i+1);scanf(%s,stui.time);printf(請輸入第%d個學生的地址:n,i+1);scanf(%s,stui.add);printf(請輸入第%d個學生的電話:n,i+1);scanf(%s,stui.tel);printf(請輸入第%d個學生的E-mail:n,i+1);scanf(%s,stui.mail);if(flag=0)i=i;i+;while(in+m);n+=m;printf(錄入完畢!nn);sort();voiddel()inti,j,flag=0;chars1LEN+1;printf(請輸入要刪

18、除學生的學號:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.code,s1)=0)flag=1;for(j=i;jn-1;j+)stuj=stuj+1;if(flag=0)printf(該學號不存在!n);if(flag=1)printf(刪除成功,顯示結(jié)果請選擇菜單6n);n-;voiddisplay()inti;printf(所有學生的信息為:n);printf(學號姓名年齡性別出生年月地址電話E-mailn);計科1001賴祥燃第 頁計科1001賴祥燃第 #頁printf(n);for(i=0;in;i+)printf(%6s%7s%5d%5s

19、%9s%8s%10s%14sn,stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);voidsave()inti;FILE*fp;fp=fopen(student.txt,w);/*寫入*/for(i=0;in;i+)fprintf(fp,%s%s%d%s%s%s%s%sn,stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);fclose(fp);voidmenu()/*界面*/intnum;

20、printf(nn自動化0901學生信息管理系統(tǒng)nn);printf(printf(*制作人:翁行興*nn);nn);printf(nn);n);printf(n);printf(*1.刷新學生信息*2.查詢學生信息*n);printf(*3.修改學生信息*4.增加學生信息*n);printf(系統(tǒng)功能菜單printf(*5.按學號刪除信息*6.顯示當前信息*n);printf(*7.保存當前學生信息*8.退出系統(tǒng)*n);printf(n);printf(”請選擇菜單編號:”);scanf(%d,&num);switch(num)case1:readfile();break;case2:seek();break;case3:modify();break;case4:insert();break;case5:del();break;case6:display();break;case7:save();break;case8:k=0;break;default:printf(請在1-8之間選擇n);五調(diào)試過程一主界面計科1001賴祥燃第 頁計科1001賴祥燃第 #頁計科1001賴祥燃第 頁計科1001賴祥燃第 #頁自動化凹氈通訊錄管理系統(tǒng)*制作人:翁行興MZMZMZMZMZMZMZMZMZMZMZMZMZMZMZMZMZMZMZKJt冃g(shù)gg甲XMXXXXXXXXXXXXXX

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論