




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生选课及信息管理系统的毕业设计第1章 绪 论1.1 引 言学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点如:效率低、保密性差另外时间一长,将产生大量的文件和数据这对于查找、更新和维护都带来了不少的困难随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、 存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件1.2 系统分析1.2.1 开发背景随着计算机技术的发展,计算机应用越来越深入到人们日常生活的每个领域计算机管理作为其中的一个重要做成部分,也以它独特的优势,渐渐代替了原始的手工管理学生选课信息管理作为学校管理的重要部分,由于其信息量大,给以后的查询、修改等操作带来不便,需要使用计算机来管理这些信息学生选课系统应运而生1.2.2 需求分析高校学生资料的管理使学生管理的最主要工作,由于其工作时间比较集中,工作流程复杂,信息量大,信息准确性要求高,信息更新要求快,所以系统不但需求符合高校学生管理部门的实际业务流程需要,而且需要有很好的信息可维护性、用户交互便利性、信息管理严密性、系统安全性及数据共享性随着科学技术的不断提高,计算机科学日渐成熟,其强大的计算机功能已经让人们深刻认识到,计算机已经进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部份,使用计算机对选课信息进行管理,具有手工管理所无法比拟的优点例如:查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高人事劳资管理的效率,也是学校的科学化、正规化管理与世界接轨的重要条件因此,很有必要开发一套这样的软件1.2.3 系统概要本课题所开发的系统使用JAVA来设计开发完成前台界面,SQLServer 2005作为后台数据库支持系统要有较高的安全性和较好的性能管理员登陆系统后可以现实以下功能:学生的增加、删除、修改、查询,教师的增加、删除、修改、查询,课程的增加、删除、修改、查询,还可以分别通过课程和学号来进行选课以及设置教师所代课程等功能教师登陆以后,可以查询自己所代的课程,并可以录入和删除选课的学生,录入课程成绩并进行成绩统计学生登录以后是另外的界面,学生可以选课、查看自己的选课情况、退选课程、修改密码的操作 实验流程包括:需求分析、感念结构设计、逻辑结构设计、物理设计、相关脚本语言的编写、功能方面的实施、维护机制等本系统通过图形化界面为用户提供方便快捷的学生管理系统采用JAVA编程语言编写前台界面,使用SQL sever提供后台数据库支持前台界面以清晰、简单的风格呈现后台数据库设计六张表:教师信息表、学生信息表、课程信息表、选课成绩表、教师课程表、选课时间表,以此来存储整个系统的数据1.2.4 系统要求1. 硬件要求: (1) 486/DX66Mhz以上CPU(2) 内存16M以上(使用Windows NT需要32M以上内存)(3) 硬盘容量1GB以上(4) EGA以上分辨率的显示器. (5) 鼠标及键盘 2. 软件要求:(1) 操作系统应使用Microsoft Windows95及以上版本,或者使用Microsoft Windows NT3.51或者更高版本(2) 安装JDK 1.6或更高版本(3) 安装SQL SERVER 2005第2章 应用技术介绍2.1 数据库简介SQL(Structured Query Language),结构化查询语言SQL语言的主要功能就是同各种数据库建立联系,进行沟通按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等绝大多数流行的关系型数据库管理系统都采用了SQL语 言标准虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select、Insert、Update、Delete、 Create以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作2.1.1 SQL SERVER基本信息SQL Server 是一个关系数据库管理系统它最初是由Microsoft、 Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本Sybase 则较专注于SQL Server在UNIX 操作系统上的应用2.1.2 SQL SERVER 2005SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企级的数据管理SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序 8 SQL Server 2005 数据引擎是本企业数据管理解决方案的核心此外 SQL Server 2005 结合了分析、报表、集成和通知功能这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域 1 2.1.3 SQL SERVER 2005 的特点1. 可编程性CLR(Common Language Runtime,公共语言运行时)集成CLR集成是指你可以使用任何一种.NET 语言编写SQL Server 2005 的存储过程,触发器,函数,自定义类型,甚至是自定义的聚合函数想想以前的扩展存储过程,编程非常不容易代码中一不小心就会引起内存泄漏2. 安全性SQL Server 2005 的安全达到了很强大水平,有着很更清晰的安全模型即主体,安全对象和权限 7 3. 异步处理能力Service Broker提供了一个功能强大的异步编程模型Broker的最大好处一是异步执行能力,提高了可伸缩性,二是可靠执行,三是集成于数据库中,备份数据库就备份了broker 的消息队列4. 支持通过HTTP SOAP协议直接访问数据库增加XML数据类型,支持Xquery,使用新的SQL ServerManagement Studio 等等 4 以前都是大项目用ORACLE或者DB2,因为只有ORACLE和DB2能胜任,现在情况有些变化了不少在Windows构架下的大项目还是倾向于用SQL的,像镜像,高可用性,页面级的恢复,联机索引,多CPU支持等高级特性,SQL也不比ORACLE差2.1.4 SQL SERVER 2005对比其他数据库的优势目前市场上除了SQL SERVER以外还有很多数据库,比如DB2、Oracle等,但是经过各种对比,最终还是选择了SQL SERVER首先,SQL Server 2005 已经证明能满足客户的高可用性要求,而且提供此功能的成本要比 Oracle10g 低很多SQL Server2005 在 SQL Server2005 Standard Edition 和 SQL Server2005 Enterprise Edition 中均提供了所有主要的高可用性功能,如 Microsoft Clustering Services 支持、Database Mirroring、数据库快照、日志传送和复制等,无需额外的资金投入SQL Server2005 Enterprise Edition 还通过对多个服务器间的数据进行分区提供了提高可用性的能力在 Oracle10g 中增加此功能需要购买 Oracle Partitioning 产品高可用性并不需要同样的高成本,SQL Server2005 以比 Oracle10g 低很多的价格满足客户的高可用性要求其次,SQL Server 2005集成.NET运行库时采用的“进程内”模型与“进程外”模型相比有一些非常明显的优势举个例子,考虑一个负担沉重的数据库实例,要响应许多并发的请求,这一情况已经持续了很长一段时间SQL Server能自动和智能地在数据存储和程序逻辑(例如,.NET存储过程)之间平衡内存的分配当系统的负担有了一些性质上的变化例如,相对较多的 请求利用了较多的程序逻辑SQL Server会再次自动地进行调整这样,系统的性能会根据满足实际需求的伸缩性和可靠性进行不断的优化因为DB2 UDB v8.2采用“进程外”的模型集成.NET运行库,所以DB2不能提供这种类型的机器资源动态平衡和性能优化 10 综合以上SQL SERVER的特点以及对比其他数据库的优点,最终决定采用SQL SERVER数据库来作为后台数据库支持2.2 开发平台和开发工具 2.2.1 开发平台的选择考虑到本系统的性能要求,和现有的条件,我们选择了WINDOWS 7版作为开发、测试和运行的平台因为WINDOWS操作系统是目前应用最广的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体功能等特点而成为软件发展的流行趋势,选用它作为开发平台,易于功能的扩展和软件升级2.2.2 JAVA简介Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet 5 2.2.3 JAVA语言的特点1. 简单的Java语言的语法与C语言和C+语言很接近,但是Java丢弃了C+ 中如操作符重载、多继承、自动的强制类型转换等特性特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧 2. 面向对象的Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制 3. 健壮的Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证对指针的丢弃是Java的明智选择Java的安全检查机制使得Java更具健壮性 2 4. 安全的Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击5. 可移植的这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的 6. 解释型的如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中 7. 高性能的与那些解释型的高级脚本语言相比,Java的确是高性能的 6 2.2.4 选择JAVA的原因实际上,Java确实是从C语言和C+语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物尽管如此,Java和C语言、C+语言又有许多差别,主要表现在如下几个方面:1. Java中对内存的分配是动态的它采用面向对象的机制,采用运算符new为每个对象分配内存空间而且,实际内存还会随程序运行情况而改变程序运行中,Java系统自动对内存进行扫描,对长期不用的空间作为“垃圾”进行收集,使得系统资源得到更充分地利用2. Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能3. Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能 9 4. Java对每种数据类型都分配固定长度比如,在Java中,int类型总是32位的而在C和C+中,对于不同的平台,同一个数据类型分配不同的字节数5. 类型转换不同在C和C+中,可通过指针进行任意的类型转换,常常带来不安全性而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换 6. Java不再使用指针指针是C和C+中最灵活,也最容易产生错误的数据类型由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C+中的私有成员,从而破坏安全性而Java对指针进行完全地控制,程序员不能直接进行任何指针操作 3 7. 综合以上JAVA语言的特点,以及JAVA和C/C+的对比,为了可以更灵活、更安全的实现整个系统,最终决定选择JAVA语言来开发第3章 系统的规划与分析3.1 系统的可行性分析3.1.1 经济可行性分析由于本系统是一个基于Java的应用,后台采用SQL SERVER数据库,只要安装JAVA虚拟机和SQL SERVER 即可使用本系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力、物力所带来的效益远远大于系统软件的开发成本在经济上完全可行3.1.2 操作可行性分析界面设计时充分考虑管理人员的习惯,使得操作简单,数据录入迅速、规范、可靠,统计准确,适应力强,容易扩充3.1.3 技术可行性分析本系统仅需要一台装有 Windows 系统并装有 SQL SERVER数据库和JAVA虚拟机的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求对于软件技术要求,现在的JAVA程序设计语言已非常成熟,本系统前台采用基于C/S 架构的Java开发,页面采用Java常用的BorderLayout、GridLayout等布局后台采用SQL SERVER语句来实现与数据库的数据交换3.2 系统功能分析在实际开发中,系统功能分析需要开发小组的系统设计人员与用户进行全面,深入的交流,以切实了解用户对整个系统期望具有的功能,并分析用户行业营运特点,决定系统具有哪些功能本系统中的学生选课管理系统主要具有以下功能:1. 登陆界面:(1) 注册:新用户注册,包括教师和学生的注册,教师注册的时候需要管理员给的安全码(2) 忘记密码:教师或学生可以使用自己的安全码修改登录密码(3) 登陆:输入用户名和密码,并选择登陆类型之后可以登录到系统2. 管理员系统:(1) 学生信息管理:增加学生信息,修改学生信息,删除学生信息(2) 教师信息管理:增加教师信息,修改教师信息,删除教师信息,设置教师注册时的验证码(3) 课程信息管理:增加课程信息,修改课程信息,删除课程信息,设置教师和学生的选课时间,设置学生选课的学分限制(4) 选课信息管理:增加选课信息,修改选课信息,删除选课信息(5) 信息查询:按条件查看学生信息、按课号或课名查看课程信息、查看选课信息(6) 教师信息查询:查看教师所代的课程、添加教师代课信息3. 教师系统:(1) 我的课程:查看老师所代的课程,并可以查看某课程有哪些同学选了(2) 学生管理:添加或删除学生的选课信息(3) 成绩管理:添加和修改学生的成绩,对各门课程做成绩统计(4) 添加课程:由老师来选择代哪门课程,选课有时间的限制(5) 修改密码或安全码:修改教师登陆密码或者修改密码时用的安全码4. 学生系统:(1) 选课:学生可以查看所有的课程,点击课程之后可以查看任课教师的信息和课程信息,并可以在这里输入教师号和课程号来选课(2) 我的课程:学生可以查看自己已选的课程,并可以输入课程号来退选(3) 修改密码或安全码:修改学生登陆密码或者修改密码时用的安全码3.3 系统模块设计根据对系统功能分析,经过模块化的分析得到如图所示的学生选课管理系统各个功能模块结构图1. 用户登录模块包括新用户注册、修改登录密码以及输入信息登陆系统的功能如图3-1,是系统的登陆界面模块结构图用户登录模块新用户注册修改登录密码输入信息登录系统教师用户注册学生用户注册教师密码修改学生密码修改图3-1 登陆系统模块图2. 管理员系统包括对学生信息、教师信息、课程信息以及选课信息的管理,比如添加、修改、查询等功能,以及其他一些系统设置,比如选课时间和学分的设置如图3-2,是管理员管理系统的各功能模块图管理员系统学生信息管理教师信息管理课程信息管理添加学生信息修改学生信息删除学生信息选课信息管理添加教师信息修改教师信息删除教师信息添加课程信息修改课程信息删除课程信息添加选课信息修改选课信息删除选课信息信息查询管理修改选课时间修改学分限制学生信息查询课程信息查询选课信息查询教师信息查询图3-2 管理员系统模块图3. 教师系统包括教师对自己课程的查看,管理选课学生,添加并管理所带课程的成绩,修改个人简介和所代课程简介,以及修改密码等功能如图3-3,是教师管理的各功能模块图教师系统模块我的课程学生管理成绩管理修改密码和安全码退出系统查看所代课程查看选课学生名单添加选课学生删除选课学生成绩录入修改成绩按条件统计成绩图3- 3 教师管理模块图4. 学生系统包括查看课程并选课,查看已选的课程并退选,以及修改密码等功能如图3-4,是学生系统的各功能模块图学生系统模块选课我的选课修改密码和安全码查看所有课程输入信息选课查看已选课程输入信息退选退出系统图3-4 学生管理模块图3.4 开发与运行环境的选择开发与运行环境的选择会影响到数据库设计,本系统采用的是SQL SERVER 2005作为数据库管理系统,所以也采用了对该数据库支持最好的windows系统作为运行环境另外,系统采用Java做前台界面,在系统中要安装JDK编译环境和Java虚拟机来运行本系统3.5 系统实现过程分析在实现过程中,首先需要根据对系统功能的分析设计出需要的数据库,包括各个数据表和数据表关系图的详细结构在实现各个功能模块时,先将系统每个模块做成一个类,然后将不同的模块包含在不同的包下来区分各个模块之间可以相互调用,来完成整个系统的实现在访问数据库时,采用了JAVA连接数据库的函数来实现与数据库的信息交换用实体类来存放从数据库中取出来的数据,可以方便的读取这里附上连接数据库的函数方法public static Connection CONN() String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver;String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=student;String userName = sa;String userPwd = sa; Connection dbConn = null;try Class.forName(driverName);dbConn = DriverManager.getConnection(dbURL, userName, userPwd);System.out.println(Connection Successful!); catch (Exception e) e.printStackTrace();return dbConn;3.6 数据库设计系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块,而数据库设计则是分析和创建系统数据库,两者对整个系统的开发具有同等重要的关键作用根据学习到的知识,将数据库的设计总结为两个步骤:绘制系统数据流图和数据库结构设计3.6.1 绘制系统数据流图绘制系统数据流图系统数据流图根据用户日常工作流程,绘制出系统的各个操作节点,对每一个操作节点,绘制出与该操作关联的数据然后根据数据流图分析总结出系统数据字典即总结出系统管理流程只用到的各个数据以及包含的数据项系统数据流图如图3-5所示学生选课系统学生信息管理教师信息管理课程信息管理选课信息管理新用户注册登录系统修改密码教师信息表学生信息表学生信息表学生信息表课程信息表选课信息表学生信息表教师信息表教师信息表教师信息表图3-5 学生选课系统数据流图1. 系统用户数据:包括的数据项有用户名,密码,用户ID,姓名2. 教师信息数据:包括的数据项有教师号,教师姓名,登录密码,安全码,职称和简介3. 学生信息数据:包括的数据项有学号,学生姓名,所在学院,班级,登录密码,安全码4. 课程信息数据:包括的数据项有课程号,课程名,学分,允许选课人数,课程介绍5. 选课信息数据:包括的数据项有课号,教师号,学号,学生成绩,选课信息表分为学生选课信息表和教师选课信息表6. 另外,根据系统要求,还要一个数据库表来存放选课时间和教师注册验证码的信息3.6.2 数据库结构设计设计数据库结构根据第一步得到的数据字典,为数据库规划需要的数据表,并设计每个数据表的结构按照学生选课管理系统数据字典,设计出学生选课管理系统数据库中各种数据表,包括系统系统用户表,学生信息表,教师信息表,课程信息表,学生选课表,教师选课表,选课时间表7个表数据库中的各个数据表名称和结构分别如下所示1. 系统用户表系统用户数据表用于保存系统管理员的帐户信息,包括编号,用户名,登录密码和姓名,数据表命名为“admin”,表结构如图3-6所示图3-6 系统用户数据表2. 教师信息数据表教师信息表用来存放教师的基本信息,包括教师编号,教师姓名,登录密码,安全码,教师职称和教师简介数据表命名为“teacher”,表结构如图3-7所示教师号作为主关键字图3-7 教师信息数据表3. 学生信息数据表学生信息表用来存放学生的基本信息,包括学号,学生姓名,所在院系,所在班级,登录密码和安全码数据表命名为“S”,表结构如图3-8所示学号作为主关键字图3-8 学生信息数据表4. 课程信息数据表课程信息表用来存放课程的基本信息,包括课程编号,课程名,学分,允许选课的人数以及课程简介数据表命名为“C”,表结构如图3-9所示课程号作为主关键字图3-9 课程信息数据表5. 学生选课信息表学生选课表用来存放学生选课的相关信息,包括课程号,学号,课程成绩,教师编号数据表命名为“SC”,表结构入图3-10所示由于每门课程可能由多个教师来教,所以要在该表添加教师编号一列来区分学生选了哪位教师的课图3-10 学生选课信息数据表6. 教师选课信息表教师选课表用来存放教师所代课程的相关信息,包括课程号和教师编号数据表命名为“TC”,表结构入图3-11所示图3-11 教师选课信息数据表7. 选课时间表选课时间表用来存放管理员设置的教师和学生选课的时间为了节省资源,在此表内添加了两列来存放教师注册时的验证码和允许学生选课的最多学分数据表命名为“time”,表结构入图3-12所示图3-12 选课时间数据表8. 数据表关系图数据的完整性对于一个数据库而言非常重要,比如,如果删除了某个教师的信息之后,那么该教师所代的课程,以及选过该教师所代课程的学生选课信息都要随之删除,否则以后在查询或修改的时候都会出现错误通过创建教师表和教师选课表、学生选课表之间的关联,就可以实现信息的自动删除数据库表关系图如图3-13所示图3-13 表关系图第4章 系统应用程序设计与实现4.1用户登录模块的实现4.1.1 注册新用户功能的实现1创建数据环境变量在注册新用户时,需要验证新用户提供的注册ID是否已经被注册,所以要判断用户的ID是否已经存在于数据库当中通过使用SQL语句和ResultSet来判断另外,院系、班级以及教师的职称是不能乱填的,要从数据库中取出已经设置好的由用户来选择,这里用到Choice组件来实现另外,教师注册界面有“验证码”一栏,要求教师输入管理员设置好的验证码才能注册这是为了防止非教师人员注册附上验证学号的代码,其他代码见附录:String sql = select Sno from S where Sno= + jt1.getText() + ;ResultSet rs = stmt.executeQuery(sql1);/ 判断注册学号是否已经存在if (rs.next() JOptionPane.showMessageDialog(this, 该学号已经被注册!);jt1.setText();2创建注册用户窗体定义好界面中使用的各个控件之后,使用GridLayout布局将控件添加到界面当中用户输入相关信息之后,点击注册即可如图4-1和4-2分别是学生和教师的注册界面 图4-1 学生注册界面 图4-2 教师注册界面4.1.2 使用安全码修改密码的实现用户平时可能会忘记自己的登录密码,这时在登陆界面点击“忘记密码?”按钮即可使用之前自己设置好的安全码来修改自己的登陆密码1创建数据环境变量因为用户有教师和学生两种,所以定义了两个安全码和密码项,根据不同的用户,分别从数据库中取出相应的安全码来验证是否输入正确这里附上获取学生安全码的代码,其他代码见附录sql = select safe from S where Sno = + jt1.getText() + ;ResultSet rs = stmt.executeQuery(sql);while (rs.next() safe = rs.getString(safe);2创建修改密码窗体不同的用户要分开修改密码,所以定义了一个JTabbedPane选项卡然后分别做好教师和学生的修改密码界面,分别放在JTabbedPane的选项卡里面只要输入编号和正确的验证码,就可以重新设置密码如图4-3和4-4所示,分别是学生和教师修改密码的界面 图4-3 学生修改密码界面 图4-4 教师修改密码界面4.1.3 用户登录系统的实现1创建数据环境变量定义了两个JTextField来记录用户名和密码,并使用用户名从数据库中取出相应的密码,判断是否正确另外,定义了一个CheckboxGroup,用来存放三个不同的登录类型:管理员,教师和学生附上CheckboxGroup的代码CheckboxGroup cg=new CheckboxGroup();Checkbox r1=new Checkbox(管理员,cg,false); Checkbox r2=new Checkbox(教师,cg,false);Checkbox r3=new Checkbox(学生,cg,false);2创建用户登录窗体用户输入用户名和密码,并选择登陆类型,点击登录即可进入系统如图4-5所示图4-5 用户登录窗体4.2 管理员系统的实现4.2.1 学生信息管理的实现学生信息管理包括学生信息的录入,修改和删除1创建数据环境变量学生信息包括学号、姓名、所在院系和班级、登录密码和安全码需要从数据库访问S表来读取这些数据另外,在录入学生信息时,院系和班级是已经设置好的,不能随便填写,所以使用了两个Choice下拉列表来存放信息,并实现简单的二级联动附上部分联动代码public void itemStateChanged(ItemEvent e) if (e.getItem().equals(物联网工程学院) c2.removeAll();c2.addItem(请选择);c2.addItem(计科0701);c2.addItem(计科0702);2设计学生信息管理窗体学生信息管理分为学生信息的添加、修改和删除添加信息时,要输入完整的学生信息才能录入,否则会有系统提示如图4-6所示,是添加学生信息的界面 4-6 添加学生信息界面修改信息时,先输入学号查询出要修改的学生信息,修改后点击“修改”提交即可如图4-7所示,是修改学生信息的界面 4-7 修改学生信息界面删除时也要先输入学号查询出要删除的学生的信息,然后点删除,否则会有系统提示如图4-8所示,是删除学生信息的界面图4-8 删除学生信息界面4.2.2 教师信息管理的实现教师信息管理包括教师信息的添加,修改和删除以及修改教师注册时的安全码1创建数据变量教师信息包括教师号、教师姓名、教师职称和简介、登录密码和安全码需要从数据库访问teacher表来读取这些数据还需要访问time表来读取教师注册时的验证码教师职称是系统设定好的几个职称,这里同样使用了Choice下拉列表来存放教师职称信息2设计教师信息管理窗体添加信息时,要输入完整的教师信息才能录入,否则会有系统提示如图4-9所示,是添加教师信息的界面图4-9 添加教师信息界面修改信息时,先输入教师号查询出要修改的教师信息,修改后点击“修改”按钮提交即可如图4-10所示,是修改教师信息的界面图4-10 修改教师信息界面删除教师信息时也要先输入教师号查询要删除的教师信息,然后点删除才可以删除教师的信息如图4-11所示,是删除教师信息的界面图4-11 删除教师信息界面为了防止学生在注册界面注册教师信息,所以添加了教师注册验证码,输入新的验证码以后点击“提交”即可如图4-12所示,是修改教师注册验证码界面图4-12 修改教师注册验证码界面4.2.3 课程信息管理的实现课程信息管理包括课程信息的添加,修改和删除1创建数据变量课程信息包括课程号,课程名,课程简介,学分,允许选课的总人数需要从数据库访问C表来读取这些数据2设计课程信息管理窗体课程信息管理分为课程信息的添加、修改,删除添加信息时,要输入完整的课程信息才能录入,否则会有系统提示如图4-13所示,是添加课程信息的界面图4-13 添加课程信息界面修改信息时,先输入课程号查询出要修改的课程信息,修改后提交即可如图4-14所示,是修改课程信息界面图4-14 修改课程信息界面删除时也要先输入课程号查询要删除的课程信息,然后点删除在删除课程信息时,同时会将学生和教师相关的选课信息删除掉如图4-15所示,是删除课程信息界面图4-15 删除课程信息界面4.2.4 选课信息管理的实现选课信息管理包括选课信息的添加,修改和删除,设置教师和学生选课时间,以及设置学生选课的总学分1创建数据变量选课信息包括课程号,学号,课程简介,学分,允许选课的总人数需要从数据库访问SC表来读取这些数据还需要访问time表来读取教师和学生的选课时间在设置选课时间时,有时间判断的功能,即结束时间要晚于开始时间设置时间时,使用Choice下拉表来选择时间,并实现联动附上时间判断代码SimpleDateFormat myTime = new SimpleDateFormat(yyyy年MM月dd日);DateFormat df = new SimpleDateFormat(yyyy-MM-dd);dateStart = rs.getDate(start); dateEnd = rs.getDate(ends);Date dt1 = df.parse(newStart);Date dt2 = df.parse(newEnd);if (dt1.getTime() dt2.getTime() JOptionPane.showMessageDialog(this, 结束时间要晚于开始时间!);2设计课程信息管理窗体课程信息管理分为课程信息的添加、修改,删除,设置教师和学生的选课时间,以及设置学生选课的总学分添加信息时,要输入完整的选课信息才能录入,否则会有系统提示如图4-16所示,是添加选课信息的界面图4-16 添加选课界面修改信息时,先输入课程号和学号查询出要修改的选课信息,修改后提交即可如图4-17所示,是修改选课信息的界面图4-17 修改选课信息界面删除时也要先输入课程号和学号查询要删除的选课信息,然后点删除如图4-18所示,是删除选课信息的界面图4-18 删除选课信息界面教师选择自己所代课程的时间是有限制的,由管理员来设置如图4-19所示,是修改教师选课时间界面图4-19 设置教师选课时间界面学生选课时间也是有限制的,由管理员来设置学生选课的时间,只有在选课时间内,学生才能选课和推选如图4-20所示,是修改学生选课时间界面图4-20 设置学生选课时间界面学生选课时的学分是有上限的,由管理员来设置如图4-21所示,是修改允许学生选课总学分界面图4-21 设置学生选课总学分界面4.2.5 信息查询的实现1创建数据环境命令信息查询包括查询学生信息,课程信息,学生选课信息,教师选课信息每次的查询都是使用SQL语句连接数据库读取数据并返回到Table表中显示2信息查询窗体这里把学生信息,课程信息,学生选课信息的查询做到一个窗口里,方便操作系统提供了多种查询方法,可以按条件来筛选另外,如果不输入任何信息,则查询这方面的所有信息如图4-22、4-23所示,是查询学生信息和教师信息的界面图4-22 学生课程信息查询界面图4-23 教师课程查询界面4.3 教师系统的实现4.3.1 教师系统主界面的实现教师系统主界面显示了当前教师的姓名,并显示教师功能的按钮1创建数据环境命令根据登陆之后从Login类传递的用户名userID来得到当前登录的教师的姓名,然后将其放在Label中显示出来附上相关代码sql = select Tname from teacher where TID = + userID + ;try stmt = (Statement) dbConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = stmt.executeQuery(sql);while (rs.next() teacherName = rs.getString(Tname);JLabel jl = new JLabel(欢迎您 +teacherName.trim()+ 老师);2主体界面设计使用两个JLabel分别显示欢迎信息和界面图片,用Box来存放功能按钮主体界面如图4-24所示图4-24 教师系统主体界面1.3.2 教师课程信息界面的实现1创建数据环境变量点击“我的课程”之后,向要调用的类传递userID,调用的类使用userID得到当前教师所代的所有课程,并返回到JTable中显示给JTable的每一行添加MouseListener属性,当点击某一行的时候,得到点击行Row的数值,从而用getValueAt(row, 0)方法得到学号Cno,传递给要调用的类,调用的类使用userID和Cno查询到选择了该教师所代的某一门课程的学生名单,在弹出的窗口中显示这里附上弹窗函数jt.addMouseListener(new MouseAdapter()public void mouseClicked(MouseEvent arg0) int row=jt.getSelectedRow();/获取选中的行数,从0开始的String cno = (String) jt.getValueAt(row, 0);/获取当前行的值,(行,列)TeacherStudent student = new TeacherStudent(userID,cno);student.setBounds(400,300,600,300);student.setVisible(true););2课程界面设置两个窗体都是用JTable来存放从数据库中取出来的数据界面如图4-25所示图4-25 教师课程界面1.3.3 学生管理界面的实现1创建数据环境变量点击“学生管理”之后,教师可以给自己所代的课程添加和删除学生信息添加学生的时候,有已选人数的判断,如果超出规定的人数,那就不能添加采用两个Choice下拉表来存储教师所代的课程信息,这些信息是直接从数据库中选出来的这里附上取出选课人数的函数String sqlYX = select yunxu from C where Cno = + cno + ResultSet rsYX = stmt.executeQuery(sqlYX);if (rsYX.next() yunxu = rsYX.getInt(1);/ 取出允许的选课人数if (!(yixuan = 0; j-) DefaultTableModel dtm2.removeRow(j);2学生成绩管理窗体设置同样,这个窗体采用了JTabbedPane选项卡,讲添加成绩、修改成绩和成绩统计分别放在不同的选项卡中在成绩统计页面,采用JTable来显示统计出来的数据如图4-28、4-29所示,分别是添加和修改成绩界面图4-28 添加成绩界面 图4-29 修改成绩界面教师可以通过不同的信息来筛选查看学生的课程信息,并可以提示总共有多少人如图4-30所示,是教师筛选课程成绩的界面图4-30 成绩统计界面4.3.5 添加所带课程界面的实现这里允许老师来选择自己要代的课程界面由一个JTable表和一个JPanel来组成表中存放的数据是所有课程,并可以在这里输入课程号来选定要教的课程不过,教师不能随便退掉自己选定的课程如果已经选了这门课,会有相关的提示选课界面如图4-31所示图4-31 教师选课界面4.3.6 教师个人信息修改界面点击“个人介绍”弹出教师个人信息修改界面教师可以在这里修改自己的介绍这些介绍将在学生选课时被学生看到这里采用了JTextArea来存放和编辑教师的介绍采用JTextArea.setLineWrap(true)方法来实现文本框的自动换行,采用JScrollPane(JTextArea)来实现文本框的滚动具体界面如图4-32所示图4-32 教师个人信息修改界面4.3.7 课程信息修改界面的实现教师可以对自己所代的课程的简介进行修改课程信息在学生选课的时候将被学生看到同样,这里采用了Choice来存放教师已选定的课程,点击“查询”之后,会在JTextArea文本框中显示数据库里的该课程的信息,教师可以对其修改界面如图4-33所示图4-33 课程信息修改界面4.3.8 登录密码修改界面该界面包括登录密码和安全码的修改1. 创建环境变量采用几个JTextFie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年皮肤科疑难病例诊断与治疗综合测验答案及解析
- 2025年内分泌学内分泌疾病筛查与诊断试卷答案及解析
- 2025年精神科健康评估与干预实践模拟考试答案及解析
- 2025年精神科抑郁症药物治疗副作用观察考试卷答案及解析
- 民族团结统一课件
- 新质生产力从理论到实践
- 2025年眼科医学知识综合考察答案及解析
- 2025年内科常见疾病诊断与治疗综合考试卷答案及解析
- 安全负责人任命书讲解
- 管理核心内容讲解
- 倾听与问题讲义
- 糖尿病合并足底烫伤护理查房
- 激光拉曼光谱
- 合同诈骗控告书范本
- 转专业学生回原专业申请表(模板)
- GB∕T 5336-2022 汽车车身修理技术条件
- 部编版六年级道德与法治上册第2课《宪法是根本法》精品课件【带视频】
- 南亚环氧树脂
- 常见体表肿物
- 信息检索技术讲义
- 商业银行基于华为OceanStor的关键业务同城切换方案
评论
0/150
提交评论