1、用c编写的产品管理系统,含有产品录入和按价格范围搜索,产品信息修改等功能
#include
2、 Login(); //登陆 int Menu(); //主菜单 void Menu_select(); //查找菜单 void Init(); //系统初始化 void Insert_New_goods(); //输入产品信息 int Find(); //查找产品菜单 void Find_Select(); //查找菜单选择函数 void Find_goods(); //查找产品函数 void modiificat
3、ion_goods();//查找产品信息修改函数 void Save(); /*保存信息*/ void Load(); /*加载信息*/ void Login() /*登陆*/ { system("cls"); } int Menu() /*主菜单*/ { int sn; printf("\n\t\t产品管理系统主菜单\n"); printf("========================================
4、\n"); printf("*\t0----退出系统 *\n"); printf("*\t1----产品入库 *\n"); printf("*\t2---- 查询 *\n"); printf("*\t3----记录修改 *\n"); printf("=================================================\n"); printf("请选择相应选项:"); for(;;) { scanf("%d",&sn); fflush(stdin); if(sn<0||s
5、n>4) printf("\n错误!请重新输入:"); else break; } return sn; } void Menu_select() /*主菜单选择函数*/ { for(;;) /*循环调用模式,保证能进行重复操作*/ { switch(Menu()) /*功能选择*/ { case 0:
6、 system("cls"); /*清除屏幕先前的显示内容*/ Save(); printf("\n\n\t文件保存成功!\n"); printf("\n\n\t欢迎下次使用本系统!\n"); getchar(); exit(0); case 1:Insert_New_goods();break; case 2:Find_Select();break; case 3:modiification_goods();break; default
7、printf("\n错误!");exit(0); } } } void Init() /*初始化*/ { gd *p0; printf("\n产品初始化开始,请输入货物信息..\n包括编号.产品称名,生产厂家、生产日期、价格..\n"); p0=(gd*)malloc(sizeof(gd)); h_goods=p0; printf("\n请输入产品的信息:\n"); printf("goodsNo:"); /*输入产品编号(唯一)*/ scanf("%s",p0->goods_num
8、); printf("goodsName:"); /*输入产品名称(不唯一)*/ scanf("%s",p0->goods_name); printf("goodsproduct:"); /*输入产品生产厂家(唯一)*/ scanf("%s",p0->goods_product); printf("goodsbirth:"); /*输入产品生产日期(不唯一)*/ scanf("%d",&p0->goods_birth); printf("goods_price:"
9、); /*输入产品价格(不唯一)*/ scanf("%d",&p0->goods_price); p0->next=NULL; printf("\n产品信息初始化完毕!按任意键继续下一步操作..\n"); getchar(); system("cls"); } void Insert_New_goods()/*新产品入库*/ { gd *p,*p0,*p1; p=p1=h_goods; printf("\n新货入库模块...\n"); printf("\n请输入信息..\n包括请输入产品信
10、息..\n包括编号.产品称名,生产厂家、生产日期、价格\n"); p0=(gd *)malloc(sizeof(gd)); printf("goodsNo:"); scanf("%s",p0->goods_num); while(strcmp(p0->goods_num,p1->goods_num)!=0&&p1->next!=NULL) p1=p1->next; if(strcmp(p0->goods_num,p1->goods_num)==0) /*此处分两种情况,若产品存在,则直
11、接进库,只须输入goods的数量*/ { printf("\n此编号产品已存在!!直接入库!\n"); } else/*若不存在,则需要输入其他的信息 ,然后在进行插入操作*/ { printf("goodsName:"); scanf("%s",p0->goods_name); printf("goodsproduct:"); /*输入产品生产厂家(唯一)*/ scanf("%s",p0->goods_product); printf("goodsbirth:"
12、); /*输入产品生产日期(不唯一)*/ scanf("%d",&p0->goods_birth); printf("goods-price:"); /*输入产品价格(不唯一)*/ scanf("%d",&p0->goods_price); while(p->next) { p=p->next; } if(h_goods==NULL) h_goods=p0; /*此处分两种情况,链表中没有数据,head直接指向p0处*/ else p->next=p0;
13、 /*此处分两种情况,链表中有数据,链表中最后元素的next指向p0处*/ p0->next=NULL; } printf("\n产品入库完毕!按任意键继续下一步操作..\n"); getchar(); system("cls"); } int Find() /*查找菜单*/ { int sn; printf("\n\t\t信息查询菜单\n"); printf("=================================================\n"); printf("*\
14、t0----返回上级 按生产时间排序 \t*\n"); printf("*\t \t*\n"); printf("*\t1----查找产品信息 2----修改产品信息 \t*\n"); printf("*\t \t*\n"); printf("=================================================\n"); printf("请选择相应代码:"); f
15、or(;;) /*循环调用模式,保证能进行重复操作*/ { scanf("%d",&sn); fflush(stdin); if(sn<0||sn>4) printf("\n错误!请重新输入:"); else break; } return sn; } void Find_Select() /*查找菜单选择函数*/ { system("cls"); for(;;) /*循环调用模式,保证能进行重复操作*/ { switch(Find()) /*功能选择*/ { case 0:s
16、ystem("cls"); Menu_select(); break; case 1:Find_goods();break; case 2:modiification_goods();break; default:printf("\n错误!");exit(0); } } } void Find_goods() /*查找产品信息*/ { gd *p; int j; int goodsprice[2]; p=h_goods; printf("\ngoods信息查询模块\n"); printf("\n请输入你要查询goods价格范围(
17、中间用逗号隔开):"); //输入查找的价格范围 scanf("%d",&goodsprice[0]); scanf("%d",&goodsprice[1]); for(j=0;j<=10;j++) { while((p->goods_price>=goodsprice[0]&&p->goods_price<=goodsprice[1])&&p->next) p=p->next; if(p->goods_price>=goodsprice[0]&&p->goods_price<=goodsprice[1]) { printf("\n价格在%d-%d范围内的信
18、息为:\n",goodsprice[0],goodsprice[1]); printf("goodsNo.\tgoodsName\tgoods_product\tgoods_birth\tgoods_price"); printf("\n"); printf("%s\t\t%s\t\t%s\t\t%d\t\t%d",p->goods_num,p->goods_name,p->goods_product,p->goods_birth,p->goods_price); printf("\n"); } else printf("\n此产品价格范
19、围内无产品,请核对!按任意键返回..."); getchar(); system("cls"); } } void modiification_goods() //修改函数 { gd *p; char find_goods[10]; p=h_goods; printf("\n产品信息查询模块\n"); printf("\n请输入你要修改产品编号:"); scanf("%s",find_goods); while(strcmp(p->goods_num,find_goods)!=0&&p->next) p=p->next; if(strcmp
20、p->goods_num,find_goods)==0) { printf("\n产品编号:%d的信息为:\n",find_goods[10]); printf("goodsNo.\tgoodsName\tgoods_product\tgoods_birth\tgoods_price"); /*此处这样处理,*/ printf("\n"); printf("%s\t\t%s\t\t%s\t\t%d\t\t%d",p->goods_num,p->goods_name,p->goods_product,p->goods_birth,p->goods_
21、price); printf("\n输入要修改的信息"); printf("\n产品名改为:"); scanf("%s",p->goods_name); printf("\n生产商改为:"); scanf("%s",p->goods_product); printf("\n生产日期名改为:"); scanf("%d",&p->goods_birth); printf("\n产品价格改为:"); scanf("%d",&p->goods_price); printf("\n修改完成。按
22、任意键返回"); } else printf("\n此编号无产品,请核对!按任意键返回..."); getchar(); } void Save() /*保存信息*/ { FILE *fp_goods; /*创建文件型指针*/ gd *p,*p0; p=h_goods; if((fp_goods=fopen("goods.dat","wb"))==NULL) /*创建文件,进行保存*/ { printf("\n文件保存失败!\n请重新启动本系统...\n"); exit(0); } while(p!=NULL)
23、 { if(fwrite(p,sizeof(gd),1,fp_goods)!=1) /*将链表中的信息写入文件中*/ printf("\n写入文件失败!\n请重新启动本系统!\n"); p0=p; p=p->next; free(p0); /*释放所有结点*/ } h_goods=NULL; fclose(fp_goods); /*关闭文件*/ } void Load() /*加载信息*/ { gd *p1,*p2,*p3; FILE
24、fp; /*创建文件型指针*/ fp=fopen("goods.dat","rb"); /*打开文件*/ p1=(gd *)malloc(sizeof(gd)); fread(p1,sizeof(gd),1,fp); h_goods=p3=p2=p1; while(! feof(fp)) /*读出信息,重新链入链表*/ { p1=(gd *)malloc(sizeof(gd)); fread(
25、p1,sizeof(gd),1,fp); p2->next=p1; p3=p2; p2=p1; } p3->next=NULL; free(p1); fclose(fp); /*关闭文件*/ } void main() { FILE *fp_goods; /*创建文件型指针*/ Login(); if((fp_goods=fopen("goods.dat","rb"))==NULL) { Init(); } else Load(); Menu_select(); /*调用主菜单*/ }






