某医药公司售货系统(共15页).doc
精选优质文档-倾情为你奉上 题目:某医药公司售货系统(1)一、课程设计时间201011第2学期第15周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:1录入药品信息;2顾客买药处理模块;3查询某日某种药品的销售情况。三、课程设计要求1. 程序质量:l 贯彻结构化程序设计思想。l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l 用户界面中的菜单至少应包括“药品信息录入”、“顾客买药处理”、“查询某种药品销售信息”、“退出”4项。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、说明书成绩六、教师评语 专心-专注-专业目录一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。 该系统是一个较典型的物品销售系统,其使用者被假定为某药品公司的销售管理人员,系统应该具有页面简洁、操作稳定、功能齐全的特点。1. 简洁性分析药品销售页面条理清晰,功能明了,在小巧的页面中包含了各种操作提示,能够便于操作者进行页面分析和处理。2. 稳定性分析指系统比较稳定,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3. 主要功能分析(1)药品录入:允许用户输入药品名称、库存数量、已销售数量、进价、售价。对用户由于疏忽录入的非法数据,能够及时提示并更正。(2)药品销售:允许顾客对已录入药品进行购买操作,当库存不足是,对顾客进行友好的库存不足提示。(3)药品查询:用户输入药品,系统规则地在界面显示查询结果,包括药品库存数量、销售数量以及已获利润。二、设计分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:录入药品信息函数(input),顾客买药处理(buy),查询药品信息(find)。1、录入药品信息函数 主要实现程序最初运行时药品信息的录入;2、顾客买药处理函数 主要实现程序运行中按照药品号码对药品的数据记录进行处理;3、查询药品信息函数 允许按照药品名对各种药品信息信息进行查询,可以随时对药库的现存状况进行查看,包括药品名字、已售出量、库存量以及该药品已获利润。4、程序结构图主函数main: 图1药品信息录入函数input: 图2药品购买函数buy: 药品查询函数find:图3 图4三、主要界面截图 图5 药品信息录入 图6 药品销售模块 图7 药品信息查询 图8 退出界面 四、技术要点 1、结构体的应用定义了结构体用来描述药品的名称、生产厂家、库存数量、销售数量、进价和售价。具体的定义如下: char name10- 药品的名称,char productor20-厂家,float jinjia-进价,float shoujia-售价,int num1-库存数量,int num2-销售数量。2、程序详细说明本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,药品信息录入函数,顾客买药处理,查询药品信息函数是程序中较为核心的部分,下面分别进行说明。(1)、药品信息录入 药品信息被存在结构体里,需要把药品的名称、生产商、进价、售价、库存量和售出量分别输入到结构体里。用于统计药品数量的n+,可以实现多种药品信息的输入。当在输入药品名为0时,跳出药品信息的录入。(2)、顾客买药处理函数该函数的核心内容是先查找到所要购买的药品。用gets函数获得要查找药品名,如果查找药品名和结构体里面事先存储好的药品名称不符合,那么便出现找不到该药品信息。如果和已有名称匹配,那么便出现购买对话你要买多少,如果购买数量大于库存,系统会以库存不足而无法交易,反之顺利进行交易,同时库存量减少,销售量增加。(3)、查询药品信息函数该函数的核心内容是通过输入要查找的药品名称,在结构体中逐一对照已有药品和要查找的药品。如果和已有药品名称符合,则显示该药品的售出量、库存量和利润的情况,如果没有符合名称,则出现找不到该药品信息!对话框。五、个人总结为期一周的C语言课程设计结束了,通过这一个星期的课设,使我对C语言有了更深入、更全面的了解,同时也发现自己的英文和函数基础以及C语言知识的实际运用都不是很好,对很多地方不是特别懂,甚至对有些概念都还是很模糊。另外我发现C语言与我们日常生活中许多应用息息相关,所以把C语言学好时非常重要的。在此次课程设计当中遇到了许多问题和编译上的错误都是平时上课不注意听讲所造成的,所以今后一定要认真,努力学习所学专业和课程。对于该药品销售程序,系统具有页面简洁、操作稳定、方便快捷的特点,大体上完成了题目上的要求。但是总体上也觉得不够完善,比如还缺少了文件信息录入和对不同销售日期的记录。如果用string函数把药品信息串联成表格,那么外观就更美观,功能更强大了。六、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006。七、源程序#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>typedef structchar name10;/编号char productor20;/厂家float jinjia;float shoujia;int num1;/num1指库存数量int num2;/num2指销售数量medicine;int n;void input(medicine med);void buy(medicine med);void find(medicine med);void main()medicine med100;char flag;n=0;while(1)printf("*n");printf("* 小型药品管理程序 *n");printf("* 1.药品信息录入 2.顾客买药处理 *n");printf("* 3.查询药品信息 4.退出 *n"); printf("* 请选择1-4: *n");printf("*48*张文龙*n");printf("*n");fflush(stdin);scanf("%d",&flag);switch(flag)case 1:input(med);break;case 2:buy(med);break;case 3:find(med);break;case 4:exit(0);default:printf("错误n");void input(medicine med)printf("请输入药品信息(编号输入0表示结束):n");while(1)printf("药品 %d 的名称:",n+1);fflush(stdin);gets(medn.name);if(strcmp(medn.name,"0")=0)break;printf("药品 %d 的生产商:",n+1);scanf("%s",&medn.productor );printf("药品 %d 的进价:",n+1);scanf("%f",&medn.jinjia );printf("药品 %d 的售价:",n+1);scanf("%f",&medn.shoujia );printf("药品 %d 的库存量:",n+1);scanf("%d",&medn.num1);printf("药品 %d 的售出量:",n+1);scanf("%d",&medn.num2);n+;void buy(medicine med)int i,number;char a10;char flag2=0; printf("请输入你要买药品的名称:n");fflush(stdin);gets(a);for(i=0;i<n;i+)if(strcmp(a,medi.name)=0)flag2=1;printf("你要买多少:n");scanf("%d",&number);if(number>medi.num1)printf("库存量不足!n");elseprintf("售价为%.2fn",medi.shoujia );medi.num2+=number;medi.num1-=number;printf("完成!n");break;if(flag2=0)printf("找不到该药品信息!n");void find(medicine med)int i;char a10;char flag2=0;printf("你所要找药品的名称n");fflush(stdin);gets(a);for(i=0;i<n;i+)if(strcmp(a,medi.name)=0)flag2=1;printf("%s 药品已经售出 %d,还剩 %dn",medi.name,medi.num2,medi.num1);printf("该药品获利%.2fn:",medi.num2 *(medi.shoujia -medi.jinjia );break;if(flag2=0)printf("找不到该药品信息!n");