当前位置:首页 > 代码 > 正文

简单进销存管理系统源代码(企业进销存管理系统代码)

admin 发布:2022-12-19 19:28 133


本篇文章给大家谈谈简单进销存管理系统源代码,以及企业进销存管理系统代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

寻一个ASP的在线显示进销存的简单系统源码

WEB进销存管理系统功能介绍

产品入库,入库查询 (对已有产品可快速入库)

库存管理,库存调拨 (可设置库存报警功能,库存不足的情况下程序将自动报警)

产品出库,出库查询

统计报表 (各时段统计)

会员管理

员工管理

工资管理

单位管理

仓库管理

产品分类管理 (设置二级分类)

免费下载地址:

「源码分享」ASP.NET仓库进销存ERP管理系统+小程序源码

开发环境为Visual Studio 2012,数据库为SQL SERVER2012R2,使用.net 4.5开发。

一、源码介绍

所有行业的ERP系统/进销存/仓库系统,该系统为vs2012 .net+MsSQL版,目前标准版功能简单、明了、满足公司正常使用,已有多家企业正常使用,成熟稳定,有需要的可以下载看看。

二、主要功能

1、电商管理(可以和公众号、小程序对接) 微信订单、小程序订单、公众号订单

参数设置:轮播图片设置、分类导航设置、小程序参数设置、公众号参数设置

2、销售管理:销售订单、销售出库

3、采购管理:采购订单、采购入库

4、生产管理:BOM分组、BOM清单、生产计划、生产领料、生产入库

5、仓库管理:其他入库、其他出库、商品组装、商品拆卸、库存盘点、库存调拨

6、财务管理:销售收款、其他收款、采购付款、其他付款、收款核销、付款核销

7、采购报表

采购订单跟踪表 采购明细表 采购汇总表(按商品) 采购汇总表(按供应商)

8、销售报表

销售订单跟踪表 销售明细表 销售汇总表(按商品) 销售汇总表(按客户)

9、生产报表

生产计划跟踪表 生产领料明细表 生产领料汇总表 生产入库明细表 生产入库汇总表

10、仓存报表

商品库存余额表 商品收发明细表 商品收发汇总表

11、资金报表

现金银行报表 应付账款明细表 应收账款明细表

客户对账单 供应商对账单 其他收支明细

12、基础资料

供应商管理 商品管理 仓库管理 账户管理 员工管理 企业号通讯录

工序管理 辅助资料 客户类别 供应商类别 商品类别 商品品牌

收支类别 计量单位 结算方式 工序类别 高级设置 操作日志

参数设置 打印设置 Logo印章

3、默认数据库连接字符串在web.config配置文件中修改

获取源码方式:点赞+转发+关注+私信【进销存ERP】

******************************************************************************

欢迎点赞+转发+关注!大家的支持是我分享最大的动力!!!

******************************************************************************

求一个C语言课程设计题的源程序代码,题目是:商品进销存管理程序。

#includestdio.h

#include string.h

#define NULL 0

#define LEN sizeof(struct student)

struct date

{ int year;

int month;

int day;

};

struct xueke

{

int pingshi;

int shiyan;

int kaoshi;

float zchji;

};

struct student

{

int num;

char name[10];

char sex;

struct date birthday;

struct xueke xk[2];

struct student *next; /*指向下一个结构体数据类型*/

};

typedef struct student score; /*用score来代替类型struct student*/

int n,k; /*n.k为全局变量,n表示结点个数,k表示人数*/

score *r=NULL; /*定义一个全局变量指针*/

score *stu;

/***************************************菜单***********/

int caidan(k)

{

int i;

printf("\n\n\n\t\t\t\t考试成绩管理系统\n");

printf("\t\t\t作者:薛文波、魏文清、姚志浩\n");

for(i=1;i79;i++)

printf("*");

printf("\n");

printf("1.输入学生资料\t\t2.输出学生资料\t\t3.统计学生资料\n");

printf("4.删除学生资料\t\t5.查询学生资料\t\t6.排序学生资料\n");

printf("7.插入学生资料\t\t8.更新学生资料\t\t9.保存学生资料\n");

printf("0.退出!\n");

for(i=1;i79;i++)

printf("*");

printf("\n");

printf("请输入你所要操作的选项:");

scanf("%d",k);

printf("\n");

getchar();

return(k);

}

/**************************************************/

save(score *head)

{

score *q=head;

FILE *fp; /*调用fopen()函数打开磁盘文件*/

char wjlj[90];

printf("请输入文件的路经:");

scanf("%s",wjlj);

if((fp=fopen(wjlj,"w"))==NULL) /*为读、写建立一个新的二进制文件 */

{

printf("文件打开失败!\n");

return(0);

}

fprintf(fp,"*****************************************************************************\n");

fprintf(fp,"|学号|姓名|性别|生 日 |");

fprintf(fp,"C(平时.实验.考试.综合)|");

fprintf(fp,"高数(平时.实验.考试.综合)\n");

fprintf(fp,"*****************************************************************************\n");

while(q!=NULL)

{

fprintf(fp,"|%4d|%4s|%4c|%4d-%2d-%2d|",q-num,q-name,q-sex,q-birthday.year,q-birthday.month,q-birthday.day);

fprintf(fp,"%5d|%5d|%5d|%.1f|",q-xk[0].pingshi,q-xk[0].shiyan,q-xk[0].kaoshi,q-xk[0].zchji);

fprintf(fp,"%5d|%5d|%5d|%.1f\n",q-xk[1].pingshi,q-xk[1].shiyan,q-xk[1].kaoshi,q-xk[1].zchji);

q=q-next;

}

fclose(fp); /*关闭文件指针fP指向的文件*/

printf("文件已保存\n");

return(0);

}

/*******************************************输入模块*******/

score *creat(void)

{

score *head,*p1,*p2; /*定义一个头指针和两个工作点*/

int i;

head=NULL;

n=0;

p1=(struct student *)malloc(LEN); /*用P1开辟一个新单元*/

printf("1.请输入学生资料(输0退出):\n");

printf("a.请输入学生学号(学号应大于0):");

scanf("%d",p1-num);

while(p1-num0)

{

printf("输入错误,请重新输入:"); /* 学号小于零报错*/

scanf("%d",p1-num);

}

while(p1-num!=0)

{ printf("b.请输入学生的姓名:");

scanf("%s",p1-name);

printf("请输入学生的性别(MF):");

scanf(" %c",p1-sex);

while(p1-sex!='M'p1-sex!='F') /*判断输入性别时的字母是否为M或F*/

{

printf("输入错误,请重新输入学生的性别:");

scanf(" %c",p1-sex);

}

printf("c.请输入学生的生日(年.月.日):");

scanf(" %d.%d.%d",p1-birthday.year,p1-birthday.month,p1-birthday.day);

printf("d.请输入学生的成绩!\n");

printf("1.请输入 C 成绩(平时,实验,考试):");

scanf(" %d,%d,%d",p1-xk[0].pingshi,p1-xk[0].shiyan,p1-xk[0].kaoshi);

p1-xk[0].zchji=p1-xk[0].pingshi*0.1+p1-xk[0].shiyan*0.2+p1-xk[0].kaoshi*0.7;

printf("2.请输入高数成绩(平时,实验,考试):");

scanf(" %d,%d,%d",p1-xk[1].pingshi,p1-xk[1].shiyan,p1-xk[1].kaoshi);

p1-xk[1].zchji=p1-xk[1].pingshi*0.1+p1-xk[1].shiyan*0.2+p1-xk[1].kaoshi*0.7;

n=n+1; /*结点个数加一*/

if(n==1) head=p2=p1; /*若为首结点,则头指针指向本结点*/

else p2-next=p1;

p2=p1; /*若不是首结点 则把本结点链接到尾部*/

p1=(struct student *)malloc(LEN);

printf("********************************\n");

printf("1.请输入学生资料(输0退出):\n");

printf("a.请输入学生的学号(学号应大于0):");

scanf("%d",p1-num);

while(p1-num0) /*判断输入的学号是否小于0*/

{

printf("输入错误,输入错误请重新输入学号:");

scanf("%d",p1-num);

}

}

p2-next=NULL; /* 最后结点不指向任何地址*/

free(p1); /*释放结点占用空间*/

return(head);

}

/*****************************************输出模块********/

void print(score *head)

{

score *q=head;

printf("\n输出%d个学生的资料:\n",n);

printf("*****************************************************************************\n");

printf("|学号|姓名|性别|生 日 |");

printf("C(平时.实验.考试.综合)|");

printf("高数(平时.实验.考试.综合)\n");

printf("*****************************************************************************\n");

if(head==NULL)

{

printf("\n没有这个学生的资料!\n");

return;

}

while(q!=NULL)

{

printf("|%4d|%4s|%4c|%4d-%2d-%2d|",q-num,q-name,q-sex,q-birthday.year,q-birthday.month,q-birthday.day);

printf("%5d|%5d|%5d|%.1f|",q-xk[0].pingshi,q-xk[0].shiyan,q-xk[0].kaoshi,q-xk[0].zchji);

printf("%5d|%5d|%5d|%.1f \n",q-xk[1].pingshi,q-xk[1].shiyan,q-xk[1].kaoshi,q-xk[1].zchji);

q=q-next; /*q指针依次向下扫描*/

}

printf("\n***************************************************************************\n");

}

/*********************************************统计模块*****/

score *tongji(score *head)

{

score *q=head,*max,*min;

int i,k1[2]={0,0},k2[2]={0,0},k3[2]={0,0}; /*将人数统计值的初始值赋为0*/

float czong=0,gzong=0,caver,gaver;

q=head; /*工作点首先指向头指针*/

max=q;

min=q;

while(q!=NULL)

{

czong+=q-xk[0].zchji; /*P1指向学生总成绩*/

gzong+=q-xk[1].zchji;

for(i=0;i2;i++)

{

if(q-xk[i].zchjimax-xk[i].zchji)

max=q; /*将最大值的地址赋给P1*/

if(q-xk[i].zchjimin-xk[i].zchji)

min=q;

if(q-xk[i].zchji=80) k1[i]++; /*k1[i]++为人数的统计*/

else if(q-xk[i].zchji=60) k2[i]++;

else k3[i]++; /*分段成绩的人数统计*/

}

q=q-next;

}

caver=czong/n; /*计算C的平均成绩*/

gaver=gzong/n; /*计算math平均成绩*/

printf("C 语言成绩的总分为:%.2f C 语言成绩的平均分为:%.2f\n",czong,caver);

printf("C 语言成绩的最高分为:%.2f C 语言成绩的最低分为:%.2f\n",max-xk[0].zchji,min-xk[0].zchji);

printf("C 语言成绩优秀的人数为:%d\n",k1[0]);

printf("C 语言成绩良好的成绩为:%d\n",k2[0]);

printf("C 语言成绩及格的人数为:%d\n",k1[0]+k2[0]);

printf("C 语言成绩不及格的人数为:%d\n",k3[0]);

printf("高数成绩的总分为:%.2f 高数成绩的平均分为:%.2f\n",gzong,gaver);

printf("高数成绩的最高分为:%.2f 高数成绩的最低分为:%.2f\n",max-xk[1].zchji,min-xk[1].zchji);

printf("高数成绩优秀的人数为:%d\n",k1[1]);

printf("高数成绩良好的人数为:%d\n",k2[1]);

printf("高数成绩及格的人数为:%d\n",k1[1]+k2[1]);

printf("高数成绩不及格的人数为:%d\n",k3[1]);

return(head);

}

/*********************************************按学号查询模块*****/

void chaxun2(score *head)

{

score *q=head;

int sss=0;

char name[10];

printf("请输入要查询的学生姓名:");

scanf("%s",name);

while(q!=NULL)

{

if(strcmp(name,q-name)==0) /*通过字符串的比较按姓名查找*/

{

printf("*****************************************************************************\n");

printf("|学号|姓名|性别|生 日 |");

printf("C(平时.实验.考试.综合)|");

printf("高数(平时.实验.考试.综合)\n");

printf("*****************************************************************************\n");

printf("|%4d|%4s|%4c|%4d-%2d-%2d|",q-num,q-name,q-sex,q-birthday.year,q-birthday.month,q-birthday.day);

printf("%5d|%5d|%5d|%.1f|",q-xk[0].pingshi,q-xk[0].shiyan,q-xk[0].kaoshi,q-xk[0].zchji);

printf("%5d|%5d|%5d|%.1f\n",q-xk[1].pingshi,q-xk[1].shiyan,q-xk[1].kaoshi,q-xk[1].zchji);

printf("*****************************************************************************\n");

sss=3; /*定义变量不等于初始值则退出循环体*/

}

q=q-next;

}

if(sss==0) printf("没有这个学生的资料!\n\n");

}

/*******************************************按学号查询*******/

void chaxun1(score *head)

{

score *q=head;

int num,sss=0;

printf("请输入要查询的学生学号:");

scanf("%d",num);

while(q!=NULL)

{

if(num==q-num)

{

printf("*****************************************************************************\n");

printf("|学号|姓名|性别|生 日 |");

printf("C(平时.实验.考试.综合)|");

printf("高数(平时.实验.考试.综合)\n");

printf("*****************************************************************************\n");

printf("|%4d|%4s|%4c|%4d-%2d-%2d|",q-num,q-name,q-sex,q-birthday.year,q-birthday.month,q-birthday.day);

printf("%5d|%5d|%5d|%.1f|",q-xk[0].pingshi,q-xk[0].shiyan,q-xk[0].kaoshi,q-xk[0].zchji);

printf("%5d|%5d|%5d|%.1f\n",q-xk[1].pingshi,q-xk[1].shiyan,q-xk[1].kaoshi,q-xk[1].zchji);

printf("*****************************************************************************\n");

sss=3;

}

q=q-next;

}

if(sss==0) printf("没有这个学生的资料!\n\n");

}

/********************************************查询二级菜单******/

chaxun_cd()

{

int m=0,i;

while(m==0)

{

printf("查询学生的资料\n");

printf("1.按学号查询\n");

printf("2.按姓名查询\n");

printf("请选择你所要操作的选项(按0退出):");

scanf("%d",i);

switch(i)

{

case 1:chaxun1(r);break; /*break表示跳出循环结构结束循环退出包含break语句的那层循环体*/

case 2:chaxun2(r);break;

case 0:m=1;break;

default:printf("错误,重新选择:");break;

}

}

}

/***************************************按学号删除***********/

score *del1(score *head)

{

score *p1,*p2;

int num;

printf("请输入要删除学生的学号:");

scanf("%d",num);

if(head==NULL)

{

printf("没有这个学生的资料!\n\n");

return(head);

}

p2=p1=head;

while(num!=p1-nump1-next!=NULL)

{

p2=p1;

p1=p1-next;

}

if(num==p1-num)

{

if(head==p1)

head=head-next;

else

p2-next=p1-next;

free(p1);

p1=p2;

printf("第%d 学生的资料已删除完毕!\n\n",num);

}

else printf("没有这个学生的资料!\n\n");

return(head);

}

/**************************************************/

score *del2(score *head)

{

score *p1,*p2;

char name[10];

printf("请输入要删除学生的姓名:");

scanf("%s",name);

if(head==NULL)

{

printf("没有这个学生的资料!\n\n");

return(head);

}

p2=p1=head;

while(strcmp(name,p1-name)!=0p1-next!=NULL)

{

p2=p1;

p1=p1-next;

}

if(strcmp(name,p1-name)==0)

{

if(head==p1)

head=head-next;

else

p2-next=p1-next;

free(p1);

p1=p2;

printf("名字叫%s的学生的资料已被删除!\n\n",name);

}

else printf("没有这个学生的资料!\n\n");

return(head);

}

/*************************************************/

del_cd()

{

int m=0,i;

while(m==0)

{

printf("删除学生的资料\n");

printf("1.按学号删除\n");

printf("2.按姓名删除\n");

printf("3.查看删除结果\n");

printf("请选择你所要操作的选项(按0退出):");

scanf("%d",i);

switch(i)

{

case 1:r=del1(r);break;

case 2:r=del2(r);break;

case 3:print(r);break;

case 0:m=1;break;

default:printf("错误,重新选择:");break;

}

}

}

/*****************************************按学号排序********/

score *paixu2(score *head)

{

score *p1,*p2,*k,h;

int i;

if(head==NULL)

{

printf("没有任何学生的资料!");

return(head);

}

p1=head;

p2=head-next;

k=p1;

for(i=0;in-1;i++)

{

while(p2!=NULL)

{

if(k-nump2-num)

k=p2;

p2=p2-next;

}

if(k!=p1)

{

h=*k;

*k=*p1;

*p1=h;

h.next=k-next;

k-next=p1-next;

p1-next=h.next;

}

p1=p1-next;

p2=p1-next;

k=p1;

}

printf("排序成功!\n\n");

return(head);

}

/*************************************************/

score *paixu1(score *head)

{

score *p1,*p2,*k,h;

int i;

if(head==NULL)

{

printf("没有任何学生的资料!");

return(head);

}

p1=head;

p2=head-next;

k=p1;

for(i=0;in-1;i++)

{

while(p2!=NULL)

{

if(k-xk[0].zchjip2-xk[0].zchji)

k=p2;

p2=p2-next;

}

if(k!=p1)

{

h=*k;

*k=*p1;

*p1=h;

h.next=k-next;

k-next=p1-next;

p1-next=h.next;

}

p1=p1-next;

p2=p1-next;

k=p1;

}

printf("排序成功!\n\n");

return(head);

}

/*************************************************/

paixu_cd()

{

int m=0,i;

while(m==0)

{

printf("对学生的资料进行排序\n");

printf("1.按C语言成绩排序\n");

printf("2.按学号排序\n");

printf("请选择你所要操作的选项(按0退出):");

scanf("%d",i);

switch(i)

{

case 1:r=paixu1(r);break;

case 2:r=paixu2(r);break;

case 0:m=1;break;

default:printf("错误,重新选择:");break;

}

}

}

/*******************************************按C成绩插入******/

score *charu1(score *head,score *stu)

{

score *p1,*p2;

int i;

p1=head;

r=paixu1(r);

stu=(score*)malloc(LEN); /*开辟一个新单元,用于保存要插入的信息*/

printf("请输入要增加的学生资料:\n");

printf("请输入要增加的学生学号:");

scanf("%d",stu-num);

while(stu-num0) /*判断学号是否小于0*/

{

printf("输入错误,输入错误请重新输入学号:");

scanf("%d",stu-num);

}

printf("b.请输入要增加的学生姓名:");

scanf("%s",stu-name);

printf("请输入要增加的学生性别(F或M):");

scanf(" %c",stu-sex);

while(stu-sex!='M'stu-sex!='F')

{

printf("输入错误,输入错误请重新输入性别:");

scanf(" %c",stu-sex);

}

printf("c.请输入要增加的学生生日(年.月.日):");

scanf(" %d.%d.%d",stu-birthday.year,stu-birthday.month,stu-birthday.day);

printf("d.请输入要增加的学生成绩!\n");

printf("1.请输入要增加的学生C语言成绩(平时,实验,考试):");

scanf(" %d,%d,%d",stu-xk[0].pingshi,stu-xk[0].shiyan,stu-xk[0].kaoshi);

stu-xk[0].zchji=stu-xk[0].pingshi*0.1+stu-xk[0].shiyan*0.2+stu-xk[0].kaoshi*0.7;

printf("2.请输入要增加的学生高数成绩(平时,实验,考试):");

scanf(" %d,%d,%d",stu-xk[1].pingshi,stu-xk[1].shiyan,stu-xk[1].kaoshi);

stu-xk[1].zchji=stu-xk[1].pingshi*0.1+stu-xk[1].shiyan*0.2+stu-xk[1].kaoshi*0.7;

if(head==NULL) /*判断头指针是否为空*/

{

head=stu;

stu-next=NULL; /*如果为空,直接插入头上*/

n++; /*人数加一*/

return(head);

}

while(p1-xk[0].zchjistu-xk[0].zchjip1-next!=NULL) /*根据C成绩确定要插入的位置*/

{

p2=p1;

p1=p1-next;

}

if(stu-xk[0].zchji=p1-xk[0].zchji)

{

if(p1==head) /*如果p1指向头指针 */

{

head=stu;

stu-next=p1;

n++;

}

else

{

stu-next=p2-next;

p2-next=stu;

n++;

}

}

else

{

p1-next=stu;

stu-next=NULL;

n++;

}

printf("增加学生资料成功!\n");

return(head);

}

/*********************************************按学号插入****/

score *charu2(score *head,score *stu)

{

score *p1,*p2;

int i=0;

p1=head;

r=paixu2(r); /*调用排序函数*/

stu=(score*)malloc(LEN); /*开辟一个新单元,用于保存要插入的信息*/

printf("请输入要增加的学生资料:\n");

printf("请输入要增加的学生学号:");

scanf("%d",stu-num);

while(stu-num0)

{

printf("输入错误,输入错误请重新输入学号:");

scanf("%d",stu-num);

}

printf("b.请输入要增加的学生姓名:");

scanf("%s",stu-name);

printf("请输入要增加的学生性别(F或M):");

scanf(" %c",stu-sex);

while(stu-sex!='M'stu-sex!='F')

{

printf("输入错误,输入错误请重新输入性别:");

scanf(" %c",stu-sex);

}

printf("c.请输入要增加的学生生日(年.月.日):");

scanf(" %d.%d.%d",stu-birthday.year,stu-birthday.month,stu-birthday.day);

printf("d.请输入要增加的学生的成绩!\n");

printf("1.请输入要增加的学生C语言成绩(平时,实验,考试):");

scanf(" %d,%d,%d",stu-xk[0].pingshi,stu-xk[0].shiyan,stu-xk[0].kaoshi);

stu-xk[0].zchji=stu-xk[0].pingshi*0.1+stu-xk[0].shiyan*0.2+stu-xk[0].kaoshi*0.7;

printf("2.请输入要增加的学生高数的成绩(平时,实验,考试):");

scanf(" %d,%d,%d",stu-xk[1].pingshi,stu-xk[1].shiyan,stu-xk[1].kaoshi);

stu-xk[1].zchji=stu-xk[1].pingshi*0.1+stu-xk[1].shiyan*0.2+stu-xk[1].kaoshi*0.7;

if(head==NULL) /*判断头指针是否为空*/

{

head=stu;

stu-next=NULL;

n++;

return(head);

}

while(p1-numstu-nump1-next!=NULL) /*根据学号确定要插入的位置*/

{

p2=p1;

p1=p1-next;

}

if(stu-num=p1-num)

{

if(p1==head)

{

head=stu;

stu-next=p1;

n++;

}

else

{

stu-next=p2-next;

p2-next=stu;

n++;

}

}

else

{

p1-next=stu;

stu-next=NULL;

n++;

}

printf("增加学生资料成功!\n");

printf("\n");

return(head); /*返回头指针*/

}

/*******************************************插入的二级菜单******/

charu_cd()

{

int m=0,i;

while(m==0)

{

printf("增加学生的人数\n");

printf("\n1.按C语言成绩增加\n");

printf("2.按学号增加\n");

printf("请选择你所要操作的选项(按0退出):");

scanf("%d",i);

switch(i)

{

case 1:r=charu1(r,stu);break;

case 2:r=charu2(r,stu);break;

case 0:m=1;break;

default:printf("错误,重新选择:");break;

}

}

}

数据结构:产品进销存管理系统的源代码

睿奕进销存管理软件是面向中小型商贸企业进销存一体化的应用模式,帮助中小型商贸企业实现简单信息管理,是进、销、存、财务一体化的管理系统,它率先应用了新一代的B/S结构,巧妙地结合了销售管理,采购管理,财务管理,货品管理等多种功能于一体,它以浏览器为软件界面,图形化的导航式操作,快速完成日常贸易管理中的进货、出货、存货等操作,并结合准确、高效的财务统计和业务分析功能,通过交互式的数据中心与一目了然的统计报表,使企业决策者最关心的往来款项、销售状况、库存数量等,能够即点即现。

c语言粮油进销存系统源代码

#includestdio.h

#includestdlib.h

#includestring.h

#includeconio.h

//日期结构体

typedef struct

{

int year;

int month;

int day;

}DATE;

//商品结构体

//定义链表

typedef struct Node

{

long num;

char name[20];

char kind[20];

DATE pro_date;

int save_day;

int shuliang;

float jinjia;

float shoujia;

DATE sale_date;

struct Node *next;

}Node,*LinkList;

//申请函数

void apply()

{

int i,flag=1;

FILE *fp;

char name[20],key[20];

flushall();

printf("用户名(不能为空):");

scanf("%s",name);

flushall();

printf("密码(不能为空):");

for(i=0;i=20;i++)

{

key[i]=getch();

if(key[i]==13)

{

key[i]='\0';

break;

}

printf("*");

}

fp=fopen("key.txt","w");

if(fp==NULL)

{

printf("the file can not open!");

flag=0;

exit(1);

}

fprintf(fp,"%s %s",name,key);

fclose(fp);

if(flag==1)

printf("\n申请成功,请登录!\n");

else

printf("\n申请失败,请重新申请!\n");

}

//登录函数

int load()

{

FILE *fp;

int i;

char name[20],key[20];

char name1[20],key1[20];

fp=fopen("key.txt","r");

fscanf(fp,"%s %s",name,key);

fclose(fp);

printf("用户名(不能为空):");

scanf("%s",name1);

flushall();

printf("密码(不能为空):");

for(i=0;i=20;i++)

{

key1[i]=getch();

if(key1[i]==13)

{

key1[i]='\0';

break;

}

printf("*");

}

printf("\n");

if(strcmp(name1,name)==0strcmp(key1,key)==0)

{ printf("登陆成功!\n\n");return 1; }

else

{ printf("用户名或密码错误;请重新登录!"); return 0;}

}

//密码保护系统

void key()

{

int choice,c;

do

{ printf("\n****************************申请登录系统********************************\n\n");

printf(" 1: 新用户注册; \n\n");

printf(" 2: 新用户登录; \n\n");

printf("请选择:");

scanf("%d",choice);

switch(choice)

{

case 1: apply(); break;

case 2: c=load();break;

}

}while(c!=1);

}

LinkList goods_input()

{

LinkList L;

Node *p1,*p2;

int i=1;

void file_write(Node *p);

int flag=1;

L=p2=(Node*)malloc(sizeof(Node));//为头节点分配存储空间

while(flag)

{

p1=(Node*)malloc(sizeof(Node));

printf("请输入第%d种商品的信息(商品号为0时,结束商品输入):\n\n",i++);

flushall();

printf("商品号:");

scanf("%ld",p1-num);

if(p1-num!=0)

{

flushall();

printf("名称:");

scanf("%s",p1-name);

flushall();

printf("类别:");

scanf("%s",p1-kind);

flushall();

printf("生产日期(年月日用空格隔开):");

scanf("%d%d%d",p1-pro_date.year,p1-pro_date.month,p1-pro_date.day);

flushall();

printf("保质期:");

scanf("%d",p1-save_day);

flushall();

printf("商品数量:");

scanf("%d",p1-shuliang);

flushall();

printf("进价:");

scanf("%f",p1-jinjia);

flushall();

printf("售价:");

scanf("%f",p1-shoujia);

flushall();

printf("销售日期(年月日用空格隔开):");

scanf("%d%d%d",p1-sale_date.year,p1-sale_date.month,p1-sale_date.day);

p2-next=p1;

p2=p1;

}

else

{

flag=0;

break;

}

}

p2-next=NULL;

file_write(L);

free(p1);

return(L);

}

//将商品信息写入文件

void file_write(Node *p)

{

FILE *fp;

char filename[50];int c;

printf("是否保存?(保存按1;不保存按0):");

scanf("%d",c);

if(c==1)

{ flushall();

printf("\n为了将你操作的信息保存下来,请输入要写入的文件的路经或文件:");

gets(filename);

fp=fopen(filename,"w");

if(fp==NULL)

{

printf("\n this file can not be open!");

exit(1);

}

p=p-next;

while(p!=NULL)

{

fprintf(fp,"%ld %s %s %d %d %d %d %d %f %f %d %d %d\n",p-num,p-name,p-kind,p-pro_date.year,p-pro_date.month,p-pro_date.day,p-save_day,p-shuliang,p-jinjia,p-shoujia,p-sale_date.year,p-sale_date.month,p-sale_date.day);

p=p-next;

}

fclose(fp);

printf("文件保存成功!");

}

}

//将文件中的信息读出的函数

LinkList file_read()

{

FILE *fp;

LinkList L;

Node *p1,*p2;

char filename[50];

int i,k=0,t=-2;

flushall();

printf("请输入要读取的文件的路径或文件名:");

gets(filename);

flushall();

printf("请输入商品的种类数:");

scanf("%d",i);

fp=fopen(filename,"r");

L=p2=(Node*)malloc(sizeof(Node));//为头节点分配存储空间

while(t!=EOFki)

{

p1=(Node*)malloc(sizeof(Node));

t=fscanf(fp,"%ld %s %s %d %d %d %d %d %f %f %d %d %d",p1-num,p1-name,p1-kind,p1-pro_date.year,p1-pro_date.month,p1-pro_date.day,p1-save_day,p1-shuliang,p1-jinjia,p1-shoujia,p1-sale_date.year,p1-sale_date.month,p1-sale_date.day);

p2-next=p1;

p2=p1;

k++;

}

p2-next=NULL;

fclose(fp);

return L;

}

//查找商品信息

void goods_find()

{

long snum;

int flag=0,t;

Node *p0,*p1;

p1=p0=file_read();

while(1)

{

flag=0;

printf("请输入你要查找的商品信息的商品号:");

scanf("%ld",snum);

while( p0-next!=NULL)

{

p0=p0-next;

if(p0-num==snum)

{

flag=1;

break;

}

}

if(flag==1)

{ printf("该商品的信息如下:\n\n");

printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");

printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0-num,p0-name,p0-kind,p0-pro_date.year,p0-pro_date.month,p0-pro_date.day,p0-save_day,p0-shuliang,p0-jinjia,p0-shoujia,p0-sale_date.year,p0-sale_date.month,p0-sale_date.day);

}

else

printf("此商品号不存在,查找失败!\n");

p0=p1;

printf("结束查找按0,继续查找按1:");

scanf("%d",t);

if(t==0)

break;

}

}

//修改商品信息

void goods_change()

{

Node *p1,*p0,*p2;

int c,flag=0,t;

long snum;

p2=p0=file_read();

while(1)

{

flag=0;

p1=p0-next;

if(p1==NULL) flag=0;

printf("请输入你要修改的商品信息的商品号:");

scanf("%ld",snum);

while(p1!=NULL)

{

if(p1-num==snum)

{

flag=1;

break;

}

p1=p1-next;

}

if(flag==1)

{ 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~9):");

scanf("%d",c);

while(1)

{

if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==8||c==9)break;

else

{

printf("\n输入有误,请重新输入!\n清选择(0~9):");

scanf("%d",c);

if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==8||c==9) break;

}

}

switch(c)

{

case 1:

{

printf("\n输入修改后的商品号:");

scanf("%ld",p1-num);break;

}

case 2:

{

printf("输入修改后的商品名:");

scanf("%s",p1-name);break;

}

case 3:

{

printf("输入修改后的商品类别:");

scanf("%s",p1-kind);break;

}

case 4:

{

printf("输入修改后的商品生产日期(年月日之间用空格隔开):");

scanf("%d%d%d",p1-pro_date.year,p1-pro_date.month,p1-pro_date.day);break;

}

case 5:

{

printf("输入修改后的商品保质期:");

scanf("%d",p1-save_day);break;

}

case 6:

{

printf("输入修改后的商品数量:");

scanf("%d",p1-shuliang);break;

}

case 7:

{

printf("输入修改后的商品进价:");

scanf("%f",p1-jinjia);break;

}

case 8:

{

printf("输入修改后的商品售价:");

scanf("%f",p1-shoujia);break;

}

case 9:

{

printf("输入修改后的商品销售日期(年月日之间用空格隔开):");

scanf("%d%d%d",p1-sale_date.year,p1-sale_date.month,p1-sale_date.day);break;

}

}

printf("修改后的商品信息如下:\n\n");

printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");

printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p1-num,p1-name,p1-kind,p1-pro_date.year,p1-pro_date.month,p1-pro_date.day,p1-save_day,p1-shuliang,p1-jinjia,p1-shoujia,p1-sale_date.year,p1-sale_date.month,p1-sale_date.day);

}

else

printf("此商品号不存在,修改失败!\n");

p0=p2;

printf("结束修改按0,继续修改按1:");

scanf("%d",t);

if(t==0)

break;

}

file_write(p0);

}

//插入商品

void goods_insert()

{

Node *p0,*p1,*p2,*p3;

int k,i,flag,t;

p0=file_read();

while(1)

{

p3=p2=p0;

k=0;

printf("请输入插入位置i的值(i的值小于商品的种类数):");

scanf("%d",i);

while(p2!=NULLki-1)

{

p2=p2-next;

k=k+1;

}

if(k!=i-1) flag=0;

p1=(Node*)malloc(sizeof(Node));

printf("请输入要插入的商品号 名称 类别 生产日期 保质期 数量 进价 售价 销售日期:\n");

scanf("%ld%s%s%d%d%d%d%d%f%f%d%d%d",p1-num,p1-name,p1-kind,p1-pro_date.year,p1-pro_date.month,p1-pro_date.day,p1-save_day,p1-shuliang,p1-jinjia,p1-shoujia,p1-sale_date.year,p1-sale_date.month,p1-sale_date.day);

p1-next=p2-next;

p2-next=p1;

flag=1;

if(flag==1)

printf("插入位置合理!\n");

else

printf("插入位置不合理!\n");

printf("结束插入按0,继续插入按1:");

scanf("%d",t);

if(t==0)

break;

}

p0=p0-next;

printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");

while(p0!=NULL)

{

printf("--------------------------------------------------------------------------------\n");

printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0-num,p0-name,p0-kind,p0-pro_date.year,p0-pro_date.month,p0-pro_date.day,p0-save_day,p0-shuliang,p0-jinjia,p0-shoujia,p0-sale_date.year,p0-sale_date.month,p0-sale_date.day);

p0=p0-next;

}

file_write(p3);

}

//删除商品信息

void goods_delete()

{

long num;

Node *p,*p0,*p1,*p2;

int flag=0,t;

p0=file_read();

while(1)

{

flag=0;

p1=p2=p0;

p=p1-next;

if(p==NULL) flag=0;

printf("请输入你要删除的商品的商品号:");

scanf("%ld",num);

while(p!=NULL)

{

if(p-num==num)

{

p1-next=p-next;

free(p);

flag=1;

break;

}

p1=p;

p=p-next;

flag=0;

}

if(flag==1)

printf("你已正确删除!\n");

else

printf("你输入的商品号不存在!\n");

printf("结束删除按0,继续删除按1:");

scanf("%d",t);

if(t==0)

break;

}

p0=p0-next;

printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");

while(p0!=NULL)

{

printf("--------------------------------------------------------------------------------\n");

printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0-num,p0-name,p0-kind,p0-pro_date.year,p0-pro_date.month,p0-pro_date.day,p0-save_day,p0-shuliang,p0-jinjia,p0-shoujia,p0-sale_date.year,p0-sale_date.month,p0-sale_date.day);

p0=p0-next;

}

file_write(p2);

}

//商品信息排序

void goods_rank()

{

Node *p,*q,*k,*L,t;

Node *p0;

int flag=0;

L=file_read();

p=L-next;

while(p-next)

{

k=p;

q=p-next;

while(q)

{

if((k-shuliang)(q-shuliang))

k=q;

q=q-next;

}

if(p!=k)

{

t=*p;

*p=*k;

*k=t;

t.next=p-next;

p-next=k-next;

k-next=t.next;

flag=1;

}

p=p-next;

}

if(flag=1)

printf("按商品数量从小到大排序成功!\n");

else

printf("按商品数量从小到大排序失败!\n");

p0=L;

p0=p0-next;

printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");

while(p0!=NULL)

{

printf("--------------------------------------------------------------------------------\n");

printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0-num,p0-name,p0-kind,p0-pro_date.year,p0-pro_date.month,p0-pro_date.day,p0-save_day,p0-shuliang,p0-jinjia,p0-shoujia,p0-sale_date.year,p0-sale_date.month,p0-sale_date.day);

p0=p0-next;

}

file_write(L);

}

//商品信息统计

void goods_tongji()

{

Node *p0,*p1;

int liang_sum=0;

float lirun_sum=0;

p0=p1=file_read();

p0=p0-next;

printf(" 商品信息统计表 \n\n");

printf("商品号\t名称\t类别\t生产日期\t保质期\t数量\t进价\t售价\t销售日期\n");

while(p0!=NULL)

{

printf("--------------------------------------------------------------------------------\n");

printf("%ld\t%s\t%s\t%02d-%02d-%02d\t%d\t%d\t%0.2f\t%0.2f\t%02d-%02d-%02d",p0-num,p0-name,p0-kind,p0-pro_date.year,p0-pro_date.month,p0-pro_date.day,p0-save_day,p0-shuliang,p0-jinjia,p0-shoujia,p0-sale_date.year,p0-sale_date.month,p0-sale_date.day);

p0=p0-next;

}

printf("\n");

p1=p1-next;

while(p1!=NULL)

{

liang_sum+=p1-shuliang;

// printf("商品数量:%d\n",p1-shuliang);

lirun_sum+=((p1-shoujia)-(p1-jinjia))*(p1-shuliang);

p1=p1-next;

}

printf("迄今,商店里还有%d件商品;\n总利润为%0.2f元;\n",liang_sum,lirun_sum);

if(liang_sum=200)

printf("注意:商店里的商品偏少,请适当进货!\n");

else if(liang_sum1100)

printf("注意:商店里积压的货物太多,请及时清仓!\n");

else

printf("\n商品总件数大于200件,小于1100件,无需进货,清仓!\n");

}

main()

{

int c;

key();

do

{

printf("请按任意键返回主菜单!");

getch();

system("cls");

printf("\n****************************欢迎进入商场店面管理系统****************************\n\n");

printf(" 1,录入商品信息;\n");

printf(" 2,查找商品信息;\n");

printf(" 3,修改商品信息;\n");

printf(" 4,插入商品信息;\n");

printf(" 5,删除商品信息;\n");

printf(" 6,商品信息排序;\n");

printf(" 7,统计商品信息;\n");

printf(" 0,退出系统;\n");

printf(" 请选择(0~7):");

scanf("%d",c);

while(1)

{

if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==0)break;

else

{

printf("\n输入有误,请重新输入!\n清选择(0~7):");

scanf("%d",c);

if(c==1||c==2||c==3||c==4||c==5||c==6||c==7||c==0) break;

}

}

switch(c)

{

case 1:goods_input();break;

case 2:goods_find();break;

case 3:goods_change();break;

case 4:goods_insert();break;

case 5:goods_delete();break;

case 6:goods_rank();break;

case 7:goods_tongji();break;

case 0 :break;

}

}while(c!=0);

}

关于简单进销存管理系统源代码和企业进销存管理系统代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/20430.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载