【正文】
自己動手嘗試,修改等,才完成。這個課程設(shè)計,花費了我近兩個星期的時間,這也是因為書本不熟悉。通過這次設(shè)計,使我對《C語言》這門課程有了更深一步的了解。它不僅是計算機程序設(shè)計的重要理論技術(shù)基礎(chǔ),也在我們電子與信息專業(yè)的學(xué)習(xí)中占據(jù)著十分重要的地位。同時也使我們知道,要學(xué)好這門課程,僅學(xué)習(xí)書本上的知識是不夠的,還要有較強的實踐能力。因為我們學(xué)習(xí)知識就是為了實踐。而只有多實踐,多編寫程序,才能更好的理解與掌握書本上的東西。利用計算機來編寫程序,也讓我感受到了編程的樂趣,極大的激發(fā)了我的興趣。第三篇:通訊錄管理系統(tǒng)摘 要為了人們對他人信息的記憶方便而設(shè)計,開發(fā)的一套“通訊錄管理系統(tǒng)“軟件。通過該題目的設(shè)計過程,可以培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計的思想,加深對高級語言基本語言要素和控制結(jié)構(gòu)的理解,針對c語言中的重點和難點內(nèi)容進行訓(xùn)練,獨立完成有一定工作量的程序設(shè)計任務(wù),同時強調(diào)好的程序設(shè)計風格。得到軟件工程的綜合訓(xùn)練,提高解決實際問題的能力。關(guān)鍵字:信息;管理;實用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。management。practical目 錄 概述.........................................................................1 ..................................................................1 ..................................................................1 ..........................................................2 2 總體設(shè)計.....................................................................3 ............................................................3 ............................................................4 3詳細設(shè)計.....................................................................5 ..........................................................5 ................................................................8 4調(diào)試分析....................................................................19 .....................................................................19 :.........................................................27 5總結(jié)........................................................................28 參考文獻......................................................................29 致 謝........................................................................27概述隨著信息社會的高速發(fā)展,人與人之間的聯(lián)系越來越頻繁,通訊方式越來越多樣化,如何保證與朋友、同學(xué)、同事、領(lǐng)導(dǎo)、親戚等之間的聯(lián)系,并能方便快捷的查找、記錄、修改其相關(guān)通訊信息。僅靠以前單獨的手工記錄已遠遠不能滿足當前的需要。開發(fā)一個通訊錄管理系統(tǒng),借助計算機可以方便、快捷、靈活的管理個人的朋友及相關(guān)人員的通訊信息,了解友人相關(guān)信息,幫助與友人保持聯(lián)絡(luò)。所以設(shè)計一個通訊錄管理系統(tǒng)管理各人的通訊信息是是非必要的。設(shè)計“通訊錄管理系統(tǒng)”使其具有數(shù)據(jù)插入、修改、刪除、顯示和查詢等功能。(1)數(shù)據(jù)包括:人名、工作單位、電話號碼和Email地址。(2)可對記錄中的姓名和電話號碼進行修改。(3)可增加或刪除記錄。(4)可顯示所有保存的記錄。(5)可按人名或電話號碼進行查詢。建立通訊錄信息,信息至少包含姓名、住址、單位、固定電話、移動手機、分類(如同事、朋友、同學(xué)、家人等)、Email、等。該系統(tǒng)提供添加、刪除、修改和查找功能,其中按姓名方式刪除、修改,按姓名、單位、分類方式查找。將通訊錄保存在文件中。能夠輸出通訊錄中的信息。主要包含一下多種功能:添加:添加通訊錄記錄 顯示:顯示通訊錄記錄 刪除:刪除通訊錄記錄 查詢:查詢通訊錄記錄 修改:修改通訊錄記錄 保存:將信息保存到文件本系統(tǒng)為通訊錄管理系統(tǒng),可由用戶自由添加,刪除和修改信息,還可以將通訊錄信息導(dǎo)出到文本文檔,極大的方便了用戶的使用??傮w設(shè)計思路:我們首先設(shè)計出了主函數(shù),然后根據(jù)去要實現(xiàn)的功能分別設(shè)計錄入聯(lián)系人信息、瀏覽、查詢、修改、刪除功能的子函數(shù)。刪除函數(shù)的設(shè)計是首先從文件內(nèi)找到要刪除的人,然后通過寫一個實現(xiàn)刪除目的的FOR循環(huán)實現(xiàn)刪除。修改也大體和刪除相同,添加函數(shù)在設(shè)計時通過申請一片空間,然后通過指針將需要添加的信息添加進去,從而實現(xiàn)添加功能。 總體功能模塊圖添加:可以添加通訊錄記錄,依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱后,會提示是否繼續(xù)添加。顯示:可以以表格形式輸出所有通訊錄里的記錄。刪除:輸入欲刪除的那個人的名字后,會自動刪除他(她)的記錄內(nèi)容。查詢:可以選擇用姓名、電話、地址三種方式查詢。修改:輸入欲修改的那個人的名字后,再依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱即可完成修改。保存:輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件。運行所需環(huán)境:win7及以下各版本windows,visual C++。該系統(tǒng)用下面六個功能模塊編寫,每個模塊執(zhí)行不同的功能,體現(xiàn)了模塊化設(shè)計的思想。下面六個模塊都是利用C語言文件,向文件中追加數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)和除數(shù)據(jù)。創(chuàng)建:用fopen()建立一個文本文件,然后用fprintf()向其中輸入數(shù)據(jù)(例如,向文件中輸入“姓名”,“地址”等),并對文件進行命名。添加:可以添加通訊錄記錄,利用C語言文件,向文件中按順序輸入姓名、住址、單位、固定電話、手機號碼、分類(如同事、朋友、同學(xué)、家人等)、Email、,再用fclose()函數(shù)關(guān)閉并保存文件。輸出:也是用通過循環(huán)依次輸出文件中的數(shù)據(jù),即輸出所有通訊錄里的記錄。刪除:輸入你要刪除的人的姓名后,系統(tǒng)會自動刪除他(她)的記錄,在刪除通過switch語句滿足提示你確認刪除的功能,只有等你確認刪除后才會刪除。查找:為了滿足用戶的實際需求,設(shè)計了三種查詢方式,可以用姓名、單位、分類三種方式查找通訊錄記錄。這里用到strcmp()函數(shù),通過比較字符串是否相同來判別是否找到相關(guān)信息,找到后,就把文件中的數(shù)據(jù)賦給對應(yīng)的變量,再把變量所帶的值輸出到屏幕上。修改:輸入你要修改的那個人的姓名后,系統(tǒng)會查找該通訊錄文件(此時用發(fā)ftell()函數(shù)來跟蹤文件指針的指向地址,找到個人的記錄后,會顯示他(她)的記錄,然后通過fseek()函數(shù)來找到修改處的地址,然后用戶再依次輸入他(她)的相關(guān)信息來替代以前的記錄。保存:用到fclose()函數(shù),每次操作成功后會自動保存到指定的文件中。3詳細設(shè)計①添加:添加通訊錄記錄,依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱后,會提示是否繼續(xù)添加。(1)添加流程圖②顯示:以表格形式輸出所有通訊錄里的(2)顯示流程圖③刪除::輸入欲刪除的那個人的名字后,會自動刪除他(她)的記錄內(nèi)容。(3)刪除流程圖④查詢:可以選擇用姓名、電話、地址三種方式查詢。(4)查詢流程圖⑤修改:輸入欲修改的那個人的名字后,再依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱即可完成修改。(5)修改流程圖 include include includetypedef structPerson pe[80]。int menu_select(){char c。do{system(“cls”)。printf(“tt *****通訊錄***** n”)。printf(“tt┌───────┐n”)。printf(“tt│ │n”)。printf(“tt│ │n”)。printf(“tt│ │n”)。printf(“tt│ │n”)。printf(“tt│ │n”)。{char score。/*編號*/ char name[10]。/*姓名*/ char num[15]。/*號碼*/ char [20]。char age[8]。char adds[20]。/*郵箱*/ /*年齡*//*住址*/ }Person。} printf(“tt│ │n”)。printf(“tt│ │n”)。printf(“tt└───────┘n”)。printf(“tt請您選擇(06):”)。c=getchar()。}while(c39。639。)。return(c39。039。)。int Input(Person per[],int n){gets(x)。int i=0。char sign,x[10]。while(sign!=39。n39。amp。amp。sign!=39。N39。){printf(“t編號:”)。scanf(“t%d”,amp。per[n+i].score)。printf(“t姓名:”)。scanf(“t%s”,per[n+i].name)。printf(“t年齡:”)。scanf(“t%s”,per[n+i].age)。printf(“t電話號碼:”)。scanf(“t%s”,per[n+i].num)。printf(“t通訊住址:”)。scanf(“t%s”,per[n+i].adds)。printf(“t電子郵箱:”)。scanf(“t%s”,per[n+i].)。}} printf(“nt是否繼續(xù)添加?(Y/N)”)。scanf(“t%c”,amp。sign)。i++。return(n+i)。void Display(Person per[],int n){int i。printf(“n”)。/*格式*/printf(“%5d%8s%6s%13s%15s%15sn”,per[i1].score,per[i1].name,per[i1].age,perprintf(“編號姓名年齡電話號碼通訊地址電子郵箱n”)。printf(“n”)。for(i=1。i{[i1].num,per[i1].adds,per[i1].)。}printf(“n”)。system(“pause”)。if(i1amp。amp。i%10==0){} printf(“tn”)。printf(“t”)。system(“pause”)。printf(“tn”)。}int Delete_a_record(Person per[],int n){} char s[20]。int i=0,j。printf(“t請輸入想刪除記錄中的名字:”)。scanf(“%s”,s)。while(strcmp(per[i].name,s)!=0amp。amp。i}for(j=i。j}printf(“ttt已經(jīng)成功刪除!n”)。return(n1)。strcpy(per[j].num,per[j+1].num)。strcpy(per[j].name,per[j+1].name)。strcpy(per[j].age,per[j+1].age)。strcpy(per[j].adds,per[j+1].adds)。strcpy(per[j].,per[j+1].)。per[j].score=per[j+1].score。printf(“t通訊錄中沒有此人!n”)。return(n)。void Query_a_record(Per