java毕业设计——基于java+JBuilder+sqlserver的数学题库管理系统设计与实现(毕业论文+程序源码)——题库管理系统

基于java+JBuilder+sqlserver的数学题库管理系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于java+JBuilder+sqlserver的数学题库管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 题库、试卷建设是教学活动的重要组成部分,传统手工编制的试卷经常出现内容雷同、知识点不合理以及笔误、印刷错误等情况。为了实现离散数学题库管理的信息化而开发了离散数学题库管理系统。

  2. 该系统采用C/S 模式,前台采用JAVA,后台采用SQLServer数据库。本文详细论述了系统总体设计思想、数据库设计以及功能模块设计等。应用软件工程中的瀑布开发模型,开发实现了以下功能:题库的管理与维护、自动生成试卷、手工改动生成试卷、生成WORD试卷和答案。

  3. 离散数学题库管理系统能够实现离散数学题库管理的信息化,规范化和试卷生成的自动化,并且在操作上实现简单、方便、快捷。


2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:13044个字35页
包含内容:整套源码+完整毕业论文


3、关键词

离散数学 题库 生成试卷

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

第1章 概 述
1.1 题目的来源及背景
省略

1.2 研究意义
省略

1.3 软件工程瀑布模型介绍
最初发表的软件工程开发过程起源于其他的工程过程。如下图所示,因为该图从一个阶段到另一个阶段逐次下降,这个模型因此以“瀑布模型”命名或软件生命周期模型。
在这里插入图片描述

图1.1 软件生命周期

模型中主要的阶段映射为一些基本的开发活动:
1、 需求分析和定义
通过咨询系统用户建立系统的服务、约束和目标。并对其详细定义从而为系统描述服务。
2、 系统和软件设计
系统设计过程区分硬件和软件系统的需求。硬件设计是指建立一个总体的系统体系结构。软件设计包括识别和描述一些基本的软件系统的抽象及其之间的关系。
3、 实现和单元测试
在这个阶段,软件设计是作为一组程序或程序单元实现的。单元测试就是检验每个单元是否符合其描述。
4、 集成和系统测试
集成单个的程序单元或程序,并对系统整体进行测试以确保其满足需求。在测试之后,软件系统交付给客户使用。
5、 运行和维护
正常情况下(虽然不是必须的),这是一个具有最长生命周期的阶段。系统被安装并且进入实际的使用中。维护包括改正在早期各阶段未被发现的错误,改善系统单元的实现,当新的需求出现时提高系统的服务能力。
原则上,每个阶段的结果是一个或多个经过核准的文件。直到上一个阶段完成,下一阶段才能启动。在实际的过程中,这些阶段经常是重叠和彼此间有信息交换的。在设计阶段,需求中的问题被发现;在编程阶段,设计问题被发现,以此类推。软件过程不是一个简单的线性模型,它包括开发活动的多个反复。

第2章 需求分析
开发软件首先做的是开发过程中最主要的就是系统的需求分析,需求分析同时也是软件生存周期中关键的一步。根据软件工程学中开发软件的要求,对离散数学题库管理系统全部功能和相关的技术进行具体的分析,分析时采用结构化的分析方法,自顶向下、逐层分解问题。
2.1 项目内容及要求
根据此次项目的要求,主要完成对离散数学题库管理系统的设计。
2.1.1 具体完成功能
本系统具体完成的功能如下:
1)题库的管理与维护:新题的录入,修改,删除等功能。
2)生成试卷:包括自动生成与手工改动,要求可以对生成的试卷进行打印和WORD排版,并且对生成的试卷能自动生成其参考答案。
其次还应考虑到试题的实际应用性,如:题目的覆盖率,雷同度,难度系数及近三年内不能重题等问题。

2.1.2 实现目标
该系统具有较好的现实意义,特别是计算机发展迅速的今天,实现了由传统的手工化管理向信息化管理,充分的利用了计算机的强大计算能力。该系统界面美观、操作方便、简捷,对于没有操作经验的人员根据系统的提示也能很快的熟悉操作该系统。该系统具有实用性和通用性。

2.2 可行性分析
省略
2.2.1 经济可行性
省略

2.2.2 技术可行性
省略

2.3 开发工具的论述
本软件为离散数学题库管理系统,是C/S模式的信息管理系统。前台采用JAVA技术, 后台采用SQL Server 数据库
2.3.1 前台开发工具
Java是一个由Sun公司开发而成的新一代编程语言。使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明了“支持Java”,你就可以看到生动的主页。Java正在逐步成为Internet应用的主要开发语言。它彻底改变了应用软件的开发模式,带来了自PC机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。

省略

2.3.2 后台数据库
SQL Server 数据库逐渐成为Windows操作系统平台下进行数据库应用开发中较为理想的选择之一。SQL 数据库管理系统是目前最常用的关系型数据库系统之一,它是基于客户机/服务器模式下的数据库,扮演着后端数据库的角色,它对中等规模的数据库支持较好且具有强大的功能和稳定性及易于维护等优点。它具有真正的客户机/服务器体系结构,能与WINDOWS 操作系统有机的结合,在目前的数据库开发中被广泛的应用。

第3章 系统结构特性设计
本章主要介绍离散数学题库管理软件中后台数据库的结构设计。数据库结构设计是继需求分析和确定开发工具后的重要阶段,是管理型软件开发设计的核心和重要组成部分。数据库结构设计的好坏与否将对应用系统的运行效率以及实现的效果产生很大影响。科学、合理的数据库结构设计可以提高数据访问的速度,有效保持数据的完整性、一致性和共享性,因此数据库结构设计对系统设计来说至关重要。

3.1 数据库概念模型
根据系统的设计要求,设计了E-R图,实体为教师、课程、题库和试卷,关系为试卷抽题表。
在这里插入图片描述

图3.1 教师实体及其属性图
教师实体包含了教师编号、密码、教师姓名、住址、电话、手机、EMAIL、学历、职称和备注等属性。
在这里插入图片描述

图3.2 课程实体及其属性图
课程实体包含了课程编号、课程名、任课教师和备注等属性。
在这里插入图片描述

图3.3题库实体及其属性图
题库实体包含了题号、课程编号、所属章节、试题内容、正确答案、分值、题型、难度系数、录入日期和备注等属性。
在这里插入图片描述

图3.4 试卷实体及其属性图
试卷实体包含了试卷编号、试卷名称、课程编号、考试类型、出题教师号、试卷总分、组卷时间、和备注等属性。
在这里插入图片描述

图3.5 试卷抽题表关系及其属性图
试卷抽题表关系包含了试卷编号、题目编号和备注属性。
在这里插入图片描述

图3.6 总体E-R图

3.2 数据库逻辑设计
在管理系统中,后台数据存储的地位相当重要合理的设计能缩减软件开发的周期和降低开发难度,并提高维护升级的可行性。而建立数据库最重要的一步是定义数据库表,数据是数据库中存储的基本对象,通过设计会以一定的组织结构存储在相关的基本表中。将基本信息分类、统计,根据数据库设计的基本原理,建立基本表构成数据库。在进行数据库的需求分析时,不但要考虑到软件系统当前要实现的功能,更要注重软件的可维护性和扩展性。

首先将离散数学题库管理系统的数据库概念结构转化为SQL Server数据库系统所支持的实际数据模型,即:数据库的逻辑结构。创建离散数学题库管理系统中的各个数据库表。

在这里插入图片描述

表3.1 教师数据库表
教师数据库表:用来记录教师的基本信息。该表的关键字字段是:教师编号。教师编号字段同时也是下面课程数据库表和试卷表的外键。
在这里插入图片描述

表3.2 课程数据库表

课程数据库表:用来记录课程的基本信息,可用于存储多个课程,用于系统的扩展。该表的关键字字段是:课程编号,同时也是下面题库数据库表和试卷数据库表的外键。该表中的任课教师字段是外键,对应教师表的教师编号字段,表示该课程的任课教师。

在这里插入图片描述

表3.3 题库数据库表
题库数据库表:用来记录各门课程所对应的试题,是生成试卷提供试题来源。该表的关键字字段是:题号,用来唯一表示一道题目。该表中的课程编号是外键,对应课程数据库表的课程编号,表示该题目对应的是哪门课程。

在这里插入图片描述

表3.4 试卷数据库表
试卷数据库表:记录了试卷的基本信息,用于生成试卷的标题。该表的主键字段是:试卷编号。该表中的课程编号是外键,对应课程数据库表的课程编号,表示该试卷对应的是哪门课程。

在这里插入图片描述

表3.5 试卷抽题表数据库表
试卷抽题表:用来记录每张试卷对应的试题,是生成WORD文件的数据来源。该表的主键字段是:试卷编号和题目编号。这两个字段同时也是外键,分别对应试卷表的试卷编号字段和题库表中的题号字段。

第4章 系统行为特性设计
4.1 软件结构设计
本系统共分3个大功能模块。如图:
在这里插入图片描述

图4.1 功能模块图

上图即为总体的功能模块图,它清晰的显示了系统的各个模块的分布。教师登陆模块是用来验证用户是否为系统的合法用户,题库的管理与维护模块完成对题目的录入、删除、修改和查询。生成试卷模块完成根据用户输入的生成试卷要求,自动生成试卷,维护已经生成的试卷和生成WORD试卷和参考答案。

4.2功能子模块设计
下面将详细描述每个子模块的详细设计。
4.2.1 教师登录模块
(1) 界面设计
此界面为教师登录界面,在用户登录时检查用户名和密码是否有填写,如果未填写则提示并返回,检查通过之后把数据提交给服务器,打开数据库检查用户填写的信息是否正确,登录名称、密码是否相符合,若符合管理员登录信息则登录成功,进入主界面。此模块用于验证用户的信息,保证了系统内部资料的安全性。
在这里插入图片描述

图4.2 教师登录界面
(2) 模块内主要算法的描述
在这里插入图片描述

图4.2 教师登录模块流程图
(3) 该模块的JAVA类设计
实现该模块的JAVA类为:ui.LoginFrame和app.DBAccess类
ui.LoginFrame类:
该类用于显示教师登陆窗口,并且负责判断用户输入的用户名密码是否正确。
主要方法介绍:
okButton_actionPerformed(ActionEvent e):该方法在用户点击确定按钮时被调用,取得界面上输入的用户名和密码,如果用户名或者密码不正确,则提示用户重新输入。若用户为系统合法用户,则允许用户登陆系统,打开系统主界面。
app.DBAccess类:
该类为底层数据库操作类。实现基本的数据库操作,如插入,删除,修改。
主要方法介绍:
getConnection():用于返回一个JDBC数据库连接(Connection)对象。
executeUpdate(Connection conn, String sql):执行insert、delete和update语句。对数据库表进行插入删除和更新。
executeQuery(Connection dbCon, String querySQL ):根据给定的sql语句,进行查询,返回 DefaultTableModel对象。

4.2.2 题库的管理与维护模块
(1) 界面设计
此界面是题库的维护界面,是对试题的基本信息进行录入,删除和更改。
若要添加试题,先点击添加按钮,然后在上面的试题信息部分填入试题的内容,填写好后,点击保存按钮即可将试题保存到数据库。若要修改试题,在下面的表格中选择要修改的试题,修改上面的试题内容,然后点击保存按钮即可将修改后的试题保存到数据库。若要删除试题,在下面的表格中选择要删除的试题,然后点击删除按钮,如果确认删除,系统将会把指定的试题删除。
在这里插入图片描述

图4.4 题库的维护界面
(2) 模块内主要算法的描述
在这里插入图片描述

图4.5 题库维护模块流程图
(3) 该模块的JAVA类设计
实现该模块的JAVA类为:ui.AddTestDialog类和app.TestLibraryHandler类
ui.AddTestDialog类:
该类负责显示题库维护窗口和响应用户的各种操作。
主要方法介绍:
addjButton2_actionPerformed(ActionEvent e):该方法用于处理添加试题请求。首先将题库记录集(QueryDataSet)移动到最后一行,然后插入一条新记录。
deletejButton2_actionPerformed(ActionEvent e):该方法用于处理删除试题请求。内部实现时首先判断用户是否选中了一条记录,若没有选中则不能删除试题,提示错误消息。然后询问用户是否确认删除,若确认删除则删除选中的试题。
savejButton1_actionPerformed(ActionEvent e):该方法用于处理保存数据请求,当用户修改或者插入了一条数据后,需要点击保存按钮,也就是调用该方法,插入或者修改结果才能插入到数据库中。
app.TestLibraryHandler类:
该类主要用于处理添加试题相关的数据库操作,与界面类一起实现题库的维护和查询功能。
主要方法介绍:
String[] getAllCourseNames():该方法用于返回课程表的所有课程名,这个方法在添加试题和查询试题窗口中被使用。
addCourseNameItems( JComboBox courseNamejdbComboBox1 ):该方法用于给课程名称控件添加课程名称项。在显示添加试题和查询试题窗口时,需要先调用这个方法,将所有的课程名添加到课程名下拉框中。
getCourseIdByName( String courseName ):该方法用于根据课程名取得课程编号,在添加试题到数据库中时被调用。因为用户操作界面上输入的是课程名,而题库数据库表中保存的是课程编号,所以需要调用该方法进行转换。

4.2.3 试题查询模块
(1) 界面设计
此界面是试题的查询界面,该功能允许用户试题的查询条件,进行查询试题操作。该功能可用于手工改动现有试卷模块。
在这里插入图片描述

图4.6 试题查询模块界面图
(2) 模块内主要算法的描述
在这里插入图片描述

图4.7 试题查询模块流程图
(3) 该模块的JAVA类设计
实现该模块的JAVA类为:ui.QueryTestDialog类
ui.QueryTestDialog类
该类用于实现查询已有题目功能,负责显示查询试卷对话框。
主要方法介绍:
okjButton1_actionPerformed(ActionEvent e):该方法在提交查询按钮被点击时被调用。内部实现时,首先取得所有用户输入的查询条件,生成查询用的SQL语句。然后利用JBuilder自带的DbExpress类库中的QueryDataSet类实现用户的查询操作。

4.2.4 自动生成试卷模块
(1) 界面设计
此界面是自动生成试卷界面。教师在上面输入试卷的基本信息,在下面抽取试题选项中设置试题要抽取的章节,题型,与往年试卷雷同度的最大值,平均难度系数的最大值。
其中雷同度的计算方法为:两张试卷相同的题目的数量*2 / 两张试卷总的题目数。平均难度系数的计算方法为:所有试题的难度系数的和 / 试题的总数。
在这里插入图片描述

图4.8 自动生成试卷界面
(2) 模块内主要算法的描述
在这里插入图片描述

图4.9 自动生成试卷算法流程图
该模块为系统的核心业务模块,考虑了三年内不能出现重复的题目,与往年试卷的雷同度和试卷的平均难度。首先,统计今年,去年,和前年的试卷中包含的题目题号,这些题目号将不能用于这次的试题抽取(三年内不能出现重复的题目)。然后根据上步的结果、选中的课程名、设置的题型和章节选项执行查询,先按照章节排序,再按照题型排序,查询出的试题可以用于此次试卷的生成。

然后按照设定的试卷总分进行循环,当抽取试题的总分不大于设定的总分,并且仍有题目可抽取时,根据查询结果的数量,生成一个随机数,抽取一道题目加到已抽取试题列表中,将该试题的分数累加到抽取试题的总分上,将该试题从待抽取列表中去掉。这样循环下去,当退出循环的时候,已抽取试题列表中已经包含了一些题目,满足了试卷总分设定要求。
然后按照设定的最大雷同度进行循环,首先将已抽取试题列表中的试题题号与往年试卷中的题号相比较,计算出雷同度,找出往年试卷中雷同度最高的试卷。判断雷同度是否超过设定值,若超过设定值,并且仍有试题可抽取,则去掉一道与雷同度最高试卷中的雷同试题,另外抽取一道与去掉的题目题型相同并且在雷同度最高试卷中没有的题目。这样循环下去,当退出循环的时候,已抽取试题列表中的题目即会满足试卷最大雷同度设定要求,或者由于题库中试题有限,待抽取试题列表已经没有试题了。
然后按照设定的最大平均难度系数进行循环,首先计算已生成试卷的平均难度,若难度超过设定值,并且仍有试题可抽取,则去掉一道难度超过平均值的题目,抽取另一道同类型题目。这样循环下去,当退出循环的时候,已抽取试题列表中的题目即会满足试卷最大平均难度系数设定要求,或者由于题库中试题有限,待抽取试题列表已经没有试题了。
在这里插入图片描述

图4.10 找出与往年雷同度最高的试卷的算法流程图
(3) 该模块的JAVA类设计
省略

4.2.5 手工改动现有试卷模块
(1) 界面设计
此界面是手工改动现有试卷界面,在该界面中可以对试卷的基本信息进行修改,同时也可以打开试题查询界面,将试题手动添加到选中的试卷中。
在这里插入图片描述

图4.11 手工改动现有试卷界面
(2)模块内主要算法的描述
在这里插入图片描述

图4.12 手工改动现有试卷流程图
(3) 该模块的JAVA类设计
省略

第5章 系统测试
5.1 系统测试方案
省略

5.2 测试结果分析与调试
省略

本系统已基本上实现来题目要求的各项功能。本系统的界面友好,可以很快的掌握操作方法。
系统的优点:
(1) 界面友好,操作简单。接触计算机较少的操作人员也能根据菜单项提示进行操作。
(2) 信息管理详细,提供了强大查询功能。
(3) 业务流程合理安排方便用户使用。
系统基本上达到了设计要求,基本功能已经实现,但系统仍存在不足之处,某些细节和内容上有待改进和加强。

结 论
省略

参考文献
[1] Satyaraj Pantham,黄晓鸣,武清译. 深入学习:JFC Swing—Java基础类组件[M]. 北京:电子工业出版社,2002
[2] 萨师煊,王珊 . 数据库系统概论(第三版)[M]. 北京:高等教育出版社,2001
[3] 张洪斌. Java程序设计百事通[M]. 北京:清华大学出版社,2001
[4] 飞思科技产品研发中心. 精通JBuilder 9 [M]. 北京:电子工业出版社,2003
[5] Michael Reilly Michelle Poolet 卢庆龄 王芹等译. SQLServer2000设计与T-SQL编程[M]. 北京:清华大学出版社, 2001
[6] Borland公司. JBuilder 实用技术手册[M]. 北京:电子工业出版社, 2004
[7] 廖卫东, 陈梅 . JAVA程序设计[M]. 北京:机械工业出版社,1996

致 谢
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于java+JBuilder+sqlserver的数学题库管理系统设计与实现(源码+文档)_java_JBuilder_CS架构_数学题库管理系统.zip
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
非常感谢您的问题。以下是一个简单的Java代码示例,可以实现您的要求。您可以根据自己的需求进行修改和优化。 ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ReplaceText extends JFrame implements ActionListener { private JTextArea textArea; private JTextField findField, replaceField; private JButton replaceButton; public ReplaceText() { // 创建UI组件 textArea = new JTextArea(); findField = new JTextField(20); replaceField = new JTextField(20); replaceButton = new JButton("替换"); replaceButton.addActionListener(this); // 布局UI组件 JPanel panel = new JPanel(); panel.setLayout(new GridLayout(2, 2)); panel.add(new JLabel("查找:")); panel.add(findField); panel.add(new JLabel("替换为:")); panel.add(replaceField); // 添加UI组件到窗口 add(panel, BorderLayout.NORTH); add(new JScrollPane(textArea), BorderLayout.CENTER); add(replaceButton, BorderLayout.SOUTH); // 设置窗口属性 setTitle("替换文本"); setSize(500, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == replaceButton) { String findText = findField.getText(); String replaceText = replaceField.getText(); String text = textArea.getText(); text = text.replaceAll(findText, replaceText); textArea.setText(text); } } public static void main(String[] args) { new ReplaceText(); } } ``` 在这个示例中,我们创建了一个包含文本区域、查找文本框、替换文本框和替换按钮的窗口。当用户单击“替换”按钮时,程序会获取查找文本和替换文本,然后在文本区域中查找并替换所有匹配的文本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值