《花店管理系统模板.doc》由会员分享,可在线阅读,更多相关《花店管理系统模板.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、延边大学 工学院计算机科学与技术学科C程序设计项目实践报告2013-2014学年度第2学期课程名称 C程序设计项目实践 设计题目 花店管理系统 学 号 学生姓名 邵小锐 同组学生 王志宏 辛东杰 何淑敏 专业年级 2013级数字媒体技术 指导教师 赵亚慧 副教授 2014 年 4 月 8 日目 录1. 设计任务书21.1 题目与要求31.2 本程序涉及的知识点32.系统功能总体设计22.1功能需求分析22.2系统功能模块划分 23. 详细设计43.1重要数据的数据结构设计 43.2子模块函数的设计 53.3主要功能模块的流程分析与设计54. C程序设计项目实践总结64.1设计中的难点及其解决方
2、法64.2本设计存在的不足64.3小组人员分工说明65.致谢66.参考文献6说 明1、设计的目的1)复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握;2)利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;3)培养学生在项目开发中团队合作精神、创新意识及实战能力。2、设计的任务根据学生的实际情况,进行分组选题。第一阶段主要的课程设计题目如下(学生也可自主选题):1)、图书管理系统 2)、工资管理系统3)、学生成绩管理系统 4)、通讯录管理系统5)、职工档案管理系统 6)、花店管理系统7)、选修课程管理系
3、统 8)、校级运动会管理系统9)、超市仓库管理系统 10)、毕业设计题目管理系统第二阶段主要的课程设计题目如下(学生也可自主选题):1)、迷宫游戏 2)、俄罗斯方块游戏3)、五子棋游戏 4)、贪吃蛇游戏5)、扫雷游戏 6)、潜艇大战游戏7)、简单计算器 8)、文本编辑器9)、画图板 10)、万年历11)、电子时钟 12)、推箱子游戏13)、弹力球游戏 14)、快快吃豆游戏15)、弹力球游戏 16)、24点游戏17)、猜数字游戏课程设计采用学生自主设计和指导老师辅导相结合的方式。3、设计要求与设计报告(一) 设计要求:1)、任选上述题目之一,或自选题目。2)、模块化的程序设计3)、锯齿形的程序书
4、写格式。 4)、必须通过编译连接运行(二)设计报告:1)、设计目的和任务2、总体设计:包括程序设计组成框图、流程图。3)、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。4)、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。5)、源程序清单和执行结果:清单中应有足够的注释。1.题目与要求: 花店管理系统 具体功能:(1) 鲜花信息管理 鲜花的库存量 入口提示输入鲜花信息,以是否超出现有鲜花种类进行循环,若是,则退出。用enter函数来输入鲜花的各项值(名称、颜色、数量、单价),并判断是否有所选的颜色若没有,则重新输入。该函数
5、接收来自键盘输入,把输入数据与库存量对应。入口提示输入鲜花信息, 用put函数输入现有库存的鲜花数据(2) 顾客对鲜花的需求 顾客查询。(用put函数) 按照花名查询。判断是否以花名查询,若是,从第一个和库存量比较是否有该种花,若有,输出该种花的信息。 按照价格查询。若不是以花名查询,则判断是否以价格查询,逐个与库存量比较,看是否有该种价位的花,若有,输出该花的信息。 按照颜色查询。若都不是按前两种,则是按颜色查询。 顾客买花。(用buy函数) 入口提示信息,输入花名、价格,选择种类和数量。 与库存中有的花进行逐个查询到结束为止,判断是否是最后一朵花,若不是,则输出所要支付的钱,若是,则没查到
6、相应的花。编程思路:首先在程序开始处,引入了头文件,可以直接调用函数,然后对花的种类和五项命令进行了宏定义,接着枚举类型定义了花的颜色,定义了结构体数组,并且编写了”enter_data()”,”put_data()”,“buy()”,”find()”,”changecmd()”五个子函数,最后在mian函数的内部对各个子函数进行调用,实现综合管理。 客户所需鲜花客 户花 店 管 理 系 统供 应 商客户所需付款查询鲜花信息客户资料发票采购退货信息付款信息供应商信息发货单发票2 主函数流程图 开 始 系统初始化 退 出判断是否为(quit)命令 接受键盘命令退 出Buy() enter()Fi
7、nd()命令转换(把字符命令转换为数字命令)是Put()否void enter_data(FLOWER flower); /*定义库存输入函数*/float buy(FLOWER flower); /*定义销售函数*/void put_data(FLOWER flower); /*定义库存输出函数*/void findflower(FLOWER flower);/*定义查询函数*/int changecmd(char cmd);/*定义命令解释函数*/3详细设计Buy()流程图()否是是入 口提 示 信 息输入花名,价格选择花的种类和数量从i=0起,到第i个花开始比较是否出现该种花输出计算价格
8、出 口是否是最后一朵花返 回 i+否/*询问用户购买的鲜花的种类和株的数量,计算总的价格的函数定义*/float buy(FLOWER flower)int i;char name20;COLOR color;float rate,price;int amount,flag;printf(nPlease enter name and rate you want to buy:n);/*输出需要的鲜花的名字和价格*/scanf(%s%f,name,&rate);flag=1;while(flag) /*客户购买花的情况*/printf(0-redt1-whitet2-yellowt3-purpl
9、et4-oranten);printf(Please choose a color:n);scanf(%d,&color);if(color=0&color=4)flag=0;elseprintf(Not have this colorn);printf(Please amount you want to buy:n);/*输出需要的花的数量*/scanf(%d,&amount);for(i=0;iSIZE;i+)if(floweri.rate=rate&strcmp(floweri.name,name)=0&floweri.color=color)/*顾客所需要的花现有库存量都符合*/bre
10、ak;if(i=SIZE)printf(nNot fount the flower you buyn);/*没有要买的花*/price=0;else if(floweri.amountamount)/*所购花数量不够*/printf(nAmount not enoughtn);price=0;elsefloweri.amount=floweri.amount-amount;price=floweri.rate*amount; /*找到,剩余数量够,可以买花,并计算总价格*/return price;Put()流程图 入 口 输出花的各项值 否判 断 isize 是输出花的各项的值进行switc
11、h,根据所需内容,选择执行。输出花的单价和数量出 口/*输出现有库存的鲜花数据的函数定义*/void put_data(FLOWER flower)int i;printf(nName Color Rate Amountn);for(i=0;iSIZE;i+)printf(%-12s,floweri.name);switch(floweri.color)case red:printf(%-8s,red);break;case white:printf(%-8s,white);break;case yellow:printf(%-8s,yellow);break;case purple:prin
12、tf(%-8s,purple);break;case orange:printf(%-8s,orange);break;printf(%-10.2f%-10dn,floweri.rate,floweri.amount); Enter()流程图没有所要选择的颜色输入你选择的颜色判断是否有所选择的颜色输入花的各项值判 断isize提示信息入 口出 口否是是否i+是否i+是否i+Find()流程图 入 口提 示 信 息输入查找类型是否按名字查询从i=0,到第i个花开始比较是否有这种花输出花名,颜色,单价数量出 口是否按价格查询从i=0,到第i个花开始比较是否有这种花输出花名,颜色,单价数量出 口是否
13、按颜色查询从i=0,到第i个花开始比较是否有这种花输出花名,颜色,单价出 口/*库存输入函数*/*该函数接受键盘输入 把输入数据与库存对应*/void enter_data(FLOWER flower)int i,flag;for(i=0;iredt1-whitet2-yellowt3-purplet4-oranten);/*横向制表符*/printf(Please choose a color:n);scanf(%d,&floweri.color);if(floweri.color=0&floweri.colorfind as namet 1-find as rate t 2-find as
14、 colorn);scanf(%d,&rcmd);switch(rcmd)case 0: /*按花名查询*/printf(In put a flower name:n);scanf(%s,name);for(i=0;iSIZE;i+)if(floweri.name=name)printf(%st%dt%ft%dn,floweri.name,floweri.color,floweri.rate,floweri.amount);break;case 1: /*按数量查询*/printf(In put a flower rate:n);scanf(%f,&rate);for(i=0;iSIZE;i+
15、)if(floweri.rate=rate)printf(%st%dt%ft%dn,floweri.name,floweri.color,floweri.rate,floweri.amount);break;case 2: /*按颜色查询*/printf(In put a flower color:n);scanf(%d,&color);for(i=0;iSIZE;i+)if(floweri.color=color)printf(%st%dt%ft%dn,floweri.name,floweri.color,floweri.rate,floweri.amount);break;主函数程序#in
16、clude stdio.h#include stdlib.h/*c语言标准库函数*/#include string.h/*包含处理函数的头文件,主要这里是处理字符串*/#include dos.h/*文件包含命令 ,用来包含这些头文件*/#define SIZE 8/*对花的种类进行宏定义*/#define CMDSIZE 5/*对五种命令函数进行了宏定义*/typedef enum /*枚举类型定义*/red,white,yellow,purple,orangeCOLOR;/*花的颜色进行了枚举,从而进行把字符命令转换成数字命令*/typedef struct /*结构体定义*/char n
17、ame20; /*花的名字*/COLOR color;/*枚举类型*/float rate;/*单价*/int amount;/*花的数量*/FLOWER;/*名叫的结构体*/char *Dcmd=buy,put,look,find,help; /*定义了5项命令的指针类型*/void enter_data(FLOWER flower); /*定义库存输入函数*/float buy(FLOWER flower); /*定义销售函数*/void put_data(FLOWER flower); /*定义库存输出函数*/void findflower(FLOWER flower);/*定义查询函数
18、*/int changecmd(char cmd);/*定义命令解释函数*/void main()FLOWER flowerSIZE;/*含8个元素的结构体数组*/float price;/*花的价格*/char cmd5=0,0,0,0,0;/*字符串数组cmd,用于存放五种函数指针*/char exits5=quit;/*字符数组用于存放字符串quit*/int recmd=0;/*再次访问命令,初始化为0*/int i;for(i=0;iSIZE;i+)memset(floweri.name,0,20); /*成员设置,各类型初始化,对结构体花名做清零操作*/floweri.rate=0
19、;floweri.amount=0;floweri.color=white;printf(花店经营管理系统n);printf(nYou can input buy,look,put,help,find:n);/*输入你所要查找鲜花信息的哪部分*/while(1) /*命令转换,把字符转换为数字,没有限制的循环*/scanf(%s,cmd);/*输入你所需要系统执行的命令*/if(strcmp(cmd,exits)=0)/*当命令为放弃的时候即为0,结束操作,类似与你进去以后又不想继续访问后的操作,通过比较五项操作命令与quit字符穿的大小比较*/exit(1);/*控制程序流程*/recmd=
20、changecmd(cmd);/*把解释处理函数的返回值赋值给再次操作处理命令*/switch(recmd)/*利用开关语句循环来实现命令*/case 0:printf(a bad command please input a corrcet cmd n); /*输入了错误命令信息的提示*/break;case 1:price=buy(flower);if(price=0)printf(nSorry,buy error);elseprintf(n OK,Please pay money %f n,price);break;case 2:enter_data(flower);break;case
21、 3:put_data(flower);break;case 4:findflower(flower);break;case 5:printf(nYoucaninput buy,look,put,help,find:n);break;/*命令解释函数*/*该函数处理接收到的命令 通过与命令数组里的预定义命令比较 返回命令在数组中的位置*/int changecmd(char cmd)int i=0;for(i=0;iCMDSIZE;i+)if(strcmp(cmd,Dcmdi)=0)return i+1;return 0;/*输入命令错误时返回0,并在主函数中提示*/ 运行过程: 主菜单4. C程序设计项目实践总结4.1设计中的难点及其解决方法 运用指针定义了五项命令,分别指向五个函数,便于调用。 对花的信息的处理,定义结构体 2花的信息地处理,运用了for, if-else-if, while, switch-case用来控制程序的流程。 4.2本设计存在的不足本设计实现的功能较为简单,没能达到预期的效果。用到的C语言知识较为简单,没能尽可能的用完已学的知识。4.3小组人员分工说明5.致谢6.参考文献1 C语言程序设计 高等教育出版社2
限制150内