ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:398.88KB ,
资源ID:19073733      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19073733.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(个人成绩单管理Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

个人成绩单管理Word格式.docx

1、 控制层:访问流程控制 业务层:完成具体功能的实现 数据库访问层:完成对数据库访问操作的封装具体结构如下图所示:4.2 算法设计(活动图或时序图)4.2.1.登录功能在主界面(MainView)输入账号和密码,封装成Login对象后发后给业务层(LoginService),在业务层中组合成执行登录操作的SQL语句,再将其传递给数据库访问类(DB),由其完成数据库的查询操作。依据查询结果,如果成功则创建控制类(Controller)对象,显示欢迎信息和对用户信息进行维护的选项;如果失败,则显示提示信息并允许重新输入账号和密码。图4.1 登录功能时序图图4.2 登录功能活动图4.2.2.注册功能在

2、主界面输入数字1,表示进行注册操作。依次输入账户、密码和确认密码,当密码和确认密码不一致时,需要重新输入密码和确认密码。之后,账户和密码封装至Login对象中,传递给业务层(LoginService),由业务层组合成添加SQL语句,发送至数据库访问类(DB),完成添加操作。如果添加成功,则返回主界面,输入新注册的账户和密码进行登录;如果添加失败,则重新进行输入。图4.3 注册功能时序图图4.4注册功能活动图4.2.3.显示所有成绩单信息功能登录成功及完成对用户信息增、删、改操作后,均需要进行所有用户信息的显示,由控制类(Controller)调用视图层(MainView)中的方法,在方法中再利

3、用业务层(UserService)完成对数据库访问类(DB)的访问,获取t_user表的所有记录。图4.5显示所有成绩单信息时序图图4.6显示所有成绩单信息活动图4.2.4.添加成绩单功能在控制类(Controller)输出的选择信息的提示下(1表示执行添加操作),利用简单工厂模式创建视图层(AddView)对象,之后回调接口方法,完成对业务层(UserService)中注册方法的调用,在该方法中向数据库访问类(DB)发送添加SQL语句。如果添加成功,则显示所有用户信息(参考显示所有用户信息功能的实现);如果添加失败,则提示重新输入。图4.7添加成绩单时序图图4.8用户信息添加活动图4.2.5

4、.查询成绩单信息功能在控制类(Controller)输出的选择信息的提示下(4表示执行添加操作),利用简单工厂模式创建视图层(QueryView)对象,之后回调接口方法,在方法中输入要查询的用户名,再对业务层(UserService)中查询方法执行调用,在该方法中向数据库访问类(DB)发送模糊查询SQL语句。如果查询成功,则显示查询到的用户信息(参考显示所有用户信息功能的实现);如果查询失败,则提示重新输入。图4.9 查询用户信息时序图图4.10查询用户信息活动图5. 数据设计DB类用于封装JDBC的操作,完成对数据库的直接访问,采用单态模式创建对象,具体内容如下所示:图5.1 数据库访问层类

5、图5.1 类图设计根据分析,系统由15个类构成,分别为:DB类 Dao组件:UserDAO类、StudentDAO类 数据封装类:Login类、Student类LoginService类、StudentService类StudentController类AddView类、DeleteView类、ModifyView类、QueryView类、MainView类、Operation类 其它:Test类系统中各类之间关系如下图5.2 数据表设计根据算法设计中Login类图和Student类图可知,系统需要两张表user和student,其中,user表用于存储登录信息,student表用于存储用户基

6、本信息,两张表之间没有关联关系,具体结构如下所示:表5.2user表序号字段名类型长度备注1idint4主键2usernamechar20唯一性、不为空3password不为空表5.3 student表namechinesedouble 不为空math 205english6avger7createtimedata6.运行结果6.1.注册 程序运行后,首先显示系统的登录界面,在其中可输入账号和密码进行登录操作,或输入“1”进行账户注册。注册成功后需要重新输入账号和密码进行登录。图6.1 注册界面如果输入的密码和确认密码不一致,则需要重新输入。图6.2 密码和确认密码不一致6.2.登录用户可在系

7、统首界面直接输入账号和密码进行登录,或在注册成功后再进行登录。登录成功后显示所有成绩单信息和系统主控制界面。图6.3 登录成功后的显示6.3.添加输入“1”,选择添加用户信息操作。输入“0”表示返回上一级菜单。依次输入用户的姓名、性别和生日,完成添加。添加成功后,显示成功的提示信息,并显示所有用户信息和系统主控制界面。如果添加失败,则显示失败的提示信息,并提示重新输入。图6.4 添加成绩单界面6.4.删除输入“2”,选择删除成绩单操作。如果输入“0”表示返回上一级菜单。输入要删除的用户的id(主键)值,完成删除。删除成功后,显示成功的提示信息,并显示所有成绩单信息和系统主控制界面。如果删除失败

8、,则显示删除失败的提示信息,并提示重新输入。图6.5 删除成绩单界面6.5.修改输入“3”,选择修改成绩单操作。输入要修改的用户的id(主键)值,显示该用户的信息。再依次输入要修改的姓名、语文成绩、数学成绩、英语成绩和创建日期,执行修改操作。修改成功后,显示成功的提示信息,并显示所有成绩单信息和系统主控制界面。如果修改失败,则显示删除失败的提示信息,并提示重新输入。图6.6 修改成绩单界面6.6.查询输入“4”,选择查询成绩单操作。输入要查询的用户名,显示以改名称作为关键字的所有成绩单的信息,之后显示所有成绩单信息和系统主控制界面。图6.7 查询成绩单界面如果没有查询到相应信息,则显示没有数据

9、的提示,并可进行重新输入。图6.8 没有查询到成绩单的界面6.6.退出输入“5”,表示退出系统,结束整个程序。图6.9 退出系统界面7.关键代码7.1数据库访问类(DB.java)package ccut.beans.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/* * 工具bean 连接数据

10、库 驱动串 数据库的地址 数据库的登录名、密码 更新、查询的实现 * */public class DB private Connection conn; private PreparedStatement prst; 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 getConnection

11、() if (db = null) db = new DB(); return db; private void buildConnection() conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/demo, root catch (SQLException e) public ResultSet executeQueryByParam(String sql, Object. o) this.buildConnection(); prst = conn.prepareStatement(sql); for (int i

12、 = 0; i o.length; i+) prst.setObject(i + 1, oi); rs = prst.executeQuery(); return rs; public ResultSet executeQueryNoParam(String sql) public int executeUpdate(String sql, Object. o) int count = prst.executeUpdate(); return count; return 0; public static void close(Connection conn,PreparedStatement

13、prst,ResultSet rs) throws SQLException if(rs != null) try rs.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); if(prst ! prst.close(); if(conn ! conn.close();7.2数据封装类1. User.javapackage ccut.beans.po;public class User private int id; private String username, pass

14、word; public int getId() return id; public void setId(int id) this.id = id; public String getUsername() return username; public void setUsername(String username) this.username = username; public String getPassword() return password;public void setPassword(String password) this.password = password; p

15、ublic User(int id, String username, String password) super(); public User() / TODO Auto-generated constructor stub Override public String toString() return User id= + id + , username= + username + , password= + password + ;2. Student.javaimport java.util.Date;public class Student private Integer id;

16、/ id private String name;/ 学生姓名 private Double chinese;/ 语文成绩 private Double math;/ 数学成绩 private Double english;/ 英语成绩 private Double avger;/ 平均成绩 private Date createtime;/ 创建时间 public Integer getId() public void setId(Integer id) public String getName() return name; public void setName(String name)

17、 this.name = name; public Double getChinese() return chinese; public void setChinese(Double chinese) this.chinese = chinese; public Double getMath() return math; public void setMath(Double math) this.math = math; public Double getEnglish() return english; public void setEnglish(Double english) this.

18、english = english; public Double getAvger() return avger; public void setAvger(Double avger) this.avger = (chinese + math + english) / 3; public Date getCreatetime() return createtime; public void setCreatetime(Date createtime) this.createtime = createtime; public Student(Integer id, String name, Do

19、uble chinese, Double math, Double english, Double avger, Date createtime) this.avger = avger; public Student() Student id=, name= + name + , chinese= + chinese + , math= + math + , english= + english + , avger= + avger + , createtime= + createtime + 7.3业务层1、LoginService.javapackage ccut.beans.servic

20、es;import ccut.beans.db.DB;import ccut.beans.po.Student;import ccut.beans.po.User;public class LoginService private DB db; private static LoginService service; private LoginService() db = DB.getConnection(); public static LoginService getConnection() if (service = null) service = new LoginService();

21、 return service; /* * 登录 * param lo * return * throws Exception public boolean login(User lo) throws Exception String sql = select * from user where username = ? and password = ? ResultSet rs = db.executeQueryByParam(sql, lo.getUsername(),lo.getPassword(); try if (rs.next() return true; catch (SQLException e) e.printStackTrace(); finally DB.close(conn, prst, rs);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1