版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)項(xiàng)目性質(zhì):綜合性、設(shè)計(jì)性所涉及課程:C語言課程設(shè)計(jì)計(jì)劃學(xué)時:實(shí)驗(yàn)學(xué)時4一、實(shí)驗(yàn)?zāi)康?綜合考察學(xué)生本學(xué)期對C語言的掌握程度。二、實(shí)驗(yàn)內(nèi)容1.編寫一個可以把學(xué)生信息寫入文件的函數(shù)creact(),采用動態(tài)鏈表。2.編寫一個可以增加新成員的函數(shù)add1()。3編寫一個可以查詢確定學(xué)生的函數(shù)search1()。4編寫一個可以刪除確定學(xué)生的函數(shù)del1()。5編寫一個可以修改確定學(xué)生的函數(shù)modify1()。6編寫一個可以打開通信錄的函數(shù)open1( )。附錄:search1函數(shù)調(diào)用searchnum和searchname函數(shù),分別為按學(xué)號和按名字查詢。 del函
2、數(shù)調(diào)用delname和deltel函數(shù),分別為按名字和按電話刪除。 modify1函數(shù)調(diào)用modifynum和modifyname函數(shù),分別為按學(xué)號和按名字找到修改。open1函數(shù)調(diào)用sorttel和sortname函數(shù),分別為按電話和按名字從小到大的順序打開。三、實(shí)驗(yàn)(設(shè)計(jì))儀器設(shè)備和材料清單1.硬件:PC機(jī) 2.軟件:Turbo C 2.0/Turbo C+ 3.0 四、實(shí)驗(yàn)要求設(shè)計(jì)一個學(xué)生通訊錄管理系統(tǒng),在動態(tài)鏈表程序的基礎(chǔ)上,設(shè)計(jì)要求如下(必須使用結(jié)構(gòu)體和動態(tài)鏈表等數(shù)據(jù)結(jié)構(gòu))1建立文件 存儲文件使用指定文件名或默認(rèn)文件名; 可以不保存輸入記錄,但需要確認(rèn)是否保存輸入記錄 如果已有文件,
3、只能在其后追加; 新增記錄可以不存入原文件中,以可以用原來的文件覆蓋內(nèi)存的內(nèi)容;可以將多個個文件記錄合并到一個文件中;2文件的存取和顯示 可以單獨(dú)存取文件; 可以隨時顯示內(nèi)存中記錄的全部內(nèi)容; 可以直接存取默認(rèn)文件或指定文件;3刪除記錄 可以按“姓名”或“電話”方式刪除記錄并更新內(nèi)存鏈表內(nèi)容; 能給出被刪除的信息,輸出沒有找到的信息; 如果已經(jīng)是空表,上出時應(yīng)給出信息并返回主菜單; 如果沒有要刪除的信息,輸出沒有找到的信息;刪除操作僅限于內(nèi)存,只有執(zhí)行記錄時,才能覆蓋原記錄;4查詢記錄 可以按“姓名”或“電話”或“宿舍”方式查詢記錄 能給出查詢記錄的信息;如果查詢的信息不存在,輸出沒有找到的信
4、息;5 整體功能 a可以隨時檢索、刪除、或增加新記錄,保存或取消新的記錄 b使姓名可由16位字符和數(shù)字的混合編碼組成 c使電話號碼可由18位字符和數(shù)字組成d將輸出信息加上輸出信息信息欄,例如 姓名 電話 性別 年齡 生日 宿舍 李四 1234 男 21 7月1日 東二333 e使用菜單實(shí)現(xiàn)功能的正確的選擇 f 所有節(jié)點(diǎn)信息都是動態(tài)生成。 6測試程序 應(yīng)列出測試大綱對程序進(jìn)行測試; 應(yīng)保證測試用例測試到程序的各種邊緣情況五、實(shí)驗(yàn)步驟及結(jié)果測試A、主函數(shù)主函數(shù)提供可選擇的功能1234560創(chuàng)建增加查找 刪除修改打開退出按名字、按學(xué)號按電話、按名字按名字、按學(xué)號按電話、按名字程序清單:void ma
5、in()int i;end:printf(" |-|n");printf(" | 1.ceate new file |n");printf(" | 2.add information |n");printf(" | 3.search |n"); printf(“ | 4.telect |n");printf(" | 5.modify |n");printf(" | 6.open |n");printf(" | 0.register |n");pr
6、intf(" |-|n");printf("input your choice(0-6):n"); scanf("%d",&i); if(i=1)creat1(); goto end;if(i=2) add1(); goto end;if(i=3) search1(); goto end; if(i=4)del1(); goto end; if(i=5) modify1(); goto end; if(i=6) open1(); goto end; exit(0);B、創(chuàng)建:void create()開始動態(tài)申請內(nèi)存輸入學(xué)號學(xué)
7、號不為0輸入其他信息動態(tài)申請內(nèi)存并輸入學(xué)號結(jié)束鏈表的建立存入文件結(jié)束程序清單:void creat1()FILE *fp;char i;struct student *p1,*p2,*head;n=0;p1=p2=(struct student *)malloc(LEN);printf("nenter NO.:n");scanf("%d",&p1->num);while(p1->num!=0)printf("enter name:n");scanf("%s",p1->name);print
8、f("enter tel:n");scanf("%s",p1->tel);doprintf("enter sex:n");getchar();scanf("%c",&p1->sex);while(p1->sex!='f'&&p1->sex!='F'&&p1->sex!='m'&&p1->sex!='M');do printf("enter age:n&
9、quot;);scanf("%d",&p1->age);while(p1->age<=0|p1->age>=150); printf("enter birthday:n");scanf("%s",p1->bir); printf("enter address:n");scanf("%s",p1->add);n=n+1;if(n=1)head=p1; else p2->next=p1;p2=p1; p1=(struct student *)m
10、alloc(LEN);printf("enter NO.:n"); scanf("%d",&p1->num);p2->next=NULL;printf("nsave them or no(y/n)n");doprintf("input choicen");getchar();scanf("%c",&i);while(i!='y'&&i!='Y'&&i!='n'&&i!=
11、39;N');if(i='y'|i='Y')p1=head;if(fp=fopen(,"wb")=NULL)printf("cannot open filen");return;if(p1!=NULL)doif(fwrite(p1,sizeof(struct student),1,fp)!=1)printf(" errorn");fclose(fp);break;p1=p1->next;while(p1!=NULL);fclose(fp); C、增加 void add1()設(shè)計(jì)思路和創(chuàng)建新
12、通信錄一樣,只是文件的打開方式是“a”,即以追加的方式打開。程序清單:void add1()FILE *fp;char i;struct student *p1,*p2,*head;n=0;p1=p2=(struct student *)malloc(LEN);printf("nenter NO.:n");scanf("%d",&p1->num);while(p1->num!=0)printf("enter name:n");scanf("%s",p1->name);printf(&quo
13、t;enter tel:n");scanf("%s",p1->tel);printf("enter sex:n");getchar();scanf("%c",&p1->sex); printf("enter age:n");scanf("%d",&p1->age); printf("enter birthday:n");scanf("%s",p1->bir); printf("enter addr
14、ess:n");scanf("%s",p1->add);n=n+1;if(n=1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf("enter NO.:n");scanf("%d",&p1->num);p2->next=NULL;printf("nsave them or no(y/n)n");doprintf("input choicen");getchar(
15、);scanf("%c",&i);while(i!='y'&&i!='Y'&&i!='n'&&i!='N');if(i='y'|i='Y')p1=head;if(fp=fopen(,"a")=NULL)printf("cannot open filen");return;if(p1!=NULL)doif(fwrite(p1,sizeof(struct student),1,fp)!=1
16、)printf(" errorn");fclose(fp);break;p1=p1->next;while(p1!=NULL);fclose(fp); D、查找 void search()開始選擇按名字或按學(xué)號查找按名字擇調(diào)用Searchname()按學(xué)號擇調(diào)用Searchnum()結(jié)束開始查找符合節(jié)點(diǎn)找到則輸出該節(jié)點(diǎn)內(nèi)容找不到輸出“not find”結(jié)束重建鏈表輸入名字(電話)程序清單:1、void search1()int i;printf("please input your choice(0-2)");printf(" |-|n&
17、quot;);printf(" | 1.search in NO. |n");printf(" | 2.search in name |n");printf(" | 0.register |n");printf(" |-|n"); do printf("input your choice"); scanf("%d",&i); while(i!='1'&&i!='2'&i!='0'); switch
18、(i)case'1': searchnum(); break;case'2': searchname(); break;default: exit(0); 2、void searchname()struct student *p1,*p2,*head;char name16;head=recreat();printf("enter the student's name:n");scanf("%d",name);for(p1=head;p1->next!=NULL;p1=p1->next)if(strcmp(p1->name,name)=0)printf(,"%dt%st%st%ct%dt%st%sn",p1->num,p1->name,p1->tel,p1->sex,p1->age,p1->bir,p1->add);3、void searchnum()struct student *p1,*p2,*head;int num;hea
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商鋪?zhàn)赓U解除合同法律意見書
- 項(xiàng)目咨詢服務(wù)合同條件
- 電子借款合同格式
- 安全評估招標(biāo)指南
- 房屋買賣合同中契稅繳納的注意事項(xiàng)
- 供應(yīng)商品質(zhì)保證書
- 商務(wù)樓衛(wèi)生維護(hù)契約
- 供貨協(xié)議合同模板
- 春運(yùn)出行完全手冊解析
- 傳遞正能量的保證宣言
- 柑橘園的規(guī)劃與設(shè)計(jì)(趙錚)
- 國家開放大學(xué)電大《中文學(xué)科論文寫作》期末題庫及答案
- 提高地下車庫防水質(zhì)量QC成果
- 物業(yè)消防系統(tǒng)承接查驗(yàn)表
- DK77系列線切割機(jī)床使用說明書(電氣部份)_圖文
- 俄羅斯聯(lián)邦政府第782號決議 電梯安全技術(shù)規(guī)程(2009版)
- OPERA系統(tǒng)培訓(xùn)ppt課件
- 110Kv輸變電工程電氣安裝技術(shù)交底
- ASTM_A29/A29M熱鍛及冷加工碳素鋼和合金鋼棒
- 錄屏軟件Camtasia_Studio使用教程
- 崗位風(fēng)險(xiǎn)告知卡(40個風(fēng)險(xiǎn)點(diǎn))
評論
0/150
提交評論