




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、作品名称开发者:一、 系统背景:本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷及时准确的调整货物的仓储量达到最合理化。可以使店主不失效率的节省大量精力用于其他方面 符合当今社会的商业形式而且本软件体积小操作简单是管理仓库的不二选择二、 系统简介:设计亮点:三级菜单使操作更简便明了密码操作能有效保证客户信息的安全性独特的dos命令调用使信息存储的实体属性为隐藏且无扩展名大大增大了安全系数数据结构为链表摆脱了数据数量的限制提供三种查看模式并会标出排名退出店主模式时会提示是否保存若选择yes着进行保存操作基本功能:·在员工模式下可输入卖出货物的名称和数目程序自动在后台进行
2、一系列的操作·新建数据并同时对其处理·修改数据·插入数据·删除数据·查找数据·查看数据·数据存档·修改密码三、 系统结构图 1 / 26#define LEN sizeof(struct shop)#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>struct shopchar name30;float price_in;float price_out;int num_in;in
3、t 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 rewr
4、ite(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
5、(struct shop *head);struct shop *addbuild(struct shop *h_p);void sort0(struct shop *h_p);int search1(struct shop *h_p,char a30);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);
6、int a;struct shop *head,*h_p;head=NULL;h_p=&head;auto1(h_p);doa=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();doswitch(a)case 1:a
7、ssistant(head);break;case 2:if(password()dob=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
8、');getchar();doswitch(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();sc
9、anf("%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"
10、;);printf("*n");printf(" 仓库管理系统 n");printf("*n");printf(" n");printf(" #* 菜单 *# n");printf(" #| 1.员工模式 |# n");printf(" #| 2.店主模式 |# n");printf(" #| 3.退出 |# n");printf(" #*# n");printf(" n");printf(&qu
11、ot;n请选择(1-3):");void assistant(struct shop *head)char a50,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
12、(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
13、);int password(void)FILE*fp;char a50,b50;int i;system("cls");fp=fopen("c:y_secrea","rb");fscanf(fp,"%s",&a);fclose(fp);printf("请输入密码:n");putchar('n');i=0;dobi=getch();printf("*");i+;while(bi-1!=13&&i<19);bi-1='0
14、39;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(&
15、quot; #| 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”.nn"
16、;);i=j=addbuild(&head);if(strcmp(i->name,"0")=0)f=0;while(f)n+;if(n=1)head=j;f=1;printf("n请输入下一种货物的数据.nn");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 a30;struct
17、 shop *i,*j,*head;head=*h_p;i=head;doprintf("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->
18、;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->n
19、um_sold=j->num_sold;i->win=j->win;i->percent=j->percent; free(j); printf("n修改完成_nn"); 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(str
20、cmp(i->name,x->name)>=0) if(i=head) head=x; else j->next=x; x->next=i; else i->next=x; x->next=NULL; printf("n插入完成_nn.");*h_p=head;void deleat(struct shop *h_p)struct shop*i,*j,*head;char a30,b;head=*h_p;dosystem("cls");printf("n请输入你要删除的货物的名称:n");pu
21、tchar('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-&
22、gt;next!=NULL) j=i; i=i->next; if(strcmp(i->name,a)=0) if(i=head) head=i->next; free(i); else j->next=i->next; n-; printf("n删除完成_.nn"); *h_p=head;end:;void search(struct shop *h_p)int begin,end,mid,t;char a30;struct shop *i,*head;head=*h_p;i=head;printf("n请输入要查询货物的名称:&q
23、uot;);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
24、_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')dosystem("cls");print3();scanf("%d",&a);while(a!=1&&a!=2&
25、;&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->n
26、ame,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("按任意键继续。n");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
27、->name,i->price_in,i->price_out,i->num_in,i->num_now,i->num_sold,i->win,i->percent,c); getch();getchar();system("cls");printf("查看其他排列方式?(y/n):");scanf("%c",&b);putchar('n');void save(struct shop *head)FILE *fp;struct shop *i;system(&q
28、uot;attrib c:y_data -h");system("del c:y_data");fp=fopen("c:y_data","wb+");i=head;for(i=head;i->next!=NULL;i=i->next)fprintf(fp,"%s%7.2f,%.2f,%d,%d,%d,%.2f,%.2f,",i->name,i->price_in,i->price_out,i->num_in,i->num_now,i->num_sold,i-
29、>win,i->percent); fprintf(fp,"%s%7.2f,%.2f,%d,%d,%d,%.2f,%.2f,",i->name,i->price_in,i->price_out,i->num_in,i->num_now,i->num_sold,i->win,i->percent); fclose(fp);system("attrib c:y_data +h");printf("n_已保存n");void password_set()FILE *fp;int i
30、,f=0,t=0;char a20,b20;doif(password()dosystem("cls");printf("请输入新密码(319位):n");putchar('n');i=0;doai=getch();printf("*");i+;while(ai-1!=13&&i<19);ai-1='0'printf("n请确认新密码:n");putchar('n');i=0;dobi=getch();printf("*");
31、i+;while(bi-1!=13&&i<19);bi-1='0'if(strcmp(a,b)=0&&i>2)t=1;system("attrib c:y_secrea -h");system("del c:y_secrea");fp=fopen("c:y_secrea","wb+");fprintf(fp,"%s",a);fclose(fp);printf("n密码修改完成_n");while(t=0);elsef
32、+;if(f=3)break;while(t=0);int password_exi(struct shop *h_p)FILE *fp;if(fp=fopen("c:y_secrea","rb")!=NULL)fclose(fp);return 1;else password_create();creat(h_p);save(*h_p);return 0;int data_exi(struct shop *h_p)FILE *fp;if(fp=fopen("c:y_data","rb")!=NULL)fclose
33、(fp);return 1;elsecreat(h_p);save(*h_p);return 0;void load(struct shop *h_p)FILE *fp;struct shop *head,*i,*j;head=NULL;j=i=(struct shop *)malloc(LEN);if(fp=fopen("c:y_data","rb")!=NULL)while(!feof(fp)fscanf(fp,"%s%f,%f,%d,%d,%d,%f,%f",i->name,&i->price_in,&
34、;i->price_out,&i->num_in,&i->num_now,&i->num_sold,&i->win,&i->percent);n+;if(n=1)head=j;if(!feof(fp)i=(struct shop*)malloc(LEN);j->next=i;j=i;j->next=NULL;*h_p=head;fclose(fp);struct shop *addbuild(struct shop *h_p)struct shop *i;int b,f;float c;char a30;i
35、=(struct shop *)malloc(LEN);dof=0;printf("n请输入名称:nn");scanf("%s",a);if(n>=1&&search1(h_p,a)printf("n名称重复!n");f=1;while(f);strcpy(i->name,a);if(strcmp(i->name,"0")=0)return(i);printf("请输入进价:nn");scanf("%f",&c);i->pric
36、e_in=c;printf("请输入售价:nn");scanf("%f",&c);i->price_out=c;printf("请输入进货数目:nn");scanf("%d",&b);i->num_in=b;printf("请输入现存数目:nn");scanf("%d",&b);i->num_now=b;i->num_sold=i->num_in-i->num_now;i->win=(i->num_in-
37、i->num_now)*(i->price_out-i->price_in);i->percent=(i->price_out-i->price_in)/(i->price_in);return(i);void sort0(struct shop *h_p)struct shop *i,*j,*z,*sei,*jt,*seit;int ni,nj,np,t;char sm30;if(n>=2)for(i=*h_p,ni=1;i->next!=NULL;i=i->next,ni+) strcpy(sm,i->name);np=ni
38、; for(j=i->next,nj=ni+1;j->next!=NULL;j=j->next,nj+) if(strcmp(sm,j->name)>0) np=nj; strcpy(sm,j->name); if(j->next=NULL)if(strcmp(sm,j->name)>0) np=nj; if(np!=ni) for(t=1,j=*h_p;t<np-1;j=j->next,t+); jt=j->next; i=jt; if(ni=1) seit=*h_p; z=*h_p; *h_p=j->next;
39、j->next=z; else for(t=1,sei=*h_p;t<ni-1;sei=sei->next,t+); seit=sei->next; z=sei->next; sei->next=j->next; j->next=z; z=jt->next;jt->next=seit->next;seit->next=z;int search1(struct shop *h_p,char a30)struct shop *i;int j;for(i=*h_p,j=1;j<n;j+,i=i->next)if(st
40、rcmp(a,i->name)=0)return 1;if(strcmp(a,i->name)=0)return 1;elsereturn 0;void sort1(struct shop *h_p)struct shop *i,*j,*z,*sei,*jt,*seit;int ni,nj,np,t;int sm;if(n>=2)for(i=*h_p,ni=1;i->next!=NULL;i=i->next,ni+) sm=i->num_sold;np=ni; for(j=i->next,nj=ni+1;j->next!=NULL;j=j->
41、;next,nj+) if(sm<j->num_sold) np=nj; sm=j->num_sold; if(j->next=NULL)if(sm<j->num_sold) np=nj; if(np!=ni) for(t=1,j=*h_p;t<np-1;j=j->next,t+); jt=j->next; i=jt; if(ni=1) seit=*h_p; z=*h_p; *h_p=j->next; j->next=z; else for(t=1,sei=*h_p;t<ni-1;sei=sei->next,t+);
42、 seit=sei->next; z=sei->next; sei->next=j->next; j->next=z; z=jt->next;jt->next=seit->next;seit->next=z;void sort2(struct shop *h_p)struct shop *i,*j,*z,*sei,*jt,*seit;int ni,nj,np,t;float sm;if(n>=2)for(i=*h_p,ni=1;i->next!=NULL;i=i->next,ni+) sm=i->win;np=ni;
43、 for(j=i->next,nj=ni+1;j->next!=NULL;j=j->next,nj+) if(sm<j->win) np=nj; sm=j->win; if(j->next=NULL)if(sm<j->win) np=nj; if(np!=ni) for(t=1,j=*h_p;t<np-1;j=j->next,t+); jt=j->next; i=jt; if(ni=1) seit=*h_p; z=*h_p; *h_p=j->next; j->next=z; else for(t=1,sei=*h_p;t<ni-1;sei=sei->next,t+); seit=sei->next; z=sei->next; sei->next=j->next; j->next=z; z=jt->next;jt->next=seit->next;seit->next=z;void sort3(struct shop *h_p)struct shop *i,*j,*z,*sei,*jt,*seit;int ni,nj,np,t;float sm;if(n>=2)fo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政法学实践中的应用与试题及答案
- 历史人物对现代管理的启发试题及答案
- 行政管理专业文化概论试题及答案
- 护理职业发展策略试题及答案
- 突破行政法学考试的困境试题及答案
- 2025年药师药品使用技巧试题及答案
- 2025年执业药师案例分析试题及答案
- 2025年药师考试常见药物知识试题及答案
- 2025年语文考试复习手册试题及答案
- 2025年卫生资格考试快速复习技巧试题及答案
- 施工现场安全隐患检查表
- 酒店业大数据分析与精准营销应用
- 《太阳升起来了》课件
- 近五年重庆中考数学真题及答案2024
- 扫地机器人结构设计说明书
- 汽车清洁保养服务合同示范文本
- 【基于单片机的电梯控制系统设计7000字(论文)】
- HY/T 0379-2023赤潮灾害风险评估与区划导则
- 郑和完整版本
- 2024年安庆市金融控股集团有限公司招聘笔试参考题库附带答案详解
- SJ-T 11841.2.2-2022 显示系统视觉舒适度 第2-2部分:平板显示-蓝光测量方法
评论
0/150
提交评论