《c课程设计-药品信息管理系统大学论文.doc》由会员分享,可在线阅读,更多相关《c课程设计-药品信息管理系统大学论文.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、辽 宁 工 业 大 学C+语言程序设计课程设计(论文)题目: 药品信息管理系统 院(系): 软 件 学 院 专业班级: 学 号: 学生姓名: 指导教师: 翟宝峰 教师职称: 副教授 起止时间:2014.12.22-2015.1.2 课程设计(论文)任务及评语院(系):软件学院 教研室:软件教研室学 号学生姓名专业班级课程设计(论文)题目药品信息管理系统课程设计(论文)任务程序设计的任务与要求:(1). 掌握面向对象程序设计语言C+的基本语法(2). 掌握C+面向对象设计的思想(3). 掌握VC+6.0与DEV C+ 开发工具的使用 (4). 运用标准C+规范设计应用程序设计过程中,要严格遵守设
2、计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩 成绩: 指导教师签字: 2015年 1 月 4日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计目的与要求11.1设计目的11.2实验环境11.3预备知识11.4设计要求1第2章 课程设计内容22.1 课题描述22.2 系统设计22.2.1功能分析22.2.2面向对象设计22.2.2类成员描述42.3程序实现52.3.1源码分析52.3.2运行结果13第3章 总结15参考文献16第1章 课程设计目的与要求1.1设计目的将理论教学中涉及到的知识点贯穿起来,对不同的
3、数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6
4、)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。1.2实验环境硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用:VC+ 系统,或其他C+语言应用程序开发软件。1.3预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。1.4设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2.积极上机调试源程序,增强编程技巧与调程能力。3.认真书写课程设计预习报告,课程设计说明书。4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章 课程设计内容2.1 课题
5、描述在我国,随着医药卫生体制改革的深入,医药连锁经营的推行以及日趋激烈的商业角逐,越来越多的医药经营企业意识到提高企业管理水平的重要性,也迫切要求加快管理信息化的进程。在医药行业中,医药经营企业的物流管理以及相应的财务处理、信息处理,长期以来一直采用手工操作,但随着产业结构调整、全新的市场竞争环境,药品企业管理和运营效率已经成为企业成败的关键所在,手工方式的弊端毕现无遗。这就要求医药管理摆脱过去人手操作的烦琐,充分满足了医药经营企业的各种需求,从医药经营企业的各个环节对人流、物流、资金流、信息流进行统一系统的管理。市场的需求和技术的支持,最终会导致越来越多的优秀医药管理软件的出现,并在竞争中得
6、到不断的完善和优化。 本系统以C+语言实现了药品信息管理的:库存管理、药品管理以及出库入库管理。2.2 系统设计2.2.1功能分析这是一个关于小刚药品信息管理系统,具有输入、显示、修改、查询、删除数据等功能,用户使用时,进入主菜单选择界面,选择想要进行的操作;1.输入信息,输入数字“1”,增加药品信息2.显示所有药品信息,输入数字“2”,将所有的药品信息以列表输出3.查找药品信息,输入“3”,回车确定操作,输入要修改的ID号4.修改药品信息,输入“4”回车确定操作,系统显示修改的页面,将需修改的药品息输入,输入完后回车确定5.删除药品信息,输入“5”,回车确定操作,系统显示“输入删除药品的ID
7、号,输入要删除的药品号,系统将保存的数据删除6.退出系统,输入“0”,回车确定操作,退出系统。2.2.2面向对象设计类设计:使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,仓库、药品。所以系统主要涉及两大类:药品仓库类、药品类。系统框架就是仓库类和药品类的定义;主函数中定义一个仓库对象,循环显示主菜单并根据用户选择调用仓库类的相应方法(成员函数)。考虑系统操作的药品信息具有不确定性,所以考虑使用链表保存、处理药品信息。仓库类包含:所有药品信息的一个不带头结点的链表及可以对药品信息进行增,改,删除,查询,数量设置,数据存盘等操作的相关模块为成员函数。所有药品都具有的公共信息及操作可以使
8、用仓库类进行描述。图2.1系统中uml类图之间的关系小刚药品信息管理系统增加药品信息查看药品信息退出系统药品信息药品分类信息按名称查询按类别查询增加药品库存信修改药品信息直接退出增加、删除药品信息图2.2总体流程图2.2.2类成员描述a.药品管理员类:class adminpublic:admin();private:string name;b.药品仓库货架类:class shelfpublic:shelf();private:admin men;/管理员string storeNo;/药品仓库编号string kinds;/药品大类string shelfNo;/药品货架号;函数成员描述以及
9、函数功能:1、voidinput()通过函数输入药品信息2、voidoutput()通过函数输出药品信息3、Node()通过函数使指针指向下个地址4、List()通过函数使指针指向首地址5、voidaddNode()通过函数添加药品信息6、voidXSNode()通过函数显示药品所有信息7、voidqueryNode1(char*TName)通过函数查询药品信息8、voidqueryNode2(char*TName)同上9、voiddelNode(char*TName)通过函数删除药品信息10、voidsaveList()通过函数储存药品信息11、ofs.open(data.txt);通过函数
10、输出文本文件12、ifs.open(data.txt);通过函数输入文本文件13、List()通数过定义析构函数,释放空间2.3程序实现2.3.1源码分析#include#include#includevoid input(); /*输入*/void display(); /*显示*/ void search(); /*查找*/ void amend(); /*修改*/void delete_slf(); /*删除*/void list(); /*菜单*/struct stud /*定义药品属性数组*/long num; /*药品编号*/char name20; /*药品名字*/float p
11、rice; /*药品的价格*/int godsnum; /*药品的数量*/infom;class SP/*定义个药品类*/ void input() /*输入信息函数*/FILE *fp; /*定义文件指针*/char numstr20,ch;if(fp=fopen(c:123.dat,wb)=NULL) exit(0);do getchar(); printf(nttenter num:);gets(numstr); /*接受字符并存入数组中*/infom.num=atol(numstr); /*把字符型转换成整型*/ printf(nttenter name:);gets(infom.na
12、me); printf(nttenter price:);gets(numstr);infom.price=atof(numstr);/*把字符型转换成float型*/ printf(nttenter godsnum:);gets(numstr);infom.godsnum=atoi(numstr);/*把字符型转换成整型*/ fwrite(&infom,sizeof(infom),1,fp); printf(nttinput continue(y/n)?); ch=getchar();getchar();while(ch=Y|ch=y);fclose(fp);void display() /
13、*显示信息函数*/FILE *fp;char ch;int x;float f;if(fp=fopen(c:123.dat,rb)=NULL) printf(nCannt open file!n); getch(); exit(1);while(fread(&infom,sizeof(struct stud),1,fp)=1) printf(ntnum:%ld,infom.num); printf(ntname:%s,infom.name); printf(ntprice:%.3f,infom.price); printf(ntgodsnum:%d,infom.godsnum); fclose
14、(fp);void search() /*查询信息函数*/FILE *fp;int x;long y;char ch;if(fp=fopen(c:123.dat,rb)=NULL) printf(nCannot open file!n); getch(); exit(1);do printf(nplease input recond num:); scanf(%d,&x); y=(x-1)*sizeof(infom); rewind(fp); /*把指针移回文件开始*/ if(fseek(fp,y,0)!=0)/*把指针指向Y*/ printf(can not move there!n); e
15、xit(1); fread(&infom,sizeof(infom),1,fp); printf(num:%ldn,infom.num); printf(name:%sn,infom.name); printf(price:%fn,infom.price); printf(godsnum:%d,infom.godsnum); ch=getchar();getchar();while(ch=Y|ch=y);fclose(fp);Class KF /*定义一个药品库房类 */ void amend() /*修改信息函数*/FILE *fp1 ,*fp2;int flag;long ch;char
16、f;char temp10;do if(fp1=fopen(c:123.dat ,rb) =NULL) printf(tCan not open the inform file!); getch(); exit(1); if(fp2=fopen(c:456.dat,wb) = NULL) printf(tCan not open the temp file!); getch(); exit(1); printf(please input the num you want to amend:); getchar(); scanf(%ld,&ch); flag=0; while(fread(&in
17、fom,sizeof(infom),1,fp1)=1) if(ch=infom.num) printf(nnPlease input the new information:n); printf(tnum:);getchar();gets(temp);infom.num=atol(temp); printf(tname:);gets(infom.name); printf(tprice:);gets(temp);infom.price=atof(temp) printf(tgodsnum:);gets(temp);infom.godsnum=atoi(temp); getchar(); fla
18、g=1; fwrite(&infom,sizeof(infom),1,fp2);fclose(fp1);fclose(fp2);if(flag = 1) printf(amend success!n); remove(c:123.dat); rename(c:456.dat,c:123.dat);else printf(Can not find this record!n);printf(amend any more ?(Y/N): bb);f=getchar();getchar();while (f=Y|f=y);void delete_slf() /*删除信息函数*/FILE * fp1,
19、* fp2;int flag=0; /*定义一个标记*/long ch;char f;char temp10;do if(fp1=fopen(c:123.dat,rb)=NULL) printf(tCan not open the inform file!); getch(); exit(1); if(fp2=fopen(c:456.dat,wb)=NULL) printf(tCan not creat the temp file!); getch(); exit(1); printf(Please input the num you want to delete:); getchar();
20、scanf(%ld,&ch); while(fread(&infom,sizeof(infom),1,fp1)=1) if(ch=infom.num) flag=1; elsefwrite(&infom,sizeof(infom),1,fp2); /*分配一段内存空间&infom是首地址*/ fclose(fp1); fclose(fp2); if(flag=1) printf(Delete success!n); remove(c:123.dat); /*删除文件123*/ rename(c:456.dat,c:123.dat); /*对文件456重命名*/ else printf(Can
21、not find this record!n); printf(Delete any more?(Y/N): bb); f=getchar(); getchar();while(f=Y|f=y);void list() /*选择功能函数*/ int x;while(1)system(cls);printf(tt /*$ .n);/*软件界面*/printf(tt ./ 感谢使用小刚药品信息管理系统 n);printf(tt / . 工作人员 n);printf(tt .田田 | 姓名:王宏刚 n);printf(tt & | 学号:141305055 n);printf(tt 辽宁工业大学软件
22、学院 | n);printf(tt,你说过会同我一起使用!,n);printf(tt, n);printf(tt , , , ,n);printf(tt111111111111111111111111111111111111111111111111111n);printf(tt111111111111111111111111111111111111111111111111111n);printf(tt111111111111111111111111111111111111111111111111111nn);printf(tt 请选择功能: n);printf(tt* e1ome. *n);
23、printf(tt*1.输 入 药品 信 息*n);printf(tt* *n);printf(tt* *n);printf(tt* *n);printf(tt*2.显 示 药品 信 息*n);printf(tt* *n);printf(tt* () *n);printf(tt* *n);printf(tt*3.查 找 药品 信 息*n);printf(tt* *n);printf(tt* *n);printf(tt* () *n);printf(tt*4.修 改 药品 信 息*n);printf(tt* *n);printf(tt* *n);printf(tt* *n);printf(tt*
24、5.删 除 药品 信 息*n);printf(tt* *n);printf(tt* *n);printf(tt* *n);printf(tt*0.退 出 管理 程 序*n);printf(tt* *n);printf(tt111111111111111111111111111111111111111111111111111n);printf(tt111111111111111111111111111111111111111111111111111n);printf(请 选 择 功 能:);scanf(%d,&x);if(x=0&x=5) /*功能选择函数*/ switch(x) case 1:
25、input(); break; case 2:display(); break; case 3:search(); break; case 4:amend(); break; case 5:delete_slf(); break; case 0:exit(0); printf(nnsuccess. nPress any key to continue.n);getch();elseprintf(nnfail.choose againnn);void main() /*主函数*/printf(nnnnnnnnnn);list(); 2.3.2运行结果程序调试正确无误后,进入使用后,出现界面则为正
26、确呈现形式,在界面上输入需要功能模块的的代码,将显示所需的界面,如下系列图所示1. 系统首页如图:图2.32. 程序输入时的界面图如下图图2.43. 药品信息显示如图:图2.6第3章 总结通过本次C+课程设计,收获还是很多的,从刚刚拿到课程设计题目后,我就先分析这个程序的一些基本的功能,从这些基本功能出发来定下一个程序的大致框架结构,这里面主要包括程序中所设计的类,类与类之间的继承关系以及一些主要的函数的设计思想。比如:删除记录函数、增加记录函数等等。从一开始我就从图书馆借阅了不少的其他相关的c+资料,这些都是很宝贵的参看资料,可以说给我最后顺利的完成程序的编写打下了很扎实的基础这次的课程设计
27、,是自己独立完成了一个相对比较大的程序,里面用到的面向对象的知识也是比较多的,通过一番实践,很好的总结、强化了之前学习过的知识要点,并且也发现了自己还没好好掌握的知识点,对于没掌握的,我查阅了参考书籍及时补上。感觉代码写到也是后来,状态越好,我感觉是由于自己对于一些基本的知识的比较好的掌握了。有些问题虽然没遇到过,但是通过查阅资料,只要了解了它们的用法,自己就可以很快的模仿下来,不是照抄。这一点我觉得在今后的程序设计中也是蛮重要的,因为我发现要写出好程序,首先应该去学习人家的程序,看懂他们的程序并且转化为自己的。其次才有可能去创新。参考文献1.郑莉、董渊 编着 C+语言程序设计 北京:清华大学出版社2.黄迪明 主编 C+语言程序设计基础 北京:电子工业出版社3.钱能 主编 C+程序设计教程 北京:清华大学出版社4.钱能 C+程序设计教程 清华大学出版社,1999年5.吴访升 编着 C+程序设计 北京: 机械工业出版社6.Decoder 主编 C/C+程序设计 北京:中国铁道出版社7.谭浩强 C语言程序设计(第二版)清华大学出版社,2003年8.吴文虎 程序设计基础 清华大学出版社,2003年9.钱启平 C语言程序设计基础辅导教程 铁道出版社,2000年10.徐孝凯 编着 C+语言程序设计 北京:清华大学出版社16
限制150内