通訊錄管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(C語言)_第1頁
通訊錄管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(C語言)_第2頁
通訊錄管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(C語言)_第3頁
通訊錄管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(C語言)_第4頁
通訊錄管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(C語言)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

開放教育課程設(shè)計(jì)報(bào)告書課程名稱:通訊錄管理系統(tǒng)班級(jí):綜合郵政07秋學(xué)號(hào):077240001姓名:王芬指導(dǎo)老師:高海東通訊錄管理系統(tǒng)需求分析設(shè)計(jì)題目及要求:建立通訊錄信息,信息至少包含編號(hào)、姓名、年齡、、通訊地址、電子郵箱等;能夠提供添加、刪除和修改通訊錄信息的功能;能夠提供安不同方式查詢的功能;如按姓名或年齡、等查詢;將通訊錄保存在文件中;能夠按表格方式輸出通訊錄信息。系統(tǒng)功能需求分析:主要包含一下多種功能:添加:添加通訊錄記錄顯示:顯示通訊錄記錄刪除:刪除通訊錄記錄查詢:查詢通訊錄記錄修改:修改通訊錄記錄保存:將信息保存到文件概要設(shè)計(jì)系統(tǒng)功能模塊圖:添加:可以添加通訊錄記錄,依次輸入編號(hào)、姓名、年齡、號(hào)碼、通訊地址、電子郵箱后,會(huì)提示是否繼續(xù)添加。顯示:可以以表格形式輸出所有通訊錄里的記錄刪除:輸入欲刪除的那個(gè)人的名字后,會(huì)自動(dòng)刪除他(她)的記錄內(nèi)容查詢:可以選擇用姓名、、地址三種方式查詢修改:輸入欲修改的那個(gè)人的名字后,再依次輸入編號(hào)、姓名、年齡、號(hào)碼、通訊地址、電子郵箱即可完成修改保存:,輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件詳細(xì)設(shè)計(jì)(1).通訊錄:typedefstruct { charscore;/*編號(hào)*/ charname[10];/*姓名*/ charnum[15];/*號(hào)碼*/ charemail[20]; /*郵箱*/ charage[8]; /*年齡*/ charadds[20]; /*住址*/ }Person;voidmain()/*主函數(shù)*/{ intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加記錄到通訊錄\n");/*添加記錄*/ n=Input(pe,n); break; case2: printf("\n\t\t\t通訊錄記錄表\n");/*顯示記錄*/ Display(pe,n); break; case3: printf("\n\t從通訊錄中刪除記錄\n"); n=Delete_a_record(pe,n); /*刪除記錄*/ printf("\t"); system("pause"); break; case4: printf("\n\t在通訊錄中查找記錄\n"); Query_a_record(pe,n); /*查找記錄*/ printf("\t"); system("pause"); break; case5: printf("\n\t修改通訊錄中的記錄\n"); Change(pe,n); /*修改數(shù)據(jù)*/ printf("\t"); system("pause"); break; case6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存數(shù)據(jù)*/ printf("\t"); system("pause"); break; case0: printf("\n\t\t謝謝使用,再見!\n");/*結(jié)束程序*/ printf("\n\t\t"); system("pause"); exit(0); } }}(2).工作流程圖:①添加:添加通訊錄記錄②顯示:顯示通訊錄記錄③刪除:刪除通訊錄記錄 ④查詢:查詢通訊錄記錄先選擇查詢方式,以姓名查詢方式為例

⑤修改:修改通訊錄記錄源程序代碼#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstruct { charscore;/*編號(hào)*/ charname[10];/*姓名*/ charnum[15];/*號(hào)碼*/ charemail[20]; /*郵箱*/ charage[8]; /*年齡*/ charadds[20]; /*住址*/ }Person;Personpe[80];intmenu_select() { charc; do{ system("cls"); printf("\t\t*****通訊錄*****\n"); printf("\t\t┌───────┐\n"); printf("\t\t│1.添加記錄│\n"); printf("\t\t│2.顯示記錄│\n"); printf("\t\t│3.刪除記錄│\n"); printf("\t\t│4.查詢記錄│\n"); printf("\t\t│5.修改記錄│\n"); printf("\t\t│6.保存記錄│\n"); printf("\t\t│0.退出程序│\n"); printf("\t\t└───────┘\n"); printf("\t\t請(qǐng)您選擇(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); }intInput(Personper[],intn){ inti=0; charsign,x[10]; while(sign!='n'&&sign!='N') { printf("\t編號(hào):"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年齡:"); scanf("\t%s",per[n+i].age); printf("\t號(hào)碼:"); scanf("\t%s",per[n+i].num); printf("\t通訊住址:"); scanf("\t%s",per[n+i].adds); printf("\t電子郵箱:"); scanf("\t%s",per[n+i].email); gets(x); printf("\n\t是否繼續(xù)添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i);}voidDisplay(Personper[],intn){ inti; printf("----------------------------------------------------------------------\n");/*格式*/ printf("編號(hào)姓名年齡號(hào)碼通訊地址電子郵箱\n"); printf("----------------------------------------------------------------------\n"); for(i=1;i<n+1;i++) { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause");}intDelete_a_record(Personper[],intn){ chars[20]; inti=0,j; printf("\t請(qǐng)輸入想刪除記錄中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return(n); } for(j=i;j<n-1;j++) { 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].email,per[j+1].email); per[j].score=per[j+1].score; } printf("\t\t\t已經(jīng)成功刪除!\n"); return(n-1);}voidQuery_a_record(Personper[],intn){ intm; printf("\t\n請(qǐng)選擇查詢方式:\n");printf("\t┌──────┐\n");printf("\t│1------姓名│\n");printf("\t│2------│\n");printf("\t│3------地址│\n");printf("\t│4------返回│\n");printf("\t└──────┘\n");printf("請(qǐng)選擇:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){ printf("輸入錯(cuò)誤,請(qǐng)重新選擇:"); scanf("%d",&m); } if(m==1) { chars[20]; inti=0; printf("\t請(qǐng)輸入想查詢的姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號(hào):%d\n",per[i].score); printf("\t此人年齡:%s\n",per[i].age); printf("\t號(hào)碼:%s\n",per[i].num); printf("\t通訊地址:%s\n",per[i].adds); printf("\t電子郵箱:%s\n",per[i].email); }; if(m==2) { chars[20]; inti=0; printf("\t請(qǐng)輸入想查詢的:"); scanf("\t%s",s); while(strcmp(per[i].num,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號(hào):%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年齡:%s\n",per[i].age); printf("\t通訊地址:%s\n",per[i].adds); printf("\t電子郵箱:%s\n",per[i].email); }; if(m==3) { chars[20]; inti=0; printf("\t請(qǐng)輸入想查詢的地址:"); scanf("\t%s",s); while(strcmp(per[i].adds,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號(hào):%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年齡:%s\n",per[i].age); printf("\t號(hào)碼:%s\n",per[i].num); printf("\t電子郵箱:%s\n",per[i].email); };}voidChange(Personper[],intn){ chars[20]; inti=0; printf("\t請(qǐng)輸入想修改的記錄中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t編號(hào):"); scanf("\t%d",&per[i].score); printf("\t姓名:"); scanf("\t%s",per[i].name); printf("\t年齡:"); scanf("\t%s",per[i].age); printf("\t號(hào)碼:"); scanf("\t%s",per[i].num); printf("\t通訊住址:"); scanf("\t%s",per[i].adds); printf("\t電子郵箱:"); scanf("\t%s",per[i].email); printf("\t修改成功!");}voidWritetoText(Personper[],intn){ inti=0; FILE*fp;/*定義文件指針*/ charfilename[20];/*定義文件名*/ printf("\t保存到文件\n");/*輸入文件名*/ printf("\t請(qǐng)輸入所保存的文件名:"); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("\t無法打開文件\n"); system("pause"); return; } fprintf(fp,"******************************************通訊錄******************************************\n"); fprintf(fp,"編號(hào)姓名年齡號(hào)碼通訊地址電子郵箱\n"); fprintf(fp,"------------------------------------------------------------------------------------------\n"); while(i<n) { fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n",per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email); i++; } fprintf(fp,"------------------------------------------------------------------------------------------\n"); fprintf(fp,"***************************************共有%d條記錄****************************************\n",n); fclose(fp);/*關(guān)閉文件*/ printf("保存成功!\n");}voidmain()/*主函數(shù)*/{ intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加記錄到通訊錄\n");/*添加記錄*/ n=Input(pe,n); break; case2: printf("\n\t\t\t通訊錄記錄表\n");/*顯示記錄*/ Display(pe,n); break; case3: printf("\n\t從通訊錄中刪除記錄\n"); n=Delete_a_record(pe,n); /*刪除記錄*/ printf("\t"); system("pause"); break; case4: printf("\n\t在通訊錄中查找記錄\n"); Query_a_record(pe,n); /*查找記錄*/ printf("\t"); system("pause"); break; case5: printf("\n\t修改通訊錄中的記錄\n"); Change(pe,n); /*修改數(shù)據(jù)*/ printf("\t"); system("pause"); break; case6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存數(shù)據(jù)*/ printf("\t"); system("pause"); break; case0: printf("\n\t\t謝謝使用,再見!\n");/*結(jié)束程序*/ printf("\n\t\t"); system("pause"); exit(0); } }}測(cè)試數(shù)據(jù)及其結(jié)果分析測(cè)試:1).顯示的主菜單界面2).添加界面:3).顯示界面:4).刪除界面:刪除后,通訊錄里的顯示記錄:5).查詢界面:以姓名查詢方式為例:6).修改界面:修改后,通訊錄里的顯示記錄:7).保存界面:tongxunlu.txt文件截圖:?jiǎn)栴}思考:1.當(dāng)我在進(jìn)行刪除、查詢、修改、保存等功能時(shí),以查詢?yōu)槔?,輸入名字按回車后,雖然會(huì)顯示該人的所有記錄,但是顯示后,它馬上自動(dòng)消失了,還沒來得及等我看內(nèi)容。因此,向別人請(qǐng)教后,在一些地方加入了system("pause");這個(gè)語言,用來對(duì)某項(xiàng)操作完成后進(jìn)行暫停。2.現(xiàn)在這個(gè)程序的界面?zhèn)€人感覺很清爽。但在最初,每次進(jìn)行一項(xiàng)操作,運(yùn)行窗口里的內(nèi)容會(huì)一直保留著,感覺很雜亂,如下圖(添加后,進(jìn)行顯示操作):之后,我去網(wǎng)上尋求解決辦法,知道可以使用system("cls");這一語句可以解決這個(gè)問題,最后,修改成功。課程設(shè)計(jì)總結(jié)這次的程序?qū)嵲O(shè)計(jì)實(shí)驗(yàn)是對(duì)我們進(jìn)入大學(xué)以來學(xué)習(xí)程序設(shè)計(jì)語言結(jié)果的一次大檢驗(yàn)。自己動(dòng)手,自己發(fā)現(xiàn)和解決問題。發(fā)現(xiàn)了自己的許多不足。平時(shí)沒有掌握好的知識(shí)在這次實(shí)驗(yàn)中徹底暴露出來,經(jīng)過不斷思考,不斷查閱資料和上機(jī)運(yùn)行,解決其中大部分問題,當(dāng)然還存在一些問題沒有解決。我相信在以后的學(xué)習(xí)能夠解決好它們。但是,收獲還是不小的,我不僅對(duì)C的操作有了進(jìn)一步的掌握,還了解到了程序設(shè)計(jì)的書寫風(fēng)格及其注釋的格式。當(dāng)我選擇通訊錄這個(gè)題目時(shí),一開始想運(yùn)用大量鏈表及指針來完成,但是在慢慢琢磨之后,覺得這個(gè)不一定要用鏈表,于是改變了編程思路。當(dāng)然還有不少文件的讀寫問題,不過還是通過不斷測(cè)試之后順利解決了。另外一點(diǎn)要說的就是這個(gè)程序用了很多的循環(huán),因此對(duì)于循環(huán)的控制要十分小心,有時(shí)while和do-while的區(qū)別也是十分重要的。還有一點(diǎn)體會(huì)就是,書上和老師教的內(nèi)容是有限的,我們需要不斷地靠自己去學(xué)習(xí),向他人請(qǐng)教,了解和掌握更多的知識(shí),這樣我們才能編出更好的C程序??傮w來說,這次C語言程序設(shè)計(jì)實(shí)驗(yàn)還是比較成功的,雖然最終程序還存在一些不足,但能取得這樣的成績(jī)我還是比較高興的。最后,要感謝學(xué)校為我們提供這次實(shí)驗(yàn)機(jī)會(huì),也要感謝老師的教導(dǎo)和好心人對(duì)我的幫助與支持。組內(nèi)成員:宋寧寧,王芬,汪晨洋,岳瑩,邢媛,曹靜

論大學(xué)生寫作能力寫作能力是對(duì)自己所積累的信息進(jìn)行選擇、提取、加工、改造并將之形成為書面文字的能力。積累是寫作的基礎(chǔ),積累越厚實(shí),寫作就越有基礎(chǔ),文章就能根深葉茂開奇葩。沒有積累,胸?zé)o點(diǎn)墨,怎么也不會(huì)寫出作文來的。寫作能力是每個(gè)大學(xué)生必須具備的能力。從目前高校整體情況上看,大學(xué)生的寫作能力較為欠缺。一、大學(xué)生應(yīng)用文寫作能力的定義那么,大學(xué)生的寫作能力究竟是指什么呢?葉圣陶先生曾經(jīng)說過,“大學(xué)畢業(yè)生不一定能寫小說詩歌,但是一定要寫工作和生活中實(shí)用的文章,而且非寫得既通順又扎實(shí)不可。”對(duì)于大學(xué)生的寫作能力應(yīng)包含什么,可能有多種理解,但從葉圣陶先生的談話中,我認(rèn)為:大學(xué)生寫作能力應(yīng)包括應(yīng)用寫作能力和文學(xué)寫作能力,而前者是必須的,后者是“不一定”要具備,能具備則更好。眾所周知,對(duì)于大學(xué)生來說,是要寫畢業(yè)論文的,我認(rèn)為寫作論文的能力可以包含在應(yīng)用寫作能力之中。大學(xué)生寫作能力的體現(xiàn),也往往是在撰寫畢業(yè)論文中集中體現(xiàn)出來的。本科畢業(yè)論文無論是對(duì)于學(xué)生個(gè)人還是對(duì)于院系和學(xué)校來說,都是十分重要的。如何提高本科畢業(yè)論文的質(zhì)量和水平,就成為教育行政部門和高校都很重視的一個(gè)重要課題。如何提高大學(xué)生的寫作能力的問題必須得到社會(huì)的廣泛關(guān)注,并且提出對(duì)策去實(shí)施解決。二、造成大學(xué)生應(yīng)用文寫作困境的原因:(一)大學(xué)寫作課開設(shè)結(jié)構(gòu)不合理。就目前中國多數(shù)高校的學(xué)科設(shè)置來看,除了中文專業(yè)會(huì)系統(tǒng)開設(shè)寫作的系列課程外,其他專業(yè)的學(xué)生都只開設(shè)了普及性的《大學(xué)語文》課。學(xué)生寫作能力的提高是一項(xiàng)艱巨復(fù)雜的任務(wù),而我們的課程設(shè)置僅把這一任務(wù)交給了大學(xué)語文教師,可大學(xué)語文教師既要在有限課時(shí)時(shí)間內(nèi)普及相關(guān)經(jīng)典名著知識(shí),又要適度提高學(xué)生的鑒賞能力,且要教會(huì)學(xué)生寫作規(guī)律并提高寫作能力,任務(wù)之重實(shí)難完成。(二)對(duì)實(shí)用寫作的普遍性不重視。“大學(xué)語文”教育已經(jīng)被嚴(yán)重地“邊緣化”。目前對(duì)中國語文的態(tài)度淡漠,而是呈現(xiàn)出全民學(xué)英語的大好勢(shì)頭。中小學(xué)如此,大學(xué)更是如此。對(duì)我們的母語中國語文,在大學(xué)反而被漠視,沒有相關(guān)的課程的設(shè)置,沒有系統(tǒng)的學(xué)習(xí)實(shí)踐訓(xùn)練。這其實(shí)是國人的一種偏見。應(yīng)用寫作有它自身的規(guī)律和方法。一個(gè)人學(xué)問很大,會(huì)寫小說、詩歌、戲劇等,但如果不曉得應(yīng)用文寫作的特點(diǎn)和方法,他就寫不好應(yīng)用文。(三)部分大學(xué)生學(xué)習(xí)態(tài)度不端正。很多非中文專業(yè)的大學(xué)生對(duì)寫作的學(xué)習(xí)和訓(xùn)練都只是集中在《大學(xué)語文》這一門課上,大部分學(xué)生只愿意被動(dòng)地接受大學(xué)語文老師所講授的文學(xué)經(jīng)典故事,而對(duì)于需要學(xué)生動(dòng)手動(dòng)腦去寫的作文,卻是盡可能應(yīng)付差事,這樣勢(shì)必不能讓大學(xué)生的寫作水平有所提高。(四)教師的實(shí)踐性教學(xué)不強(qiáng)。學(xué)生寫作能力的提高是一項(xiàng)艱巨復(fù)雜的任務(wù),但在教學(xué)中有不少教師過多注重理論知識(shí),實(shí)踐性教學(xué)環(huán)節(jié)卻往往被忽視。理論講了一大堆,但是實(shí)踐卻幾乎沒有,訓(xùn)練也少得可憐。閱讀與寫作都需要很強(qiáng)的實(shí)踐操作,學(xué)習(xí)理論固然必不可少,但是閱讀方法和寫作技巧的掌握才是最重要的。由于以上

溫馨提示

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

評(píng)論

0/150

提交評(píng)論