




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 电子科技大学成都学院微电子技术系C语言课程设计实验报告册题 目:杂货店库存销售管理系统 指导教师: 设 计 者(组长): 赵同学 设 计 者(组员1): 李同学 所属院系:微电子技术系 微电子技术系制2016年 6月1日一、课程设计的目的1、进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程序设计开发文档的能力。二、课程设计的任务内容(一)系统需求分析1. 输入记录:将每一个商品的商品名称、商品ID 号以及商品类型、商品单价
2、、商品数量的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。2. 显示记录:根据用户提供的记录或者根据商品名称显示一个或几个商品的各项详细记录。3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。4查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。5. 删除记录:可删除数据文件中的任一记录。6排序:按货号排序。7. 统计: (A)统计有多少种商品类型,并计算各项商品类型下的商品数量和总金额,。(B) 统计符合指定条件(如商品单价在50元以下、50100 元、100元以上) 以内的商品数量以及占总商品数
3、量的百分比。(C)按货号或者单价排序形式打印全部商品信息表。8保存数据文件以及打开数据文件功能。经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。三模块设计分析(一)系统功能模块图欢迎画面登陆界面主菜单保存与读取按商品ID号查找修改商品ID号修改商品名称修改商品数量修改商品价格修改商品类型找零查询库存查询销量排行名称顾客消费排行统计某月生日顾客(二)各个模块详细功能描述1.欢迎界面:有背景音乐和配图,配图颜色会随机变化。2.登陆界面:可以进行背景色的设置,浏览关于我们的技术支持信息,可以修改登陆密码等。3.客户
4、管理:实现客户信息的增删查改。4.商品管理:实现了商品基本信息录入的增删查改,还能查看库存量,此处的库存量会由于销售系统部分售出商品而及时更改库存信息。5.购物结算:可帮助售货员进行销售,具有结算功能,可实现收银台的作用。6.销售结算:对销售量,库存量,客户购买需求等进行统计排名,帮助店家进货时能选择热销商品,同时可以查询各个月份生日的顾客。(三)功能函数的调用关系图主函数欢迎程序登陆程序客户管理退出程序购物结算销售结算商品管理客户贡献排行程序修改客户程序添加客户程序删除客户程序查询客户程序查询商品程序删除商品程序修改商品程序添加商品程序查询某月客户生日程序销量排行程序四系统详细设计(请按照功
5、能模块的划分,抓图并搭配相应的实现代码来描述具体的实现。代码中可以添加必要的注释)1.欢迎界面:有背景轻音乐,有动态动画展示,动画颜色随机变化。#ifndef _user_def_H /用户自定义头文件user-defined#define _user_def_H#include /支持Sleep函数 #include #include /用于随机函数初始化time()void color_back() /设置文本字符的颜色 int i; srand(unsigned)time(NULL); /初始化时钟 i=rand()%15; /随机一个0到14的整数 switch(i) case 0:
6、system(color 07);break; case 1: system(color 08);break; case 2: system(color 09);break; case 3: system(color 0A);break; case 4: system(color 0B);break; case 5: system(color 0C);break; case 6: system(color 0D);break; case 7: system(color 0E);break; case 8: system(color 0F);break; case 9: system(color
7、 01);break; case 10:system(color 02);break; case 11:system(color 03);break; case 12:system(color 04);break; case 13:system(color 05);break; case 14:system(color 06);break; void display_picture() /显示动画程序 system(cls); printf(nn); color_back(); /随机一个文本颜色 Sleep(300); /让系统暂停300毫秒,1秒 = 1 000 毫秒 printf(tt
8、-n); color_back(); Sleep(300); printf(tt |-|n); color_back(); Sleep(600); printf(tt * * * * * * *n); color_back(); Sleep(600); printf(tt * * * * *n); color_back(); Sleep(900); printf(tt = *= *=n); color_back(); Sleep(900);printf(tt * * *n); color_back(); Sleep(1000);printf(tt * * * *n); color_back()
9、; Sleep(1000);printf(tt * *n); color_back(); Sleep(1200); printf(tt - n); color_back(); Sleep(1300);printf(tt 李&赵 杂货商店 n); color_back(); Sleep(1300); printf(tt - - n); color_back(); Sleep(600); printf(tt * * * * n); color_back(); Sleep(600); printf(tt * * n); color_back(); Sleep(600); printf(tt * *
10、* *n); color_back(); Sleep(600); printf(tt * * * * n);#endif2.登陆界面:登陆账号,改变背景色,修改密码,查看关于我们的技术支持,退出系统void main() char choice=5; /存储判断的选项 int i; PlaySound (TEXT(C:Users15878Desktopsupermarket洋葱.wav), NULL, SND_ASYNC | SND_NODEFAULT);/音乐播放 printf(杂货店管理程序n); system(pause); for(i=0;i= 3)printf(3次密码错误!n);p
11、rintf(请稍后再次登录nn);printf(请按任意键退出);getch();return -1;return 1;void changepw()struct user info;char pw100=0, pw_confirm100=0;read_data(&info);system(cls);while(1)int i;printf(按1改密码n按0退出n);scanf(%d, &i);if(i = 0)break;if(i = 1)while(1)printf(请输入原始密码n);scanf(%s, pw);if(strcmp(pw, info.pw) != 0)printf(原始密
12、码错误n);continue;printf(请输入新密码n);scanf(%s, pw);printf(请再输一次n);scanf(%s, pw_confirm);if(strcmp(pw, pw_confirm) != 0) int j;printf(两次密码不一致!n);while(1)printf(按1再一次改密码n按2返回上一步n按0退出n);scanf(%d, &j);if(j = 0) return -2;if(j = 1 | j = 2) break;printf(unknown inputn);if(j = 2) break;continue;strcpy(info.pw, p
13、w);write_data(&info);break;elseprintf(unknown input, should be 0/1n);3.主菜单void showMymenue() char choice=5; while(1) system(cls); BreakLine; printf(tt1. 商品管理n); printf(tt2. 客户管理n); printf(tt3. 购物预算n); printf(tt4. 销售预算n); printf(tt5. 退出系统n); BreakLine; printf(nn请输入您的选择(1,2,3,4,5):); choice=getch(); s
14、witch (choice) case1: showGoodsmenue(); break; case2: showCustmenue(); break;case3: showSell(); break;case4: showSales(); break;case5:printf(nn系统安全退出nn);exit(0);break;default: printf(n您的输入有误,请检查后重新输入n); pcontinue(); 4.商品管理:包括添加商品,修改商品,删除商品,查询商品#include #include #include #include #include MyParams.h#
15、include common.h#include Mymenu.h#include Goodsman.hstruct dateint year;int month;int day;struct goods int no; /编码:char name20; /名称:struct date scday; /生产期 struct date:表示结构体类型date型 scday变量名 生日:- struct datefloat expenda; /原价:float expendb; /单价:int save; /库存量int sell; /出售量goods100000; /定义一个全局的结构体数组 1
16、00000int total;int read_Message()FILE *fp;int i=0;if(fp=fopen(goods.dat,rb)=NULL)printf(n*暂无任何可读信息,按任意键继续*);getch();return 0;while(feof(fp)!=1)fread(&goodsi,sizeof(struct goods),1,fp);if(goodsi.no=0)break;elsei+;fclose(fp);return i;void saveall() FILE*fp; int i; if(fp=fopen(goods.dat,wb)=NULL) print
17、f(n无法打开文件n); return; for(i=0;itotal;i+) fwrite(&goodsi,sizeof(struct goods),1,fp); fclose(fp);void addgoods()struct goods newgoods; /新加入的结构体数组char choice=y; /是否继续录入信息FILE *fp; /文件指针,用它指向一个文件int i=0; /i是一个计数器,因为文件中最多存1000个数据 dosystem(cls);printf(n*添加商品信息*n);printf(请输入商品编码:);scanf(%d,&newgoods.no); /取
18、地址因为它是一个基本类型的数据BreakLine;printf(请输入商品名称:);scanf(%s,&); BreakLine;printf(请输入商品生产期:(格式如下:1999-9-9):);scanf(%d-%d-%d,&newgoods.scday.year,&newgoods.scday.month,&newgoods.scday.day);printf(请输入商品原价:);scanf(%f,&newgoods.expenda); printf(请输入商品单价:);scanf(%f,&newgoods.expendb);printf(请输入商品出售量:);
19、scanf(%d,&newgoods.sell);printf(请输入商品库存量:);scanf(%d,&newgoods.save);/以上完成了输入客户信息的操作; /将newcust结构体中的数据保存到一个磁盘文件中if(fp=fopen(goods.dat,ab)=NULL)printf(无法打开文件); return; /如果打得开文件 /要保存数据的地址 这个数据类型的长度 几个数组文件指针fwrite(&newgoods,sizeof(struct goods),1,fp);fclose(fp); /重新确认是否继续录入printf(n还要继续;录入商品信息吗?(y/n);cho
20、ice=getch();while(choice=y);void delgoods()int i,j;int todelno;char choice=n;system(cls);total=read_Message();printf(n请输入你要删除的商品的编码:);scanf(%d,&todelno);for(i=0;itotal;i+)if(todelno=goodsi.no)break; /如果,没有找到要删除的商品if(i=total)printf(n没有找到您想删除的商品n);printf(n按任意键继续n);getch();return; printf(亲爱的管理员,删除后无法恢复
21、,您确定要删除吗?(y/n);choice=getch();if(choice=n)printf(n放弃删除,返回上一级n);printf(n按任意键继续n);getch();return;for(j=i;jtotal;j+)goodsj=goodsj+1;total-=1;saveall();printf(n删除商品数据成功n);pcontinue();getch();void updategoods()int i,r;int todelno;/struct goods gx; char choice=n;system(cls);total=read_Message();printf(n请输
22、入你要更新的商品的编号:);scanf(%d,&todelno);for(i=0;i0)printf(n*显示所有商品信息*n);printf(n编号t名称t生产期tt原价t单价t出售量t库存量n);for(i=0;itotal;i+)c=goodsi;printf(n%dt%st%d-%d-%dt%.2ft%.2ft%dt%dtn,c.no,,c.scday.year,c.scday.month,c.scday.day,c.expenda,c.expendb,c.sell,c.save);BreakLine;else printf(n*系统中暂无任何商品信息*n);printf(
23、n按任意键继续n);getch();5.客户管理:包括客户信息的增添,删除,修改,与查询#include #include #include #include #include MyParams.h#include common.h#include Mymenu.h#include CustMan.hint read_message(); struct dataint year;int month;int day; ;struct custint no; /编号char name20; /名字double expenditure; /总花费char tel20; /电话号码struct dat
24、a birthday; /生日cust1000; /最多存1000个客户信息int total; /现在cust.dat文件中总的纪录条数void saveAll() FILE*fp;int i;if(fp=fopen(cust.dat,wb)=NULL)printf(n无法打开文件n);return;for(i=0;i0) printf(n*显示所有客户信息*n); printf(n 编号 tt 姓名 tt消费 tt 电话 ttt 生日); for(i=0;itotal;i+) c=custi; printf(n%dtt%stt%.2ftt%stt%d-%d-%dttn,c.no,c.nam
25、e,c.expenditure,c.tel,c.birthday); printf(n); else printf(n*系统中暂无任何客户信息*); pcontinue();void updatecust() int i,q; int toupdateno; /要更新的编号 int j; system(cls); total=read_message(); / 读出信息 printf(n请输入您要更新的客户编号:); scanf(%d,&toupdateno); /查找 for(i=0;itotal;i+) if(toupdateno=custi.no) break; /i里面记录了要更新的客
26、户的索引 if(i=total) printf(n没有找到要更新的客户n);printf(按任意键继续n);getch();return; printf(n*请更新用户信息*n); printf(n*请选择更新项目*n); printf( 1.客户姓名n); printf( 2.客户电话n); printf( 3.客户生日n); printf( 4.返回上级n); BreakLine; while(1) printf(请输入选择项目:); scanf(%d,&q); switch(q) case 1:printf(请输入客户姓名:); scanf(%s,);break; /*printf(请输入客户消费:); scanf(%d,&custi.expenditure);*/ case 2:printf(请输客户电话:); scanf(%s,custi.tel);break; case 3:printf(请输入客户的生日(格式:1999-9-9):); scanf(%d-%d-%d,&custi.birthday.year,&custi.birthday.month,&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 闽教版小学英语四年级上册教学工作总结模版
- 算力新质生产力
- 老教师传帮带工作总结模版
- 代运营协议合同标准文本
- 企业培训的新焦点提高医护团队沟通能力
- 医疗大数据助力商业保险精准营销
- 企业保险销售合同范例
- 新质生产力包括什么
- 代招加盟合同范例
- 医疗人才教育与培训的未来趋势与挑战
- 铁杵磨针儿童故事绘本
- 2024年江苏高考数学试题及答案
- 08D800-6民用建筑电气设计与施工室内布线
- DL∕T 1938-2018 垃圾发电厂炉渣处理技术规范
- 无人机编队技术的发展与应用
- 基于源流梳理及名词考据的仲景微汗法应用阐释与实证研究
- 湖南省矢量地图课件模板(各市、区县地图-可编辑、配色)
- 《集成电路版图设计》课程标准
- 解除独家合同范本
- 黑龙江省公安机关人民警察初级执法资格测试题
- 医师执业注册变更健康体检表
评论
0/150
提交评论