首页 > 编程知识 正文

数据库系统概论网课(数据库原理与应用课程设计报告)

时间:2023-05-06 19:22:10 阅读:75090 作者:3713

二话不说,先怼源码:

gitHub源地址

主题:教育管理系统专业:计算机科学与技术

作者:马志成

完成时间: 2019年1月3日

一、实验目的数据库系统课程设计是为配合数据库原理与应用开发而设置的,集中实践计算机科学与技术、网络工程、信息安全、物联网工程、软件工程等专业的教学环节数据库课程旨在增进对关系数据库理论知识的了解,使用具体的DBMS了解实际的数据库管理系统及其操作技术,并与VB、c、Java、Delphi、 其目的是通过熟练使用PowerBuilder等数据库前端开发工具,进一步提高学生运用数据库技术解决实际问题的能力。

二.实验平台数据库: Mysql

页面和朱文: java (,开发工具eclipse。

3 .实验内容目前市场上流行的数据库管理系统有:大企业Oracle、中小企业SQL SERCER、开源Mysql。 在本课程中,考虑到数据库管理系统的易用性和实验的实际情况,我们设计了使用开源Mysql。 的数据库操作语言为java。 数据库操作将SQL语言嵌入java语句中,完成数据库各项的添加、删除、修改等操作。 此外,用户交互接口也使用java实现。 Java装载MySQL的驱动程序,实现利用Java操作数据库。 在两周内完成数据库的每个原型设计和数据库的模型设计与实现。 同时完成前端接口的创建、数据库与java的连接、数据库安全的测试、java操作数据库的测试和改进。 数据库中数据的基本添加/删除/更改功能完成后,使用额外的时间完成其他操作,如模糊搜索。 您可以使用任何工具创建此次课程设计的前端界面。 可以使用Android的AS,也可以使用eclipse的windoubuilder插件等各种工具。 设计的界面采用菜单和对话框形式,根据自己选择的课程设计主题进行系统分析,设计概念模型,实现最后的运营和维护。

四.在实验中,典型的桌面数据库APP应用程序开发是典型的C/S计算模式,即使用数据库前端开发工具创建客户端程序,通过客户端程序返回考虑到学生们学习了Java,这次选择了Java作为前台数据库开发工具。 (也可以选择VB、Delphi、C/C等)。 两周的课程设计要求学生们开发小数据库管理信息系统。 设计的小型管理信息系统包括查询、插入、删除、修改、统计、用户权限管理等基本功能,界面采用菜单或对话框形式。 根据学生们选择的设计课题,进行系统需求分析,设计系统的概念模型、逻辑模型,用SQL语言实现数据库的建立、应用和维护,最后写出详细的设计说明书。 此次课程设计要求充分认识到数据库系统课程设计对培养动手能力的重要性,认真做好设计前的准备。 虚心接受老师的指导,充分发挥自学能力和查找资料的能力。 结合课题,独立思考,刻苦钻研,勤于实践,勇于创新。 完成独立规定的工作任务,不能弄虚作假,不能抄袭别人的内容。 否则成绩会不及格。 严格要求自己,按时、分质、分量完成每天的课程设计任务。

五.实验步骤1、系统需求分析1系统功能分析本系统主要有以下功能要求: 包括课程设置、添加、删除、查询和修改。 上课时间和教室日程,以及课表的打印输出。 l学生选修课和学生课表的打印输出。 l课程学生名单打印和期末成绩输入。 成绩查询,报告。

1.2系统功能模块设计系统各功能模块的关系如图1所示。 图1、教学管理信息系统的功能模块图因为使用该系统的人不仅包括教务管理员,还包括师生。 对数据库的操作权限因id而异。 为了避免管理混乱,必须为每个角色单独设计客户端APP应用程序,并合理修改同一数据库。 页面流程图:

1.3与其他系统的关系教育管理信息系统也是校园信息管理系统的有机组成部分需要从学生信息管理系统获取学生的个人信息,从教师信息管理系统获取清爽流沙的相关信息。 此外,提供的成绩单为其他系统提供必要的参考。

1.4数据流图教学信息管理系统数据流图

2 .数据库设计2.1数据库需求分析前分析表明,教育信息管理系统需要以下数据项: 课程编号、课程名称、授课教师、学分、学习时间、授课地点、概要、授课状态。 选修课结果:记录编号、选修者、选修课程。 成绩单:记录号、学生、课程、成绩。 必要的外部数据支持: l学生:学校号码、姓名、班级。 l老师:工作人员编号、姓名、课程系。

2.2数据库概念结构设计本系统所需数据的E-R模型图:

2.3数据库逻辑结构设计需要教师信息、学生信息、课程信息三个基本信息表。 在这里,教师信息和学生信息在实际的系统中是从其他信息管理系统的数据表中直接读取的。 学生的选择信息需要在一个表中单独保存。 因为必须在学期结束前选修课程,所以下课后,必须将此表的内容保存在成绩单数据表中。 使用本系统的不仅是教务处的管理员和教师,每个学生还需要登录选课系统进行选课。 因此,有必要对不同的注册者进行密码认证和权限限制,防止越权行为。 用户名、密码和权限分别存储在一个数据表中。 还需要课程的状态代码表

这 7 个数据表的结构如表 1 到表 7 所示(请设计者完成这 7 个数据表 的逻辑结构)。

3.各个功能模块的设计与实现

3.1功能说明本系统需要按照不同的用户分别创建 3 个工程:教师课程管理应用程序、教务课程调度 应用程序和学生选课应用程序。 首先,三个模块的用户的权限是有很大的差异的,教务处的用户的权限大于教师的用户权限,教师的用户权限大于学生的用户权限。所以登录不同的模块对于数据的操作的允许范围是不同的。

一.教务课程调度应用程序功能说明。 登录教务处权限的模块,可以对所有数据进行操作,包括学生的各项学习的查询。学生的课程的查询,教授的信息查询,教师设置课程的查询以及教师和学生的学习的的增删改查等等。同时此用户权限拥有对所有数据的掌握。 二.教师课程管理应用程序功能说明。

教师登录模块主要进行的是对于教师信息的修改查询以及对学生信息的查询和学生成绩的设置与查询。以及开设课程。

三.学生选课应用程序功能说明。

学生用户的权限较低,他只有对自己的信息的修改以及查询成绩,查询教师所开设课程和选课的去权利。四.实现了用户数据的导入导出。在实现了基本的增删改查的基础上对于自己完成的教务管理系统,新增加了数据导出为Excel格式和从Excel中读取数据至数据库中的新功能。
3.2用户界面设计根据权限的不同,用户界面分为三类,登录选项也为三类,各模块的界面视图如图所示:
1.教务管理系统用户权限界面如图,用户可以在界面内选择相应的群像进行登录。
2.教务处用户登录界面,选择相应的用户权限之后进入相应的用户的登录界面。其它两个用户权限的登录界面与之类似,以下只展示一个登录界面。输入密码或者账号错误会有相应的提示框。
3.教务处用户的登录后主操作界面。教务处用户登录后进行相应数据的操作。左侧为一个树目录结构,点击各个子节点可以进行各个表之间的转换。右面为各个子操作界面的展示,在子界面内进行各个数据的查看与操作。
4.教师权限用户的主界面如图所示,教师可以在主界面完成相应的操作,包括学生信息的查询,成绩的添加修改,课程的设置与修改等。
5.学生用户的登录主界面,进行查课,选课和成绩查询及个人信息修改等操作。教师登录后查询学生的成绩哥信息等,同时可以查询和修改自己的信息。同时在界面内设置和修改自己要开设的课程。
6.数据库的建立。
7.数据以Excel的形式导入导出。连接数据库之后可以实现数据的导入和导出为Excel形式。实现数据的导入导出要在java的驱动文件中加载。建立相应的导入导出数据的类,并进行定义,再链接数据库进行定义,就实现数据的导入导出。 导入导出的连接数据库的部分代码如图所示。其主要能容为建立一个workbook的工作部,在工作簿中完成导入导出的各项操作。
8.代码目录结构的展示,基本文件的分类为是按照各个页面的分类来进行的,即一个页面为一个java文件,其它的辅助文件和数据库连接文件为一个java文件。
4.1实验中的错误一、 写界面遇到的错误
1、表格的表头无法显示 我一开始用的String类型的数组储存的表头,表格也是用的数组,表头无法显示;然后我百度发现,表格要先放入一个容器才能显示表头。我按照例子改用vctor类型储存我的表头,但是我一开始是用的add方法把表格加入容器的,所以表头还是无法显示,通过百度我才知道表头的数组显示方法才能让表头显示,而且容器的布局不能为null。然后表格就正常了2、登陆界面(不管我是否输入了信息,都可以正常地登陆)我一开始是用
user.equals("")||user==null来判断的,没有去掉字符串前后的空格,所以不管怎么判断字符串其实是有空格的,所以不管怎么都可以成功登陆,二、写数据库的错误1、我的数据库一开始不能输入中文安装的时候没有注意Mysql的语言类型,默认的语言不是中文,所以不能输入中文,把每个表改成了utf8,改了之后虽然在navicat可以输入中文,但是如果在mysql里面打开后,发现全部用?替代了。然后就百度,根据百度的方法,我打开mysql查看发现除了一部分的字符属性改成了utf8,其余都没有变,然后把全部都改了以后,还是会乱码。后来我发现是我eclipes这边的代码还是之前的语言类型,然后就把全部都改了,就可以输入了中文。

六.实验心得

为期两周的数据库课程设计马上结束,在这两周里面收获颇丰。从课设开始的第一天,我们在老师的指导和阅读指导书的前提下自主完成了一个简单的数据库系统的编写。从系统的分析,到整体的设计,再到数据库的建立,以及java前端页面的编写。数据库驱动的加载。可以说整个的项目开发都是由一个人完成。这是在本学期学习了java课程和数据库课程之后的第一次也是在校的一次很宝贵的实战经验总结。之前对两门课程的学习只是简单的基础学习,没有设计到整个系统的开发。但是在这次的实践中对于整个系统开发有了更深的认识。从专业知识学习的角度说,首先我学会了作为一个系统的整个数据库的建立和完善。学会将SQL语句嵌入java中,对数据库进行操作。也学会了如何利用java的Mysql驱动连接数据库,这为之后的java的其他开发奠定了坚实的基础。其次数据库可课程设计更是提升了java的实战能力。在本次课设中,通过主函数中对其他各个累的调用和 其他设计,更深层次的了解或者说是掌握了java的面向对象这一概念。此次开发总共涉及了自己编写的大大小小的十几个java文件,但正是由于面向对象的思想,对于java的操作却没有想象的那么复杂。系统的维护和改动也只需要在相应的子文件里面做改动。本次实战中具有突出的是在java的主界面的编写中,为了对于各个子文件(子页面)的操作更加的简便,也为了主菜单格式的统一,我使用了树目录结构的方式,使得主界面的操作灵活方便。也使得各个操作在主界面的显示样式更加的统一方便好看。总体来说本次的数据库课程设计从整体上独立完成了一个系统的开发。为之后多项专业课的学习打下了坚实的基础,也是一个检验自己java与数据库知识掌握程度的机会,在此次课程设计中收获颇丰,再次有类似的学习事件机会。
以下为本人的数据库课设的页面展示。希望对读者有所启迪。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。