![c通信錄程序設(shè)計-課程設(shè)計報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/9cdb9724-e0ab-408a-8b4f-6967cb110bd6/9cdb9724-e0ab-408a-8b4f-6967cb110bd61.gif)
![c通信錄程序設(shè)計-課程設(shè)計報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/9cdb9724-e0ab-408a-8b4f-6967cb110bd6/9cdb9724-e0ab-408a-8b4f-6967cb110bd62.gif)
![c通信錄程序設(shè)計-課程設(shè)計報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/9cdb9724-e0ab-408a-8b4f-6967cb110bd6/9cdb9724-e0ab-408a-8b4f-6967cb110bd63.gif)
![c通信錄程序設(shè)計-課程設(shè)計報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/9cdb9724-e0ab-408a-8b4f-6967cb110bd6/9cdb9724-e0ab-408a-8b4f-6967cb110bd64.gif)
![c通信錄程序設(shè)計-課程設(shè)計報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/9cdb9724-e0ab-408a-8b4f-6967cb110bd6/9cdb9724-e0ab-408a-8b4f-6967cb110bd65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué)號2016-2016學(xué)年 第二學(xué)期高級語言程序設(shè)計課程設(shè)計報告題目:通信錄程序設(shè)計專業(yè):網(wǎng)絡(luò)工程(對口)班級:16(3)班姓名:代應(yīng)豪指導(dǎo)教師:程慶成績:計算機學(xué)院2017年4月25日目錄專心-專注-專業(yè)1.設(shè)計內(nèi)容及要求 1.1、課程設(shè)計的內(nèi)容編寫學(xué)生通信錄程序,包括以下功能模塊:1、通信錄的每一條信息包括姓名、地址、郵政編碼、電話號碼。2、輸入功能:可以一次完成若干條信息的輸入。3、顯示功能:完成全部通信錄信息的顯示。4、查找功能:完成按姓名查找通信信息,并顯示。5、增加功能:增加通信信息。6、刪除功能:完成按姓名刪除通信信息。7、應(yīng)提供一個界面來調(diào)用各個功能,
2、調(diào)用界面和各個功能的操作界面應(yīng)盡可能清晰美觀! 1.2、課程設(shè)計的要求與數(shù)據(jù) 1、要求利用結(jié)構(gòu)化程序設(shè)計方法以及C的編程思想來完成系統(tǒng)的設(shè)計。 2、要求有菜單、文件操作,數(shù)據(jù)使用數(shù)組、結(jié)構(gòu)體、鏈表等均可,鍵盤操作或鼠標(biāo)操作均可。 3、系統(tǒng)具有增加,查詢,刪除等基本功能; 4、模塊化程序設(shè)計:要求在設(shè)計的過程中,按功能定義函數(shù)或書寫多個文件,進行模塊化設(shè)計,各個功能模塊用函數(shù)的形式來實現(xiàn)。 5、完成設(shè)計任務(wù)并編寫課程設(shè)計說明書。2.概要設(shè)計設(shè)計與開發(fā)一個通訊錄管理系統(tǒng),對通訊錄中的姓名、單位、電話、QQ 、mail等基本信息進行管理、主要功能如下: 1)輸入記錄; 2)顯示記錄; 3)按姓名查找
3、顯示記錄; 4)刪除記錄; 5)插入記錄; 6)記錄保存為文件; 7)從文件中讀記錄; 8)按姓名排序; 9)顯示單條記錄;3.設(shè)計過程或程序代碼 3.1 問題描述 制作一個通訊錄,要求該系統(tǒng)對通訊錄的姓名,單位,電話,進行輸入,顯示 ,查找,刪除,插入,保存等操作的管理。 3.2 功能要求1,本系統(tǒng)采用一個結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)包括;姓名,單位,電話名稱。 2, 本系統(tǒng)顯示這樣的菜單 請選擇系統(tǒng)功能項 a 輸入記錄;b 顯示全部紀(jì)錄; c 查找記錄; d 刪除記錄; e 插入記錄; f 保存文件 ; g 讀文件:(1)按序號顯示記錄;(2)按姓名排序;(3)快速查找記錄;(4)復(fù)制文件
4、。 3.3 算法提示1 數(shù)據(jù)結(jié)構(gòu);結(jié)構(gòu)體類型數(shù)組。2 數(shù)據(jù)庫結(jié)構(gòu);下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫。姓 名電 話學(xué)號3.4 測試數(shù)據(jù)姓名電話學(xué)號Zhang152························3.4課題的主要功能模塊劃分 3.5主要功能的實現(xiàn)3.5.1源程序#include <stdio.h>#include <conio.h&g
5、t; #include <string.h> #include <stdlib.h> #define N 100 int M=3; struct student char num10;char name10;char tel10; void myprint() system("cls"); printf(" |-|n"); printf(" | :-)請輸入選項編號(0-7): |n"); printf(" |-|n"); printf(" |-1-創(chuàng)建通訊錄-|n");
6、 printf(" |-2-顯示通訊錄-|n"); printf(" |-3-查詢通訊錄-|n"); printf(" |-4-修改通訊錄-|n"); printf(" |-5-添加通訊錄-|n"); printf(" |-6-刪除通訊錄-|n"); printf(" |-7-排序通訊錄-|n"); printf(" |-0-退出-|n"); printf(" |-|n"); void mycreat(struct student *p
7、,int n) struct student *q=p; FILE *fp=NULL; fp=fopen("d:jilu.dat","w"); if(fp=NULL)printf("error"); return; for(p=q;p-q<n;p+) printf("n"); printf("第%d條記錄:n",p-q+1); printf("學(xué)號:"); do gets(p->num); while(strcmp(p->num,"")=
8、0); printf("姓名:"); gets(p->name); printf("電話:"); gets(p->tel); fprintf(fp,"%23s%15s%15sn",p->num,p->name,p->tel); void mydisplay(struct student *p,int n) FILE *fp=NULL; fp=fopen("d:jilu.dat","r"); if(fp=NULL)printf("error");
9、return; system("cls"); printf(" 學(xué)號 姓名 電話n"); while(n>0) fscanf(fp,"%23s%15s%15s",p->num,p->name,p->tel); printf("%23s%15s%15sn",p->num,p->name,p->tel); p+;n-; void mysearch(struct student *p,int n) struct student *q=p; int flag=0; char c=&
10、#39;0',nm10="",nam10="" printf("n按照學(xué)號查詢(h)或姓名查詢(m):n"); c=getche(); if(c='h'|c='H') printf("請輸入要查詢記錄的學(xué)號:");gets(nm); for(p=q;p-q<n;p+) if(strcmp(nm,p->num)=0) printf(" 學(xué)號 姓名 電話n"); printf("%23s%15s%15sn",p->num,
11、p->name,p->tel); flag=1; if(flag=0) printf("wrong.n"); else if(c='m'|c='M') printf("請輸入要查詢記錄的姓名:");gets(nam); for(p=q;p-q<n;p+) if(strcmp(nam,p->name)=0) printf(" 學(xué)號 姓名 電話n"); printf("%23s%15s%15sn",p->num,p->name,p->tel);
12、flag=1; if(flag=0) printf("wrong.n"); else printf("wrong.n"); void mymodify(struct student *p,int n) struct student *q=p; FILE *fp=NULL; char nam10="" mydisplay(p,n); printf("請輸入您想要修改記錄的姓名:n");gets(nam); for(p=q;p-q<n;p+) if(strcmp(nam,p->name)=0) break;
13、 if(p-q=n) printf("wrong."); else printf("請輸入正確的學(xué)號:"); do gets(p->num); while(strcmp(p->num,"")=0); printf("請輸入正確的姓名:"); gets(p->name); printf("請輸入正確的電話:"); gets(p->tel); fp=fopen("d:jilu.dat","w"); if(fp=NULL)printf(&
14、quot;error"); exit(0); for(p=q;p-q<n;p+) fprintf(fp,"%23s%15s%15sn",p->num,p->name,p->tel); fclose(fp); void myadd(struct student *p,int n) FILE *fp=NULL; struct student *q=p; char c='n',tempnum10="",tempname10="",temptel10="" printf(&
15、quot;n"); while(strcmp(p->num,"")!=0) printf("%23s%15s%15sn",p->num,p->name,p->tel); p+; n=p-q; do printf("請輸入新紀(jì)錄的學(xué)號:"); do gets(tempnum); while(strcmp(tempnum,"")=0); printf("請輸入新紀(jì)錄的姓名:"); gets(tempname); printf("請輸入新紀(jì)錄的電話:&quo
16、t;); gets(temptel); for(p=q;p-q<n;p+) if(strcmp(tempnum,p->num)=0|strcmp(temptel,p->tel)=0) printf("學(xué)號或電話號碼需要重新輸入嗎(Y/N)?"); c=getche(); putchar('n'); break; if(p-q=n) strcpy(p->num,tempnum); strcpy(p->name,tempname); strcpy(p->tel,temptel); break; while(c='y
17、39;|c='Y'); fp=fopen("d:jilu.dat","w"); if(fp=NULL)printf("error"); return; for(p=q;p-q<=n;p+) fprintf(fp,"%23s%15s%15sn",p->num,p->name,p->tel); fclose(fp); M+; void mydelete(struct student *p,int n) FILE *fp=NULL; struct student *q=p; cha
18、r c10="",tempnum10="",tempname10="",temptel10="",choose='0' mydisplay(p,n); printf("選擇刪除記錄的方式:學(xué)號(h)姓名(m)"); choose=getche(); printf("n"); if(choose='m'|choose='M') printf("刪除的記錄:"); gets(c); for(;p-q<n;p
19、+) if(strcmp(c,p->name)=0) break; if(p-q<n) for(;p-q<n-1;p+) strcpy(p->num,(p+1)->num); strcpy(p->name,(p+1)->name); strcpy(p->tel,(p+1)->tel); else printf("non"); else if(choose='h'|choose='H') printf("刪除的記錄:"); gets(c); for(;p-q<n;p
20、+) if(strcmp(c,p->num)=0) break; if(p-q<n) for(;p-q<n-1;p+) strcpy(p->num,(p+1)->num); strcpy(p->name,(p+1)->name); strcpy(p->tel,(p+1)->tel); else printf("no"); else printf("wrongn"); fp=fopen("d:jilu.dat","w"); if(fp=NULL)printf(&q
21、uot;error"); return; for(p=q;p-q<n-1;p+) fprintf(fp,"%23s%15s%15sn",p->num,p->name,p->tel); fclose(fp); M-; void mysort(struct student *p,int n) FILE *fp=NULL; struct student *q=p,*w=p,*a=p; char temp10="",c1='0',c2='0' mydisplay(p,n); printf(&quo
22、t;選擇按照學(xué)號(h)或姓名(m)排序:n"); c1=getche(); if(c1='h'|c1='H') printf("升序(s)或者降序(j)排列:"); c2=getche(); if(c2='s'|c2='S') for(;p-a<n;p+) w=p; for(q=p+1;q-a<n;q+) if(strcmp(w->num,q->num)>0) w=q; strcpy(temp,w->num); strcpy(w->num,p->num)
23、; strcpy(p->num,temp); strcpy(temp,w->name); strcpy(w->name,p->name); strcpy(p->name,temp); strcpy(temp,w->tel); strcpy(w->tel,p->tel); strcpy(p->tel,temp); else if(c2='j'|c2='J') for(;p-a<n;p+) w=p; for(q=p+1;q-a<n;q+) if(strcmp(w->num,q->num)&
24、lt;0) w=q; strcpy(temp,w->num); strcpy(w->num,p->num); strcpy(p->num,temp); strcpy(temp,w->name); strcpy(w->name,p->name); strcpy(p->name,temp); strcpy(temp,w->tel); strcpy(w->tel,p->tel); strcpy(p->tel,temp); else printf("555wrong.n"); else if(c1='m
25、'|c1='M') printf("升序(s)或者降序(j)排列:"); c2=getche(); if(c2='s'|c2='S') for(;p-a<n;p+) w=p; for(q=p+1;q-a<n;q+) if(strcmp(w->name,q->name)>0) w=q; strcpy(temp,w->num); strcpy(w->num,p->num); strcpy(p->num,temp); strcpy(temp,w->name); st
26、rcpy(w->name,p->name); strcpy(p->name,temp); strcpy(temp,w->tel); strcpy(w->tel,p->tel); strcpy(p->tel,temp); else if(c2='j'|c2='J') for(;p-a<n;p+) w=p; for(q=p+1;q-a<n;q+) if(strcmp(w->name,q->name)<0) w=q; strcpy(temp,w->num); strcpy(w->num
27、,p->num); strcpy(p->num,temp); strcpy(temp,w->name); strcpy(w->name,p->name); strcpy(p->name,temp); strcpy(temp,w->tel); strcpy(w->tel,p->tel); strcpy(p->tel,temp); else printf("555wrong.n"); else printf("555wrong.n"); fp=fopen("d:jilu.dat"
28、,"w"); if(fp=NULL)printf("error"); return; for(p=a;p-a<=n;p+) fprintf(fp,"%23s%15s%15sn",p->num,p->name,p->tel); fclose(fp); main() char choose='0',yes_no='0' struct student recordN=0; do myprint(); printf(" :-)請選擇(0-7):"); choose=g
29、etche(); switch(choose) case '1':mycreat(record,M);break; case '2':mydisplay(record,M);break; case '3':mysearch(record,M);break; case '4':mymodify(record,M);break; case '5':myadd(record,M);break; case '6':mydelete(record,M);break; case '7':myso
30、rt(record,M);break; case '0':exit(0); default :printf("nerror.n"); printf("n :-)繼續(xù)選擇嗎(y/n)?n"); do yes_no=getch(); while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); while(yes_no='Y'|yes_no='y'
31、;); 4.設(shè)計結(jié)果與分析 4.1 程序調(diào)試 先進行人工檢查,即靜態(tài)檢查。在寫好一個程序以后,不要匆匆忙忙上機,而應(yīng)對程序進行人工檢查。這一步十分重要,它能發(fā)現(xiàn)程序設(shè)計人員由于疏忽而造成的多數(shù)錯誤。這一步往往容易被人忽視,總希望把一切都推給計算機去做,但這樣會多占用機器時間,作為一個程序人員應(yīng)當(dāng)養(yǎng)成嚴(yán)謹(jǐn)?shù)淖黠L(fēng),每一步都要嚴(yán)格把關(guān),不把問題留給后面的工序。 為了更有效地進行人工檢查,所編的程序應(yīng)力求做到以下幾點:應(yīng)當(dāng)采用結(jié)構(gòu)化程序方法編程,以增加可讀性;盡可能多加注釋,以幫助理解每段程序的作用;在編寫復(fù)雜的程序時不要將全部語句都寫在main函數(shù)中,而要多利用函數(shù),用一個函數(shù)來實現(xiàn)一個單獨的功能。各函數(shù)之間除用參數(shù)傳遞數(shù)據(jù)外,盡量少出現(xiàn)耦合關(guān)系,這樣便于分別檢查和處理。二、在人工檢查
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級英語下冊 Unit 10 單元綜合測試卷(人教陜西版 2025年春)
- 新人教版道德與法治七年級上冊《生命的思考-第八課-探問生命-敬畏生命》-77
- 2025年事業(yè)單位聘用合同協(xié)議樣本(2篇)
- 2025年臨時工勞動合同協(xié)議參考模板(三篇)
- 2025年五年級數(shù)學(xué)第一單元認(rèn)識負(fù)數(shù)教學(xué)心得范文(2篇)
- 2025年個人租地協(xié)議范文(2篇)
- 2025年產(chǎn)品使用合作合同(2篇)
- 2025年事業(yè)單位聘用勞動合同(4篇)
- 2025年代理商合作合同(2篇)
- 學(xué)校創(chuàng)意工坊改造協(xié)議
- 2025年中國南方航空股份有限公司招聘筆試參考題庫含答案解析
- 商務(wù)部發(fā)布《中國再生資源回收行業(yè)發(fā)展報告(2024)》
- 山東省濟南市2024-2024學(xué)年高三上學(xué)期1月期末考試 地理 含答案
- 2025年福建新華發(fā)行(集團)限責(zé)任公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 實施彈性退休制度暫行辦法解讀課件
- 冷凍食品配送售后服務(wù)體系方案
- 中華護理學(xué)會團體標(biāo)準(zhǔn)-氣管切開非機械通氣患者氣道護理
- C型鋼檢驗報告
- 檢驗科臨檢組風(fēng)險評估報告文書
- 幼小銜接拼音試卷-帶彩圖-幼小銜接拼音試卷圖片-幼小拼音試卷習(xí)題
- 曹晶《孫悟空大鬧蟠桃會》教學(xué)設(shè)計
評論
0/150
提交評論