超市管理系统作业.docx
- 文档编号:23486874
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:19
- 大小:17.67KB
超市管理系统作业.docx
《超市管理系统作业.docx》由会员分享,可在线阅读,更多相关《超市管理系统作业.docx(19页珍藏版)》请在冰豆网上搜索。
超市管理系统作业
/*程序名:
supermarket.c*/
/*作者:
ZhangDaPan*/
/*编程日期:
2011-06-10*/
#include
#include
#include
#include
#include
#include
//#defineNULL0
/*****函数说明*******/
voidlogin();
voidfront_user();
voidback_user();
voidgoods();
voidsale();
voidgoodswarm();
voidmember();
/****结构体定义********/
structmember
{
intnumber;
charname[20];
floatsale_sum;
charlever;
structmember*next;
};
structgoods
{
intgoodsnum;
chargoodsname[30];
floatprice;
intamount;
intline;
structgoods*next;
};
structuser
{
charusername[10];
charpassword[10];
chartype;
structuser*next;
};
/*******全局变量定义*******/
structgoods*goods_head=NULL;
structmember*member_head=NULL;
structuser*user_head=NULL;
/*******************************************主函数*************************************/
main()
{
//导入user数据:
从文件中导入事先写好的数据;
structuser*user_p;
FILE*user_fp;
structgoods*goods_p;
FILE*goods_fp;
user_fp=fopen("d:
\\user.txt","r");
user_p=(structuser*)malloc(sizeof(structuser));
user_head=user_p;
fscanf(user_fp,"%s",user_p->username);
//printf("%s\n",user_p->username);
fscanf(user_fp,"%s",user_p->password);
//printf("%s\n",user_p->password);
fscanf(user_fp,"%c\n",&(user_p->type));
//printf("%c\n",user_p->type);
user_p->next=NULL;
while(!
feof(user_fp))//注释:
feof(fp)指的是未遇到文件结束为0,!
feof(fp)为1,即为真,则执行while循环
{
user_p->next=(structuser*)malloc(sizeof(structuser));//为user_p->next在内存动态存储空间分配大小为sizeof(structuser)字节的连续区域
user_p=user_p->next;
fscanf(user_fp,"%s",user_p->username);
//printf("%s\n",user_p->username);
fscanf(user_fp,"%s",user_p->password);
//printf("%s\n",user_p->password);
fscanf(user_fp,"%c\n",&(user_p->type));
//printf("%c\n",user_p->type);
user_p->next=NULL;
}
//user_p=user_head;//调试时用;
//while(user_p)
//{
//printf("%s,",user_p->username);
//printf("%s,",user_p->password);
//printf("%c,",user_p->type);
//user_p=user_p->next;
//
//}
fclose(user_fp);
//getchar();
/************************导入goods数据*******************************************/
goods_fp=fopen("d:
\\goods.txt","r");
goods_p=(structgoods*)malloc(sizeof(structgoods));
goods_head=goods_p;
fscanf(goods_fp,"%d",&(goods_p->goodsnum));
fscanf(goods_fp,"%s",goods_p->goodsname);
fscanf(goods_fp,"%f",&(goods_p->price));
fscanf(goods_fp,"%d",&(goods_p->amount));
fscanf(goods_fp,"%d\n",&(goods_p->line));
goods_p->next=NULL;
while(!
feof(goods_fp))
{
goods_p->next=(structgoods*)malloc(sizeof(structgoods));
goods_p=goods_p->next;
fscanf(goods_fp,"%d",&(goods_p->goodsnum));
fscanf(goods_fp,"%s",goods_p->goodsname);
fscanf(goods_fp,"%f",&(goods_p->price));
fscanf(goods_fp,"%d",&(goods_p->amount));
fscanf(goods_fp,"%d\n",&(goods_p->line));
goods_p->next=NULL;
}
//goods_p=goods_head;
//while(goods_p)
//{
//printf("%s,",goods_p->goodsname);
//printf("%f,",goods_p->price);
//goods_p=goods_p->next;
//}
//getchar();
fclose(goods_fp);
/*******************************进入超市管理系统******************************************/
system("cls");
printf("超市管理系统");
printf("\n\n\n");
printf("按任意键继续!
");
getchar();
login();//跳转到用户登录模块
}
/***********************************用户登录模块*******************************************/
voidlogin()
{
charusername[10];
charpassword[10];
structuser*user_point;//定义一个结构体指针变量:
user_point
intcount=3;
while(count--)//用户登录三次后,仍然登录失败就退出系统
{
system("cls");
printf("请输入用户名:
");
gets(username);
printf("\n请输入密码:
");
gets(password);
user_point=user_head;//user_point指向user_head;
while(user_point)//判断user_point是否为空,否则执行循环体
{
if(!
strcmp(user_point->username,username)&&!
strcmp(user_point->password,password))//判断用户输入的信息是否正确
{
if(user_point->type=='A'||user_point->type=='a')//判断用户身份类别
back_user();//管理员进入后台系统
else
front_user();//普通用户进入前台系统
}
else
user_point=user_point->next;
}
}
printf("谢谢使用!
\n");
exit(0);
}
/*******************************超市管理后台系统*******************************************/
voidback_user()
{
charchoice;
while
(1)
{
system("cls");
printf("**************************************\n");
printf("*超市管理后台系统*\n");
printf("**\n");
printf("*1.商品维护*\n");
printf("*2.库存预警*\n");
printf("*3.会员管理*\n");
printf("*0.退出*\n");
printf("**\n");
printf("**************************************\n");
printf("请选择(0~3):
");
choice=getchar();
switch(choice)
{
case'1':
goods();break;
case'2':
goodswarm();break;
case'3':
member();break;
case'0':
{
//导出信息
printf("已经保存信息\n");
exit(0);
}
}
}
}
/**********************************商品管理模块*****************************************/
voidgoods()
{structgoods*head;
structgoods*point;
FILE*fp;
head=(structgoods*)malloc(sizeof(structgoods));
point=head;
while
(1)
{
printf("input\n");
printf("代码\n");
scanf("%d",&point->goodsnum);
getchar();
printf("商品名\n");
scanf("%s",&(point->goodsname));//gets(point->goodsname);
printf("商品单价\n");
scanf("%f",&(point->price));
getchar();
printf("数量\n");
scanf("%d",&(point->amount));
getchar();
printf("下限\n");
scanf("%d",&(point->line));
//gets(point->line);
getchar();
point->next=NULL;
printf("继续?
");
if(getchar()=='y'||getchar()=='Y')
{
getchar();
point->next=(structgoods*)malloc(sizeof(structgoods));
point=point->next;
}
else
break;
}
//输出,用于调试,可删减
point=head;
while(point)
{
printf("%d,",point->goodsnum);
point=point->next;
}
fp=fopen("d:
\\goods.txt","a");
//写入文件
point=head;
while(point)
{
fprintf(fp,"\n%d",point->goodsnum);
fprintf(fp,"%10s",point->goodsname);
fprintf(fp,"%10.2f",point->price);
fprintf(fp,"%10d",point->amount);
fprintf(fp,"%10d",point->line);
point=point->next;
}
}
/*********************************库存管理模块***************************************************/
voidgoodswarm()
{
printf("库存管理");
getchar();
getchar();
}
/***********************************会员管理模块*************************************************/
voidmember()
{
structmember*head;
structmember*point;
FILE*fp;
head=(structmember*)malloc(sizeof(structmember));
point=head;
while
(1)
{
printf("input\n:
");
printf("pleaseinput编号:
");
scanf("%d",&(point->number));
getchar();
printf("pleaseinput会员名:
");
scanf("%s",&(point->name));//gets(point->name);
printf("pleaseinput购物累计:
");
scanf("%f",&(point->sale_sum));
getchar();
printf("pleaseinput会员级别:
");
scanf("%c",&(point->lever));
point->next=NULL;
printf("继续?
");
getchar();
if(getchar()=='y'||getchar()=='Y')
{
getchar();
point->next=(structmember*)malloc(sizeof(structmember));
point=point->next;
}
else
break;
}
//输出,用于调试时用,可删减
point=head;
while(point)
{
printf("%d,",point->number);//printf("%s,",point->name);
point=point->next;
}
fp=fopen("d:
\\member.txt","a");
//写入文件
point=head;
while(point)
{
fprintf(fp,"\n%d",point->number);
fprintf(fp,"%10s",point->name);
fprintf(fp,"%10.2f",point->sale_sum);
fprintf(fp,"%10c",point->lever);
point=point->next;
}
}
/*************************超市管理前台系统*************************************/
voidfront_user()
{
charchoice;
while
(1)
{
system("cls");
printf("**************************************\n");
printf("*超市管理前台系统*\n");
printf("**\n");
printf("*1.商品销售*\n");
printf("*2.库存预警*\n");
printf("*0.退出*\n");
printf("**\n");
printf("**************************************\n");
printf("请选择(0~2):
");
choice=getchar();
switch(choice)
{
case'1':
sale();break;
case'2':
goodswarm();break;
case'0':
{
//导出信息
printf("欢迎光临易买得超市\n");
exit(0);
}
}
}
}
/***********************************goods销售模块*************************************/
voidsale()
{
structgoods*goods_sale=NULL;
structgoods*goods_p0,*goods_p,*goods_p1;
intflag=0;
intsum=0;//采购的商品总数
intgoods_num;//商品代码
floataccount=0;//采购商品总金额
floatpayment;//实际付款金额
system("cls");
printf("******商品销售清单*******\n");
while
(1)
{
flag=0;
printf("请输入商品:
");
scanf("%d",&goods_num);
if(goods_num==0)
{
system("cls");
goods_p0=goods_sale;
while(goods_p0)
{
printf("%s",goods_p0->goodsname);
printf("%f\n",goods_p0->price);
goods_p0=goods_p0->next;
}
printf("总件数:
%d",sum);
printf("应付金额:
%f\n",account);
printf("实付金额:
");
scanf("%f",&payment);
printf("\n找零:
%f",payment-account);
getchar();
getchar();
break;
}
//查找商品
goods_p=goods_head;
while(goods_p)
{
if(goods_num==goods_p->goodsnum)
{
flag=1;
break;
}
else
{
goods_p=goods_p->next;
}
}
//加入购物清单中
if(flag==1&&goods_sale==NULL)
{
printf("%20s",goods_p->goodsname);
printf("单价:
%f",goods_p->price);
sum++;
account=account+goods_p->price;
printf("累计:
%f\n",account);
goods_p->amount--;
goods_p0=(structgoods*)malloc(sizeof(structgoods));
goods_sale=goods_p0;
goods_sale->next=NULL;
goods_p0->price=goods_p->price;
strcpy(goods_p0->goodsname,goods_p->goodsname);
}
elseif(flag==1&&goods_sale!
=NULL)
{
printf("%20s",goods_p->goodsname);
printf("单价:
%f",goods_p->price);
sum++;
account=account+goods_p->price;
printf("累计:
%f\n",account);
goods_p->amount--;
goods_p1=(structgoods*)malloc(sizeof(structgoods));
goods_p1->next=NULL;
goods_p0->next=goods_p1;
g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 管理 系统 作业