qq_24897143 2014-12-31 07:24 采纳率: 0%
浏览 2671

C语言课程设计---商品订购系统 调试

#include
#include

int inumber = 0; //商品量的统计
int ibuy = 0; //订单的统计

void secondmain(); //管理维护子菜单
void jianpanload(); //输入商品
void scanproduct(); //浏览商品
void searchproduct(); //搜索商品
void dinggou(); //订购商品
void lookdinggou(); //查询订单
void addproduct(); //增加商品
void deleteproduct(); //删除商品
void saveproduct(); //保存商品
void savedinggou(); //保存订单
void wenbenload(); //从文本导入商品

struct product
{
char name[30]; //商品名
int number; //货号
char vender[30]; //厂家
char filed[100]; //产地
int stock; //存量
double price; //单价
};
struct product a[100];

struct dinggou

{
int bgname; //货号
int bmany; //订购量
int btime; //日期时间
char bname[100]; //客户名
char baddress[100]; //客户地址
int bnumber; //客户号
};
struct dinggou b[100];

int main(void)
{

int i;
wenbenload();
do
{
printf("\n\n\n\n\n\n");
printf("**************************欢迎使用商品订购系统v1.0******************************\n");
printf("                ┏━━━━━━━━━━━━━━━━━━━┓\n");
printf("                ┃             1.浏览商品信息           ┃\n");
printf("                ┃             2.订购商品               ┃\n");
printf("                ┃             3.订单查询               ┃\n");
printf("                ┃             4.搜索商品               ┃\n");
printf("                ┃             5.管理菜单               ┃\n");
printf("                ┃             0.退出系统               ┃\n");
printf("                ┗━━━━━━━━━━━━━━━━━━━┛\n");
printf("********************************************************************************\n");

    printf("\n\n\t\t请输入你的操作(0~5): ");

    scanf("%d",&i);                    
    switch(i)
    {
    case 1:                          
        scanproduct();
        break;
    case 2:                          
        dinggou();
        break;
    case 3:                          
        lookdinggou();
        break;
    case 4:                          
        searchproduct();
        break;
    case 5:                          
        secondmain();
        break;      

    case 0:                            //退出系统的界面
        printf("\n\n\n\n\n\n\n\n");
        printf("\n\n\t\t\t欢迎使用本系统\n\n\n\n\n\t\t\t欢迎再次使用\n");
            }        
}while(1);                             

return 0;

}

//浏览商品
void scanproduct()
{
int i;
printf("\t\t\t\t\t商品信息列表\n");
for (i = 0; i < inumber; i++)
{
printf("名称 : %s\n",a[i].name);
printf("货号 : %d\n",a[i].number);
printf("厂家 : %s\n",a[i].vender);
printf("产地 : %s\n",a[i].filed);
printf("存量 : %d\n",a[i].stock);
printf("单价 : %.2lf\n\n\n",a[i].price);
}
printf("\n\n\n\n\n\n\t\t\t");
printf("返回主菜单\n");
printf("\t\t\t"); //每个/t占8个字节,可理解为空格键
return;
}

//商品的订购
void dinggou()

{
char ch;
int i, j, t, c = 1;
int n = 1;
int m = 0;

do
{
    switch(n)
    {
    case 1:
        printf("\t\t\t\t商品信息列表\n");
        //显示商品的名称、货号信息,以便于订购
        printf("名称\t  货号\t 库存\n");
        for (i = 0; i < inumber; i++)
        {
            printf("%s\t   %d\t  %d\n\n\n",a[i].name,a[i].number,a[i].stock);

        }
        printf("\n\n\n");

        printf("\t\t\t\t商品订单\n");
        printf("\n\t\t\t请输入你的第%d个订单信息:\n",m + 1);
        printf("\n\t\t\t货号:");
        fflush(stdin);
        scanf("%d",&b[ibuy].bgname);
        //检测是否含有此商品
        j = 1;
        for (i = 0; i < inumber; i++)
        {
            if(a[i].number == b[ibuy].bgname)
            {
                j = 0;
                t = i;
            }
        }
        //若有商品继续购买项目
        if(j == 0)
        {
            printf("\n\t\t\t订购量:");
            fflush(stdin);
            scanf("%d",&b[ibuy].bmany);
            if (a[t].stock >= b[ibuy].bmany)
            {
                a[t].stock = a[t].stock - b[ibuy].bmany;       //顾客购买后商品的库存计算
                printf("\n\t\t\t日期时间:");
                fflush(stdin);  
                scanf("%d",&b[ibuy].btime);
                printf("\n\t\t\t客户名:");
                fflush(stdin);
                gets(b[ibuy].bname);
                printf("\n\t\t\t客户地址:");
                fflush(stdin);  
                gets(b[ibuy].baddress);
                printf("\n\t\t\t客户号:");
                printf("%d\n",b[ibuy].bnumber);
                ibuy++;
                m++;
                printf("\n\n\n\t\t\t\t");
            }
            else
            {
                printf("\n\n\t\t\t订购数目超出库存\n");
                printf("\t\t\t");
            }

        }
        //若没有商品的提示及操作
        else
        {
            printf("\n\n\t\t\t查无此货\n");

            printf("\t\t\t");
        }


    case 2: 
        printf("是否继续输入订购?(Y/N)");
        fflush(stdin);
        scanf("%c",&ch);
        if(ch == 'N' || ch == 'n')
        {
            c = 0;
            break;
        }
        else if(ch == 'Y' || ch == 'y')
        {
            c = 0;
            n = 1;
            break;
        }
        else if(ch != 'n' || ch != 'N' || ch != 'Y' || ch != 'y')
        {
            n = 0;
            c = 1;
            break;
        }

    case 0:
        if(c == 1)
        {
            n = 2;  
        }
    }

}while(ch != 'n' && ch != 'N');

return ;    

}

//订单的查询
void lookdinggou()

{
int i;
printf("\t\t\t\t\t订单列表\n");
for (i = 0; i < ibuy; i++)
{
printf("货号 : %d\n",b[i].bgname);
printf("订购量 : %d\n",b[i].bmany);
printf("日期时间 : %d\n",b[i].btime);
printf("客户名 : %s\n",b[i].bname);
printf("客户地址 : %s\n",b[i].baddress);
printf("客户号 : %d\n\n\n",b[i].bnumber);
}
printf("\n\n\n\n\n\n\t\t\t");
printf("返回主菜单\n");
printf("\t\t\t");
return;
}

//增加商品
void addproduct()

{
char ch;
int i=1;
int n = 1;

do 
{
    switch(n)
    {
    case 1:
        printf("\t\t\t\t商品信息的增加\n");
        printf("\t\t\t\t\t注:要重新输入已有及增加的商品\n");
        printf("\n\t\t\t请输入你的第%d件商品的信息:\n",i);
        printf("\n\t\t\t名称:");
        fflush(stdin);
        scanf("%s",a[inumber].name);
        printf("\n\t\t\t货号:");
        fflush(stdin);
        scanf("%d",&a[inumber].number);
        printf("\n\t\t\t厂家:");
        fflush(stdin);
        scanf("%s",a[inumber].vender);
        printf("\n\t\t\t产地:");
        fflush(stdin);
        scanf("%s",a[inumber].filed);
        printf("\n\t\t\t存量:");
        fflush(stdin);
        scanf("%d",&a[inumber].stock);
        printf("\n\t\t\t单价:");
        fflush(stdin);
        scanf("%lf",&a[inumber].price);
        i++;
        inumber++;

    case 2:
        printf("是否继续输入记录?(Y/N)");
        fflush(stdin);
        scanf("%c",&ch);
        if(ch == 'N' || ch ==' Y'|| ch == 'n'|| ch == 'y')
        {
            break;
        }
        if(ch ==' Y'|| ch == 'y')
        {
            n = 1;
            break;
        }

    case 0:         
        printf("是否继续输入记录?(Y/N)");
        fflush(stdin);
        scanf("%c",&ch);
        n = 2;  
    }   
}while(ch != 'n' && ch != 'N');

return;

}

//删除商品
void deleteproduct()
{
int i;
int j;
char ch;
int n = 1;

do
{   
    switch(n)
    {
    case 1:
        printf("\t\t\t\t商品列表\n");
        //显示商品的名称、货号信息,以便于下部的删除   
        for (i = 0; i < inumber; i++)
        {
            printf("名称 :  %s\n",a[i].name);
            printf("ID :  %d\n",i);
            printf("库存 :  %d\n\n\n",a[i].stock);
        }

        //商品的搜索
        printf("\n\n\n\t\t\t\t请输入你要删除商品的ID:");
        scanf("%d",&j);
        i = j;
        while(i < inumber - 1)
        {
            strcpy(a[i].name, a[i + 1].name);             
            a[i].number = a[i + 1].number;                   
            strcpy(a[i].filed, a[i + 1].filed);                     
            a[i].stock = a[i + 1].stock;                     
            a[i].price = a[i + 1].price;
            strcpy(a[i].vender, a[i + 1].vender);
            i++;
        }
        inumber--;
    case 2:
        printf("是否继续删除商品?(Y/N)");
        fflush(stdin);
        scanf("%c",&ch);
        if(ch == 'N' || ch ==' Y'|| ch == 'n'|| ch == 'y')
        {
            break;
        }
        if(ch ==' Y'|| ch == 'y')
        {
            n = 1;
            break;
        }
    case 0:

        printf("是否继续输入记录?(Y/N)");
        fflush(stdin);
        scanf("%c",&ch);
        n = 2;      
    }
}while(ch != 'n' && ch != 'N');

printf("\n\n\n\n\n\n\t\t\t");
printf("返回附加功能菜单\n");
printf("\t\t\t");
return;

}

//商品信息的保存
void saveproduct()
{
FILE *fpgoods;
int i;

fpgoods = fopen("goodsinfo.out","w");

fprintf(fpgoods,"\t\t\t\t\t\t商品信息列表\n");
//商品信息的录入
for (i = 0; i < inumber; i++)
{
    fprintf(fpgoods,"名称: %s\n",a[i].name);
    fprintf(fpgoods,"货号: %d\n",a[i].number);
    fprintf(fpgoods,"厂家: %s\n",a[i].vender);
    fprintf(fpgoods,"产地: %s\n",a[i].filed);
    fprintf(fpgoods,"存量: %d\n",a[i].stock);
    fprintf(fpgoods,"单价: %.2lf\n\n\n",a[i].price);
}       

fclose(fpgoods);


printf("\n\n\n\n\n\n\t\t\t\t商品信息保存成功!!!\n");
printf("\t\t\t\t");

return;

}

//订单的保存信息
void savedinggou()
{
FILE *fpgoods;
int i;

fpgoods = fopen("bookrecordinfo.out","w");

fprintf(fpgoods,"\t\t\t\t\t\t订单列表\n");
//商品信息的录入
for (i = 0; i < ibuy; i++)
{
    fprintf(fpgoods,"货号 :%d\n",b[i].bgname);
    fprintf(fpgoods,"订购量 :%d\n",b[i].bmany);
    fprintf(fpgoods,"日期时间 :%d\n",b[i].btime);
    fprintf(fpgoods,"客户名 :%s\n",b[i].bname);
    fprintf(fpgoods,"客户地址 :%s\n",b[i].baddress);
    fprintf(fpgoods,"客户号 :%d\n\n\n",b[i].bnumber);
}       

fclose(fpgoods);

//保存后信息的反馈
printf("\n\n\n\n\n\n\t\t\t\t信息保存成功!!!\n");
printf("\t\t\t\t");

return;

}

  • 写回答

3条回答 默认 最新

  • shiter 人工智能领域优质创作者 2015-01-01 04:17
    关注

    请问你有啥问题,贴了这么一大段的程序。。。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器