C仓库管理系统.pdf
c语言仓库管理系统004
/*仓库管理系统*//******头文件(.h)***********/ #include "stdio.h"#include "bios.h"#include "dos.h"#include "conio.h"#include "stdlib.h"#include "string.h"#include "mem.h"#include "ctype.h"#include "alloc.h"typedef struct z1{char num[11];char name[15];float price;int amount;struct z1 *prior;struct z1 *next;}DATA;struct z1 *First;struct z1 *Last;/******函数原型*********/void init();void create();void delete();void search();void save();void load();void append();void copy();void sort();void index();void list();void about();void key();int menu_select();/*******主函数开始**********/ main(){key();for(;;){switch(menu_select()){case 0:init();break;case 1:create();break;case 2:list();break;case 3:search();break;case 4:delete();break;case 5:append();break;case 6:save();break;case 7:load(); break;case 8:copy();break;case 9:sort();break;case 10:index();break;case 11:about();break;case 12:exit(0);}}}menu_select(){char *f[]= {"*****Cang****MENU****KU*****", " 0. init list"," 1. Enter list"," 2. List all \n"," 3. Search record on name"," 4. Delete a record"," 5. Append record to file"," 6. Save data to the file"," 7. Load data from the file"," 8. Copy the file to new file"," 9. Sort on price"," 10. Index on number"," 11. About writer"," 12. Quit" };char s[80];int i;int key=0;int c=0;gotoxy(65,25);printf("By Young shook");gotoxy(1,25);printf("press any key Enter menu......"); getch();clrscr();gotoxy(65,25);printf("By Young shook");textcolor(YELLOW); textbackground(BLUE);gotoxy(10,2);putch(0xda);for(i=1;i<44;i++)putch(0xc4);putch(0xbf);for(i=3;i<22;i++){gotoxy(10,i);putch(0xb3);gotoxy(54,i);putch(0xb3);}gotoxy(10,22);putch(0xc0);for(i=1;i<44;i++)putch(0xc4);putch(0xd9);window(11,3,53,21);clrscr();for(i=0;i<14;i++){gotoxy(10,i+1);cprintf("%s",f[i]);}i=1;gotoxy(10,2);textbackground(LIGHTGREEN); cprintf("%s",f[1]);gotoxy(10,2);while(key!=13){while(bioskey(1)==0);key=bioskey(0);key=key&0xff?key&0xff:key>>8;gotoxy(10,i+1);textbackground(BLUE);cprintf("%s",f[i]);if(key==72) i=i==1?13:i-1;if(key==80)i=i==13?1:i+1;gotoxy(10,i+1);textbackground(LIGHTGREEN);cprintf("%s",f[i]);c=i-1;}textbackground(BLACK);window(1,1,80,25);return c;}void key(){FILE *fp;int m,j,i,z=3;int f,d,s;char password1[7]={0};char password2[7]={0};char password[7]={0};char key[7]={'y','o','u','n','k','s','\0'};textcolor(0);textbackground(3);clrscr();gotoxy(25,8);printf(" * * * * \n");gotoxy(25,9);printf(" * * * \n");gotoxy(25,10);printf(" * * * \n");gotoxy(25,11);printf(" * system ** \n");gotoxy(25,12);printf(" * * * \n");gotoxy(25,13);printf(" * * * \n");gotoxy(25,14);printf(" * * * * \n");getch();clrscr();gotoxy(65,25);printf("By Young shook");if((fp=fopen("key.dat","r"))==NULL){gotoxy(18,5);printf("Welcome to use warehouse system first!");fclose(fp);goto kkk;}else{fclose(fp);goto lll;}kkk:gotoxy(23,10); /*设置初始密码*/ printf("Please set the initial password_1!");gotoxy(41,12);printf("]");gotoxy(23,12);printf("password_1:[");for(j=0;j<6;j++)scanf("%c",&password1[j]) ;password1[j]='\0';getchar();clrscr();gotoxy(18,10);printf("Please set the initial password_2! Again !");gotoxy(36,12);printf("]");gotoxy(18,12);printf("password_2:[");for(f=0;f<6;f++)scanf("%c",&password2[f]) ;password2[f]='\0';getchar();clrscr();if(strcmp(password1,password2)!=0) /*验证设置的密码是否一样*/{gotoxy(20,10);printf("Password does not match!!!\n");getch();clrscr();goto kkk;}else /*对密码进行加密和保存*/ {for(m=0;m<6;m++)password2[m]^=key[m];if((fp=fopen("key.dat","wb+"))!=NULL){fwrite(password2,sizeof(char),7,fp);}else{printf("error!!!");exit(0);}fclose(fp);gotoxy(18,10);printf("set succeed! please come in cangku system!\n");getch();goto ooo;}clrscr(); /* 验证身份*/lll: gotoxy(28,10);printf("Please input password!\n");gotoxy(44,12);printf("]");gotoxy(28,12);printf("password:[");for(s=0;s<6;s++)scanf("%c",&password[s]) ;password[s]='\0';getchar();if((fp=fopen("key.dat","rb"))==NULL){getch();exit(1);}fread(password2,sizeof(char),7,fp);fclose(fp);for(d=0;d<6;d++)password2[d]^=key[d];while(strcmp(password,password2)!=0){clrscr();z--;gotoxy(15,10);if(z==0){gotoxy(28,10);printf("You have no jurisdiction!!!Fool!");}elseprintf("Password mistake, please enter again,only %d times",z);getch();if(z==0)exit(0);elseclrscr();goto lll;}clrscr();gotoxy(10,11);printf("password correct! please press [Enter] come in cangku system!\n");getch();ooo:clrscr();gotoxy(18,10);printf("Welcome to use warehouse system");}void init(){First=NULL;Last=NULL;}void create(){int x;int i;int flag=0;float temp;int kkkk;DA TA *info,*p;if(First!=NULL)init();p=First;for(;;){if(flag==1)break;i=0;x=0;clrscr();gotoxy(65,25);printf("By Young shook");gotoxy(1,3);printf("*************Cang*Ku*Guan*Li*************");gotoxy(1,4);printf(" Input '!' ESC --");gotoxy(1,5);printf("|-----------------------------------------------------|");gotoxy(1,6);printf("| Bianhao | name | price | amount |");for(;;){gotoxy(1,7+x);printf("|---------------|----------------|---------|----------|");info=(DATA *)malloc(sizeof(DA TA));if(!info){printf("\not of memory");exit(0);}info->next=NULL;info->prior=NULL;gotoxy(1,8+x);printf("|");gotoxy(17,8+x);printf("|");gotoxy(34,8+x);printf("|");gotoxy(44,8+x);printf("|");gotoxy(55,8+x);printf("|");gotoxy(2,8+x);inputs(info->num,10);if(info->num[0]=='!'){flag=1;break;}gotoxy(18,8+x);inputs(info->name,14);gotoxy(35,8+x);scanf("%f",&temp);info->price=temp;gotoxy(45,8+x);scanf("%d",&kkkk);info->amount=kkkk;if(p==NULL){First=Last=info;First->prior=NULL;Last->next=NULL;}else{info->next=p;info->prior=p->prior;p->prior=info;}p=info;First=info;x+=2;gotoxy(1,8+x);i++;if(i%9==0)break;}gotoxy(1,8+x);}printf("|---------------|----------------|---------|----------|");}inputs(char *s, int count){char p[255];do{scanf("%s",p);if(strlen(p)>count)printf("\n too long! \n");}while(strlen(p)>count);strcpy(s,p);}void list(){int i=0,n;DA TA *p;clrscr();gotoxy(65,25);printf("By Young shook");p=First;while(i%10==0&&p!=NULL){i=0;clrscr();gotoxy(65,25);printf("By Young shook");printf("\n\n\n");printf("*************************************DATA******************************* ****\n");printf("|Num | Name | Price | Amount |\n");printf("|----------|---------------|---------|----------|\n");while(p!=NULL){printf("|%-10s|%-15s|%9.2f|%10d|\n",p->num,p->name,p->price,p->amount);p=p->next;i++;if(i%10==0)break;}printf("****************************************end****************************** *****\n");printf("Press any key congtinue...\n");getch();}}void print(DATA *p){if(p){clrscr();gotoxy(65,25);printf("By Young shook");printf("\n\n\n");printf("************************************DATA******************************** ****\n");printf("| Num | Name | Price | Amount |\n");printf("|-----------|---------------|----------|---------|\n");printf("|%-11s|%-15s|%10.2f|%9d|\n", p->num,p->name,p->price,p->amount);printf("**************************************end************************************\n");}}DA TA *find(char *num){DA TA *p;p=First;while(p){if(!strcmp(num,p->num))return p;p=p->next;}printf("not found\n");return NULL;}void delete(){DA TA *p;char s[11];clrscr();gotoxy(65,24);printf("By Young shook");gotoxy(1,25);printf("please deleted num\n");scanf("%s",s);if((p=find(s))!=NULL){if(First==p){First=p->next;if(First)First->prior=NULL;elseLast=NULL;}else{p->prior->next=p->next;if(p!=Last)p->next->prior=p->prior;elseLast=p->prior;}free(p);printf("\n have deleted %s DATA\n",s);printf("Don't forget save\n");}}void search(){DA TA *p;char s[15];clrscr();printf("please enter name for search\n");scanf("%s",s);p=First;while(strcmp(p->name,s)&&p!=NULL) p=p->next;if(p==NULL)printf("\nlist no %s DATA\n",s);else{printf("\n\n");print(p);}}/*保存文件*/void save(){FILE *fp;DA TA *p;char outfile[10];clrscr();gotoxy(65,24);printf("By Young shook");gotoxy(1,25);printf("Enter outfile name,for example c:\\f1\\te.txt:\n");scanf("%s",outfile);if((fp=fopen(outfile,"wb"))==NULL){printf("can not open file\n");return;}printf("\nSaving file......\n");p=First;while(p!=NULL){fwrite(p,sizeof(DA TA),1,fp);p=p->next;}fclose(fp);printf("-----save success!!-----\n");}void load(){DA TA *p,*q=NULL;FILE *fp;char infile[10];clrscr();gotoxy(65,24);printf("By Young shook");gotoxy(1,25);printf("Enter infile name,for example c:\\f1\\te.txt:\n");scanf("%s",infile);if((fp=fopen(infile,"rb"))==NULL){printf("can not open file\n");return;}while(First){p=First;First=First->next;free(p);}printf("\n -----Loading file!-----\n");First=(DATA *)malloc(sizeof(DATA));if(!First){printf("out of memory!\n");return; }p=First;while(!feof(fp)){if(1!=fread(p,sizeof(DA TA),1,fp))break;p->next=(DA TA *)malloc(sizeof(DA TA));if(!p->next){printf("out of memory!\n");return;}p->prior=q;q=p;p=p->next;}q->next=NULL;Last=q;First->prior=NULL;fclose(fp);printf("---You have success read data from file!!!---\n"); }void append(){FILE *fp;int kk;DA TA *info;char infile[10];float temp;clrscr();gotoxy(65,25);printf("By Young shook");gotoxy(1,3);printf("********************CK_append**********************"); gotoxy(1,5);printf("|-------------------------------------------------|");gotoxy(1,6);printf("| Num | Name | Price | Amount |"); gotoxy(1,7);printf("|-----------|----------------|---------|----------|");info=(DATA *)malloc(sizeof(DATA));if(!info){printf("\not of memory");exit(0);}info->next=NULL;info->prior=NULL;gotoxy(1,8);printf("|");gotoxy(13,8);printf("|");gotoxy(30,8);printf("|");gotoxy(40,8);printf("|");gotoxy(51,8);printf("|");gotoxy(2,8);inputs(info->num,10);gotoxy(14,8);inputs(info->name,14);gotoxy(31,8);scanf("%f",&temp);info->price=temp;gotoxy(41,8);scanf("%d",kk);info->amount=kk;printf("|------------|---------------|---------|----------| ");printf("\n\n\nEnter infile name,for example c:\\f1\\te.txt:\n");scanf("%s",infile);if((fp=fopen(infile,"ab"))==NULL){printf("can not open file\n");return;}printf("\n -----Appending record!-----\n");if(1!=fwrite(info,sizeof(DA TA),1,fp)){printf("-----file write error!-----\n");return;}printf("-----append sucess!!----\n");fclose(fp);}void copy(){char outfile[10],infile[10];FILE *sfp,*tfp;DA TA *p=NULL;clrscr();gotoxy(65,24);printf("By Young shook");gotoxy(1,25);printf("Enter infile name,for example c:\\f1\\te.txt:\n");scanf("%s",infile);if((sfp=fopen(infile,"rb"))==NULL){printf("can not open input file\n");return;}printf("Enter outfile name,for example c:\\f1\\te.txt:\n");scanf("%s",outfile);if((tfp=fopen(outfile,"wb"))==NULL){printf("can not open output file \n");return;}while(!feof(sfp)){if(1!=fread(p,sizeof(DA TA),1,sfp))break;fwrite(p,sizeof(DA TA),1,tfp);}fclose(sfp);fclose(tfp);printf("you have success copy file!!!\n");}void sort(){DA TA *p0,*p00,*p1,*p11,*p2;int i=1;clrscr();gotoxy(65,25);printf("By Young shook");printf("\n\n start sort....\n");p1=p11=p2=First;while(p1!=NULL){p0=p1;p2=p1;while(p2->next!=NULL){if(p0->price>p2->next->price) p00=p2;p0=p2->next;}p2=p2->next;}Last=p0;if(p1!=p0){p00->next=p0->next;p0->next->prior=p00;p0->next=p1;p1->prior=p0;if(i==1){First=p0;First->prior=NULL;}else{p11->next=p0;p0->prior=p11;}p11=p1=p0;}i++;p1=p1->next;printf("sort sucess!!!\n"); }/*索引*/void index(){DA TA *p,*q,*t,*h1;clrscr();gotoxy(65,25);printf("By Young shook");printf("\n\n start index.....\n\n");h1=First->next;First->next=NULL;Last=First;while(h1!=NULL){t=h1;h1=h1->next;p=First;q=First;while(strcmp(t->num,p->num)>0&&p!=NULL) {q=p;p=p->next;}if(p==q){t->next=p;p->prior=t;First=t;First->prior=NULL;}else{t->next=p;t->prior=q;q->next=t;if(p==NULL)Last=t;elsep->prior=t;}}printf("index sucess!!!\n");}/*作者*/void about() /*关于作者的信息*/{ clrscr(); /*清屏*/gotoxy(1,1);printf("********************************Writer Information******************************");gotoxy(27,5);printf("Writer: Li Peng Xing");gotoxy(27,7);printf("English name: Young shook");gotoxy(27,9);printf("Major: Software engineering");gotoxy(27,11);printf("Class number : 096811");gotoxy(27,13);printf("Student ID: 068109065");gotoxy(27,15);printf("Email address: Youngshookmail@"); }。
c语言课设仓库管理系统
《高级语言程序设计》课程设计小型仓库管理系统题目:班级:学生学号:学生姓名:同组成员:指导老师:提交时间:成绩:华南农业大学信息学院一、需求分析⑴系统概述:本系统用于小型仓库的信息管理,可实现仓库物品信息的增加、删除、查询、显示功能,以及仓库的入库信息记录、出库信息记录、查询指定物品的信息及出入库记录、显示紧缺物品信息的功能,此外还有密码功能,可保护仓库信息的安全性.⑵系统运行环境:本系统方便简捷,对系统的软、硬件要求不高,在任何系统环境下都能很好的运行。
⑶功能需求描述:本系统分为两大块,分别为系统管理和出入库管理。
其中,系统管理包括增加物品信息、删除物品信息、查询物品信息、显示物品信息、设置仓库密码五个功能;出入库管理包括物品出库、物品入库、库存物品查询、显示紧缺物品四个功能。
以下对各功能作一些介绍:a.增加物品信息:新增一条物品信息,包括编号、名称、警界库存量。
b.删除物品信息:可通过物品编号或名称删除该物品的信息,物品数为0时方可删除。
c.查询物品信息:可通过物品编号或名称来查询指定物品的信息,并显示出来d.显示物品信息:该功能可以显示所有库存物品的信息,包括物品编号、名称、警戒库存量、当前库存数。
e.设置仓库密码:为保护仓库数据不被随意窜改,本系统要求仓库管理员设置密码,成功后可随意更改。
f.物品入库:通过物品编号或名称可实现该指定物品的入库操作,记录下该物品的入库信息,包括物品编号、入库物品数量、物品单价、提供商、采购员五个信息.g.物品出库:通过物品编号或名称可实现该指定物品的出库操作,记录下该物品的出库信息,包括物品编号、出库物品数量、提货原因、提货员四个信息。
如果申请的提货数量超过当前库存数时,则操作失败。
h.库存物品查询:通过物品编号或名称可查找该指定物品的信息,包括编号、名称、警戒库存量、当前库存数五个信息,以及该物品所有的入库与出库信息。
i. 显示紧缺物品:可以显示出所有库存数低于警戒库存量的物品信息包括物品编号、名称、警戒库存量、当前库存数五个信息点。
仓库管理系统(c语言)
作品名称开发者:一、系统背景:本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷及时准确的调整货物的仓储量达到最合理化。
可以使店主不失效率的节省大量精力用于其他方面符合当今社会的商业形式而且本软件体积小操作简单是管理仓库的不二选择二、系统简介:设计亮点:◆三级菜单使操作更简便明了◆密码操作能有效保证客户信息的安全性◆独特的dos命令调用使信息存储的实体属性为隐藏且无扩展名大大增大了安全系数◆数据结构为链表摆脱了数据数量的限制◆提供三种查看模式并会标出排名◆退出店主模式时会提示是否保存若选择yes着进行保存操作基本功能:·在员工模式下可输入卖出货物的名称和数目程序自动在后台进行一系列的操作·新建数据并同时对其处理·修改数据·插入数据·删除数据·查找数据·查看数据·数据存档·修改密码三、系统结构图#define LEN sizeof(struct shop) #include<>#include<>#include<>#include<>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;h_p=&head;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);}while(b!=9);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));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--;*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->pr ice_out,i->num_in,i->num_now,i->num_sold,i->win,i->percent,c);if(c%8==0){getch();getchar();printf("按任意键继续。
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语言课程设计仓库管理系统一、教学目标本课程旨在通过学习C语言,让学生掌握仓库管理系统的基本概念和基本操作,培养学生的实际编程能力和问题解决能力。
知识目标:使学生了解仓库管理系统的基本结构,掌握C语言的基本语法,理解数据结构和相关算法。
技能目标:培养学生能够使用C语言进行程序设计,具备基本的编程能力和问题解决能力,使学生能够独立完成简单的仓库管理系统的设计和实现。
情感态度价值观目标:培养学生对计算机编程的兴趣,增强学生的自信心,培养学生的创新精神和团队合作精神。
二、教学内容本课程的教学内容主要包括C语言的基本语法,数据结构,算法和程序设计。
具体包括:1.C语言的基本语法:数据类型,运算符,表达式,语句,函数等。
2.数据结构:数组,链表,栈,队列等。
3.算法:排序,查找等。
4.程序设计:设计思想和方法,程序的调试和优化。
三、教学方法本课程将采用讲授法,讨论法,案例分析法和实验法等多种教学方法。
1.讲授法:通过讲解C语言的基本语法,数据结构,算法和程序设计的相关知识,使学生掌握基本概念和基本操作。
2.讨论法:通过分组讨论,让学生深入理解仓库管理系统的设计和实现,培养学生的问题解决能力和团队合作精神。
3.案例分析法:通过分析实际案例,使学生了解仓库管理系统的实际应用,提高学生的实际编程能力。
4.实验法:通过实验,让学生亲手编写代码,培养学生的实际编程能力和问题解决能力。
四、教学资源本课程的教学资源主要包括教材,参考书,多媒体资料和实验设备。
1.教材:选用权威的C语言教材,使学生掌握C语言的基本语法和基本操作。
2.参考书:提供相关的参考书籍,丰富学生的知识面。
3.多媒体资料:制作精美的多媒体课件,生动形象的展示C语言的编程过程,提高学生的学习兴趣。
4.实验设备:提供充足的计算机设备,让学生亲手编写代码,培养学生的实际编程能力和问题解决能力。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多种方式,以全面、客观、公正地评估学生的学习成果。
仓库管理系统(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语言
仓库物资管理系统课程设计课程名称:程序设计基础姓名:学号:班级:联系方式:1、课程设计目的和要求目的:进一步加深、巩固学生所学专业课程《 C 程序设计》的基本理论知识,理论联系实际,培养学生综合分析问题和解决问题的能力。
掌握运用 C 语言独立地编写、调试应用程序和进行其它相关设计的技能。
要求:编写仓库管理系统,实现库存记录、出库记录、入库记录等三方面的功能。
2、课程设计名称及内容2.1 课程设计名称仓库物资管理系统2.2 设计内容设计一个仓库物资管理系统,该系统要求对仓库物资信息进行管理和维护,实现仓库物资信息化。
2.3 任务和要求1.创建库存记录文件,根据提示输入若干电器的信息,并将信息保存至一个文件中。
2.物资入库管理,创建一个入库记录文件,每次有物资入库,则按入库记录要求输入各项信息,并将该次的入库信息添加到文件中,同时修改相应的库存记录文件。
3.物资出库管理,创建一个出库记录文件,每次有物资出库,则按出库记录要求输入各项信息,并将该次的出库信息添加到文件中,同时修改相应的库存记录文件。
注意:物资出库时要检查出库数量的合法性(即出库数量必须小于库存数量)。
4.按不同条件进行查询操作,输出满足条件的物资信息。
(1)输入电器名称,在库存记录文件中查找相应的物资信息并输出。
(2)输入品牌名称,在库存记录文件中查找该品牌的所有电器信息并输出。
(3)输入一个日期(年 . 月. 日),输出该天的入库记录和出库记录。
(4)输入电器名称和型号,输出该电器的所有入库记录和出库记录。
5.按不同条件对物资信息进行统计工作。
(1)输入电器名称,在库存记录文件中统计该电器的现有库存总量。
(2)输入电器名称,在入库记录文件中统计该电器的入库次数。
(3)输入一个日期(年 .月),在出库记录文件中统计该月的出库记录次数。
(4)设置一个库存数量警戒值,输出库存数量小于该警戒值的所有库存电器的信息。
3.设计思想作为仓库物资管理系统,首先要有对物资信息的录入,库存记录应包括以下信息:电器名称、品牌名称( 或生产厂家 ) 、型号、库存数量、价值。
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.高效的数据管理:仓库管理系统需要能够高效地管理和记录各种物料的入库、出库和库存情况,确保数据的准确性和及时性。
3.强大的查询和统计功能:企业需要通过仓库管理系统了解物料的库存情况、流向情况等重要信息,因此系统需要具备强大的查询和统计功能。
仓库管理系统模板的功能设计1.物料管理:包括物料的名称、规格、单位、库存数量等信息的管理和录入。
2.入库管理:记录物料的入库情况,包括入库时间、数量、供应商等信息。
3.出库管理:记录物料的出库情况,包括出库时间、数量、客户等信息。
4.库存管理:实时更新和管理各种物料的库存情况,确保库存数据的准确性。
5.数据查询:提供各种条件的数据查询功能,方便员工了解物料的库存情况和流向情况。
6.数据统计:提供各种类型的数据统计功能,方便企业管理层了解物料的库存变化趋势和业务情况。
仓库管理系统模板的技术实现1.界面设计:采用C语言的图形界面库,如ncurses库,实现仓库管理系统的用户界面。
2.数据管理:采用文件系统来管理物料、入库、出库、库存等数据,确保数据的安全性和可靠性。
3.查询与统计:采用C语言的数据结构和算法,实现高效的数据查询和统计功能。
4.用户权限管理:对于不同的用户角色,设置相应的权限,确保系统的安全性和稳定性。
仓库管理系统模板的实现步骤1.需求分析:明确仓库管理系统的功能和性能需求,分析用户裙体和使用场景。
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仓库管理系统 The latest revision on November 22, 2020employee(员工)的类声明头文件包含employee类的实现代码Salesman(售货员)的类声明头文件包含Salesman类的实现代码warehouseman(库管员)的类声明头文件包含Warehouseman类的实现代码manager (经理)的类声明头文件包含manager类的实现代码EmployeeList类(员工链表)的类声明头文件包含EmployeeList类的实现代码主程序加一个售货员"<<endl;cout<<"2.添加一个库管员"<<endl;cout<<"3.添加一个经理"<<endl;cout<<"4.计算所有员工的月薪"<<endl;cout<<"5.显示所有员工的详细信息"<<endl;cout<<"6.保存并退出"<<endl;//检查用户输入while ( opr!='1' && opr!='2' && opr!='3'&& opr!='4'&& opr!='5'&&opr!='6'){cout<<"您的输入有误,请重新输入!"<<endl;cin >> opr;}//读入用户的操作项cin >> opr;switch(opr){//添加一个售货员case '1':pEmployee = new Salesman();(pEmployee);break;//添加一个库管员case '2':pEmployee = new Warehouseman();(pEmployee);break;//添加一个经理case '3':pEmployee = new Manager();(pEmployee);break;case '4'://计算员工链表中所有员工的月薪();break;case '5'://显示员工链表中所有员工的详细信息();break;case '6'://将所有员工的详细信息保存到纪录文件上,并退出();return;break;default:break;}}}。
C# 仓库管理系统
目录第一章综述 (1)1.1问题的提出 (1)1.2研究现状 (1)1.2.1传统企业库存管理系统存在的问题 (1)1.2.2现代企业库存管理系统的特点 (1)1.3可行性分析 (2)1.4技术方案 (3)1.4.1系统开发工具 (3)1.4.2实施步骤 (5)第二章系统分析 (7)2.1系统需求分析 (7)2.1.1摘要 (7)2.1.2系统的需求分析调查 (7)2.1.3经需求分析后的系统开发目标 (8)2.2业务流程分析 (8)2.2.1业务流程图 (8)2.3数据流程分析 (10)2.3.1外部实体 (10)2.3.2数据处理 (10)2.3.3数据流 (10)2.3.4数据存储 (10)2.4系统数据流程图 (11)2.4.1本系统顶层数据流程图 (11)2.4.2本系统第一层数据流程图 (12)2.4.3仓库管理信息系统数据流程图分解 (14)2.4.4渔阳建业库存管理信息系统数据字典 (17)第三章系统设计 (24)3.1系统总体设计描述 (24)3.1.1系统总体功能模块图 (25)3.2 开发环境 (26)3.2.1 软件环境 (26)3.2.2 硬件环境 (26)3.3数据库设计 (26)3.3.1 数据库设计概述 (26)3.3.2数据库概念结构设计 (27)3.3.3数据库逻辑结构设计 (33)3.3.4代码设计 (35)3.4输入输出设计 (36)3.4.1输出设计 (36)3.4.2输入设计 (37)第四章系统实施 (39)4.1 登录界面实现 (39)4.2主界面的实现 (43)4.3各分界面的实现 (48)第五章总结 (53)参考文献 (54)致谢 (55)英文资料 (56)中文译文 (60)第一章综述1.1问题的提出传统的仓库管理,一般依赖于一个非自动化的、以纸张文件为基础的系统来记录、追踪进出的货物,完全由人工实施仓库内部的管理,因此仓库管理的效率极其低下,所能管理的仓库规模也很小。
C语言--仓库管理系统006资料
#include <malloc.h>#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct scorenode)#define DEBUG#include <string.h>struct scorenode{int number;/* 编号*/ char name[10];/* 物品名*/ int wpgs;/* 物品个数*/ float wpjj;/* 物品进价*/ float wpxsj;/* 物品销售价*/ struct scorenode *next;};typedef struct scorenode score;int n,k;/*n,k 为全局变量,本程序中的函数均可以使用它*//*==============================================================================================*//*==============================================================================================*/score *add2311(score *head,score *stu)/*函数add2311,功能:追加物品资料,并且将所有物品资料按编号排序*/{score *p0,*p1,*p2,*p3,*max;int i,j;float fen;char t[10];p3=stu=(score *)malloc(LEN);/* 开辟一个新单元*/printf(" 输入要增加的物品的资料!\n");repeat4: printf(" 请输入物品编号(编号应大于0):"); scanf("%d",&stu->number); /* 输入编号,物品编号应大于0*//******************************************************/if(stu->number==0)goto end2;/* 当输入的物品编号为0 时,转到末尾,结束追加*/else{p3=head;if(n>0){for(i=0;i<n;i++) {if(stu->number!=p3->number)p3=p3->next;else{printf(" 物品编号重复,请重输!\n");goto repeat4;/* 当输入的物品编号已经存在,程序报错,返回前面重新输入*/}}}}/******************************************************/printf(" 输入物品名:"); scanf("%s",stu->name); /* 输入物品名*/ printf(" 请输入物品个数:");scanf("%f",&stu->wpgs); /* 输入个数*/ printf(" 请输入物品进价:");scanf("%f",&stu->wpjj);/* 输入物品进价*/printf(" 请输入物品销售价):"); scanf("%f",&stu->wpxsj);/* 输入物品销售价*/p1=head;p0=stu; if(head==NULL) {head=p0;p0->next=NULL;}/* 当原来链表为空时,从首结点开始存放资料*/ else/* 原来链表不为空*/{ if(p1->next==NULL)/* 找到原来链表的末尾*/{ p1->next=p0;p0->next=NULL;/* 将它与新开单元相连接*/}else{ while(p1->next!=NULL)/* 还没找到末尾,继续找*/{ p1=p1->next;} p1->next=p0;p0->next=NULL;}} n=n+1;p1=head;p0=stu;for(i=1;i<n;i++){for(j=i+1;j<=n;j++){max=p1;p1=p1->next;if(max->number>p1->number){ k=max->number;max->number=p1->number;p1->number=k;/* 交换前后结点中的编号值,使得编号大者移到后面的结点中*/strcpy(t,max->name); strcpy(max->name,p1->name);strcpy(p1->name,t);/* 交换前后结点中的物品名,使之与编号相匹配*/fen=max->wpgs;max->wpgs=p1->wpgs;p1->wpgs=fen;/* 交换前后结点中的物品个数,使之与编号相匹配*/fen=max->wpjj; max->wpjj=p1->wpjj;p1->wpjj=fen;/* 交换前后结点中的物品进价,使之与编号相匹配*/fen=max->wpxsj; max->wpxsj=p1->wpxsj;p1->wpxsj=fen;/* 交换前后结点中的物品销售价,使之与编号相匹配*/ }}max=head;p1=head;/* 重新使max,p 指向链表头*/} end2:printf(" 现在的物品个数为:%d 个!\n",n); return(head);/*==============================================================================================*//*==============================================================================================*/score *search2311(score *head)/*函数search2311功能:查询物品资料*/{int nu mber;score *p1,*p2;printf(" 输入要查询的物品的编号,");scanf("%d",&number);while(number!=0){if(head==NULL){printf("\n 没有任何物品资料!\n");return(head);}printf(" -------------------------- \n");printf("|编号\t|物品名\t\t|个数\t|进价\t|销售价\t|\n");printf(" -------------------------- \n");/* 打印表格域*/p1=head;while(number!=p1->number&&p1->next!=NULL){p1=p1->next;}if(number==p1->number){printf("|%d\t|%s\t|%f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->wpgs,p1->wpjj,p1->wpxsj); printf(" -------------------------- \n");}/* 打印表格域*/elseprintf("%d 不存在此物品!\n",number);printf(" 输入要查询的物品的编号,");scanf("%d",&number);}printf(" 已经退出了!\n");return(head);}/*==============================================================================================*//*==============================================================================================*/ void print2311(score *head)/*函数print2311,功能:显示物品资料*/{score *p;if(head==NULL){printf("\n 没有任何物品资料!\n");}else{printf("%d\n",n);printf(" -------------------------- \n");printf("|编号\t|物品名\t|个数\t|进价\t|销售价\t|\n");printf(" -------------------------- \n");/* 打印表格域*/p=head;do{printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p->number,p->name,p->wpgs,p->wpjj,p->wpxsj); printf(" -------------------------- \n");/* 打印表格域*/p=p->next;}while (p!=NULL);/* 打印完成了*/}}/*==============================================================================================*//*==============================================================================================*/score *taxis2311(score *head)/* 定义排序函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
employee(员工)的类声明头文件
包含employee类的实现代码
Salesman(售货员)的类声明头文件
包含Salesman类的实现代码
warehouseman(库管员)的类声明头文件
包含Warehouseman类的实现代码
manager (经理)的类声明头文件
包含manager类的实现代码
EmployeeList类(员工链表)的类声明头文件
包含EmployeeList类的实现代码
主程序
加一个售货员"<<endl;
cout<<"2.添加一个库管员"<<endl;
cout<<"3.添加一个经理"<<endl;
cout<<"4.计算所有员工的月薪"<<endl;
cout<<"5.显示所有员工的详细信息"<<endl;
cout<<"6.保存并退出"<<endl;
//检查用户输入
while ( opr!='1' && opr!='2' && opr!='3'&& opr!='4'&& opr!='5'&& opr!='6')
{
cout<<"您的输入有误,请重新输入!"<<endl;
cin >> opr;
}
//读入用户的操作项
cin >> opr;
switch(opr)
{
//添加一个售货员
case '1':
pEmployee = new Salesman();
(pEmployee);
break;
//添加一个库管员
case '2':
pEmployee = new Warehouseman();
(pEmployee);
break;
//添加一个经理
case '3':
pEmployee = new Manager();
(pEmployee);
break;
case '4':
//计算员工链表中所有员工的月薪
();
break;
case '5':
//显示员工链表中所有员工的详细信息
();
break;
case '6':
//将所有员工的详细信息保存到纪录文件上,并退出
();
return;
break;
default:
break;
}
}
}。