基于个人信息记账簿管理系统
- 格式:doc
- 大小:676.00 KB
- 文档页数:34
代码行数653 项目名称个人记账簿管理系统
1.实训目的
面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。
2.实训内容
使用MyEclipse为开发工具,使用Press on为建模工具,使用MySQL为数据库服务器,基于JDBC 技术,分析、设计并实现一个管理信息系统。
3.需求分析
3.1 需求描述
主要功能
登录:输入账号和密码,完成登录操作,进入主界面,显示个人记账簿管理系统中所有的账单基本信息(主键、名称、消费时间、花费总额等)以及可进行的相关操作的选项。
退出:登录后可进行退出操作,结束整个程序。
注册:输入账户、密码和确认密码完成新用户的注册。
按创建时间显示所有的账单:登录成功后在主界面中以表格形式按创建时间升序显示所有账单的基本信息(主键、名称、消费时间、花费总额等)。
添加账单:输入一份账单的各项基本信息(名称、消费时间等),再输入这份账单中的各项花销,完成账单的添加操作,添加成功后以表格形式按创建时间升序显示所有账单的基本信息。
删除账单:根据显示的账单基本信息,输入某个账单的主键,完成账单的删除操作,删除成功后以表格形式按创建时间升序显示剩余账单的基本信息。
修改账单:根据显示的账单基本信息,输入某个账单的主键,显示账单的基本信息和账单中的各项花费,根据提示信息,选择要修改账单基本信息或某项花费或要删除的某项花费,输入相应字段值或要删除的某项花费的主键,完成账单信息的修改,修改成功后显示该账单修改后的详细信息。
查询账单:利用主键查询,获得一份账单的详细信息。
3.2 用例描述
图1系统用例图4.功能设计
4.1 系统层次方框图
个人记账簿管理系统
用
户
注册
系统登
录
系
统
用
户
信
息
管
理
退
出
添
加
修
改
删
除
查
询
图2系统层次方框图4.2 算法设计(活动图或时序图)
1.登录功能
图3登录功能时序图
2.注册功能
图4注册功能时序图
获
取
全
部
用
户
信
息
模
糊
查
询
3.显示所有用户信息功能
图5显示所有用户信息功能时序图4.添加用户信息功能
图6添加用户信息功能时序图5.查询用户信息功能
图7查询用户信息功能时序图5.数据设计
5.1 类图设计
1.系统类图
5.1系统类图
2.数据库访问层
图8数据库访问层类图3.数据封装类
图9数据封装类图4.业务层
图10业务层类图
5.控制层
图11控制层类图
6.视图层
图12视图层类图
图13视图层类图
7.其它
图14其他类图
5.2 数据表设计
login表
序号字段名类型长度备注
1 id int 4 主键
2 account char 20 唯一性、不为空
3 password char 20 不为空user表
序号字段名类型长度备注
1 id int 4 主键
2 name char 50 不为空
3 money double 默认不为空
4 time date 默认不为空
6.运行结果
1.注册
图15登录成功后的显示
2.密码和确认密码不一致
图16添加用户信息界面
3.登录
图17删除用户信息界面4.添加
图18修改用户信息界面5.删除
图19查询到用户信息的界面6.修改
图20修改用户信息界面
7.查询
图21查询到用户信息的界面
8.没有查询到用户信息
图22没有查询到用户信息的界面
9.退出
图23退出系统界面
7.关键代码
(1)数据库访问类(DB.java)
package ut.util;
import java.sql.*;
public class DB {
private Connection con;
private PreparedStatement pre;
private ResultSet rs;
private static DB db;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private DB(){}
public static DB getInstance(){
if(db == null){
db = new DB();
}
return db;
}
private void buildConnection() {
try {
con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "123");
} catch (SQLException e) {
e.printStackTrace();
}
}
public ResultSet executeQueryByParam(String sql,Object... o){
this.buildConnection();
try {
pre = con.prepareStatement(sql);