找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4299|回复: 3
打印 上一主题 下一主题
收起左侧

学生通讯录信息管理系统C语言程序

[复制链接]
跳转到指定楼层
楼主
具有学生或者员工的信息录入,查询,修改,删除功能,程序见附件

源程序如下:
  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;//记录总人数
  20. int count1;//记录查询、修改、删除中查到的信息个数
  21. void main()
  22. {
  23.         int i;
  24.         read ();
  25.         while(1)
  26.         {
  27. printf("\t\t\t通讯录信息系统菜单\t\t\t\n");
  28. printf("\t_________________________________________________\t\n");
  29. printf("\n");
  30. printf("\t\t\t   数据录入(1)\t\t\t\n");
  31. printf("\t\t\t   数据浏览(2)\t\t\t\n");
  32. printf("\t\t\t   数据查询(3)\t\t\t\n");
  33. printf("\t\t\t   数据修改(4)\t\t\t\n");
  34. printf("\t\t\t   数据删除(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请输入菜单中对应项的数字\t\t\t\n");
  38. scanf("%d",&i);
  39. system("cls");
  40. switch(i)
  41.   {
  42.         
  43.     case 1: input();  break;//数据输入
  44.     case 2: lookup(); break;//数据浏览
  45.         case 3: search(); break;//数据查询
  46.         case 4: change(); break;//数据修改
  47.         case 5: delete(); break;//数据删除*/
  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. //数据录入
  69. void input()
  70. {   int i,k;
  71.         char j;
  72.     printf("\t\t\t   数据录入(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("系统中已有此人,请重新输入!\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("继续录入吗?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. //数据保存
  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. //数据浏览
  117. void lookup()
  118. {
  119.         int i;
  120. printf("\t\t\t   数据浏览(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("确认退出?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. //数据查询
  148.   void search()
  149. {
  150.         int i;
  151.         char j[20];
  152.         count1=0;
  153.         printf("\t\t\t   数据查询(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.   //数据修改
  173.   void change()
  174.   {
  175.           int i,k;
  176.         char j[20];
  177.     printf("\t\t\t   数据修改(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请输入要修改的信息后对应序号:\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. //数据删除
  215.   void delete()
  216.   {
  217.           int i,temp;
  218.    char j[20];
  219. printf("\t\t\t   数据删除(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.   }
复制代码

所有资料51hei提供下载:
通讯录信息系统.zip (251.73 KB, 下载次数: 16)




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:360221 发表于 2020-10-22 17:38 | 只看该作者
为什么运行程序显示文件无法打开?
回复

使用道具 举报

板凳
ID:568565 发表于 2020-11-16 10:57 | 只看该作者
12345678910354 发表于 2020-10-22 17:38
为什么运行程序显示文件无法打开?

你看看当前路径下面有没有那个文件
回复

使用道具 举报

地板
ID:568565 发表于 2020-11-16 10:58 | 只看该作者
12345678910354 发表于 2020-10-22 17:38
为什么运行程序显示文件无法打开?

看看运行目录下,注意是运行目录下,infor.dat这个文件在不在
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表