C语言课程设计报告《商品销售管理》.docx
- 文档编号:15144769
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:35
- 大小:524.71KB
C语言课程设计报告《商品销售管理》.docx
《C语言课程设计报告《商品销售管理》.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告《商品销售管理》.docx(35页珍藏版)》请在冰点文库上搜索。
C语言课程设计报告《商品销售管理》
湖北汽车工业学院电气与信息工程学院
《C语言程序设计》
课程设计
课程设计题目:
商品销售管理
专业:
电子信息科学与技术
班级:
T1023-11
姓名:
余勇
成绩:
附录
一、需求分析
1、问题
问题描述:
已知一公司有10种产品(产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)),设计一程序,完成以下功能:
1 销售:
从键盘输入顾客姓名,销售数量、销售日期,实现销售功能。
需要判断产品是否存在,销售数量是否小于库存数量,销售日期格式是否合法(格式为:
YYYY-MM-DD,如2009-01-02))
2 计算时间段内各个产品的销售总额
3 能根据顾客姓名,查询购买历史
4 能显示所有顾客的姓名
根据需求,该系统所应包含的信息有以下一些:
商品销售的基本信息:
顾客姓名、产品类型、销售数量、销售日期、库存数量、销售总额;
根据需求,该系统所应实现的功能有以下一些:
1.各种基本数据的录入。
如:
产品销售的基本信息的录入。
2.基于各种基本数据的查询。
即允许对已经录入的数据进行查询。
例如根据产品编号查询产品的销售历史;根据顾客姓名,查询购买历史。
3.各种基本数据的计算。
计算时间段内各个产品的销售总额。
4.数据的显示:
显示所有顾客的姓名。
5.数据导出:
将销售信息导出到指定文件。
6.数据导入:
从指定文件导入销售信息。
2、系统
采用C语言实现,开发环境为VC6.0,可以运行在操作系统windows98及以上皆可。
3、运行要求
1)能不受限制的录入销售信息;
2)界面友好,操作方便,例如保存前需要提示用户是否保存;
3)容错性强,例如数据导出时,如果文件不存在需要提示用户。
二、总体设计
1、系统流程设计
2、系统模块设计
根据系统的功能设计,设计如下模块
主界面模块:
完成系统菜单的显示;
功能选择模块:
根据用户的选择,完成其相应的功能;
商品销售信息录入:
完成用户从界面输入信息,保存入系统的功能;
查询销售产品历史:
根据产品的编号ID查询该产品的销售记录的功能;
时间段内产品的销售总额:
根据用户的需求,查询任意时间段内的各个产品的销售总额;
查询顾客的购买历史:
根据客户的姓名,查询其购买历史;
显示顾客的姓名:
根据需要,显示顾客的姓名;
保存顾客信息:
根据需要,保存顾客信息至文件;
保存销售信息:
根据需要,保存销售信息至文件;
三、详细设计
1、数据结构设计
根据系统要求,系统中需要保存的数据,其结构如下:
数据项名称
数据项系统表示
数据类型
数据长度
备注
顾客姓名
c_name
字符串
30
顾客编号
c_id
整型
产品名称
p_name
字符串
30
产品编号
p_id
字符串
19
产品价格
price
单精度
产品产地
place
字符串
50
产品库存
stonum
整型
产品销量
num
整型
产品销售日期
s_date
字符串
10
为了能实现不受限制的增加销售信息,采用链表的结构保存销售信息,在增加销售的基本信息时,创建一个销售信息的节点,将其插入到链表中,示意图如下。
使用C语言创建的结构体如下:
structsell//定义商品销售结构体
{
intc_id;
charc_name[30];
charp_id[19];
charp_name[30];
intnum;
chars_date[10];
structsell*next;
};
2、界面设计
2.01欢迎界面:
介绍该系统的简要情况。
2.02主界面:
根据系统要求,设计一个字符界面,显示系统的菜单,为了体现友好性,将在每个菜单前显示该菜单项对应的数字
用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。
2.03导入商品信息界面:
选择文件导入选项将商品信息从文件中导入,也可以通过键盘手动输入。
如:
2.04显示商品信息:
通过文件导入或键盘输入的商品信息,然后显示在屏幕上。
给销售员查看销售情况。
2.05输入顾客购买信息:
通过键盘输入顾客购买商品的信息,并且保存至链表和文件中。
2.06按商品编号查询商品销售信息:
通过键盘输入商品的编号查询销售信息
查询结果如下:
2.07按日期范围查询销售记录:
键盘输入查询日期的范围,查询结果如下:
2.08按顾客姓名查询其购买历史:
查询结果如下:
2.09显示顾客姓名:
2.10保存销售信息:
保存本次销售信息至文件。
文件保存信息如下:
***********************************************************************************
顾客编号商品编号销售数量购买日期
==================================================
1517411002011-07-04
***********************************************************************************
2.11保存顾客信息:
文件保存信息如下:
********顾客购买记录**********
顾客姓名顾客代码
张三15174
*********************************
2.12结束界面:
3、模块实现
1.主界面实现:
模块说明:
调用printf()函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用system(“cls”)函数将前面的界面清空。
模块流程:
保存销售信息
保存顾客信息
显示顾客的姓名
查询顾客的购买历史
时间段内产品的销售总额
查询产品的销售历史
商品销售录入
功能选择
显示商品信息
是
否
3.1主函数流程图
对应的函数:
hello(),menu(),bye();
2.商品信息的导入实现:
模块说明:
从文件导入或者键盘键入现有商品信息。
模块流程:
a=1a=2
3.2商品导入流程图
对应的函数:
choice_read(),file_read(),keyboard();
3.销售信息录入模块实现:
模块说明:
从键盘接收输入的销售信息,在动态存储区中创建销售的节点,遍历链表,将其插入到销售链表的最后位置。
模块流程:
否
是
3.3销售信息流程图
对应的函数:
sale(),sale_download_save(),judge();
4.按编号查找销售历史
模块说明:
根据键盘输入的商品编号,在销售链表中遍历查询,若有配对,
则同时输出其节点保存的其他信息。
模块流程:
否
是
是
3.4按编号查找流程图
对应函数:
search_p_id();
5.日期范围的销售信息查询模块实现:
模块说明:
从键盘接收输入一个日期范围,遍历链表,判断节点的日期是否在此日期范围内,如果在,则输出该节点的其他信息,如产品编号,顾客编号等等。
模块流程:
否
是
是
3.5按日期范围内查找流程图
对应函数:
search_time();
6.按顾客姓名查询销售记录模块实现:
模块说明:
通过键盘输入顾客姓名,在销售链表中遍历查找节点包含的姓名,若姓名配对,则输出该节点的信息。
模块流程:
否
是
是
3.6按顾客姓名查找流程图
对应函数:
search_name();
7.显示顾客姓名模块实现:
模块说明:
通过键盘输入的顾客姓名,若在顾客链表中查询该姓名,输出其姓名和编号。
模块流程:
否
是
是
3.7显示顾客流程图
对应函数:
list_name()
8.保存销售信息模块:
模块说明:
保存在销售链表和顾客链表中的销售信息至文件。
模块流程:
否
是
3.8保存销售信息流程图
对应函数:
download_s();
9.保存销售信息模块:
模块说明:
保存在销售链表和顾客链表中的顾客信息至文件。
模块流程:
否
是
3.9保存信息流程图
对应函数:
download_c();
四:
功能模块的调试及测试
1、测试选项
测试的数据:
输入a:
测试结果:
程序运行出现错误,如下
原因:
是选择0—9之外的数,不能跳转。
测试数据:
1
测试结果:
程序运行正常,正常跳转到界面。
2、输入销售信息测试
测试数据:
zhangsan11002011-07-32
测试结果:
修改后的测试数据:
张三11002011-07-04
测试结果:
如上图,测试成功。
原因:
姓名只准输入汉字,日期只准输入当前日期,并且销售日期形如(1991-02-27)。
3、按编号查询销售信息测试
测试数据:
4;
测试结果:
原因:
编号为4的商品未销售。
4、按日期范围内查询销售日期
测试数据:
(开始日期)2011-06-01
(结束日期)2011-06-30
测试结果:
原因:
该日期内无销售日期。
修改后的日期:
(开始日期)2011-06-01
(结束日期)2011-08-01
测试结果:
有记录。
5、按顾客姓名查找销售记录:
测试数据:
李四
测试结果:
修改后的测试数据:
张三
测试结果:
原因:
无顾客购买记录,所以显示不出来。
6、保存信息至文件
测试结果:
正确结果:
原因:
无销售记录,故显示顾客记录为空。
顾客购买信息.txt的文件内容如下:
********顾客购买记录**********
顾客姓名顾客代码
张三24497
*****************************
五、实训总结
五、课程实训总结
1、对系统开发的总结(设计亮点,存在的不足,需要改进的地方):
该系统为作者本人自行精心开发,限于个人水平,系统不太完整,功能不太完善,且人性化较为不足,本人将在后续阶段进行优化改正,功能将进一步拓展。
有一些地方还是存在较小的麻烦,如在相同顾客的编号在两次购买过程中不相同,造成了系统的不便,本人将会想办法克服这一缺点。
但是此系统在已开发的功能上精心布置,完美的界面和人性化的提示与功能还是值得称赞的,并且经过长时间的测试,功能完全正确。
2、实训感想
有位学长曾经说过,“编程的魅力就在最后那一刻完美运行的快感。
”其实这也是我心里最真实感受,经过大半个月二十来天的攻克,终于完成了第一份自己编译的程序,我觉得我很欣慰,因为二十来天的编程是对我身体与心理的挑战,由于自己C语言功底不太强,曾经为了这份程序,我也饱受了心理的折磨,每次为了一个需要实现的功能而自己毫无头绪的时候,我都大量收集资料,晚上弄到凌晨都不得不继续编下去,但是有时候一下午过去还是没有进展,很多时候都想放弃,然后去找答案抄上,但是我最终还是克服了这些,因为我知道这是一个很好的机会去锻炼自己,以前一直想编一份自己的程序,我知道这次会实现这个目标的。
通过这次课程设计,我学会了很多,在C语言方面,我已经很熟练地掌握了很多知识,已经可以较为独立的进行C语言的学习;在素质方面,我也进一步学会了吃苦耐劳的精神。
这次成功的经历,给我一个很好的激励,这将使我更加有兴趣的学习以后的课程。
六、致谢
这次编程的成功,大部分的功劳还是在于给了我很多帮助的胡宁亚老师、导生何德建学长和热心的网友,没有你们不辞辛苦的帮助,我也不会有这样好的成绩。
谢谢!
作者:
余勇
撰文日期:
2011-07-04
参考文献
1)谭浩强。
《C程序设计(第三版)》北京:
清华大学,2005
2)何钦铭、颜晖。
《C语言程序设计》浙江:
浙江大学,2008
七、附录:
略
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商品销售管理 语言 课程设计 报告 商品 销售 管理