马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
}
}
|