/managesystem

通讯录系统源码

Primary LanguageJava

课程设计报告(个人通讯录系统)

作者: 叶仁平

  • 课程设计要求
题目:
建立个通讯录,要求通讯录中必须含有编号、姓名,性别、电话、地址、Email等等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写主程序测试。 使用文件保存数据(保存的数据可以使用对象流写入文件)。
  • 界面原型示例如下:

image-20191217115800029

  • 目标:理解面向对象,以及项目架构设计、MVC**
三层架构:即表现层、业务层、持久层。

① 持久层:
    	采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层的目的就是,完成对象数据和关系数据的转换。

② 业务层:采用事务脚本模式。将个业务中所有的操作封装成个方法,同时保证方法中所有的数据库更新操作,即保证同时成功或同时失败。避免部分成功部分失败引起的数据混乱操作。

③ 表现层:采用MVC模式。

               M称为模型,也就是实体类。用于数据的封装和数据的传输。

               V为视图,也就是GUI组件,用于数据的展示。

               C为控制,也就是事件,用于流程的控制

个人通讯录系统:

1、技术需求:

  • swing+对象流+mvc设计模式

2、 软件需求:

  • 开发工具:Eclipse mars 2 或IntellJ IDEA 2017

3、硬件需求:

  • 一台电脑

4、 功能需求:

1.  通过GUI界面显示
2. 使用对象流将数据存储到文件
3. 添加成员到通讯录
4. 通过编号删除成员
5. 通过姓名删除
6. 通过姓名查询成员
7. 显示所有成员

5、 数据库设计(模拟)

  • 模拟数据库信息如下(==实际不存在==)

member :

字段名 类型 约束
mId int 主键、非空、自增
name vachar(30) 非空
sex char check约束 为男或者女
phoneCode char
addr varchar(60)
email varchar(50)
  • 对应实体类(Member )信息
属性名 属性类型 备注
mId int 编号
name String 姓名
sex char 性别
phoneCode String 电话
addr String 地址
email String Email

包名:cn.sxt.*

变量名和方法名:驼峰原则,见名知意

6、 代码规范:

  • 命名规范:
    • **包名:*cn.yerenping.
    • **类名:**首字母大写,见名知意
    • **变量名和方法名:**驼峰原则,见名知意
  • 注释规范:
    • 有方法功能注释
    • 方法体核心位置必须有说明注释

7、 功能设计:

7.1 666通讯录系统功能分析

image-20191217121303550

7.2 功能细节点:

1. 成员编号、和姓名不能为空
2、成员编号不能重复
3、成员姓名不能重复
4、删除可以通过编号和姓名删除
	当只填写编号的时候,通过编号删除
	当只填写姓名的时候,通过姓名删除
	当姓名和编号都填写的时候,通过过编号删除
5、修改成员信息:
	通过编号修改
	当姓名与通讯录中重复的时候,提示(抱歉,该成员不存在或者名字重复)
6、 当添加、修改、删除成功后,表格中数据自动刷新

8、 项目结构分析:

  • 项目包结构如下:

image-20191217122340874

  • 架构分析(三层)

    • **持久层:**通过实体对象写入到文件,从文件中读取出实体对象:

      • 有关类:MemberDao接口及其实现类、ObjectRWUtil、Member
    • **业务层:**将对数据操作封装成一个一个方法,对其业务逻辑进行处理

      • 有关类:MemberService接口及其实现类
    • **表现层:**采用MVC模式展现。

      • M: 及Member实体类,对数据库的封装,便于数据的传输
      • **V:**就是SWING中的一些GUI组件,用户数据的展示
      • **C:**在SWING中的控制器也就是组件的一些监听,触发监听器的即触发功能