C語言程序設(shè)計實習(xí)報告_第1頁
C語言程序設(shè)計實習(xí)報告_第2頁
C語言程序設(shè)計實習(xí)報告_第3頁
C語言程序設(shè)計實習(xí)報告_第4頁
C語言程序設(shè)計實習(xí)報告_第5頁
免費預(yù)覽已結(jié)束,剩余21頁可下載查看

付費下載

下載本文檔

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

文檔簡介

1、一、設(shè)計題目的任務(wù)和內(nèi)容任務(wù):本程序是非數(shù)值計算型算法設(shè)計,我設(shè)計出了通訊錄管理系統(tǒng)的基本功能,并設(shè)計 了簡單的界面。本程序主要考察對自定義函數(shù)的熟悉程度,本程序主要使用的是數(shù)組的相 關(guān)操作,包括結(jié)構(gòu)體數(shù)組的輸入、輸出、查找、刪除等。我設(shè)計的這個通訊錄系統(tǒng)也初步 實現(xiàn)了人員信息的顯示、刪除、查找、修改、添加等必要的功能。具體要求 :建立通訊錄信息,信息包含、姓名、分類( 1、辦公類 2、個人類 3、商務(wù)類)、電話、電子郵箱等;將通訊錄保存在文件中;查看功能:可按 1、辦公類 2、個人類 3、商務(wù)類分類查詢,當(dāng)選中其中一類時,顯示出此類所有數(shù)據(jù)中的姓名和電話號碼。增加功能:能錄入新數(shù)據(jù)。當(dāng)錄入重

2、復(fù)姓名和電話號碼時,則提示數(shù)據(jù)錄入重復(fù)并取消錄入;當(dāng)通訊錄中超過 15 條信息時,存儲空間已滿,不能錄入新數(shù)據(jù);錄入的新數(shù)據(jù)能按遞增的順序自動進行條目編號。修改功能:選中某個人的姓名是,可對此人的相應(yīng)數(shù)據(jù)進行修改。刪除功能:選中某個人的姓名是,可對此人的相應(yīng)數(shù)據(jù)進行刪除并自動調(diào)整后續(xù)條目編號。系統(tǒng)功能需求分析 :查詢:查詢通訊錄記錄添加:添加通訊錄記錄顯示:顯示通訊錄記錄刪除:刪除通訊錄記錄修改:修改通訊錄記錄二、總體設(shè)計思路本系統(tǒng)首先設(shè)計出了主函數(shù),然后根據(jù)去要實現(xiàn)的功能分別設(shè)計拉,顯示、刪除、查找、修改、添加功能的 子函數(shù)。在顯示的函數(shù)設(shè)計過程中首先運用拉文件的讀取等必要的知識通過把文件的

3、內(nèi)容讀取到內(nèi)存然后打印出 來。刪除函數(shù)的設(shè)計是首先從文件內(nèi)找到要刪除的人,然后通過寫一個實現(xiàn)刪除目的的FOR循環(huán)將該人從內(nèi)存里刪除,然后再用寫的方式打開文件,將內(nèi)存內(nèi)的信息寫入文件,實現(xiàn)刪除。查找也是先打開文件,用一個字符串 對比的方法找出用戶要查找的人,然后打印出來。修改也大體和刪除相同, 添加函數(shù)在設(shè)計時通過申請一片空間,然后通過指針將需要添加的信息添加進去,從而實現(xiàn)添加功能。系統(tǒng)功能模塊圖:輸入新信息:可輸入新的數(shù)據(jù)。添加:可以添加通訊錄記錄,依次輸入姓名、電話號碼、分類、電子郵箱后,會提示是否 繼續(xù)添加。刪除:輸入姓名刪除,輸入欲刪除的那個人的名字后,會自動刪除他(她)的記錄內(nèi)容 查詢

4、:可按 1辦公類2、個人類3、商務(wù)類分類查詢修改:輸入欲修改的那個人的名字后,再依次輸入姓名、電話號碼、分類、電子郵箱即可完成修改。F面就是總的程序流程圖del()printf#include"" #include"" #define N 15 typedef struct peoplechar name20;char num20;char sort20;char email30;PEO;PEO peoN;void enter();void menu();void browse();void add();void modify();void del();

5、modify_data(int i,int n);void printf_face();void printf_one(int i);void input(int i);void save(int n);load();void printf_sort(int i);void no_input(int i,int n);void name_input(int i,int n);void printf_back();void menu()int n,w1;doputs("ttt *手機通訊錄 *n");puts("tt* 菜單 *puts("tttt1.輸入

6、新信息 ");puts("tttt2.查看類型 ");puts("tttt3.添加信息 " );puts("tttt4.修改信息 ");puts("tttt5.刪除信息 ");puts("tttt6.返回 ");puts("nntt*n");printf(" 選擇所需功能 (1-6): bb");scanf("%d",&n);if(n<1|n>6)nn");w1=1;getchar();else

7、w1=0;while(w1=1);switch(n)case 1:enter();break;case 2:browse();break;case 3:add();break;case 4:modify();break;case 5:del();break;case 6:exit(0);main()menu();void enter()int i,n;printf(" 輸入聯(lián)系人的個數(shù) (0-%d):",N-1);scanf("%d",&n);for(i=0;i<n;i+)printf("n 輸入 %d 個聯(lián)系人信息 .n&quo

8、t;,i+1);printf("n 現(xiàn)在請開始輸入 nn");input(i);if(i!=0)save(n);printf_back();void browse()int i,k,n;PEO p;n=load();printf("nn 選擇類型 sort(a: 辦公類 b: 個人類 c: 商業(yè)類 ):" );scanf("%s",;printf("ntName numn");for(i=0;i<n;i+)if(strcmp,peoi.sort)=0)k=i;printf_sort(k);printf(&qu

9、ot;n");menu();void add()printf("nn");int i,k,m,n,j;FILE *fp;n=load();printf(" 您要添加多少個聯(lián)系人信息 (1-%d):",N-n);scanf("%d",&m);k=m+n-1;for(i=n;i<=k;i+)if(i>N-1)printf(" 儲存已滿,不能添加新信息 ");break;printf("n 輸入 %d 個聯(lián)系人記錄 .n",i-n+1);input(i);if(fp=fo

10、pen("","ab")=NULL)printf(" 無法打開文件 n");for(j=n;j<i;j+)if(fwrite(&peoj,sizeof(struct people),1,fp)!=1)printf(" 文件讀寫出錯 n");fclose(fp);printf_back();void modify()int i,k,n,w0=1,w1,w2=0;FILE *fp;PEO p;n=load();dok=-1;printf_face();for(i=0;i<n;i+)if(i!=0)&

11、amp;&(i%5=0)printf("nn 請記住你要修改的聯(lián)系人姓名 , 按任意鍵繼續(xù) .");getchar();puts("nn");doprintf_one(i);printf("nn 請輸入您所需修改的聯(lián)系人姓名! name:");scanf("%s",;for(i=0;i<n;i+)if(strcmp,)=0)k=i;p=peoi;if(k=-1)printf("nn輸入錯誤!請重新輸入 ");while(k=-1);printf_face();pr

12、intf_one(k);w1=modify_data(k,n);prin tf("nSuccessfu|A_A.nnif(w1=1)確認(rèn)需要修改其他信息? nnt1). 是 2). 返回tbb");scanf("%d",&w0);w2=1;e|sew0=0;if(w2=1)peok=p;if(w0!=1&&w2=1)save(n);while(w0=1);menu();void del()PEO p;FILE *fp;int k,w1,w0=0,w2=0,n,i;n=load();dok=-1;printf_face();for(

13、i=0;i<n;i+)if(i!=0)&&(i%5=0)getchar();puts("nn");printf("nn 請記住你要刪除的聯(lián)系人姓名 , 按任意鍵繼續(xù) ");doprintf_one(i);printf("nn 請輸入需要刪除的聯(lián)系人姓名 name:");scanf("%s",;for(i=0;i<n;i+)if(strcmp,)=0)k=i;p=peoi;if(k=-1)printf("nn輸入錯誤!請重試 ");while(k=-1

14、);printf_face();printf_one(k);printf("n 確認(rèn)刪除? nnt1). 確認(rèn) 2). 重新刪除 3). 返回 bb");scanf("%d",&w1);if(w1=1)prin tf("nSuccessfu|A_A.0=0;需要刪除其他數(shù)據(jù)? nnt1). 是 2). 返回tbb");scanf("%d",&w0);w2=1;elsew0=0;if(w2=1)peok=p;if(w0!=1&&w2=1)save(n);while

15、(w0=1);menu();modify_data(int i,int n)int c,w1;doprintf(" 請選擇你要修改的選項 (1-6): bb");puts("nmodify by=>nn 1).姓名 2). 電話 3). 類型 4). 郵箱地址 n 5).所有數(shù)據(jù) 6). 取消并返回 ");scanf("%d",&c);if(c>6|c<1)puts("n 選擇錯誤!請重新選擇! ");getchar();while(c>6|c<1);doswitch(c)ca

16、se 1:name_input(i,n);break;case 2:no_input(i,n);break;case 3:printf("sort:");scanf("%s",peoi.sort);break;case 4:printf("email:");scanf("%s",peoi.email);break;case 5:input(i);break;puts("nNow:n");printf_face();printf_one(i);printf("n 確認(rèn)修改? nnt1).

17、 是 2). 重新修改 3). 立即返回 bb");scanf("%d",&w1);while(w1=2);return(w1);void printf_face()printf("nt 姓名電話類型郵箱地址 n");void printf_one(int i)printf("%10s %14s %10s%10s",,peoi.num,peoi.sort,peoi.email);printf("n");void input(int i)name_input(i,i);no_inp

18、ut(i,i);printf("sort(a: 辦公類 b: 個人類 c: 商業(yè)類 ):");scanf("%s",peoi.sort);printf("email:");scanf("%s",peoi.email);void save(int n)FILE *fp;int i;if(fp=fopen("","wb")=NULL)printf("nCannot open filen");return NULL;for(i=0;i<n;i+)if(pe

19、0!=0) if(fwrite(&peoi,sizeof(struct people),1,fp)!=1)printf("file write errorn");fclose(fp);load()FILE *fp;int i;if(fp=fopen("","rb")=NULL)printf("nCan not open filen");return NULL;for(i=0;!feof(fp);i+)fread(&peoi,sizeof(struct people),1,fp);fcl

20、ose(fp);return(i-1);void printf_sort(int i)printf("%10s %14s",,peoi.num);void no_input(int i,int n) int j,w1,k;dow1=0;printf("NO.:");scanf("%s",peoi.num);for(j=0;peoi.numj!='0'j+)if(peoi.numj<'0'|peoi.numj>'9')puts(" 輸入錯誤!只能輸入

21、數(shù)字 (0-9). 請重新輸入 !n");w1=1;break;if(w1!=1)for(k=0;k<n;k+)if(k!=i&&strcmp(peok.num,peoi.num)=0)puts(" 這個記錄不存在,請重新輸入 !n");w1=1;break;while(w1=1);void name_input(int i,int n)int k,w1;dow1=0;printf("Name.:");scanf("%s",);for(k=0;k<n;k+)if(k!=i&&strcmp(,)=0)puts(" 這個記錄不存在,請重新輸入 !n");w1=1;break;while(w1=1);void printf_back()prin tf("nntSuccessful. A_Ann");menu();四、界面分析1、開始界面 2、輸入功能 3、查看功能 4、添加功能 5、修改功能 6、刪除功能 7、返回五、心得體會本次的 C 程序?qū)嵲O(shè)計實驗是我進入大學(xué)以來第一次獨立設(shè)計的實驗。通過自己動手,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論