东北玉米烘干,容重低的原因?
东北玉米质量差别很大,容重也从600-750不等。 黑龙江,吉林,辽宁也不一样。 不能笼统看到一样品就评定整个东北玉米质量
c语言粮油进销存系统源代码
#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=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)==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);
}