进销存系统.net源码_进销存源码下载

hacker|
109

文章目录:

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);

}

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

p-totalquantity=p-totalquantity+n;

printf("查看添加后产品的各项输出:%s %d%d,%d %d %d,%d,%d\n",p-pname,p-totalquantity,(p-goodsdate).year,(p-goodsdate).month,(p-goods).day,

p-salequanlity,(p-salestime).year,(p-salestime).month,(p-salestime).day);

}

}

}

}//ProQuantity_add

void Visit(sqmountlinkL,char pkindname3[],char pname3[])

{//在顺序表挂接链表L中,查询属于某产品类的某产品的各项信息

int i,k;

plinklist p;

for(i=0;iL.length;i++)

{

if(strcmp((L.kindelem[i]),pkindname.pkindname3)!=0)

continue

else

break;

}

if(iL.length)

{

for(p=L.kindelem[i].firstprodicy;p!=NULL;p=p-nextproducy)

{

k=strcmp(p-pname.pname3);

if(k==0)

break;

}

if(k!=0)

printf("此产品不存在:\n")

else

{

printf("输出带查询产品的各项信息:\n");

printf("%s %s %d %d,%d,%d %d %d,%d,%d\n",(L.kindelem[i]).pkindname,p-pname,p-totalquantity,(p-goodsdate).year,(p-goodsdate).month,(p-goodsdate).day,

p-salequantity,(p-salestime).year,(p-salestime).month,(p-salestime).day);

}

}

}//Visit

void DisplayList(sqmountlinkL)

{//显示各产品所属产品类,产品名称、产品总量,进货日期,销出数量,销售时间

int i;

plinklist p;

printf("产品类 产品 进货日期 销出数量 销售时间\n")

for(i=0;iL.length;i++)

{

if(!(L.kindelem[i],firstproduct))

printf("%s\n",(L.kindelem[i]).pkindname);

for(p=L.kindelem[i].firstproduct;p;p=p-nextproduct)

printf("%s %s %d %d,%d,%d %d %d,%d,%d \n",(L.kindelem[i]).pkindname,p-pname,p-totalquantity,(p-goodsdate).year,(P-goodsdate).month,(p-goodsdate).day,p-salesquantity,(p-salestime).year,(p-salestime).month,(p-salestime).day);

}

}//DisplayList

void DestoryMountList(sqmountlinkL)

{//销毁已存在的顺序表挂接链表L

int i;

kindlnode *p;

for(i=L.length;i=0;

{

p=(L.kindelem[i]);

if(*p).firstproduct==NULL)

free(p);

else

{

while((*p).firstproduct;q-nextproduct;q=q-nextp

通用进销存管理系统C++.net源码

大哥,你这个题目太笼统了吧

那可以写十几页啊,你给确缺点的问题

5条大神的评论

  • avatar
    访客 2022-07-17 上午 03:02:07

    oid goods_insert(){ Node *p0,*p1,*p2,*p3; int k,i,flag,t; p0=file_read(); while(1) { p3=p2=p0; k=0; printf("请输入插入位置i

  • avatar
    访客 2022-07-16 下午 03:30:15

    链表L int i; kindlnode *p; for(i=L.length;i=0; { p=(L.kindelem[i]); if(*p).firstproduct==N

  • avatar
    访客 2022-07-17 上午 12:29:18

    _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-

  • avatar
    访客 2022-07-16 下午 04:49:23

    7,统计商品信息;\n"); printf(" 0,退出系统;\n"); printf(" 请选择(0~7):"); scanf("%d",c

  • avatar
    访客 2022-07-17 上午 02:42:43

    int i,k; plinklist p; for(i=0;iL.length;i++) { if(strcm

发表评论