通訊錄實驗報告_第1頁
通訊錄實驗報告_第2頁
通訊錄實驗報告_第3頁
通訊錄實驗報告_第4頁
通訊錄實驗報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE1實驗課程名稱通訊錄管理系統(tǒng)專業(yè)班級10級計科1班學(xué)生姓名學(xué)號指導(dǎo)教師2012至2013學(xué)年第一學(xué)期第1至18周目錄10448第1章概述 3178651.1現(xiàn)狀分析 3104471.2實現(xiàn)意義 33288第2章系統(tǒng)分析 4185902.1用戶需求分析 4286962.2管理者需求分析 429179第3章概要設(shè)計 5105763.1主控菜單設(shè)計 567903.2總結(jié)構(gòu)設(shè)計流程圖 622194第4章詳細(xì)設(shè)計 6129214.1通訊錄建立模塊設(shè)計 6284664.2通訊錄查詢模塊設(shè)計 715494.3通訊錄刪除模塊設(shè)計 7253024.4通訊錄鏈表的輸出模塊設(shè)計 83868第5章運行與測試 93668第6章總結(jié)和心得 924770參考文獻(xiàn) 109387附件(源代碼) 10第1章概述1.1現(xiàn)狀分析 日益繁多的人際交往使得我們很難記住與每個人之間的聯(lián)系方式,通訊錄能夠便捷的給我們帶來所需要的相關(guān)信息。為了實現(xiàn)通訊錄管理的幾種操作功能,首先設(shè)計一個含有多少個菜單項的主控菜單程序,然后再為這些菜單配上相應(yīng)的功能。1.2實現(xiàn)意義隨著計算機的普及,人們的生活擺脫了傳統(tǒng)式的記事本、電話簿,越來越多的靠計算機或者手機中的電話簿程序來幫助人們記住這些事情,極其簡便。這就需要有一個使用的通訊錄管理系統(tǒng),用戶可以方便的通過自己電腦的通訊錄管理系統(tǒng),來隨時查閱自己所需要的信息,而不必再大費周折去翻開那繁瑣的記事本。通訊錄管理系統(tǒng)是一個專門針對儲存用戶聯(lián)系方式以及一些簡單個人信息的實用管理系統(tǒng),它方便了用戶對眾多客戶、朋友、同事等個人信息的儲存和快速查閱的功能,大大減少了查找過程的時間。然而要靠計算機來記住這些信息,首先就得要求用單鏈表做數(shù)據(jù)結(jié)構(gòu),設(shè)計一個實現(xiàn)通訊者信息的輸入、查詢、刪除、輸出、等功能的通訊錄管理系統(tǒng)。每條通訊者信息包含:編號、姓名、性別、電話號碼、地址等信息。第2章系統(tǒng)分析2.1用戶需求分析為實現(xiàn)系統(tǒng)功能,本程序主要分為五個模塊。它們分別為:輸入一個信息、刪除一個信息、查詢一個信息、插入一個信息、輸出所有的信息、退出該程序。這五個函數(shù)再通過主函數(shù)調(diào)用分別得以實現(xiàn)。主函數(shù),首先提供了程序運行時的友好界面,列出了清單,提供用戶做出選擇,以便決定使用通訊錄的哪種功能。然后,通過執(zhí)行多分支選擇語句—switch語句,分別實現(xiàn)其它各個函數(shù)的調(diào)用功能。界面必須美觀簡潔能夠使人一目了然操作方便。2.2管理者需求分析題目要求編寫程序?qū)崿F(xiàn)通訊者通訊錄的管理每個同學(xué)的通訊錄基本信息包括編號、姓名、性別、電話和住址。要求給用戶提供功能界面根據(jù)用戶的選擇實現(xiàn)添加、查找、刪除、輸出某個記錄的功能用文件實現(xiàn)基本信息的存儲。按照題目要求同學(xué)通訊錄系統(tǒng)需要實現(xiàn)的功能有添加信息、查找信息、顯示信息以及刪除信息。并且在通訊錄的個人信息中必須包含有編號、姓名、性別、電話號碼以及家庭住址。據(jù)此要求可以得知本程序必須滿足以下要求:一、首先要有一個基本信息類類中包含有編號、姓名、性別、電話號碼以及家庭住址的內(nèi)容。二、必須有一個便于操作的菜單實現(xiàn)添加信息、查找信息、顯示信息以及刪除信息的功能。三、必須能夠?qū)崿F(xiàn)文件的存取以及修改功能以便于真正的達(dá)到同學(xué)錄記錄數(shù)據(jù)的目的。第3章概要設(shè)計根據(jù)要求通訊錄需要提供文件的輸入、輸出等操作;還需要保存記錄以進(jìn)行刪除、查找等操作,另外還需提供鍵盤式選擇菜單實現(xiàn)選擇功能。3.1主控菜單設(shè)計系統(tǒng)功能模塊圖如下:通訊錄管理系統(tǒng)建立通訊通訊錄管理系統(tǒng)建立通訊添加記錄查詢記錄刪除記錄退出系統(tǒng)3.2總結(jié)構(gòu)設(shè)計流程圖第4章詳細(xì)設(shè)計4.1通訊錄建立模塊設(shè)計linklistcreatelist(void){ linklisthead=(listnode*)malloc(sizeof(listnode)); listnode*p,*rear; intflag=0; rear=head; while(flag==0) {p=(listnode*)malloc(sizeof(listnode)); printf("編號(4)姓名(8)性別(11)電話(11)地址(13)\n"); printf("**********\n"); scanf("%s%s%s%s%s",p->data.num,p->,p->data.sex,p->data.phone,p->data.addr); rear->next=p; rear=p; printf("結(jié)束建表嗎?(1/0):"); scanf("%d",&flag); } rear->next=NULL; returnhead;}4.2通訊錄查詢模塊設(shè)計listnode*listfind(linklisthead){ listnode*p; charnum[5]; charname[9]; intxz; printf("=============\n"); printf("1按編號查詢\n"); printf("2按姓名查詢\n"); printf("==========\n"); printf("請選擇\n"); p=head->next; scanf("%d",&xz); if(xz==1){ printf("請輸入查找者的編號"); scanf("%s",num); while(p&&strcmp(p->data.num,num)<0) p=p->next; if(p==NULL||strcmp(p->data.num,num)>0) returnp=NULL; elsereturnp;}elseif(xz==2){ printf("請輸入查找者的姓名"); scanf("%s",name); while(p&&strcmp(p->,name)!=0) p=p->next; returnp;}}4.3通訊錄刪除模塊設(shè)計voiddelnode(linklisthead){ intj=0; listnode*p,*q; p=listfind(head); if(p==NULL)printf("沒有查到要刪除的通訊者\n");printf("真的要刪除該結(jié)點嗎?(0/1)"); scanf("%d",&j); if(j==0){ q=head; while(q!=NULL&&q->next!=p) q=q->next; q->next=p->next; free(p); printf("通訊者已被刪除\n");}}4.4通訊錄鏈表的輸出模塊設(shè)計voidprintlist(linklisthead){ listnode*p; p=head->next; printf("編號姓名性別聯(lián)系電話地址\n"); printf("\n"); while(p!=NULL) { printf("%s,%s,%s,%s,%s\n",p->data.num,p->,p->data.sex,p->data.phone,p->data.addr); printf("\n"); p=p->next; }}第5章運行與測試第6章總結(jié)和心得在編代碼時,因為不細(xì)心的少符號或輸入有誤而導(dǎo)致花了大量時間去調(diào)試,終于調(diào)試對了又發(fā)現(xiàn)鏈接不起,拿到同學(xué)電腦上去調(diào)試,發(fā)現(xiàn)是安裝的軟件有問題。在運行監(jiān)測中第一項:通訊錄鏈表的建立,就出現(xiàn)了有問題,原本要求輸入五個參數(shù)就能完成起通訊錄鏈表的建立,但是出現(xiàn)要輸入六個參數(shù)才能完成建立?;厝タ丛创a才發(fā)現(xiàn)在輸出項中多輸了一個%s。接著調(diào)試,在通訊者結(jié)點的刪除中出現(xiàn)了無法刪除,經(jīng)過修改源代碼調(diào)試后又出現(xiàn)能刪除了但是又不能繼續(xù)往下做了,又進(jìn)行修改和調(diào)試找不出問題所在,沒辦法找同學(xué)幫我看了一下,才發(fā)現(xiàn)在通訊者結(jié)點的刪除代碼中沒有printf(“通訊者已被刪除!\n)經(jīng)過無數(shù)次的調(diào)試修改終于完成了,感到欣慰,也感到失落,原來不懂的太多太多。參考文獻(xiàn)[1]數(shù)據(jù)結(jié)構(gòu):嚴(yán)蔚敏,吳偉民編著.—北京:清華大學(xué)出版社,2007[2]數(shù)據(jù)結(jié)構(gòu)課程設(shè)計:蘇仕華編著.—北京:清華大學(xué)出版社,2002[3]數(shù)據(jù)結(jié)構(gòu)自學(xué)輔導(dǎo):蘇仕華編著.—北京:機械工業(yè)出版社,2005附件(源代碼)#include<stdio.h>#include<string.h>#include<stdlib.h>typedefstruct{ charnum[5]; charname[9]; charsex[3]; charphone[13]; charaddr[31];}datatype;typedefstructnode{ datatypedata; structnode*next;}listnode;typedeflistnode*linklist;linklisthead;listnode*p;intmenu_select();linklistcreatelist(void);voidinsertnode(linklisthead,listnode*p);listnode*listfind(linklisthead);voiddelnode(linklisthead);voidprintlist(linklisthead);voidmain(){ for(;;){ switch(menu_select()) { case1: printf("**********\n"); printf("通訊錄鏈表的建立"); printf("**********\n"); head=createlist(); break; case2: printf("**********\n"); printf("通訊者信息的添加"); printf("**********"); printf("編號(4)姓名(8)性別(11)電話(11)地址(13)"); printf("**********\n"); p=(listnode*)malloc(sizeof(listnode)); scanf("%s%s%s%s%s",p->data.num,p->,p->data.sex,p->data.phone,p->data.addr); insertnode(head,p); break; case3: printf("**********\n"); printf("通訊者信息的查詢"); printf("**********\n"); p=listfind(head); if(p!=NULL){ printf("編號姓名性別電話地址\n"); printf("%s,%s,%s,%s,%s\n",p->data.num,p->,p->data.sex,p->data.phone,p->data.addr); printf("**********\n"); } else printf("沒有查到通訊者!\n"); break; case4: printf("**********\n"); printf("通訊錄信息刪除"); printf("**********\n"); delnode(head); case5: printf("**********\n"); printf("通訊錄信息輸出"); printf("**********\n"); printlist(head); break; case0: printf("\t再見!\n"); return; } }}/**********/intmenu_select(){ intsn; printf("通訊錄管理席系統(tǒng)\n"); printf("===========\n"); printf("1通訊錄鏈表的建立\n"); printf("2通訊者結(jié)點的插入\n"); printf("3通訊者結(jié)點的查詢\n"); printf("4通訊者結(jié)點的刪除\n"); printf("5通訊鏈表的輸出\n");printf("0退出管理系統(tǒng)\n"); printf("===========\n"); printf("請選擇0-5"); for(;;) { scanf("%d",&sn); if(sn<0||sn>5) printf("\n\t輸入錯誤,重選0-5"); else break; } returnsn;}linklistcreatelist(void){ linklisthead=(listnode*)malloc(sizeof(listnode)); listnode*p,*rear; intflag=0; rear=head; while(flag==0) {p=(listnode*)malloc(sizeof(listnode)); printf("編號(4)姓名(8)性別(11)電話(11)地址(13)\n"); printf("**********\n"); scanf("%s%s%s%s%s",p->data.num,p->,p->data.sex,p->data.phone,p->data.addr); rear->next=p; rear=p; printf("結(jié)束建表嗎?(1/0):"); scanf("%d",&flag); } rear->next=NULL; returnhead;}voidinsertnode(linklisthead,listnode*p){ listnode*p1,*p2; p1=head; p2=p1->next; while(p2!=NULL&&strcmp(p2->data.num,p->data.num)<0) { p1=p2; p2=p2->next; } p1->next=p; p->next=p2;}listnode*listfind(linklisthead){ listnode*p; charnum[5]; charname[9]; intxz; printf("=============\n"); printf("1按編號查詢\n"); printf("2按姓名查詢\n"); printf("==========\n"); printf("請選擇\n"); p=head->next; scanf("%d",&xz); if(xz==1){ printf("請輸入查找者的編號"); scanf("%s",num); while(p&&strcmp(p->data.num,num)<0) p=p->next; if(p==NULL||strcmp(p->dat

溫馨提示

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

評論

0/150

提交評論