軟件綜合實(shí)習(xí)設(shè)計(jì)報(bào)告_第1頁(yè)
軟件綜合實(shí)習(xí)設(shè)計(jì)報(bào)告_第2頁(yè)
軟件綜合實(shí)習(xí)設(shè)計(jì)報(bào)告_第3頁(yè)
軟件綜合實(shí)習(xí)設(shè)計(jì)報(bào)告_第4頁(yè)
軟件綜合實(shí)習(xí)設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院軟件工程導(dǎo)論實(shí)驗(yàn)報(bào)告通訊錄管理系統(tǒng)學(xué)院:計(jì)算機(jī)學(xué)院班級(jí):軟件工程班姓名:XXX學(xué)號(hào):XXXXXX教師: 胡增濤1目錄1、 可行性研究-------------------------------4項(xiàng)目由來(lái)可選方案可行性2、 需求規(guī)格說(shuō)明---------------------------51、基本目標(biāo)2、功能要求3、數(shù)據(jù)需求3、詳細(xì)設(shè)計(jì)---------------74、程序源代碼與測(cè)試 ---------------------115 、 測(cè) 試 內(nèi) 容 和 結(jié) 果 表 +運(yùn) 行 效 果 抓 圖--------------------------196、總結(jié)----------------------------262題目 通訊錄管理系統(tǒng)的課程報(bào)告課程設(shè)計(jì)內(nèi)容簡(jiǎn)介:在原有的代碼基礎(chǔ)上進(jìn)行修改,使之更加簡(jiǎn)明、易操作,提高了代碼的實(shí)際用途,使其更加人性化,主界面更加簡(jiǎn)潔明了,便于人機(jī)溝通。并且耗時(shí)較短,對(duì)設(shè)備和人力的要求較低,開(kāi)發(fā)成本最大程度上得到了控制。。設(shè)計(jì)者姓名 XXX指導(dǎo)老師意見(jiàn):指導(dǎo)老師簽名3一、可行性研究報(bào)告項(xiàng)目由來(lái)隨著網(wǎng)絡(luò)與信息技術(shù)的發(fā)展,社會(huì)的關(guān)系愈加復(fù)雜,人們的聯(lián)系人越來(lái)越多,需要聯(lián)系的人逐漸增多,需要記錄的信息也是與日巨增。通常是將這些信息手寫(xiě)到通訊錄中,但是這樣很容易使信息丟失,而且龐大的信息都手寫(xiě)入通訊錄中使得查找起來(lái)很不方便。于是通訊錄管理系統(tǒng)是一個(gè)非常通用的管理系統(tǒng)了。在現(xiàn)今生活中我們很多地方都需要擁有自己的通訊錄管理以系便統(tǒng)簡(jiǎn),單而明確地對(duì)自己的同學(xué)、同事、朋友等信息資料的管理及使用。可選方案對(duì)原有的通訊錄進(jìn)行一定程度上的改進(jìn)代碼,如:通過(guò)增加函數(shù)以實(shí)現(xiàn)更多的功能,并且實(shí)現(xiàn)同學(xué)信息的管理,包括同學(xué)信息的添加、修改、查詢(xún)和刪除,及一些輔助項(xiàng)目管理,如登錄系統(tǒng)用戶(hù)管理和用戶(hù)組管理。系統(tǒng)的組成模塊主要包括數(shù)據(jù)集模塊,登錄窗體模塊,系統(tǒng)管理模塊,主窗體模塊,通訊錄模塊,通訊錄數(shù)據(jù)管理模塊,信息管理模塊,登錄信息查詢(xún)模塊??尚行裕杭夹g(shù)可行性本程序是在原有的通訊錄代碼的基礎(chǔ)上進(jìn)行修改而得的,只是簡(jiǎn)單的添加了個(gè)別功能與輸出格式,所用C語(yǔ)言知識(shí)不是太過(guò)復(fù)雜,只是簡(jiǎn)單的應(yīng)用,同時(shí)開(kāi)發(fā)所需設(shè)備(個(gè)人電4腦)容易獲得,所以只需要一定的時(shí)間進(jìn)行熟悉現(xiàn)有代碼并進(jìn)行修改設(shè)計(jì)便可個(gè)人獨(dú)立完成。技術(shù)可行性較高。:經(jīng)濟(jì)可行性在開(kāi)發(fā)成本上,技術(shù)設(shè)備與人員要求較低,成本低廉。而在社會(huì)上,通訊錄管理系統(tǒng)的需求量較大,尤其是更加適合、適應(yīng)人們生活的通訊錄管理系統(tǒng)尤為受人們的喜愛(ài),所以一個(gè)好的通訊錄管理系統(tǒng)在社會(huì)上的前景是很好的,并且通訊錄管理系統(tǒng)的后期維護(hù)與更新較為簡(jiǎn)單,且成本同樣不高。這樣可知通訊錄管理系統(tǒng)的收益遠(yuǎn)遠(yuǎn)大于成本。:社會(huì)可行性顯而易見(jiàn)通訊錄管理系統(tǒng)在法律上是可行的,畢竟不犯法嘛!而在用戶(hù)關(guān)系上,通訊錄管理系統(tǒng)的適用用戶(hù)是廣大的全部社會(huì)群體,用戶(hù)數(shù)量龐大??尚行院艽?。二、需求規(guī)格說(shuō)明基本目標(biāo)通過(guò)在原程序基礎(chǔ)上進(jìn)行一定程度上的修改,使其界面更加簡(jiǎn)潔明了。本設(shè)計(jì)主要包括系統(tǒng)用戶(hù)管理模塊、用戶(hù)基本資料模塊。根據(jù)這些功能,設(shè)計(jì)出系統(tǒng)的功能模塊,分別是查詢(xún)(查看、預(yù)覽、排序)模塊,具體實(shí)現(xiàn)了用戶(hù)和人員信息的查看和預(yù)覽;更新(添加、修改、刪除)模塊,具體實(shí)現(xiàn)了用戶(hù)和(新)人員信息的登記,修改和刪除;生成預(yù)覽報(bào)表(顯示通訊錄),具體實(shí)現(xiàn)了人員信息的總的查看和瀏覽。功能要求由主函數(shù)讀入用戶(hù)的命令,進(jìn)行判斷,如果命令符合預(yù)定規(guī)則,則確認(rèn)請(qǐng)求,并執(zhí)行相應(yīng)的命令(顯示、添加、按姓名查找、刪除、5排序、從文件讀取、寫(xiě)入文件),執(zhí)行后對(duì)屏幕進(jìn)行更新,然后讀入第二條命令,如此往復(fù)。數(shù)據(jù)需求定義了結(jié)構(gòu)體數(shù)據(jù)變量,指針數(shù)據(jù)變量等數(shù)據(jù)類(lèi)型。說(shuō)明:main()函數(shù)打開(kāi)通訊錄Menu()函數(shù)選擇要操作的功能Load()函數(shù)讀取文件內(nèi)容到通訊錄List()函數(shù)顯示通訊錄中的內(nèi)容App函數(shù)添加記錄到通訊錄Search函數(shù)按姓名查找Dele函數(shù)刪除記錄Save函數(shù)保存記錄Sort函數(shù)按姓名排序6總體設(shè)計(jì)詳細(xì)設(shè)計(jì)主要功能模塊的算法設(shè)計(jì)思路如下:1、添加信息函數(shù)1)定義指向結(jié)構(gòu)體變量的指針;2)移動(dòng)指針,找到插入結(jié)點(diǎn);3)在要插入的結(jié)點(diǎn)輸入信息;4)調(diào)用保存函數(shù),打開(kāi)文件,保存輸入信息。2、修改信息函數(shù)1)定義指向結(jié)構(gòu)體變量的指針;2)用指針檢驗(yàn)原通訊錄是否有記錄,若沒(méi)記錄,返回主函數(shù);3)根據(jù)要修改的編號(hào)查找對(duì)應(yīng)結(jié)點(diǎn);74)修改信息;5)打開(kāi)文件,保存修改記錄。3、刪除信息函數(shù)1)定義指向結(jié)構(gòu)體變量的指針;2)用指針檢驗(yàn)原通訊錄中是否有記錄,若沒(méi)記錄,返回主函數(shù);3)根據(jù)要修改的編號(hào)查找要?jiǎng)h除的結(jié)點(diǎn);4)修改鏈表,刪除對(duì)應(yīng)結(jié)點(diǎn)。4、顯示記錄函數(shù)1)打開(kāi)文件;2)用指針檢驗(yàn)是否有記錄;3)若無(wú)記錄,輸出提示信息,返回主函數(shù);若有記錄,移動(dòng)指針,依次輸出記錄;4)關(guān)閉文件。5、查詢(xún)通訊錄信息1)選擇查詢(xún)方式(姓名);2)輸入查詢(xún)關(guān)鍵字:3)在鏈表中尋找相應(yīng)結(jié)點(diǎn);4)調(diào)用輸出函數(shù),輸出結(jié)點(diǎn)信息。各個(gè)函數(shù)的流程圖如下:添加信息FILE*p, 打開(kāi)該磁盤(pán)文件從鍵盤(pán)輸入數(shù)據(jù)有0條輸出當(dāng)前通訊錄中的內(nèi)容有n條插入表頭 插入表尾輸出數(shù)據(jù),存入磁盤(pán)文件關(guān)閉文件8顯示信息FILE*fp, 打開(kāi)該文件p=head, 使p指向第一個(gè)結(jié)點(diǎn)P指向的不是尾結(jié)點(diǎn)真 假輸出p所指向的結(jié)點(diǎn)指向下一個(gè)結(jié)點(diǎn)按姓名查找打開(kāi)磁盤(pán)文件是 鏈表為空 否輸 出 p=head“尚無(wú)記 當(dāng)name2=p->name是 P是要找的結(jié)點(diǎn) 否錄信息”輸出此結(jié)點(diǎn) 輸出“查無(wú)此人 “的信息關(guān)閉文件刪除函數(shù):打開(kāi)文件 選擇刪除服務(wù)輸入要?jiǎng)h除記錄的編號(hào)9否該記錄是否存在是沒(méi)有該記錄 成功刪除返回主菜單排序函數(shù):打開(kāi)文件 選擇排序服務(wù)是按姓名排序 是否顯示否排序后結(jié)返回主菜單保存函數(shù):打開(kāi)該文件是 假聯(lián)系人是否為 0否輸出p所指向的結(jié)點(diǎn)指向下一個(gè)結(jié)點(diǎn)10返回主菜單程序源代碼與測(cè)試#include<stdio.h>#include<stdlib.h>#include"string.h"/*字符串函數(shù)庫(kù)*/#defineSIZE80#defineHEADER1"-------------------------------王海峰的通訊錄-------------------------------\n"/*宏變量*/#defineHEADER2"|編號(hào)|姓名|年齡|電話(huà)號(hào)碼|郵箱|地址|郵編|\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為當(dāng)前通訊錄中的記錄數(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("按姓名對(duì)通訊錄中的內(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("輸入錯(cuò)誤!");}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按姓名對(duì)通訊錄中的內(nèi)容重新排序**\n");printf("**6保存通訊錄中的內(nèi)容到文件**\n");13printf("**7從文件讀記錄到通訊錄**\n");printf("**0退出通訊錄管理系統(tǒng)**\n");printf("*************************************************************\n");printf(" ********************* 請(qǐng)選擇服務(wù)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("當(dāng)前通訊錄中的內(nèi)容:\n");list();printf("當(dāng)前通訊錄中有%d條記錄。\n",m);do{rec[m].num=m+1;printf("姓名:");gets(rec[m].name);printf("年齡:");scanf("%d",&rec[m].age);getchar();printf("電話(huà):");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("請(qǐng)輸入查找的姓名:");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āng)前通訊錄中有%d條記錄。\n",m);do{printf("刪除幾號(hào)記錄:");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() //按姓名對(duì)通訊錄中的內(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測(cè)試內(nèi)容和結(jié)果表+運(yùn)行效果抓圖1、首面192、添加記錄3、按姓名查找2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論