问题描述
- C语言课程设计---商品订购系统 调试
-
#include
#includeint 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("nnnnnn"); 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("nntt请输入你的操作(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("nnnnnnnn"); printf("nnttt欢迎使用本系统nnnnnttt欢迎再次使用n"); } }while(1); return 0;
}
//浏览商品
void scanproduct()
{
int i;
printf("ttttt商品信息列表n");
for (i = 0; i < inumber; i++)
{
printf("名称 : %sn",a[i].name);
printf("货号 : %dn",a[i].number);
printf("厂家 : %sn",a[i].vender);
printf("产地 : %sn",a[i].filed);
printf("存量 : %dn",a[i].stock);
printf("单价 : %.2lfnnn",a[i].price);
}
printf("nnnnnnttt");
printf("返回主菜单n");
printf("ttt"); //每个/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("tttt商品信息列表n"); //显示商品的名称、货号信息,以便于订购 printf("名称t 货号t 库存n"); for (i = 0; i < inumber; i++) { printf("%st %dt %dnnn",a[i].name,a[i].number,a[i].stock); } printf("nnn"); printf("tttt商品订单n"); printf("nttt请输入你的第%d个订单信息:n",m + 1); printf("nttt货号:"); 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("nttt订购量:"); fflush(stdin); scanf("%d",&b[ibuy].bmany); if (a[t].stock >= b[ibuy].bmany) { a[t].stock = a[t].stock - b[ibuy].bmany; //顾客购买后商品的库存计算 printf("nttt日期时间:"); fflush(stdin); scanf("%d",&b[ibuy].btime); printf("nttt客户名:"); fflush(stdin); gets(b[ibuy].bname); printf("nttt客户地址:"); fflush(stdin); gets(b[ibuy].baddress); printf("nttt客户号:"); printf("%dn",b[ibuy].bnumber); ibuy++; m++; printf("nnntttt"); } else { printf("nnttt订购数目超出库存n"); printf("ttt"); } } //若没有商品的提示及操作 else { printf("nnttt查无此货n"); printf("ttt"); } 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("ttttt订单列表n");
for (i = 0; i < ibuy; i++)
{
printf("货号 : %dn",b[i].bgname);
printf("订购量 : %dn",b[i].bmany);
printf("日期时间 : %dn",b[i].btime);
printf("客户名 : %sn",b[i].bname);
printf("客户地址 : %sn",b[i].baddress);
printf("客户号 : %dnnn",b[i].bnumber);
}
printf("nnnnnnttt");
printf("返回主菜单n");
printf("ttt");
return;
}//增加商品
void addproduct(){
char ch;
int i=1;
int n = 1;do { switch(n) { case 1: printf("tttt商品信息的增加n"); printf("ttttt注:要重新输入已有及增加的商品n"); printf("nttt请输入你的第%d件商品的信息:n",i); printf("nttt名称:"); fflush(stdin); scanf("%s",a[inumber].name); printf("nttt货号:"); fflush(stdin); scanf("%d",&a[inumber].number); printf("nttt厂家:"); fflush(stdin); scanf("%s",a[inumber].vender); printf("nttt产地:"); fflush(stdin); scanf("%s",a[inumber].filed); printf("nttt存量:"); fflush(stdin); scanf("%d",&a[inumber].stock); printf("nttt单价:"); 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("tttt商品列表n"); //显示商品的名称、货号信息,以便于下部的删除 for (i = 0; i < inumber; i++) { printf("名称 : %sn",a[i].name); printf("ID : %dn",i); printf("库存 : %dnnn",a[i].stock); } //商品的搜索 printf("nnntttt请输入你要删除商品的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("nnnnnnttt"); printf("返回附加功能菜单n"); printf("ttt"); return;
}
//商品信息的保存
void saveproduct()
{
FILE *fpgoods;
int i;fpgoods = fopen("goodsinfo.out","w"); fprintf(fpgoods,"tttttt商品信息列表n"); //商品信息的录入 for (i = 0; i < inumber; i++) { fprintf(fpgoods,"名称: %sn",a[i].name); fprintf(fpgoods,"货号: %dn",a[i].number); fprintf(fpgoods,"厂家: %sn",a[i].vender); fprintf(fpgoods,"产地: %sn",a[i].filed); fprintf(fpgoods,"存量: %dn",a[i].stock); fprintf(fpgoods,"单价: %.2lfnnn",a[i].price); } fclose(fpgoods); printf("nnnnnntttt商品信息保存成功!!!n"); printf("tttt"); return;
}
//订单的保存信息
void savedinggou()
{
FILE *fpgoods;
int i;fpgoods = fopen("bookrecordinfo.out","w"); fprintf(fpgoods,"tttttt订单列表n"); //商品信息的录入 for (i = 0; i < ibuy; i++) { fprintf(fpgoods,"货号 :%dn",b[i].bgname); fprintf(fpgoods,"订购量 :%dn",b[i].bmany); fprintf(fpgoods,"日期时间 :%dn",b[i].btime); fprintf(fpgoods,"客户名 :%sn",b[i].bname); fprintf(fpgoods,"客户地址 :%sn",b[i].baddress); fprintf(fpgoods,"客户号 :%dnnn",b[i].bnumber); } fclose(fpgoods); //保存后信息的反馈 printf("nnnnnntttt信息保存成功!!!n"); printf("tttt"); return;
}
解决方案
请问你有啥问题,贴了这么一大段的程序。。。
解决方案二:
C语言用来干这个,有点鸡肋了。