c语言程序设计20032_第1页
c语言程序设计20032_第2页
c语言程序设计20032_第3页
c语言程序设计20032_第4页
c语言程序设计20032_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳航空航天大学北方科技学院课程设计任务书课程设计题目某医药公司售货系统教研室专业电子信息班级B241201学号B24120113姓名高聪课程设计时间:2013年6月17日至2013年6月21日课程设计的内容及要求:一、课程设计内容用C语言编写软件完成以下任务:1.录入药品信息;2.顾客买药处理模块;3.查询某日某种药品的销售情况。二、课程设计要求:1.程序质量:贯彻结构化程序设计思想。用户界面友好,功能明确,操作方便;可以加其它功能或修饰。用户界面中的菜单至少应包括“药品信息录入”、“顾客买药处理”、“查询某种药品销售信息”、“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。指导教师年月日目录TOC\o"1-3"\h\z一、需求分析 1二、设计分析 2三、主要界面截图 6四、技术要点 9五、个人总结 14六、参考文献 15七、源程序 15一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。使用c++编程可以使某医药公司的销售系统清晰明朗化,使我们能清楚的知道销售的情况,符合现代科技的需要。整个程序的设计实现大致分为四个模块,其中每一个模块对应一个函数,他们的功能分别是:录入药品信息,购进药品,出售药品,库存显示。1、录入药品信息在D盘中创建Medicine.txt文件,并对药品进行录入。2、购进药品模拟药品进购,并且按照题目要求,随时购进药品,并对其进行储存。3、出售药品按照题目的具体要求能够随时出售药品,并对其进行储存;4、药库现状查看可以随时对药库的现存状况进行查看,包括药品编号,药品名字,购进数量,购进价格,出售药品数,出售价格这六项;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。原文件存在D盘的Medicine.txt文件中,包括药品编号,药品名字,购进数量,购进价格,出售药品数,出售价格这六项信息,通过fopen函数读取,然后通过调用各个函数,运行其各项功能。二、设计分析1、程序总体结构图2、具体功能框图(1)录入药品信息函数图2录入药品信息函数(2)购进药品信息函数图3购进药品信息函数(3)出售药品信息函数图4出售药品信息函数(4)药库现状查看函数三、主要界面截图四、技术要点本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,录入药品信息,购进药品,出售药品和药库现状是程序中较为核心的部分,下面分别进行说明。1、录入药品信息首先在D盘中创建一个Medicine.txt文件,文件储存药店里药品的信息,信息显示依次为药品编号,药品名字,购进数量,购进价格,出售药品数,出售价格。在编写一个fopen函数,打开D盘中的Medicine.txt文件,并且按照药品编号,药品名字,购进数量,购进价格,出售药品数,出售价格的顺序依次输出。具体的程序段如下:voidsave(){inti,j,z;FILE*fp;if((fp=fopen("d:\\Medicine.txt","a"))==NULL) { if((fp=fopen("d:\\Medicine.txt","w"))==NULL) { printf("文件打开失败!\n");return; }}printf("@@@@@@@@@@@录入药品信息@@@@@@@@@@@@\n");printf("请输入您要输入的药品信息:\n");printf("您要输入几种药品信息:\n");scanf("%d",&i);for(j=0;j<i;j++){printf("请输入药品的编号:\n");scanf("%d",&med[j].num1);printf("输入要添加的药品名称,库存数量,购进价格,出售药品数,出售价格\n");scanf("%s%d%f%d%f",med[j].name,&med[j].num2,&med[j].price1,&med[j].num3,&med[j].price2);fprintf(fp,"%d%s%d%f%d%f\n",med[j].num1,med[j].name,med[j].num2,med[j].price1,med[j].num3,med[j].price2);}printf("药品编号药品名称库存数量 购进价格 出售药品数出售价格\n");for(z=0;z<SIZE;z++)printf("%d%s%d%6.2f%d%6.2f\n",med[z].num1,med[z].name,med[z].num2,med[z].price1,med[z].num3,med[z].price2);fclose(fp);zicaidan();}2:购进药品:类似出售药品,运用scanf函数先输入购进的药品编号,再输入药品的数量,在对药品的数量进行num2+=t的操作。具体程序如下:voidgoujin(){inti,j,z;intnum;FILE*fp;fp=fopen("d:\\Medicine.txt","w");if((fp=fopen("d:\\Medicine.txt","w"))==NULL) { printf("文件打开失败!\n");return; }printf("@@@@@@@@@@@购进药品@@@@@@@@@@\n");printf("输入编号:");scanf("%d",&num);printf("输入数量:");scanf("%d",&j);for(i=0;i<10;i++)if(num==med[i].num1){med[i].num2+=j;printf("这种药品数是:%d\n",med[i].num2);for(z=0;z<SIZE;z++){fprintf(fp,"%d%s%d%f%d%f\n",med[z].num1,med[z].name,med[z].num2,med[z].price1,med[z].num3,med[z].price2);}zicaidan();}}3:出售药品该函数执行时,首先出来提示信息,然后运用scanf函数输入药品编号,通过函数的调用读取D盘中的数据,并按照药品编号,药品名字,购进数量,购进价格,出售药品数,出售价格这样的顺序进行输出,由于药品已售出,故要对该药品的数量进行num2-=t的操作,对该药品售出的数量进行num3+=t操作。具体程序如下:voidchushou(){inti,t,j;intnum;FILE*fp;fp=fopen("d:\\Medicine.txt","w");if((fp=fopen("d:\\Medicine.txt","w"))==NULL) { printf("文件打开失败!\n");return; }printf("@@@@@@@@@@@@@@出售药品@@@@@@@@@@@@\n");printf("你想买哪种药:");scanf("%d",&num);printf("%%%%%%%%%%%以下是此药信息%%%%%%%%%%\n");for(i=0;i<10;i++)if(num==med[i].num1){printf("编号 名称 售价\n");printf("%d%s%6.2f\n",med[i].num1,med[i].name,med[i].price2); printf("请输入要买的数量:\n");scanf("%d",&t);if(t>med[i].num2){ printf("库存不足!!!\n");}else{ med[i].num2-=t;med[i].num3+=t;for(j=0;j<SIZE;j++){fprintf(fp,"%d%s%d%f%d%f\n",med[j].num1,med[j].name,med[j].num2,med[j].price1,med[j].num3,med[j].price2);}}zicaidan();}}4:药库现状:通过函数的调用显示出现存的药品状况几及出售的药品状况。具体程序如下:voidmednow(){inti,j;FILE*fp;fp=fopen("d:\\Medicine.txt","r+");if((fp=fopen("d:\\Medicine.txt","r+"))==NULL) { printf("文件打开失败!\n");return; }for(j=0;j<SIZE;j++){fscanf(fp,"%d%s%d%f%d%f\n",&med[j].num1,&med[j].name,&med[j].num2,&med[j].price1,&med[j].num3,&med[j].price2);}printf("@@@@@@@@@@@@库存显示@@@@@@@@@@\n");printf("药品编号药品名称 库存数量 购进价格 出售药品数出售价格\n");for(i=0;i<SIZE;i++){printf("%d %s%d%6.2f%d%6.2f\n",med[i].num1,med[i].name,med[i].num2,med[i].price1,med[i].num3,med[i].price2);}fclose(fp);zicaidan();}五、个人总结课程设计顺利完成,课设要求也都全部实现,可以对医药公司的销售系统进行修改。总体来讲C++的课设无论从性质上还是实质上都超出了一般意义的“课程”的概念。它锻炼了我的动手和动脑能力,是最有意义的一门课程,它的运用使好多复杂的东西简单化,我现在运用的还不够好,有时候还会出现小的毛病,我会继续学习使它更加的完善。事实上,我在接到这道题的时候心里真的没有底。虽然对书本上的知识掌握的还算可以,但是在题目中明显要用到许多书中不常出现的函数,结构。并且,平时学习时练习的大多是分解的单功能程序。在这次的课设中是要把多个具有不同功能的程序体有机的联系在一起,使其能够达到题目的要求。对于我来说难度着实是不小的。经过计划,首先思考系统的结构,分解其各个功能。然后针对每个功能去编辑程序,并且借鉴了一定量的已有程序。设计这个程序真的很辛苦,无数次的尝试被无情的证明是错误的。但是当自己的程序能运行时心中的快乐绝对可以胜过之前的磨砺。所有付出都值得,并且有很大的收获。是我对这次课设的最简洁的个人总结。六、参考文献1c语言程序设计,王晓斌等编著,--北京:清华大学出版社,2012.12221世纪普通高校计算机公共课程规划教材七、源程序#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineSIZE10structmedicine{intnum1;intnum2;intnum3;charname[20];floatprice1;floatprice2;}med[SIZE];voidcaidan(){printf("@@@@@@@@@@欢迎光临@@@@@@@@@@@\n");printf("#!#!#!#!#!#!#!某医药公司售货系统#!#!#!#!#!!#!\n");printf("#!#!#!!#!#!#!按1:录入药品信息#!#!#!#!#!#!#!\n");printf("#!#!#!#!#!#!按2:购进药品处理#!#!#!#!#!!#!\n");printf("#!#!#!#!#!#!#!按3:顾客买药处理#!#!#!##!#!\n");printf("#!#!#!#!#!#!按4:某日某种药品销售情况#!#!##!#!#!\n");printf("#!#!##!#!#!按5:退出!!#!#!#!#!##!\n");printf("#!##!#!#!#!#!请选择序号按回车确认#!#!##!#!#!\n");printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");}voidzicaidan(){printf("@@@@@@@@@@@@欢迎光临@@@@@@@@@@@@@@@\n");printf("#!#!#!#!#!#!某医药公司售货系统#!#!#!#!#!#\n");printf("#!#!#!#!!#!按1:录入药品信息#!#!#!#!#!##\n");printf("#!#!#!#!#!#!按2:购进药品处理#!#!#!!#!#\n");printf("!#!#!#!#!#!按3:顾客买药处理#!#!#!#!#!#!#\n");printf("##!#!#!#!#!按4:某日某种药品销售情况#!#!#!!#!#\n");printf("#!##!#!#!#!按5:退出!!#!#!#!#!#!#\n");printf("#!#!#!#!请选择序号按回车确认#!#!#!#!##\n");printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");}voidsave(){inti,j,z;FILE*fp;if((fp=fopen("d:\\Medicine.txt","a"))==NULL) { if((fp=fopen("d:\\Medicine.txt","w"))==NULL) { printf("文件打开失败!\n");return; } }printf("@@@@@@@@@@@@录入药品信息@@@@@@@@@@@@\n");printf("请输入您要输入的药品信息:\n");printf("您要输入几种药品信息:\n");scanf("%d",&i);for(j=0;j<i;j++){printf("请输入药品的编号:\n");scanf("%d",&med[j].num1);printf("输入要添加的药品名称,库存数量,购进价格,出售药品数,出售价格\n");scanf("%s%d%f%d%f",med[j].name,&med[j].num2,&med[j].price1,&med[j].num3,&med[j].price2);fprintf(fp,"%d%s%d%f%d%f\n",med[j].num1,med[j].name,med[j].num2,med[j].price1,med[j].num3,med[j].price2);}printf("药品编号药品名称 库存数量 购进价格 出售药品数出售价格\n");for(z=0;z<SIZE;z++)printf("%d%s%d%6.2f%d%6.2f\n",med[z].num1,med[z].name,med[z].num2,med[z].price1,med[z].num3,med[z].price2);fclose(fp);zicaidan();}voidgoujin(){inti,j,z;intnum;FILE*fp;fp=fopen("d:\\Medicine.txt","w");if((fp=fopen("d:\\Medicine.txt","w"))==NULL) { printf("文件打开失败!\n");return; }printf("@@@@@@@@@@@@@购进药品@@@@@@@@@@@\n");printf("输入编号:");scanf("%d",&num);printf("输入数量:");scanf("%d",&j);for(i=0;i<10;i++)if(num==med[i].num1){med[i].num2+=j;printf("这种药品数是:%d\n",med[i].num2);for(z=0;z<SIZE;z++){fprintf(fp,"%d%s%d%f%d%f\n",med[z].num1,med[z].name,med[z].num2,med[z].price1,med[z].num3,med[z].price2);}zicaidan();}}voidchushou(){inti,t,j;intnum;FILE*fp;fp=fopen("d:\\Medicine.txt","w");if((fp=fopen("d:\\Medicine.txt","w"))==NULL) { printf("文件打开失败!\n");return; }printf("@@@@@@@@@@@@@@出售药品@@@@@@@@@@@@\n");printf("你想买哪种药:");scanf("%d",&num);printf("%%%%%%%%%%%%%以下是此药信息%%%%%%%%%%\n");for(i=0;i<10;i++)if(num==med[i].num1){printf("编号 名称 售价\n");printf("%d%s%6.2f\n",med[i].num1,med[i].name,med[i].price2); printf("请输入要买的数量:\n");scanf("%d",&t);if(t>med[i].num2){ printf("库存不足!!!\n");}else{ med[i]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论