m0_65440433 2022-03-29 22:54 采纳率: 33.3%
浏览 22

为啥车辆删除系统中,无法删除座位数4的所有信息,只能删除部分;为啥在车辆修改系统中,只能修改车牌号10001的数据,例如10002不能(标签-ar|关键词-#include)

删除车辆和师生信息:将满足条件的车辆信息删除,包括按班车状态、车辆型号删除;

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxSize1 99
#define MaxSize2 99

//车辆信息
struct Car0
{    
    int id1;//车辆序号
    char name1[20];//车名
    int seat1;//座位
    char color1[20];//颜色
    int number1;//车牌号
    int state1;//状态
}Carr[MaxSize1]={{101,"Audi",4,"white",10001,0},{102,"Audi",5,"white",10002,0},{103,"Benz",4,"black",10003,0},{104,"Audi",7,"white",10004,0},{105,"Toyota",4,"red",10005,0},{106,"Toyota",4,"red",10006,0},{107,"Toyota",5,"green",10007,0},{108,"Ford",4,"pink",10008,0},{109,"Ford",6,"black",10009,0},{110,"BMW",4,"pink",10010,0},{111,"BMW",4,"white",10011,0},{112,"BMW",4,"red",10012,0},{113,"Ferrari",8,"pink",10013,0},{114,"Ferrari",7,"black",10014,0},{115,"Ferrari",8,"green",10015,0}};//定义车辆初始化


//乘坐信息
struct People0
{
    int id2;//师生序号
    char name2[99];//姓名
    int number2;//学号工号
    char type2[99];//院系
    char time2[99];//乘坐时间
}Peo[MaxSize2];

//主函数
int main()
{
    void Car1();
    void People1();
    int a;
    while(true)//循环主界面
    {
    printf("1.车辆信息\n2.乘坐信息\n0.退出系统\n");//输出界面
    scanf("%d",&a);//输入选项
    switch(a)
    {
    case 1:Car1();break;//车辆信息
    case 2:People1();break;//乘坐信息
    case 0:printf("已退出\n");//退出程序
        system("pause");//暂停页面
        exit(0);
        break;
    default:printf("请重新输入。\n");break;//其他则重新输入
    }
    }
    return 0;
}



//车辆信息菜单
void Car1()
{
    void Insert1(int *);//声明插入系统
    void Search1(int);//声明查询系统
    void Update1(int);//声明修改系统
    void Delete1(int*);//声明删除系统
    void Show1(int);//声明显示系统
    int b1;
    int count=15;
    while(true)//循环第二级菜单
    {
    printf("1.录入\n");
    printf("2.查询\n");
    printf("3.修改\n");
    printf("4.删除\n");
    printf("5.显示\n");
    printf("6.返回\n");
    scanf("%d",&b1);
    switch(b1)
    {

        case 1:Insert1(&count);break;//插入系统
        case 2:Search1(count);break;//查询系统
        case 3:Update1(count);break;//修改系统
        case 4:Delete1(&count);break;//删除系统
        case 5:Show1(count);break;//显示系统
        case 6:break;
        default:printf("请重新输入。");break;
    }
    }
}

//师生信息菜单
void People1()
{
    void Insert2(int *);//声明插入系统
    void Search2(int);//声明查询系统
    void Update2(int);//声明修改系统
    void Delete2(int*);//声明删除系统
    void Show2(int);//声明显示系统
    int b1;
    int cou=0;
    while(true)//循环第二级菜单
    {
    printf("1.录入\n");
    printf("2.查询\n");
    printf("3.修改\n");
    printf("4.删除\n");
    printf("5.显示\n");
    printf("6.返回\n");
    scanf("%d",&b1);
    switch(b1)
    {

        case 1:Insert2(&cou);break;//插入系统
        case 2:Search2(cou);break;//查询系统
        case 3:Update2(cou);break;//修改系统
        case 4:Delete2(&cou);break;//删除系统
        case 5:Show2(cou);break;//显示系统
        case 6:break;
        default:printf("请重新输入。");break;
    }
    }
}

//车辆插入系统
void Insert1(int *count)
{
    int i,in_number;
    if(*count==MaxSize1)//验证是否满内存
    {
        printf("空间已满\n");
        return;
    }
    printf("请输入编号");
    scanf("%d",&in_number);//输入编号
    for(i=0;i<*count;i++)//检索编号
        if(Carr[i].number1==in_number)//验证号码是否相同
        {
            printf("已经有相同号码\n");//不对则返回
            return;
        }

        Carr[i].number1 =in_number;//编号写入
        printf("请输入车名");
        scanf("%s",Carr[i].name1);//输入车名
            printf("请输入车辆ID");
        scanf("%d",&Carr[i].id1);//输入编号
                printf("请输入颜色");
        scanf("%s",Carr[i].color1);//输入颜色
                printf("请输入座位数");
        scanf("%d",&Carr[i].seat1);//输入座位数
                printf("请输入状态,0为空闲,其余为工作中");
        scanf("%d",&Carr[i].state1);//输入状态
        (*count)++;
}

//师生插入系统
void Insert2(int *cou)
{
    int c,in_num;
    if(*cou==MaxSize2)//验证是否满内存
    {
        printf("空间已满\n");
        return;
    }
    printf("请输入编号");
    scanf("%d",&in_num);//输入编号
    for(c=0;c<*cou;c++)//检索编号
        if(Peo[c].number2==in_num)//验证号码是否相同
        {
            printf("已经有相同号码\n");//不对则返回
            return;
        }
        Peo[c].number2 =in_num;//编号写入
        printf("请输入车名");
        scanf("%s",Peo[c].name2);//输入师生名
            printf("请输入乘车人ID");
        scanf("%d",&Peo[c].id2);//输入编号
                printf("请输入颜色");
        scanf("%s",Peo[c].type2 );//输入院系
                printf("请输入座位数");
        scanf("%s",&Peo[c].time2);//输入时间
        (*cou)++;
}

//车辆查询系统
void Search1(int count)
{
    int i,temp;
    printf("请输入可查询的信息。例:车牌号,ID,座位数\n");
    scanf("%d",&temp);
    for(i=0;i<count;i++)//循环检索
        if(Carr[i].number1==temp||Carr[i].id1==temp||Carr[i].seat1==temp)
        {
            printf("\n车牌号:%d\n",Carr[i].number1 );
            printf("车名:%s\n",Carr[i].name1 );
            printf("颜色:%s\n",Carr[i].color1);
            printf("ID:%d\n",Carr[i].id1 );
            printf("座位:%d\n",Carr[i].seat1 );
            printf("状态:%d\n",Carr[i].state1);
        }
        if(i=count)
        {
            printf("\n输出完毕\n");
            system("pause");//暂停页面
        }
}

//师生查询系统
void Search2(int cou)
{
    int i,temp;
    printf("请输入可查询的信息。例:学号工号,ID\n");
    scanf("%d",&temp);
    for(i=0;i<cou;i++)//循环检索
        if(Peo[i].number2==temp||Peo[i].id2==temp)
        {
            printf("\nID:%d\n",Peo[i].id2);
            printf("学号工号:%d\n",Peo[i].number2);
            printf("姓名:%s\n",Peo[i].name2 );
            printf("时间:%s\n",Peo[i].time2);
            printf("学院:%s\n",Peo[i].type2);
        }
        if(i=cou)
        {
            printf("\n输出完毕\n");
            system("pause");//暂停页面
        }
}

//车辆修改系统
void Update1(int count)
{
    int i,temp,flag=1,a;
    printf("请输入您要修改数据的车牌号\n");
    scanf("%d",&temp);
    for(i=0;i<count&&flag;i++)
    {
        if(Carr[i].number1==temp)
    {
        printf("车牌号:%d\n",Carr[i].number1 );
        printf("车名:%s\n",Carr[i].name1 );
        printf("颜色:%s\n",Carr[i].color1);
        printf("ID:%d\n",Carr[i].id1 );
        printf("座位:%d\n",Carr[i].seat1 );
        printf("状态:%d\n\n\n\n",Carr[i].state1);
        printf("请输入您要修改的项目\n");
        printf("1.车牌号\n");
        printf("2.车ID\n");
        printf("3.车名\n");
        printf("4.颜色\n");
        printf("5.座位数\n");
        printf("6.状态\n");
        scanf("%d",&a);
        switch(a)//选择要修改的东西
        {
            case 1:scanf("%d\n",&Carr[i].number1);flag=0;printf("输入0退出系统");break;
            case 2:scanf("%d\n",&Carr[i].id1 );flag=0;printf("输入0退出系统");break;
            case 3:scanf("%s\n",Carr[i].name1 );flag=0;printf("输入0退出系统");break;
            case 4:scanf("%s\n",Carr[i].color1 );flag=0;printf("输入0退出系统");break;
            case 5:scanf("%d\n",&Carr[i].seat1 );flag=0;printf("输入0退出系统");break;
            case 6:scanf("%d\n",&Carr[i].state1 );flag=0;printf("输入0退出系统");break;
        }
        
    }
        if(i=count)
            printf("\n没有可修改的数据\n");
    }
        
}


//师生修改系统
void Update2(int cou)
{
    int i,temp,flag=1,a;
    printf("请输入您要修改数据的车牌号\n");
    scanf("%d",&temp);
    for(i=0;i<cou&&flag;i++)
    {
        if(Peo[i].number2==temp)
        {
        printf("%d.\n",a);
        printf("ID:%d\n",Peo[i].id2);
        printf("姓名:%d\n",Peo[i].number2);
        printf("学号工号:%s\n",Peo[i].name2 );
        printf("时间:%s\n",Peo[i].time2);
        printf("学院:%s\n\n\n\n",Peo[i].type2);
        printf("请输入您要修改的项目\n");
        printf("1.ID\n");
        printf("2.姓名\n");
        printf("3.学号工号\n");
        printf("4.时间\n");
        printf("5.是否运营,0为空闲,其余为工作中\n");
        scanf("%d",&a);
        switch(a)//选择要修改的东西
        {
            case 1:scanf("%d",&Peo[i].id2  );flag=0;printf("输入0退出系统");break;
            case 2:scanf("%d",&Peo[i].name2 );flag=0;printf("输入0退出系统");break;
            case 3:scanf("%s",Peo[i].number2 );flag=0;printf("输入0退出系统");break;
            case 4:scanf("%s",Peo[i].time2 );flag=0;printf("输入0退出系统");break;
            case 5:scanf("%d",&Peo[i].type2  );flag=0;printf("输入0退出系统");break;
        }
        }
        if(i=cou)
            printf("\n没有可修改的数据\n");
    }
}



//车辆删除系统

void Delete1(int * count)
{
    int i,j,temp,flag=0;
    printf("请输入可以删除的数据");
    scanf("%d",&temp);
    for(i=0;i<*count;i++)
    {
        if(Carr[i].number1 ==temp||Carr[i].state1==temp||Carr[i].seat1 ==temp )
        {
            for(j=i;j<*count-1;j++)
                Carr[j]=Carr[j+1];
                (*count)--;
                flag++;//标记已经执行了一次
        }
        
    }
    if(flag==0)
        {
            printf("没有查询到可以删除的文件\n");
        }
}

//师生删除系统
void Delete2(int *cou)
{
    int i,j,number,flag=1;
    printf("请输入可以删除的数据");
    scanf("%d",&number);
    for(i=0;i<*cou&&flag;i++)
    {
        if(Peo[i].number2==number)
        {
            for(j=i;j<*cou-1;j++)
                Peo[j]=Peo[j+1];
                flag=0;
                (*cou)--;
        }
        else
        {
            printf("没有查询到可以删除的文件\n");
        }
    }
}

//车辆显示系统
void Show1 (int count)
{
    int i,a;
            for(i=0,a=1;i<count;i++,a++)
            {
            printf("%d.\n",a);
            printf("车牌号:%d\n",Carr[i].number1 );
            printf("车名:%s\n",Carr[i].name1 );
            printf("颜色:%s\n",Carr[i].color1);
            printf("ID:%d\n",Carr[i].id1 );
            printf("座位:%d\n",Carr[i].seat1 );
            printf("状态:%d\n\n\n\n",Carr[i].state1);
            }
}


//师生显示系统
void Show2(int cou)
{
    int i,a;
        for(i=0,a=1;i<cou;i++,a++)
        {
            printf("%d.\n",a);
            printf("ID:%d\n",Peo[i].id2);
            printf("姓名:%d\n",Peo[i].number2);
            printf("学号工号:%s\n",Peo[i].name2 );
            printf("时间:%s\n",Peo[i].time2);
            printf("学院:%s\n\n\n\n",Peo[i].type2);
        }
}


![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/602645565846110.png "#left")


  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2022-03-30 08:42
    关注

    263行 if(i=count)应该改为 if(i==count)
    还有多处这类型错误,比如301行

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 3月30日
  • 修改了问题 3月29日
  • 创建了问题 3月29日

悬赏问题

  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 写51单片机程序代码,代码好难,需要外部中断还有电子时钟的,还有按键修改电子时钟,请大家积极讨论
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme
  • ¥15 为什么我明明有这个文件调试器还显示错误?