C“诊所信息管理系统设计”课设报告Word文件下载.doc
《C“诊所信息管理系统设计”课设报告Word文件下载.doc》由会员分享,可在线阅读,更多相关《C“诊所信息管理系统设计”课设报告Word文件下载.doc(31页珍藏版)》请在冰点文库上搜索。
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
2、系统功能模块划分
诊所信息管理系统
登陆
退出系统
查询信息
账单信息
增加信息
增加账单信息
查询账单信息
统计总费用
查询医生信息
查询患者信息
增加医生信息
增加患者信息
返回上一页
三、详细设计
1、数据结构设计
1.1类设计
分别定义了person人类、doctor医生类、HuanZhe患者类以及zhangdan帐单类;
在person人类中,包含了数据成员姓名(name)、性别(sex)、年龄(age)以及诊费(office_vist_fee);
在doctor医生类中,增加了数据成员医生的专业说明(drug_fee),包含了成员函数input()增加医生信息,zhangdanKind()按姓名查询医生信息;
在HuanZhe患者类中,增加了数据成员患者的药费(drug_fee),包含了成员函数input()增加患者信息,zhangdanKind()按姓名查询患者信息;
在zhangdan帐单类中,包含了数据成员姓名(name)、诊费(office_vist_fee)、药费(drug_fee)、总费用(totl_fee),包含了成员函数totl_pay()用于统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。
1.1.1person人类
{protected:
stringname;
stringsex;
intage;
doubleoffice_vist_fee;
};
1.1.2doctor医生类
{public:
voidinput();
//增加医生信息
voidzhangdanKind();
//按姓名查询医生信息
private:
stringspeicialty;
1.1.3HuanZhe患者类
voidzhangdanKind();
//按姓名查询患者信息
//增加患者信息
doubledrug_fee;
1.1.4zhangdan账单类
voidtotl_pay();
voidaddzhangdan();
//增加账单信息
//按姓名查询账单信息
doubletotl_fee;
1.2类之间的关系
在该系统中医生与患者都有数据成员姓名(name)、性别(sex)、年龄(age)以及诊费(office_vist_fee);
所以把这些数据成员定义在基类person人类中,doctor医生类与HuanZhe患者类公有继承于基类person人类。
2、函数规划设计
在doctor医生类中,包含了成员函数input()增加医生信息,zhangdanKind()按姓名查询医生信息;
在HuanZhe患者类中,包含了成员函数input()增加患者信息,zhangdanKind()按姓名查询患者信息;
在zhangdan帐单类中,包含了成员函数totl_pay()用于统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。
在该系统中,还包含了普通函数adding()实现增加信息界面,search()实现查询信息界面,zhangdanxinxi()实现账单信息界面,landing()验证用户登陆,登陆成功显示欢迎信息,surface()实现诊所信息管理系统主界面。
其中adding()增加信息界面包括了1、增加医生信息2、增加患者信息0、返回上一页;
select()查询信息界面包括了1、查询医生信息2、查询患者信息0、返回上一页;
zhangdanxinxi()账单信息界面包括了1、增加账单信息2、查询账单信息3、统计总费用0、返回上一页;
surface()诊所信息管理系统主界面包括了1、查询信息2、账单信息3、增加信息4、统计总费用0、退出系统;
main()主函数界面包括了1、用户登录0、退出系统。
在这些界面的实现中用switch()语句做选择。
2.1增加医生信息
voiddoctor:
:
input()
{
cout<
<
"
*****主治医生基本信息*****"
endl;
fstreamoutdoctor("
医生.txt"
ios:
out|ios:
app);
//以写方式打开文件
if(!
outdoctor)
cout<
打开文件失败!
else
{
姓名:
;
cin>
>
name;
outdoctor<
name<
"
性别:
sex;
sex<
cout<
年龄:
age;
age<
诊费:
office_vist_fee;
office_vist_fee<
专业说明:
speicialty;
speicialty<
outdoctor.close();
}
}
2.2按姓名查询医生信息
zhangdanKind()
fstreamindoctor("
in);
//以读方式打开文件
indoctor)
return;
intline=0;
stringarr[100][5];
//定义一个string类型的二维数组,用来保存从文本内读取的信息
memset(arr,0,sizeof(arr));
//将数组清空
while(!
indoctor.eof())//文件不为空的条件设置
2"
indoctor>
arr[line][0]>
arr[line][1]>
arr[line][2]>
arr[line][3]>
arr[line][4];
line++;
}
stringmz;
cout<
请输入要查询的医生姓名:
cin>
mz;
for(inti=0;
i<
line;
i++)
if(arr[i][0]==mz)
{
cout<
医生姓名:
arr[i][0]<
arr[i][1]<
<
arr[i][2]<
arr[i][3]<
元"
专业:
arr[i][4]<
return;
}
记录中没有此医生信息!
是否继续查询y/n:
chart;
t;
if(t=='
y'
)
zhangdanKind();
return;
2.3增加患者信息
voidHuanZhe:
*****患者基本信息*****"
fstreamoutH("
患者.txt"
outH)
outH<
性别:
outH<
outH<
药费:
drug_fee;
drug_fee<
outH.close();
是否继续添加患者信息y/n:
chart;
if(t=='
input();
2.4按姓名查询患者信息
fstreaminH("
//以读方式打开文件
inH)
return;
//定义一个string类型的二维数组,用来保存从文本内读取的信息
memset(arr,0,sizeof(arr));
////将数组清空
inH.eof())//文件不为空的条件设置
{ inH>
//文件流读取数据
请输入要查询的患者姓名:
患者姓名:
记录中没有此患者的信息!
2.5增加账单信息
voidzhangdan:
addzhangdan()
fstreamoutfile1("
账单.txt"
outfile1)
outfile1<
主治医生:
总费用:
totl_fee;
totl_fee<
outfile1.close();
是否继续添加账单信息y/n:
addzhangdan();
2.6查询账单信息
fstreaminfile1("
infile1)
return;
intline=0;
//将数组清空
infile1.eof())//文件不为空的条件设置
infile1>
//文件流读取数据
stringxm;
xm=arr[i][1];
fstreamindoctor("
if(!
{
cout<
return;
}
intl=0;
memset(arr,0,sizeof(arr));
while(!
indoctor>
arr[l][0]>
arr[l][1]>
arr[l][2]>
arr[l][3]>
arr[l][4];
l++;
for(intj=0;
j<
l;
j++)
if(arr[j][0]==xm)
{
cout<
arr[j][0]<
arr[j][1]<
arr[j][2]<
arr[j][3]<
arr[j][4]<
}
fstreaminH("
cout<
intlin=0;
memset(arr,0,sizeof(arr));
while(!
inH>
arr[lin][0]>
arr[lin][1]>
arr[lin][2]>
arr[lin][3]>
arr[lin][4];
lin++;
for(intz=0;
z<
lin-1;
z++)
if(arr[i][0]==mz)
arr[z][0]<
arr[z][1]<
arr[z][2]<
arr[z][3]<
arr[z][4]<
记录中没有此患者的帐单信息!
2.7统计总费用
totl_pay()
//以读方式打开文件
doublearr[100][3];
//定义一个double类型的二维数组,用来保存从文本内读取的信息
stringarrs[100][2];
//定义一个string类型的二维数组,用来保存从文本内读取的信息
arrs[line][0]>
arrs[line][1]>
arr[line][2];
doublea;
doublez=0.0;
line-1;
a=arr[i][2];
z=z+a;
所有患者的总费用为:
infile1.close();
2.8登陆
voidlanding()
stringname,code;
\t\t用户名:
if(name!
="
yangqing"
\t\t☆********★该管理员不存在☆********★"
landing();
{
\t\t密码:
code;
if("
123456789"
==code)
\t\t\t☆********★成功登入☆********★"
else
\t\t☆********★密码错误,请重新输入☆********★"
\t\t☆********★密码☆********★:
cin>
2.9增加信息界面
voidadding()
inta;
doctord;
HuanZhew;
\t\t$***********增加信息界面*********$"
\n"
\t\t$*********************************$\n"
\t\t$$\n"
\t\t$1.增加医生信息$\n"
\t\t$2.增加患者信息$\n"
\t\t$0.返回上一页$\n"
\t\t$