找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4996|回復(fù): 3
收起左側(cè)

學(xué)生通訊錄信息管理系統(tǒng)C語言程序

[復(fù)制鏈接]
ID:568565 發(fā)表于 2019-7-3 17:11 | 顯示全部樓層 |閱讀模式
具有學(xué)生或者員工的信息錄入,查詢,修改,刪除功能,程序見附件
O1JJTTS)TS1]~1UW7VY[A%9.png UTQ9]1KA($NSJ00@K[QT)QM.png
源程序如下:
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. void input();
  5. void save();
  6. void lookup();
  7. void search();
  8. void change();
  9. void delete();
  10. void quit();
  11. void read();
  12. struct Infor
  13. {  int num;//編號
  14.   char name[20];//姓名
  15.   char  phone[20];//電話
  16.   char kind[20];//類別
  17.   char mail[40];//郵件
  18. }People[200];
  19. int count=0;//記錄總?cè)藬?shù)
  20. int count1;//記錄查詢、修改、刪除中查到的信息個數(shù)
  21. void main()
  22. {
  23.         int i;
  24.         read ();
  25.         while(1)
  26.         {
  27. printf("\t\t\t通訊錄信息系統(tǒng)菜單\t\t\t\n");
  28. printf("\t_________________________________________________\t\n");
  29. printf("\n");
  30. printf("\t\t\t   數(shù)據(jù)錄入(1)\t\t\t\n");
  31. printf("\t\t\t   數(shù)據(jù)瀏覽(2)\t\t\t\n");
  32. printf("\t\t\t   數(shù)據(jù)查詢(3)\t\t\t\n");
  33. printf("\t\t\t   數(shù)據(jù)修改(4)\t\t\t\n");
  34. printf("\t\t\t   數(shù)據(jù)刪除(5)\t\t\t\n");
  35. printf("\t\t\t   退    出(6)\t\t\t\n");
  36. printf("\t__________________________________________________\t\n");
  37. printf("\t\t\t請輸入菜單中對應(yīng)項的數(shù)字\t\t\t\n");
  38. scanf("%d",&i);
  39. system("cls");
  40. switch(i)
  41.   {
  42.         
  43.     case 1: input();  break;//數(shù)據(jù)輸入
  44.     case 2: lookup(); break;//數(shù)據(jù)瀏覽
  45.         case 3: search(); break;//數(shù)據(jù)查詢
  46.         case 4: change(); break;//數(shù)據(jù)修改
  47.         case 5: delete(); break;//數(shù)據(jù)刪除*/
  48.         case 6: quit(); break;//        退出
  49.                
  50.   }

  51.         }

  52. }
  53. //讀入文件
  54. void read()
  55. {
  56. FILE *fp;
  57.         int i;
  58. if((fp=fopen ("infor.dat","rb"))==NULL)
  59. printf("文件無法打開,請檢查!\n");
  60. for(i=0;i<200;i++)
  61. {
  62. if(fread(&People[i],sizeof(struct Infor),1,fp)==1)
  63. count++;
  64. else if(fread(&People[i],sizeof(struct Infor),1,fp)!=1) break;

  65. }
  66. fclose(fp);
  67. }
  68. //數(shù)據(jù)錄入
  69. void input()
  70. {   int i,k;
  71.         char j;
  72.     printf("\t\t\t   數(shù)據(jù)錄入(1)\t\t\t\n");
  73.         for(i=count;i<200;i++)
  74.         {
  75.                 printf("請輸入姓名: ");
  76.                 scanf("%s",People[i].name);
  77.                 {for(k=0;k<count;k++)                                                //錄入查重
  78.         if(strcmp(People[i].name,People[k].name)==0)
  79.         {printf("系統(tǒng)中已有此人,請重新輸入!\n");
  80.            input();
  81.         }
  82.         else continue;
  83.                 }
  84.                
  85.                 printf("請輸入電話: ");
  86.                 scanf("%s",People[i].phone);
  87.                 printf("請輸入類別: ");
  88.                 scanf("%s",People[i].kind);
  89.                 printf("請輸入電子郵箱: ");
  90.                 scanf("%s",People[i].mail);
  91.                 count++;
  92.                 People[i].num=count;
  93.                 printf("繼續(xù)錄入嗎?y/n");
  94.                 scanf(" %c",&j);
  95.                 system("cls");
  96.                 if(j=='y') continue;
  97.                 else if(j=='n') main();
  98.         }
  99.         
  100. }

  101.          
  102. //數(shù)據(jù)保存
  103. void save()
  104. {FILE *fp;
  105. int i;
  106. if((fp=fopen ("infor.dat","wb"))==NULL)
  107. {printf("文件無法打開,請檢查!\n");
  108. return;
  109. }
  110. for(i=0;i<count;i++)
  111. {if(fwrite(&People[i],sizeof(struct Infor),1,fp)!=1)
  112.                  printf("寫入錯誤!\n");
  113. }
  114.          fclose(fp);
  115. }
  116. //數(shù)據(jù)瀏覽
  117. void lookup()
  118. {
  119.         int i;
  120. printf("\t\t\t   數(shù)據(jù)瀏覽(2)\t\t\t\n");
  121. printf("\t編號\t姓名\t電話\t類別\t郵件\t\n");
  122. for(i=0;i<count;i++)
  123. printf("\t%d\t%s\t%s\t%s\t%s\t\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
  124. printf("\t\t\t按任意鍵返回主菜單!\t");
  125. getch();
  126. system("cls");


  127. }

  128. //退出
  129. void quit()
  130. {
  131.          char i,j;
  132.         printf("\t\t\t   退    出(6)\t\t\t\n");
  133.      printf("確認(rèn)退出?y/n");
  134.                 scanf(" %c",&j);
  135.                 system("cls");
  136.                 if(j=='n') return;
  137.                 else if(j=='y')
  138.                 {
  139.                         printf("是否保存?y/n");
  140.                         scanf(" %c",&i);
  141.                         system("cls");
  142.                         if(i=='y') {save();exit(0);}
  143.                         else if(i=='n') exit(0);
  144.                         
  145.                 }
  146. }
  147. //數(shù)據(jù)查詢
  148.   void search()
  149. {
  150.         int i;
  151.         char j[20];
  152.         count1=0;
  153.         printf("\t\t\t   數(shù)據(jù)查詢(3)\t\t\t\n");
  154.         printf("請輸入要查詢的類別A、B、C\n");
  155.         scanf(" %s",j);
  156.         printf("\t姓名\t電話\t\n");
  157.         for(i=0;i<200;i++)
  158.         {
  159.         if(strcmp(j,People[i].kind)==0)
  160.         {printf("\t%s\t%d\t\n",People[i].name,People[i].phone);
  161.         count1++;
  162.         }
  163.         }
  164.         if(count1==0)
  165.         {system("cls");
  166.         printf("無此類別人員信息!\n");}
  167.         printf("\t\t\t按任意鍵返回主菜單!\t");
  168.     getch();
  169.     system("cls");
  170.    
  171. }
  172.   //數(shù)據(jù)修改
  173.   void change()
  174.   {
  175.           int i,k;
  176.         char j[20];
  177.     printf("\t\t\t   數(shù)據(jù)修改(4)\t\t\t\n");
  178.         printf("請輸入要修改信息人員的姓名:\n");
  179.         scanf(" %s",j);
  180.         printf("以下為該人員信息:\n");
  181.     printf("\t編號\t姓名\t電話\t類別\t郵件\t\n");

  182.         for(i=0;i<200;i++)
  183.         {
  184.                 if(strcmp(j,People[i].name)==0)
  185.                 printf("\t%d\t%s\t%s\t%s\t%s\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
  186.                 else continue;
  187.         printf("\n");
  188.    printf("\t\t\t請輸入要修改的信息后對應(yīng)序號:\t\t\t\n");
  189.                 printf("\t\t\t   編號(1)\t\t\t\n");
  190.                 printf("\t\t\t   姓名(2)\t\t\t\n");
  191.                 printf("\t\t\t   電話(3)\t\t\t\n");
  192.                 printf("\t\t\t   類別(4)\t\t\t\n");
  193.                 printf("\t\t\t   郵箱(5)\t\t\t\n");
  194.                 scanf(" %d",&k);
  195.     printf("該信息修改為:\n");
  196.         
  197. switch(k)
  198.   {
  199.         
  200.     case 1:        scanf(" %d",&People[i].num);break;
  201.     case 2: scanf(" %s",People[i].name);break;
  202.         case 3: scanf(" %s",People[i].phone);break;
  203.     case 4: scanf(" %s",People[i].kind);break;
  204.         case 5: scanf(" %s",People[i].mail);break;
  205.                
  206.   }
  207.         printf("修改成功!\n");
  208.         printf("\t\t\t按任意鍵返回主菜單!\t");
  209.         getch();
  210.         system("cls");

  211.         }
  212.         
  213.   }

  214. //數(shù)據(jù)刪除
  215.   void delete()
  216.   {
  217.           int i,temp;
  218.    char j[20];
  219. printf("\t\t\t   數(shù)據(jù)刪除(5)\t\t\t\n");
  220. printf("請輸入要刪除信息人員的姓名:\n");
  221.         scanf(" %s",j);
  222.         printf("以下為該人員信息:\n");
  223.         printf("\t編號\t姓名\t電話\t類別\t郵件\t\n");
  224.         for(i=0;i<200;i++)
  225.         {
  226.         if(strcmp(j,People[i].name)==0)
  227.         printf("\t%d\t%s\t%s\t%s\t%s\t\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
  228.         else continue;        
  229.         printf("\n");
  230.         for(i=i;i<200;i++)
  231.         {
  232.           temp=People[i].num;
  233.           People[i]=People[i+1];
  234.           People[i].num=temp;

  235.         }
  236.         }
  237.         printf("\t\t\t已刪除!\t\n");
  238.         printf("\t\t\t按任意鍵返回主菜單!\t");
  239.         getch();
  240.         system("cls");

  241.   }
復(fù)制代碼

所有資料51hei提供下載:
通訊錄信息系統(tǒng).zip (251.73 KB, 下載次數(shù): 16)




評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:360221 發(fā)表于 2020-10-22 17:38 | 顯示全部樓層
為什么運行程序顯示文件無法打開?
回復(fù)

使用道具 舉報

ID:568565 發(fā)表于 2020-11-16 10:57 | 顯示全部樓層
12345678910354 發(fā)表于 2020-10-22 17:38
為什么運行程序顯示文件無法打開?

你看看當(dāng)前路徑下面有沒有那個文件
回復(fù)

使用道具 舉報

ID:568565 發(fā)表于 2020-11-16 10:58 | 顯示全部樓層
12345678910354 發(fā)表于 2020-10-22 17:38
為什么運行程序顯示文件無法打開?

看看運行目錄下,注意是運行目錄下,infor.dat這個文件在不在
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表