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

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

开发环境为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】

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

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

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

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<conio.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=0i<=20i++)

{

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=0i<=20i++)

{

key1[i]=getch()

if(key1[i]==13)

{

key1[i]='\0'

break

}

printf("*")

}

printf("\n")

if(strcmp(name1,name)==0&&strcmp(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!=EOF&&k<i)

{

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!=NULL&&k<i-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_sum>1100)

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)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/6074810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存