资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
设计流程
1、 系统分析
处方跟踪系统( PTS) 参与者为Customer, Customer可实现三个操作, 查询客户信息, 查询处方信息, 查询药物信息。PTS系统的用例图如图4.1所示:
图4.1 PTS系统用例图
说明: 该系统分为: 查询处方信息模块、 查询药物信息模块及用户信息模块。
其中查询药物信息模块实现了处方跟踪系统要求实现的查询药物信息及其是否能够替代及相应替代药物的功能。
查询处方信息模块实现了处方跟踪系统要求实现的查询处方信息及处方使用时间的功能。
2、 系统设计
本系统涉及3个类: 分别是Customer、 Medicine和Prescription。图4.2为PTS系统类图:
图4.2 PTS系统类图
3、 数据字典
PTS处方跟踪系统:
类
n 用户( Customer) :具有查询本系统中各项项信息的人, 是本系统的参与者。
n 药物( Medicine) :客户所使用处方中的一系列药物。
n 处方( Prescription) : 客户所用的一系列处方。
属性
n Customer.name:每个用户的用户名。
n Customer.TelephoneNumber:每个用户相对应的用户电话号码。
n Customer.birthday: 每个用户的生日。
n Customer.InsuranceProvider:每个用户投保的医疗保险公司。
n Customer.InsurancePolicyNumber:每个用户的保单号。
n Medicine.name:每种药物的药物名称。
n Medicine.Unit:每种药物的单位。
n Medicine.Number:每种药物的数量。
n Medicine.Effect:每种药物的副作用。
n Prescription.ID: 处方ID号
n Prescription.Date:开处方日期
n Prescription.EndDate: 处方结束日期
n Prescription.PhysicianName: 开处方医生的姓名
n Prescription.Customer: 开给处方的客户
n Prescription.Number: 已给药次数
n Prescription.total: 处方给药总数
方法
n 方法: displayPrescription()
n 所属类: Customer
n 首部: public void displayPrescription()
n 描述: 对记录做判断, 如果record中记录为空, 则提示没有该用户。如果有, 则打印输出用户信息和处方的历史。
n 方法: record()
n 所属类:Customer
n 首部: public void record(Prescription p)
n 描述: 保持客户类与处方类关联的一致性.
n 方法: isGiveMedicine( )
n 所属类:Prescription
n 首部: public boolean isGivedrug(int n)
n 描述: n为给药的次数, 而getnum ()是总共给药的次数,经过判断总共给药的次数是否大于给药的次数。如果大于, 则条件允许再分配剩余的次数。否则, 则不允许。
n 方法: isExtime
n 所属类:Prescription
n 首部: public boolean isExtime()
n 描述:经过判断处方所给出的结束日期与当前日期的先后顺序得出是否过期。
五、 程序清单
import java.util.ArrayList;
import java.util.Date;
/**
* 处方类
*/
public class Prescription {
private String ID;//处方ID号
private Date date;//开处方日期
private Date enddate;//处方结束日期
private int number;//已给药次数
private int total;//处方给药总数
private Customer customer;//开给处方的客户
private ArrayList<Medicine> pm ;
public Prescription(String id, Date date, Date enddate, int number ,int total) {
this.ID = id;
this.date = date;
this.enddate = enddate;
this.number = number;
this.total = total;
pm = new ArrayList<Medicine>() ;
}
public ArrayList<Medicine> getPm()
{
return pm ;
}
public void setPm(Medicine m)
{
pm.add(m) ;
}
public void setNumber(int number) {
this.number = number;
}
public int getNumber() {
return number;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public void setTotal(int total) {
this.total = total;
}
public int getTotal() {
return total;
}
public Date getEnddate() {
return enddate;
}
public void setEnddate(Date enddate) {
this.enddate = enddate;
}
public String getID() {
return ID;
}
public void setID(String id) {
ID = id;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public boolean isGivemedicine(){
System.out.println("\t以给药次数: "+this.getNumber());
return true;
}
// 处方是否已过期
public boolean isExtime(){
Date now = new Date(System.currentTimeMillis());
if(now.after(this.enddate)){
//System.out.print("处方已过期");
return true;
}
else return false;
}
// 显示处方信息
public void display(){
System.out.print("\t处方ID号: "+this.getID());
System.out.print("\t处方日期: "+this.getDate().toString());
System.out.print("\t处方终止日期: "+this.getEnddate().toString());
System.out.println("\t批准的再次给药次数: "+(this.getTotal()- this.number));
for(Medicine m:pm)
System.out.println("\t"+m.getName()+" "+m.getNum()+m.getunit()+" "+m.getEffect()) ;
}
}
/**
* PTS驱动类
*/
import java.sql.Date;
import java.util.ArrayList;
public class PTS {
public static ArrayList<Prescription> prescriptionrecord;
public static void main(String[] args) {
// TODO Auto-generated method stub
Customer c1,c2,c3,c4;//定义四个客户;
Medicine m1,m2,m3,m4,m5;//定义五种药物;
Prescription p1,p2,p3;//定义三个处方。
//初始化
c1 = new Customer("张艺", "", "06/12", "长沙移动", "11");
c2 = new Customer("李景普", "", "07/12", "郴州移动", "12");
c3 = new Customer("王明", "", "08/12", "商丘移动", "13");
c4 = new Customer("赵虎", "", "09/12", "湖南移动", "14");
m1=new Medicine("青霉素","毫升",100,"可能会出现抽搐, 皮肤搔痒等症状");
m2=new Medicine("阿司匹林","盒",1,"可能会出现皮肤红肿等症状");
m3=new Medicine("钙片","片",5,"可能会出现痉挛症状");
m4=new Medicine("葡萄糖","毫升",700,"可能会出现头晕症状");
m5=new Medicine("三株口服液","瓶",9,"可能会出现头疼等症状");
//添加药物的替代药物
m1.addreMedicine(m3);m1.addreMedicine(m4);
m2.addreMedicine(m5);m4.addreMedicine(m2);
m4.addreMedicine(m3);m4.addreMedicine(m1);
Date date1 = Date.valueOf(" -02-01");
Date enddate1 = Date.valueOf(" -02-15");
p1 = new Prescription("1", date1, enddate1, 5,5 );
p1.setPm(m1) ;
p1.setPm(m3) ;
p1.setPm(m5) ;
Date date2 = Date.valueOf(" -02-28");
Date enddate2 = Date.valueOf(" -03-05");
p2 = new Prescription("2", date2, enddate2, 3,6);
p2.setPm(m2) ;
p2.setPm(m4) ;
Date date3 = Date.valueOf(" -06-07");
Date enddate3 = Date.valueOf(" -06-11");
p3 = new Prescription("3", date3, enddate3, 4,5);
p3.setPm(m1) ;
p3.setPm(m2) ;
//添加处方记录
c1.record(p1);c1.record(p3);
c2.record(p2);c2.record(p1);
c3.record(p1);c3.record(p2);
c3.record(p3);c4.record(p2);
//显示某客户的处方历史记录
System.out.println("-----------------------------------");
System.out.println("客户的处方历史记录:");
System.out.println("-----------------------------------");
//c1.disPlay() ;
c1.displayPrescription();
//c2.disPlay() ;
c2.displayPrescription();
//c3.disPlay() ;
c3.displayPrescription();
//c4.disPlay() ;
c4.displayPrescription();
//显示特定药物的通用替代药物清单
System.out.println("-----------------------------------");
System.out.println("各种药物的替代药物:");
System.out.println("-----------------------------------");
m1.displayreMedicine();
m2.displayreMedicine();
m3.displayreMedicine();
m4.displayreMedicine();
m5.displayreMedicine();
System.out.println();
//判断给定的处方是否能够再次给药, 以及处方是否已过期
System.out.println("------------------------------------");
System.out.println("判断处方再次给药次数与处方是否过期");
System.out.println("------------------------------------");
prescriptionrecord = new ArrayList<Prescription>();
prescriptionrecord.add(p1);
prescriptionrecord.add(p2);
prescriptionrecord.add(p3);
for(Prescription p : prescriptionrecord){
System.out.println("处方ID号为"+p.getID()+"的判定情况");
if(p.isGivemedicine())
System.out.println("\t 剩余给药次数: "+(p.getTotal()-p.getNumber()));
else System.out.println("\t 不能够再次给药!!");
if(p.getTotal()-p.getNumber() == 0) System.out.println("\t 该处方过期!!!!");
else System.out.println("\t 该处方没有过期,结束日期为: "+p.getEnddate().toString());
}
}
}
六、 调试和测试结果
七、 教师批语与成绩评定
1、 评分指标
评分项目
等级
(1) 是否遵循建模原则
(2) Java代码编写是否规范
(3) 模型评价
(4) 程序功能是否完整、 细致
(5) 系统运行情况
(6) 系统难度
(7) 完成系统的工作量
(8) 编写系统的努力程度
(9) 数据库或文件访问功能
(10)用户界面
2、 总评分数
3、 评分教师 刘 翌 南
展开阅读全文