




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)報告實(shí)驗(yàn)名稱 :學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)項(xiàng)目性質(zhì):綜合性、設(shè)計性所涉及課程: C 語言課程設(shè)計計劃學(xué)時:實(shí)驗(yàn)學(xué)時4一、實(shí)驗(yàn)?zāi)康木C合考察學(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é)號和按名
2、字查詢。del 函數(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è)計)儀器設(shè)備和材料清單1.硬件: PC機(jī)2.軟件: Turbo C Turbo C+四、實(shí)驗(yàn)要求設(shè)計一個學(xué)生通訊錄管理系統(tǒng) ,在動態(tài)鏈表程序的基礎(chǔ)上,設(shè)計要求如下(必須使用結(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男217月1 日東二 333e 使用菜單實(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(|new file|n);printf(|information|n);printf(|n);printf(“|n);printf(|n);printf(|n);printf(|n);printf(|-|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();g
6、oto end;if(i=6)open1();goto end;exit(0);B、創(chuàng)建: voidcreate()開始動態(tài)申請內(nèi)存輸入學(xué)號學(xué)號不為 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-nam
7、e);printf(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);doprintf(enter age:n);scanf(%d,&p1-age);while(p1-ageage=150);printf(enter birthday:n);scanf(%s,p1-bir);printf(enter address:n);scanf(%s,p1-add);n=n+1;if(n=1)head=p
8、1;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();scanf(%c,&i);while(i!=y&i!=Y&i!=n&i!=N);if(i=y|i=Y)p1=head;if(fp=fopen(FILENAME,wb)=NULL)printf(cannot open filen);return;if(p1
9、!=NULL)doif(fwrite(p1,sizeof(struct student),1,fp)!=1)printf(file write errorn);fclose(fp);break;p1=p1-next;while(p1!=NULL);fclose(fp);C、增加void add1()設(shè)計思路和創(chuàng)建新通信錄一樣,只是文件的打開方式是“a”,即以追加的方式打開。程序清單:void add1()FILE *fp;char i;struct student *p1,*p2,*head;n=0;p1=p2=(struct student *)malloc(LEN);printf(nent
10、er NO.:n);scanf(%d,&p1-num);while(p1-num!=0)printf(enter name:n);scanf(%s,p1-name);printf(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 address:n);scanf(%s,p1-add);n=n+1;if(n=
11、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();scanf(%c,&i);while(i!=y&i!=Y&i!=n&i!=N);if(i=y|i=Y)p1=head;if(fp=fopen(FILENAME,a)=NULL)printf(cannot open filen);retur
12、n;if(p1!=NULL)doif(fwrite(p1,sizeof(struct student),1,fp)!=1)printf(file write errorn);fclose(fp);break;p1=p1-next;while(p1!=NULL);fclose(fp);D、查找void search()開始選擇按名字或按學(xué)號查按名字擇調(diào)用按學(xué)號擇調(diào)用Searchname()Searchnum()結(jié)束開始重建鏈表輸入名字(電話)查找符合節(jié)點(diǎn)找到則輸出該節(jié)找不到輸出 “ not點(diǎn)內(nèi)容find ”結(jié)束程序清單 :1、void search1()int i;printf(please i
13、nput your choice(0-2);printf(|-|n);printf(|in NO.|n);printf(|in name|n);printf(|n);printf(|-|n);doprintf(input your choice);scanf(%d,&i);while(i!=1&i!=2&i!=0);switch(i)case1: searchnum();break;case2: searchname();break;default: exit(0);2、void searchname()struct student *p1,*p2,*head;char name16;head=recreat();printf(enter the students 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
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商場空調(diào)維護(hù)合同范本
- 魚池出租轉(zhuǎn)讓合同范本
- 機(jī)械購銷合同范本清單
- 路燈維修驗(yàn)收合同范本
- 購房委托還款合同范本
- 旅游巴士租車合同范本
- 廚房移門合同范本
- 門店供銷合同范本
- 2025工程設(shè)備租賃合同律師版
- 2025企業(yè)外匯設(shè)備貸款合同范本
- 2023年浙江省寧波市普通高校高職單招綜合素質(zhì)測試題(含答案)
- 蘇教版四年級科學(xué)下冊期中檢測試卷(含答案)
- 基于STC89C52單片機(jī)的公交車乘客下車安全檢測系統(tǒng)
- 大學(xué)森林環(huán)境學(xué)教案
- 高層住宅柱下獨(dú)立承臺樁基礎(chǔ)設(shè)計實(shí)例
- 《湖南省醫(yī)療保險“雙通道”管理藥品使用申請表》
- 雅思詞匯(亂序版)Word list 6
- 應(yīng)急管理培訓(xùn)大綱
- 化學(xué)入門-給小學(xué)生講化學(xué)
- 廈門衛(wèi)生系統(tǒng)招聘2022年考試真題及答案解析【可復(fù)制版】
- GB/T 9166-2009四柱液壓機(jī)精度
評論
0/150
提交評論