欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C語(yǔ)言課程設(shè)計(jì)-通訊錄管理范文合集

      時(shí)間:2019-05-14 01:16:12下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《C語(yǔ)言課程設(shè)計(jì)-通訊錄管理》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《C語(yǔ)言課程設(shè)計(jì)-通訊錄管理》。

      第一篇:C語(yǔ)言課程設(shè)計(jì)-通訊錄管理

      課程設(shè)計(jì)報(bào)告

      課程設(shè)計(jì)題目:

      通訊錄管理

      學(xué)生姓名:

      專(zhuān)

      業(yè):

      級(jí):

      指導(dǎo)教師:

      2009年6月16日

      實(shí)驗(yàn)題目:

      《通訊錄管理》

      實(shí)驗(yàn)時(shí)間、地點(diǎn):

      2009-6-8到2009-6-12日

      信工樓307

      實(shí)驗(yàn)?zāi)康模?/p>

      本次課程設(shè)計(jì)的主要目的是綜合運(yùn)用所學(xué)的C語(yǔ)言知識(shí)解決一個(gè)比較實(shí)際的簡(jiǎn)單問(wèn)題,側(cè)重對(duì)數(shù)組、函數(shù)、指針、結(jié)構(gòu)體和文件等相關(guān)內(nèi)容的綜合應(yīng)用,使同學(xué)們能進(jìn)一步熟悉掌握C語(yǔ)言的基本語(yǔ)法,進(jìn)一步提升自己的編程能力并逐步培養(yǎng)編程思維,進(jìn)而不斷提高同學(xué)們解決問(wèn)題的能力,并為以后的語(yǔ)言學(xué)習(xí)打下良好的基礎(chǔ)。

      實(shí)驗(yàn)要求:

      1.獨(dú)立完成;

      2.此次課程設(shè)計(jì)在規(guī)定的時(shí)間必須在實(shí)驗(yàn)室完成,不得以任何理由在其他地點(diǎn)進(jìn)行;

      3.每個(gè)人需按照選題規(guī)則確定好自己的題目(注意不是多人完成一題,每人獨(dú)立完成一題),不得以任何理由選擇其他的題目,當(dāng)然在完成自己的題目之后根據(jù)個(gè)人興趣可以繼續(xù)選做其他的題目;

      4.課程設(shè)計(jì)完成后嚴(yán)格按照?qǐng)?bào)告格式撰寫(xiě)課程設(shè)計(jì)報(bào)告,并于結(jié)束后的第三天上交到學(xué)習(xí)委員統(tǒng)一交給老師;

      5.課程設(shè)計(jì)的成績(jī)由兩部分組成:程序檢查成績(jī)(40%,每個(gè)功能占程序分的20%)+報(bào)告檢查成績(jī)(40%)+平時(shí)考核(20%)

      6.每個(gè)程序?qū)崿F(xiàn)方式可以自選,可以采用文件、鏈表、數(shù)組或其任意組合完成。

      實(shí)現(xiàn)思路:

      通訊錄信息包括:學(xué)號(hào),姓名,班級(jí),聯(lián)系電話,E-MAIL,宿舍等 主要功能:

      (1)建立、修改和增刪學(xué)生通訊錄(2)能夠按多種方式進(jìn)行查詢(xún)

      按姓名查詢(xún)、按學(xué)號(hào)查詢(xún)

      按宿舍查詢(xún)

      (3)要求:以菜單方式操作,界面友好,易于操作

      流程圖:

      增加

      1↓ ↓

      保存

      查詢(xún)

      a↓

      b↓

      c↓

      按姓名查詢(xún)

      按學(xué)號(hào)查詢(xún)

      按宿舍查詢(xún)

      2→刪除 4→保存

      5↓

      5↓

      退出

      退出 實(shí)現(xiàn)過(guò)程:

      3#include #include FILE *fp;int i;char ch;struct member { int number;char name[20];char telephone[13];char xuehao[50];char sushe[20];char email[20];}members[50];void Data_Menu(){ printf(“n----------------------------n”);

      printf(“ 學(xué)生通訊錄 08041238”);printf(“n----------------------------n”);printf(“ 1.Add”);printf(“ 2.Delete”);printf(“ 3.Search”);printf(“ 4.Save”);printf(“ 5.Exit”);printf(“n----------------------------n”);} void Data_Menu1(){ printf(“n”);printf(“ a.Name”);printf(“nb.Xuehao”);printf(“nc.sushe”);} void Data_Load(){ int j;long k;fp=fopen(“members.txt”,“rt”);if(fp!=NULL){ for(i=1;i<50;i++){ j=fgetc(fp);if(j==EOF){ return;} k=i-1;fseek(fp,k*sizeof(struct member),SEEK_SET);fread(&members[i],sizeof(struct member),1,fp);} }else{ fp=fopen(“members.txt”,“a”);i=1;} } void Data_Add(int j){ printf(“n”);members[j].number=j;printf(“ntNo:%d”,j);printf(“ntName:”);scanf(“%s”,members[j].name);printf(“tTelephone:”);scanf(“%s”,members[j].telephone);printf(“tXuehao:”);scanf(“%s”,members[j].xuehao);printf(“tSushe:”);scanf(“%s”,members[j].sushe);printf(“tEmail:”);scanf(“%s”,members[j].email);} void Data_Show(int j){ printf(“ntNo:%d”,members[j].number);printf(“ntName:%s”,members[j].name);printf(“ntTelephone:%s”,members[j].telephone);printf(“ntXuehao:%s”,members[j].xuehao);printf(“ntSushe:%s”,members[j].sushe);printf(“ntEmail:%s”,members[j].email);} void Data_Save(){ int j;fp=fopen(“members.txt”,“a”);for(j=1;j<=i;j++){ fwrite(&members[j],sizeof(struct member),1,fp);} } main(){ char *search_name;char *search_xuehao;char *search_sushe;int j,k;Data_Load();i--;do{ Data_Menu();printf(“ Please Choose:”);ch=getche();switch(ch){ case '1': while(i<50){ i++;Data_Add(i);break;} if(i==50){ printf(“ntMessage is Filled!n”);} break;case '2': if(i<1){ printf(“ntNo Recordsn”);break;} printf(“ntDelete No:”);scanf(“%d”,&k);for(j=k;j

      break;case '4': Data_Save();printf(“ Date is Saved!n”);fclose(fp);break;case '5': printf(“nt”);printf(“ Do You Want To Save Message(y/n)”);if(getche()=='y'){ Data_Save();} fclose(fp);exit(0);break;default: break;} }while(1);} 實(shí)驗(yàn)總結(jié):

      經(jīng)過(guò)幾天的努力,終于做出來(lái)了,在這過(guò)程中自己逐漸提高了對(duì)數(shù)組、函數(shù)、指針、結(jié)構(gòu)體和文件等相關(guān)內(nèi)容的綜合應(yīng)用,并且進(jìn)一步熟悉掌握C語(yǔ)言的基本語(yǔ)法,提升了自己的編程能力,并逐步培養(yǎng)編程思維,進(jìn)而不斷提高自己解決問(wèn)題的能力。

      心得體會(huì): 實(shí)驗(yàn)雖然做成功了,但在此次試驗(yàn)過(guò)程中,自己也體會(huì)到一些東西:

      第一:要細(xì)心對(duì)待程序的每一個(gè)環(huán)節(jié),否則得話將會(huì)給自己編程帶來(lái)很大的困擾.第二:要多動(dòng)手去操作,只有這樣才能真正使自己的能力得到真正的提高。

      第三:課外要多看以些書(shū),光憑課本上的知識(shí)是不夠的,要自己自覺(jué)地去學(xué)習(xí)新的知識(shí)。

      第二篇:學(xué)生通訊錄管理系統(tǒng)(C語(yǔ)言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告)

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      C語(yǔ)言課程設(shè)計(jì)

      姓名:劉顯安 學(xué)號(hào):09041131 班級(jí):090411 專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)院:信息工程學(xué)院 設(shè)計(jì)題目:學(xué)生通訊錄管理系統(tǒng)

      指導(dǎo)教師:宋文琳 提交時(shí)間:2010年9月4日

      第1頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      課程題目:學(xué)生通訊錄管理系統(tǒng)

      要求:學(xué)生通訊錄信息包括:學(xué)號(hào)、姓名、班機(jī)、聯(lián)系電話、E-mail、宿舍等 主要功能:1、2、3、4、5、通訊錄信息錄入功能 通訊錄信息刪除功能 通訊錄信息瀏覽功能 通訊錄信息查詢(xún)功能 按學(xué)號(hào)排序功能

      一、總體設(shè)計(jì)

      首先,整個(gè)系統(tǒng)必須有一個(gè)主函數(shù),為了盡量提高程序的易修改性,且不至于相互干擾,將每一個(gè)功能分成不同的模塊,用不同的函數(shù)來(lái)實(shí)現(xiàn),例如在我寫(xiě)的這個(gè)程序中,一共用了11個(gè)函數(shù),分別是:

      主菜單函數(shù)menu()、關(guān)于函數(shù)gaunyu()、幫助函數(shù)help()、輸出單個(gè)學(xué)生信息函數(shù)shuchu()、輸入函數(shù)shuru()、輸出所有學(xué)生信息函數(shù)findall()、按姓名查找函數(shù)findname()、按學(xué)號(hào)查找函數(shù)findnum()、刪除函數(shù)shanchu()、排序函數(shù)paixu()、主函數(shù)main(),這樣在整個(gè)程序的設(shè)計(jì)過(guò)程中也就一目了然,寫(xiě)起來(lái)也相對(duì)輕松了不少。

      這個(gè)程序我只是總體上參考了一下網(wǎng)上程序的架構(gòu),具體的各個(gè)函數(shù)是參照課本上《鏈表》那一章的內(nèi)容的,比如結(jié)構(gòu)體的建立、查找和排序等功能,這些書(shū)上都有類(lèi)似的,其中排序功能雖沒(méi)有原版的,第2頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      但是在第六章中有一個(gè)用冒泡法排序的例題,我就是仿照這個(gè)模式來(lái)對(duì)結(jié)構(gòu)體進(jìn)行排序的,總之整個(gè)程序中蘊(yùn)含了我很多的汗水。

      二、具體設(shè)計(jì)

      關(guān)于這個(gè)程序的具體設(shè)計(jì),也不是一兩句話就能說(shuō)完的,所以我也不想再在這里贅述了,因?yàn)槌绦蚶锒伎梢钥吹牡?,幾乎每個(gè)函數(shù)都傾注了我的大量汗水,我在這上面花了不少的時(shí)間,不過(guò)從中也收獲了很多,因?yàn)椴煌5匦薷牟煌5恼{(diào)試,總之還是直接看源程序吧,因?yàn)橐矝](méi)必要在這里重復(fù)地說(shuō)廢話。

      三、源代碼

      以下是整個(gè)程序的源代碼,其中我的主菜單函數(shù)是很美觀的,但由于這里字體和板式的限制,不能很好的顯現(xiàn),可以看我下面程序運(yùn)行的截圖就知道了?!?#include #include #include #include #include #define NULL 0

      struct student{

      第3頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      long num;char name[20];int banji;char tel[11];char Email[20];int sushe;struct student *next;};

      struct student *stu;int n;

      void menu(void){ /*主菜單函數(shù)*/ system(“cls”);puts(“****************************************************************************”);puts(“** ^_^學(xué)生通訊錄管理系統(tǒng)^_^ **”);puts(“****************************************************************************”);puts(“******** 計(jì) ********”);

      第4頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      puts(“******* *******”);puts(“****** 算 ******”);puts(“***** 0 1=錄入學(xué)生通訊錄信息 *****”);puts(“**** 9 機(jī) ****”);puts(“*** ***”);puts(“** 科 **”);puts(“*

      *”);puts(“** 1 學(xué) **”);puts(“*** ***”);puts(“**** 與 ****”);puts(“***** *****”);0 4

      劉 2=

      安 6=

      第5頁(yè)(共25頁(yè))

      列出所有學(xué)生通訊錄 3=按姓名查詢(xún)信息 4=按學(xué)號(hào)查詢(xún)信息

      5=刪除學(xué)生信息 按學(xué)號(hào)將通訊錄排序

      7=關(guān)于

      8=幫助

      0=退出

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      puts(“****** 技 ******”);puts(“******* *******”);puts(“******** 術(shù) ********”);puts(“****************************************************************************”);} void guanyu()/*關(guān)于函數(shù)*/ { system(“cls”);puts(“n ************************** ”);puts(“ *** 版權(quán)所有,翻版必究!***”);puts(“**** copyright◎劉顯安!****”);puts(“ *** 2009~2010 ***”);puts(“ **************************”);puts(“n返回主菜單請(qǐng)按【9】”);if(getche()=='9')menu();}

      struct student *shuru(void)/*輸入函數(shù)*/

      第6頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      { system(“cls”);struct student *s1,*s2;n=1;int num;puts(“請(qǐng)輸入學(xué)生個(gè)數(shù)(提示:個(gè)數(shù)不能輸入0!):”);scanf(“%d”,&num);s1=s2=(struct student *)malloc(sizeof(struct student));puts(“*************************************************”);puts(“請(qǐng)輸入學(xué)號(hào):”);scanf(“%ld”,&s1->num);puts(“請(qǐng)輸入學(xué)生姓名:”);scanf(“%s”,s1->name);puts(“請(qǐng)輸入班級(jí):”);scanf(“%d”,&s1->banji);puts(“請(qǐng)輸入電話號(hào)碼:”);scanf(“%s”,s1->tel);puts(“請(qǐng)輸入電子郵件:”);scanf(“%s”,s1->Email);puts(“請(qǐng)輸入學(xué)生宿舍號(hào):”);scanf(“%d”,&s1->sushe);stu=s1;

      第7頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      while(nnext=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student));puts(“*************************************************”);puts(“請(qǐng)輸入學(xué)號(hào):”);scanf(“%ld”,&s1->num);puts(“請(qǐng)輸入學(xué)生姓名:”);scanf(“%s”,s1->name);puts(“請(qǐng)輸入班級(jí):”);scanf(“%d”,&s1->banji);puts(“請(qǐng)輸入電話號(hào)碼:”);scanf(“%s”,s1->tel);puts(“請(qǐng)輸入電子郵件:”);scanf(“%s”,s1->Email);puts(“請(qǐng)輸入學(xué)生宿舍號(hào):”);scanf(“%d”,&s1->sushe);n=n+1;} puts(“*************************************************”);s2->next=s1;

      第8頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      s2=s1;s2->next=NULL;return(stu);//system(“cls”);}

      void shuchu(struct student *s){ /*輸出單個(gè)學(xué)生信息*/ printf(“* %-8ld”,s->num);printf(“%-15s”,s->name);printf(“%-8d”,s->banji);printf(“%-15s”,s->tel);printf(“%-15s”,s->Email);printf(“%-5d *n”,s->sushe);}

      void findall()/*輸出所有學(xué)生信息*/ { system(“cls”);struct student *s;//if(n=2)//printf(“n現(xiàn)在有%d個(gè)學(xué)生信息,分別是:n”,n);//else

      第9頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      printf(“n現(xiàn)在有%d個(gè)學(xué)生信息,分別是:n”,n);puts(“________________________________________________________________________”);puts(“* 學(xué)號(hào) 姓名 班級(jí) 電話 電子郵件 宿舍 *”);s=stu;while(s!=NULL){ shuchu(s);s=s->next;} puts(“________________________________________________________________________”);puts(“返回主菜單請(qǐng)按【9】”);if(getche()=='9')menu();}

      void findname(){ /*按姓名查找函數(shù)*/ system(“cls”);struct student *s;char name[20];printf(“n請(qǐng)輸入你要查詢(xún)的學(xué)生姓名:n”);

      第10頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      scanf(“%s”,name);s=stu;while(strcmp(s->name,name)!=0){ s=s->next;} if(s==NULL){ puts(“查無(wú)此學(xué)生姓名!”);goto end;} else { puts(“該學(xué)生的信息為:”);puts(“* 學(xué)號(hào)

      姓名

      電子郵件 宿舍 *”);shuchu(s);} end:;puts(“返回主菜單請(qǐng)按【9】”);if(getche()=='9')menu();}

      第11頁(yè)(共25頁(yè))

      班級(jí)

      電話

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      void findnum()/*按學(xué)號(hào)查找函數(shù)*/ { system(“cls”);struct student *s;puts(“請(qǐng)輸入你要查詢(xún)的學(xué)生學(xué)號(hào):”);long i;scanf(“%ld”,&i);s=stu;

      while(s->num!=i){ s=s->next;} if(s==NULL){puts(“查無(wú)此學(xué)生學(xué)號(hào)!”);goto end;} else { puts(“該學(xué)生的信息為:”);puts(“* 學(xué)號(hào) 姓名 班級(jí) 郵件 宿舍 *”);shuchu(s);

      第12頁(yè)(共25頁(yè))

      子電話 電C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      } end:;puts(“返回主菜單請(qǐng)按【9】”);if(getche()=='9')menu();}

      struct student *shanchu(struct student*stu)/*刪除函數(shù)*/ { system(“cls”);long num;char s;struct student *s1,*s2;if(stu==NULL){ puts(“傻冒!沒(méi)有任何學(xué)生信息,還刪個(gè)屁啊,刪刪刪!”);goto end;} puts(“請(qǐng)輸入你要?jiǎng)h除的學(xué)生學(xué)號(hào):”);scanf(“%ld”,&num);s1=stu;puts(“警告:你確定要?jiǎng)h除這個(gè)學(xué)生的信息嗎(Y/N)?”);scanf(“%s”,&s);

      第13頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      if((s=='Y')||(s=='y')){ while((num!=s1->num)&&(s1->next!=NULL)){s2=s1;s1=s1->next;}

      if(num==s1->num){ puts(“該學(xué)生的信息為:”);puts(“* 學(xué)號(hào)

      姓名

      班級(jí)

      電話 電子郵件 宿舍 *”);shuchu(s1);if(s1==stu)stu=s1->next;else s2->next=s1->next;puts(“注意喲,該學(xué)生的信息已經(jīng)刪除了!剩下的學(xué)生通訊錄信息如下:”);n=n-1;} } findall();return(stu);end:;

      第14頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      puts(“返回主菜單請(qǐng)按【9】”);if(getche()=='9')menu();}

      void paixu(){ /*排序函數(shù)*/ struct student *p, *p1,*p2;int i,j;int temp;char b[20];if(stu==NULL){printf(“n學(xué)生信息不存在n”);goto end;} for(i=0;inext;if(p1->num>p2->num)

      {temp=p1->num;p1->num=p2->num;p2->num=temp;

      strcpy(b,p1->name);strcpy(p1->name,p2->name);strcpy(p2->nam

      第15頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      e,b);

      temp=p1->banji;p1->banji=p2->banji;p2->banji=temp;

      strcpy(b,p1->tel);strcpy(p1->tel,p2->tel);strcpy(p2->tel,b);

      strcpy(b,p1->Email);strcpy(p1->Email,p2->Email);strcpy(p2->Email,b);temp=p1->sushe;p1->sushe=p2->sushe;p2->sushe=temp;

      } p1=p1->next;} } p=stu;puts(“已按學(xué)生學(xué)號(hào)順序排序完畢!重新排序如下:”);

      puts(“****************************************************************************”);puts(“* 學(xué)號(hào) 姓名 班級(jí) 電話 電子郵件 宿舍 *”);

      while(p!=NULL)

      第16頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      { printf(“* %-8ld”,p->num);printf(“%-15s”,p->name);printf(“%-8d”,p->banji);printf(“%-15s”,p->tel);printf(“%-15s”,p->Email);printf(“%-5d *n”,p->sushe);p=p->next;} end:;puts(“返回主菜單請(qǐng)按【9】”);if(getche()=='9')menu();}

      void help()/*幫助函數(shù)*/ { system(“cls”);puts(“n1、請(qǐng)按提示操作,第一次進(jìn)入本系統(tǒng)時(shí)請(qǐng)按“1”錄入學(xué)生信息,”);puts(“ 否則有可能造成程序運(yùn)行錯(cuò)誤!”);puts(“

      2、添加、修改功能本系統(tǒng)暫不提供,還有待以后完善,謝謝

      第17頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      合作!”);puts(“

      3、請(qǐng)注意查看“Num Lock”是否打開(kāi),如果沒(méi)有打開(kāi),則按數(shù)字n 鍵可能導(dǎo)致程序錯(cuò)誤!”);puts(“

      4、版權(quán)所有,翻版必究!請(qǐng)按“7”鍵查看關(guān)于。”);puts(“n返回主菜單請(qǐng)按【9】”);if(getche()=='9')menu();}

      void main()/*主函數(shù)*/ { char a;menu();puts(“n您為首次使用本系統(tǒng),強(qiáng)烈建議您按1開(kāi)始錄入學(xué)生信息,”);puts(“否則有可能導(dǎo)致程序運(yùn)行錯(cuò)誤!您可以按8查看幫助.”);a=getche();while(a){ puts(“");switch(a){case'0':goto end;break;case '1': puts(”n好了,您可以開(kāi)始向本系統(tǒng)錄入學(xué)生通訊錄信息了:

      第18頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      “);stu=shuru();system(”cls“);menu();puts(”n學(xué)生信息錄入完畢,請(qǐng)輸入你的選擇(0~6):n“);

      break;case '2':findall();puts(”n請(qǐng)輸入你的選擇(0~6):“);break;case '3':findname();puts(”n請(qǐng)輸入你的選擇(0~6):“);break;case '4':findnum();puts(”n請(qǐng)輸入你的選擇(0~6):“);break;case '5':stu=shanchu(stu);puts(”n請(qǐng)輸入你的選擇(0~6):“);break;case '6':paixu();puts(”n請(qǐng)輸入你的選擇(0~6):“);break;case '7':guanyu();puts(”n請(qǐng)輸入你的選擇(0~6):“);break;case '8':help();puts(”n請(qǐng)輸入你的選擇(0~6):“);break;default:puts(”輸錯(cuò)了!笨蛋!快點(diǎn)按數(shù)字1鍵錄入學(xué)生信息吧!“);break;} a=getche();} end:;puts(”謝謝您使用本系統(tǒng),歡迎再次使用!");

      第19頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      } —————————————————————————

      四、調(diào)試

      主要是通過(guò)截圖來(lái)顯示運(yùn)行過(guò)程 以下是程序運(yùn)行的主界面:

      按1后,開(kāi)始錄入信息,程序會(huì)提示你輸入學(xué)生個(gè)數(shù)(例如本例中輸入4個(gè)),當(dāng)輸完4個(gè)學(xué)生的信息時(shí),程序會(huì)提示你已輸入完畢:

      第20頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      學(xué)生信息錄入完畢,提示輸入(0到6)進(jìn)行選擇:

      第21頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      這時(shí)我選擇按2輸出所有學(xué)生信息,按9返回:

      按3按姓名查詢(xún)信息:

      按4按學(xué)號(hào)查詢(xún)信息:

      第22頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      按5刪除學(xué)生信息,這是按學(xué)號(hào)刪除學(xué)生信息,本例中,刪除學(xué)號(hào)為41212的學(xué)生信息:

      刪除成功后,系統(tǒng)自動(dòng)將剩下的學(xué)生信息列出:

      按6按學(xué)號(hào)從小到大進(jìn)行排序,可以發(fā)現(xiàn),排序成功:

      第23頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      按8查看幫助函數(shù):

      呵呵,這是我設(shè)置的關(guān)于函數(shù),滿足一下敝人的虛榮心嘛^_^,版權(quán)所有,翻版必究哦!

      最后按0退出系統(tǒng):

      第24頁(yè)(共25頁(yè))

      C語(yǔ)言課程設(shè)計(jì)報(bào)告——?jiǎng)@安

      呵呵,怎么樣?我寫(xiě)的程序還行吧。嘿嘿……

      三、總結(jié)

      這個(gè)程序我只是總體上參考了一下網(wǎng)上程序的架構(gòu),具體的各個(gè)函數(shù)是參照課本上《鏈表》那一章的內(nèi)容的,比如結(jié)構(gòu)體的建立、查找和排序等功能,這些書(shū)上都有類(lèi)似的,其中排序功能雖沒(méi)有原版的,但是在第六章中有一個(gè)用冒泡法排序的例題,我就是仿照這個(gè)模式來(lái)對(duì)結(jié)構(gòu)體進(jìn)行排序的,總之整個(gè)程序中蘊(yùn)含了我很多的汗水。

      第25頁(yè)(共25頁(yè))

      第三篇:C語(yǔ)言課程設(shè)計(jì)學(xué)生通訊錄管理系統(tǒng)設(shè)計(jì)

      C語(yǔ)言課程設(shè)計(jì)學(xué)生通訊錄管理系統(tǒng)設(shè)計(jì)

      一、題目?jī)?nèi)容的描述

      學(xué)生通訊錄管理系統(tǒng)設(shè)計(jì)

      設(shè)計(jì)一個(gè)學(xué)生通信錄,學(xué)生通迅錄數(shù)據(jù)信息構(gòu)成內(nèi)容可自行設(shè)計(jì)(如:姓名、家庭地址、郵政編碼、電話號(hào)碼等等),通信錄數(shù)據(jù)類(lèi)型定義為結(jié)構(gòu)體類(lèi)型。由鍵盤(pán)輸入數(shù)據(jù)(最好要考慮輸入數(shù)據(jù)輸入的格式及輸入數(shù)據(jù)的有效性),然后進(jìn)行以下的功能實(shí)現(xiàn)。程序要求主函數(shù)是一個(gè)功能選擇菜單,其它各功能都用各自的函數(shù)實(shí)現(xiàn)。

      功能要求如下:

      1、能建立、修改和增刪學(xué)生通訊錄

      2、能夠按多種方式進(jìn)行查詢(xún),例如按姓名、按電話號(hào)碼等。

      3、通訊錄的數(shù)據(jù)保存在文件中,運(yùn)行程序時(shí)將通訊錄數(shù)據(jù)從文件讀取到內(nèi)存中。對(duì)通訊錄進(jìn)行增加、刪除、修改學(xué)生數(shù)據(jù)后,提供功能菜單,可以將內(nèi)存中修改過(guò)的通訊錄重新保存至文件。

      二、應(yīng)用程序功能的詳細(xì)說(shuō)明

      1、應(yīng)用程序?qū)崿F(xiàn)了可視化的系統(tǒng)操作界面。

      2、對(duì)學(xué)生通訊錄形成了系統(tǒng)化的管理,操作簡(jiǎn)便明了。

      3、程序具有系統(tǒng)幫助,添加、顯示、查詢(xún)、刷新、刪除、排序、保存、修改、讀取學(xué)生通訊錄的功能。各項(xiàng)功能均可按照文字提示操作,淺顯易懂。

      4、系統(tǒng)的各個(gè)功能模塊都用函數(shù)的形式來(lái)實(shí)現(xiàn)(readfile()、seek()、modify()、sort()、insert()、del()、save()、menu())方便查看。

      5.可以將信息保存在文件(“student.txt“)中,亦可將信息從文件中讀取出來(lái),靈活方便。

      三、主要模塊的算法描述

      學(xué)生通訊錄管理系統(tǒng)

      刷新學(xué)生信息readfile()

      查詢(xún)學(xué)生信息seek()

      增加學(xué)生信息insert()

      顯示學(xué)生信息display()

      退出系統(tǒng)

      修改學(xué)生信息modify()

      刪除學(xué)生信息del()

      保存當(dāng)前學(xué)生信息save()

      匯總當(dāng)前學(xué)生數(shù)目number()

      系統(tǒng)幫助help()

      查詢(xún)學(xué)生信息

      按姓名查詢(xún)

      退出

      按學(xué)號(hào)查詢(xún)

      開(kāi)始

      以可讀寫(xiě)的方式打開(kāi)一個(gè)數(shù)據(jù)文件

      將此文件的內(nèi)容讀出,并存入一個(gè)新的結(jié)構(gòu)體類(lèi)型的數(shù)組中。

      調(diào)用menu()菜單函數(shù)

      進(jìn)入while()主循環(huán)

      輸入1-8中的一數(shù)值,選擇相應(yīng)操作。

      輸入是否為0

      判斷鍵值,調(diào)用相應(yīng)函數(shù),完成相應(yīng)功能。

      是否已對(duì)修改存盤(pán)

      調(diào)用函數(shù)save()函數(shù),進(jìn)行寫(xiě)數(shù)據(jù)文件操作

      結(jié)束

      模塊一:頭文件,變量定義,函數(shù)的聲明

      對(duì)系統(tǒng)所使用的變量進(jìn)行定義,對(duì)函數(shù)進(jìn)行聲明。

      模塊二:錄入學(xué)生信息

      聲明函數(shù)void

      readfile(),說(shuō)明一個(gè)文件指針FILE

      *fp打開(kāi)文

      件“student.txt“。

      模塊三:學(xué)生信息的查找

      聲明void

      seek()為查找函數(shù),通過(guò)switch(item)設(shè)定用學(xué)號(hào)查找,用姓名查找兩個(gè)分支。

      模塊四:學(xué)生信息的修改

      聲明void

      modify()為學(xué)生信息修改函數(shù),通過(guò)switch(item)設(shè)定

      所要修改的項(xiàng)目。

      模塊五:刷新學(xué)生信息

      聲明void

      sort()將錄入學(xué)生系按升序排列,用的是“冒泡排序法”

      實(shí)現(xiàn)排序。

      模塊六:增加學(xué)生信息

      聲明void

      insert()插入學(xué)生信息,先通過(guò)判斷學(xué)生是否存在,若

      否則繼續(xù)輸入,若是則跳出,重新循環(huán)。

      模塊七:刪除學(xué)生信息

      聲明void

      del()實(shí)現(xiàn)學(xué)生信息刪除,通過(guò)學(xué)號(hào)對(duì)比確定要?jiǎng)h除的信

      息,然后用后一個(gè)替換掉。

      模塊八:顯示學(xué)生信息

      通過(guò)display()函數(shù)輸出學(xué)生信息。

      模塊九:保存信息

      通過(guò)fp=fopen(“student.txt“,“w“);寫(xiě)入信息。

      模塊十:匯總學(xué)生數(shù)目

      通過(guò)number()函數(shù)將已有男女生及總學(xué)生數(shù)目匯總出來(lái)。

      模塊十一:系統(tǒng)幫助

      通過(guò)help()函數(shù)幫助操作。

      模塊十二:界面菜單

      通過(guò)switch(num)調(diào)用以上各函數(shù),實(shí)現(xiàn)功能。

      1、程序采用模塊化設(shè)計(jì),各模塊獨(dú)立,可分塊調(diào)試,個(gè)模塊由主函數(shù)控制調(diào)用。

      2、其中主要模塊(readfile()、seek()、modify())都是利用數(shù)組,指針來(lái)實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。

      3、數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)是確定系統(tǒng)所需要的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)是表的集合,通常一個(gè)系統(tǒng)只需一個(gè)數(shù)據(jù)庫(kù)。設(shè)計(jì)人

      是根據(jù)需求分析,確定數(shù)據(jù)庫(kù)所包含的表及字段、表間的關(guān)系,然后具體確定表的結(jié)構(gòu),包括字段名、字段類(lèi)型及寬度,需要的索引等。根據(jù)對(duì)需求得到的數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析,按數(shù)據(jù)輸入輸出的要求,確定表和表間的關(guān)系,進(jìn)行驗(yàn)證、調(diào)整、修改、完善,使其能夠?qū)崿F(xiàn)用戶(hù)對(duì)數(shù)據(jù)和功能的要求。通訊信息表包括以下字段:學(xué)號(hào),姓名,年齡,性別,出生年月,地址,電話,E-mail。學(xué)號(hào)為主索引。

      四、結(jié)束語(yǔ)

      我設(shè)計(jì)的程序總體功能大都能夠運(yùn)行順利,但有許多地方比較復(fù)雜,需要進(jìn)一步修改,進(jìn)行簡(jiǎn)化。通過(guò)這次課程設(shè)計(jì)的鍛煉,我收獲很多,具體歸納為以下幾點(diǎn):

      1、首先,也是最重要的一點(diǎn),學(xué)會(huì)如何將一個(gè)復(fù)雜的問(wèn)題簡(jiǎn)化,將一個(gè)較大的問(wèn)題分成幾個(gè)小問(wèn)題,再一一解決這些小問(wèn)題。在設(shè)計(jì)一個(gè)程序之前,要學(xué)會(huì)對(duì)程序功能進(jìn)行規(guī)劃,將其分為幾個(gè)不同的功能模塊,要思路清晰,簡(jiǎn)單易用;

      2、學(xué)會(huì)靈活運(yùn)用已有的知識(shí),同時(shí)適當(dāng)?shù)耐卣挂恍┲R(shí);比如,這次設(shè)計(jì)過(guò)程中,有一些函數(shù)以前就很少用到,甚至沒(méi)有見(jiàn)過(guò),但對(duì)程序的設(shè)計(jì)及用戶(hù)界面的改善帶來(lái)方便;

      3、解決問(wèn)題時(shí),要盡可能考慮全面。每一個(gè)細(xì)節(jié)都很重要,既要避免功能的重復(fù),也要避免功能疏漏的地方!

      4、在這次課程設(shè)計(jì)過(guò)程中,參考了許多資料,發(fā)現(xiàn)C語(yǔ)言真的很有意思!比如我看到一個(gè)關(guān)于用C語(yǔ)言編寫(xiě)的小程序:五子棋、俄羅斯方塊、推箱子等,等這次課程結(jié)束后,我就想利用C語(yǔ)言編寫(xiě)這些小游戲。曾經(jīng)認(rèn)為C是個(gè)挺枯燥的課程,現(xiàn)在發(fā)現(xiàn)這不僅僅是個(gè)簡(jiǎn)單的課程,而是個(gè)很實(shí)用的計(jì)算機(jī)工具!

      五、程序源代碼清單

      #include

      #include

      #include

      #define

      BUFLEN

      #define

      LEN

      #define

      N

      struct

      record

      {

      char

      code[LEN+1];

      char

      name[LEN+1];

      int

      age;

      char

      sex[3];

      char

      time[LEN+1];

      char

      add[30];

      char

      tel[LEN+1];

      char

      mail[30];

      }stu[N];

      int

      k=1,n,m;

      void

      readfile();

      void

      seek();

      void

      modify();

      void

      insert();

      void

      del();

      void

      display();

      void

      save();

      void

      number();

      void

      menu();

      int

      main()

      {

      while(k)

      menu();

      system(“pause“);

      return

      0;

      }

      void

      readfile()//刷新學(xué)生信息

      {

      char

      *p=“student.txt“;

      FILE

      *fp;

      int

      i=0;

      if

      ((fp=fopen(“student.txt“,“r“))==NULL)

      {

      printf(“Open

      file

      %s

      error!

      Strike

      any

      key

      to

      exit!“,p);

      system(“pause“);

      exit(0);

      }

      while(fscanf(fp,“%s

      %s%d%s

      %s

      %s

      %s

      %s“,stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)

      {

      i++;

      i=i;

      }

      fclose(fp);

      n=i;

      printf(“錄入完畢?。躰“);

      }

      void

      seek()//查詢(xún)學(xué)生信息

      ......void

      modify()//修改學(xué)生信息

      ......void

      sort()//對(duì)學(xué)生信息按學(xué)號(hào)排序

      {

      int

      i,j,*p,*q,s;

      char

      temp[10];

      for(i=0;i

      {

      for(j=n-1;j>i;j--)

      if(strcmp(stu[j-1].code,stu[j].code)>0)

      {

      strcpy(temp,stu[j-1].code);

      strcpy(stu[j-1].code,stu[j].code);

      strcpy(stu[j].code,temp);

      strcpy(temp,stu[j-1].name);

      strcpy(stu[j-1].name,stu[j].name);

      strcpy(stu[j].name,temp);

      strcpy(temp,stu[j-1].sex);

      strcpy(stu[j-1].sex,stu[j].sex);

      strcpy(stu[j].sex,temp);

      strcpy(temp,stu[j-1].time);

      strcpy(stu[j-1].time,stu[j].time);

      strcpy(stu[j].time,temp);

      strcpy(temp,stu[j-1].add);

      strcpy(stu[j-1].add,stu[j].add);

      strcpy(stu[j].add,temp);

      strcpy(temp,stu[j-1].tel);

      strcpy(stu[j-1].tel,stu[j].tel);

      strcpy(stu[j].tel,temp);

      strcpy(temp,stu[j-1].mail);

      strcpy(stu[j-1].mail,stu[j].mail);

      strcpy(stu[j].mail,temp);

      p=&stu[j-1].age;

      q=&stu[j].age;

      s=*q;

      *q=*p;

      *p=s;

      }

      }

      }

      void

      insert()//增加學(xué)生信息

      ......void

      display()//顯示當(dāng)前學(xué)生信息

      {

      int

      i;

      printf(“所有學(xué)生的信息為:\n“);

      printf(“學(xué)生學(xué)號(hào),學(xué)生姓名,年齡,性別,出生年月,地址,電話,E-mail\n“);

      printf(“--------------------------------------------------------------------\n“);

      for(i=0;i

      {

      printf(“%6s,%7s,%5d,%5s,%9s,%8s,%10s,%14s\n“,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

      }

      }

      void

      save()//保存當(dāng)前學(xué)生信息

      {

      int

      i;

      FILE

      *fp;

      fp=fopen(“student.txt“,“w“);

      for(i=0;i

      {

      fprintf(fp,“%s,%s,%d,%s,%s,%s,%s,%s\n“,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

      }

      fclose(fp);

      }

      void

      number()//匯總學(xué)生數(shù)目

      {

      int

      i,girl,boy=0;

      for(i=0;i

      if(strcmp(stu[i].sex,“1“)==0)

      {boy++;}

      girl=n-boy;

      printf(“男生人數(shù)是:%d\n女生的人數(shù)是:%d\n“,boy,girl);

      printf(“總的學(xué)生人數(shù)為:%d“,n);

      }

      void

      help()//系統(tǒng)幫助

      {

      printf(“輸入性別時(shí)男為1,女為2“);

      printf(“\n3.增加學(xué)生信息后,切記保存按7;\n“);

      printf(“\n4.謝謝您的使用!\n“);

      }

      void

      menu()//可視化的系統(tǒng)操作界面

      {

      int

      num;

      printf(“

      \n\n

      學(xué)生通訊錄管理系統(tǒng)

      \n\n“);

      printf(“

      *********************系統(tǒng)功能菜單************************

      \n“);

      printf(“

      --------------------------------

      -------------------------------

      \n“);

      printf(“

      1.刷新學(xué)生信息

      2.查詢(xún)學(xué)生信息

      \n“);

      printf(“

      *********************************************

      \n“);

      printf(“

      3.修改學(xué)生信息

      4.增加學(xué)生信息

      \n“);

      printf(“

      *********************************************

      \n“);

      printf(“

      5.按學(xué)號(hào)刪除信息

      6.顯示當(dāng)前信息

      \n“);

      printf(“

      *********************************************

      \n“);

      printf(“

      7.保存當(dāng)前學(xué)生信息

      8.匯總學(xué)生數(shù)目

      \n“);

      printf(“

      *********************************************

      \n“);

      printf(“

      9.系統(tǒng)幫助

      10.退出系統(tǒng)

      \n“);

      printf(“

      ---------------------------------

      ------------------------------

      \n“);

      printf(“

      ************************************************************

      \n“);

      printf(“請(qǐng)選擇菜單編號(hào):“);

      scanf(“%d“,&num);

      switch(num)

      {

      case

      1:readfile();break;

      case

      2:seek();break;

      case

      3:modify();break;

      case

      4:insert();break;

      case

      5:del();break;

      case

      6:display();break;

      case

      7:save();break;

      case

      8:number();break;

      case

      9:help();break;

      case

      10:k=0;break;

      default:printf(“請(qǐng)?jiān)?-10之間選擇\n“);

      }

      }

      第四篇:湖南工業(yè)大學(xué) 通訊錄管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)(C語(yǔ)言)

      湖南工業(yè)大學(xué)

      二〇〇九 ~ 二〇一〇學(xué)年 第 二 學(xué)期

      計(jì)算機(jī)與通信學(xué)院

      課程設(shè)計(jì)報(bào)告書(shū)

      課程名稱(chēng): C語(yǔ)言課程設(shè)計(jì) 班 級(jí): 學(xué) 號(hào):

      姓 名:

      指導(dǎo)老師:

      二〇〇九 年 九 月

      通訊錄管理系統(tǒng)一. 需求分析

      設(shè)計(jì)題目及要求:

      ◆ 建立通訊錄信息,信息至少包含編號(hào)、姓名、年齡、電話、通訊地址、電子郵箱等;

      ◆ 能夠提供添加、刪除和修改通訊錄信息的功能;

      ◆ 能夠提供安不同方式查詢(xún)的功能;如按姓名或年齡、電話等查詢(xún); ◆ 將通訊錄保存在文件中;

      ◆ 能夠按表格方式輸出通訊錄信息。

      系統(tǒng)功能需求分析: 主要包含一下多種功能:

      添加:添加通訊錄記錄 顯示:顯示通訊錄記錄 刪除:刪除通訊錄記錄 查詢(xún):查詢(xún)通訊錄記錄 修改:修改通訊錄記錄 保存:將信息保存到文件

      二. 概要設(shè)計(jì)

      系統(tǒng)功能模塊圖:

      添加:可以添加通訊錄記錄,依次輸入編號(hào)、姓名、年齡、電話號(hào)碼、通訊地址、電子郵箱后,會(huì)提示是否繼續(xù)添加。

      顯示:可以以表格形式輸出所有通訊錄里的記錄

      刪除:輸入欲刪除的那個(gè)人的名字后,會(huì)自動(dòng)刪除他(她)的記錄內(nèi)容 查詢(xún):可以選擇用姓名、電話、地址三種方式查詢(xún)

      修改:輸入欲修改的那個(gè)人的名字后,再依次輸入編號(hào)、姓名、年齡、電話號(hào)碼、通訊地址、電子郵箱即可完成修改

      保存:,輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件

      三. 詳細(xì)設(shè)計(jì)

      (1).通訊錄:

      void main()

      /*主函數(shù)*/ {

      int n=0;

      for(;;)

      {

      switch(menu_select())typedef struct

      {

      char score;

      /*編號(hào)*/ char name[10];

      /*姓名*/

      char num[15];

      /*號(hào)碼*/

      char email[20];

      /*郵箱*/ char age[8];

      /*年齡*/ char adds[20];

      /*住址*/ }Person;

      {

      case 1:

      printf(“nt添加記錄到通訊錄n”);

      /*添加記錄*/ n=Input(pe,n);break;

      case 2:

      printf(“nttt

      通訊錄記錄表n”);

      /*顯示記錄*/ Display(pe,n);break;

      case 3:

      printf(“nt從通訊錄中刪除記錄n”);n=Delete_a_record(pe,n);

      printf(“t”);

      system(“pause”);break;

      case 4:

      printf(“nt在通訊錄中查找記錄n”);Query_a_record(pe,n);

      printf(“t”);

      system(“pause”);break;

      case 5:

      printf(“nt修改通訊錄中的記錄n”);Change(pe,n);

      printf(“t”);

      system(“pause”);break;

      case 6:

      printf(“nt保存功能n”);WritetoText(pe,n);

      printf(“t”);

      system(“pause”);break;

      case 0:

      printf(“ntt謝謝使用,再見(jiàn)!n”);

      printf(“ntt”);system(“pause”);exit(0);

      /*刪除記錄*/

      /*查找記錄*/

      /*修改數(shù)據(jù)*/

      /*保存數(shù)據(jù)*/

      /*結(jié)束程序*/

      } } }

      (2).工作流程圖:

      ①添加:添加通訊錄記錄

      ②顯示:顯示通訊錄記錄

      ③刪除:刪除通訊錄記錄

      ④查詢(xún):查詢(xún)通訊錄記錄

      先選擇查詢(xún)方式,以姓名查詢(xún)方式為例

      四. 源程序代碼

      #include #include #include

      typedef struct

      {

      char score;

      /*編號(hào)*/

      char name[10];

      /*姓名*/

      char num[15];

      /*號(hào)碼*/

      char email[20];

      /*郵箱*/

      char age[8];

      /*年齡*/

      char adds[20];

      /*住址*/ }Person;Person pe[80];

      int menu_select()

      {

      char c;

      do{

      system(“cls”);

      printf(“tt *****通訊錄***** n”);

      printf(“tt┌───────┐n”);

      printf(“tt│ 1.添加記錄

      │n”);

      printf(“tt│ 2.顯示記錄

      │n”);

      printf(“tt│ 3.刪除記錄

      │n”);

      printf(“tt│ 4.查詢(xún)記錄

      │n”);

      printf(“tt│ 5.修改記錄

      │n”);

      printf(“tt│ 6.保存記錄

      │n”);

      printf(“tt│ 0.退出程序

      │n”);

      printf(“tt└───────┘n”);

      printf(“tt請(qǐng)您選擇(0-6):”);

      c=getchar();

      }while(c<'0'||c>'6');

      return(c-'0');

      }

      int Input(Person per[],int n){ int i=0;

      char sign,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(“nt是否繼續(xù)添加?(Y/N)”);

      scanf(“t%c”,&sign);

      i++;

      }

      return(n+i);}

      void Display(Person per[],int n)

      {

      int i;

      printf(“--------n”);

      /*格式*/

      printf(“編號(hào)

      姓名

      年齡

      電話號(hào)碼

      通訊地址

      電子郵箱n”);

      printf(“--------n”);

      for(i=1;i

      {

      printf(“%-5d%-8s%-6s%-13s%-15s%-15sn”,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”);}

      int Delete_a_record(Person per[],int n){

      char s[20];

      int i=0,j;

      printf(“t請(qǐng)輸入想刪除記錄中的名字:”);

      scanf(“%s”,s);

      while(strcmp(per[i].name,s)!=0&&i

      if(i==n)

      {

      printf(“t通訊錄中沒(méi)有此人!n”);

      return(n);

      }

      for(j=i;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(“ttt已經(jīng)成功刪除!n”);

      return(n-1);}

      void Query_a_record(Person per[],int n){

      int m;printf(“tn請(qǐng)選擇查詢(xún)方式: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){

      char s[20];

      int i=0;

      printf(“t請(qǐng)輸入想查詢(xún)的姓名:”);

      scanf(“t%s”,s);

      while(strcmp(per[i].name,s)!=0&&i

      if(i==n)

      {

      printf(“t通訊錄中沒(méi)有此人!n”);

      return;

      }

      printf(“t此人編號(hào): %dn”,per[i].score);

      };printf(“t此人年齡: %sn”,per[i].age);printf(“t電話號(hào)碼: %sn”,per[i].num);printf(“t通訊地址: %sn”,per[i].adds);printf(“t電子郵箱: %sn”,per[i].email);if(m==2){ char s[20];

      int i=0;

      printf(“t請(qǐng)輸入想查詢(xún)的電話:”);

      scanf(“t%s”,s);

      while(strcmp(per[i].num,s)!=0&&i

      if(i==n)

      {

      printf(“t通訊錄中沒(méi)有此人!n”);

      return;

      };}

      printf(“t此人編號(hào): %dn”,per[i].score);printf(“t此人姓名: %sn”,per[i].name);printf(“t此人年齡: %sn”,per[i].age);printf(“t通訊地址: %sn”,per[i].adds);printf(“t電子郵箱: %sn”,per[i].email);if(m==3){ char s[20];

      int i=0;

      printf(“t請(qǐng)輸入想查詢(xún)的地址:”);

      scanf(“t%s”,s);

      while(strcmp(per[i].adds,s)!=0&&i

      if(i==n)

      {

      printf(“t通訊錄中沒(méi)有此人!n”);

      return;

      }

      printf(“t此人編號(hào): %dn”,per[i].score);printf(“t此人姓名: %sn”,per[i].name);printf(“t此人年齡: %sn”,per[i].age);

      printf(“t電話號(hào)碼: %sn”,per[i].num);

      printf(“t電子郵箱: %sn”,per[i].email);};}

      void Change(Person per[],int n){ char s[20];

      int i=0;

      printf(“t請(qǐng)輸入想修改的記錄中的名字:”);

      scanf(“%s”,s);

      while(strcmp(per[i].name,s)!=0&&i

      if(i==n)

      {

      printf(“t通訊錄中沒(méi)有此人!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修改成功!”);}

      void WritetoText(Person per[],int n)

      {

      int i=0;

      FILE *fp;

      char filename[20];

      printf(“t保存到文件n”);

      printf(“t請(qǐng)輸入所保存的文件名:”);

      scanf(“t%s”,filename);

      if((fp=fopen(filename,“w”))==NULL)

      {

      printf(“t無(wú)法打開(kāi)文件n”);

      system(“pause”);

      return;

      /*定義文件指針*/ /*定義文件名*/ /*輸入文件名*/

      }

      fprintf(fp,“******************************************通訊錄******************************************n”);fprintf(fp,“編號(hào)

      姓名

      年齡

      電話號(hào)碼

      通訊地址

      電子郵箱n”);fprintf(fp,“----------------------------n”);while(i

      {

      fprintf(fp,“%-3dt%-6st%-3st%-13st%-20st%-20sn”,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”);}

      void main()

      /*主函數(shù)*/ {

      int n=0;

      for(;;)

      {

      switch(menu_select())

      {

      case 1:

      printf(“nt添加記錄到通訊錄n”);

      /*添加記錄*/

      n=Input(pe,n);

      break;

      case 2:

      printf(“nttt

      通訊錄記錄表n”);

      /*顯示記錄*/

      Display(pe,n);

      break;

      case 3:

      printf(“nt從通訊錄中刪除記錄n”);

      n=Delete_a_record(pe,n);

      /*刪除記錄*/

      printf(“t”);

      system(“pause”);

      break;

      case 4:

      printf(“nt在通訊錄中查找記錄n”);

      Query_a_record(pe,n);

      printf(“t”);

      system(“pause”);

      break;

      case 5:

      printf(“nt修改通訊錄中的記錄n”);

      Change(pe,n);

      printf(“t”);

      system(“pause”);

      break;

      case 6:

      printf(“nt保存功能n”);

      WritetoText(pe,n);

      printf(“t”);

      system(“pause”);

      break;

      case 0:

      printf(“ntt謝謝使用,再見(jiàn)!n”);

      printf(“ntt”);

      system(“pause”);

      exit(0);

      }

      }

      }

      五. 測(cè)試數(shù)據(jù)及其結(jié)果分析

      測(cè)試: 1).顯示的主菜單界面

      /*查找記錄*/

      /*修改數(shù)據(jù)*/

      /*保存數(shù)據(jù)*/

      /*結(jié)束程序*/

      2).添加界面:

      3).顯示界面:

      4).刪除界面:

      刪除后,通訊錄里的顯示記錄:

      5).查詢(xún)界面:

      以姓名查詢(xún)方式為例:

      6).修改界面:

      修改后,通訊錄里的顯示記錄:

      7).保存界面:

      tongxunlu.txt文件截圖:

      問(wèn)題思考:

      1.當(dāng)我在進(jìn)行刪除、查詢(xún)、修改、保存等功能時(shí),以查詢(xún)?yōu)槔?,輸入名字按回?chē)后,雖然會(huì)顯示該人的所有記錄,但是顯示后,它馬上自動(dòng)消失了,還沒(méi)來(lái)得及等我看內(nèi)容。因此,向別人請(qǐng)教后,在一些地方加入了system(“pause”);這個(gè)語(yǔ)言,用來(lái)對(duì)某項(xiàng)操作完成后進(jìn)行暫停。

      2.現(xiàn)在這個(gè)程序的界面?zhèn)€人感覺(jué)很清爽。但在最初,每次進(jìn)行一項(xiàng)操作,運(yùn)行窗口里的內(nèi)容會(huì)一直保留著,感覺(jué)很雜亂,如下圖(添加后,進(jìn)行顯示操作):

      之后,我去網(wǎng)上尋求解決辦法,知道可以使用system(“cls”);這一語(yǔ)句可以解決這個(gè)問(wèn)題,最后,修改成功。

      六. 課程設(shè)計(jì)總結(jié)

      這次的程序?qū)嵲O(shè)計(jì)實(shí)驗(yàn)是對(duì)我們進(jìn)入大學(xué)以來(lái)學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言結(jié)果的一次大檢驗(yàn)。自己動(dòng)手,自己發(fā)現(xiàn)和解決問(wèn)題。發(fā)現(xiàn)了自己的許多不足。平時(shí)沒(méi)有掌握好的知識(shí)在這次實(shí)驗(yàn)中徹底暴露出來(lái),經(jīng)過(guò)不斷思考,不斷查閱資料和上機(jī)運(yùn)行,解決其中大部分問(wèn)題,當(dāng)然還存在一些問(wèn)題沒(méi)有解決。我相信在以后的學(xué)習(xí)能夠解決好它們。但是,收獲還是不小的,我不僅對(duì)C的操作有了進(jìn)一步的掌握,還了解到了程序設(shè)計(jì)的書(shū)寫(xiě)風(fēng)格及其注釋的格式。

      當(dāng)我選擇通訊錄這個(gè)題目時(shí),一開(kāi)始想運(yùn)用大量鏈表及指針來(lái)完成,但是在慢慢琢磨之后,覺(jué)得這個(gè)不一定要用鏈表,于是改變了編程思路。當(dāng)然還有不少文件的讀寫(xiě)問(wèn)題,不過(guò)還是通過(guò)不斷測(cè)試之后順利解決了。另外一點(diǎn)要說(shuō)的就是這個(gè)程序用了很多的循環(huán),因此對(duì)于循環(huán)的控制要十分小心,有時(shí)while和do-while的區(qū)別也是十分重要的。

      還有一點(diǎn)體會(huì)就是,書(shū)上和老師教的內(nèi)容是有限的,我們需要不斷地靠自己去學(xué)習(xí),向他人請(qǐng)教,了解和掌握更多的知識(shí),這樣我們才能編出更好的C程序。

      總體來(lái)說(shuō),這次C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)還是比較成功的,雖然最終程序還存在一些不足,但能取得這樣的成績(jī)我還是比較高興的。

      最后,要感謝學(xué)校為我們提供這次實(shí)驗(yàn)機(jī)會(huì),也要感謝老師的教導(dǎo)和好心人對(duì)我的幫助與支持。

      第五篇:C語(yǔ)言-通訊錄管理系統(tǒng)

      #include #include #include struct record{ charnum[12];char name[10];char birthday[10];char post[10];char phone[15];}data[100];intmenu_select();intcreate_record();intadd_record(int flag);int flag=0;

      intfind_record(int flag);intdelete_record(int flag);voidpaixu_record(int flag);intsave_record(int flag);void main(){ for(;;){ switch(menu_select())

      { case 1: printf(“ ***********************************************n”);printf(“ ************** 通訊錄的建立 ***************n”);printf(“ ***********************************************n”);flag=create_record();break;case 2: printf(“ ***********************************************n”);printf(“ ************** 通訊錄信息的添加 *****************n”);printf(“ ***********************************************n”);flag=add_record(flag);break;case 3: printf(“ ******************************n”);printf(“ ******* 通訊錄信息查詢(xún) *******n”);printf(“ ******************************n”);find_record(flag);

      break;case 4: printf(“ ***********************************n”);printf(“ **********通訊信息的刪除***********n”);printf(“ ***********************************n”);delete_record(flag);break;case 5: printf(“ ***********************************n”);printf(“ **********通訊錄的存儲(chǔ)(D:)*********n”);printf(“ ***********************************n”);save_record(flag);break;case 6: printf(“ ***********************************n”);printf(“ **********通訊者的排序*********n”);printf(“ ***********************************n”);paixu_record(flag);break;case 0: printf(“t 謝謝您的使用!n”);break;

      default : break;} } } intmenu_select(){ int i;printf(“

      ********************

      n”);printf(“

      Welcome!

      n

      ”);printf(“

      Form kuangminn”);printf(“

      ********************

      n”);printf(“

      n”);printf(“ n”);printf(“ n”);printf(“

      通訊錄管理系統(tǒng)

      n”);printf(“ n”);printf(“

      ======================n”);printf(“

      1.通訊錄的建立n”);printf(“

      2.通訊者的添加n”);printf(“

      3.通訊錄的查詢(xún)n”);printf(“

      4.通訊者的刪除n”);printf(“

      5.通訊錄的存儲(chǔ)n”);printf(“

      6.通訊者的排序n”);printf(“

      0.退出通訊錄管理系統(tǒng)n”);printf(“

      ======================n”);printf(“

      請(qǐng)選擇操作0-5 nn”);for(;;){ scanf(“%d”,&i);if(i<0||i>6)printf(“t對(duì)不起,您的輸入錯(cuò)誤n”);else break;} return i;} intcreate_record(){inti,j;for(i=0;;)

      { printf(“ 學(xué)號(hào)(12)姓名(10)出生年月(10)家庭住址(30)郵編(10)電話(15)n”);printf(“-------------n”);scanf(“%s%s%s%s%s%s”,data[i].num,data[i].name,data[i].birthday, data[i].post, data[i].phone);i++;printf(“ 想繼續(xù)創(chuàng)建嗎?(1.是/0.不):”);scanf(“%d”,&j);if(!j)

      return i;else printf(“恭喜你,創(chuàng)建成功!請(qǐng)繼續(xù)創(chuàng)建!n”);

      } return i;} intadd_record(int flag){ int i=flag,j;for(i;;)

      { printf(“ 學(xué)號(hào)(12)姓名(10)出生年月(10)家庭住址(30)郵編(10)電話(15)n”);printf(“-------------n”);

      scanf(“%s%s%s%s%s%s”,data[i].num,data[i].name,data[i].birthday,data[i].post, data[i].phone);i++;printf(“ 想繼續(xù)添加嗎?(1.是/0.不):”);scanf(“%d”,&j);if(!j)return i;else printf(“恭喜你,添加成功!請(qǐng)繼續(xù)添加!n”);

      } return(i);} intfind_record(){ int i;char number[6];char named[10];intxz;printf(“--------------------n”);printf(“ 1.按學(xué)號(hào)查詢(xún)n”);printf(“ 2.按姓名查詢(xún)n”);printf(“--------------------n”);printf(“ 請(qǐng)選擇 : n”);

      scanf(“%d”,&xz);if(xz==1){ printf(“ 請(qǐng)輸入要查找的學(xué)號(hào): ”);scanf(“%s”,number);for(i=0;i

      if(strcmp(data[i].num,number)==0)

      { printf(“ ** 學(xué)號(hào)姓名出生年月家庭住址郵編電話**n”);printf(“------------------------------n”);printf(“%s,%s,%s,%s,%s,%sn”,data[i].num,data[i].name,data[i].birthday,data[i].post,data[i].phone);printf(“------------------------------n”);return 0;}

      } else if(xz=2){ printf(“請(qǐng)輸入要查找的姓名: ”);scanf(“%s”,named);for(i=0;i

      { printf(“ ** 學(xué)號(hào)姓名出生年月家庭住址郵編電話**n”);printf(“------------------------------n”);printf(“%s,%s,%s,%s,%s,%sn”,data[i].num,data[i].name,data[i].birthday,data[i].post,data[i].phone);printf(“------------------------------n”);return 0;else {printf(“對(duì)不起,沒(méi)有你要找的人!n”);return 0;} }

      else {printf(“對(duì)不起,沒(méi)有你要找的人!n”);return 0;}

      }

      } intdelete_record(int flag)

      { inti,j;intdeletemark=0;char number[20];printf(“ttt請(qǐng)輸入要?jiǎng)h除學(xué)號(hào):n”);scanf(“%s”,number);for(i=0;i

      { if(strcmp(data[i].num, number)==0)

      { printf(“ttt以下是您要?jiǎng)h除的用戶(hù)紀(jì)錄:n”);printf(“ ** 學(xué)號(hào)姓名出生年月家庭住址郵編電話**n”);printf(“------------------------------n”);

      printf(“%s,%s,%s,%s,%s,%sn”,data[i].num,data[i].name,data[i].birthday,data[i].post,data[i].phone);printf(“------------------------------n”);

      printf(“ttt是否刪除?(y/n)”);if(getch()=='y' || getch()=='Y')

      { for(j=i;j

      } else return;

      } continue;

      } if(deletemark==0)

      { printf(“ttt沒(méi)有該用戶(hù)的紀(jì)錄”);

      return;

      } return;

      } voidpaixu_record(int flag){inti,j;struct record tmp;

      printf(“ 1.按姓名排序n”);printf(“ 2.按學(xué)號(hào)排序n”);scanf(“%d”,&i);if(i==1){for(i=1;i

      { if(strcmp(data[i].name, data [i-1].name)<0)

      { tmp= data[i];

      j=i-1;do

      { data [j+1]= data [j];j--;}while((strcmp(tmp.name, data [j].name)<0&&j>=0));data [j+1]=tmp;

      }

      } printf(“ttt排序成功!”);}

      if(i==2){for(j=0;jdata[i+1].num)

      {tmp=data[i];data[i]=data[i+1];data[i+1]=tmp;} } }

      intsave_record(int flag){

      FILE*fp;int i;if((fp=fopen(“D:data.txt”,“w+”))==NULL)

      {printf(“無(wú)法打開(kāi)文件!”);exit(0);} for(i=0;i

      {fprintf(fp,“%s,%s,%s,%s,%s,%sn”,data[i].num,data[i].name,data[i].birthday, data[i].post, data[i].phone);printf(“n”);} fclose(fp);return 0;}

      下載C語(yǔ)言課程設(shè)計(jì)-通訊錄管理范文合集word格式文檔
      下載C語(yǔ)言課程設(shè)計(jì)-通訊錄管理范文合集.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—java通訊錄管理系統(tǒng)

        import java.io.*; import java.util.*; public class LittleProgram { static boolean isDelete = true; static boolean isFind = true; public static void main(String......

        通訊錄管理系統(tǒng)-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告

        信息科學(xué)與技術(shù)學(xué)院 程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告 題目名稱(chēng): 通信管理系統(tǒng) 學(xué)生姓名: 學(xué) 號(hào): 專(zhuān)業(yè)班級(jí): 指導(dǎo)教師: 2016年 12月 31日 目錄 1.課程設(shè)計(jì)題目與要求 .......................

        C語(yǔ)言作業(yè):學(xué)通訊錄

        學(xué)生通訊錄一、語(yǔ)言和環(huán)境1.實(shí)現(xiàn)語(yǔ)言:C語(yǔ)言。2.環(huán)境要求:devC++。二、實(shí)現(xiàn)功能開(kāi)發(fā)一套學(xué)生通訊錄C語(yǔ)言系統(tǒng),具體實(shí)現(xiàn)如下功能:1.打開(kāi)系統(tǒng)顯示歡迎界面,以及功能菜單,用戶(hù)輸入需要......

        C語(yǔ)言程序設(shè)計(jì)學(xué)生通訊錄管理系統(tǒng)

        #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" #include "stdlib.h" #define null 0 struct record { char name[20]; char phone[20];......

        C語(yǔ)言大作業(yè)——學(xué)生通訊錄管理系統(tǒng)

        #include #include //#define NULL 0 #define LEN sizeof(struct message) struct message //定義結(jié)構(gòu)體{ char name[15]; char number[15]; char phone[15]; char qq[1......

        通訊錄管理系統(tǒng)大全

        課 程 設(shè) 計(jì) 任 務(wù) 書(shū) 題目 C語(yǔ)言課程設(shè)計(jì) 系(部) 專(zhuān)業(yè)班級(jí)學(xué)生姓名學(xué)號(hào) 06 月信息科學(xué)與電氣工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù) 計(jì)職141 王雪 140819139 21 日至07 月04 日共 2......

        通訊錄管理系統(tǒng)

        摘 要 為了人們對(duì)他人信息的記憶方便而設(shè)計(jì),開(kāi)發(fā)的一套“通訊錄管理系統(tǒng)“軟件。 通過(guò)該題目的設(shè)計(jì)過(guò)程,可以培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對(duì)高級(jí)語(yǔ)言基本語(yǔ)言要素和控制......

        管理notes通訊錄

        管理notes通訊錄 可以在個(gè)人通訊錄的聯(lián)系人文檔中保存人員的相關(guān)信息。如果保存了某人的郵件地址,可以通過(guò)鍵入此人的名字來(lái)填寫(xiě)郵件地址,而不必鍵入完整的郵件地址。 要打開(kāi)......