面相对象程序设计

news2024/10/7 18:28:36

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

  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该项目数据库的连接:

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux系统学习——指令三

Linux系统学习——指令三 Linux系统学习——指令三chmod — 文件执行权限添加文件执行权限去除文件执行权限 查找文件中特定关键字使用vi编辑文件并查找特定关键字文本文件查找特定关键字1: 使用 grep 命令2: 使用 find 命令3: 使用 awk 命令4: 使用 sed 命令5: 使用 ag 命令&a…

RS232自由转Profinet协议网关模块连接1200PLC与扫码枪通讯及手动清零案例

一、RS232和Profinet这两种通讯接口的特点和应用场景: RS232是一种串行通讯接口标准,常用于连接计算机和外部设备,传输速率较低但稳定可靠。Profinet则是一种工业以太网通讯协议,具有高速、实时性强的特点,适用于工业…

群智优化:探索BP神经网络的最优配置

群智优化:探索BP神经网络的最优配置 一、数据集介绍 鸢尾花数据集最初由Edgar Anderson测量得到,而后在著名的统计学家和生物学家R.A Fisher于1936年发表的文章中被引入到统计和机器学习领域数据集特征: 鸢尾花数据集包含了150个样本&#…

【计算机毕业设计】167校园失物招领微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

适合实习生使用的工作笔记软件

作为一名初入职场的实习生,我每天都面临着海量的信息和工作任务。刚开始时,我常常手忙脚乱,生怕漏掉任何重要细节。对于实习生来说,好的工作笔记软件不仅能帮助我们系统地整理工作信息,还能提高工作效率,确…

数据结构---二叉树前中后序遍历

1. 某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为() A: ABDHECFG B: ABCDEFGH C: HDBEAFCG D: HDEBFGCA 2. 二叉树的先序遍历和中序遍历如下:先序遍历: EFHIGJK; 中序遍历: HFIEJKG. 则二叉…

最新AIGC系统源码-ChatGPT商业版系统源码,自定义ChatGPT指令Promp提示词,AI绘画系统,AI换脸、多模态识图理解文档分析

目录 一、前言 系统文档 二、系统演示 核心AI能力 系统快速体验 三、系统功能模块 3.1 AI全模型支持/插件系统 AI模型提问 文档分析 ​识图理解能力 3.2 GPts应用 3.2.1 GPTs应用 3.2.2 GPTs工作台 3.2.3 自定义创建Promp指令预设应用 3.3 AI专业绘画 3.3.1 文…

Day60 代码随想录打卡|回溯算法篇---组合

题目(leecode T77): 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 方法:本题最直观的解法是使用暴力for循环遍历法,根据k的大小定for循环的嵌套次数&…

Java高级重点知识点-14-Set接口、HashSet底层原理讲解

文章目录 Set接口 (HashSet 、LinkedHashSet)HashSet底层原理(重点理解) Set接口 (HashSet 、LinkedHashSet) 无序不重复 HashSet集合 HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。 public class HashSetDemo {publ…

经典游戏案例:仿植物大战僵尸

学习目标:仿植物大战僵尸核心玩法实现 游戏画面 项目结构目录 部分核心代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using Random UnityEngine.Random;public enum…

数字图像分析(第一部分)

文章目录 第2章 图像数字化数字化采样与量化像素的邻域像素的距离图像采集网络**离散直线性**距离变换**第3章 图像变换可分离和正交图像变换2D DFT变换及其本质**哈达玛变换KL变换(PCA)第4章 形态学二值形态学膨胀和腐蚀开启和闭合击中-击不中变换二值形态学实用算法噪声滤除目…

DWC USB2.0协议学习1--产品概述

本章开始学习记录DWC_otg控制器(新思USB2.0)的特点、功能和应用。 新思USB 2.0 IP主要有两个文档需要参考: 《DesignWare Cores USB 2.0 Hi-Speed On-TheGo (OTG) Data book》 《DesignWare Cores USB 2.0 Hi-Speed On-TheGo (OTG) Progra…

数值分析笔记(三)函数逼近

最佳平方逼近 函数逼近是使用一种简单易算的函数来近似表示一个复杂函数。 该问题可转化为求解线性方程组 G n C F n ​ G_{n}CF_{n}​ Gn​CFn​​ 其中,系数 C ( c 0 , c 1 , ⋯ , c n ) T , F n ( ( f , φ 0 ) , ( f , φ 1 ) , ⋯ , ( f , φ n ) ) T C(c…

私域电商的新篇章:构建深度连接与高效生态

大家好,我是电商领域的探索者,今天我想和大家分享关于私域电商的一些心得与洞见。在这个数字化飞速发展的时代,如何构建与用户之间更为紧密、深入的连接,以及如何通过私域生态来挖掘用户的更大价值,成为了我们关注的焦…

Studio One 6.6.2中文破解版安装图文激活教程

Studio One 6.6.2中文破解版做为新生代音乐工作站,凭借更低的价格和完备的功能,获得了音乐人和直播行业工作者的青睐,尤其是对硬件声卡的适配支持更好,特别适合用来配合线上教学和电商带货。 最近网上出现不少关于StudioOne不能用…

springboot民宿信息管理系统-计算机毕业设计源码08818

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对民宿信息管理系统等问题,对民宿…

Nuxt3 的生命周期和钩子函数(一)

title: Nuxt3 的生命周期和钩子函数(一) date: 2024/6/25 updated: 2024/6/25 author: cmdragon excerpt: 摘要:本文是关于Nuxt3的系列文章之一,主要探讨Nuxt3的生命周期和钩子函数,引导读者深入了解其在前端开发中…

Windows server 由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。

问题现象: 解决办法 临时远程方式1: 打开 mstsc 时带上 /admin 等参数,如下图所示: 使用“mstsc /admin /v:目标ip”来强制登录服务器,但只能是管理员身份。 远程方式2: 通过VM远程登陆系统后,运行输入R…

如何将本地的Django项目部署到阿里云服务器上?

场景:在本地的pycharm上已经写好了一个Django架构的网站,现在要把它放到公网上 一、阿里云服务器 选择云服务器ECS,新用户可以免费使用三个月 购买时选择预装宝塔面板 买好后,进入云服务器控制台 重置实例密码 远程连接至服务…

【ACM出版】第13届亚洲膜计算会议(ACMC2024)暨 2024年机器学习、模式识别与自动化工程国际学术会议(MLPRAE 2024,8月7日-9)

第13届亚洲膜计算会议(ACMC2024)暨2024年机器学习、模式识别与自动化工程国际学术会议(MLPRAE 2024) 将于2024年8月7日-9日在新加坡举行。它致力于为机器学习、模式识别与自动化工程领域的专家和学者之间的学术交流创造一个平台。 会议的理念是让来自世…