m0_73740280 2023-01-19 20:55 采纳率: 86.8%
浏览 49
已结题

请问这个C语言代码有什么需要修改的地方

请问这段代码的menu函数为什么不运行,是学生信息管理系统,menu函数就是打印菜单
只截取了menu之前的代码

#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <string.h>
struct Student
{
    char id[14];
    char name[10];
    int age;
    char sex[3];
    char date[10];
    char address[20];
    char phone[12];
    char email[20];
};
struct Student stu[50],ss;
int menu();
//功能:在stu的count个元素,查找ss
//返回值:查找成功,返回ss在stu中的位置号;否则,返回 -1 
int searchID(Student stu[] , int count , Student ss); 
int searchNAME(Student stu[] , int count , Student ss); 
//正常插入,返回学生数;否则,返回-1
int add(Student stu[] , int count ,Student ss);
//若输入的学号存在,正常修改,返回学生数,否则,修改失败,返回 -1 
int modify(Student stu[],int count,Student ss);
//若输入的学号存在,删除,返回学生数,否则,删除失败,返回 -1 
int Delete(Student stu[],int count,Student ss);
void writeFile(Student stu[] , int count );
int readFile(Student stu[]);
int main()
{
    int  count = 0, i;
    int select, tag = 1 ;
    count = readFile(stu);
    while(tag)
    {
        //菜单 
        menu();
        scanf("%d",&select);
        switch(select)
        {
            case 1://增加
                printf("请输入待增加的学生\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\t\n");
                scanf("%s%s%d%s%s%s%s%s\n", ss.id , ss.name ,&ss.age, ss.sex ,ss.date,ss.address,ss.phone,ss.email);
                i = add(stu,count,ss);
                //如果本来不存在这个学生信息 
                if(i != -1)
                {
                    printf("插入成功\n");
                    count  = i;
                }
                else
                    printf("插入失败\n");
                break;
            case 2://按学号查找
                printf("请输入学号:");
                scanf("%s", ss.id);
                i = searchID(stu , count ,ss);
                if(i != -1 )
                    printf("%s%s%d%s%s%s%s%s\n",stu[i].id , stu[i].name , stu[i].age,stu[i].sex,stu[i].date,stu[i].address,stu[i].phone,stu[i].email);
                else
                    printf("%s 不存在!\n",ss.id);
                break;
            case 3://按姓名查找 
                printf("请输入姓名:");
                scanf("%s", ss.name);
                i = searchNAME(stu , count ,ss);
                if(i != -1 )
                    printf("%s%s%d%s%s%s%s%s\n",stu[i].id , stu[i].name , stu[i].age,stu[i].sex,stu[i].date,stu[i].address,stu[i].phone,stu[i].email);
                else
                    printf("%s 不存在!\n",ss.name);
                break;
            case 4://修改 
                printf("请输入待修改的学生\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\t\n");
                scanf("%s%s%d%s%s%s%s%s\n", ss.id , ss.name ,&ss.age, ss.sex ,ss.date,ss.address,ss.phone,ss.email);
                i = modify(stu , count ,ss);
                if(i == -1)
                    printf("%s 不存在,修改失败!\n",ss.id);
                    else
                    printf("修改成功\n"); 
                break;
            case 5://删除 
                printf("请输入待删除的学生学号:");
                scanf("%s", ss.id);
                i = Delete(stu , count ,ss);
                    if(i != -1 )
                {
                    printf("删除成功\n");
                    count = i; 
                }
                else
                    printf("%s 不存在,删除失败\n",ss.id);
                break;
            case 6://显示 
                printf("学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\t\n");
                for(i = 0 ; i < count ; i++ )
                    printf("%s%s%d%s%s%s%s%s\n",stu[i].id , stu[i].name , stu[i].age,stu[i].sex,stu[i].date,stu[i].address,stu[i].phone,stu[i].email);
                break;
            case 0:
                system("cls") ;
                printf("欢迎再次使用学生信息管理系统......\n");
                tag = 0 ;
                writeFile(stu ,count );
                break;
            default:
                printf("选择错误,只能选择(0-6)");
        }
        printf("按任意键继续......\n");
        getch();
        system("cls");
    }
    getch();
    return 0;
}
 
int menu()
{
    printf("       *学生信息管理系统*    \n");
    printf("1、插入学生信息\n");
    printf("2、查找学生信息(按学号)\n");
    printf("3、查找学生信息(按姓名)\n");
    printf("4、修改学生信息\n");
    printf("5、删除学生信息\n");
    printf("6、显示学生信息\n");
    printf("0、退出系统\n");
    printf("__________________________\n");
    printf("请选择(0-6):");
}

  • 写回答

1条回答 默认 最新

  • a5156520 2023-01-19 21:05
    关注

    是不是有函数未定义,我这里测试是正常的。

    #include <stdio.h>
    #include <windows.h>
    #include <conio.h>
    #include <string.h>
    struct Student
    {
        char id[14];
        char name[10];
        int age;
        char sex[3];
        char date[10];
        char address[20];
        char phone[12];
        char email[20];
    };
    struct Student stu[50],ss;
    int menu();
    //功能:在stu的count个元素,查找ss
    //返回值:查找成功,返回ss在stu中的位置号;否则,返回 -1 
    int searchID(Student stu[] , int count , Student ss){
        return 1; 
    } 
    int searchNAME(Student stu[] , int count , Student ss){
        return 1; 
    }
    //正常插入,返回学生数;否则,返回-1
    int add(Student stu[] , int count ,Student ss){
        return 1; 
    }
    
    //若输入的学号存在,正常修改,返回学生数,否则,修改失败,返回 -1 
    int modify(Student stu[],int count,Student ss){
        return 1; 
    }
    
    //若输入的学号存在,删除,返回学生数,否则,删除失败,返回 -1 
    int Delete(Student stu[],int count,Student ss){
        return 1; 
    }
    
    void writeFile(Student stu[] , int count ){
        
    }
    
    int readFile(Student stu[]){
        return 1; 
    }
    
    int main()
    {
        int  count = 0, i;
        int select, tag = 1 ;
        count = readFile(stu);
        while(tag)
        {
            //菜单 
            menu();
            scanf("%d",&select);
            switch(select)
            {
                case 1://增加
                    printf("请输入待增加的学生\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\t\n");
                    scanf("%s%s%d%s%s%s%s%s\n", ss.id , ss.name ,&ss.age, ss.sex ,ss.date,ss.address,ss.phone,ss.email);
                    i = add(stu,count,ss);
                    //如果本来不存在这个学生信息 
                    if(i != -1)
                    {
                        printf("插入成功\n");
                        count  = i;
                    }
                    else
                        printf("插入失败\n");
                    break;
                case 2://按学号查找
                    printf("请输入学号:");
                    scanf("%s", ss.id);
                    i = searchID(stu , count ,ss);
                    if(i != -1 )
                        printf("%s%s%d%s%s%s%s%s\n",stu[i].id , stu[i].name , stu[i].age,stu[i].sex,stu[i].date,stu[i].address,stu[i].phone,stu[i].email);
                    else
                        printf("%s 不存在!\n",ss.id);
                    break;
                case 3://按姓名查找 
                    printf("请输入姓名:");
                    scanf("%s", ss.name);
                    i = searchNAME(stu , count ,ss);
                    if(i != -1 )
                        printf("%s%s%d%s%s%s%s%s\n",stu[i].id , stu[i].name , stu[i].age,stu[i].sex,stu[i].date,stu[i].address,stu[i].phone,stu[i].email);
                    else
                        printf("%s 不存在!\n",ss.name);
                    break;
                case 4://修改 
                    printf("请输入待修改的学生\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\t\n");
                    scanf("%s%s%d%s%s%s%s%s\n", ss.id , ss.name ,&ss.age, ss.sex ,ss.date,ss.address,ss.phone,ss.email);
                    i = modify(stu , count ,ss);
                    if(i == -1)
                        printf("%s 不存在,修改失败!\n",ss.id);
                        else
                        printf("修改成功\n"); 
                    break;
                case 5://删除 
                    printf("请输入待删除的学生学号:");
                    scanf("%s", ss.id);
                    i = Delete(stu , count ,ss);
                        if(i != -1 )
                    {
                        printf("删除成功\n");
                        count = i; 
                    }
                    else
                        printf("%s 不存在,删除失败\n",ss.id);
                    break;
                case 6://显示 
                    printf("学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\t\n");
                    for(i = 0 ; i < count ; i++ )
                        printf("%s%s%d%s%s%s%s%s\n",stu[i].id , stu[i].name , stu[i].age,stu[i].sex,stu[i].date,stu[i].address,stu[i].phone,stu[i].email);
                    break;
                case 0:
                    system("cls") ;
                    printf("欢迎再次使用学生信息管理系统......\n");
                    tag = 0 ;
                    writeFile(stu ,count );
                    break;
                default:
                    printf("选择错误,只能选择(0-6)");
            }
            printf("按任意键继续......\n");
            getch();
            system("cls");
                 
        }
        getch();
        return 0;
    }
     
    int menu()
    {
        printf("       *学生信息管理系统*    \n");
        printf("1、插入学生信息\n");
        printf("2、查找学生信息(按学号)\n");
        printf("3、查找学生信息(按姓名)\n");
        printf("4、修改学生信息\n");
        printf("5、删除学生信息\n");
        printf("6、显示学生信息\n");
        printf("0、退出系统\n");
        printf("__________________________\n");
        printf("请选择(0-6):");
        
        
    }
     
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月7日
  • 已采纳回答 1月30日
  • 创建了问题 1月19日

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向