C语言--仓库管理系统003
C语言课程设计仓库管理系统
C语言课程设计仓库管理系统一、教学目标本课程旨在通过学习仓库管理系统,让学生掌握C语言编程的基本概念和方法,培养学生具备一定的软件开发能力。
具体的教学目标如下:1.知识目标:(1)理解C语言的基本语法和数据结构;(2)掌握C语言的函数、指针、 arrays等核心概念;(3)熟悉常用的库函数和预处理指令;(4)了解软件开发的基本流程。
2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备基本的代码调试和优化能力;(3)能够独立完成简单的软件项目。
3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生良好的编程习惯和团队协作精神;(3)使学生认识到编程对于解决实际问题的价值。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、指针、数组等核心概念,以及软件开发的基本流程。
具体的教学大纲如下:1.C语言的基本语法和数据结构;2.函数、指针和数组的概念及应用;3.常用的库函数和预处理指令;4.软件开发的基本流程;5.综合实例:仓库管理系统的设计与实现。
三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学。
具体包括:1.讲授法:用于讲解C语言的基本语法、数据结构、函数、指针、数组等核心概念;2.案例分析法:通过分析实际案例,使学生更好地理解仓库管理系统的设计与实现;3.实验法:让学生动手编写代码,巩固所学知识,提高编程能力;4.小组讨论法:分组进行讨论,培养学生的团队协作能力和问题解决能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供丰富的C语言编程参考书籍;3.多媒体资料:制作精美的课件,辅助讲解;4.实验设备:提供足够的计算机设备,让学生进行编程实践。
通过本课程的学习,希望学生能够掌握C语言编程的基本概念和方法,为今后的计算机科学学习和软件开发打下坚实基础。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采用多种评估方式相结合的方法。
C语言课程设计 仓库管理系统
《C语言程序设计》实训报告实训题目:仓库管理系统专业:班级:姓名:成绩:一:需求分析1:问题该系统所应包含的信息有以下一些:产品,仓库。
根据需求,该系统所应实现的功能有以下一些:输入密码进入操作界面产品入库,产品出库。
查询指定仓库编号的入库记录查询指定产品编号的入库记录查询指定入库时间的入库记录查询指定仓库编号的出库记录查询指定产品编号的出库记录查询指定出库时间的出库记录查询仓库中的产品是否过期可以在操作过程中修改密码2、系统采用C语言实现,开发环境为VC,可以运行在操作系统windows98及以上皆可。
3.运行要求1)可以进行随便操作,不受限制。
2)界面友好,操作方便,例如在进行产品出入库和查询时有提示操作。
二、总体设计1、系统流程设计根据系统要求,设计如下的系统流程2.系统模块设计如下,有三大基本功能:1.出库2.入库3.查询三:总体思路菜单显示:实现操作某功能时有相应的提示。
功能选择:每一种功能用相应的操作数字相对应。
产品出入库:在原有链表的基础上进行插入操作。
查询记录:调用对应的查询函数来实现。
四:详细设计1:定义结构体变量日期:struct warehouse{int wnum;char wname[20];char changename[20];}wh[5];产品:struct product{int pnum;char pname[20];char norms[10];}pr[10];链表:struct manage{int wnum;int pnum;char data[15];int number;int operate;struct manage *next;};为了能实现不受限制的产品出入库,采用链表的结构保存产品的信息,在增加产品出入库时,创建一个新的节点,将其插入到链表中,示意图如下。
2:模块化设计进入设计:以输入密码的方式进入,最多可输入三次,如果第三次输入错误,系统将自动退出。
仓库管理系统(c语言)
仓库管理系统(c语言)仓库管理系统文档1·引言仓库管理系统是一种用于管理仓库库存、入库和出库等操作的软件系统。
本文档旨在描述仓库管理系统的设计与实现细节,以便开发人员进行开发和维护。
2·系统概述2·1 目标仓库管理系统的目标是提供一个高效、准确的仓库管理解决方案,以确保库存的可视化和及时管理。
2·2 功能仓库管理系统具备以下主要功能:●商品管理:包括商品信息的添加、编辑和删除。
●入库管理:包括商品入库记录的增加、查询和修改。
●出库管理:包括商品出库记录的增加、查询和修改。
●库存管理:包括库存数量的计算和更新。
●报表管理:包括出入库报表和库存报表。
3·系统设计3·1 数据库设计仓库管理系统的数据由以下表格组成:●商品表:包括商品ID、名称、价格等字段。
●入库记录表:包括记录ID、商品ID、入库数量、入库日期等字段。
●出库记录表:包括记录ID、商品ID、出库数量、出库日期等字段。
3·2 模块设计3·2·1 商品管理模块●添加商品:管理员可以添加新的商品到系统中,并输入商品的相关信息。
●编辑商品:管理员可以编辑已有的商品信息,包括商品名称、价格等。
●删除商品:管理员可以删除已有的商品信息。
3·2·2 入库管理模块●添加入库记录:管理员可以添加新的入库记录,包括选择商品、输入入库数量等。
●查询入库记录:管理员可以查询已有的入库记录,以便查看入库历史。
●修改入库记录:管理员可以修改已有的入库记录,包括修改入库数量、入库日期等。
3·2·3 出库管理模块●添加出库记录:管理员可以添加新的出库记录,包括选择商品、输入出库数量等。
●查询出库记录:管理员可以查询已有的出库记录,以便查看出库历史。
●修改出库记录:管理员可以修改已有的出库记录,包括修改出库数量、出库日期等。
3·2·4 库存管理模块●计算库存数量:根据入库和出库记录,系统可以计算当前商品的库存数量。
C语言仓库管理系统
C语言仓库管理系统题目是:设计一个简单的仓储管理系统,要求具有基本的操作功能:插入(添加)、删除、查找、修改和统计。
业务简介1.采购人员将采购物资清单交与财务人员,其中包含一些必要的数据.财务人员据此作帐,将数据记入,并开一张票据,交与采购人员实现物资入库.2.当有物资卖出时,即物资出库,财务人员会查阅目前此类货物的库存情况,如此类货物还有存量,且有不同的出价时,财务人员会根据情况,调出相应价的货物.由于市场行情时常波动,管理人员可能会据此对物资做出相应的调价.3.当货物出现问题,需要退给供货商,并把退还的货物名,数量,金额,记录下来.4.到一定时期的时候,例如月底,年终,需要将各种物资的出入库,库存金额整理出来,以便为管理人员提供详尽,可靠的数据,为下一步制定目标方案提供依据.2、1数据结构用4个结构数组(或链表)来存储下述4类信息,每类信息的每条记录用结构类型自定义:1.商品信息:商品编号、商品名、型号/规格、数量、进货价、销售价2.入库信息:入库编号、商品编号、入库商品名、入库数量、入库价格、总价3.出库信息:出库编号、商品编号、出库商品名、出库数量、出库价格、总价4.退货信息:退货编号、商品编号、退还货物名、退货数量、退货价格、总价2、2 设计要求5. 对以上每类信息建立数据结构6. 对以上每类信息进行插入操作7. 对以上每类信息进行删除操作8. 对以上每类信息进行修改操作9. 对以上每类信息进行查找操作(查找关键字用下划线标出)10. 数据统计;i. 统计入库商品的总数及总价:ii. 统计出库商品的总数及总价:iii. 统计仓库中现有商品的总数及总价格:#include <stdio.h>#include <string.h>struct product{char p_num[12]; char name[12];char spec[12];int amount;int price;int s_price;struct product *next; };struct product *head;struct in_product {char num[12];char p_num[12];int amount;int price;int t_price;struct in_product *next; };struct in_product *ihead;struct out_product{char num[12];char p_num[12];char name[12];int amount;int price;int t_price;struct out_product *next; };struct out_product *ohead;struct quit_product{char p_num[12];char name[12];int amount;int price;int t_price;struct quit_product *next;};struct quit_product *qhead;int init(){head=ihead=ohead=qhead=NULL;printf("0: Quit\n");printf("1: Enter the information of in product\n ");printf("2: Enter the information of out product\ n");printf("3: Enter the information of quit product \n");printf("4: Total the information of product\n"); }int menu(){printf("1:insert data\n");printf("2:delete data\n");printf("3:modify data\n");printf("4:select data\n");printf("Other to quit\n");}int menu2(){printf("0: Quit\n");printf("1: Enter the information of in product\n ");printf("2: Enter the information of out product\ n");printf("3: Enter the information of quit product \n");printf("4: Total the information of product\n"); }int insert_product(){struct product * p1,* p;p1=(struct product *)malloc(sizeof(struct produ ct));p=head;if (p==NULL)/*开始没有数据*/{printf("Enter the data of product\n");printf("Include the spbh,name,style,num,price,s ale_price of product\n");scanf("%s%s%s%d%d%d",&p1->p_num,&p1->name,&p1->spec,&p1->am ount,&p1->price,&p1->s_price);head=p1;head->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);p1->next=NULL;}int in_insert(){struct in_product * p1,* p;p1=(struct in_product *)malloc(sizeof(struct in_ product));p=ihead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of in product\n");printf("Include the rkbh,spbh,name,number,pri ce,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);ihead=p1;ihead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);p1->next=NULL;}int in_modify(){char m_num[12];struct in_product * p;p=ihead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n"); return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n"); scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price ,&p->t_price);printf("One data had modified\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}int in_select(){struct in_product * p;p=ihead;printf("Enter the select num\n");scanf("%s",&s_num);while(p!=NULL){if (strcmp(p->num,s_num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->pric e,p->t_price);return 0;}p=p->next;}printf("Sorry! No num has found\n");}int in_delete(){struct in_product * p1,* p;p=ihead;printf("Enter the delete num\n");scanf("%s",&d_num);if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==N ULL)/*链表只有一个数据,且是要删除的*/ {ihead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=N ULL)/*要删除的数据在链表的头上*/{ihead=ihead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}int out_insert(){struct out_product * p1,* p;p1=(struct out_product *)malloc(sizeof(struct ou t_product));p=ohead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of out product\n"); printf("Include the ckbh,spbh,name,number,pri ce,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);ohead=p1;ohead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);p1->next=NULL;}int out_modify(){char m_num[12];struct out_product * p;p=ohead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n"); return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n"); scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price ,&p->t_price);printf("One data had modified\n");}p=p->next;}printf("Sorry! No num has found\n");}int out_select(){char s_num[12];struct out_product * p;p=ohead;printf("Enter the select num\n");scanf("%s",&s_num);while(p!=NULL){if (strcmp(s_num,p->num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->pric e,p->t_price);}p=p->next;}printf("Sorry! No num has found\n");}int out_delete(){char d_num[12];struct out_product * p1,* p;p=ohead;printf("Enter the delete num\n");scanf("%s",&d_num);if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==N ULL)/*链表只有一个数据,且是要删除的*/ {ohead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=N ULL)/*要删除的数据在链表的头上*/{ohead=ohead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}int quit_insert(){struct quit_product * p1,* p;p1=(struct quit_product *)malloc(sizeof(struct q uit_product));p=qhead;if (p==NULL)/*开始没有数据*/{printf("Enter the data of quit product\n"); printf("Include the thbh,spbh,name,number,pri ce,total_price\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);qhead=p1;qhead->next=NULL;return 0;}while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/p=p->next;p->next=p1;printf("Enter the data\n");scanf("%s%s%s%d%d%d",&p1->num,&p1->p_num,&p1->name,&p1->am ount,&p1->price,&p1->t_price);p1->next=NULL;}int quit_modify(){char m_num[12];struct quit_product * p;p=qhead;printf("Enter the modify num\n");scanf("%s",&m_num);if (p==NULL)/*开始没有数据*/{printf("Sorry! No data can be found\n"); return 0;}while(p!=NULL){if (strcmp(p->num,m_num)==0){printf("Enter the new data without num\n"); scanf("%s%s%d%d%d",&p->p_num,&p->name,&p->amount,&p->price ,&p->t_price);printf("One data had modified\n");return 0;}p=p->next;}printf("Sorry! No num has found\n");}int quit_select(){char s_num[12];struct quit_product * p;p=qhead;printf("Enter the select num\n");while(p!=NULL){if (strcmp(s_num,p->num)==0){printf("The data you want is:\n");printf(" %s %s %s %d %d %d\n",p->num,p->p_num,p->name,p->amount,p->pric e,p->t_price);return 0;}p=p->next;}printf("Sorry! No num has found\n");}int quit_delete(){char d_num[12];struct quit_product * p1,* p;p=qhead;printf("Enter the delete num\n");if (p==NULL)/*开始没有数据*/{printf("No data can be found\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next==N ULL)/*链表只有一个数据,且是要删除的*/ {qhead=NULL;printf("One data has been deleted\n");return 0;}if (strcmp(p->num,d_num)==0 && p->next!=N ULL)/*要删除的数据在链表的头上*/{qhead=qhead->next;printf("One data has been deleted\n");return 0;}while(p->next!=NULL){p1=p->next;if (strcmp(p1->num,d_num)==0){p->next=p1->next;printf("One data has been deleted\n"); return 0;}p=p->next;}printf("Sorry! No num has found\n"); }int total(){int in_num=0,in_price=0;int out_num=0,out_price=0;int num=0,price=0;struct in_product *ip;struct out_product *op;struct product *p;ip=ihead;while(ip!=NULL){in_num+=ip->amount;in_price+=ip->t_price;ip=ip->next;}op=ohead;while(op!=NULL){out_num+=op->amount;out_price+=op->t_price;op=op->next;}p=head;while(p!=NULL){num+=p->amount;price+=p->s_price;p=p->next;}printf("The in product's total number and total price is:\n");printf("%d %d\n",in_num,in_price);printf("The out product's total number and tota l price is:\n");printf("%d %d\n",out_num,out_price);printf("The product's total number and total pri ce is:\n");printf("%d %d\n",num,price);}int in_case(){int choice;printf("The information of in product:\n"); while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: in_insert();insert_product();break; case 2: in_delete();break;case 3: in_modify();break;case 4: in_select();break;default: return 0;}menu();}}int out_case(){int choice;printf("The information of out product:\n"); while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: out_insert();break;case 2: out_delete();break;case 3: out_modify();break;case 4: out_select();break;default:return 0;}menu();}}int quit_case(){int choice;printf("The information of quit product:\n"); while(1){printf("Enter the choice\n");scanf("%d",&choice);switch(choice){case 1: quit_insert();break;case 2: quit_delete();break;case 3: quit_modify();break;case 4: quit_select();break;default: return 0;}menu();}}int main(){int choice;init();while(1){scanf("%d",&choice);switch(choice){case 0: return 0;case 1: menu();in_case(); break; case 2: menu();out_case();break; case 3: menu();quit_case();break; case 4:total();break;}menu2();}}。
C语言程序仓库管理系统
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>structInfo{charnum[20];charname[20];intprice;intamount;};charmenu()/*菜单选择函数*/{charn;/*n记录选择的菜单*/system("cls");puts("\t\t欢迎来到仓库货物管理系统");puts("\t\t***********************MENU***********************\n"); puts("\t\t*1.录入货物信息*\n");puts("\t\t*2.显示货物信息*\n");puts("\t\t*3.查找货物信息*\n");puts("\t\t*4.修改货物信息*\n");puts("\t\t*5.删除货物信息*\n");puts("\t\t*6.退出系统*\n");puts("\t\t**************************************************\n");puts("*********************************");printf("*请选择你要输入数(1-6):*\n");puts("*********************************");while(1){n=getchar();getchar();if(n<'1'||n>'6'){puts("**********************************");printf("*出错了!请再次输入(1-6):*\n");puts("**********************************");}elsebreak;}returnn;}voidappend()/*货物信息输入函数*/{structInfoinfo;FILE*fp;charch;if((fp=fopen("F:\\test\\filemolde\\123.txt","wb"))==NULL) {printf("******************\n");printf("*不能打开文件!*\n");printf("******************\n");getch();exit(1);}do{printf("\tnum:");gets(info.num);printf("\tname:");gets();printf("\tprice:");scanf("%d",&info.price);printf("\tamount:");scanf("%d",&info.amount);getchar();fwrite(&info,sizeof(info),1,fp);printf("***************************\n");printf("*还需要输入吗?(Y/N):*\n");printf("***************************\n");ch=getchar();getchar();}while(ch=='Y'||ch=='y');fclose(fp);}voidprintf1(){printf("*************************************************************************\ n");printf("\t\t%-10s\t%-10s\t%-10s\t%-10s\n","num","name","price","amount\n");printf("************************************************************************* \n");}voidprintf2(structInfoinfo){printf("-------------------------------------------------------------------------\ n");printf("\t\t%-10s\t%-10s\t%-10d\t%-10d\n",info.num,,info.price,info.amoun t);printf("-------------------------------------------------------------------------\ n");}voiddisplay()/*货物信息显示函数*/{structInfoinfo;FILE*fp;intm=0;if((fp=fopen("F:\\test\\filemolde\\123.txt","rb"))==NULL){printf("******************");printf("*不能打开文件!*");printf("******************");getch();exit(1);}while(fread(&info,sizeof(info),1,fp)==1){m++;if(m==1)printf1();printf2(info);if((m!=0)&&(m%10==0)){printf("*****************************\n");printf("*输入任何键继续*");printf("*****************************\n");getch();puts("\n\n");printf1();}}fclose(fp);printf("************************************\n"); printf("*总共有%d条记录在其中!*\n",m);printf("************************************\n"); getch();}voidsearch()/*货物信息查询函数*/{structInfoinfo;FILE*fp;intflag;/*flag为1按编号查询,flag为2按姓名查询*/inttotal=0;/*记录符合条件的记录的个数*/charch[10];charf;if((fp=fopen("F:\\test\\filemolde\\123.txt","rb"))==NULL) {printf("************************************\n");printf("*\t不能打开文件!*\n");printf("************************************\n");getch();exit(1);}do{rewind(fp);printf("************************************\n");printf("*查询通过(1:编号2:姓名):*\n");printf("************************************\n");while(1){scanf("%d",&flag);getchar();if(flag<1||flag>2){printf("*****************************************\n");printf("*出错了!请再次输入[1:编号][2:姓名]*\n");printf("*****************************************\n"); }elsebreak;}if(flag==1)/*按编号进行查询*/{printf("************************************\n");printf("*请输入你要查询的编号:*\n");printf("************************************\n");gets(ch);total=0;/*符合条件的记录数*/while(fread(&info,sizeof(info),1,fp)==1)if(strcmp(ch,info.num)==0){total++;if(total==1)printf1();printf2(info);}}else/*按姓名进行查询*/{printf("************************************\n");printf("*请输入你要查询的姓名:*\n");printf("************************************\n");gets(ch);total=0;while(fread(&info,sizeof(info),1,fp)==1)if(strcmp(ch,)==0){total++;if(total==1)printf1();printf2(info);}}printf("************************************\n"); printf("*总共有%d记录在其中!*\n",total);printf("************************************\n"); printf("************************************\n"); printf("*还需要查询吗?(Y/N):*\n");printf("************************************\n"); f=getchar();getchar();}while(f=='Y'||f=='y');fclose(fp);}voidmodify()/*货物信息修改函数*/{structInfoinfo;FILE*fp1,*fp2;intflag;charch[10];charf;do{if((fp1=fopen("F:\\test\\filemolde\\123.txt","rb"))==NULL) {printf("************************************\n");printf("*不能打开文件!*\n");printf("************************************\n"); getch();exit(1);}if((fp2=fopen("F:\\test\\filemolde\\456.txt","wb"))==NULL) {printf("************************************\n");printf("*不能打开文件!*\n");printf("************************************\n"); getch();exit(1);}printf("************************************\n");printf("*请输入你要修改的货物编号:*\n");printf("************************************\n");gets(ch);flag=0;while(fread(&info,sizeof(info),1,fp1)==1){if(strcmp(ch,info.num)==0){printf1();printf2(info);printf("************************************\n");printf("*请输入新的信息:*\n");printf("************************************\n");printf("\tnum:");gets(info.num);printf("\tname:");gets();printf("\tprice:");scanf("%d",&info.price);printf("\tamount:");scanf("%d",&info.amount);getchar();flag=1;}fwrite(&info,sizeof(info),1,fp2);}fclose(fp1);fclose(fp2);if(flag==1){printf("************************************\n");printf("*修改成功!*\n");printf("************************************\n");remove("F:\\test\\filemolde\\123.txt");rename("F:\\test\\filemolde\\456.txt","F:\\test\\filemolde\\123.txt");}else{printf("************************************\n");printf("*不能找到这个记录!*\n");printf("************************************\n");}printf("************************************\n");printf("*还修改其他吗?(Y/N):*\n");printf("************************************\n");f=getchar();getchar();}while(f=='y'||f=='Y');}voidDelete()/*货物信息删除函数*/{structInfoinfo;FILE*fp1,*fp2;intflag;charch[10];charf;do{if((fp1=fopen("F:\\test\\filemolde\\123.txt","rb"))==NULL) {printf("************************************\n");printf("*\t不能打开文件!*\n");printf("************************************\n");getch();exit(1);}if((fp2=fopen("F:\\test\\filemolde\\456.txt","wb"))==NULL) {printf("************************************\n");printf("*\t不能打开文件!*\n");printf("************************************\n");getch();exit(1);}printf("************************************\n");printf("*请输入你需要删除货物的编号:*\n");printf("************************************\n");gets(ch);flag=0;while(fread(&info,sizeof(info),1,fp1)==1){if(strcmp(ch,info.num)==0){printf1();printf2(info);flag=1;break;}elsefwrite(&info,sizeof(info),1,fp2);}fclose(fp1);fclose(fp2);if(flag==1){printf("************************************\n");printf("*删除成功!*\n");printf("************************************\n");remove("F:\\test\\filemolde\\123.txt");rename("F:\\test\\filemolde\\456.txt","F:\\test\\filemolde\\123.txt");}else{printf("************************************\n");printf("*不能找到这个记录!*\n");printf("************************************\n");}printf("************************************\n");printf("*还删除其他吗?(Y/N):*\n");printf("************************************\n");f=getchar();getchar();}while(f=='y'||f=='Y');}voidmain()/*主函数*/{while(1){inta;charf;charch[10];charnum[20]={"12345"};printf("pleaseinputthesecret:\n");scanf("%s",ch);if(strcmp(num,ch)==0)a=1;if(a==1){printf("\npleaseenterinthetelproject!\n");f=getchar();getchar();break;}else{printf("\nthesecretiserror");printf("pleaseinputtherightsecret"); }}while(1)switch(menu()){case'1':append();break;case'2':display();break;case'3':search();break;case'4':modify();break;case'5':Delete();break;case'6':exit(0);break;}}。
仓库管理系统(c语言)
仓库管理系统(c语言)仓库管理系统范本1. 简介1.1 目的本文档旨在详细描述仓库管理系统的功能和特性,为开发人员和用户提供详尽的指导和参考。
1.2 范围本文档涵盖了仓库管理系统的各个方面,包括系统需求、系统设计、功能模块、数据库设计、用户界面等内容。
1.3 定义、缩写词汇表1.3.1 仓库管理系统(Warehouse Management System,WMS):指用于管理仓库内物流、库存和信息的软件系统。
2. 功能需求2.1 登录功能2.1.1 用户登录用户需要通过用户名和密码登录系统。
2.1.2 用户注册新用户需要填写个人信息进行注册。
2.2 主页功能2.2.1 仓库信息展示系统在主页上展示仓库的基本信息,包括名称、地址、联系方式等。
2.2.2 快速查询用户可以在主页上快速查询指定物品的库存情况。
2.3 库存管理功能2.3.1 入库管理用户可以将新物品入库,并记录相关信息,如物品名称、数量、批次等。
2.3.2 出库管理用户可以将库存物品进行出库,并记录相关信息,如物品名称、数量、出库人等。
2.3.3 库存查询用户可以通过指定条件查询仓库中的物品库存情况。
2.4 货物管理功能2.4.1 货物分类管理用户可以对仓库中的货物进行分类管理,实现更加有效的货物管理。
2.4.2 货物信息管理用户可以对货物的基本信息进行管理,包括名称、规格、单价等。
2.5 人员管理功能2.5.1 员工管理用户可以对仓库内的员工进行管理,包括添加新员工、编辑员工信息、删除员工等。
2.5.2 权限管理用户可以给予不同员工不同的权限,实现信息的安全管理。
3. 系统设计3.1 技术选型本系统采用C语言作为开发语言,使用MySQL作为后台数据库。
3.2 系统架构系统采用客户端-服务器架构,客户端通过与服务器进行交互实现功能。
4. 功能模块4.1 登录模块该模块实现用户登录和注册功能。
4.2 主页模块该模块实现主页信息展示和查询功能。
仓库管理系统课程设计C语言
仓库管理系统课程设计C语言一、教学目标本课程旨在通过C语言编程,使学生掌握仓库管理系统的基本概念、设计与实现。
教学目标具体如下:1.知识目标:–理解仓库管理系统的业务流程。
–掌握C语言的基本语法与数据结构。
–了解软件工程的开发方法。
2.技能目标:–能够使用C语言进行简单的程序设计。
–能够运用面向过程的编程思想解决实际问题。
–具备基本的软件项目管理能力。
3.情感态度价值观目标:–培养学生的团队协作精神和责任感。
–增强学生对计算机科学和软件工程的兴趣。
–培养学生的问题解决能力和创新意识。
二、教学内容教学内容将依据课程目标,选择和C语言及仓库管理系统相关知识,具体安排如下:1.C语言基础:–C语言简介与基本语法。
–数据类型、运算符与表达式。
–控制结构:条件语句、循环语句。
–函数:递归、指针。
2.数据结构基础:–数组、结构体与联合。
–链表、栈和队列。
3.仓库管理系统设计:–仓库管理业务需求分析。
–系统架构设计。
–模块划分与功能描述。
4.系统实现:–数据库设计与接口实现。
–主函数与模块调用。
–系统测试与调试。
三、教学方法为提高学生对仓库管理系统课程的理解与实践能力,将采用以下教学方法:1.讲授法:系统地传授C语言基础知识和仓库管理理论。
2.案例分析法:分析现实中的仓库管理案例,引导学生思考问题。
3.实验法:通过编程实验,让学生动手实现仓库管理系统。
4.讨论法:分组讨论,促进学生间的交流与合作。
四、教学资源教学资源包括:1.教材:《C程序设计语言》、《仓库管理系统设计与实现》。
2.多媒体资料:教学PPT、案例视频、编程教程。
3.实验设备:计算机、网络环境、编程软件。
4.在线资源:编程论坛、开源仓库管理系统项目。
五、教学评估为全面、公正地评估学生的学习成果,本课程的教学评估将采取多元化方式,包括:1.平时表现:评估学生的课堂参与度、提问与回答问题的情况。
2.作业:评估学生完成的编程练习和课后作业的质量。
3.实验报告:评估学生的实验操作和报告撰写能力。
c语言仓库管理系统课程设计
c语言仓库管理系统 课程设计一、课程目标知识目标:1. 理解仓库管理系统的基本概念,掌握C语言实现数据存储、读取、修改和删除等基本功能;2. 学会运用结构体、文件操作等C语言知识模块,实现仓库管理系统的设计与开发;3. 掌握C语言中数组、字符串、指针等在仓库管理系统中的应用。
技能目标:1. 能够运用结构体对仓库中的商品信息进行合理组织;2. 熟练运用文件操作,实现商品信息的存储与读取;3. 学会编写C语言程序,实现对商品信息的增删改查功能;4. 能够运用调试工具,对程序进行调试与优化。
情感态度价值观目标:1. 培养学生的编程兴趣,激发他们学习C语言的积极性;2. 培养学生的团队合作意识,提高他们在项目开发过程中的沟通与协作能力;3. 培养学生严谨、细心的编程习惯,提高他们分析问题和解决问题的能力。
本课程针对高年级学生,已具备一定C语言基础,旨在通过仓库管理系统这一实际项目,让学生巩固和运用所学知识,提高编程实践能力。
课程要求学生在理解基本概念的基础上,注重实践操作,培养解决实际问题的能力,同时注重培养团队协作和沟通能力,提高学生的综合素质。
通过本课程的学习,学生将能够独立完成一个简单的仓库管理系统,为后续深入学习C语言及软件开发打下坚实基础。
二、教学内容1. 仓库管理系统概述:介绍仓库管理系统的基本功能、应用场景和发展前景,帮助学生了解课程背景。
教材章节:第一章 仓库管理系统概述2. C语言基础知识回顾:复习结构体、数组、字符串、指针等基本概念,为后续课程打下基础。
教材章节:第二章 C语言基础知识回顾3. 文件操作:讲解文件操作的基本方法,包括文件的打开、读取、写入和关闭等,为仓库管理系统中的数据存储提供技术支持。
教材章节:第三章 文件操作4. 仓库管理系统功能设计:分析系统需求,设计商品信息管理、库存管理、用户管理等模块。
教材章节:第四章 仓库管理系统功能设计5. C语言实现仓库管理系统:按照功能模块,运用C语言编写程序代码,实现仓库管理系统的各项功能。
c语言仓库管理系统课程设计
c语言仓库管理系统课程设计一、课程目标知识目标:1. 理解仓库管理系统的基本概念和功能需求;2. 掌握C语言的基本语法和数据结构,包括数组、结构体、文件操作等;3. 学会使用C语言编写程序,实现仓库管理系统的基本功能,如商品信息的增删改查等;4. 了解软件测试的基本方法,能够对所编写的程序进行功能测试和性能优化。
技能目标:1. 能够独立分析问题,设计合适的算法和数据结构解决实际问题;2. 培养良好的编程习惯,编写出可读性强、易于维护的代码;3. 学会使用调试工具,能够快速定位并修复程序中的错误;4. 提高团队合作能力,学会与他人协作完成项目。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发学习动力;2. 培养学生面对问题时的积极态度,敢于挑战,勇于克服困难;3. 强调诚信和责任感,让学生明白编程过程中遵守规则、尊重他人成果的重要性;4. 培养学生的创新意识,鼓励他们尝试不同的解决方案,提高解决问题的能力。
本课程针对高中年级学生,结合C语言和仓库管理系统相关知识,旨在提高学生的编程能力和解决实际问题的能力。
课程设计注重理论与实践相结合,让学生在实际操作中掌握知识,培养技能,同时关注学生的情感态度和价值观的培养,使他们在学习过程中形成良好的学习习惯和团队合作精神。
通过本课程的学习,学生将具备独立设计并实现小型仓库管理系统的能力。
二、教学内容1. C语言基础语法回顾:变量、数据类型、运算符、控制结构(条件语句、循环语句);2. 函数:函数的定义、调用、传参、递归;3. 数组:一维数组、二维数组的应用;4. 指针:指针的概念、指针与数组、指针与函数;5. 结构体:结构体的定义、结构体数组、结构体指针;6. 文件操作:文件的打开、关闭、读写、定位;7. 仓库管理系统功能设计:商品信息管理(增删改查)、库存管理、用户登录;8. 算法设计与分析:排序算法、查找算法在系统中的应用;9. 软件测试:测试用例设计、功能测试、性能测试;10. 项目实践:分组进行项目实践,实现一个简易的仓库管理系统。
c语言仓库管理系统课程设计
c语言仓库管理系统课程设计一、教学目标本课程的教学目标是使学生掌握C语言仓库管理系统的开发和实现。
通过本课程的学习,学生将能够理解仓库管理的基本概念,熟练使用C语言进行程序设计,掌握仓库管理系统的开发流程,并能够独立完成一个小型的仓库管理系统。
具体来说,知识目标包括:了解仓库管理的基本概念和原理,熟悉C语言的语法和编程方法,掌握仓库管理系统的开发流程和技巧。
技能目标包括:能够使用C语言进行程序设计,能够独立开发和实现一个简单的仓库管理系统。
情感态度价值观目标包括:培养学生的创新意识和团队协作精神,使学生认识到计算机技术在现代社会中的重要性和应用价值。
二、教学内容本课程的教学内容主要包括三个部分:仓库管理的基本概念,C语言程序设计,仓库管理系统的开发和实现。
第一部分,仓库管理的基本概念,主要包括仓库管理的基本原理,仓库管理的基本方法和仓库管理的基本工具。
这部分内容将帮助学生了解仓库管理的基本知识和概念。
第二部分,C语言程序设计,主要包括C语言的基本语法,数据类型,运算符,控制结构,函数和数组。
这部分内容将帮助学生掌握C语言的编程方法和技巧。
第三部分,仓库管理系统的开发和实现,主要包括仓库管理系统的需求分析,系统设计,编码实现和测试。
这部分内容将帮助学生理解仓库管理系统的开发流程,并能够独立完成一个小型的仓库管理系统。
三、教学方法本课程的教学方法主要包括讲授法,案例分析法和实验法。
讲授法将用于讲解仓库管理的基本概念,C语言的语法和编程方法,以及仓库管理系统的开发流程和技巧。
案例分析法将用于分析真实的仓库管理案例,帮助学生理解仓库管理系统的实际应用。
实验法将用于让学生通过实际操作,独立开发和实现一个简单的仓库管理系统,提高学生的实际编程能力。
四、教学资源本课程的教学资源主要包括教材,参考书,多媒体资料和实验设备。
教材将用于为学生提供系统的仓库管理和C语言编程的知识和技能。
参考书将用于为学生提供更多的学习资料和实践案例。
c课程设计仓库管理系统
c 课程设计仓库管理系统一、教学目标本课程的教学目标是让学生掌握仓库管理系统的基本概念、原理和操作方法。
通过学习,学生应能理解仓库管理的重要性,掌握仓库管理的基本流程,熟悉仓库管理软件的使用,并具备一定的仓库管理实践能力。
具体来说,知识目标包括:1.掌握仓库管理的基本概念和原理,如仓库分类、仓库布局、库存管理等。
2.了解仓库管理的发展历程和现状,以及我国仓库管理的相关政策和标准。
3.熟悉仓库管理软件的基本功能和操作方法,如入库、出库、库存查询等。
技能目标包括:1.能够运用仓库管理原理和方法,分析并解决实际工作中的问题。
2.能够熟练操作仓库管理软件,进行库存管理、出入库操作等。
3.能够根据实际情况,制定合理的仓库管理制度和操作流程。
情感态度价值观目标包括:1.培养学生对仓库管理工作的重视,提高学生的职业素养。
2.培养学生团队合作精神,提高学生的人际沟通能力。
3.培养学生创新意识,提高学生的解决问题的能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.仓库管理基本概念和原理:介绍仓库的分类、布局,库存管理的方法等。
2.仓库管理的发展历程和现状:介绍我国仓库管理的发展历程,以及当前仓库管理的现状和趋势。
3.仓库管理政策法规和标准:介绍我国仓库管理相关的政策法规,以及行业标准。
4.仓库管理软件的使用:介绍仓库管理软件的基本功能,以及操作方法。
5.仓库管理实践:通过案例分析、实验等环节,培养学生的仓库管理实际操作能力。
三、教学方法为了达到本课程的教学目标,我们将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
1.讲授法:通过教师的讲解,使学生掌握仓库管理的基本概念、原理和政策法规。
2.讨论法:通过小组讨论,培养学生团队合作精神,提高学生的人际沟通能力。
3.案例分析法:通过分析实际案例,使学生能够将理论知识运用到实际工作中。
4.实验法:通过操作实验,使学生熟练掌握仓库管理软件的使用,提高学生的实际操作能力。
仓库管理系统课程设计c语言
仓库管理系统课程设计 c语言一、教学目标本课程的目标是使学生掌握仓库管理系统的基本概念、设计与实现。
通过本课程的学习,学生应能理解仓库管理的基本流程,运用C语言进行简单的仓库管理系统的设计与实现。
1.理解仓库管理的基本概念和流程。
2.掌握C语言的基本语法和编程技巧。
3.能够使用C语言进行简单的程序设计。
4.能够根据实际需求设计简单的仓库管理系统。
情感态度价值观目标:1.培养学生的团队合作意识和解决问题的能力。
2.培养学生对计算机编程的兴趣和热情。
二、教学内容本课程的教学内容主要包括三个部分:仓库管理系统的概念与流程、C语言的基本语法、仓库管理系统的设计与实现。
1.仓库管理系统的概念与流程:介绍仓库管理的基本概念,如仓库、库存、入库、出库等,以及仓库管理的基本流程。
2.C语言的基本语法:介绍C语言的基本语法,如变量、数据类型、运算符、控制结构等。
3.仓库管理系统的设计与实现:通过实例讲解如何使用C语言设计简单的仓库管理系统,包括系统需求分析、系统设计、编码实现和测试等步骤。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过讲解仓库管理系统的概念与流程、C语言的基本语法,使学生掌握基本知识。
2.案例分析法:通过分析实际案例,使学生更好地理解仓库管理系统的设计与实现过程。
3.实验法:让学生亲自动手编写代码,实现简单的仓库管理系统,提高学生的实际操作能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《C程序设计》作为主要教材,辅助以相关参考书。
2.多媒体资料:提供课件、教学视频等多媒体资料,帮助学生更好地理解课程内容。
3.实验设备:提供计算机实验室,让学生进行上机实验,提高实际操作能力。
五、教学评估本课程的评估方式包括平时表现、作业和考试三部分,以全面客观地评价学生的学习成果。
1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和理解能力,占总评的30%。
c语言库存管理系统课程设计
c语言库存管理系统课程设计一、课程目标知识目标:1. 学生能掌握C语言的基本语法和结构,理解库存管理系统的基本概念;2. 学生能理解并运用数组、函数、指针等C语言特性实现库存管理功能;3. 学生能了解文件操作在库存管理系统中的应用,实现数据的存储和读取。
技能目标:1. 学生能运用C语言编写出具有基本库存管理功能的程序,包括商品信息的增加、删除、修改和查询;2. 学生能通过调试和优化程序,提高库存管理系统的稳定性和效率;3. 学生能运用所学知识解决实际问题,具备一定的编程实践能力。
情感态度价值观目标:1. 学生通过学习C语言库存管理系统,培养对计算机编程的兴趣和热情;2. 学生在编程实践中,培养解决问题的能力和团队协作精神;3. 学生认识到编程在生活中的广泛应用,增强对信息技术的认识和责任感。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握C语言在库存管理系统中的应用。
学生特点:学生具备一定的C语言基础,对编程有一定兴趣,但实践经验不足。
教学要求:教师需注重理论与实践相结合,引导学生通过实际操作,掌握课程内容,提高编程能力。
同时,关注学生的情感态度,激发学生的学习兴趣和积极性。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. C语言基础回顾:数据类型、运算符、控制结构(第二章)- 复习C语言基础知识,重点掌握基本数据类型、运算符及控制结构。
2. 函数与数组:函数的定义与调用、数组的定义与应用(第三章、第四章)- 学习如何使用函数实现模块化编程,理解数组在存储批量数据中的应用。
3. 指针与字符串:指针的概念与操作、字符串处理(第五章、第六章)- 掌握指针的基本概念和操作,学习字符串处理方法,为库存管理系统开发打下基础。
4. 文件操作:文件的打开、读写、关闭(第七章)- 学习文件操作相关知识,实现库存数据的存储和读取。
5. 库存管理系统设计与实现- 分析库存管理系统的功能需求,设计系统模块;- 实现商品信息的增加、删除、修改和查询等功能;- 学习调试和优化程序,提高系统稳定性。
C语言程序仓库管理系统
#include〈string.h〉
#include <stdlib.h>
#include <conio。h〉
struct Info
{
char num[20];
char name[20];
int price;
int amount;
};
char menu()/*菜单选择函数*/
puts("\t\t*2。显示货物信息*\n");
puts("\t\t* 3。查找货物信息*\n");
puts(”\t\t*4.修改货物信息*\n");
puts("\t\t* 5。删除货物信息*\n”);
puts(”\t\t*6。退出系统*\n");
puts("\t\t**************************************************\n");
{
struct Info info;
FILE*fp;
char ch;
if((fp=fopen(”F:\\test\\filemolde\\123.txt”,”wb”)) == NULL)
{
printf("******************\n”);
printf(”*不能打开文件! *\n");
printf(”******************\n");
printf("*******ቤተ መጻሕፍቲ ባይዱ****************************\n”);
printf("************************************\n");
c语言课设仓库管理系统
《高级语言程序设计》课程设计小型仓库管理系统题目:班级:学生学号:学生姓名:同组成员:指导老师:提交时间:成绩:华南农业大学信息学院一、需求分析⑴系统概述:本系统用于小型仓库的信息管理,可实现仓库物品信息的增加、删除、查询、显示功能,以及仓库的入库信息记录、出库信息记录、查询指定物品的信息及出入库记录、显示紧缺物品信息的功能,此外还有密码功能,可保护仓库信息的安全性.⑵系统运行环境:本系统方便简捷,对系统的软、硬件要求不高,在任何系统环境下都能很好的运行。
⑶功能需求描述:本系统分为两大块,分别为系统管理和出入库管理。
其中,系统管理包括增加物品信息、删除物品信息、查询物品信息、显示物品信息、设置仓库密码五个功能;出入库管理包括物品出库、物品入库、库存物品查询、显示紧缺物品四个功能。
以下对各功能作一些介绍:a.增加物品信息:新增一条物品信息,包括编号、名称、警界库存量。
b.删除物品信息:可通过物品编号或名称删除该物品的信息,物品数为0时方可删除。
c.查询物品信息:可通过物品编号或名称来查询指定物品的信息,并显示出来d.显示物品信息:该功能可以显示所有库存物品的信息,包括物品编号、名称、警戒库存量、当前库存数。
e.设置仓库密码:为保护仓库数据不被随意窜改,本系统要求仓库管理员设置密码,成功后可随意更改。
f.物品入库:通过物品编号或名称可实现该指定物品的入库操作,记录下该物品的入库信息,包括物品编号、入库物品数量、物品单价、提供商、采购员五个信息.g.物品出库:通过物品编号或名称可实现该指定物品的出库操作,记录下该物品的出库信息,包括物品编号、出库物品数量、提货原因、提货员四个信息。
如果申请的提货数量超过当前库存数时,则操作失败。
h.库存物品查询:通过物品编号或名称可查找该指定物品的信息,包括编号、名称、警戒库存量、当前库存数五个信息,以及该物品所有的入库与出库信息。
i. 显示紧缺物品:可以显示出所有库存数低于警戒库存量的物品信息包括物品编号、名称、警戒库存量、当前库存数五个信息点。
仓库管理系统(c语言)
作品名称开发者:一、系统背景:本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷及时准确的调整货物的仓储量达到最合理化。
可以使店主不失效率的节省大量精力用于其他方面符合当今社会的商业形式而且本软件体积小操作简单是管理仓库的不二选择二、系统简介:设计亮点:◆三级菜单使操作更简便明了◆密码操作能有效保证客户信息的安全性◆独特的dos命令调用使信息存储的实体属性为隐藏且无扩展名大大增大了安全系数◆数据结构为链表摆脱了数据数量的限制◆提供三种查看模式并会标出排名◆退出店主模式时会提示是否保存若选择yes着进行保存操作基本功能:·在员工模式下可输入卖出货物的名称和数目程序自动在后台进行一系列的操作·新建数据并同时对其处理·修改数据·插入数据·删除数据·查找数据·查看数据·数据存档·修改密码三、系统结构图#define LEN sizeof(struct shop) #include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>struct shop{char name[30];float price_in;float price_out;int num_in;int num_now;int num_sold;float win;float percent;struct shop *next;};int n=0;void main(void){void auto1(struct shop **h_p);int menu1(struct shop **h_p);void print1(void);void assistant(struct shop *head);int password(void);int menu2(struct shop **h_p);void print2(void);void creat(struct shop **h_p);void rewrite(struct shop **h_p);void insert(struct shop **h_p);void deleat(struct shop **h_p);void search(struct shop **h_p);void printall(struct shop **h_p);void save(struct shop *head);void password_set(void);int password_exi(struct shop **h_p);int data_exi(struct shop **h_p);void load(struct shop **h_p);void save(struct shop *head);struct shop *addbuild(struct shop **h_p); void sort0(struct shop **h_p);int search1(struct shop **h_p,char a[30]); void sort1(struct shop **h_p);void sort2(struct shop **h_p);void sort3(struct shop **h_p);void print3(void);void password_create(void);struct shop *addbuild(struct shop **h_p); int a;struct shop *head,**h_p;head=NULL;auto1(h_p);do{a=menu1(h_p);}while(a!=3);system("cls");printf("谢谢使用^_^");getch();}int menu1(struct shop **h_p){int a,b;struct shop *head;head=*h_p;print1();scanf("%d",&a);putchar('\n');getchar();do{switch(a){case 1:assistant(head);break;case 2:if(password())do{b=menu2(h_p);}break;default:break;}if(a!=3){system("cls");print1();scanf("%d",&a);}}while(a!=3);return(a);}int menu2(struct shop **h_p) {int b;char a;struct shop *head;head=*h_p;print2();scanf("%d",&b);putchar('\n');getchar();do{switch(b){case 1:creat(h_p);break; case 2:rewrite(h_p);break;case 3:insert(h_p);break;case 4:deleat(h_p);break;case 5:search(h_p);break;case 6:printall(h_p);break;case 7:head=*h_p;save(head);break; case 8:password_set();break; default:break;}if(b!=9){system("cls");print2();scanf("%d",&b);getchar();}}while(b!=9);printf("\n保存吗?(y/n):");putchar('\n');scanf("%c",&a);if(a=='y'){head=*h_p;save(head);}return(b);}void auto1(struct shop **h_p){if(password_exi(h_p) && data_exi(h_p))load(h_p);}void print1(void){system("cls");printf("***************************************************************** ***************\n");printf(" 仓库管理系统\n");printf("***************************************************************** ***************\n");printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");printf(" #******************* 菜单*****************# \n");printf(" #| 1.员工模式|# \n");printf(" #| 2.店主模式|# \n");printf(" #| 3.退出|# \n");printf(" #*********************************************# \n");printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");printf("\n请选择(1-3):");}void assistant(struct shop *head)char a[50],c='y';int b;struct shop *i;i=head;while(c=='y'){system("cls");printf("\n请输入卖出的商品名称:\n");gets(a);putchar('\n');printf("\n请输入卖出的商品数量:\n");scanf("%d",&b);putchar('\n');while(strcmp(i->name,a)!=0&&i->next!=NULL)i=i->next;if(i->next!=NULL){i->num_now-=b;i->win=(i->num_in-i->num_now)*(i->price_out-i->price_in); }elseprintf("\n此商品不存在或通知店主更新数据库\n"); printf("\n继续吗?(y/n):");putchar('\n');c=getchar();getchar();}save(head);}int password(void)FILE*fp;char a[50],b[50];int i;system("cls");fp=fopen("c:\\y_secrea","rb");fscanf(fp,"%s",&a);fclose(fp);printf("请输入密码:\n");putchar('\n');i=0;do{b[i]=getch();printf("*");i++;}while(b[i-1]!=13&&i<19);b[i-1]='\0';if(strcmp(a,b)==0)return(1);elsereturn(0);}void print2(void){system("cls");printf("***************************************************************** ***************\n");printf(" 店主模式\n");printf("***************************************************************** ***************\n");printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");printf(" #******************* 菜单*****************# \n");printf(" #| 1.新建 2.修改|# \n");printf(" #| 3.插入 4.删除|# \n");printf(" #| 5.查找 6.查看|# \n");printf(" #| 7.保存8.改密|# \n");printf(" #| 9.上一层|# \n");printf(" #*********************************************# \n");printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");printf("请选择(1-9):");}void creat(struct shop **h_p){struct shop *head,*i,*j;int f=1;head=NULL;n=0;printf("\n请输入数据若完成请在名称处输“0”.\n\n");i=j=addbuild(&head);if(strcmp(i->name,"0")==0)f=0;while(f){n++;if(n==1)head=j;f=1;printf("\n请输入下一种货物的数据.\n\n"); i=addbuild(&head);if(strcmp(i->name,"0")==0){free(i);f=0;break;}j->next=i;j=i;}j->next=NULL;*h_p=head;}void rewrite(struct shop **h_p){char a[30];struct shop *i,*j,*head;head=*h_p;i=head;do{printf("\n请输入要修改货物的名称:");putchar('\n');gets(a);if(n>=1&&!search1(h_p,a)){printf("\n不存在的货物名称!\n");getch();if(head==NULL) goto end;}}while(n>=1&&!search1(h_p,a));while(strcmp(a,i->name)!=0&&i->next!=NULL) {i=i->next;}if(strcmp(a,i->name)==0){printf("\n真的要修改吗??(y/n):");putchar('\n');if(getchar()=='y'){getchar();j=addbuild(h_p);strcpy(i->name,j->name);i->price_in=j->price_in;i->price_out=j->price_out;i->num_in=j->num_in;i->num_now=j->num_now;i->num_sold=j->num_sold;i->win=j->win;i->percent=j->percent;free(j);printf("\n修改完成^_^\n\n");}}end:;}void insert(struct shop **h_p){struct shop *i,*j,*x,*head;head=*h_p;x=addbuild(h_p);i=j=head;while(strcmp(i->name,x->name)<0&&i->next!=NULL){j=i;i=i->next;}if(strcmp(i->name,x->name)>=0){if(i==head)head=x;elsej->next=x;x->next=i;}else{i->next=x;x->next=NULL;}printf("\n插入完成^_^\n\n.");*h_p=head;}void deleat(struct shop **h_p){struct shop*i,*j,*head;char a[30],b;head=*h_p;do{system("cls");printf("\n请输入你要删除的货物的名称:\n");putchar('\n');gets(a);if(n>=1&&!search1(h_p,a)){printf("\n不存在的货物名称!\n");if(head==NULL) goto end;}}while(n>=1&&!search1(h_p,a));printf("\n真的要删除吗?(y/n):");putchar('\n');b=getchar();getchar();if(b=='y'){i=head;while(strcmp(i->name,a)!=0&&i->next!=NULL) {j=i;i=i->next;}if(strcmp(i->name,a)==0){if(i==head){head=i->next;free(i);}elsej->next=i->next;n--;printf("\n删除完成^_^.\n\n");*h_p=head;}}end:;}void search(struct shop **h_p){int begin,end,mid,t;char a[30];struct shop *i,*head;head=*h_p;i=head;printf("\n请输入要查询货物的名称:");putchar('\n');gets(a);while((strcmp(i->name,a)!=0)&&i->next!=NULL){i=i->next;}if((strcmp(i->name,a)==0)){printf("\n名称\t进价\t售价\t进货数目存货数目销量\t赢利\t利率\n");printf("\n=============================================================== ================\n");printf("%s%10.2f%10.2f%10d%10d%10d%9.2f%10.2f",i->name,i->price_in,i->price_out,i->num_in,i->num_now,i->num_sold,i->win,i->percent);}elseprintf("\n此货物不存在!\n");getch();}void printall(struct shop **h_p){int a,c;char b='y';struct shop *i;while(b=='y'){do{system("cls");print3();scanf("%d",&a);}while(a!=1&&a!=2&&a!=3);switch(a){case 1:sort1(h_p);break;case 2:sort2(h_p);break;case 3:sort3(h_p);break;default:break;}for(c=1,i=*h_p;i->next!=NULL;i=i->next,c++){printf("\n名称\t进价\t售价\t进货数目存货数目销量\t赢利\t利率\t 排名\n");printf("\n=============================================================== ================\n");printf("%s%10.2f%10.2f%10d%10d%10d%9.2f%10.2f%8d",i->name,i->price_in,i->price_ out,i->num_in,i->num_now,i->num_sold,i->win,i->percent,c);if(c%8==0){getch();getchar();printf("按任意键继续。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include#include#include#include#includestruct cangku{int num;char name[20];char introdution[50];float square;};typedef struct cangku Cangku;int Input(Cangku t[]);void List(Cangku t[],int n);void SearchOnName(Cangku t[],int n); int DeleteRecord(Cangku t[],int n);int AlterRecord(Cangku t[],int n);int AddRecord(Cangku t[],int n);void SortOnName(Cangku t[],int n); void SortOnSquare(Cangku t[],int n); void SaveRecord(Cangku t[],int n);int LoadRecord(Cangku t[]);int LoadRecord1(Cangku t[]);void Save(Cangku t[],int n);void Load(Cangku t[],int n);void Load1(Cangku t[]);int Menu_select();void main(){Cangku ck[50];int i,l,length,w=1;int q[4]={5,2,1,0};system("cls");printf("请输入第1个密码:\n");for (i=0;i<4;i++){scanf("%d",&l);system("cls");if(l==q[i])printf("正确,继续输入第%d个密码:.\n",i+2);else{w=0;printf ("输入错误!\n");break;}}while(w){switch(Menu_select()){case 1: length=Input(ck);SaveRecord(ck,length);break;case 2: length=LoadRecord(ck);SearchOnName(ck,length);break;case 3: length=LoadRecord(ck);length=DeleteRecord(ck,length);SaveRecord(ck,length);break;case 4: length=LoadRecord(ck);length=AlterRecord(ck,length);SaveRecord(ck,length);break;case 5: length=LoadRecord(ck);length=AddRecord(ck,length);SaveRecord(ck,length);break;case 6: length=LoadRecord(ck);system("cls");List(ck,length);break;case 7: length=LoadRecord(ck);system("cls");SortOnName(ck,length);SaveRecord(ck,length);break;case 8: length=LoadRecord(ck);system("cls");SortOnSquare(ck,length);SaveRecord(ck,length);break;case 9: length=LoadRecord(ck);system("cls");Save(ck,length);break;case 0: length=LoadRecord1(ck);Load1(ck);system("cls");Load(ck,length);break;case 10: exit(0);}}}int Menu_select(){int c;printf("按任意键进入仓库管理菜单\n");getchar();system("cls");system("color F0");printf(" ******************************仓库管理*******************************\n");printf(" * 1. 录入仓库初始记录*\n");printf(" * 2. 按仓库名称查找记录*\n");printf(" * 3. 删除仓库记录*\n");printf(" * 4. 修改仓库记录*\n");printf(" * 5. 增加仓库信息*\n");printf(" * 6. 显示全部记录*\n");printf(" * 7. 按仓库名称排序*\n");printf(" * 8. 按仓库面积排序*\n");printf(" * 9. 备份*\n");printf(" * 0. 恢复*\n");printf(" * 10. 退出*\n");printf("*********************************************************************\n");do{printf("\n输入您想要进行的操作选项键(0-10):");if(scanf("%d",&c)!=1){while(getchar()!='\n')continue;}}while(c<0||c>10);return c;}int Input(Cangku t[]){int i,n;system("cls");printf("\n请输入要输入的仓库数目:\n");scanf("%d",&n);printf("开始输入仓库信息:\n");for(i=0;i<n;i++){system("cls");printf("\n第%d个仓库的编号:",i+1);scanf ("%d",&t[i].num);printf("第%d个仓库的名称:",i+1);scanf ("%s",t[i].name);printf("第%d个仓库的面积:",i+1);scanf ("%f",&t[i].square);printf("第%d个仓库的说明:",i+1);scanf ("%s",t[i].introdution);}return (n);}void List(Cangku t[],int n){int i;printf("*********************************************************************\n");printf(" ** 编号名称面积说明\n");printf(" ---------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);}printf("*********************************************************************\n");printf ("\n");getchar();}void SearchOnName(Cangku t[],int n){char s[20];int i,flag=0;system("cls");printf("请输入要查找的仓库名称:\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要查找的仓库信息如下:\n");printf("\n");printf("*********************************************************************\n");printf(" ** 编号名称面积说明\n");printf(" ---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);}printf("*********************************************************************\n");printf ("\n");}}if(flag==0)printf("要查找的仓库不存在!!\n");getchar();}int DeleteRecord(Cangku t[],int n){char s[20];char ch;int i,j,flag=0;system("cls");printf("请输入要删除的仓库名称\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要删除的仓库信息如下:\n");printf("\n");printf("*********************************************************************\n");printf(" ** 编号名称面积说明\n");printf(" ---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);}printf("*********************************************************************\n");printf ("\n");printf("确定删除仓库信息吗?(Y/N)\n");ch=getchar();ch=getchar();if(ch=='Y'||ch=='y'){for(j=i;j<n-1;j++)t[j]=t[j+1];n--;i--;printf ("删除成功.\n");}}}if(flag==0)printf("要删除的仓库不存在!!\n");getchar();return n;}int AlterRecord(Cangku t[],int n){int i,flag=0;char s[20],ch;system("cls");printf("请输入要修改的仓库名称\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要修改的仓库信息如下:\n");printf("\n");printf("*********************************************************************\n");printf(" ** 编号名称面积说明\n");printf(" ---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);}printf("*********************************************************************\n");printf ("\n");printf("确定修改仓库信息吗?(Y/N)\n");ch=getchar();ch=getchar();if(ch=='y'||ch=='Y'){system("cls");printf("请输入修改后的信息:\n");printf("请输入仓库新的名称:");scanf("%s",t[i].name);printf("请输入%s仓库新的编号:",t[i].name);scanf("%d",&t[i].num);printf("请输入%s仓库新的面积:",t[i].name);scanf("%f",&t[i].square);printf("请输入%s仓库新的说明:",t[i].name);scanf("%s",t[i].introdution);}}}if(flag==0)printf("要修改的仓库不存在!!\n");getchar();return n;}int AddRecord(Cangku t[],int n){int i,m;system("cls");printf("\n请输入再增加的记录数:\n");scanf("%d",&m);printf("开始追加记录\n");for(i=n;i<n+m;i++){ system("cls");printf("\n第%d个仓库的编号:",i+1);scanf("%d",&t[i].num);printf("第%d个仓库的名称:",i+1);scanf("%s",t[i].name);printf("第%d个仓库的面积:",i+1);scanf("%f",&t[i].square);printf("第%d个仓库的说明:",i+1);scanf("%s",t[i].introdution);}return (n+m);}void SortOnName(Cangku t[],int n){int i,j;struct cangku temp ;for(j=1;j<n;j++)for(i=0;i<n-j;i++)if((strcmp(t[i].name,t[i+1].name))>0){temp=t[i];t[i]=t[i+1];t[i+1]=temp;}printf("排序成功!!!\n");printf("排序后仓库信息列表如下:\n");List(t,n);}void SortOnSquare(Cangku t[],int n){int i,j;struct cangku temp ;for(j=1;j<n;j++)for(i=0;i<n-j;i++)if(t[i].square<t[i+1].square){temp=t[i];t[i]=t[i+1];t[i+1]=temp;}printf("排序成功!!!\n");printf("排序后仓库信息列表如下:\n");List(t,n);}void SaveRecord(Cangku t[],int n){int i;FILE *fp;if((fp=fopen("record.txt","w"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp);}fclose(fp);}int LoadRecord(Cangku t[]){int n=0;FILE *fp;if((fp=fopen("record.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++;fclose(fp);printf("从文件中成功读出记录!!!\n");return n;}int LoadRecord1(Cangku t[]){int n=0;FILE *fp;if((fp=fopen("bkrecord.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++;fclose(fp);printf("从文件中成功读出记录!!!\n");return n;}void Save(Cangku t[],int n){int i;FILE *fp;if((fp=fopen("bkrecord.txt","w"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp);}fclose(fp);printf("备份成功.\n");getchar();}void Load1(Cangku t[]){int n=0;FILE *fp;if((fp=fopen("bkrecord.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++;fclose(fp);getchar();}void Load(Cangku t[],int n){int i;FILE *fp;if((fp=fopen("record.txt","w"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp);}fclose(fp);printf("恢复成功.\n");}。