c课程设计 药品信息管理系统大学论文文档格式.docx
《c课程设计 药品信息管理系统大学论文文档格式.docx》由会员分享,可在线阅读,更多相关《c课程设计 药品信息管理系统大学论文文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
1.4设计要求1
第2章课程设计内容2
2.1课题描述2
2.2系统设计2
2.2.1功能分析2
2.2.2面向对象设计2
2.2.2类成员描述4
2.3程序实现5
2.3.1源码分析5
2.3.2运行结果13
第3章总结15
参考文献16
第1章课程设计目的与要求
1.1设计目的
将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:
(1)进一步巩固、加深学生所学专业课程《C++语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握面向对象程序设计的方法。
(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序和修改程序。
1.2实验环境
硬件要求能运行Windows操作系统的微机系统。
C++语言应用程序开发软件使用:
VC++系统,或其他C++语言应用程序开发软件。
1.3预备知识
熟悉C++语言程序设计的基本知识及VC++编辑器的使用方法。
1.4设计要求
1.仔细分析设计题目,画出程序流程图,编写程序源代码。
2.积极上机调试源程序,增强编程技巧与调程能力。
3.认真书写课程设计预习报告,课程设计说明书。
4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。
第2章课程设计内容
2.1课题描述
在我国,随着医药卫生体制改革的深入,医药连锁经营的推行以及日趋激烈的商业角逐,越来越多的医药经营企业意识到提高企业管理水平的重要性,也迫切要求加快管理信息化的进程。
在医药行业中,医药经营企业的物流管理以及相应的财务处理、信息处理,长期以来一直采用手工操作,但随着产业结构调整、全新的市场竞争环境,药品企业管理和运营效率已经成为企业成败的关键所在,手工方式的弊端毕现无遗。
这就要求医药管理摆脱过去人手操作的烦琐,充分满足了医药经营企业的各种需求,从医药经营企业的各个环节对人流、物流、资金流、信息流进行统一系统的管理。
市场的需求和技术的支持,最终会导致越来越多的优秀医药管理软件的出现,并在竞争中得到不断的完善和优化。
本系统以C++语言实现了药品信息管理的:
库存管理、药品管理以及出库入库管理。
2.2系统设计
2.2.1功能分析
这是一个关于小刚药品信息管理系统,具有输入、显示、修改、查询、删除数据等功能,用户使用时,进入主菜单选择界面,选择想要进行的操作;
1.输入信息,输入数字“1”,增加药品信息
2.显示所有药品信息,输入数字“2”,将所有的药品信息以列表输出
3.查找药品信息,输入“3”,回车确定操作,输入要修改的ID号
4.修改药品信息,输入“4”回车确定操作,系统显示修改的页面,将需修改的药品息输入,输入完后回车确定
5.删除药品信息,输入“5”,回车确定操作,系统显示“输入删除药品的ID号,输入要删除的药品号,系统将保存的数据删除
6.退出系统,输入“0”,回车确定操作,退出系统。
2.2.2面向对象设计
类设计:
使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,仓库、药品。
所以系统主要涉及两大类:
药品仓库类、药品类。
系统框架就是仓库类和药品类的定义;
主函数中定义一个仓库对象,循环显示主菜单并根据用户选择调用仓库类的相应方法(成员函数)。
考虑系统操作的药品信息具有不确定性,所以考虑使用链表保存、处理药品信息。
仓库类包含:
所有药品信息的一个不带头结点的链表及可以对药品信息进行增,改,删除,查询,数量设置,数据存盘等操作的相关模块为成员函数。
所有药品都具有的公共信息及操作可以使用仓库类进行描述。
图2.1系统中uml类图之间的关系
图2.2总体流程图
2.2.2类成员描述
a.药品管理员类:
classadmin
{
public:
admin();
private:
stringname;
};
b.药品仓库货架类:
classshelf
shelf();
adminmen;
//管理员
stringstoreNo;
//药品仓库编号
stringkinds;
//药品大类
stringshelfNo;
//药品货架号
函数成员描述以及函数功能:
1、void
input()通过函数输入药品信息
2、void
output()通过函数输出药品信息
3、Node()通过函数使指针指向下个地址
4、List()通过函数使指针指向首地址
5、void
addNode()通过函数添加药品信息
6、void
XSNode()通过函数显示药品所有信息
7、void
queryNode1(char
*TName)通过函数查询药品信息
8、void
queryNode2(char
*TName)同上
9、void
delNode(char
*TName)通过函数删除药品信息
10、void
saveList()通过函数储存药品信息
11、ofs.open("
data.txt"
);
通过函数输出文本文件
12、ifs.open("
通过函数输入文本文件
13、~List()通数过定义析构函数,释放空间
2.3程序实现
2.3.1源码分析
#include<
stdio.h>
stdlib.h>
conio.h>
voidinput();
/*输入*/
voiddisplay();
/*显示*/
voidsearch();
/*查找*/
voidamend();
/*修改*/
voiddelete_slf();
/*删除*/
voidlist();
/*菜单*/
structstud/*定义药品属性数组*/
longnum;
/*药品编号*/
charname[20];
/*药品名字*/
floatprice;
/*药品的价格*/
intgodsnum;
/*药品的数量*/
}infom;
classSP/*定义个药品类*/
voidinput()/*输入信息函数*/
FILE*fp;
/*定义文件指针*/
charnumstr[20],ch;
if((fp=fopen("
c:
\\123.dat"
"
wb"
))==NULL)
exit(0);
}
do
getchar();
printf("
\n\t\tenternum:
"
gets(numstr);
/*接受字符并存入数组中*/
infom.num=atol(numstr);
/*把字符型转换成整型*/
\n\t\tentername:
gets(infom.name);
\n\t\tenterprice:
infom.price=atof(numstr);
/*把字符型转换成float型*/
\n\t\tentergodsnum:
infom.godsnum=atoi(numstr);
fwrite(&
infom,sizeof(infom),1,fp);
\n\t\tinputcontinue(y/n)?
ch=getchar();
getchar();
}while(ch=='
Y'
||ch=='
y'
fclose(fp);
voiddisplay()/*显示信息函数*/
charch;
intx;
floatf;
rb"
\nCanntopenfile!
\n"
getch();
exit
(1);
while(fread(&
infom,sizeof(structstud),1,fp)==1)
{
\n\tnum:
%ld"
infom.num);
\n\tname:
%s"
infom.name);
\n\t\price:
%.3f"
infom.price);
\n\t\godsnum:
%d"
infom.godsnum);
}
voidsearch()/*查询信息函数*/
longy;
\nCannotopenfile!
\npleaseinputrecondnum:
scanf("
&
x);
y=(x-1)*sizeof(infom);
rewind(fp);
/*把指针移回文件开始*/
if(fseek(fp,y,0)!
=0)/*把指针指向Y*/
cannotmovethere!
fread(&
num:
%ld\n"
name:
%s\n"
price:
%f\n"
godsnum:
ClassKF/*定义一个药品库房类*/
voidamend()/*修改信息函数*/
FILE*fp1,*fp2;
intflag;
longch;
charf;
chartemp[10];
if((fp1=fopen("
\\123.dat"
))==NULL)
\tCannotopentheinformfile!
if((fp2=fopen("
\\456.dat"
))==NULL)
\tCannotopenthetempfile!
pleaseinputthenumyouwanttoamend:
ch);
flag=0;
while(fread(&
infom,sizeof(infom),1,fp1)==1)
if(ch==infom.num)
\n\nPleaseinputthenewinformation:
\tnum:
gets(temp);
infom.num=atol(temp);
\tname:
\tprice:
infom.price=atof(temp)
\tgodsnum:
infom.godsnum=atoi(temp);
flag=1;
infom,sizeof(infom),1,fp2);
fclose(fp1);
fclose(fp2);
if(flag==1)
amendsuccess!
remove("
rename("
else
Cannotfindthisrecord!
printf("
amendanymore?
(Y/N):
[]\b\b"
f=getchar();
}while(f=='
||f=='
voiddelete_slf()
/*删除信息函数*/
FILE*fp1,*fp2;
intflag=0;
/*定义一个标记*/
\tCannotcreatthetempfile!
Pleaseinputthenumyouwanttodelete:
else
fwrite(&
/*分配一段内存空间&
infom是首地址*/
fclose(fp1);
fclose(fp2);
if(flag==1)
Deletesuccess!
/*删除文件123*/
/*对文件456重命名*/
Deleteanymore?
[]\b\b"
f=getchar();
}while(f=='
voidlist()
/*选择功能函数*/
{
while
(1)
system("
cls"
\t\t/\~~~~~~~~~~~~~\ ▓ ^*^ ☆ $$ .☆\n"
/*软件界面*/
\t\t./ \~~~▓~ ~~~~\◆ ☆感谢使用小刚药品信息管理系统☆ \n"
\t\t/^^\══════\.◆ 工作人员\n"
\t\t..▎[] ▎田 田▎|┃◆ ★姓名:
王宏刚\n"
\t\t&
&
▎ ▎ ▎'
|'
▎@ ★ 学号:
141305055 \n"
\t\t#■■■■■■■■■■〓▄▃▂▁★辽宁工业大学软件学院︸||\n"
\t\t'
你说过会同我一起使用!
'
'
╱╱★╱☆\n"
\t\t╭⌒'
╭⌒╮ ╱ ╱╱ ╱ ☆╱★╱\n"
\t\t'
'
☆ ╱★ ╱╱ \n"
\t\t\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n"
\t\t\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n\n"
\t\t请选择功能:
\n"
\t\t*******╭☆☆˙We1come.*******\n"
\t\t*******┊╭⌒ ╭⌒╮1.输入药品信息*******\n"
\t\t*******┊ ︶ ︶︶ *******\n"
\t\t*******┊╭⌒ ╭⌒╮ ◣◤*******\n"
\t\t*******┊ ︶ ︶︶◢◥*******\n"
\t\t*******┊╭⌒ ╭⌒╮2.显示药品信息*******\n"
\t\t*******┊ ︶ ︶︶ *******\n"
\t\t*******┊╭⌒ ╭⌒╮(▔◎▔)*******\n"
\t\t*******┊ ︶ ︶︶╱│││╲*******\n"
\t\t*******┊╭⌒ ╭⌒╮3.查找药品信息*******\n"
\t\t*******┊ ︶ ︶︶*******\n"
\t\t*******┊╭⌒ ╭⌒╮╭⌒⌒のˊ*******\n"
\t\t*******┊ ︶ ︶︶( . .)ˋ*******\n"
\t\t*******┊╭⌒ ╭⌒╮4.修改药品信息*******\n"
\t\t*******┊╭⌒ ╭⌒╮╱╲╲*******\n"
\t\t*******┊ ︶ ︶︶╲╲╱*******\n"
\t\t*******┊╭⌒ ╭⌒╮5.删除药品信息*******\n"
\t\t*******┊╭⌒ ╭⌒╮∴°
★.☆°
*******\n"
\t\t*******┊ ︶ ︶︶.°
∴°
★*******\n"
\t\t*******┊╭⌒ ╭⌒╮0.退出管理程序*******\n"
\t\t*******┊ ︶ ︶︶*******\n"
请选择功能:
scanf("
if(x>
=0&
x<
=5)/*功能选择函数*/
switch(x)
case1:
input();
break;
case2:
display();
case3:
search();
case4:
amend();
case5:
delete_slf();
case0:
exit(0);
\n\nsuccess.\nPressanykeytocontinue......\n"
getch();
\n\nfail.chooseagain\n\n"
voidmain()/*主函数*/
\n\n\n\n\n\n\n\n\n\n"
list();
}
2.3.2运行结果
程序调试正确无误后,进入使用后,出现界面则为正确呈现形式,在界面上输入需要功能模块的的代码,将显示所需的界面,如下系列图所示
1.系统首页如图:
图2.3
2.程序输入时的界面图如下图
图2.4
3.药品信息显示如图:
图2.6
第3章总结
通过本次