【正文】
lsegoto bottom。R39。coutback_f2。239。)goto top。if(back_f1==39。coutcinname4。:coutselect3。break。:coutchar name3[20]。elsegoto bottom。R39?!?。:coutchar name2[20]。elsegoto bottom。R39。(no,name,address,tel_no,post_code,e_mail)。coutcinaddress。char post_code[7]。:coutchar no[13]。:coutcoutcoutchar select2。elsereturn 0。R39。黑龍江工程學院void format()。void list2()。void del(char name[20])。char e_mail[40]。char name[20]。按姓名升序排序。在a模塊中,用scanf函數(shù)輸入要修改人的姓名,用for 循環(huán)、if語句及strcmp函數(shù)找到該姓名的記錄,若到記錄末尾提示“查無此人”是否繼續(xù)重新輸入姓名,黑龍江工程學院如果重新輸入姓名再用goto語句再執(zhí)行重新查找。在b模塊中,用來實現(xiàn)刪除功能。否則令i的值為n跳出循環(huán)。首先顯示提示信息:“輸入你要查找的好友的姓名”然后從鍵盤輸入姓名。每插入一條記錄n的值加1。以下是各個模塊實現(xiàn)程序各項功能的函數(shù)的詳細設計:插入新的記錄:insert()函數(shù)定義變量,設計loop模塊,模塊的功能是用來輸入記錄:輸入姓名、性別、電話號碼、地址的信息。每個功能以函數(shù)的形式出現(xiàn),由主控菜單控制。要求包括通訊錄建立、增加號碼、刪除號碼、查詢號碼(按姓名、按號碼)、修改號碼、號碼分組、打印通訊錄(全部或分組號碼)等功能,并設計主控菜單和子菜單供用戶選擇要執(zhí)行的操作。分析:實現(xiàn)以下功能:1)通訊錄編輯(添加、刪除); 2)按不同的項進行查找;3)對已存在的通訊錄按不同的項排序; 4)將通訊錄寫入文件; 5)從文件讀入通訊錄。并以文件的形式對號碼信息進行保存。用for語句查找是否輸入了與原有記錄相同的記錄,用strcmp 函數(shù)比較,if 語句判斷,如果輸入了重復的記錄,提示信息:“此記錄已存在,請重新輸入!”并且用 goto語句返回到loop,重新輸入信息。功能的實現(xiàn)見源程序:示好友的信息:display()函數(shù)定義整型變量i用來循環(huán)輸出記錄。For語句循環(huán)內嵌if語句,用strcmp 函數(shù)查找信息,并且顯示該記錄的所有信息,并跳出循環(huán)。最后返回主界面。先確認是否刪除,如果鍵盤輸入Y 或y來確認要刪除再執(zhí)行for循環(huán),通過strcmpy函數(shù)把后一條記錄復制到前一條記錄。在b模塊中,用于修改記錄,如果要修改記錄則從鍵盤輸入Y或y,用scanf函數(shù)來輸入新的記錄數(shù)據(jù)來實現(xiàn)修改記錄。比較前一條記錄和后一條記錄的姓名,如果strcmp函數(shù)值大于0,則將這兩條記錄的所有信息替換,4個字符型數(shù)組用作替換的中間變量。char address[100]。}。void find1(char no[13])。int correct(char name[20])。int back(){coutchar back。||back==39。} void print(int i){coutcoutcoutcoutcoutcoutselect1。coutcinselect2。char name[20]。char e_mail[40]。coutcintel_no。coutchar back_add。||back_add==39。break。cinname2。char back_del。||back_del==39。break。cinname3。} break。switch(select3){ case 39。(name4)。R39。elsegoto bottom。:char no4[13]。黑龍江工程學院“。||back_f2==39。break。:()。||back_w==39。break。switch(select4){ case 39。cinback。r39。case 39。cinback1。r39。黑龍江工程學院break。coutchar back_r。||back_r==39。break。cinselect5。y39。if(back_f==39。)goto top。for(int i=0。strcpy(st[i].no,no)。}黑龍江工程學院if(x==0)break。strcpy(st[i].e_mail,“0”)。strcpy(st[i].tel_no,“0”)。iif(!strcmp(st[i].name,name))x=i。139。coutreturn back()。:coutchar no1[13]。break。cinaddress1。case 39。strcpy(st[x].post_code,post_code1)。539。coutreturn back()。:coutchar e_mail1[40]。break。z=0。for(int i=0。if(z==0)break。ifstream file(name1)。char address[120]。int time=0。time=1。){i++。}}}(line,120,39。time=2。){i++。}} } (line,120,39。time=3。){i++。}} } (line,120,39。time=4。){i++。}} } (line,120,39。time=5。){i++。}}}(line,120,39。time=0。){i++。}}}(line,120,39。} //寫入文件void inter::write(){ char name[20]。for(int i=0。char name[20]。char e_mail[40]。strcpy(name,st[j].name)。strcpy(st[j].address,st[j+1].address)。strcpy(st[j+1].tel_no,tel_no)。strcpy(e_mail,st[j].e_mail)。kint x=0。ifor(int j=0。char tel_no[12]。strcpy(st[j].no,st[j+1].no)。strcpy(st[j+1].name,name)。strcpy(tel_no,st[j].tel_no)。strcpy(st[j].post_code,st[j+1].post_code)。strcpy(st[j+1].e_mail,e_mail)。x=1。strcpy(st[i].name,“0”)。} }第四章 程序調試與測試運行程序,首頁顯示如下:按1選擇通訊錄編輯,編輯通訊錄,顯示(1)添加,(2)刪除,(3)修改,運行后結果如下:黑龍江工程學院第一次使用,按1添加聯(lián)系人,填入相關信息,運行圖如下:返回首頁,按2可以查找聯(lián)系人,可以根據(jù)姓名查找和學號查找,本次運用學號查找,運行如下:返回首頁,按4可以進行排序,可以根據(jù)姓名和學號排序,按姓名排序需要自己編輯的姓氏排序規(guī)則才能使用,本次使用學號排序,運行如下:將資料寫入文件功能是將編輯好的通訊錄寫入文本文件,文本文件的名字可以自己輸入。因此作為二十一世紀的大學來說掌握程序開發(fā)技術是十分重要的,而C++語言又是最常見,功能最強大的一種高級語言,因此做好C++語言課程設計是十分必要的。更加是第一次做課程設計,所以在機房做了一個下午卻絲毫沒有進展,最主要是不知從何開始,這個時候才知道上課老師們不厭其煩的教導是多么的寶貴,這個時候才后悔上課的時候沒有認真的聽講。無論如何是自己的勞動成果,是自己經(jīng)過努力得到的成績,同時也是學習C++語言的一次實踐作業(yè),自己進步的證明。(3)拔號功能:能顯示出通信錄中所有人的姓名,當選中某個姓名時,屏幕上顯示出此人的電話號碼。class base { private:string name,tel,sort。}string getn(){return name。}void sett(){couttel。sets()。public:Person(){ } size=0。person[size].setw()。int x。switch(x){} case 1:person[i].setn()。}} //刪除void deleted(){char x。iif(person[i].getn().find(s,0)!=string::npos){person[i].display()。){for(int t=i。coutcoutcoutcoutcins。cout} couts。string n,t,s。while(!()){//判定是否遇到的文件結束符} ()。size++。amp。break。break。break。struct Student { string num。char addr。long iCount=0。if(!infile){} else { infileiCount。iCount){ Student *p=new Student。pEndnext=NULL。} } } iCount=t。hnumber++} { coutnumname agetel addremalnext。pEnd=s。coutpnumpnamepageptelpaddrpemal。break。if(!outfile){} else { outfilenumnameMathsnext。ncoutn。關鍵字:信息;管理;實用AbstractDesigned for people to others the memory of information convenient, developed a set of “mail list management system” the design process of this subject, students can be structured programming ideas, deepen our understanding of the advanced language basic language elements and control the understanding of the structure, conduct training for emphasis and difficulty in C language, independently plete the program design has a certain work tasks, while emphasizing the good programming training in software engineering, improving the ability to solve practical : Information。開發(fā)一個通訊錄管理系統(tǒng),借助計算機可以方便、快捷、靈活的管理個人的朋友及相關人員的通訊信息,了解友人相關信息,幫助與友人保持聯(lián)絡。(2)可對記錄中的姓名和電話號碼進行修改。建立通訊錄信息,信息至少包含姓名、住址、單位、固定電話、移動手機、分類(如同事、朋友、同學、家人等)、Email、等。主要包含一下多種功能:添加:添加通訊錄記錄 顯示:顯示通訊錄記錄 刪除:刪除通訊錄記錄 查詢:查詢通訊錄記錄 修改:修改通訊錄記錄 保存:將信息保存到文件本系統(tǒng)為通訊錄管理系統(tǒng),可由用戶自由添加,刪除和修改信息,還可以將通訊錄信息導出到文本文檔,極大的方便了用戶的使用。 總體功能模塊圖添加:可以添加通訊錄記錄,依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱后,會提示是否繼續(xù)添加。修改:輸入欲修改的那個人的名字后,再依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱即可完成修改。下面六個模塊都是利用C語言文件,向文件中追加數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)和除數(shù)據(jù)。刪除:輸入你要刪除的人的姓名后,系統(tǒng)會自動刪除他(她)的記錄,在刪除通過switch語句滿足提示你確認刪除的功能,只有等你確認刪除后才會刪除。保存:用到fclose()函數(shù),每次操作成功后會自動保存到指定的文件中。(4)查詢流程圖⑤修改:輸入欲修改的那個人的名字后,再依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱即可完成修改。printf(“tt *****通訊錄***** n”)。printf(“tt│ │n”)。/*編號*/ char name[10]。char adds[20]。printf(“tt└───────┘n”)。639。)。while(sign!=39。sign!=39。per[n+i].score)。scanf(“t%s”,per[n+i].age)。scanf(“t%s”,per[n+i].adds)。scanf(“t%c”,amp。void Display(Person per[],int n){int i。for(i=1。if(i1amp。system(“pause”)。printf(“t請輸入想刪除記錄中的名字:”)。i}for(j=i。strcpy(per[j].name,per[j+1].name)。per[j].score=per[j+1].score。printf(“tn請選擇查詢方式:n”)。printf(“t│3