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

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

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

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

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

      通訊錄管理系統(tǒng) (c 和 鏈表)(共5篇)

      時間:2019-05-14 03:02:07下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《通訊錄管理系統(tǒng) (c 和 鏈表)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《通訊錄管理系統(tǒng) (c 和 鏈表)》。

      第一篇:通訊錄管理系統(tǒng) (c 和 鏈表)

      通訊錄管理系統(tǒng)(c 和 鏈表)

      通訊錄(add_book)中的聯(lián)系人包含以下信息項:姓名、手機、辦公電話、家庭電話、電子郵箱、所在省市、工作單位、家庭住址,群組分類(親屬、同事、同學、朋友、其他)。

      Name Mobile phones Office phone Family telephone E-mail In cities Work units0 Address Group classification(relative, colleagues, friends, classmates, other).系統(tǒng)的主要功能包括:

      1.輸入聯(lián)系人的信息,要求:至少輸入10個聯(lián)系人的數(shù)據(jù),且注意數(shù)據(jù)的多樣性。

      2.按姓名對聯(lián)系人信息進行排序,并將排序后信息存放到一個文本文件中。

      3.添加聯(lián)系人的信息,在已經(jīng)存在的通訊錄文件中添加若干個聯(lián)系人。要求:添加后仍按聯(lián)系人的姓名排序,并保存至原文件。

      4.刪除聯(lián)系人的信息,輸入一個姓名,若通訊錄中有該聯(lián)系人的信息,則刪除該聯(lián)系人,否則輸出提示信息,并提示用戶選擇是否繼續(xù)進行刪除操作。

      5.修改聯(lián)系人的信息,輸入一個姓名,根據(jù)具體需要修改該聯(lián)系人的某一項信息,將修改后的信息重新保存到通訊錄文件中,并提示用戶選擇是否繼續(xù)進行修改操作。

      6.按不同條件對通訊錄進行查詢操作,輸出滿足條件的聯(lián)系人的信息。

      (1)按姓名查詢,包括精確查詢(輸入全名),模糊查詢(輸入姓);(2)按手機號碼查詢,輸入全部號碼或號碼位段(如輸入130、133、139等);

      (3)按群組分類查詢,輸入分類名稱,輸出該群組的全部聯(lián)系人信息。

      7.輸出聯(lián)系人的信息Contact information,按一定格式輸出信息,保證信息排列整齊美觀。ContactPerson 程序源代碼如下:

      #include “stdio.h” #include “stdlib.h” #include “string.h” #include “conio.h”

      #define LEN sizeof(struct LinkPerson)#define FORMAT printf(“n姓名 手機

      辦公電話

      家庭電話

      電子郵箱

      所在省市

      工作單位

      家庭住址

      群組n”);void print(struct LinkPerson *head);int nn=0;//統(tǒng)計聯(lián)系人的個數(shù) char selete[10];

      //姓名、手機、辦公電話、家庭電話、電子郵箱、所在省市、工作單位、家庭住址,群組分類(親屬、同事、同學、朋友、其他)typedef struct LinkPerson { char name[20], mobile[15], office_ph[15], home_ph[15], E_mail[40], in_cities[20], work_units[40],address[40],group[20];struct LinkPerson *next;}LP;LP *creat()//創(chuàng)建 { LP *head,*p1,*p2;char ch[2]={“1”};printf(“n請輸入通訊錄聯(lián)系人信息:nn”);FORMAT;p1=p2=(struct LinkPerson *)malloc(LEN);

      scanf(“%s%s%s%s%s%s%s%s%s”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);while(strcmp(p1->name,“0”)!=0){

      nn++;

      if(nn==1)head=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct LinkPerson *)malloc(LEN);

      scanf(“%s%s%s%s%s%s%s%s%s”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);} p2->next=NULL;free(p1);return head;} void save(LP *head)//函數(shù)功能:保存文件 { FILE *out;LP *p1=head;putchar(10);if((out=fopen(“people.txt”, “w+”))==NULL)

      { printf(“Can not open this file!n”);exit(0);} fclose(out);if((out=fopen(“people.txt”, “r+”))==NULL)

      { printf(“Can not open this file!n”);exit(0);} for(int i=0;i

      fprintf(out,“%st%st%st%st%st%st%st%st%sn”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

      p1=p1->next;}

      fclose(out);

      putchar(10);} LP *read(void)//函數(shù)功能:讀取文件 { FILE *fp;LP *head=NULL, *p1=NULL, *p2=NULL;int m=0;

      if((fp=fopen(“people.txt”, “r”))==NULL)

      { printf(“Can not open this file!n”);exit(0);}

      while(!feof(fp)){

      p1=(LP *)malloc(LEN);

      fscanf(fp,“%s%s%s%s%s%s%s%s%sn”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

      m+=1;

      if(m == 1)head=p1;

      else p2->next=p1;

      p2=p1;

      } p2->next=NULL;fclose(fp);nn=m;return(head);} LP *array(LP *head)//函數(shù)功能:排序 { LP *p0,*p1,*p2,*h;h=p1=p2=head;if(nn<=1)return(h);for(int i=0;i

      p1=p2=h;

      for(int j=0;j

      {

      p2=p1->next;

      if((p1==h)&& strcmp(p1->name,p2->name)>0)

      {

      h=p2;

      p1->next=p2->next;

      p2->next=p1;

      p0=p2;

      }

      else if(strcmp(p1->name,p2->name)>0)

      {

      p0->next=p2;

      p1->next=p2->next;

      p2->next=p1;

      p0=p2;

      }

      else { p0=p1;p1=p2;p2=p2->next;}

      } } return(h);} void print()//函數(shù)功能 :輸出信息 {

      LP *p1,*head;p1=head=read();

      printf(“共有聯(lián)系人 %d 名nn”,nn);FORMAT;if(head!=NULL)

      do

      {

      printf(“%s %s %s %s %s %s %s %s %sn”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

      p1=p1->next;

      }while(p1!=NULL);} LP *add(void)//函數(shù)功能:增加聯(lián)系人信息 { LP *head,*p1,*p2;head=read();p2=head;while(p2->next!= NULL)//找到原先數(shù)據(jù)的終點,作為新增數(shù)據(jù)的起點

      {

      p2=p2->next;} p1=(LP *)malloc(LEN);printf(“請輸入增加聯(lián)系人的信息:n”);FORMAT;

      scanf(“%s%s%s%s%s%s%s%s%s”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);while(strcmp(p1->name,“0”)!=0){

      nn++;

      if(nn==1)head=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct LinkPerson *)malloc(LEN);

      scanf(“%s%s%s%s%s%s%s%s%s”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

      // } p2->next=NULL;free(p1);

      head=array(head);save(head);

      return(head);} LP *del()//函數(shù)功能:刪除信息 { start_del: char name[20];LP *head,*p1,*p2;p1=p2=head=read();printf(“請輸入要刪除的聯(lián)系人姓名: ”);scanf(“%s”,name);while(strcmp(p1->name,name)!=0 &&(p1->next!=NULL))

      { p2=p1;p1=p1->next;} //找出p1指向的節(jié)點

      if(strcmp(p1->name,name)==0){

      if(p1==head)head=p1->next;

      else p2->next=p1->next;

      printf(“del: %sn”,name);

      free(p1);

      nn--;

      printf(“還有聯(lián)系人%d位n”,nn);} else printf(“沒有你要刪除的聯(lián)系人!n”);save(head);

      printf(“n是否繼續(xù)進行刪除操作? 1.是 2.返回主菜單 3.退出 n請輸入:”);scanf(“%s”,selete);if(strcmp(selete,“1”)==0)goto start_del;else if(strcmp(selete,“2”)==0)return 0;else if(strcmp(selete,“3”)==0)exit(0);else return(head);

      } LP *modify()//函數(shù)功能:修改聯(lián)系人信息 { start_mod: char name[20];int select;LP *head,*p1,*p2;p1=p2=head=read();printf(“請輸入要修改的聯(lián)系人姓名: ”);scanf(“%s”,name);while(strcmp(p1->name,name)!=0 &&(p1->next!=NULL))

      { p2=p1;p1=p1->next;} //找出p1指向的節(jié)點

      if(strcmp(p1->name,name)==0){

      printf(“將要修改的聯(lián)系人的信息n”);

      FORMAT;

      printf(“%s %s %s %s %s %s %s %s %sn”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

      printf(“請輸入要修改的選項n”);

      printf(“ 1.姓名t

      2.手機t3.辦公電話t4.家庭電話

      5.電子郵箱n 6.所在省市 7.工作單位

      8.家庭住址t9.群組n請輸入:”);

      scanf(“%d”,&select);

      printf(“請輸入該項新的信息:”);

      if(select==1){ scanf(“%s”, p1->name);}

      if(select==2){ scanf(“%s”,p1->mobile);}

      if(select==3){ scanf(“%s”,p1->office_ph);}

      if(select==4){ scanf(“%s”,p1->home_ph);}

      if(select==5){ scanf(“%s”,p1->E_mail);}

      if(select==6){ scanf(“%s”,p1->in_cities);}

      if(select==7){ scanf(“%s”,p1->work_units);}

      if(select==8){ scanf(“%s”,p1->address);}

      if(select==9){ scanf(“%s”,p1->group);}

      save(head);} else { printf(“n沒有該聯(lián)系人,請重新輸入!nn”);goto start_mod;} printf(“n是否繼續(xù)進行修改操作? 1.是 2.返回主菜單 3.退出 n請輸入:”);scanf(“%s”,selete);if(strcmp(selete,“1”)==0)goto start_mod;else if(strcmp(selete,“2”)==0)return 0;else if(strcmp(selete,“3”)==0)exit(0);else return(head);}

      find()//函數(shù)功能 :查找 {

      char select[10];char name[20],mobile[15],group[20];LP *p1,*p2,*head;start_f: p1=p2=head=read();printf(“按下列選項查詢聯(lián)系人信息n”);printf(“ 1.按姓名

      2.按手機號碼

      3.按群組分類

      n 請選擇:”);scanf(“%s”,select);if(strcmp(select,“1”)==0){

      printf(“請輸入姓名:”);

      scanf(“%s”,name);

      while(strcmp(p1->name,name)!=0 &&(p1->next!=NULL))

      { p2=p1;p1=p1->next;} //找出p1指向的節(jié)點

      if(strcmp(p1->name,name)==0)

      {

      FORMAT;

      printf(“%s %s %s %s %s %s %s %s %sn”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

      }

      else printf(“沒有要查找的聯(lián)系人信息!n”);} else if(strcmp(select,“2”)==0){

      printf(“請輸入手機號碼:”);

      scanf(“%s”,mobile);

      while(strcmp(p1->mobile,mobile)!=0 &&(p1->next!=NULL))

      { p2=p1;p1=p1->next;} //找出p1指向的節(jié)點

      if(strcmp(p1->mobile,mobile)==0)

      {

      FORMAT;

      printf(“%s %s %s %s %s %s %s %s %sn”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

      }

      else printf(“沒有要查找的聯(lián)系人信息!n”);

      } else if(strcmp(select,“3”)==0){

      int n_n=0;

      printf(“請輸入群組:”);

      scanf(“%s”,group);

      while(strcmp(p1->group,group)!=0 &&(p1->next!=NULL))

      { p2=p1;p1=p1->next;} //找出p1指向的節(jié)點

      if(strcmp(p1->group,group)==0)

      {

      FORMAT;

      printf(“%s %s %s %s %s %s %s %s %sn”,p1->name,p1->mobile,p1->office_ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

      }

      else printf(“沒有要查找的聯(lián)系人信息!n”);} else { printf(“n請輸入正確的選擇!n”);goto start_f;} printf(“n 1.繼續(xù)查找

      2.返回主菜單

      3.退出 n請選擇:”);scanf(“%s”,select);if(strcmp(select,“1”)==0)goto start_f;else if(strcmp(select,“2”)==0)return 0;else if(strcmp(select,“3”)==0)exit(0);else return 0;} void main(){ printf(“n 21ttt 歡迎使用通訊錄管理系統(tǒng) nn”);start: LP *head;printf(“n 1.新建聯(lián)系人 2.添加聯(lián)系人 3.刪除 4.修改 5.查詢 6.輸出聯(lián)系人的信息 7.退出 n請輸入選擇:”);scanf(“%s”,selete);if(strcmp(selete,“1”)==0){ head=creat();head=array(head);goto start;} else if(strcmp(selete,“2”)==0){ head=add();goto start;}

      else if(strcmp(selete,“3”)==0){ head=del();goto start;} else if(strcmp(selete,“4”)==0){ modify();goto start;} else if(strcmp(selete,“5”)==0){ find();goto start;}

      else if(strcmp(selete,“6”)==0){ print();goto start;}

      else if(strcmp(selete,“7”)==0)exit(0);else goto start;// }

      第二篇:C語言-通訊錄管理系統(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(“ ******* 通訊錄信息查詢 *******n”);printf(“ ******************************n”);find_record(flag);

      break;case 4: printf(“ ***********************************n”);printf(“ **********通訊信息的刪除***********n”);printf(“ ***********************************n”);delete_record(flag);break;case 5: printf(“ ***********************************n”);printf(“ **********通訊錄的存儲(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.通訊錄的查詢n”);printf(“

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

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

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

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

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

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

      { printf(“ 學號(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)建成功!請繼續(xù)創(chuàng)建!n”);

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

      { printf(“ 學號(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(“恭喜你,添加成功!請繼續(xù)添加!n”);

      } return(i);} intfind_record(){ int i;char number[6];char named[10];intxz;printf(“--------------------n”);printf(“ 1.按學號查詢n”);printf(“ 2.按姓名查詢n”);printf(“--------------------n”);printf(“ 請選擇 : n”);

      scanf(“%d”,&xz);if(xz==1){ printf(“ 請輸入要查找的學號: ”);scanf(“%s”,number);for(i=0;i

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

      { printf(“ ** 學號姓名出生年月家庭住址郵編電話**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(“請輸入要查找的姓名: ”);scanf(“%s”,named);for(i=0;i

      { printf(“ ** 學號姓名出生年月家庭住址郵編電話**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(“對不起,沒有你要找的人!n”);return 0;} }

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

      }

      } intdelete_record(int flag)

      { inti,j;intdeletemark=0;char number[20];printf(“ttt請輸入要刪除學號:n”);scanf(“%s”,number);for(i=0;i

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

      { printf(“ttt以下是您要刪除的用戶紀錄:n”);printf(“ ** 學號姓名出生年月家庭住址郵編電話**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沒有該用戶的紀錄”);

      return;

      } return;

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

      printf(“ 1.按姓名排序n”);printf(“ 2.按學號排序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(“無法打開文件!”);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;}

      第三篇:學生管理系統(tǒng)學生鏈表

      #include #include #include

      typedef struct student { int num;char name[10];char passwd[6];int age;int class;int math;int clan;int chinese;int mingci;struct student *next;}STU,*pstu;

      pstu stu_numsort(pstu head);pstu stu_sumsort(pstu head);pstu stu_mathsort(pstu head);pstu stu_chisort(pstu head);pstu stu_clansort(pstu head);pstu stu_searchbynum(pstu head,int num);pstu stu_searchbyname(pstu head,char name[]);pstu stu_searchbyclass(pstu head,int class);pstu stu_create(){

      pstu head=NULL;pstu s=NULL;int num;char name[10];char passwd[6];int age;int class;int math;int clan;int chinese;int mingci;printf(“請輸入任意一個數(shù)非0的數(shù)繼續(xù) :”);scanf(“%d”,&num);while(num!=0){

      s=(pstu)malloc(sizeof(STU));

      if(s==NULL)

      {

      printf(“nmalloc errorn”);

      return NULL;

      }

      printf(“輸入學生學號:”);

      scanf(“%d”,&s->num);

      printf(“請輸入學生姓名:”);

      scanf(“%s”,s->name);

      printf(“請輸入登陸密碼:”);//學生權限(error)

      scanf(“%s”,s->passwd);

      printf(“請輸入學生年齡:”);

      scanf(“%d”,&s->age);

      printf(“請輸入學生班級:”);

      scanf(“%d”,&s->class);

      printf(“請輸入數(shù)學成績:”);

      scanf(“%d”,&s->math);

      printf(“請輸入c語言成績:”);

      scanf(“%d”,&s->clan);

      printf(“請輸入語文成績:”);

      scanf(“%d”,&s->chinese);

      printf(“enter next studentn”);

      if(head==NULL)

      {

      s->next=NULL;

      head=s;

      }

      else

      {

      s->next=NULL;

      s->next=head;

      head=s;

      }

      scanf(“%d”,&num);} return head;} //保存

      void stu_write(pstu head){ int flag=0;FILE *fp=NULL;pstu p=head;fp=fopen(“num”,“w”);if(fp==NULL){

      printf(“open errorn”);

      return;} while(p!=NULL){

      flag=fwrite(p,sizeof(STU),1,fp);

      if(flag!=1)

      {

      printf(“write errorn”);

      return;

      }

      p->next;} fclose(fp);} //讀函數(shù)

      pstu stu_read(){ FILE *fp=NULL;pstu head=NULL;pstu s=NULL;fp=fopen(“num”,“r”);s=(pstu)malloc(sizeof(STU));while(fread(s,sizeof(STU),1,fp)==1){

      if(head==NULL)

      {

      s->next=NULL;

      head=s;

      }

      else

      {

      s->next=NULL;

      s->next=head;

      head=s;

      }

      s=(pstu)malloc(sizeof(STU));} fclose(fp);return head;} //刪除學生信息(學號)pstu stu_del(pstu head,int num){ pstu p=head;pstu q=NULL;printf(“輸入刪除的學號:”);scanf(“%d”,&num);if(head->num==num){

      head=head->next;} else {

      while(p->next!=NULL)

      {

      if(p->next->num==num)

      {

      q=p->next;

      p->next=q->next;

      free(q);

      q=NULL;

      break;

      }

      p=p->next;

      } } return head;}

      pstu stu_searchbynum();//按學號修改學生信息

      void stu_changebynum(pstu head){ pstu p=head;int num;char name[10];char passwd[6];int age;int class;int math,chinese,clan;int n;printf(“請輸入查找的學號:”);scanf(“%d”,&num);while(p!=NULL){

      if(p->num==num)

      {

      printf(“學號t姓名t密碼t年齡t班級t數(shù)學tc語言t語文t名次n”);

      printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,p->num,p->name,p->passwd,p->age,p->class,p->math,p->clan,p->chinese,p->mingci);

      break;

      }

      p=p->next;}

      printf(“請選擇需要修改的學生信息:n”);printf(“-------------------------n”);printf(“1:姓名n”);printf(“2:密碼n”);printf(“3:年齡n”);printf(“4:班級n”);printf(“5:數(shù)學成績n”);printf(“6:c成績n”);printf(“7:語文成績n”);printf(“0:退出”);printf(“---------------------------n”);printf(“請輸入需要修改的信息:”);scanf(“%d”,&n);switch(n){

      case 0:

      return;

      case 1:

      printf(“請輸入新的姓名:”);

      scanf(“%s”,p->name);

      break;

      case 2:

      printf(“請輸入新的密碼:”);

      scanf(“%s”,p->passwd);

      break;

      case 3:

      printf(“請輸入新的年齡:”);

      scanf(“%d”,&p->age);

      break;

      case 4:

      printf(“請輸入新的班級:”);

      scanf(“%d”,&p->class);

      break;

      case 5:

      printf(“請輸入新的數(shù)學成績:”);

      scanf(“%d”,&p->math);

      break;

      case 6:

      printf(“請輸入新的c語言成績:”);

      scanf(“%d”,&p->clan);

      break;

      case 7:

      printf(“請輸入新的語文成績:”);

      scanf(“%d”,&p->chinese);

      break;

      default:

      printf(“n無效選項n”);

      break;} printf(“修改成功!n”);printf(“學號t姓名t密碼t年齡t班級t數(shù)學tc語言t語文t名次n”);

      printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,p->num,p->name,p->passwd,p->age,p->class,p->math,p->clan,p->chinese,p->mingci);} //按學生姓名修改

      void stu_changebyname(pstu head){ pstu p=head;int num;char name[10];char passwd[6];int age;int class;int math,chinese,clan;int n;printf(“請輸入查找的姓名:”);scanf(“%s”,name);while(p!=NULL){

      if(strcmp(p->name,name)==0)

      {

      printf(“學號t姓名t密碼t年齡t班級t數(shù)學tc語言t語文t名次n”);

      printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,p->num,p->name,p->passwd,p->age,p->class,p->math,p->clan,p->chinese,p->mingci);

      break;} p=p->next;} printf(“請選擇需要修改的學生信息:n”);printf(“-------------------------n”);printf(“1:學號n”);printf(“2:密碼n”);printf(“3:年齡n”);printf(“4:班級n”);printf(“5:數(shù)學成績n”);printf(“6:c成績n”);printf(“7:語文成績n”);printf(“0:退出”);printf(“---------------------------n”);printf(“請輸入需要修改的信息:”);scanf(“%d”,&n);switch(n){ case 0:

      return;case 1:

      printf(“請輸入新的學號:”);

      scanf(“%d”,&p->num);

      break;case 2:

      printf(“請輸入新的密碼:”);

      scanf(“%s”,p->passwd);

      break;case 3:

      printf(“請輸入新的年齡:”);

      scanf(“%d”,&p->age);

      break;case 4:

      printf(“請輸入新的班級:”);

      scanf(“%d”,&p->class);

      break;case 5:

      printf(“請輸入新的數(shù)學成績:”);

      scanf(“%d”,&p->math);

      break;case 6:

      printf(“請輸入新的c語言成績:”);

      scanf(“%d”,&p->clan);

      break;

      case 7:

      printf(“請輸入新的語文成績:”);

      scanf(“%d”,&p->chinese);

      break;

      default:

      printf(“n無效選項n”);

      break;} printf(“修改成功!n”);printf(“學號t姓名t密碼t年齡t班級t數(shù)學tc語言t語文t名次n”);

      printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,p->num,p->name,p->passwd,p->age,p->class,p->math,p->clan,p->chinese,p->mingci);

      } void change_printf(pstu head){ pstu p=head;int n;printf(“請選擇修改學生信息的方式:n”);printf(“-------n”);printf(“1:按學生學號修改n”);printf(“2:按學生姓名修改n”);printf(“0:退出n”);printf(“---------n”);scanf(“%d”,&n);switch(n){

      case 1:

      stu_changebynum(head);

      printf(“顯示全部學生信息:”);

      break;

      case 2:

      stu_changebyname(head);

      printf(“顯示全部學生信息:”);

      break;

      case 3:

      return;} } //查找學生信息

      void search_printf(pstu head){ pstu p=head;int n;int num;char name[10];int class;printf(“請選擇查找學生信息的方式:n”);printf(“-------n”);printf(“1:按學生學號查找n”);printf(“2:按學生姓名查找n”);printf(“3:按班級群體查找n”);printf(“0:退出n”);printf(“---------n”);scanf(“%d”,&n);switch(n){

      case 1:

      stu_searchbynum(head,num);

      break;

      case 2:

      stu_searchbyname(head,name);

      break;

      case 3:

      stu_searchbyclass(head,class);

      break;

      case 0:

      return;} } //1:學號查找

      pstu stu_searchbynum(pstu head,int num){ pstu p=head;printf(“請輸入查找的學號:”);scanf(“%d”,&num);while(p!=NULL){

      if(p->num==num)

      break;

      p=p->next;} return p;} //2:按姓名查找 pstu stu_searchbyname(pstu head,char name[]){ pstu p=head;printf(“請輸入要查找的姓名:”);scanf(“%s”,name);while(p!=NULL){

      if(strcmp(name,p->name)==0)

      break;

      p=p->next;} return p;} //班級群體查找

      pstu stu_searchbyclass(pstu head,int class){ pstu p=head;printf(“請輸入要查找的班級:”);scanf(“%d”,&class);while(p!=NULL){

      if(p->class==class)

      break;

      p=p->next;} return p;}

      //顯示所有學生信息列表

      void sort_printf(pstu head){ pstu p=head;int n;printf(“請選擇顯示學生信息的方式:n”);printf(“-----n”);printf(“1:按學號順序顯示n”);printf(“2:按名次顯示n”);printf(“3:按數(shù)學成績顯示n”);printf(“4:按c語言成績顯示n”);printf(“5:按語文成績顯示n”);printf(“--------n”);printf(“請輸入你要選擇的操作:”);scanf(“%d”,&n);switch(n){

      case 1:

      stu_numsort(head);

      printf(“顯示學生信息n”);

      break;

      case 2:

      stu_sumsort(head);

      printf(“顯示學生信息n”);

      break;

      case 3:

      stu_mathsort(head);

      printf(“顯示學生信息n”);

      break;

      case 4:

      stu_clansort(head);

      printf(“顯示學生信息n”);

      break;

      case 5:

      stu_chisort(head);

      printf(“顯示學生信息n”);

      break;

      case 6:

      return;

      default:

      printf(“輸入錯誤n”);

      break;} }

      int stu_len(pstu head){ pstu p=head;int len=0;while(p!=NULL){

      len++;

      p=p->next;} return len;} //1:按學號順序顯示

      pstu getnummax(pstu head){ pstu pmax=head;if(head==NULL){

      return NULL;} pstu p=head->next;while(p!=NULL){

      if(pmax->num

      num)

      {

      pmax=p;

      }

      p=p->next;} return pmax;} pstu removefromold(pstu head,pstu pmax){ pstu p=head;if(head==pmax){

      head=head->next;} else {

      while(p!=NULL)

      {

      if(p->next==pmax)

      {

      p->next=pmax->next;

      break;

      }

      }

      p=p->next;} return head;} pstu add(pstu pnew,pstu pmax){ pmax->next=pnew;pnew=pmax;return pnew;} pstu stu_numsort(pstu head){ pstu pold=head;pstu pmax=NULL;pstu pnew=NULL;while(pold!=NULL){

      pmax=getnummax(pold);

      pold=removefromold(pold,pmax);

      pnew=add(pnew,pmax);} return pnew;} //按名次顯示

      pstu getsummin(pstu head){ pstu pmin=head;if(head==NULL){

      return NULL;} pstu p=head->next;while(p!=NULL){

      if(pmin->math+pmin->clan+pmin->chinese>p->math+p->clan+p->chinese)

      {

      pmin=p;

      }

      p=p->next;} return pmin;} pstu removefromtold(pstu head,pstu pmin){ pstu p=head;if(head==pmin){

      head=head->next;} else {

      while(p!=NULL)

      {

      if(p->next==pmin)

      p->next=pmin->next;

      break;

      }

      p=p->next;} return head;} pstu addt(pstu pnew,pstu pmin){ pmin->next=pnew;pnew=pmin;return pnew;} pstu stu_sumsort(pstu head){ pstu pold=head;pstu pmin=NULL;pstu pnew=NULL;int i=stu_len(head);while(pold!=NULL){

      pmin=getsummin(pold);

      pold=removefromtold(pold,pmin);

      pnew=addt(pnew,pmin);

      pnew->mingci=i--;} return pnew;} //按數(shù)學成績顯示

      pstu getmathmin(pstu head){ pstu pmin=head;if(head==NULL){

      return NULL;} pstu p=head->next;while(p!=NULL){

      if(pmin->math>p->math)

      {

      pmin=p;

      }

      p=p->next;} return pmin;} pstu stu_mathsort(pstu head){ int i=stu_len(head);pstu pold=head;pstu pmin=NULL;pstu pnew=NULL;while(pold!=NULL){

      pmin=getmathmin(pold);

      pold=removefromold(pold,pmin);

      pnew=add(pnew,pmin);

      pnew->mingci=i--;} return pnew;} //按c語言成績顯示

      pstu getclanmin(pstu head){ pstu pmin=head;if(head==NULL){

      return NULL;} pstu p=head->next;while(p!=NULL){

      if(pmin->clan>p->clan)

      {

      pmin=p;

      }

      p=p->next;} return pmin;} pstu stu_clansort(pstu head){ int i=stu_len(head);pstu pold=head;pstu pmin=NULL;pstu pnew=NULL;while(pold!=NULL){

      pmin=getclanmin(pold);

      pold=removefromtold(pold,pmin);

      pnew=addt(pnew,pmin);

      pnew->mingci=i--;} return pnew;} //按語文成績顯示

      pstu getchimin(pstu head){ pstu pmin=head;if(head==NULL){

      return NULL;} pstu p=head->next;while(p!=NULL){

      if(pmin->chinese>p->chinese)

      {

      pmin=p;

      }

      p=p->next;} return pmin;} pstu stu_chisort(pstu head){ int i=stu_len(head);pstu pold=head;pstu pmin=NULL;pstu pnew=NULL;while(pold!=NULL){

      pmin=getchimin(pold);

      pold=removefromtold(pold,pmin);

      pnew=addt(pnew,pmin);

      pnew->mingci=i--;} return pnew;} void stu_printf(pstu head){ pstu tmp=head;printf(“學號t姓名t密碼t年齡t班級t數(shù)學tc語言t語文t名次n”);while(tmp!=NULL){

      printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,tmp->num,tmp->name,tmp->passwd,tmp->age,tmp->class,tmp->math,tmp->clan,tmp->chinese,tmp->mingci);

      tmp=tmp->next;} printf(“n”);} void stun_printf(pstu head){ pstu tmp=head;printf(“學號t姓名t密碼t年齡t班級t數(shù)學tc語言t語文t名次n”);while(tmp!=NULL){

      printf(“%dt%st%st%dt%dt%dt%dt%dt%dn”,tmp->num,tmp->name,tmp->passwd,tmp->age,tmp->class,tmp->math,tmp->clan,tmp->chinese,tmp->mingci);

      break;} printf(“n”);}

      //2: int main(){ // int m;int num;int class;int len;char name[10];pstu head=stu_create();stu_printf(head);len=stu_len(head);// pstu p=stu_del(head, num);// stu_printf(p);/* pstu k=stu_searchbynum(head,num);if(k!=NULL)

      stun_printf(k);else

      printf(“no find”);

      pstu l=stu_searchbyname(head,name);

      // // // // // //

      // // // // // //

      } if(l!=NULL)stun_printf(l);else printf(“no find”);pstu h=stu_searchbyclass(head,class);if(h!=NULL)stun_printf(h);else printf(“no find”);*/ stu_changebynum(head);printf(“顯示全部學生信息:”);stu_printf(head);stu_changebyname(head);printf(“顯示全部學生信息:”);stu_printf(head);search_printf(head);stun_printf(head);change_printf(head);stu_printf(head);pstu p1=stu_numsort(head);stu_printf(p1);pstu p2=stu_sumsort(head);stu_printf(p2);pstu p3=stu_mathsort(head);stu_printf(p3);sort_printf(head);stu_printf(head);

      第四篇:C語言程序設計學生通訊錄管理系統(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];char adress[40];char postcode[10];char e_mail[30];}student[500];struct LinkList { struct record US;struct LinkList *next;}a;struct LinkList *head=null;int num=0;FILE *fp;int menu_select();int adduser();int list();int search();int display();int add();int listbyname();int dele();int save();int exit();

      void main(){

      system(“cls”);for(;;){ switch(menu_select()){ case 0:adduser();break;case 1:list();break;case 2:search();break;case 3:add();break;case 4:dele();break;case 5:save();break;case 6:exit(0);} } } menu_select(){ char s[80];int a;printf(“*_* press any key enter menu!*_* n”);getch();system(“cls”);printf(“tt********************MENU*********************nn”);printf(“tt 0.輸入記錄n”);printf(“tt 1.顯示記錄 n”);printf(“tt 2.按姓名查找n”);printf(“tt 3.插入記錄 n”);printf(“tt 4.刪除記錄n”);printf(“tt 5.記錄保存文件n”);printf(“tt 6.Quitn”);printf(“tt***********************************************n”);do{ printf(“n Enter you choice(0~11):”);scanf(“%s”,s);a=atoi(s);} while(a<0||a>11);return a;}

      adduser(){ printf(“ntt**************** 請輸入用戶信息 ****************n”);printf(“ntt輸入姓名:”);scanf(“%s”,&student[num].name);printf(“ntt輸入電話號碼:”);scanf(“%s”,&student[num].phone);printf(“ntt輸入地址:”);scanf(“%s”,&student[num].adress);printf(“ntt輸入郵編:”);scanf(“%s”,&student[num].postcode);printf(“ntt輸入e-mail:”);scanf(“%s”,&student[num].e_mail);num++;printf(“ntt是否繼續(xù)添加?(Y/N):”);if(getch()=='y')adduser();return(0);} list(){ int i;system(“cls”);if(num!=0){ printf(“ntt*************** 以下為通訊錄所有信息************”);for(i=0;i

      printf(“ntt姓名: %s”,student[i].name);printf(“ntt電話: %s”,student[i].phone);printf(“ntt地址: %s”,student[i].adress);printf(“ntt郵編: %s”,student[i].postcode);printf(“ntte-mail:%s”,student[i].e_mail);printf(“tt”);if(i+1

      add(){ int i;if((fp=fopen(“student.bin”,“wb”))==NULL){ printf(“ntt文件打開失敗”);} for(i=0;i

      save(){ int j;FILE*fp;fp=fopen(“student.txt”,“w”);if(fp==NULL)printf(“can't open the file.”);if(num!=0){ for(j=0;j

      fwrite(student,sizeof(student),1,fp);} } printf(“保存成功!”);fclose(fp);return(0);}

      第五篇:通訊錄管理系統(tǒng)

      摘 要

      為了人們對他人信息的記憶方便而設計,開發(fā)的一套“通訊錄管理系統(tǒng)“軟件。通過該題目的設計過程,可以培養(yǎng)學生結構化程序設計的思想,加深對高級語言基本語言要素和控制結構的理解,針對c語言中的重點和難點內(nèi)容進行訓練,獨立完成有一定工作量的程序設計任務,同時強調(diào)好的程序設計風格。得到軟件工程的綜合訓練,提高解決實際問題的能力。

      關鍵字:信息;管理;實用

      Abstract

      Designed for people to others the memory of information convenient, developed a set of “mail list management system” software.Through 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 complete the program design has a certain work tasks, while emphasizing the good programming style.Comprehensive training in software engineering, improving the ability to solve practical problems.Keywords: Information;management;practical

      目 錄 概述.........................................................................1 1.1設計目的..................................................................1 1.2設計要求..................................................................1 1.3系統(tǒng)功能需求分析..........................................................2 2 總體設計.....................................................................3 2.1總體功能模塊圖............................................................3 2.2程序的數(shù)據(jù)設計............................................................4 3詳細設計.....................................................................5 3.1功能及工作流程圖..........................................................5 3.2源程序代碼................................................................8 4調(diào)試分析....................................................................19 4.1測試.....................................................................19 4.2問題思考與調(diào)試:.........................................................27 5總結........................................................................28 參考文獻......................................................................29 致 謝........................................................................27

      概述

      1.1設計目的

      隨著信息社會的高速發(fā)展,人與人之間的聯(lián)系越來越頻繁,通訊方式越來越多樣化,如何保證與朋友、同學、同事、領導、親戚等之間的聯(lián)系,并能方便快捷的查找、記錄、修改其相關通訊信息。僅靠以前單獨的手工記錄已遠遠不能滿足當前的需要。

      開發(fā)一個通訊錄管理系統(tǒng),借助計算機可以方便、快捷、靈活的管理個人的朋友及相關人員的通訊信息,了解友人相關信息,幫助與友人保持聯(lián)絡。

      所以設計一個通訊錄管理系統(tǒng)管理各人的通訊信息是是非必要的。

      設計“通訊錄管理系統(tǒng)”使其具有數(shù)據(jù)插入、修改、刪除、顯示和查詢等功能。(1)數(shù)據(jù)包括:人名、工作單位、電話號碼和E-mail地址。(2)可對記錄中的姓名和電話號碼進行修改。(3)可增加或刪除記錄。(4)可顯示所有保存的記錄。(5)可按人名或電話號碼進行查詢。

      1.2設計要求

      建立通訊錄信息,信息至少包含姓名、住址、單位、固定電話、移動手機、分類(如同事、朋友、同學、家人等)、E-mail、QQ等。

      該系統(tǒng)提供添加、刪除、修改和查找功能,其中按姓名方式刪除、修改,按姓名、單位、分類方式查找。

      將通訊錄保存在文件中。能夠輸出通訊錄中的信息。

      1.3系統(tǒng)功能需求分析

      主要包含一下多種功能:

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

      本系統(tǒng)為通訊錄管理系統(tǒng),可由用戶自由添加,刪除和修改信息,還可以將通訊錄信息導出到文本文檔,極大的方便了用戶的使用。

      總體設計

      思路:我們首先設計出了主函數(shù),然后根據(jù)去要實現(xiàn)的功能分別設計錄入聯(lián)系人信息、瀏覽、查詢、修改、刪除功能的子函數(shù)。刪除函數(shù)的設計是首先從文件內(nèi)找到要刪除的人,然后通過寫一個實現(xiàn)刪除目的的FOR循環(huán)實現(xiàn)刪除。修改也大體和刪除相同,添加函數(shù)在設計時通過申請一片空間,然后通過指針將需要添加的信息添加進去,從而實現(xiàn)添加功能。

      2.1總體功能模塊圖

      圖2.1 總體功能模塊圖

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

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

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

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

      保存:輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件。運行所需環(huán)境:win7及以下各版本windows,visual C++6.0。2.2程序的數(shù)據(jù)設計

      該系統(tǒng)用下面六個功能模塊編寫,每個模塊執(zhí)行不同的功能,體現(xiàn)了模塊化設計的思想。下面六個模塊都是利用C語言文件,向文件中追加數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)和除數(shù)據(jù)。

      創(chuàng)建:用fopen()建立一個文本文件,然后用fprintf()向其中輸入數(shù)據(jù)(例如,向文件中輸入“姓名”,“地址”等),并對文件進行命名。

      添加:可以添加通訊錄記錄,利用C語言文件,向文件中按順序輸入姓名、住址、單位、固定電話、手機號碼、分類(如同事、朋友、同學、家人等)、E-mail、QQ,再用fclose()函數(shù)關閉并保存文件。

      輸出:也是用通過循環(huán)依次輸出文件中的數(shù)據(jù),即輸出所有通訊錄里的記錄。刪除:輸入你要刪除的人的姓名后,系統(tǒng)會自動刪除他(她)的記錄,在刪除通過switch語句滿足提示你確認刪除的功能,只有等你確認刪除后才會刪除。查找:為了滿足用戶的實際需求,設計了三種查詢方式,可以用姓名、單位、分類三種方式查找通訊錄記錄。這里用到strcmp()函數(shù),通過比較字符串是否相同來判別是否找到相關信息,找到后,就把文件中的數(shù)據(jù)賦給對應的變量,再把變量所帶的值輸出到屏幕上。

      修改:輸入你要修改的那個人的姓名后,系統(tǒng)會查找該通訊錄文件(此時用發(fā)ftell()函數(shù)來跟蹤文件指針的指向地址,找到個人的記錄后,會顯示他(她)的記錄,然后通過fseek()函數(shù)來找到修改處的地址,然后用戶再依次輸入他(她)的相關信息來替代以前的記錄。

      保存:用到fclose()函數(shù),每次操作成功后會自動保存到指定的文件中。

      3詳細設計

      3.1功能及工作流程圖

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

      圖3.1(1)添加流程圖

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

      圖3.1(2)顯示流程圖

      ③刪除::輸入欲刪除的那個人的名字后,會自動刪除他(她)的記錄內(nèi)容。

      圖3.1(3)刪除流程圖

      ④查詢:可以選擇用姓名、電話、地址三種方式查詢。

      圖3.1(4)查詢流程圖

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

      圖3.1(5)修改流程圖 3.2源程序代碼

      #include #include #include

      typedef struct

      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.查詢記錄

      │n”);printf(“tt│ 5.修改記錄

      │n”);{

      char score;

      /*編號*/ char name[10];

      /*姓名*/ char num[15];

      /*號碼*/ char email[20];char age[8];char adds[20];

      /*郵箱*/ /*年齡*/

      /*住址*/ }Person;

      } printf(“tt│ 6.保存記錄

      │n”);printf(“tt│ 0.退出程序

      │n”);printf(“tt└───────┘n”);printf(“tt請您選擇(0-6):”);c=getchar();

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

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

      gets(x);

      int i=0;

      char sign,x[10];

      while(sign!='n'&&sign!='N'){

      printf(“t編號:”);

      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電話號碼:”);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);

      }

      } printf(“nt是否繼續(xù)添加?(Y/N)”);scanf(“t%c”,&sign);i++;

      return(n+i);

      void Display(Person per[],int n)

      {

      int i;

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

      /*格式*/

      printf(“%-5d%-8s%-6s%-13s%-15s%-15sn”,per[i-1].score,per[i-1].name,per[i-1].age,perprintf(“編號

      姓名

      年齡

      電話號碼

      通訊地址

      電子郵箱n”);printf(“--------n”);

      for(i=1;i

      {

      [i-1].num,per[i-1].adds,per[i-1].email);

      }

      printf(“--------n”);system(“pause”);if(i>1&&i%10==0)

      {

      } printf(“t----n”);printf(“t”);system(“pause”);

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

      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)!=0&&i

      }

      for(j=i;j

      }

      printf(“ttt已經(jīng)成功刪除!n”);return(n-1);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通訊錄中沒有此人!n”);return(n);void Query_a_record(Person per[],int n){

      int m;printf(“tn請選擇查詢方式:n”);

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

      printf(“t│1------姓名 │n”);

      printf(“t│2------電話 │n”);

      printf(“t│3------地址 │n”);

      printf(“t│4------返回 │n”);

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

      printf(“請選擇:”);

      scanf(“%d”,&m);

      while(m!=1&&m!=2&&m!=3&&m!=4)

      {

      if(m==1){

      char s[20];int i=0;

      printf(“t請輸入想查詢的姓名:”);scanf(“t%s”,s);

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

      } printf(“輸入錯誤,請重新選擇:”);scanf(“%d”,&m);

      };} return;

      printf(“t此人編號: %dn”,per[i].score);printf(“t此人年齡: %sn”,per[i].age);printf(“t電話號碼: %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請輸入想查詢的電話:”);scanf(“t%s”,s);

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

      };}

      printf(“t此人編號: %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請輸入想查詢的地址:”);scanf(“t%s”,s);

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

      }

      printf(“t此人編號: %dn”,per[i].score);printf(“t此人姓名: %sn”,per[i].name);printf(“t此人年齡: %sn”,per[i].age);printf(“t電話號碼: %sn”,per[i].num);printf(“t電子郵箱: %sn”,per[i].email);printf(“t通訊錄中沒有此人!n”);return;

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

      char s[20];int i=0;

      printf(“t請輸入想修改的記錄中的名字:”);scanf(“%s”,s);

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

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

      return;

      }

      printf(“t編號:”);

      scanf(“t%d”,&per[i].score);

      printf(“t姓名:”);

      scanf(“t%s”,per[i].name);

      printf(“t年齡:”);

      scanf(“t%s”,per[i].age);printf(“t電話號碼:”);

      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請輸入所保存的文件名:”);

      scanf(“t%s”,filename);

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

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

      {

      }

      fprintf(fp,“******************************************

      錄printf(”t無法打開文件n“);system(”pause“);return;

      ******************************************n”);fprintf(fp,“編號

      姓名

      年齡

      電話號碼

      通訊地址

      電子郵箱n”);;

      fprintf(fp,“%-3dt%-6st%-3st%-13st%-20st%-20sn”,per[i].score,per[i].name,per[i].agwhile(i

      ;fprintf(fp,“***************************************共有%d

      條記錄 } fprintf(fp,”----------------------------n“)i++;

      ****************************************n”,n);

      }

      void main()

      /*主函數(shù)*/ { int n=0;fclose(fp);

      /*關閉文件*/ printf(“保存成功!n”);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謝謝使用,再見!n”);

      printf(“ntt”);

      system(“pause”);

      exit(0);

      }

      }

      }

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

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

      /*結束程序*/

      4調(diào)試分析

      調(diào)試的意義和目的:在管理信息系統(tǒng)的開發(fā)過程中,面對著錯綜復雜的各種問題,人的主觀認識不可能完全符合客觀現(xiàn)實,開發(fā)人員之間的思想交流也不可能十分完善。所以,在管理信息系統(tǒng)開發(fā)周期的各個階段都不可避免地會出現(xiàn)差錯。開發(fā)人員應力求在每個階段結束之前進行認真、嚴格的技術審查,盡可能早的發(fā)現(xiàn)并糾正錯誤,否則等到系統(tǒng)投入運行后再回頭來改正錯誤將在人力、物力上造成很大的浪費,有時甚至導致整個系統(tǒng)的癱瘓。然而,經(jīng)驗表明,單憑審查并不能發(fā)現(xiàn)全部差錯,加之在程序設計階段也不可避免還會產(chǎn)生新的錯誤,所以,對系統(tǒng)進行調(diào)試是不可缺少的,是保證系統(tǒng)質(zhì)量的關鍵步驟。統(tǒng)計資料表明,對于一些較大規(guī)模的系統(tǒng)來說,系統(tǒng)調(diào)試的工作量往往占程序系統(tǒng)編制開發(fā)總工作量的40%以上。

      調(diào)試的目的在于發(fā)現(xiàn)其中的錯誤并及時糾正,所以在調(diào)試時應想方設法使程序的各個部分都投入運行,力圖找出所有錯誤。錯誤多少與程序質(zhì)量有關。即使這樣,調(diào)試通過也不能證明系統(tǒng)絕對無誤,只不過說明各模塊、各子系統(tǒng)的功能和運行情況正常,相互之間連接無誤,系統(tǒng)交付用戶使用以后,在系統(tǒng)的維護階段仍有可能發(fā)現(xiàn)少量錯誤并進行糾正,這也是正常的。

      4.1測試

      1).顯示的主菜單界面:

      圖4.1(1)主菜單界面 2).添加界面:

      圖4.1(2)添加界面 3).顯示界面:

      圖4.1(3)顯示界面 4).刪除界面:

      圖4.1(4)刪除前界面 刪除后,通訊錄里的顯示記錄:

      圖(4)刪除后界面 5).查詢界面:以姓名查詢方式為例:

      圖4.1(5)查詢界面

      6).修改界面:

      圖4.1(6)修改前界面 修改后,通訊錄里的顯示記錄:

      圖4.1(6)修改后界面 7).保存界面:

      圖4.1(7)保存界面

      通訊錄.txt 文件截圖:

      圖4.1文件截圖

      4.2問題思考與調(diào)試:

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

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

      圖4.2分析圖

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

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

      當我選擇通訊錄這個題目時,一開始想運用大量鏈表及指針來完成,但是在慢慢琢磨之后,覺得這個不一定要用鏈表,于是改變了編程思路。當然還有不少文件的讀寫問題,不過還是通過不斷測試之后順利解決了。另外一點要說的就是這個程序用了很多的循環(huán),因此對于循環(huán)的控制要十分小心,有時while和do-while的區(qū)別也是十分重要的。

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

      總體來說,這次C語言程序設計實驗還是比較成功的,雖然最終程序還存在一些不足,但能取得這樣的成績我還是比較高興的。

      最后,要感謝學校為我們提供這次實驗機會,也要感謝老師的教導和好心人對我的幫助與支持。

      參考文獻

      [1]譚浩強,張基溫。C語言程序設計教程。第三版。北京:高等教育出版社,2006 [2]譚浩強,張基溫。C語言習題集與上機指導。第三版。北京:高等教育出版社,2006 [3]譚浩強。C程序設計(第三版)。北京:清華大學,2005 [4]譚浩強。C程序設計(第二版)。北京:清華大學,1999 [5]林建秋,韓靜萍,等.C語言程序設計【M】.電子工業(yè)出版社,2004.[6]譚浩強.C語言程序設計【M】.清華大學出版社,2006.[7]黃維通.C語言設計教程.清華大學出版社,2005.[8]王成瑞.C語言程序設計.中國水利水電出版社,2005.[9]張基溫.C語言程序設計案例教程.清華大學出版社,2004.[10]蘇小紅,陳惠鵬.C語言大學實用教程【M】.電子工業(yè)出版社,2007.致

      在這里我要感謝楊書鴻老師,她對我進行了無私的指導和幫助,不厭其煩的幫助進行論文的修改和改進。另外,在校圖書館查找資料的時候,圖書館的老師也給我提供了很多方面的支持與幫助。在此向幫助和指導過我的各位老師表示最中心的感謝!感謝這篇論文所涉及到的各位學者,如果沒有各位學者的研究成果的幫助和啟發(fā),我將很難完成本篇論文的寫作。感謝我的同學和朋友,在我寫論文的過程中給予我很多素材,還在論文的撰寫和排版等過程中提供熱情的幫助。由于我的學術水平有限,所寫論文難免有不足之處,懇請各位老師和學友批評和指正!

      下載通訊錄管理系統(tǒng) (c 和 鏈表)(共5篇)word格式文檔
      下載通訊錄管理系統(tǒng) (c 和 鏈表)(共5篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


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

      相關范文推薦

        C語言課程設計學生通訊錄管理系統(tǒng)設計

        C語言課程設計學生通訊錄管理系統(tǒng)設計一、題目內(nèi)容的描述學生通訊錄管理系統(tǒng)設計設計一個學生通信錄,學生通迅錄數(shù)據(jù)信息構成內(nèi)容可自行設計(如:姓名、家庭地址、郵政編碼、電......

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

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

        學生通訊錄管理系統(tǒng)(C語言課程設計實驗報告)

        C語言課程設計報告——劉顯安 C語言課程設計 姓名:劉顯安 學號:09041131 班級:090411 專業(yè):計算機科學與技術 學院:信息工程學院 設計題目:學生通訊錄管理系統(tǒng) 指導教師:宋文琳 提......

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

        課 程 設 計 任 務 書 題目 C語言課程設計 系(部) 專業(yè)班級學生姓名學號 06 月信息科學與電氣工程學院計算機科學與技術 計職141 王雪 140819139 21 日至07 月04 日共 2......

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

        黑龍江工程學院 第一章 問題分析和任務定義 1.1 問題分析 問題: 編寫一個通訊錄管理系統(tǒng)。要求包括通訊錄建立、增加號碼、刪除號碼、查詢號碼(按姓名、按號碼)、修改號碼、......

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

        “學生通訊信息記錄系統(tǒng)”的設計與實現(xiàn) 一、設計要求 1. 問題的描述 “學生通訊信息記錄系統(tǒng)”是為了實現(xiàn)快速的對學生信息進行錄入、刪除、查找、顯示。各個功能靠函數(shù)實現(xiàn)......

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

        #include #include #include #include #include #include class Information { char name[20]; char tel[12]; char kind; char email[50]; public: Information(){} Inform......

        湖南工業(yè)大學 通訊錄管理系統(tǒng)課程設計報告書(C語言)

        湖南工業(yè)大學 二〇〇九 ~ 二〇一〇學年 第 二 學期 計算機與通信學院 課程設計報告書 課程名稱: C語言課程設計 班 級: 學 號:姓 名: 指導老師: 二〇〇九 年 九 月 通訊錄......