搜索
您的当前位置:首页正文

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

来源:知库网
 word格式 整理版

计算机技术基础课程设计

C语言 设计报告

题目:花店经营管理系统

一.选题背景

本例实现了一个花店经营的管理系统,在经营的过程中,

必需对花的库存量,销售量,剩余量以及花的种类,单价,颜色,名字等,有系统的管理。本程序定义了一个结构数组,并运用了一个主函数调用五个函数以实现整个花店的经营和管理。

二.设计思想:

编程思路:首先在程序开始处,引入了头文件,可以直

接调用函数,然后对花的种类和五项命令进行了宏定义,接着枚举类型定义了花的颜色,定义了结构体数组,并且编写了”enter_data()”,”put_data()”,“buy()”,”find()”,”changecmd()”五个子函数,最后在mian函数的内部对各个子函数进行调用,实现综合管理。

三.主要解决问题的方法及技术关键:

1.运用指针定义了五项命令,分别指向五个函数,便于

学习参考

word格式 整理版

调用。

2.运用了for, if---else---if, while, switch---case用来控制程序的流程。

主函数流程图

开 始

系统初始化 接受键盘命令 判断是否为 (quit)命令 否 是 退 出退 出 命令转换(把字符命令转换为数字命令) Buy() Put() enter() Find() 学习参考 word格式 整理版

Buy()流程图

学习参考

word格式 整理版

入 口 提 示 信 息 输入花名,价格 选择花的种类和数量 从i=0起,到第i个花开始比较 i++ 否 是否出现该种花 否 是 是否是最后一朵花 是 输出计算价格 返 回 出 口

Put()流程图

学习参考

word格式 整理版

入 口

输出花的各项值

判 断 i

输出花的各项 的值 进行switch,根据所需内 容,选择执行。

输出花的单价和 数量 出 口

Enter()流程图

学习参考

否 word格式 整理版

入 口 提示信息 判 断 i否 判断是否有所选择的颜色 是 没有所要选择的颜色 输入你选择的颜色 出 口 学习参考

word格式 整理版

入 口 提 示 信 息 Find()流程图 输入查找类型 是否按名字查询 从i=0,到第i个花开始比较 是否 是否有这种花 i++ 输出花名,颜色,单价数量 出 口 是否按价格查询 从i=0,到第i个花开始比较 是 i++ 否 是否有这种花 输出花名,颜色,单价出 口 从i=0,到第i个花开始比较 是否按颜色查询 是i++ 否 是否有这种花 输出花名,颜色,单出 口 学习参考

word格式 整理版

五.程序清单

#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\ /*定义了5项命令的指针类型*/

学习参考

word格式 整理版

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;imemset(flower[i].name,0,20); /*成员设置,各类型初始化*/

flower[i].rate=0; flower[i].amount=0; flower[i].color=white; }

printf(\"花店经营管理系统\\n\");

学习参考

word格式 整理版

printf(\"\\nYou can input

'buy','look','put','help','find':\\n\"); while(1) /*命令转换,把字符转换为数字*/ {

scanf(\"%s\ 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\ break; case 2:

学习参考

word格式 整理版

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;

学习参考

word格式 整理版

for(i=0;iif(strcmp(cmd,Dcmd[i])==0) return i+1; } return 0; }

/*库存输入函数*/

/*该函数接受键盘输入 把输入数据与库存对应*/ void enter_data(FLOWER flower[]) {

int i,flag; for(i=0;iprintf(\"Please enter the flowers:\\n\"); printf(\"Flower name is:\\n\"); scanf(\"%s\ printf(\"Flower rate is:\\n\"); scanf(\"%f\ printf(\"Flower amount is:\\n\"); scanf(\"%d\ flag=1;

学习参考

word格式 整理版

while(flag) /*接受用户选择的颜色*/ {

printf(\"0->red\1->white\2->yellow\3->purple\4->orante\\n\");

printf(\"Please choose a color:\\n\"); scanf(\"%d\

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学习参考

word格式 整理版

{

printf(\"%-12s\ switch(flower[i].color) { case red:

printf(\"%-8s\ break; case white:

printf(\"%-8s\ break; case yellow:

printf(\"%-8s\ break; case purple:

printf(\"%-8s\ break; case orange:

printf(\"%-8s\ break; }

printf(\"%-10.2f%-10d\\n\

学习参考

word格式 整理版

; } }

/*询问用户购买的鲜花的种类和株的数量,计算总的价格的函数定义*/

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\ flag=1;

while(flag) /*客户购买花的情况*/ {

printf(\"0->red\1->white\2->yellow\3->purple\4->orant

学习参考

word格式 整理版

e\\n\");

printf(\"Please choose a color:\\n\"); scanf(\"%d\ if(color>=0&&color<=4) flag=0; else

printf(\"Not have this color\\n\"); }

printf(\"Please amount you want to buy:\\n\"); /*输出需要的花的数量*/ scanf(\"%d\ for(i=0;iif(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\");

学习参考

word格式 整理版

/*没有要买的花*/

price=0; }

else if(flower[i].amountprintf(\"\\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;

学习参考

word格式 整理版

char name[20]; float rate; COLOR color;

printf(\"Please choose a number :\\n\");/*输出查询的方式*/ printf(\"0->find as name\ 1->find as rate \ 2->find as color\\n\");

scanf(\"%d\ switch(rcmd) {

case 0: /*按花名查询*/

printf(\"In put a flower name:\\n\"); scanf(\"%s\ for(i=0;iif(flower[i].name==name)

printf(\"%s\%d\%f\%d\\n\,flower[i].rate,flower[i].amount); } break;

case 1: /*按数量查询*/

printf(\"In put a flower rate:\\n\");

学习参考

word格式 整理版

scanf(\"%f\ for(i=0;iif(flower[i].rate==rate)

printf(\"%s\%d\%f\%d\\n\,flower[i].rate,flower[i].amount); } break;

case 2: /*按颜色查询*/

printf(\"In put a flower color:\\n\"); scanf(\"%d\ for(i=0;iif(flower[i].color==color)

printf(\"%s\%d\%f\%d\\n\,flower[i].rate,flower[i].amount); } break; } }

学习参考

word格式 整理版

六.总结、设计结果说明

一.通过本程序的练习,可以让读者了解结构体的定义和函数

的调用,对程序中各种语句的运用更加熟练把握。

二.本程序虽然简短,但可以简单地运用到花店的经营管理中,

通过这个操作,让花店经营得有条理,方便了顾客,也方便了自己。

学习参考

word格式 整理版

学习参考

因篇幅问题不能全部显示,请点此查看更多更全内容

Top