面相对象程序设计

面相对象程序设计包含内容如下

  1. 局域网聊天程序设
  2. 网页浏览器设计
  3. 电子日历记事本的设计

在这里插入图片描述

以其中的一个的报告进行举例
1需求与总体设计 1
1.1需求分析 1
1.2总体设计方案 1
1.2.1系统功能分析以及功能表 1
1.3系统类图的关系以及表之间的联系 2
2详细设计 3
2.1 ManageView类的说明 3
2.2ManageView类的说明 3
2.3LoginManage类的说明 4
2.4ClassManage类的说明 5
2.5Utils类的说明 5
3编码实现 6
3.1MainView类的说明 6
3.2ClassManage类图: 8
3.2.1班级数据库的添加 8
3.2.2班级数据的添加 8
3.2.3班级数据的删除 9
3.2.6班级人员全部数据的显示 10
3.3StuManage类图: 11
3.3.1学生数据的删除: 11
3.3.3学生数据的更新: 11
3.4Utils类图: 12
3.5ManageView类图: 14
3.5.1该项目的功能按钮: 14
3.5.2每个功能的类的使用的说明: 14
3.6LoginManage类图: 15
3.6.1该页面的功能按钮 15
3.6.2然后登录数据传输则通过以下该方法进行判断 16
3.7subRank类图: 27
4系统测试 19
4.1功能测试: 19
4.2测试结果 19

1.1需求分析
设计一种面向对象的系统信息管理,其要求则如下
(1) 设计系统管理:重新登录、退出系统,能够正常进行信息系统的登录,若没有登录的情况下可以进行账号的注册,然后进行数据的存贮
(2) 设计用户管理:密码修改、添加/删除用户,对使用用户来进行更改.
(3) 定义控制类:包括定义添加记录、信息查询、信息修改、信息删除,同时进行学生用户分数和学科等信息的统计
(4) 设计持久类:将持久类的连接包装在一个相关类中,并与逻辑存储相连,实现数据在内存的通讯。
(5) 设计边界类:在这个界面中主要的作用就是用于验证用户名和密码,采用方法是为确定按钮添加监听事件,将信息与持久类比较
(6) 画出系统的功能图、总体结构图、详细类图结构和提交源代码
(7) 可以对于学生用户的信息来进行分数的添加,删除,更改和查看
(8) 对于学生的某一门学科来进行查看成绩的排名,从高到低进程查看
1.2.1系统功能分析以及功能表
经过日常生活所知,我们将该系统大体分为两个部分,当用户登录之后会有以下两个部分分别是“学生信息管理”和“学科成绩管理”其功能的主要如下
(1) 学生信息管理:
该模块的主要的作用是用来对学生信息的输入,我们能够对于学生的个人信息进行增加,删除,修改,查询和全部的输出等功能
(2) 学科成绩管理:
只是输入个人信息的功能是不够的,于是我们来进行学科成绩查询,这这个功能模块中我们能够进行成绩的添加,删除,修改,以及成绩的排名

图1-1系统功能模块
在这里插入图片描述
2.1 ManageView类的说明
首先ManageView类是我们这个系统的主页面,所以可以对其具有代表性的讲述其主要的功能还怎样通过Manage去调用其他所有的功能。
类名 MainView Public
接口 addActionListener Public
方法
register.addActionListener()

confirm.addActionListener()
Public
表2-1MainView类的处理
2.1.1-成员变量
Welcome // 欢迎的页面
Username // 用户名
Usernametext // 获取用户名内容
Passwordtext //获取密码
2.1.2-使用的方法
register.addActionListener() //来进行监听是否进行注册
confirm.addActionListener()//点击登录,方法中进行判断
2.2ManageView类的说明
这个类的作用是进入那个登录成功的页面其中包含了很多功能,不仅是由学生用户的增删改查还有教室用户之间的成绩的添加,下表式对其说明
类名 ManageView Public
接口 addActionListener Public
方法
register.addActionListener()

confirm.addActionListener()

delete.addActionListener()

update.addActionListener()

query.addActionListener()

queryall.addActionListener()

insertclass.addActionListener()

Public

表2-2ManageView类的处理
2.2.1-成员变量
Insert // 添加学生信息
delete // 删除学生信息
update // 信息修改
queryall //进行查询
insertclass // 添加班级
subjectrank //学科信息排名
2.2.2-使用的方法
insert.addActionListener() //添加数据
confirm.addActionListener()//点击确认
delete.addActionListener() //学生成绩的删除
update.addActionListener()//进行修改数据
query.addActionListener() //进行查询学生数据
insertclass.addActionListener()//添加班级
2.3LoginManage类的说明
我在设置LoginManage的定义中其中他主要的作用是起到了登录用户的时候数据的验证,将页面获取的值传入到数据库中然后使用SQL语句去判断是否存在数据库还有就是实现了数据库的增删改查功能,功能如下
类名 LoginManagew Public
方法
addLogin()

deleteLogin()

Loginquery()

UpdateLogin()

CheckLogin()
Public
表2-3LoginManage类的处理
2.3.1-使用的方法
addLogin() //添加用户
deleteLogin()//删除用户
Loginquery()//用户查询
UpdateLogin()//用户信息进行更改
CheckLogin()//验证登录
2.4ClassManage类的说明
由于我们使用的数据库的数据的处理,所以我们也要将一些数据存到数据库,那么班级的数据库管理就显得很重要,我们在班级数据库中实现了一些用户的特定化管理如表2-4所示

类名 ClassManage Public
方法
InsertClass()

updateclass()

deleteclass()

subRank()

queryall()
Public
表2-4ClassManage类的处理
2.4.1-使用的方法
InsertClass() //添加班级
updateclass() //修改班级
deleteclass() //删除班级
subRank() //学科排名
queryall() //查询所有数据
2.5Utils类的说明
这个是连接数据库操作,在此感觉有必要说明一下util的功能
类名 ClassManage Public
方法
getConnect()

checkLogin()
Public
表2-5Utils类的处理
2.5.1-使用的方法
getConnect() //连接数据库
checkLogin() //用户的登录

3编码实现

3.1MainView类的说明
在我们的MainView类中我们实现的则是一些接口的调用,也就是我们在这里相当于一个入口,同时进入该页面之后我们会有一些操作,通过这些操作,我们实现一些事件的监听然后进入不同的功能和进行数据的处理,则代码如下:
3.1.1关于MainView所需要的资源文件中
package view;
import service.StuManage; //启动学生管理的服务
import service.LoginManage; //用户登录功能
import utils.Utils; //连接数据库
import javax.swing.;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;//使用数据监听,进行交互操作
import java.util.HashMap;
import java.util.Map;
3.1.2进入首页面显示:
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();
JLabel welcome=new JLabel(“欢迎来到学生信息管理系统”);
JLabel username=new JLabel(“账号:”);
JLabel password=new JLabel(“密码:”);
JTextField usernametext=new JTextField(14);
JPasswordField passwordField=new JPasswordField(14);
JButton confirm=new JButton(“确认”);
JButton exit=new JButton(“退出”);
JButton register=new JButton(“注册”);
public MainView() {
this.setTitle(“学生信息管理系统”);
this.setSize(800, 500);
this.setLocation(400,400); //显示坐标
this.setLayout(new GridLayout(4, 2,10,10));
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
p4.add(welcome);
p1.add(username);
p1.add(usernametext);
p2.add(password);
p2.add(passwordField);
3.3StuManage类图:
关于学生数据的设定则是使用数据库来进行存储学生数据的添加删除和修改
3.3.1学生数据的删除:
连接数据库然后输入然后又前方框的数据的获取在此来执行sql语句
public class StuManage {
public static void insertStudata(String name,String gender,String id) throws Exception{
Connection connection=Utils.getConnection();
// System.out.println(“1222”);
String sql=“insert into stu(name,gender,id) values(?,?,?)”; //使用占位符
PreparedStatement preparedStatement= connection.prepareStatement(sql);
preparedStatement.setString(1,name);//对应前边的占位符进行sql数据的使用
preparedStatement.setString(2,gender);
preparedStatement.setString(3,id);
int i=preparedStatement.executeUpdate();
Utils.Close(preparedStatement,connection);
}
3.3.2学生数据的删除:
public static void deleteStudata(String id)throws Exception{
Connection connection=Utils.getConnection();
String sql=“delete from stu where id=?”;
PreparedStatement preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1,id);
int i=preparedStatement.executeUpdate();
Utils.Close(preparedStatement,connection);
}
3.3.3学生数据的更新:
public static void updateStudata(String name,String gender,String id,String oldid)throws Exception{
Connection connection=Utils.getConnection();
// String sql=“update stu set name=?,gender=?,id=? where id=?”;
String sql=“update stu set name=?,gender=?,id=? where id=?”;
PreparedStatement preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1,name);
preparedStatement.setString(2,gender);
preparedStatement.setString(3,id);
preparedStatement.setString(4,oldid);
int i=preparedStatement.executeUpdate();
Utils.Close(preparedStatement,connection);
}
}
3.4Utils类图:
Utils类图中主要是是进行数据库的连接还有就是来进行我数据库登录的验证
3.4.1该项目数据库的连接:
public class Utils {
public static final String DRIVER = “com.mysql.cj.jdbc.Driver”;
public static final String url = “jdbc:mysql://localhost:3306/myjavaclassdesign?characterEncoding=utf8”; //连接到本都的数据库名
public static final String username = “root”;
public static final String password = “123456”; //输入数据库的密码
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void Close(Statement statement, Connection connection) { //关闭数据库
Close(null, statement, connection);
}
}
3.4.2该项目数据库的连接:

展示图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果对报告或者是代码感兴趣请后台私信我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/743563.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python操作excel

1. 引言 在数据处理和自动化办公领域,Python以其简洁的语法和强大的库,成为许多数据科学家和开发者的首选语言。本文将带你一步步学习如何使用Python操作Excel。 2. 环境准备 在开始之前,请确保你的环境中安装了Python和以下库&#xff1a…

数据结构-----【链表:基础】

链表基础 1、链表的理论基础 1)基础: 链表:通过指针串联在一起的线性结构,每个节点由两部分组成,一个是数据域,一个是指针域(存放指向下一个节点的指针),最后一个指针…

2024年必备的15个免费 SVG 设计资源

在动态设计领域,SVG(可缩放矢量图形)已成为设计师打造响应迅速、清晰且适应性强的视觉效果的必备工具。 这些设计非常适合幻灯片 PowerPoint 演示文稿、应用程序设计、网站设计、原型设计、社交媒体帖子等。 在这篇文章中,我们将…

LeetCode刷题之HOT100之最小栈

听歌,做题! 1、题目描述 2、逻辑分析 拿到题目一脸懵,有点看不懂啥意思,看了题解才知道啥意思。要实现在常数时间内检索到最小元素的栈,需要使用一个辅助栈来每次存入最小值。 使用Deque作为栈的实现是因为它提供了…

最热门的智能猫砂盆好不好用?这期统统告诉你!

身为上班族的我们,常常被工作和出差填满日程。忘记给猫咪铲屎也不是一次两次了。但我们必须意识到,不及时清理猫砂盆不仅会让猫咪感到不适,还可能引发泌尿系统感染、皮肤疾病等健康问题。为了解决这个问题,越来越多的铲屎官开始将…

Unity数据持久化3——Json

概述 基础知识 Json文件格式 Json基本语法 练习 可以搜索:Json在线,复制代码进去解析是否写错了。 Excel转Json C#读取存储Json文件 JsonUtility using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine;[Sy…

使用Birdeye访问Sui上加密市场数据

是一个链上加密交易数据聚合器,于2024年4月开始整合Sui数据。 个人DeFi用户可以在Birdeye的首页找到丰富的数据,包括关于主流区块链上的tokens、交易和交易者钱包的详细信息。 Birdeye提供API和WebSockets数据服务,涵盖token价格和其他DeFi…

【jupyter notebook】解决打不开以及安装扩展插件的问题

文章目录 问题描述问题 1解决问题 2解决 问题描述 问题 1 在自定义的虚拟环境下,安装 jupyter notebook 6.4.12 版本时,报以下错误: 解决 查了一些 解决方法,执行以下命令即可解决: conda install traitlets5.9.0 …

PS系统教程27

Photoshop与Camera Raw Camera本身是作为插件存在的,处理对象Raw格式(高清格式的图片标准) JPG是压缩格式 Camera是源数据包,无损高清数据包 通道 通道只有黑白灰三种颜色,图层类似于前台,通道就是后台…

代码随想录算法训练营第七十天 | 108.冗余连接、109.冗余连接||

108.冗余连接 文字讲解:108. 冗余连接 | 代码随想录 解题思路 节点A 和节点 B 不在同一个集合,那么就可以将两个 节点连在一起 已经判断 节点A 和 节点B 在在同一个集合(同一个根),如果将 节点A 和 节点B 连在一起就…

LabVIEW与PLC通讯方式及比较

LabVIEW与PLC之间的通讯方式多样,包括使用MODBUS协议、OPC(OLE for Process Control)、Ethernet/IP以及串口通讯等。这些通讯方式各有特点,选择合适的通讯方式可以提高系统的效率和稳定性。以下将详细介绍每种通讯方式的特点、优点…

Typora自动保存和找回未保存文件

在用typora做记录的时候没有手动保存,然后电脑崩了,还好有找回未保存文件功能,在这里存一下。 找到未保存的文件版本后将其内容复制到新文件即可。

【AI落地应用实战】如何高效检索与阅读论文——302.AI学术论文工具评测

一、引言 作为一名学术领域的探索者,我们都知道,检索和阅读论文是我们获取知识、启发思考、验证假设的基石,也是日常学习中必不可少的基本功之一。然而在浩瀚的学术海洋中,如何快速、准确地找到我们需要的论文,就像是…

Rust编写测试及控制执行

编写测试及控制执行 在 Rust 中,测试是通过函数的方式实现的,它可以用于验证被测试代码的正确性。测试函数往往依次执行以下三种行为: 设置所需的数据或状态运行想要测试的代码判断( assert )返回的结果是否符合预期 让我们来看看该如何使…

这几个PR小技巧你Get到了吗?

学习是永无止境的,需要不间断地学习,获取新知识。今天带来了5个PR小技巧,可以先收藏起来Adobe Premiere Pro 2024的获取查看Baidu Cloud 1、双倍稳定画面更舒适 一般来说大型电视剧、电影使用的拍摄设备都是非常高端的,不像我们…

Chrome插件:​Vue.js Devtools 高效地开发和调试

在现代前端开发中,Vue.js因其灵活性和性能优势,受到越来越多开发者的青睐。然而,随着项目规模的扩大,调试和优化变得愈发复杂。幸运的是,Vue.js Devtools的出现,为开发者提供了一套强大的工具集&#xff0c…

Unity 弧形图片位置和背景裁剪

目录 关键说明 Unity 设置如下 代码如下 生成和部分数值生成 角度转向量 计算背景范围 关键说明 效果图如下 来自红警ol游戏内的截图 思路:确定中心点为圆的中心点 然后 计算每个的弧度和距离 Unity 设置如下 没什么可以说的主要是背景图设置 代码如下 …

【Deep Learning】Self-Supervised Learning:自监督学习

自监督学习 本文基于清华大学《深度学习》第12节《Beyond Supervised Learning》的内容撰写,既是课堂笔记,亦是作者的一些理解。 在深度学习领域,传统的监督学习(Supervised Learning)的形式是给你输入 x x x和标签 y y y,你需要训…

Vue3 国际化i18n

国际化i18n方案 1. 什么是i18n2. i18n安装、配置及使用2.1 安装2.2 配置2.3 挂载到实例2.4 组件中使用2.5 语言切换 1. 什么是i18n i18n 是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无…

数据库系统体系结构-DBMS的三级模式结构、DBMS的工作方式、模式定义语言、二级映射

一、体系结构的概念 1、大多数DBMS遵循三级模式结构 (1)外模式 (2)概念模式 (3)内模式 2、DBMS的体系结构描述的应该是系统的组成结构及其联系以及系统结构的设计和变化的原则等 3、1978年美国国家标…