




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
安徽工業(yè)大學計算機學院軟件工程導論實驗報告通訊錄管理系統(tǒng)學院:計算機學院班級:軟件工程班姓名:XXX學號:XXXXXX教師: 胡增濤1目錄1、 可行性研究-------------------------------4項目由來可選方案可行性2、 需求規(guī)格說明---------------------------51、基本目標2、功能要求3、數(shù)據(jù)需求3、詳細設計---------------74、程序源代碼與測試 ---------------------115 、 測 試 內(nèi) 容 和 結(jié) 果 表 +運 行 效 果 抓 圖--------------------------196、總結(jié)----------------------------262題目 通訊錄管理系統(tǒng)的課程報告課程設計內(nèi)容簡介:在原有的代碼基礎上進行修改,使之更加簡明、易操作,提高了代碼的實際用途,使其更加人性化,主界面更加簡潔明了,便于人機溝通。并且耗時較短,對設備和人力的要求較低,開發(fā)成本最大程度上得到了控制。。設計者姓名 XXX指導老師意見:指導老師簽名3一、可行性研究報告項目由來隨著網(wǎng)絡與信息技術的發(fā)展,社會的關系愈加復雜,人們的聯(lián)系人越來越多,需要聯(lián)系的人逐漸增多,需要記錄的信息也是與日巨增。通常是將這些信息手寫到通訊錄中,但是這樣很容易使信息丟失,而且龐大的信息都手寫入通訊錄中使得查找起來很不方便。于是通訊錄管理系統(tǒng)是一個非常通用的管理系統(tǒng)了。在現(xiàn)今生活中我們很多地方都需要擁有自己的通訊錄管理以系便統(tǒng)簡,單而明確地對自己的同學、同事、朋友等信息資料的管理及使用。可選方案對原有的通訊錄進行一定程度上的改進代碼,如:通過增加函數(shù)以實現(xiàn)更多的功能,并且實現(xiàn)同學信息的管理,包括同學信息的添加、修改、查詢和刪除,及一些輔助項目管理,如登錄系統(tǒng)用戶管理和用戶組管理。系統(tǒng)的組成模塊主要包括數(shù)據(jù)集模塊,登錄窗體模塊,系統(tǒng)管理模塊,主窗體模塊,通訊錄模塊,通訊錄數(shù)據(jù)管理模塊,信息管理模塊,登錄信息查詢模塊??尚行裕杭夹g可行性本程序是在原有的通訊錄代碼的基礎上進行修改而得的,只是簡單的添加了個別功能與輸出格式,所用C語言知識不是太過復雜,只是簡單的應用,同時開發(fā)所需設備(個人電4腦)容易獲得,所以只需要一定的時間進行熟悉現(xiàn)有代碼并進行修改設計便可個人獨立完成。技術可行性較高。:經(jīng)濟可行性在開發(fā)成本上,技術設備與人員要求較低,成本低廉。而在社會上,通訊錄管理系統(tǒng)的需求量較大,尤其是更加適合、適應人們生活的通訊錄管理系統(tǒng)尤為受人們的喜愛,所以一個好的通訊錄管理系統(tǒng)在社會上的前景是很好的,并且通訊錄管理系統(tǒng)的后期維護與更新較為簡單,且成本同樣不高。這樣可知通訊錄管理系統(tǒng)的收益遠遠大于成本。:社會可行性顯而易見通訊錄管理系統(tǒng)在法律上是可行的,畢竟不犯法嘛!而在用戶關系上,通訊錄管理系統(tǒng)的適用用戶是廣大的全部社會群體,用戶數(shù)量龐大??尚行院艽?。二、需求規(guī)格說明基本目標通過在原程序基礎上進行一定程度上的修改,使其界面更加簡潔明了。本設計主要包括系統(tǒng)用戶管理模塊、用戶基本資料模塊。根據(jù)這些功能,設計出系統(tǒng)的功能模塊,分別是查詢(查看、預覽、排序)模塊,具體實現(xiàn)了用戶和人員信息的查看和預覽;更新(添加、修改、刪除)模塊,具體實現(xiàn)了用戶和(新)人員信息的登記,修改和刪除;生成預覽報表(顯示通訊錄),具體實現(xiàn)了人員信息的總的查看和瀏覽。功能要求由主函數(shù)讀入用戶的命令,進行判斷,如果命令符合預定規(guī)則,則確認請求,并執(zhí)行相應的命令(顯示、添加、按姓名查找、刪除、5排序、從文件讀取、寫入文件),執(zhí)行后對屏幕進行更新,然后讀入第二條命令,如此往復。數(shù)據(jù)需求定義了結(jié)構(gòu)體數(shù)據(jù)變量,指針數(shù)據(jù)變量等數(shù)據(jù)類型。說明:main()函數(shù)打開通訊錄Menu()函數(shù)選擇要操作的功能Load()函數(shù)讀取文件內(nèi)容到通訊錄List()函數(shù)顯示通訊錄中的內(nèi)容App函數(shù)添加記錄到通訊錄Search函數(shù)按姓名查找Dele函數(shù)刪除記錄Save函數(shù)保存記錄Sort函數(shù)按姓名排序6總體設計詳細設計主要功能模塊的算法設計思路如下:1、添加信息函數(shù)1)定義指向結(jié)構(gòu)體變量的指針;2)移動指針,找到插入結(jié)點;3)在要插入的結(jié)點輸入信息;4)調(diào)用保存函數(shù),打開文件,保存輸入信息。2、修改信息函數(shù)1)定義指向結(jié)構(gòu)體變量的指針;2)用指針檢驗原通訊錄是否有記錄,若沒記錄,返回主函數(shù);3)根據(jù)要修改的編號查找對應結(jié)點;74)修改信息;5)打開文件,保存修改記錄。3、刪除信息函數(shù)1)定義指向結(jié)構(gòu)體變量的指針;2)用指針檢驗原通訊錄中是否有記錄,若沒記錄,返回主函數(shù);3)根據(jù)要修改的編號查找要刪除的結(jié)點;4)修改鏈表,刪除對應結(jié)點。4、顯示記錄函數(shù)1)打開文件;2)用指針檢驗是否有記錄;3)若無記錄,輸出提示信息,返回主函數(shù);若有記錄,移動指針,依次輸出記錄;4)關閉文件。5、查詢通訊錄信息1)選擇查詢方式(姓名);2)輸入查詢關鍵字:3)在鏈表中尋找相應結(jié)點;4)調(diào)用輸出函數(shù),輸出結(jié)點信息。各個函數(shù)的流程圖如下:添加信息FILE*p, 打開該磁盤文件從鍵盤輸入數(shù)據(jù)有0條輸出當前通訊錄中的內(nèi)容有n條插入表頭 插入表尾輸出數(shù)據(jù),存入磁盤文件關閉文件8顯示信息FILE*fp, 打開該文件p=head, 使p指向第一個結(jié)點P指向的不是尾結(jié)點真 假輸出p所指向的結(jié)點指向下一個結(jié)點按姓名查找打開磁盤文件是 鏈表為空 否輸 出 p=head“尚無記 當name2=p->name是 P是要找的結(jié)點 否錄信息”輸出此結(jié)點 輸出“查無此人 “的信息關閉文件刪除函數(shù):打開文件 選擇刪除服務輸入要刪除記錄的編號9否該記錄是否存在是沒有該記錄 成功刪除返回主菜單排序函數(shù):打開文件 選擇排序服務是按姓名排序 是否顯示否排序后結(jié)返回主菜單保存函數(shù):打開該文件是 假聯(lián)系人是否為 0否輸出p所指向的結(jié)點指向下一個結(jié)點10返回主菜單程序源代碼與測試#include<stdio.h>#include<stdlib.h>#include"string.h"/*字符串函數(shù)庫*/#defineSIZE80#defineHEADER1"-------------------------------王海峰的通訊錄-------------------------------\n"/*宏變量*/#defineHEADER2"|編號|姓名|年齡|電話號碼|郵箱|地址|郵編|\n"#defineHEADER3"|------|---------------|--------|-------------|-----------|---------|---------|\n"#defineFORMAT"|%-6s|%-15s|%-8s|%-13d|%-11s|%-9s|%-9s|\n"#defineDATAp->data.num,p->,p->data.age,p->data.tel,p->data.email,p->data.addr,p->zipstructrecord{intnum;charname[9];intage;chartel[13];charemail[20];charaddr[20];charzip[7];11}rec[SIZE];inti,m=0; //m為當前通訊錄中的記錄數(shù)charmenu(); //選單voidload(); //讀入voidlist(); //顯示voidapp(); //添加voidsearch(); //查找voiddele(); //刪除voidsave(); //保存voidsort(); //排序//**********************************************main(){charchoice;while(1){choice=menu();switch(choice){case'1':printf("顯示通訊錄中的內(nèi)容。\n");list(); break;case'2':printf("添加記錄。\n");app(); break;case'3':printf("按姓名查找。\n");search(); break;case'4':printf("從通訊錄中的刪除內(nèi)容。 \n");dele(); break;case'5':printf("按姓名對通訊錄中的內(nèi)容重新排序。 \n");sort(); break;case'6':printf("保存通訊錄中的內(nèi)容到文件。 \n");save(); break;12case'7':printf("從文件讀記錄到通訊錄。 \n");load(); break;case'0':printf("退出通訊錄管理系統(tǒng)。\n");save(); break;default:printf("輸入錯誤!");}if(choice=='0')break;printf("\n按任意鍵繼續(xù).......!");getchar();}}//******************************************************************************charmenu(){charc;printf("\n\n\n\n 王海峰的通訊錄\n");printf("*************************************************************\n");printf("*************************Menu********************************\n");printf("**1顯示通訊錄中的內(nèi)容**\n");printf("**2添加記錄**\n");printf("**3按姓名查找**\n");printf("**4從通訊錄中的刪除內(nèi)容**\n");printf("**5按姓名對通訊錄中的內(nèi)容重新排序**\n");printf("**6保存通訊錄中的內(nèi)容到文件**\n");13printf("**7從文件讀記錄到通訊錄**\n");printf("**0退出通訊錄管理系統(tǒng)**\n");printf("*************************************************************\n");printf(" ********************* 請選擇服務0--7**************************\n");c=getchar();getchar();returnc;}//*******************************************************************************voidload() //從文件度記錄到通訊錄中{FILE*fp;if((fp=fopen("e:/txl.txt","rb"))==NULL){printf("Cannotopenfile");exit(0);}list();for(i=0;i<m;i++)if(fwrite(&rec[i],sizeof(structrecord),1,fp)!=1)printf("Filewreteerror!\n");fclose(fp);}//*******************************************************************************voidlist() //顯示通訊錄中的內(nèi)容{14for(i=0;i<m;i++){if(rec[i].name[0]){printf("%3d%-8s%2d",rec[i].num,rec[i].name,rec[i].age);printf("%-12s%-20s",rec[i].tel,rec[i].email);printf("%-20s%-6s\n",rec[i].addr,rec[i].zip);}}}//*********************************************************************************voidapp() //添加記錄{charan;puts("當前通訊錄中的內(nèi)容:\n");list();printf("當前通訊錄中有%d條記錄。\n",m);do{rec[m].num=m+1;printf("姓名:");gets(rec[m].name);printf("年齡:");scanf("%d",&rec[m].age);getchar();printf("電話:");gets(rec[m].tel);printf("email:");gets(rec[m].email);printf("地址:");gets(rec[m].addr);printf("郵編:");gets(rec[m].zip);puts("新輸入的記錄為:");printf("%3d%-8s%2d",rec[m].num,rec[m].name,rec[m].age);printf("%-12s%-20s",rec[m].tel,rec[m].email);printf("%-20s%-6s\n",rec[m].addr,rec[m].zip);m++;15puts("繼續(xù)輸入嗎?(Y/N)");an=toupper(getchar());getchar();}while(an=='Y');}//********************************************************************voidsearch() //按姓名查找{charxm[9];printf("請輸入查找的姓名:");gets(xm);for(i=0;i<m;i++){if(strcmp(xm,rec[i].name)==0){printf("%3d%-8s%2d",rec[i].num,rec[i].name,rec[i].age);printf("%-12s%-20s",rec[i].tel,rec[i].email);printf("%-20s%-6s\n",rec[i].addr,rec[i].zip);break;}}}//*********************************************************************voiddele() //刪除記錄{intsc;list();printf("當前通訊錄中有%d條記錄。\n",m);do{printf("刪除幾號記錄:");16scanf("%d",&sc);}while(sc>m&&sc>0);if(sc!=m-1)for(i=sc;i<m;i++){rec[i-1]=rec[i];rec[i-1].num=i;}m--;list();}//*********************************************************************voidsave() //保存通訊錄中的內(nèi)容到文件{FILE*fp;if((fp=fopen("txl.txt","wb"))==NULL){printf("Cannotopenfile");exit(0);}list();for(i=0;i<m;i++)if(fwrite(&rec[i],sizeof(structrecord),1,fp)!=1)printf("Filewreteerror!\n");fclose(fp);}//*************************************************************voidsort() //按姓名對通訊錄中的內(nèi)容重新排序{intj,k;structrecordt;17list();for(i=0;i<m-1;i++){k=i;for(j=i;j<m;j++)if(strcmp(rec[k].name,rec[j].name)>0)k=j;if(k!=i){t=rec[k];rec[k]=rec[i];rec[i]=t;}for(i=0;i<m;i++)rec[i].num=i+1;}puts("\n排序已完成!");list();}18測試內(nèi)容和結(jié)果表+運行效果抓圖1、首面192、添加記錄3、按姓名查找2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐廳禮儀類考試題及答案
- 新疆維吾爾自治區(qū)喀什地區(qū)莎車縣2024-2025學年高一上學期1月期末考試物理試題(含答案)
- 【假期提升】五升六語文暑假作業(yè)(六)-人教部編版(含答案含解析)
- 琴行培訓考試題及答案
- 2025年消防設施操作員之消防設備高級技能基礎試題庫和答案要點
- 籌建類面試題思路及答案
- 2023年遼寧省中考生物試卷(含答案)
- 2024廣東省中考英語真題含答案
- 采購與售后分包合同(2篇)
- 行政崗干貨知識培訓課件
- 2024年新課標卷高考化學試卷試題真題答案詳解(精校打印版)
- 音頻功率放大器的設計與實現(xiàn)
- 2024年高等教育文學類自考-01210對外漢語教學法考試近5年真題集錦(頻考類試題)帶答案
- 《長江流域》習題課件
- 2024年教師編制考試教育理論綜合基礎知識復習題庫及答案(共300題)
- 部編版三年級《習作我做了一項小實驗》教案
- 智能制造市場現(xiàn)狀及發(fā)展前景分析報告
- (高清版)WST 406-2024 臨床血液檢驗常用項目分析質(zhì)量標準
- 消防安全技術綜合能力要點概述
- DL-T 5148-2021水工建筑物水泥灌漿施工技術條件-PDF解密
- 第8版精神病學
評論
0/150
提交評論