脑子不好真君 2022-11-22 09:06 采纳率: 75%
浏览 0
已结题

C语言结课提问,求帮

C语言结课,按照b站上一个视频打的,视频上到这里是能运行了,我这里还在报错,真找不到问题在哪,帮帮忙555

#include<stdio.h>
#include<conio.h>//getch()的头文件
#include<stdlib.h>//malloc()的头文件
int main()
{
    while (1)
    {
        printf("--------------------------------------------------\n");
        printf("------     welcome to 科技项目管理系统      ------\n");
        printf("--------------------------------------------------\n");
        printf("------              1.录入项目信息:        ------\n");
        printf("------              2.录入成员信息:        ------\n");
        printf("------              3.可完成审批:          ------\n");
        printf("------              4.添加项目:            ------\n");
        printf("------              5.删除项目:            ------\n");
        printf("------              6.查询项目:            ------\n");
        printf("------              7.保存项目:            ------\n");
        printf("--------------------------------------------------\n");
        printf("请输入选择:");
        char ch = getch();//从键盘获取一个字符,终止while1)的死循环,并getch()不需要用户输入回车

        switch (ch)
        {
        case'1':
            InputInformation();//调用项目编号函数
            break;//getch()读取的字符,所以case1’需要用单引号,以下同理
        case'2':break;
        case'3':break;
        case'4':break;
        case'5':break;
        case'6':break;
        case'7':break;
        }
    }
    return 0;
}



//录入项目信息
void InputInformation()//定义项目信息的函数
{
    //创建一个新结点
    struct Node *pNewNode = (Node*)malloc(sizeof(Node));
    pNewNode->pNext = NULL;
    //头插法
    if (pNewNode == NULL)
    {
        g_pHead = pNewNode;
    }//如果头结点为空,则新节点为头结点
    else
    {
        pNewNode->pNext = g_pHead;
        g_pHead = pNewNode;
    }//如果头结点不为空,则新结点为头结点



    printf("请输入项目编号:\n");
    scanf("%s", pNewNode->Pro.number);

    printf("请输入项目名称:\n");
    scanf("%s", pNewNode->Pro.name);

    printf("请输入项目申报时间:\n");
    scanf("%f", pNewNode->Pro.time);

    printf("请输入项目负责人:\n");
    scanf("%s", pNewNode->Pro.boss);

    printf("请输入项目预算金额:\n");
    scanf("%f", pNewNode->Pro.money);

    printf("请输入项目审批状态:\n");
    scanf("%d", pNewNode->Pro.state);

    printf("录入成功!");
    system("pause");
}



//定义一个项目
typedef struct _Project//typedef另外命名
{
    char number[50];
    char name[20];
    double time;
    char boss[20];
    double money;
    int state;
}Project;



//结点
typedef struct _Node
{
    struct Project Pro;
    struct _Node* pNext;//指向下一个结点
}Node;



//函数声明
void InputInformation();//声明项目信息的函数



//头结点
Node *g_pHead = NULL;

补上报错:

img

img

  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2022-11-22 09:23
    关注

    报啥错啊?这个void InputInformation()实现代码之后的结构体,函数申明,全局变量都应该放到main函数前面啊

    #include<stdio.h>
    #include<conio.h>//getch()的头文件
    #include<stdlib.h>//malloc()的头文件
    
    //定义一个项目
    typedef struct _Project//typedef另外命名
    {
        char number[50];
        char name[20];
        double time;
        char boss[20];
        double money;
        int state;
    }Project;
    //结点
    typedef struct _Node
    {
        Project Pro;
        struct _Node* pNext;//指向下一个结点
    }Node;
    //函数声明
    void InputInformation();//声明项目信息的函数
    //头结点
    Node *g_pHead = NULL;
    
    
    int main()
    {
        while (1)
        {
            printf("--------------------------------------------------\n");
            printf("------     welcome to 科技项目管理系统      ------\n");
            printf("--------------------------------------------------\n");
            printf("------              1.录入项目信息:        ------\n");
            printf("------              2.录入成员信息:        ------\n");
            printf("------              3.可完成审批:          ------\n");
            printf("------              4.添加项目:            ------\n");
            printf("------              5.删除项目:            ------\n");
            printf("------              6.查询项目:            ------\n");
            printf("------              7.保存项目:            ------\n");
            printf("--------------------------------------------------\n");
            printf("请输入选择:");
            char ch = getch();//从键盘获取一个字符,终止while1)的死循环,并getch()不需要用户输入回车
            switch (ch)
            {
            case'1':
                InputInformation();//调用项目编号函数
                break;//getch()读取的字符,所以case1’需要用单引号,以下同理
            case'2':break;
            case'3':break;
            case'4':break;
            case'5':break;
            case'6':break;
            case'7':break;
            }
        }
        return 0;
    }
    //录入项目信息
    void InputInformation()//定义项目信息的函数
    {
        //创建一个新结点
        Node *pNewNode = (Node*)malloc(sizeof(Node));
        pNewNode->pNext = NULL;
        //头插法
        if (pNewNode == NULL)
        {
            g_pHead = pNewNode;
        }//如果头结点为空,则新节点为头结点
        else
        {
            pNewNode->pNext = g_pHead;
            g_pHead = pNewNode;
        }//如果头结点不为空,则新结点为头结点
        printf("请输入项目编号:\n");
        scanf("%s", pNewNode->Pro.number);
        printf("请输入项目名称:\n");
        scanf("%s", pNewNode->Pro.name);
        printf("请输入项目申报时间:\n");
        scanf("%f", pNewNode->Pro.time);
        printf("请输入项目负责人:\n");
        scanf("%s", pNewNode->Pro.boss);
        printf("请输入项目预算金额:\n");
        scanf("%f", pNewNode->Pro.money);
        printf("请输入项目审批状态:\n");
        scanf("%d", pNewNode->Pro.state);
        printf("录入成功!");
        system("pause");
    }
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 修改了问题 11月22日
  • 创建了问题 11月22日

悬赏问题

  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线