您的当前位置:首页正文

超市管理系统(C语言课程设计报告)

2024-10-18 来源:威能网
超市管理系统

本设计运用C语言程序设计了一个超市管理系统。主要实现的功能有进货功能、退货功能、商品销售功能、商品信息查询功能、商品信息浏览功能.

1。开发工具和编程语言:

开发工具:Microsoft Visual C++ 6.0 编程语言:C语言

2. 模块划分

超市管理系统的设计与实现 进货功能 退货功能 商品销售功能 信息查询功能 信息浏览功能 退出功能

3。 系统功能与函数的对应关系

本系统包括一个主函数和6个被调函数,分别如下: (1) 主函数 void main() (2) 功能选择函数 void gongneng() (3) 进货功能函数 void jinhuo() (4) 退货功能函数 void tuihuo() (5) 商品销售函数 void spxs() (6) 信息查询函数 void xxcx() (7) 信息浏览函数 void spxxpx()

1

4 .结构体类型说明

商品信息包括:商品编号、商品名称、商品进价、商品售价、商品库存数量。 结构体类型定义为: struct xinxi//结构体 {

char bh[30];//商品编号 char bhstr[30];//商品名称 float jinjia;//商品进价 float shoujia;//商品售价 int kucun;//商品库存数量 };

5 。 系统函数的设计与实现

5.1 主函数

主函数中运行功能选择函数,运行时可以显示系统界面,系统界面如图5—1所示。

图5—1 系统主界面

主函数中可以实现各种功能的选择。

5.2进货功能函数

(1)流程图

进货功能函数实现进货功能,能够实现要进货商品的信息添加或录入.进货时,先检测本商品是否存在,若存在则修改库存数量等相关信息;否则添加本商品的相关信

2

息.

进货流程图如图5-2所示。

开始菜单 否

本商品是否存在 输入商品的名称 进货功能 是

图5—2进货功能流程图

返回开始菜单 修改库存数量等相关信息 添加本商品的相关信息 (2)系统代码

void jinhuo()//进货处理函数 {

char str[30]; int i,a=2; while(a==2) {

printf(\"请输入商品的名称:\");

3

scanf(”%s”,str); for(i=0;iif(strcmp(str,s[i].bhstr)==0)//查找要进货的商品 {

printf(”编号:%s,进价:%5。1f,售价:%5.1f,库存数量:%d\\n\[i].bh,s[i].jinjia,s[i].shoujia,s[i]。kucun); printf(\"请输入新库存数量:”);

scanf(\"%d”,&s[i]。kucun);//修改库存信息 printf(\"库存信息修改完成\\n”); break; }

if(i〉=b)//如果没有找到要进货的商品,则添加商品信息 {

printf(”添加商品信息:\\n\"); printf(\"请输入商品编号:”); scanf(\"%s”,s[i]。bh); printf(”请输入商品名称:”); scanf(\"%s\[i]。bhstr); printf(\"请输入商品进价:”); scanf(\"%f”,&s[i].jinjia); printf(”请输入商品售价:\"); scanf(”%f\&s[i]。shoujia); printf(”请输入商品库存数量:”); scanf(”%d\",&s[i].kucun); printf(”商品信息添加完成\\n\"); b++; }

printf(”请选择:\"); printf(”1。返回开始菜单\");

4

printf(\"2。继续进行进货处理”); scanf(\"%d\&a); } } (3)运行效果 输入:选项1

输出:请输入商品的名称: 输入:1

输出:添加商品信息 请输入商品编号: …… 输入:1

输出:商品信息添加完成

请选择:1.返回开始菜单2。继续进行进货处理 输入:2

输出:请输入商品名称: 输入:1

输出:编号:1,进价:1.0,售价:1。0,库存数量:1 请输入新库存: 输入:2

输出:库存信息修改完成

请选择:1。返回开始菜单2。继续进行进货处理 输入:1 返回开始菜单

运行效果图如图5—3所示.

5

图5-3进货功能运行界面

5.3退货功能函数

(1)流程图

退货功能函数实现退货功能,能够实现要退货商品的信息修改。退货时,修改库存数量等相关信息;若库存数量为0,提示是否删除本商品,若选“是”则删除该商品的信息.

退货流程图如图5-4所示。

6

否 是 否 是 否 是

图5—4 退货功能流程图 开始菜单 退货处理 请输入要退的商品名称 请输入要退商品的数量 是否退货 修改库存数量等相关信息 退货成功 库存是否为零 是否删除本商品 本商品已删除 返回开始菜单 7

(2)系统代码

void tuihuo()//退货处理函数 {

int i,a,c=2,d; char str[30]; while(c==2) {

printf(”请输入要退的商品名称:\"); scanf(\"%s\",str); for(i=0;i〈b;i++)

if(strcmp(str,s[i]。bhstr)==0)//查找要退货的商品 {

printf(\"请输入要退商品的数量:\"); scanf(”%d\",&d);

printf(”请选择是否要退货\"); printf(”1。是\"); printf(”2.否”); scanf(\"%d”,&a); if(a==1) {

s[i]。kucun =s[i]。kucun +d;//修改库存信息 printf(\"退货已成功\\n\"); }

if(s[i].kucun==0)//如果库存数量为零,提示是否删除该商品 {

printf(\"本商品库存为0,请选择是否删除本商品”); printf(\"1.是\"); printf(\"2.否”); scanf(\"%d”,&a);

8

if(a==1) {

strcpy(s[i]。bh,\"该商品不存在”); strcpy(s[i].bhstr,\"该商品不存在\"); } }

printf(\"请选择:\"); printf(”1。返回开始菜单”); printf(\"2。继续进行退货处理\"); scanf(”%d\",&c); } }

(3)运行效果 输入:2

输出:请输入要退的商品名称: 输入:1

输出:请输入要退商品的数量: 输入:1

输出:请选择是否要退货1.是2.否 输入:1

输出:退货已成功

请选择:1。返回开始菜单2。继续进行退货处理 输入:1 返回开始菜单

}

s[i].jinjia=0; s[i]。shoujia=0; s[i]。kucun=0;

printf(\"本商品已删除\\n\");

9

运行效果图如图5—5所示。

图5-5退货功能运行界面

5.4商品销售函数

(1)流程图

商品销售函数实现商品购买功能。购买商品时输入要购买商品的编号、购买数量,能够计算出应收金额和应收总金额,同时修改库存数量。此外,当实收金额少于应收总金额时,此次销售不成功,可根据用户的要求进行修改或放弃。

10

商品销售流程图如图5—6所示。

是 是否 是否 是否结账 否是 是 否 返回开始菜单 图5—6商品销售流程图 11

开始菜单 商品销售 输入购买商品的编号 该商品是否存在 输入购买数量 库存数量是否够 重新输入购买数量 计算应收金额,修改库存数量、打印出销售清单 输出未找到该商品 输入实收金额 实收金额是否大于应收总金额 找零,购买成功 是否重新付款 取消购买某种商品,重新计算总金额,修改库存信息 (2)系统代码

void spxs()//商品销售函数 {

char str[30]; int i,sl,a=2,c;

float je,jez=0,ssje,zl; while(a==2) {

printf(”请输入购买商品的编号:”); scanf(”%s”,str); for(i=0;iif(strcmp(str,s[i]。bhstr)==0)//查找购买的商品 {

printf(\"请输入要购买的数量:”); scanf(\"%d”,&sl);

while(sl〉s[i]。kucun )//购买的数量如果大于库存数量 {

printf(”商品库存数量不足,请重新输入要购买的数量:\");

scanf(\"%d”,&sl); }

printf(”应收金额为:\");

je=sl*s[i].shoujia;//计算购买该商品的金额 printf(\"%5。1f\\n”,je);

s[i]。kucun=s[i].kucun-sl;//修改库存信息 printf(\"应收总金额为:”); jez=jez+je;//计算购买商品的总金额 printf(\"%5。1f\\n”,jez); break; }

12

if(i>=b)//如果没有找到该商品 printf(\"对不起,未找到该商品\\n\"); printf(”请选择:\"); printf(\"1.结账”);

printf(\"2。继续购买商品”); scanf(\"%d\",&a); if(a==1)//结账 {

printf(\"请输入实收金额:”); scanf(\"%f”,&ssje);

while(ssje〈jez)//如果实收金额小于应收总金额 {

printf(\"金额不足,请选择:”);

printf(”1。重新付款\");

printf(\"2。取消购买\"); scanf(”%d\",&c); if(c==1)//重新付款 {

printf(”请输入实收金额:”); scanf(”%f”,&ssje);

else//取消购买某种商品 {

printf(”请输入取消购买商品的编号或名称:”);

scanf(\"%s\; for(i=0;i〈b;i++)

if((strcmp(str,s[i]。bh)==0)||(strcmp(str,s[i]。bhstr)==0))//查找要取消购买的商品

{

13

printf(\"请输入取消购买的数量”); scanf(\"%d\",&sl);

s[i]。kucun =s[i]。kucun +sl;//修改库存信息

jez=jez—sl*s[i].shoujia ;//重新计算总金额 printf(”取消购买成功\\n”);

}

}

zl=ssje—jez;//找零

printf(”找零%5.1f\\n”,zl); printf(”购买成功\\n”); } if(a!=2) {

printf(\"请选择:”); printf(\"1.返回开始菜单”); printf(\"2.继续购买商品\"); scanf(”%d\ jez=0; } } }

(3)运行效果 输入:3

输出:请输入购买商品的编号: 输入:1

输出:请输入要购买的数量: 输入:1

输出:应收金额为:1。0

14

应收总金额为:1。0

请选择:1.结账2.继续购买商品 输入:2

输出:请输入购买商品的编号: 输入:2

输出:请输入要购买的数量: 输入:1

输出:应收金额为:2。0 应收总金额为:3。0

请选择:1.结账2.继续购买商品 输入:1

输出:请输入实收金额: 输入:2

输出:金额不足,请选择:1。重新付款2.取消购买 输入:1

输出:请输入实收金额: 输入:5 输出:找零2。0 购买成功

请选择:1。返回开始菜单2.继续购买商品 输入:1 返回开始菜单

运行效果图如图5-7所示。

15

图5-7商品销售功能运行界面

5.5商品信息查询函数

(1)流程图

商品信息查询函数实现查询商品信息的功能。查询时输入商品的编号或名称,输出商品的编号、名称、进价、售价、库存数量。

16

商品信息查询流程图如图5-8所示。

否 是

图5—8商品信息查询流程图

返回开始菜单 输出商品的编号、名称、进价、售价、库存信息 输出未找到该商品 商品是否存输入要查询商品的编号或名称 开始菜单 商品信息查询

(2)系统代码

void xxcx()//商品信息查询函数 {

char str[30]; int i,a=2; while(a==2) {

printf(”请输入要查询商品的编号或名称:”); scanf(”%s”,str);

for(i=0;i〈b;i++)//查找要查询的商品

if((strcmp(str,s[i]。bh)==0)||(strcmp(str,s[i].bhstr)==0)) {

17

printf(\"商品编号: %s\\n\",s[i]。bh); printf(\"商品名称: %s\\n”,s[i]。bhstr); printf(”商品进价:%5.1f\\n\",s[i]。jinjia); printf(”商品售价:%5.1f\\n\",s[i].shoujia); printf(”商品库存: %d\\n”,s[i]。kucun); break;

}

if(i〉=b)//未找到要查询的商品

printf(”对不起,未找到该商品\\n\");

printf(”请选择:\"); printf(”1。返回开始菜单\"); printf(\"2。继续查询商品\"); scanf(”%d”,&a); } }

(3)运行效果 输入:4

输出:请输入要查询商品的编号或名称: 输入:1

输出:商品编号:1 商品名称:1

商品进价:1.0 商品售价:1.0 商品库存:1

请选择:1。返回开始菜单2。继续查询商品 输入:2

输出:请输入要查询商品的编号或名称: 输入:3

输出:对不起,未找到该商品

请选择:1。返回开始菜单2。继续查询商品

18

输入:1 返回开始菜单

运行效果图如图5—9所示。

图5-9商品信息查询功能运行界面

5.6商品信息浏览函数

(1)流程图

商品信息浏览函数实现浏览全部商品信息的功能.浏览时商品按编号依次输出商品的编号、名称、进价、售价、库存数量信息。

商品信息浏览流程图如图5-10所示。

输入任意字符返回开始菜单 依次输出所有商品的编号、名称、进价、售价、库存信息 开始菜单 商品信息浏览

返回开始菜单 图5—10商品信息浏览流程图 19

(2)系统代码

void spxxpx()//商品信息排序函数 {

int i,j,t5; float t3,t4;

char t1[30],t2[30],a; for(j=1;j<=b—1;j++)//排序

for(i=0;i〈b-j;i++)

if(strcmp(s[i].bh,s[i+1].bh)〉0) {

strcpy(t1,s[i].bh);strcpy(t2,s[i]。bhstr);t3=s[i].jinjia;

strcpy(s[i].bh,s[i+1]。bh);

t4=s[i].shoujia;t5=s[i].kucun;

strcpy(s[i].bhstr,s[i+1].bhstr);s[i]。jinjia=s[i+1]。jinjia;

s[i].shoujia=s[i+1]。shoujia;s[i]。kucun=s[i+1]。kucun;

strcpy(s[i+1]。bh,t1);strcpy(s[i+1].bhstr,t2);s[i+1].jinjia=t3;s[i+1]。shoujia=t4;s[i+1].kucun=t5;

}

printf(”按编号依次输出商品信息:\\n”); for(i=0;iprintf(\"商品编号: %s\\n商品名称: %s\\n商品进价:%5。1f\\n商品

售价:%5。1f\\n商品库存: %d\\n\\n\ }

(3)运行效果 输入:5

输出:按编号依次输出商品信息: 商品编号:1 商品名称:1

商品进价:1.0

20

s[i].bh,s[i]。bhstr,s[i]。jinjia,s[i].shoujia,s[i]。kucun);

printf(”请输入任意字符返回开始菜单”); scanf(”%s\);

商品售价:1.0 商品库存:1 商品编号:2 商品名称:2

商品进价:2。0 商品售价:2。0 商品库存:2 商品编号:3 商品名称:3

商品进价:3。0 商品售价:3.0 商品库存:3

请输入任意字符返回开始菜单输入:w 返回开始菜单

运行效果图如图5-11所示.

21

图5—11商品信息浏览功能运行界面

6 . 总结

通过C语言程序设计实现了超市管理系统,本系统完成了进货功能、退货功能、商品销售功能、商品信息查询功能和商品信息浏览功能,具有功能齐全和操作简单的特点,但是实用性还有待进一步改进。

22

因篇幅问题不能全部显示,请点此查看更多更全内容