鱼C论坛

 找回密码
 立即注册
查看: 2965|回复: 4

以下代码有什么错的吗

[复制链接]
发表于 2018-5-18 23:08:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天照着书后打的 发现在vc6.0和vs2017都不能运行 有什么错的吗
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4. #include "tree.h"

  5. char menu(void)
  6. void addpet(Tree * pt);
  7. void droppet(Tree * pt);
  8. void showpets(const Tree * pt);
  9. void findpet(const Tree * pt);
  10. void printitem(Item item);
  11. void uppercase(char * str);
  12. char * s_gets(char * st, int n);

  13. int main(void)
  14. {
  15.         Tree pets;
  16.         char choice;

  17.         InitializeTree(&prts);
  18.         while ((choice = menu()) != 'q')
  19.         {
  20.                 switch (choice)
  21.                 {
  22.                 case 'a':        addpet(&pets);
  23.                         break;
  24.                 case 'l':        showpets(&pets);
  25.                         break;
  26.                 case 'f':        findpet(&pets);
  27.                         break;
  28.                 case 'n':        printf("%d 只宠物在此店中\n",
  29.                         TreeItemCount(&pets);
  30.                         break;
  31.                 case 'd':        droppet(&pets);
  32.                         break;
  33.                         default;        puts("Switching error");
  34.                 }
  35.         }
  36.         DeleteALL(&pets);
  37.         puts("再见");

  38.                 return 0;
  39. }

  40. char menu(void)
  41. {
  42.         int ch;

  43.         puts("宠物店会员程序");
  44.         puts("键入指令以获取相关信息");
  45.         puts("a) 添加宠物                1) 显示宠物列表");
  46.         puts("n) 宠物数量                f) 查找宠物");
  47.         puts("d) 删除宠物                q) 退出");
  48.         while ((ch = getchar()) != EOF)
  49.         {
  50.                 while (getchar() != '\n')
  51.                         continue;
  52.                 ch = tolower(ch);
  53.                 if (strchr("alrfndq", ch) == NULL)
  54.                         puts("请输入a,l,f,n,d,q:");
  55.                 else
  56.                         break;
  57.         }
  58.         if (ch == EOF)
  59.                 ch = 'q';

  60.         return ch;

  61. }

  62. void addpet(Tree * pt)
  63. {
  64.         Item temp;

  65.         if (TreeIsFull(pt))
  66.                 puts("本店无更多房间!")
  67.         else
  68.         {
  69.                 puts("请输入宠物名称:")
  70.                         s_gets(temp.petname, SLEN);
  71.                 puts("请输入宠物种类:");
  72.                 s_gets(temp.petkind, SLEN);
  73.                 uppercase(temp.petname);
  74.                 uppercase(temp.petkind);
  75.                 AddItem(&temp, pt);
  76.         }
  77. }

  78. void showpets(const Tree * pt)
  79. {
  80.         if (TreeIsEmpty(pt))
  81.                 puts("无条目!");
  82.         else
  83.                 Traverse(pt, printitem);
  84. }

  85. void printitem(Item item)
  86. {
  87.         printf("宠物数量: %-19只 种类: %-19s\n", item.petname, item.petkind);
  88. }

  89. void findpet(const Tree * pt)
  90. {
  91.         Item temp;

  92.         if (TreeIsEmpty(pt))
  93.         {
  94.                 puts("无条目!");
  95.                 return;
  96.         }

  97.         puts("请输入你想要寻找的宠物的名字:");
  98.         s_gets(temp.petname, SLEN);
  99.         puts("请输入宠物种类:");
  100.         s_gets(temp.petkind, SLEN);
  101.         uppercase(temp.petname);
  102.         uppercase(temp.petkind);
  103.         printf("有 %s 为名字的宠物, 种类是: %s", temp.petname, temp.petkind);
  104.         if (InTree(&temp, pt))
  105.                 printf("这是我们宠物店的成员");
  106.         else
  107.                 printf("这不是我们宠物店的成员");
  108. }

  109. void droppet(Tree * pt)
  110. {
  111.         Item temp;

  112.         if (TreeIsEmpty(pt))
  113.         {
  114.                 puts("无条目!");
  115.                 return;
  116.         }

  117.         puts("请输入你想删除宠物的名字:");
  118.         s_gets(temp.petname, SLEN);
  119.         puts("请输入此宠物的种类:");
  120.         s_gets(temp.petkind, SLEN);
  121.         uppercase(temp.petname);
  122.         uppercase(temp.petkind);
  123.         printf("有 %s 为名字的宠物,种类是: %s", temmp.petname, temp.petkind);
  124.         if (DeleteItem(&temp, pt))
  125.                 printf("已经从此宠物店中删除\n");
  126.         else
  127.                 printf("它不是我们宠物店的一员\n");
  128. }

  129. void uppercase(char * str)
  130. {
  131.         while (*str)
  132.         {
  133.                 *str = toupper(*str);
  134.                 str++;
  135.         }
  136. }
  137. char * s_gets(char * st, int n)
  138. {
  139.         char * rst_val;
  140.         char * find;

  141.         ret_val = fgets(st, n, stdin);
  142.         if (ret_val)
  143.         {
  144.                 find = strchr(st, '\n');
  145.                 if (find)
  146.                         *find = '\0';
  147.                 else
  148.                         while (getchar() != '\n')
  149.                                 continue;
  150.         }
  151.         return ret_val;
  152. }

  153. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-18 23:40:32 | 显示全部楼层
tree.h 何在?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-18 23:46:15 | 显示全部楼层

在第四行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-19 07:05:53 | 显示全部楼层
求助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-19 09:15:11 | 显示全部楼层

#include "tree.h"

tree.h 文件何在?我又没有眼瞎
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 23:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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