久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3110|回復: 0
打印 上一主題 下一主題
收起左側

自己寫的c語言電話簿源程序

[復制鏈接]
跳轉到指定樓層
樓主
自己研究出來的


c語言源程序如下:
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>

  4. struct person       //創造結構體
  5. {
  6.         char name[8];
  7.         char tel[15];
  8. };

  9. char filename[20];
  10. FILE *fp;
  11. void creat();      //創建一個通訊錄
  12. void output();
  13. void search();
  14. void append();
  15. void modify();
  16. void del();

  17. void main()
  18. {
  19.                 int m;char k;

  20.                 printf("\n請輸入你要打開的通訊錄文件名:");
  21.                 gets(filename);
  22.                 if((fp=fopen(filename,"r"))==NULL)
  23. {
  24.                 printf("\n當前沒有此通訊錄文件,現在是否執行創建(Y/N)?:");
  25.                 scanf("%c",&k);
  26.                 if(k!='Y'&&k!='N'&&k!='y'&&k!='n')
  27.                 {       
  28.                         printf("\n輸入有誤,請再次輸入一個值:");
  29.                         scanf("%c",&k);
  30.                 }
  31.             else if(k=='Y'||k=='y')
  32.                 {
  33.                         creat();
  34.                 }
  35.                 else if(k=='N'||k=='n')
  36.                 {
  37.                         printf("\n由于你選擇了退出,現在程序即將關閉!\n");
  38.                         exit(0);
  39.                 }
  40. }
  41. else
  42. {
  43.                 printf("\n你要打開的通訊錄文件%s已存在,現在可直接對其操作:\n",filename);
  44.                 printf("通訊錄文件中現已有的通訊信息:\n");
  45.                 output();
  46.                 printf("\n請選擇根據提示選擇1~5對通訊錄文件進行操作。\n");
  47. }
  48. while (1)
  49. {
  50.          printf("\n\n添加,請按1"); printf("\n查找,請按2");
  51.      printf("\n修改,請按3");  
  52.          printf("\n刪除,請按4");
  53.            printf("\n輸出,請按5");
  54.          printf("\n退出,請按0\n");
  55.          scanf("%d",&m);
  56.         if(m>=0&&m<=5)
  57.         {
  58.          switch(m)
  59.          {
  60.          case 1: append();break;
  61.          case 2: search();break;
  62.          case 3: modify();break;
  63.             case 4: del();break;
  64.          case 5:output();break;
  65.          case 0:exit(0);
  66.          }
  67.          printf("\n\n操作完畢,請再次選擇!");
  68. }
  69.          else printf("\n\n操作錯誤,請再次選擇!:");
  70. }
  71. }
  72. /**********************************************************************/
  73. void creat()
  74. {
  75.         struct person one;printf("\n請輸入通訊簿文件名:");
  76.         scanf("%s",filename);
  77.         if ((fp=fopen(filename,"w"))==NULL)
  78.         {
  79.                 printf("\n不能建立通訊薄!");
  80.                 exit(0);
  81.         }
  82.         fprintf(fp,"%-10s%-20s%-30s%-20s\n","姓名","電話號碼","住址","電子郵箱");
  83.         printf("\n請輸入姓名:\n");
  84.          scanf("%s",one.name);
  85.         while (strcmp(one.name,"0"))
  86. {
  87.                 printf("請輸入電話號碼:\n");
  88.                 scanf("%s",one.tel);
  89.                 fprintf(fp,"%-10s%-20s%\n",one.name,one.tel);
  90.                 printf("請再輸入另一個人的姓名,若想要結束,請輸入0\n");
  91.                 scanf("%s",one.name);
  92. }
  93. fclose(fp);
  94. }

  95. void output()
  96. {
  97.         struct person one;
  98.         if((fp=fopen(filename,"r"))==NULL)
  99.         {
  100.                 printf("\n不能打開通訊薄!");
  101.                 exit(0);
  102.         }
  103. while (!feof(fp))
  104. {
  105.         fscanf(fp,"%s%s\n",one.name,one.tel);
  106.         printf("%-10s%-20s%\n",one.name,one.tel);
  107. }
  108.         fclose(fp);
  109. }

  110. void append()
  111. {
  112.         struct person one;
  113.         if ((fp=fopen(filename,"a"))==NULL)
  114.         {
  115.                 printf("\n不能打開通訊薄!");
  116.                 exit(0);
  117.         }
  118.         printf("\n請輸入添加的姓名\n");
  119.         scanf("%s",one.name);
  120.         printf("請輸入電話號碼:\n");
  121.         scanf("%s",one.tel);
  122.        
  123.         printf("%-10s%-20s%\n",one.name,one.tel);
  124.         fprintf(fp,"%-10s%-20s%\n",one.name,one.tel);
  125.         fclose(fp);
  126. }

  127. void search()
  128. {
  129.         int flag=0;
  130.         char namekey[8];
  131.         struct person one;
  132.         printf("\n請輸入姓名:");
  133.         scanf("%s",namekey);
  134.         if((fp=fopen(filename,"r"))==NULL)
  135.         {
  136.                 printf("\n不能打開通訊薄!");
  137.                 exit(0);
  138.         }
  139. while(!feof(fp))
  140. {
  141.          fscanf(fp,"%s%s\n",one.name,one.tel);
  142.          if (!strcmp(namekey,one.name))
  143.          {
  144.                  printf("\n\n已查到,記錄為:");
  145.                  printf("\n%-10s%-20s%",one.name,one.tel);
  146.                  flag=1;
  147.          }
  148. }
  149.          if(!flag)
  150.                  printf("\n\n對不起,通訊薄中沒有此人的記錄。");
  151.                          fclose(fp);
  152. }

  153. void modify()
  154. {
  155.         int flag=0;
  156.         long offset;
  157.         char namekey[8];
  158.         struct person one;printf("\n請輸入姓名:");
  159.         scanf("%s",namekey);
  160.         if((fp=fopen(filename,"r+"))==NULL)
  161.         {
  162.                 printf("\n不能打開通訊薄!");
  163.                 exit(0);
  164.         }
  165. while(!feof(fp))
  166. {
  167.         offset=ftell(fp);
  168.         fscanf(fp,"%s%s\n",one.name,one.tel);
  169.         if(!strcmp(namekey,one.name))
  170.         {
  171.         flag=1;break;
  172.         }
  173. }
  174. if(flag)
  175. {
  176.         printf("\n已查到,記錄為");
  177.         printf("\n%-10s%-20s%",one.name,one.tel);
  178.         while (1)
  179.         {
  180.                 printf("\n\n修改姓名,請按2");
  181.                 printf("\n修改電話,請按3");
  182.                 printf("\n退出,請按6\n");
  183.                 scanf("%d",&flag);
  184.                 if (flag==2)
  185.                 {
  186.                         printf("請輸入新的姓名\n");
  187.                         scanf("%s",one.name);
  188.                         printf("修改完畢,請指示!:\n");
  189.                 }
  190.             if (flag==3) {printf("請輸入新的電話\n");
  191.                 scanf("%s",one.tel);
  192.                 printf("修改完畢,請指示!:\n");
  193.                 }
  194.                 if (flag==6) break;

  195. }
  196. fseek(fp,offset,0);
  197. fprintf(fp,"%-10s%-20s%\n",one.name,one.tel);
  198. printf("\n%-10s%-20s%",one.name,one.tel);
  199. }
  200. else printf("不存在指定的名字!\n");
  201. fclose(fp);
  202. }

  203. void del()
  204. {
  205. int m,flag=0;
  206. long offset;
  207. char namekey[8];
  208. struct person one;
  209. printf("\n請輸入姓名:");
  210. scanf("%s",namekey);
  211. if((fp=fopen(filename,"r+"))==NULL)
  212. {
  213.         printf("\n不能打開通訊簿!");
  214.         exit(0);
  215. }
  216. while(!feof(fp))
  217. {
  218.         offset=ftell(fp);
  219.         fscanf(fp,"%s%s\n",one.name,one.tel);
  220.         if(!strcmp(namekey,one.name))
  221.         {
  222.                 flag=1;
  223.                 break;
  224.         }
  225. }
  226. if(flag)
  227. {
  228.         printf("\n已查到,記錄為");
  229.         printf("\n%-10s%-20s%",one.name,one.tel);
  230.         printf("\n確定要刪除,按1;不刪除,按0:");
  231.         scanf("%d",&m);
  232.         if (m)
  233.                 {fseek(fp,offset,SEEK_SET);
  234.                         fprintf(fp,"%-10s%-20s\n","",""); }

  235.                 }
  236.         else
  237.                 printf("\n對不起,通訊簿中沒有此人的記錄。");
  238.                 fclose(fp);
  239. ……………………

  240. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
C語言課程設計.zip (1.17 MB, 下載次數: 6)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久一区二区三区 | 日韩不卡三区 | 成人精品一区二区三区中文字幕 | 久久精品1 | 色吊丝在线 | 中文字幕视频三区 | 羞羞视频免费在线 | 人人草天天草 | 午夜视频一区二区三区 | 亚州精品天堂中文字幕 | 懂色av一区二区三区在线播放 | 精品少妇一区二区三区在线播放 | 国产91久久久久久久免费 | 一级黄片一级毛片 | 午夜小电影 | 国产线视频精品免费观看视频 | aaaaaaa片毛片免费观看 | 中文字幕在线观看一区 | 可以免费观看的av | 久在线| 国产一区91在线 | 99精品电影 | 日韩国产一区 | 成人高清在线视频 | 特级黄一级播放 | 中国大陆高清aⅴ毛片 | 日本特黄a级高清免费大片 特黄色一级毛片 | 在线观看国产视频 | 久久久久国 | 日韩免费| 日韩二区| 国产小视频在线 | 久久久久久久久久久久亚洲 | 日日日操 | 在线观看www | 日日操视频| 欧美成人免费在线视频 | 日韩精品亚洲专区在线观看 | 欧美一区中文字幕 | 久久这里只有精品首页 | 日韩有码一区 |