商品订购系统设计完整代码(16页).doc
-#include <stdio.h>#include <windows.h>#include <string.h>#include <assert.h>#include <stdlib.h>int bgnumber = 023; /客户号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 productchar name30;/商品名int number;/货号char vender30;/厂家char filed100;/产地int stock;/存量double unvalent;/单价;struct product a100;struct dinggou int bgname; /货号int bmany; /订购量int btime; /日期时间char bname100; /客户名char baddress100; /客户地址int bnumber; /客户号;struct dinggou b100;int main(void)int i;wenbenload();dosystem("cls");printf("nnnnnn");printf("*欢迎使用商品订购系统v1.0*n");printf(" 作者: 计科1102 姚茂源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请输入你的操作(05): ");scanf("%d",&i); switch(i)case 1: system("cls");scanproduct(); break;case 2: system("cls"); dinggou(); break;case 3: system("cls");lookdinggou();break;case 4: searchproduct();break;case 5: secondmain();break;case 0: /退出系统的界面system("cls");printf("nnnnnnnn"); printf("nnttt欢迎使用本系统nnnnnttt欢迎再次使用n");exit(0); /exit用于在程序运行的过程中随时结束程序 while(1); return 0;/浏览商品void scanproduct()int i;system("cls");printf("ttttt商品信息列表n"); for (i = 0; i < inumber; i+)printf("名称 : %sn",ai.name);printf("货号 : %dn",ai.number);printf("厂家 : %sn",ai.vender);printf("产地 : %sn",ai.filed);printf("存量 : %dn",ai.stock);printf("单价 : %.2lfnnn",ai.unvalent);printf("nnnnnnttt");printf("返回主菜单n");printf("ttt");system("pause");return;/商品的订购void dinggou() char ch;int i, j, t, c = 1;int n = 1;int m = 0;doswitch(n)case 1:system("cls");printf("tttt商品信息列表n");/显示商品的名称、货号信息,以便于订购printf("名称t 货号t 库存n");for (i = 0; i < inumber; i+)printf("%st %dt %dnnn",ai.name,ai.number,ai.stock);printf("nnn");printf("tttt商品订单n");printf("nttt请输入你的第%d个订单信息:n",m + 1);printf("nttt货号:");fflush(stdin);scanf("%d",&bibuy.bgname);/检测是否含有此商品j = 1;for (i = 0; i < inumber; i+)if(ai.number = bibuy.bgname)j = 0;t = i;/若有商品继续购买项目if(j = 0)printf("nttt订购量:");fflush(stdin);scanf("%d",&bibuy.bmany);if (at.stock >= bibuy.bmany)at.stock = at.stock - bibuy.bmany; /顾客购买后商品的库存计算printf("nttt日期时间:");fflush(stdin);scanf("%d",&bibuy.btime);printf("nttt客户名:");fflush(stdin);gets(bibuy.bname);printf("nttt客户地址:");fflush(stdin);gets(bibuy.baddress);printf("nttt客户号:");bibuy.bnumber = bgnumber;printf("%dn",bibuy.bnumber);bgnumber+;ibuy+;m+;printf("nnntttt");system("pause");elseprintf("nnttt订购数目超出库存n");printf("ttt");system("pause");/若没有商品的提示及操作elseprintf("nnttt查无此货n");printf("ttt");system("pause");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');system("cls");return ;/订单的查询void lookdinggou() int i;system("cls");printf("ttttt订单列表n"); for (i = 0; i < ibuy; i+)printf("货号 : %dn",bi.bgname);printf("订购量 : %dn",bi.bmany);printf("日期时间 : %dn",bi.btime);printf("客户名 : %sn",bi.bname);printf("客户地址 : %sn",bi.baddress);printf("客户号 : %dnnn",bi.bnumber);printf("nnnnnnttt");printf("返回主菜单n");printf("ttt");system("pause");return;/增加商品void addproduct() char ch; int i=1;int n = 1;do switch(n)case 1:system("cls");printf("tttt商品信息的增加n");printf("ttttt注:要重新输入已有及增加的商品n");printf("nttt请输入你的第%d件商品的信息:n",i);printf("nttt名称:");fflush(stdin);scanf("%s",ainumber.name);printf("nttt货号:");fflush(stdin);scanf("%d",&ainumber.number);printf("nttt厂家:");fflush(stdin);scanf("%s",ainumber.vender);printf("nttt产地:");fflush(stdin);scanf("%s",ainumber.filed);printf("nttt存量:");fflush(stdin);scanf("%d",&ainumber.stock);printf("nttt单价:");fflush(stdin);scanf("%lf",&ainumber.unvalent);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;doswitch(n)case 1:system("cls");printf("tttt商品列表n");/显示商品的名称、货号信息,以便于下部的删除for (i = 0; i < inumber; i+)printf("名称 : %sn",ai.name);printf("ID : %dn",i);printf("库存 : %dnnn",ai.stock);/商品的搜索printf("nnntttt请输入你要删除商品的ID:");scanf("%d",&j);i = j;while(i < inumber - 1)strcpy(ai.name, ai + 1.name); ai.number = ai + 1.number; strcpy(ai.filed, ai + 1.filed); ai.stock = ai + 1.stock; ai.unvalent = ai + 1.unvalent;strcpy(ai.vender, ai + 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");system("pause");return;/商品信息的保存void saveproduct()FILE *fpgoods;int i;fpgoods = fopen("goodsinfo.out","w");assert(fpgoods != NULL); fprintf(fpgoods,"tttttt商品信息列表n");/商品信息的录入for (i = 0; i < inumber; i+)fprintf(fpgoods,"名称: %sn",ai.name);fprintf(fpgoods,"货号: %dn",ai.number);fprintf(fpgoods,"厂家: %sn",ai.vender);fprintf(fpgoods,"产地: %sn",ai.filed);fprintf(fpgoods,"存量: %dn",ai.stock);fprintf(fpgoods,"单价: %.2lfnnn",ai.unvalent);fclose(fpgoods);system("cls");printf("nnnnnntttt商品信息保存成功!n");printf("tttt");system("pause");return;/订单的保存信息void savedinggou()FILE *fpgoods;int i;fpgoods = fopen("bookrecordinfo.out","w");assert(fpgoods != NULL);fprintf(fpgoods,"tttttt订单列表n");/商品信息的录入for (i = 0; i < ibuy; i+)fprintf(fpgoods,"货号 :%dn",bi.bgname);fprintf(fpgoods,"订购量 :%dn",bi.bmany);fprintf(fpgoods,"日期时间 :%dn",bi.btime);fprintf(fpgoods,"客户名 :%sn",bi.bname);fprintf(fpgoods,"客户地址 :%sn",bi.baddress);fprintf(fpgoods,"客户号 :%dnnn",bi.bnumber);fclose(fpgoods);/保存后信息的反馈system("cls");printf("nnnnnntttt信息保存成功!n");printf("tttt");system("pause");return; /管理维护子菜单void secondmain()int i;dosystem("cls");printf("nnnnnnn");printf("*管理维护子菜单*nn");printf(" n");printf(" 1.输入全部商品 n");printf(" 2.增加商品 n");printf(" 3.删除商品 n");printf(" 4.储存商品 n");printf(" 5.储存订单 n");printf(" 0.返回上一级 n");printf(" nnn");printf("*nnnnn");printf("nntt请输入你所要选择的功能(05): ");scanf("%d",&i); switch(i)case 1: system("cls");jianpanload ();break;case 2: system("cls"); addproduct(); break;case 3: system("cls"); deleteproduct(); break;case 4: system("cls"); saveproduct(); break;case 5: system("cls"); savedinggou(); break;case 0: system("cls");return ; while(1);printf("tttt");system("pause");system("cls");return;/从键盘输入商品void jianpanload()char ch;int n = 1;inumber = 0;do switch(n)case 1: /商品的录入system("cls");printf("tttt请重新输入全部商品信息n");printf("nttt请输入第%d件商品的信息:n",inumber + 1);printf("nttt名称:");fflush(stdin);gets(ainumber.name);printf("nttt货号:");fflush(stdin);scanf("%d",&ainumber.number);printf("nttt厂家:");fflush(stdin);gets(ainumber.vender);printf("nttt产地:");fflush(stdin);gets(ainumber.filed);printf("nttt存量:");fflush(stdin);scanf("%d",&ainumber.stock);printf("nttt单价:");fflush(stdin);scanf("%lf",&ainumber.unvalent);inumber+;fflush(stdin);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 wenbenload()FILE *fp;char ch30;double dou;int in;int i = 0;inumber = 0;fp = fopen("goodsinfo.out","r");assert(fp); /从文件中导入商品信息fscanf(fp,"%s",&ch);while(fscanf(fp,"%s",&ch) != EOF)fscanf(fp, "%s", &ch);strcpy(ainumber.name, ch);fscanf(fp,"%s",&ch);fscanf(fp,"%d",&in);ainumber.number = in;fscanf(fp,"%s",&ch);fscanf(fp,"%s",&ch);strcpy(ainumber.vender, ch);fscanf(fp,"%s",&ch);fscanf(fp,"%s",&ch);strcpy(ainumber.filed, ch);fscanf(fp,"%s",&ch);fscanf(fp,"%d",&in);ainumber.stock = in;fscanf(fp,"%s",&ch);fscanf(fp,"%lf",&dou);ainumber.unvalent = dou;inumber+;fclose (fp);return;/搜索商品void searchproduct()int i;int j;char ch;int n = 1;doswitch(n)case 1:system("cls");printf("tttt商品列表n");/显示商品的名称、货号信息,以便于下部的删除for (i = 0; i < inumber; i+)printf("名称 : %sn",ai.name);printf("ID : %dn",i);printf("库存 : %dnnn",ai.stock);/商品的搜索printf("nnntttt请输入你要搜索商品的ID:");scanf("%d",&j);if(0<=j&&j<=inumber)printf("名称 : %sn",aj.name);printf("货号 : %dn",aj.number);printf("厂家 : %sn",aj.vender);printf("产地 : %sn",aj.filed);printf("存量 : %dn",aj.stock);printf("单价 : %.2lfnnn",aj.unvalent);case 2:printf("是否继续搜索商品?(Y/N)");fflush(stdin);scanf("%c",&ch);if(ch = 'N'| ch = 'n')break;if(ch =' Y'| ch = 'y')n = 1;break;while(ch != 'n' && ch != 'N');printf("nnnnnnttt");printf("返回主菜单!n");printf("ttt");system("pause");return;-第 16 页-