黑马程序员技术交流社区

标题: 通讯录为什么说我switch函数 永远不会执行 求大神解析 [打印本页]

作者: LEON27    时间: 2015-6-28 09:57
标题: 通讯录为什么说我switch函数 永远不会执行 求大神解析
  1. //
  2. //  main.c
  3. //  telNum
  4. //
  5. //  Created by leon on 15/6/27.
  6. //  Copyright (c) 2015年 Leon. All rights reserved.
  7. //

  8. #include <stdio.h>
  9. #include <string.h>
  10. /***************    宏定义   ***************/
  11. #define N 100   //定义宏定义
  12. #define NAMELEN 22
  13. #define NUMLEN 12

  14. /***************    定义部分   ***************/
  15. //定义联系人的结构体
  16. typedef struct{
  17.     //联系人
  18.     char name[NAMELEN];
  19.     //电话号码
  20.     char telNum[NUMLEN];
  21. }Person;

  22. //存储所有的联系人,联系人的数组
  23. Person contacts[100];

  24. //定义联系人的个数
  25. int totalContactCount=0;
  26. //接受用户输入烦人编号
  27. int fno;
  28. //定义数据文件保存的位置
  29. char *filePath="telbook.data";

  30. /***************    函数的声明   ***************/
  31. int validateInput(int num,int min, int max);
  32. void init();
  33. void doAdd();
  34. void doDelete();
  35. void doUpdate();
  36. void doList();
  37. void doSearchByName();

  38. int main (int argc,const char * argv[]) {
  39.    
  40.     init();
  41.     printf("通讯录初始化完成:\n");
  42.     while(1){
  43.         printf("\n");
  44.         //软件的界面显示出来
  45.         printf("**************************\n");
  46.         printf("******欢迎使用通讯录******\n");
  47.         printf("******1、添加联系人 ******\n");
  48.         printf("******2、删除联系人 ******\n");
  49.         printf("******3、修改联系人 ******\n");
  50.         printf("******4、查看所有联系人 **\n");
  51.         printf("******5、搜索联系人 ******\n");
  52.         printf("******6、退出系统 ********\n");
  53.         printf("**************************\n\n");
  54.         
  55.         //提示用户选择一个序号
  56.         printf("请选择1-6之间的功能编号:\n");
  57.         scanf("%d",&fno);
  58.         
  59.         //判断编号是否合法
  60.         validateInput(fno,1,6);
  61.         
  62.         switch(fno) {
  63.             case1:
  64.                 //执行添加
  65.                 doAdd();
  66.                 break;
  67.             case2:
  68.                 //执行删除
  69.                 doDelete();
  70.                 break;
  71.             case3:
  72.                 //执行修改
  73.                 doUpdate();
  74.                 break;
  75.             case4:
  76.                 //执行查看
  77.                 doList();
  78.                 break;
  79.             case5:
  80.                 //执行搜索
  81.                 doSearchByName();
  82.                 break;
  83.             case6:
  84.                 //执行退出
  85.                 printf("系统正在退出。。。");
  86.                 printf("系统已退出");
  87.                 return 0;
  88.                 break;
  89.                
  90.             default:break;
  91.         }
  92.         
  93.         
  94.         
  95.         
  96.     }
  97.    
  98.    
  99.    
  100.    
  101. }

  102. int validateInput(int num,int min, int max){
  103.     if(num<min || num>max){
  104.         printf("非法的输入!");
  105.         return 1;
  106.     }
  107.    
  108.     return 0;
  109. }

  110. //添加联系人
  111. void doAdd(){
  112.    
  113.     printf("您选择的是添加联系人,请按提示操作:\n");
  114.    
  115. }

  116. //删除联系人
  117. void doDelete(){
  118.    
  119.     printf("您选择的是删除联系人,请按提示操作:\n");
  120.    
  121. }

  122. //修改联系人
  123. void doUpdate(){
  124.    
  125.     printf("您选择的是联系修改人,请按提示操作:\n");
  126.    
  127. }

  128. //显示所有联系人
  129. void doList(){
  130.    
  131.     printf("您选择的是查看联系人,联系人如下:\n");
  132.    
  133. }

  134. //搜索联系人
  135. void doSearchByName(){
  136.    
  137.     printf("您选择的是搜索联系人,请按提示操作:\n");
  138.    
  139. }

  140. //通讯录初始化
  141. /*
  142. 1、尝试性读取数据文件
  143. 2、如果读取成功,说明文件存在
  144. 如果存在,要读取联系人数据,保存到联系人数组  contacts
  145.        
  146. 3、如果读取失败,说明我们是第一次使用通讯录
  147. 如果是第一次使用
  148. 1)创建联系人数据文件
  149. 2)把当前联系人的个数写入到文件中 totalContactCount
  150. */
  151. void init(){
  152.     //定义文件指针,并且打开文件
  153.     FILE *fp=fopen(filePath,"r");
  154.    
  155.     if(fp!=NULL){
  156.         //第一步:读取联系人的个数
  157.         fread(&totalContactCount,sizeof(totalContactCount),1,fp);
  158.         
  159.         //第二部:读取每一个联系人
  160.         for(int i=0; i<totalContactCount;i++){
  161.             
  162.             fread(&contacts[i],sizeof(contacts),1,fp);
  163.         }
  164.         
  165.         
  166.     } else{
  167.         //创建文件
  168.         fp=fopen(filePath,"wb");
  169.         
  170.         //写入联系人
  171.         fwrite(&totalContactCount,sizeof(totalContactCount),1,fp);
  172.         
  173.         printf("通讯录文件创建成功~");
  174.     }
  175.    
  176.     //关闭文件指针
  177.     fclose(fp);
  178.    
  179.    
  180. }
复制代码

作者: 丁铭检    时间: 2015-6-29 11:21
本帖最后由 丁铭检 于 2015-6-29 11:27 编辑

case和数字之间用空格隔开一下。。。或者错误很难发现。。。希望以后习惯性使用空格。。

QQ截图20150629112041.jpg (71.87 KB, 下载次数: 3)

QQ截图20150629112041.jpg





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2