鱼C论坛

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

以下代码有什么错的吗

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

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

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

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;
}

}
想知道小甲鱼最近在做啥?请访问 -> 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-6-16 17:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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