版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称 c语言程序设计 课题名称 超市收银系统的设计与实现 专 业 统计学 班 级 学 号 201210020112 姓 名 指导教师 2013年 5月20日 课 程 设 计 任 务 书课程名称 c语言程序设计 课 题超市收银系统的设计与实现专业班级 统计1201班 学生姓名 学 号 指导老师 审 批 任务书下达日期 2013 年 5月 20日任务完成日期 2013年 6月 23 日目 录1系统需求分析1 1.1系统要求 1.2功能要求2总体设计1 2.1模块划分 2.2系统功能模块图 2.3模块功能说明 2.4商品函数数据类型3详细设计3 3.1商品进货流程图 3.2
2、商品修改流程图4程序调试分析45总结96系统使用说明9附件:源程序清单1 系统需求分析 1.1系统要求:实现对超市商品的收银以及各项数据的显示、查询、修改、排序等操作的管理。 1.2功能要求:1)本系统采用一个结构体数组,数据的结构应当包括:商品编号、商品名称、单价、库存量、购买量、总价、成本、利润。2)本系统显示这样的菜单:请选择系统功能项:a、 收银b、 数据查询c、 数据管理 入库 删除 修改d、 利润统计 按类统计利润并排序 统计总利润e、 退出系统3)执行一个具体的功能之后,程序将重新显示菜单。 4)将数据保存到文件中。 5)进入系统前要求先输入密码2 总体设计 2.1模块划分首先输
3、入管理员的账号、密码,成功登入系统,然后系统模块分为“商品管理”、“商品销售”、“查看利润”三个部分。商品管理又包含:商品进货,商品添加,商品浏览,商品搜索,商品删除,商品修改或返回上一级。2.2系统功能模块图超市收银系统帐号登入商品管理数据修改利润统计返回上一级商品编号进货单价库存数量销售单价同类商品销售利润添加商品修改名称修改单价总销售利润 2.3模块功能说明 (1).登入模块:输入账号,密码登入。 (2).商品管理模块:对商品条形码,名称,单价,库存量,购买量,成本价,利润等信息录入的管理。还可对已建立的商品信息进行查询,并且可根据需要选择按商品名查询或按商品种类查询或按商品进货量查询。
4、 (3).商品销售模块:输入要销售商品条形码,名称以及数量,最后进行付款,找零,或者打印小票。(4).进货模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。 (5)删除模块: 可对过期的商品做删除处理。 (6)修改模块: 可根据需要对多件商品信息进行修改,也可随时对个别项进行修改。 (7)浏览模块: 将所有商品信息或想要查询的商品信息显示于屏幕,用于打印商品信息或查找某些商品信息。 (8).利润模块: 统计商品的利润进行统计。 (9).返回上一级:选择该项,自动返回上一级的选择。 2.4商品函数数据类型编号名称单价数量总价成本利润charcharflout
5、int floutfloutflout3详细设计输入1到进货模块 3.1 商品进货流程图输入商品条码: 商品名称进货单价:进货数量:销售单价:是否继续进货:(y/n) y继续输入进货信息 n n 结束进货 3.2商品修改流程图输入2到修改模块修改商品名称:进货单价:库存数量:销售单价:是否继续修改:(y/n) y继续修改进货信息 n n 结束修改 4. 程序调试分析 1.首先输入账号、密码,登入收银系统 2选择商品菜单功能 3.输入进货的商品条码、名称、单价、数量、售价4修改商品名称、单价、售价、库存 5浏览所有商品信息 6查找商品 7添加商品 8删除部分商品 9购买商品5. 总结 此次实践课
6、编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,于是就按课本上的例子编了超市管理系统,先把界面弄好然后再添加各模块。忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,现在在操作本程序时可根据提示进行相关操作,能正确输出结果。这过程艰辛,但只要你持之以恒,成功指日可待。在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学, 学到了课本上没有的知识。从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业
7、有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起应用,除此之外,写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。当然由于自己学的不够好,知识不够丰富,在选题报告中还有一些不够完美的地方。希望自己继续努力,下次能做的更好。同时我想向所有为我的实习提供帮助和指导的老师和同学致谢,感谢你们为我的顺利实习所作的努力和帮助。通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学洗c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作
8、,使自己便好地学好计算机。6. 系统使用说明(1)初次使用先添加管路员的账号、密码,密码需要再次输入 。 (2)输入正确的账号、密码即可登入成功,进入商品管理。(3)添加商品时,只可添加已有条码商品的数量,若添加新的商品则进入进货模块。(4)修改商品时,可修改商品全部信息,也可以只是修改商品部分的信息。(5)退出再次进入系统时,原来进货的商品信息依然存在,方便操作。 (6)退出系统,再次登入,直接输入账号、密码即可,无需再添加账户。计算机与通信学院课程设计评分表课程名称: c语言程序设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况
9、综合成绩 教师签名: 日 期: 附件:源程序清单#include <stdio.h>#include<string>#include<windows.h>void jieshao()/软件介绍printf("t*n");printf("t* 欢 迎 来 到 超 市 收 银 系 统 *n"); printf("t*n");float zongjine=0;/消费总金额float chengben=0;/保存使用的成本float yingli=0;/保存盈利金额int guanshuliang=0;/记
10、录管理员数量int xiaoshuliang=0;/记录销售员数量int chenggong=0;/0则是管理员,非0则是销售员。证明登陆是否成功int zhonglei=0;/记录货物种类int zhenjia=0;/记录是否是会员 0则不是会员1则是会员int diji=0;/记录是会员编号int zongjifen=0;/记录一共接受了多少积分struct huiyuan/定义会员信息结构float jifen;/记录会员积分char name50;/帐户char mima50;/密码;huiyuan hui1000000;/会员信息struct shangpin/定义商品结构体char
11、 name50;/商品名char tiaoxinma50;/条形码float xiaoshoudanjia;/销售单价float jinhuodanjia;/进货单价int kucun;/库存;shangpin shp10000000;/用于保存商品的信息struct xiaoshouyuan/定义销售员结构体int cunzai;/用于记录该销售员是否存在,=-1则表示被删除char zhanghu20;/销售员帐户char mima20;/销售员密码;xiaoshouyuan xiao50;struct guanliyuan/定义管理员结构体int cunzai;/用于记录该管理员员是否存
12、在,=-1则表示被删除char zhanghu20;/管理员帐户char mima20;/管理员密码;guanliyuan guan100;file *fp;/定义一个file类型的*fp指针/保存商品结构体数组void saveshangpin()/wb为二进制写,如果文件不存在则自动创建文件shangpin.datfp=fopen("shangpin.dat","wb");if(fp)/如果文件被成功打开的话(有可能文件不存在)for(int i=0;i<zhonglei;i+)if(fwrite(&shpi,sizeof(struct
13、 shangpin),1,fp)!=1)printf("文件写入错误!n");fclose(fp);/读取商品结构体数组到文件void loadshangpin()fp=fopen("shangpin.dat","rb");if(fp)/如果文件被成功打开的话(有可能文件不存在)for(int i=0;fread(&shpi,sizeof(struct shangpin),1,fp);i+)zhonglei+;fclose(fp);/保存管理员结构体数组void saveguanliyuan()/wb为二进制写,如果文件不存在
14、则自动创建文件fp=fopen("guanliyuan.dat","wb");if(fp)/如果文件被成功打开的话(有可能文件不存在)for(int i=0;i<guanshuliang;i+)if(fwrite(&guani,sizeof(struct guanliyuan),1,fp)!=1)printf("文件写入错误!n");fclose(fp);void loadguanliyuan()/读取管理员结构体数组到文件fp=fopen("guanliyuan.dat","rb"
15、;);if(fp)/如果文件被成功打开的话(有可能文件不存在)guanshuliang=0;for(int i=0;fread(&guani,sizeof(struct guanliyuan),1,fp);i+)guanshuliang+;fclose(fp);/保存销售员结构体数组void savexiaoshouyuan()/wb为二进制写,如果文件不存在则自动创建文件shangpin.datfp=fopen("xiaoshouyuan.dat","wb");if(fp)/如果文件被成功打开的话(有可能文件不存在)for(int i=0;i&
16、lt;xiaoshuliang;i+)if(fwrite(&xiaoi,sizeof(struct xiaoshouyuan),1,fp)!=1)printf("文件写入错误!n");fclose(fp);void loadxiaoshouyuan()/读取销售员结构体数组到文件fp=fopen("xiaoshouyuan.dat","rb");if(fp)/如果文件被成功打开的话(有可能文件不存在)xiaoshuliang=0;for(int i=0;fread(&xiaoi,sizeof(struct xiaosh
17、ouyuan),1,fp);i+)xiaoshuliang+;fclose(fp);void guanlicaidan()/管理员权限菜单printf("nnt* 管理员权限菜单: *n");printf("t*n");printf("t* 1. 商品管理 *n");printf("t n");printf("t* 2. 查看利润 *n");printf("t n");printf("t* 0. 返回身份选择! *n");printf("t*n&
18、quot;);void xiaocaidan()/销售员权限菜单printf("nnt* 销售员权限菜单: *n");printf("t n");printf("t* 1. 浏览商品信息 *n"); printf("t n");printf("t* 2. 销 售 *n");printf("t n");printf("t* 0. 返回身份选择! *n");printf("t*n");void jinhuo()/进货loadshangpin
19、();char choose;int i=zhonglei;int shi=1;/记录条形码是否被使用-数则表示被使用了doshi=1;/在判断条码前为非负数printf("购买商的条码:");fflush(stdin);scanf("%s",shpi.tiaoxinma);if(zhonglei>0)for(int a=0;a<zhonglei;a+)if(a!=i&&shpa.kucun>=0)if(strcmp(shpi.tiaoxinma,shpa.tiaoxinma)=0)printf("错误!此条码
20、已经被使用!n");shi=-1;/条码被使用。标记为-数;break;if(shi!=-1)printf("商品的名称:");fflush(stdin);scanf("%s",);printf("进货单价:");fflush(stdin);scanf("%f",&shpi.jinhuodanjia);printf("进货数量:");fflush(stdin);scanf("%d",&shpi.kucun);printf("
21、;销售价格:");fflush(stdin);scanf("%f",&shpi.xiaoshoudanjia);i+;zhonglei+;printf("是否继续进货:(y/n)");fflush(stdin);scanf("%c",&choose);while(choose='y'|choose='y');saveshangpin();void xiaoshou()/销售物品int i=0;int shiyongjifen=0;/保存每次的使用积分int dayin1000;
22、/标记打印,若值为1则为打印商品char tiaoma50;char choose;int shuliang=0;/保存购买数量int geshu1000;/记录多次购物的个数float shifu=0;/保存实付金额float zhaoling=0;/找零int chaochu;/标记购买量是否超出库存if(zhenjia=1)dochaochu=0;printf("n请输入条形码:");fflush(stdin);scanf("%s",tiaoma);printf("数量:");fflush(stdin);scanf("
23、%d",&shuliang);for(i=0;i<zhonglei;i+)if(shpi.kucun>=0)if(strcmp(tiaoma,shpi.tiaoxinma)=0)printf("n购买商品信息如下:n");printf("t商品名:%st进货单价:%.2ft销售单价:%.2fn",,shpi.jinhuodanjia,shpi.xiaoshoudanjia);if(shuliang>shpi.kucun) chaochu=-1;/标记为-数表示超出printf("没有足够库存
24、!nn");break;dayini=1;geshui=shuliang;shpi.kucun=shpi.kucun-shuliang;zongjine+=shpi.xiaoshoudanjia*shuliang;/计算应付金额chengben+=shpi.jinhuodanjia*shuliang;/计算成本huidiji.jifen+=shpi.xiaoshoudanjia*shuliang;break;if(i=zhonglei) printf("没有此商品!n");if(chaochu!=-1)printf("是否继续购买(y/n):"
25、);fflush(stdin);scanf("%c",&choose);while(choose='y'|choose='y'|chaochu=-1);printf("应付金额%.2fn",zongjine);printf("实付金额:");fflush(stdin);scanf("%f",&shifu);printf("100积分=1元,是否使用积分?(y/n)");fflush(stdin);scanf("%c",&
26、choose);if(choose='y'|choose='y')printf("剩余积分%.2fn",huidiji.jifen);printf("使用多少积分?");fflush(stdin);scanf("%d",&shiyongjifen);zongjifen+=shiyongjifen;zhaoling=shifu-zongjine+shiyongjifen/100.0;huidiji.jifen-=shiyongjifen;else zhaoling=shifu-zongjine;i
27、f(zhenjia!=1)doprintf("请输入条形码:");fflush(stdin);scanf("%s",tiaoma);printf("数量:");fflush(stdin);scanf("%d",&shuliang);for(i=0;i<zhonglei;i+)if(shpi.kucun>=0)if(strcmp(tiaoma,shpi.tiaoxinma)=0)/找到被销售的商品printf("n购买商品信息如下:n");printf("t商品名:%
28、st进货单价:%.2ft销售单价:%.2fn",,shpi.jinhuodanjia,shpi.xiaoshoudanjia);if(shpi.kucun<=10) printf(" 提示:该商品库存不足10份!请及时补充!n");/提示库存信息if(shuliang>shpi.kucun)/判断是否有足够库存chaochu=-1;/-数表示超出printf("没有足够库存!n");break;dayini=1;/销售的商品标记打印为1;用于打印小票geshui=shuliang;shpi.kucun-=shuli
29、ang;/库存=原库存-销售数量zongjine+=shpi.xiaoshoudanjia*shuliang;/计算应付金额chengben+=shpi.jinhuodanjia*shuliang;/计算成本break;if(i=zhonglei) printf("没有此商品!n");printf("n是否继续购买(y/n):");fflush(stdin);scanf("%c",&choose);while(choose='y'|choose='y'|i=zhonglei);printf(&q
30、uot;应付金额%.2fn",zongjine);printf("实付金额:");fflush(stdin);scanf("%f",&shifu);zhaoling=shifu-zongjine;printf("是否打印小票(y/n)");fflush(stdin);scanf("%c",&choose);if(choose='y'|choose='y')/打印小票printf("nn条形码t名称t销售单价t数量t金额n");for(i=
31、0;i<zhonglei;i+)if(dayini=1)printf("%st%st%.2ftt%dt%.2fn",shpi.tiaoxinma,,shpi.xiaoshoudanjia,geshui,shpi.xiaoshoudanjia*geshui);if(zhenjia=1) printf("使用%d积分!n",shiyongjifen);printf("应付金额%.2f元t实付金额%.2f元t找零%.2f元n",zongjine,shifu,zhaoling);yingli+=zongjine-che
32、ngben;/盈利=收入金额-成本zongjine=0;chengben=0;saveshangpin();void lirun()/利润函数printf("共接受了%d的抵价积分!n",zongjifen);/显示共接受的积分量printf("今日已赚%.2f元n",yingli);/显示盈利量void shanchu()/删除商品loadshangpin();char tiaoma50;char choose;doprintf("请输入要删除的商品的条码:");fflush(stdin);scanf("%s",
33、tiaoma);for(int i=0;i<zhonglei;i+)if(shpi.kucun!=-1)if(strcmp(tiaoma,shpi.tiaoxinma)=0)/找到要删除的商品printf("n原信息如下:n");printf("t商品名:%st进货单价:%.2ft销售单价:%.2f库存:%dn",,shpi.jinhuodanjia,shpi.xiaoshoudanjia,shpi.kucun);shpi.kucun=-1; /删除则将库存标为负数printf("该商品已删除!n");brea
34、k;if(i=zhonglei) /没有找到商品printf("没有此商品!n"); break;printf("n是否继续删除(y/n):");fflush(stdin);scanf("%c",&choose);while(choose='y'|choose='y');saveshangpin();void xiugai()/修改商品loadshangpin();char tiaoma50;char choose;doprintf("请输入要修改的商品条码:");fflus
35、h(stdin);scanf("%s",tiaoma);for(int i=0;i<zhonglei;i+)if(shpi.kucun>=0) /判断是否被删除if(strcmp(tiaoma,shpi.tiaoxinma)=0)/找到要修改的商品printf("n原信息如下:n");printf("t商品名:%st进货单价:%.2ft销售单价:%.2f库存:%dn",,shpi.jinhuodanjia,shpi.xiaoshoudanjia,shpi.kucun);printf("n修改商品
36、名:");fflush(stdin);scanf("%s",);printf("修改进货单价:");fflush(stdin);scanf("%f",&shpi.jinhuodanjia);printf("修改销售单价:");fflush(stdin);scanf("%f",&shpi.xiaoshoudanjia);printf("修改库存:");scanf("%d",&shpi.kucun);brea
37、k;if(i=zhonglei)printf("没有此货物!n");printf("n是否继续修改?(y/n)");fflush(stdin);scanf("%c",&choose);while(choose='y'|choose='y');saveshangpin();void liulanshp()/浏览所有商品printf("条形码t名称t销售单价t进货单价t库存n");for(int i=0;i<zhonglei;i+)if(shpi.kucun>=0)i
38、f(shpi.jinhuodanjia!=0)/判断是否存在printf("%st%st%.2ftt%.2ftt%dn",shpi.tiaoxinma,,shpi.xiaoshoudanjia,shpi.jinhuodanjia,shpi.kucun);if(zhonglei=i) break;void sousuo()/搜索商品char tiaoma50;printf("请输入您要查找的商品条形码:");fflush(stdin);scanf("%s",tiaoma);for(int i=0;i<zhongl
39、ei;i+)if(shpi.kucun>=0)/判断是否存在if(strcmp(tiaoma,shpi.tiaoxinma)=0)/找到商品printf("n条形码t名称t销售单价t进货单价t库存n");if(shpi.jinhuodanjia!=0)printf("%st%st%.2ftt%.2ftt%dn",shpi.tiaoxinma,,shpi.xiaoshoudanjia,shpi.jinhuodanjia,shpi.kucun);break;if(zhonglei=i) printf("没有此商品!n&quo
40、t;);void tianjia()/添加货物数量loadshangpin();char choose;char tiaoma50;int jia=0;doprintf("请输入条形码:");fflush(stdin);scanf("%s",tiaoma);for(int i=0;i<zhonglei;i+)if(shpi.kucun>=0)if(strcmp(tiaoma,shpi.tiaoxinma)=0)/找到要添加的商品break;if(i=zhonglei) printf("没有此商品!n");break;pri
41、ntf("n原信息如下:n");printf("t商品名:%st进货单价:%.2ft销售单价:%.2f库存:%dn",,shpi.jinhuodanjia,shpi.xiaoshoudanjia,shpi.kucun);printf("n请输入添加的数量:");fflush(stdin);scanf("%d",&jia);shpi.kucun=shpi.kucun+jia;printf("n是否继续添加(y/n)");fflush(stdin);scanf("
42、%c",&choose);while(choose='y'|choose='y');saveshangpin();void tianjiaguanliyuan()/添加管理员loadguanliyuan();char heduimima50;int chongfu;dochongfu=0;printf("请添加管理员帐户:");scanf("%s",guanguanshuliang.zhanghu);for(int a=0;a<guanshuliang;a+)if(a!=guanshuliang)i
43、f(strcmp(guanguanshuliang.zhanghu,guana.zhanghu)=0)chongfu=1;if(chongfu=1) printf("该帐户已存在!");break;printf("请输入密码:");scanf("%s",guanguanshuliang.mima);fflush(stdin);printf("请再次输入密码:");scanf("%s",heduimima);if(strcmp(guanguanshuliang.mima,heduimima)=0)
44、 printf("管理员设置成功!n");guanshuliang+; break;else printf("两次输入的密码不正确!n");while(guanguanshuliang.mima!=heduimima);saveguanliyuan();void tianjiaxiaoshouyuan()/添加销售员 loadxiaoshouyuan();char heduimima50;char choose;int chongfu;dochongfu=0;printf("请添加销售员帐户:");scanf("%s&quo
45、t;,xiaoxiaoshuliang.zhanghu);for(int a=0;a<xiaoshuliang;a+)if(a!=xiaoshuliang)if(strcmp(xiaoxiaoshuliang.zhanghu,xiaoa.zhanghu)=0)chongfu=1;if(chongfu=1) printf("该帐户已存在!");break;printf("请输入密码:");scanf("%s",xiaoxiaoshuliang.mima);fflush(stdin);printf("请再次输入密码:&qu
46、ot;);scanf("%s",heduimima);if(strcmp(xiaoxiaoshuliang.mima,heduimima)=0) printf("销售员设置成功!n");xiaoshuliang+; break;else printf("两次输入的密码不正确!n");while(xiaoxiaoshuliang.mima!=heduimima);savexiaoshouyuan();void shpguanlicaidan()/商品管理功能菜单printf("nnt* 商品管理功能菜单:*n");printf("t n");printf("t* 1. 进 货 *n");printf("t n");printf("t* 2.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44435-2024信息与文献数字文件(档案)转换和迁移过程
- GB/T 25216-2024煤与瓦斯突出危险性区域预测方法
- 合伙协议书签订时的法律审查
- 2024年黄沙石子供货合同范本
- 专业承包工地食堂合同书模板
- 合作经营生意合同协议
- 800字代办委托协议范本
- 房产按揭贷款借款协议示例
- 咖啡店外卖服务合同
- 2024年二手车购买协议格式
- Unit 4 My Favourite Subject教学设计2024年秋人教版新教材七年级英语上册
- 照片版权授权协议书
- 四川省成都市实验外国语校2024届中考联考语文试卷含解析
- 2024年网格员考试题库及答案1套
- 数列的概念与简单表示法 高考数学一轮复习
- PICC导管居家护理
- 通信工程拟投入的测试设备表
- 高考数学课堂互动与学生数学考试成绩的相关性研究
- 四环节教学心得体会
- 电力系统经济学原理(第2版) 课件全套 第1-8章 引言、经济学基本概念-输电投资
- 0324心脏瓣膜病课件
评论
0/150
提交评论