|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天照着书后打的 发现在vc6.0和vs2017都不能运行 有什么错的吗- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #include "tree.h"
- char menu(void)
- void addpet(Tree * pt);
- void droppet(Tree * pt);
- void showpets(const Tree * pt);
- void findpet(const Tree * pt);
- void printitem(Item item);
- void uppercase(char * str);
- char * s_gets(char * st, int n);
- int main(void)
- {
- Tree pets;
- char choice;
- InitializeTree(&prts);
- while ((choice = menu()) != 'q')
- {
- switch (choice)
- {
- case 'a': addpet(&pets);
- break;
- case 'l': showpets(&pets);
- break;
- case 'f': findpet(&pets);
- break;
- case 'n': printf("%d 只宠物在此店中\n",
- TreeItemCount(&pets);
- break;
- case 'd': droppet(&pets);
- break;
- default; puts("Switching error");
- }
- }
- DeleteALL(&pets);
- puts("再见");
- return 0;
- }
- char menu(void)
- {
- int ch;
- puts("宠物店会员程序");
- puts("键入指令以获取相关信息");
- puts("a) 添加宠物 1) 显示宠物列表");
- puts("n) 宠物数量 f) 查找宠物");
- puts("d) 删除宠物 q) 退出");
- while ((ch = getchar()) != EOF)
- {
- while (getchar() != '\n')
- continue;
- ch = tolower(ch);
- if (strchr("alrfndq", ch) == NULL)
- puts("请输入a,l,f,n,d,q:");
- else
- break;
- }
- if (ch == EOF)
- ch = 'q';
- return ch;
- }
- void addpet(Tree * pt)
- {
- Item temp;
- if (TreeIsFull(pt))
- puts("本店无更多房间!")
- else
- {
- puts("请输入宠物名称:")
- s_gets(temp.petname, SLEN);
- puts("请输入宠物种类:");
- s_gets(temp.petkind, SLEN);
- uppercase(temp.petname);
- uppercase(temp.petkind);
- AddItem(&temp, pt);
- }
- }
- void showpets(const Tree * pt)
- {
- if (TreeIsEmpty(pt))
- puts("无条目!");
- else
- Traverse(pt, printitem);
- }
- void printitem(Item item)
- {
- printf("宠物数量: %-19只 种类: %-19s\n", item.petname, item.petkind);
- }
- void findpet(const Tree * pt)
- {
- Item temp;
- if (TreeIsEmpty(pt))
- {
- puts("无条目!");
- return;
- }
- puts("请输入你想要寻找的宠物的名字:");
- s_gets(temp.petname, SLEN);
- puts("请输入宠物种类:");
- s_gets(temp.petkind, SLEN);
- uppercase(temp.petname);
- uppercase(temp.petkind);
- printf("有 %s 为名字的宠物, 种类是: %s", temp.petname, temp.petkind);
- if (InTree(&temp, pt))
- printf("这是我们宠物店的成员");
- else
- printf("这不是我们宠物店的成员");
- }
- void droppet(Tree * pt)
- {
- Item temp;
- if (TreeIsEmpty(pt))
- {
- puts("无条目!");
- return;
- }
- puts("请输入你想删除宠物的名字:");
- s_gets(temp.petname, SLEN);
- puts("请输入此宠物的种类:");
- s_gets(temp.petkind, SLEN);
- uppercase(temp.petname);
- uppercase(temp.petkind);
- printf("有 %s 为名字的宠物,种类是: %s", temmp.petname, temp.petkind);
- if (DeleteItem(&temp, pt))
- printf("已经从此宠物店中删除\n");
- else
- printf("它不是我们宠物店的一员\n");
- }
- void uppercase(char * str)
- {
- while (*str)
- {
- *str = toupper(*str);
- str++;
- }
- }
- char * s_gets(char * st, int n)
- {
- char * rst_val;
- char * find;
- ret_val = fgets(st, n, stdin);
- if (ret_val)
- {
- find = strchr(st, '\n');
- if (find)
- *find = '\0';
- else
- while (getchar() != '\n')
- continue;
- }
- return ret_val;
- }
- }
复制代码 |
|