1、 .
用c编写的产品管理系统,含有产品录入和按价格围搜索,产品信息修改等功能
#include
2、h_goods; void Login(); //登陆 int Menu(); //主菜单 void Menu_select(); //查找菜单 void Init(); //系统初始化 void Insert_New_goods(); //输入产品信息 int Find(); //查找产品菜单 void Find_Select(); //查找菜单项选择择函数 void Find_good
3、s(); //查找产品函数 void modiification_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);
5、 fflush(stdin); if(sn<0||sn>4) printf("\n错误!请重新输入:"); elsebreak; } 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; de
7、fault: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包括请输入产品信息..\n包括编
10、号.产品称名,生产厂家、生产日期、价格\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) /*此处分两种情况,假设产品存在,那么直接进库,只须输入goods的
11、数量*/ { 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; /*此处分两种情况,链表中有数据,链表中最后元素的next指向p0处
13、/ p0->next=NULL; } printf("\n产品入库完毕!按任意键继续下一步操作..\n"); getchar(); system("cls"); } int Find() /*查找菜单*/ { int sn; printf("\n\t\t信息查询菜单\n"); printf("=================================================\n"); printf("*\t0----返回上级 按生产时间排序 \t*\n"); printf("*\t
14、 \t*\n"); printf("*\t1----查找产品信息 2----修改产品信息 \t*\n"); printf("*\t \t*\n"); printf("=================================================\n"); printf("请选择相应代码:"); for(;;) /*循环调用模式,保证能进展重复操作*/ { scanf("%d",&sn);
15、 fflush(stdin); if(sn<0||sn>4) printf("\n错误!请重新输入:"); elsebreak; } return sn; } void Find_Select() /*查找菜单项选择择函数*/ { system("cls"); for(;;) /*循环调用模式,保证能进展重复操作*/ { switch(Find()) /*功能选择*/ { case 0:system("cls"); Menu_select(); break; case 1:Find_goods();break; case
16、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价格围〔中间用逗号隔开〕:"); //输入查找的价格围 scanf("%d",&goodsprice[0]); scanf("%d",&goodsprice[1]); f
17、or(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围的信息为:\n",goodsprice[0],goodsprice[1]); printf("goodsNo.\tgoodsName\tgoods_product\tgoo
18、ds_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此产品价格围无产品,请核对!按任意键返回..."); getchar(); system("cls"); } } void modiification_goods()
19、//修改函数 { 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(p->goods_num,find_goods)==0) { printf("\n产品编号:%d的信息为:\n",find_goods[10]); printf(
20、"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输入要修改的信息"); printf("\n产品名改为:"); scanf("%s",p->goods_name);
21、 printf("\n生产商改为:"); scanf("%s",p->goods_product); printf("\n生产日期名改为:"); scanf("%d",&p->goods_birth); printf("\n产品价格改为:"); scanf("%d",&p->goods_price); printf("\n修改完成。按任意键返回"); } else printf("\n此编号无产品,请核对!按任意键返回..."); getchar(); } void Save()
22、/*保存信息*/ { 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) { if(fwrite(p,sizeof(gd),1,fp_goods)!=1) /*将链表中的信息写入文件中*/ printf("\n写入文件失败!\n请重新启动本系统!
23、\n"); p0=p; p=p->next; free(p0); /*释放所有结点*/ } h_goods=NULL; fclose(fp_goods); /*关闭文件*/ } void Load() /*加载信息*/ { gd *p1,*p2,*p3; FILE *fp; /*创立文件型指针*/ fp=fopen("goods.dat","rb");
24、 /*翻开文件*/ 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(p1,sizeof(gd),1,fp); p2->next=p1; p3=p2; p2=p1; } p3->next=NULL; free(p1); f
25、close(fp); /*关闭文件*/ } void main() { FILE *fp_goods; /*创立文件型指针*/ Login(); if((fp_goods=fopen("goods.dat","rb"))==NULL) { Init(); } else Load(); Menu_select(); /*调用主菜单*/ } - . 可修编.






