《软件设计模式之抽象工厂.doc》由会员分享,可在线阅读,更多相关《软件设计模式之抽象工厂.doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程课程设计报告(学生选课系统) .海南师范大学软件设计模式课程报告( 2014 - 2015年度第一学期) 课程名称: 软件设计模式 题 目: 门诊病历信息管理系统 院 系: 信息科学技术学院 班 级: 12软工 任课教师: 石 春 成 员: 宋亮(组长) 201224070129 吴婕 201224070134 郎双双 201224070114 席鹏鹏 201224070137 成 绩 评 定 分数 一、任务分配任务负责人完成详细内容二、 指导教师评语 目录一、课程设计的目的与要求二、设计正文 1.概述 1.1. 课题题目 1.2 系统的主要目标 1.3 系统的开发环境及运行环境 2.
2、系统需求分析 2.1. E-R图2.2. 用例图 2.3. 类图3.数据库设计 3.1. 患者信息表 3.2. 医生信息表 3.3. 患者病历信息表 3.4药物信息表4.系统实现 4.1. 程序源代码 4.2. 截图摘要:本系统实现门诊病历信息管理系统的基本功能,包括管理员信息管理(修改管理员信息)、患者信息管理(查询患者信息、添加患者信息)、患者病历信息管理(登记患者病历信息、查询患者病历信息)、系统设置等。此外,本系统利用.Net平台技术进行开发,实现门诊病历信息管理系统的动态管理,使得对信息的管理更加及时、高效,提高了效率。关键词:门诊病历信息管理 ASP.NET一、课程设计的目的与要求
3、通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。具体如下:1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2. 熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程;3. 进一步加强和提高软件工程文档的编写能力;4. 培养协作能力和团队精神。二、设计正文1 概述1.1.课题题目:门诊病历信息管理系统1.2.系统的主要目标:本系统的目标是实现门诊病历信息管理系统所需的各种基本功能,包括管理员信息管理(修改管理员信息)、患者信
4、息管理(查询患者信息、添加患者信息)、患者病历信息管理(登记患者病历信息、查询患者病历信息)、系统设置等功能。1.3. 系统的开发环境及运行环境:操作系统: Windows 7建模工具: Rational Rose 2003数据库系统:mySQL开发工具: Visual Studio 20102 系统需求分析学生选课系统主要满足来自三方面的需求,这三个方面分别是学生用户、教师用户和管理员用户,也即是三类用户角色。(1)医生用户是主要的需求者,主要需求功能是查询患者信息、登记或查询患者病历信息。(2)患者用户无主要需求功能。(3)管理员用户的功能需求较为复杂,包括对医生信息、患者信息、管理员信息
5、进行管理。在医生信息管理子模块中,实现对医生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。在患者信息和患者病历信息管理子模块中,实现对教师信息的添加、修改、删除、查询等操作。在管理员信息子模块中,实现对管理员信息的添加,修改、删除、查看等。本系统将管理员用户、患者用户、医生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看、维护系统中的所有信息,如添加患者信息、添加医生信息等;让医生拥有查看患者信息、查看患者病历信息等的权限。通过进行严格的权限划分,可以更好地进行管理,也可更好地保护用户信息安全。2.1. E-R 图2.2. 用例图2.3. 类图3.数据库设计3.1.
6、 患者信息表:PatientInfo患者编号,PatientNumint身份证号,PatientIDchar姓名,PatientNamechar性别,PatientSexchar出生日期,PatientBirthdate出生地,PatientBirthAddchar现居住地,livingAddchar联系电话,phoneNoint备注,noteschar 3.2. 医生信息表:doctorInfo医生编号,doctorNumint姓名,doctorNamechar职称,doctorPositionchar性别,doctorSexchar身份证号,doctorIDchar出生日期,doctorB
7、irthdate住址,doctorAddchar科室,FamilyRoomchar联系电话,doctorPhoneint就职时间,inaugurationTimedate 3.3. 患者病历信息表:PatientRecordInfo患者编号,PatientNumint确诊日期,ConfirmeDatedate病症,symptomschar医生编号,doctorNumint备注,Noteschar 3.4. 药物信息表:DrugInfo药物编号,DrugNumint药物名称,DrugNamechar价格,priceint规格(xxx/瓶),specificationschar4.系统实现本系统采
8、用了三层架构来实现,即分为用户界面层(VIEW)、业务逻辑层(CONTROLLER)和数据访问层(MODE),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。4.1程序源代码:public interface Users / / 添加信息 / / Boolean addInfo(String str); / / 删除信息 / / void deletInfo(String str); / / 查询信息 / / string, queryInfo(String str); /
9、 / 修改信息 / / void modifyInfo(String str,Users users); / / - 用户属性 - / / / 用户编号 / int UserNo get; set; / / 用户姓名 / string UserName get; set; / / 用户性别 / string UserSex get; set; / / 用户联系电话 / string UserPhone get; set; / / 用户职称 / string UserPosition get; set; / / 确认用户密码 / string UserPwd1 get; set; / / 用户密
10、码 / string UserPwd get; set; / / 用户身份证号 / string UserID get; set; / / 用户出生日期 / string UserBirth get; set; / / 用户出生地 / string UserBirthAdd get; set; / / 用户现居地 / string UserLivingAdd get; set; / / 用户所在科室 / string UserFamilyRoom get; set; / / 用户就职日期 / int UserInaugurationTime get; set; 医生类: public clas
11、s DoctorInfo:Users private int doctorNum; private String doctorName; private String doctorPosition; private String doctorSex; private String doctorID; private String doctorBirth; private String doctorAdd; private String familyRoom; private String doctorPhone; private int inaugurationTime; public str
12、ing UserPwd1 get return null; set public string UserPwd get return null; set public string UserBirthAdd get return null; set / / 医生编号 / public int UserNo get return doctorNum; set doctorNum = value; / / 医生姓名 / public String UserName get return doctorName; set doctorName = value; / / 医生职称 / public St
13、ring UserPosition get return doctorPosition; set doctorPosition = value; / / 医生性别 / public String UserSex get return doctorSex; set doctorSex = value; / / 医生身份证号 / public String UserID get return doctorID; set doctorID = value; / / 医生出生日期 / public String UserBirth get return doctorBirth; set doctorB
14、irth = value; / / 医生居住地址 / public String UserLivingAdd get return doctorAdd; set doctorAdd = value; / / 医生所在科室 / public String UserFamilyRoom get return familyRoom; set familyRoom = value; / / 医生联系电话 / public String UserPhone get return doctorPhone; set doctorPhone = value; / / 医生就职时间 / public int U
15、serInaugurationTime get return inaugurationTime; set inaugurationTime = value; / / 添加信息 / / public Boolean addInfo(String str) dataBase database = new DatabaseOprator(); int count = database.addInfo(str); if (count = 1) return true; else return false; / / 删除信息 / / public void deletInfo(String str) /
16、 / 修改信息 / / public void modifyInfo(String str,Users users) / / 查询信息 / / public string, queryInfo(String str) dataBase database = new DatabaseOprator(); return database.doctorQueryPatientInfo(str); 操作员类:public class OperatorInfo : Users private int opretorNo = 0; private String operetorPwd1 = ; priva
17、te String operetorName = ; private String operetorSex = ; private String operetorPhone = ; private String operetorNotes = ; private String operetorPwd = ; public string UserFamilyRoom get return null; set public int UserInaugurationTime get return 0; set public string UserID get return null; set pub
18、lic string UserBirth get return null; set public string UserBirthAdd get return null; set public string UserLivingAdd get return null; set / / 管理员编号 / public int UserNo get return opretorNo; set opretorNo = value; / / 管理员姓名 / public String UserName get return operetorName; set operetorName = value;
19、/ / 管理员性别 / public String UserSex get return operetorSex; set operetorSex = value; / / 管理员电话 / public String UserPhone get return operetorPhone; set operetorPhone = value; / / 管理员职务 / public String UserPosition get return operetorNotes; set operetorNotes = value; / / 管理员密码 / public String UserPwd ge
20、t return operetorPwd; set operetorPwd = value; / / 管理员密码 / public String UserPwd1 get return operetorPwd1; set operetorPwd1 = value; / / 添加信息 / / public Boolean addInfo(String str) return true; / / 删除信息 / / public void deletInfo(String str) / / 查询信息 / / public string, queryInfo(String str) dataBase
21、databaseOprator = new DatabaseOprator(); string, field = databaseOprator.QueryoperatorInfo(str); return field; / / 修改信息 / / public void modifyInfo(String str,Users users) messageInfo message = new PublicMathord(); dataBase databaseOprator = new DatabaseOprator(); MySqlParameter logonArray = new MySq
22、lParameter(?opretorNostr, MySqlDbType.Int32) ; logonArray0.Value = users.UserNo; String sqlstr = update opretorinfor set opretorName= + users.UserName + ,opretorSex= + users.UserSex + ,operatorPhone= + users.UserPhone + ,Notes= + users.UserPosition + ,opretorPwd= + users.UserPwd1 + where OpretorNo=?
23、opretorNostr; int count = databaseOprator.updateOperetorInfo(sqlstr, logonArray); if (count = 1) message.sendMessage(修改成功); 患者类:public class PatientInfo : Users private int patientNum=0; private String patientID = ; private String patientName = ; private String patientSex = ; private String patientB
24、irth = ; private String phoneNo = ; private String patientBirthAdd = ; private String livingAdd = ; private String notes = ; public string UserFamilyRoom get return null; set public int UserInaugurationTime get return 0; set public string UserPwd1 get return null; set public string UserPwd get return null; set / / 患者编号 / public int UserNo get return patientNum; set patientNum = value; / / 患者身份证号 / public String UserID get return patientID; set patientID = value; / / 患者姓名 / public String UserName get return patientName; set patientName = value; / / 患者性别 / public String UserSex