收藏 分销(赏)

计算机技术基础(c语言)课程设计花店经营管理系统.doc

上传人:天**** 文档编号:2382400 上传时间:2024-05-29 格式:DOC 页数:20 大小:80.55KB 下载积分:10 金币
下载 相关 举报
计算机技术基础(c语言)课程设计花店经营管理系统.doc_第1页
第1页 / 共20页
计算机技术基础(c语言)课程设计花店经营管理系统.doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
计算机技术基础课程设计 C语言 设计报告 题目:花店经营管理系统 一.选题背景 本例实现了一个花店经营的管理系统,在经营的过程中,必需对花的库存量,销售量,剩余量以及花的种类,单价,颜色,名字等,有系统的管理。本程序定义了一个结构数组,并运用了一个主函数调用五个函数以实现整个花店的经营和管理。 二.设计思想: 编程思路:首先在程序开始处,引入了头文件,可以直接调用函数,然后对花的种类和五项命令进行了宏定义,接着枚举类型定义了花的颜色,定义了结构体数组,并且编写了”enter_data()”,”put_data()”,“buy()”,”find()”,”changecmd()”五个子函数,最后在mian函数的内部对各个子函数进行调用,实现综合管理。 三.主要解决问题的方法及技术关键: 1.运用指针定义了五项命令,分别指向五个函数,便于调用。 2.运用了for, if---else---if, while, switch---case用来控制程序的流程。 主函数流程图 开 始 系统初始化 退 出 判断是否为 (quit)命令 接受键盘命令 退 出 Buy() enter() Find() 命令转换(把字符命令转换为数字命令) 是 Put() 否 Buy()流程图 否 是 是 入 口 提 示 信 息 输入花名,价格 选择花的种类和数量 从i=0起,到第i个花开始比较 是否出现该种花 输出计算价格 出 口 是否是最后一朵花 返 回 i++ 否 Put()流程图 入 口 输出花的各项值 否 判 断 i<size 是 输出花的各项的值 进行switch,根据所需内容,选择执行。 输出花的单价和数量 出 口 Enter()流程图 没有所要选择的颜色 输入你选择的颜色 判断是否有所选择的颜色 输入花的各项值 判 断 i<size 提示信息 入 口 出 口 否 是 是 否 i++ 是 否 i++ 是 否 i++ Find()流程图 入 口 提 示 信 息 输入查找类型 是否按名字查询 从i=0,到第i个花开始比较 是否有这种花 输出花名,颜色,单价数量 出 口 是否按价格查询 从i=0,到第i个花开始比较 是否有这种花 输出花名,颜色,单价数量 出 口 是否按颜色查询 从i=0,到第i个花开始比较 是否有这种花 输出花名,颜色,单价 出 口 , 五.程序清单 #include "stdio.h" #include "stdlib.h" #include "string.h" #include "dos.h" #define SIZE 8 #define CMDSIZE 5 typedef enum /*枚举类型定义*/ { red,white,yellow,purple,orange }COLOR; typedef struct /*结构体定义*/ { char name[20]; 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[]);/*定义查询函数*/ int changecmd(char cmd[]);/*定义命令解释函数*/ void main() { FLOWER flower[SIZE]; float price; char cmd[5]={'\0','\0','\0','\0','\0'}; char exits[5]="quit"; int recmd=0; int i; for(i=0;i<SIZE;i++) { memset(flower[i].name,0,20); /*成员设置,各类型初始化*/ flower[i].rate=0; flower[i].amount=0; flower[i].color=white; } printf("花店经营管理系统\n"); printf("\nYou can input 'buy','look','put','help','find':\n"); while(1) /*命令转换,把字符转换为数字*/ { scanf("%s",cmd); if(strcmp(cmd,exits)==0) exit(1); recmd=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"); else printf("\n OK,Please pay money %f \n",price); break; case 2: enter_data(flower); break; case 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;i<CMDSIZE;i++) { if(strcmp(cmd,Dcmd[i])==0) return i+1; } return 0; } /*库存输入函数*/ /*该函数接受键盘输入 把输入数据与库存对应*/ void enter_data(FLOWER flower[]) { int i,flag; for(i=0;i<SIZE;i++) { printf("Please enter the flowers:\n"); printf("Flower name is:\n"); scanf("%s",flower[i].name); printf("Flower rate is:\n"); scanf("%f",&flower[i].rate); printf("Flower amount is:\n"); scanf("%d",&flower[i].amount); flag=1; while(flag) /*接受用户选择的颜色*/ { printf("0->red\t1->white\t2->yellow\t3->purple\t4->orante\n"); printf("Please choose a color:\n"); scanf("%d",&flower[i].color); if(flower[i].color>=0&&flower[i].color<=4) flag=0; else printf("Not have this color\n"); } } } /*输出现有库存的鲜花数据的函数定义*/ void put_data(FLOWER flower[]) { int i; printf("\nName Color Rate Amount\n"); for(i=0;i<SIZE;i++) { printf("%-12s",flower[i].name); switch(flower[i].color) { case red: printf("%-8s","red"); break; case white: printf("%-8s","white"); break; case yellow: printf("%-8s","yellow"); break; case purple: printf("%-8s","purple"); break; case orange: printf("%-8s","orange"); break; } printf("%-10.2f%-10d\n",flower[i].rate,flower[i].amount); } } /*询问用户购买的鲜花的种类和株的数量,计算总的价格的函数定义*/ float buy(FLOWER flower[]) { int i; char name[20]; 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->red\t1->white\t2->yellow\t3->purple\t4->orante\n"); printf("Please choose a color:\n"); scanf("%d",&color); if(color>=0&&color<=4) flag=0; else printf("Not have this color\n"); } printf("Please amount you want to buy:\n"); /*输出需要的花的数量*/ scanf("%d",&amount); for(i=0;i<SIZE;i++) { if(flower[i].rate==rate&&strcmp(flower[i].name,name)==0&&flower[i].color==color) break; } if(i==SIZE) { printf("\nNot fount the flower you buy\n"); /*没有要买的花*/ price=0; } else if(flower[i].amount<amount)/*所购花数量不够*/ { printf("\nAmount not enought\n"); price=0; } else { flower[i].amount=flower[i].amount-amount; price=flower[i].rate*amount; /*找到,剩余数量够,可以买花,并计算总价格*/ } return price; } /*对于库存鲜花的的查询方式的定义*/ void findflower(FLOWER flower[]) { int i,rcmd; char name[20]; float rate; COLOR color; printf("Please choose a number :\n");/*输出查询的方式*/ printf("0->find as name\t 1->find as rate \t 2->find as color\n"); scanf("%d",&rcmd); switch(rcmd) { case 0: /*按花名查询*/ printf("In put a flower name:\n"); scanf("%s",name); for(i=0;i<SIZE;i++) { if(flower[i].name==name) printf("%s\t%d\t%f\t%d\n",flower[i].name,flower[i].color,flower[i].rate,flower[i].amount); } break; case 1: /*按数量查询*/ printf("In put a flower rate:\n"); scanf("%f",&rate); for(i=0;i<SIZE;i++) { if(flower[i].rate==rate) printf("%s\t%d\t%f\t%d\n",flower[i].name,flower[i].color,flower[i].rate,flower[i].amount); } break; case 2: /*按颜色查询*/ printf("In put a flower color:\n"); scanf("%d",&color); for(i=0;i<SIZE;i++) { if(flower[i].color==color) printf("%s\t%d\t%f\t%d\n",flower[i].name,flower[i].color,flower[i].rate,flower[i].amount); } break; } } 六.总结、设计结果说明 一.通过本程序的练习,可以让读者了解结构体的定义和函数的调用,对程序中各种语句的运用更加熟练把握。 二.本程序虽然简短,但可以简单地运用到花店的经营管理中,通过这个操作,让花店经营得有条理,方便了顾客,也方便了自己。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服