自考计算机软件毕业论文

更新时间:2024-05-02 04:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

吉林大学计算机与科学技术学院 本科生论文

摘 要

近年来学生越来越多,学生信息管理系统也成了不可缺少的部分,尤其是对一些数量多的学校来说尤为重要。学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式学生的各种信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。基于这一点, 我设计了学生信息管理系统, 学生信息管理系统是由 eclipse jdk 作为开发平台java 作为开发系统语言,access作为后台数据库设计而产生的,首先,我介绍了一下课题的背景和意义以及开发技术的选择,然后就系统设计进行了分析,其次,又阐述了该系统的数据库,最后实现了该系统并对它进行了调试与测试,通过这些模块的有机结合,能方便的对学生信息进行综合管理,从而实现了信息化管理的目的。由于本人的能力有限,设计过程中难免有不足之处,设计中的存在问题本人将在日后进一步修改,以便让程序的设计更加完善。

题目:学生信息管理系统 第 I 页 共 III 页

吉林大学计算机与科学技术学院 本科生论文

Abstract

In recent years, more and more students, student information management system has become an indispensable part of the quantity of some particular school is particularly 重要. Student information management system should be able to provide users with adequate information and fast search tool. But it has been the use of artificial methods of traditional students in a variety of information, management approach Cun Zai Zhe Zhong Zhao Xu Duo shortcomings, such as: Xiaoshuai Di, poor confidentiality Xing, Ling Wai over time, will produce extensive documentation and data, which Duiyu find, Geng Xin and maintenance have brought many difficulties. Based on this, I designed the Student Information Management System, Student Information Management System by eclipse jdk java as a development platform as a development system language, access database design and produce as a background, first of all, I introduced the topic about the background and significance of development of technology options, and then analyzed on the system and, second, and explained the system's database, and the last to realize the system was debugged and tested it through the combination of these modules can be convenient to the student information integrated management, in order to achieve the purpose of information management. Because of my limited capacity, the design process will inevitably be inadequate, the design problems in the future I will be further changes to the program to design more perfect.

题目:学生信息管理系统 第 II 页 共 III 页

吉林大学计算机与科学技术学院 本科生论文

目 录

摘 要 ............................................................................................................................. I ABSTRACT ................................................................................................................. II 第一章 引言 ................................................................................................................... 1 1.1 课题背景与意义 ................................................................................................... 1 1.2 课题开发技术选择 ............................................................................................... 1 1.2.1 Java语言特征 ............................................................................................. 1 1.2.2 access数据库的特点 ................................................................................. 4 1.3 课题实现技术的简要说明 ................................................................................... 5 1.4可行性分析 ............................................................................................................ 6 1.4.1 技术可行性 .................................................................................................. 6 1.4.2 人员可行性 .................................................................................................... 6 第二章 系统设计 ........................................................................................................... 7 2.1 系统需求分析 ...................................................................................................... 7 2.2 系统设计目标 ...................................................................................................... 7 2.3设计内容 ............................................................................................................... 7 2.3.1 基本内容及思想 .......................................................................................... 7 2.3.2 系统功能分析 .............................................................................................. 8 第三章 数据库—— 学生信息管理系统 ..................................................................... 9 3.1数据库模型分析 ................................................................................................... 9 3.2 数据库表设计 ...................................................................................................... 9 3.3 结构设计与结构功能图 ..................................................................................... 11 3.3.1 结构设计 ...................................................................................................... 11 3.3.2 功能结构图 .................................................................................................. 11 第四章 系统实现 ......................................................................................................... 13 4.1学生管理系统主界面模块 ................................................................................. 13 4.2 学生信息管理模块 ............................................................................................ 13 4.3 课程信息管理模块 ............................................................................................. 21 4.4 成绩信息管理模块 ............................................................................................. 30 第五章 系统调试与测试 ............................................................................................. 37 5.1 测试的定义及目的 ............................................................................................ 37 5.2系统功能测试 ..................................................................................................... 37 5.3系统实施发布 ..................................................................................................... 38 致谢 ............................................................................................................................... 39 参考文献 ....................................................................................................................... 40

题目:学生信息管理系统 第III页 共III页

吉林大学计算机与科学技术学院 本科生论文

第一章 引言

由于学生信息的冗长与繁琐,所以它的管理问题带来的麻烦和不方便也随之而来。所以开发一个适合学校的、便于管理学生信息的管理系统是十分重要的。

1.1 课题背景与意义

为了充分实现素质教育,多方面发展学生的兴趣爱好,大部分学校都设立了全校范围的内的选修课。学生可以根据自己的兴趣和特长,选择自己喜欢的课程。由于高等学校的快速发展,高校的规模也越来越大,学生数量和课程量都迅速地增长,管理上的手工操作不仅仅会耗费学生与工作人员大量的时间和精力,效率以及准确性也很低。如何使同学们方便、快捷、准确地选课,以及老师们对学生的相关信息的管理,已经成为一个重要的问题。

利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。本课题就是针对便于学生信息管理的问题而设计的一个管理系统。

1.2 课题开发技术选择

本课题设计主要运用的技术有两个:java项目开发和对access数据库的操作。这里主要介绍本课题为什么选用这两个开发技术:

1.2.1 Java语言特征

Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。具体来说,它具有如下特性: (1)面向对象

面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。

题目:学生信息管理系统 第 1 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。

多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operator overload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。

继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。 (2)平台无关性

Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源代码级平台无关,表明用C或C++写的应用程序不用修改只需重新编译就可以在不同平台上运行。

Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。

题目:学生信息管理系统 第 2 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完程序后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。

Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。 (3)分布式

分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。

Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫做URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。

Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。 (4)可靠性和安全性

Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;

题目:学生信息管理系统 第 3 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。

由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。

上述几种机制结合起来,使得Java成为安全的编程语言。 (5)多线程

线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。

C和C++采用单线程体系结构,而Java却提供了多线程支持。

Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。

1.2.2 access数据库的特点

(1)存储方式单一

Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。 (2)面向对象

题目:学生信息管理系统 第 4 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)界面友好、易操作

Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 (4)集成环境、处理多种数据信息

Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。

(5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。

综上所述,选择java作为开发语言,Access作为数据库开发工具是个不错的选择。java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性,使得开发出来的项目具有健壮性、可维护性、可移植性等特点。Access是目前最具权威的数据库产品,它具有的兼容性、可移植性、可联结性、高生产率和开放性的特点,使它成为当今众多的程序开发人员首选的数据库开发工具。所以本课题选择java和Access作为开发技术是为今后开发更复杂的项目打下基础,以免到时候遇到相关的技术问题而不知所措。

1.3 课题实现技术的简要说明

题目:学生信息管理系统 第 5 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

本课题主要运用了java图形编程和Access数据库的操作。

Java图形编程给用户提供了一个直观、易于与用户进行交互的图形界面。在图形编程中,运用了大量的java.swing包中的类,之所以选择swing包中的类而不选java.awt包中的类,主要是swing包中的类能给用户提供更好的观感。

Access数据库的操作这部分内容分成三部分来实现:首先,编写对数据库操作的类,包括:连接数据库、关闭数据库连接等。其次,编写一个用于对学生信息进行数据库操作的类,包括:学生信息的增加、修改、删除和信息浏览等,编写一个用于对课程相关信息进行数据库操作的类,包括:对课程信息的增加、修改、删除、信息浏览以及对于成绩的增加。

通过结合图形编程和数据库编程,从而基本上实现了学生信息管理的基本功能,由于本人技术上的不足,难免有些地方需要改进,这些存在的问题都将成为本人前进的动力,并在日后更加完善本课题的设计。

1.4可行性分析

1.4.1 技术可行性

系统的性质为管理软件,因而数据库的设计与操纵是系统设计的核心。这里从两方面分析技术上的可行性。

首先,对于java编程部分,java课已经开过,本人基本上掌握了对java编程上技巧。加上暑假运用了大部分时间来对图形编程的学习。因此在课题设计中,对java图形编程方面的问题都能迎韧而解。

其次,对于数据库的有关知识,本人运用了大量的时间对相关书籍的阅读以及上机实验,基本上掌握了运用Access数据库技术,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵;因而该系统的实现在技术上是可行的。

1.4.2 人员可行性

本人对该课程设计有足够的技术上的准备,并且时间上也足够充裕。所以在进行该课程设计中,不需要人员分工,整个设计过程都由本人完成,并且已经较好的完成了该项目的开发工作。所有,在人员可行性方面是可行的。

题目:学生信息管理系统 第 6 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

第二章 系统设计

2.1 系统需求分析

(1)对功能的规定

用列表的方式,逐项定量和定性地叙述对系统所提出的功能要求,说明输入什么、经怎么样的处理、得到什么输出,说明系统的容量,包括系统应支持的终端数和应支持的并行操作的用户数等指标。 (2)对性能的规定

精度 说明对该系统的输入、输出数据精度的要求,可能包括传输过程中的精度。时间特性要求 说明对于该系统的时间特性要求;灵活性 说明对该系统的灵活性的要求,即当需求发生某些变化时,该系统对这些变化的适应能力。 (3)输入输出要求:解释各输入输出数据类型 (4)数据管理能力要求(针对软件系统)说明

(5)故障处理要求列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。

2.2 系统设计目标

(1)统筹考虑,信息共享 (2)包容性和可扩展性

(3)系统简洁,易使用、易维护、适用非计算机人员使用 (4)为教师、学生提供良好的信息服务 (5)可靠运行,安全保密

(6)采用先进成熟的技术,建立实用可靠的系统

2.3设计内容

2.3.1 基本内容及思想

我们设计的学生信息管理系统主要用于对学生成绩的管理,主要任务是用计算机对学生各时段成绩信息进行日常管理,完成了学生成绩管理系统的基本功能。

该系统主要包括系统管理、学生信息子系统、课程信息管理子系统、成绩管理子系统、四个部分,各部分主要功能如下:应用程序以一个班级的学生基本信

题目:学生信息管理系统 第 7 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

息表和一个学期的课程信息数据为信息处理资源

2.3.2 系统功能分析

(1)管理学生信息

管理所有学生的基本信息,对学生信息的操作包括添加、修改、删除、浏览学生信息等;可以根据各种条件查询出需要的信息,比如修改,可以通过学生学号查询出学生的基本信息,然后通过对需要修改项进行修改并保存修改后的结果存入数据库的学生表中。 (2) 管理课程信息

管理所有课程的基本信息,包括对课程信息的添加、修改、删除、浏览课程信息等操作;可以根据各种条件查询出需要的信息,并对相应的信息进行操作。比如修改和删除,可以通过学生的学号查询出学生的相应课程信息,对相应的课程进行修改、删除操作。 (3) 管理学生成绩信息

管理学生的基本成绩信息,可以根据学号增加该科成绩。

通过以上功能的设计与实现,并实现学生信息管理系统的基本功能。当然在实际的学生信息管理系统中,其功能要比本课题的多的多,也复杂的多,我做的这个程序仅以比较简单易懂的方式介绍给大家—个学生管理系统的设计与实现的流程。从而让大家明白一个项目开发中需要做的工作,并在今后的工作中能遇到相关问题能知道如何解决。

题目:学生信息管理系统 第 8 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

第三章 数据库—— 学生信息管理系统

3.1数据库模型分析

数据库模型描述了在数据库中结构化和操纵数据的方法,模型的结构部分规定了数据如何被描述(例如树、表等);模型的操纵部分规定了数据的添加、删除、显示、维护、打印、查找、选择、排序和更新等操作。数据库模型的分类:分层模型、关系模型、网络模型和对象模型。

本课题选择的关系模型,关系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。关系数据模型具有下列优点:

关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 关系模型的概念单一。无论实体还是实体之间的联系都用关系表示。对数据的检索结构也是关系(即表)。所以其数据结构简单、清晰,拥护易懂易用。

关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

所以,关系数据模型诞生以后发展迅速,深受拥护的喜爱,这也是本课题选取关系数据模型的原因。

当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路件对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

本课题的关系数据模型的数据结构可分为一个表来表示:分别包括学生信息表(Student)、课程信息表(Course)、学生选课表(SC);如图3-2所示:

3.2 数据库表设计

创建用于存储学生基本信息的学生索引表student,用于存储学生成绩的学生成绩表sc,学生课程表course,适当设置关键字与应用参照引用关系。

表1 数据库scmanage 题目:学生信息管理系统 第 9 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

数据表名称 sc 序号 1 2 3 字段名 snum cnum gride snum sname ssex sethnic syear smajor scollege sbirth Cnum 类型 备注 Decimal(10) 学号 主键 Decimal(10) 姓名 Decimal(50) 成绩 Decimal(10) 学号 主键 Decimal(50) 姓名 Decimal(10) 性别 Decimal(50) 民族 Decimal(50) 入学时间 Decimal(50) 主修 Decimal(50) 所在大学名 Decimal(50) 出生日期 Decimal(10) 课程号 主键 Decimal(50) 课程名 Decimal(50) 任课教师 Decimal(50) 教室 Decimal(50) 类别 Decimal(50) 时间 student 1 2 3 4 5 6 7 8 1 Course 2 Cname 3 Cteacher 4 Cplace 5 Ctype 6 Ctime 图3-2

E-R图分别是:图3.2.1 学生信息E-R图;图3.2.2 课程信息E-R图;图 3.2.3 学生选课E-R图;如图所示:

学号 学生姓名 性别 出生日期 学生 学院 民族 专业 入学年份 图3-2-1 学生信息E-R图

题目:学生信息管理系统 第 10 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

课程编号 课程名称 上课地点 课程 授课教师 课程类别 课程时间 图3-2-2 课程信息E-R课程编号 学号 姓名 成绩表 课程名 成绩 图3-2-3 学生成绩E-R图

3.3 结构设计与结构功能图

3.3.1 结构设计

根据对系统进行需求分析,本系统将分为4个模块: (1) 学生管理

管理学生基本信息,包括个人信息的添加、修改、删除以及学生信息的浏览。 (2) 课程管理

管理课程的基本信息,包括课程信息的添加、修改和删除以及学生信息的浏览。 (3)成绩管理

管理学生选课的成绩信息,包括成绩的增加。 3.3.2 功能结构图

学生管理系统功能结构如图所示

题目:学生信息管理系统 第 11 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

学生成管理系统 系统管理 学生信息 课程管理 成绩管理 退出 学生信息增加 学生信息删除 学生信息更改 学生信息的浏览 课程增加 课程删除 课程更改 课程信息浏览 成绩增加 题目:学生信息管理系统 第 12 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

第四章 系统实现

该系统由4个模块构成,包括学生管理系统主界面模块、学生信息管理模块、课程信息管理模块、成绩信息管理模块。下面分别加以叙述:

4.1学生管理系统主界面模块

学生管理系统主界面模块包括StuMS.java和StuMain.java两个文件。StuMS是学生管理系统的主运行类,其中有运行整个程序的main方法,该文件生成了StuMain类的一个实例,从而生成了学生管理系统的界面,如图4.1所示。StuMain类继承自JFrame类,实现了ActionListener接口,他有一个不带参数的构造方法StuMain(),用来生成StuMain的实例。StuMain类将所有功能集中到菜单栏中,并通过调用其他模块来实现学生管理系统的各个功能。运行结果如图4-1所示

图4-1 学生管理系统主界面

4.2 学生信息管理模块

学生信息管理模块主要由AddStuInfo.java、ModStuInfo.java、DelStuInfo.java和ViewStuInfo.java共计4个文件组成,其构成关系如图4-2所示。

题目:学生信息管理系统 第 13 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

增加学生信息 修改学生信息 按学号查询 学生信息超类 删除学生信息 按学号查询 学生信息浏览 图4-2 学生信息管理模块功能结构图

学生信息管理模块的6个文件组成了主界面中的“学生管理”菜单的内容,其中包括增加、修改、删除和学生选课功能,用户可以通过输入相应操作来增加、修改、删除相应信息,然后到access数据表中查询相应结果,运行结果如图4-3所示

题目:学生信息管理系统 第 14 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

图4-3 学生信息管理模块的运行界面

源程序主要代码介绍: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.ResultSet;

public class ViewStuInfo {

JFrame fr=new JFrame(); Container ctp;

JPanel upPanel = new JPanel(); JPanel downPanel = new JPanel(); ResultSet r=null;

// 框架的大小

Dimension faceSize = new Dimension(400, 250);

JLabel jLabel1 = new JLabel(\学 号:\JLabel jLabel2 = new JLabel(\姓 名:\JLabel jLabel3 = new JLabel(\性 别:\JLabel jLabel4 = new JLabel(\民 族:\JLabel jLabel5 = new JLabel(\出生日期:\JLabel jLabel6 = new JLabel(\入学时间:\JLabel jLabel7 = new JLabel(\学 院:\JLabel jLabel8 = new JLabel(\专 业:\

题目:学生信息管理系统 第 15 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

JTextField sNum = new JTextField(15); JTextField sName = new JTextField(15); JTextField sSex = new JTextField(15); JTextField sSethnic = new JTextField(15); JTextField sBirth = new JTextField(15); JTextField sYear = new JTextField(15); JTextField sMajor = new JTextField(15); JTextField sCollege = new JTextField(15);

JButton btnView= new JButton(\浏览\ JButton btnPre= new JButton(\上一条\ JButton btnNext = new JButton(\下一条\ JButton eixtInfo = new JButton(\退出\

public ViewStuInfo() {

fr.setSize(faceSize);

fr.setTitle(\学生综合信息管理\ fr.setResizable(false); try { Init();

}

catch(Exception e) { e.printStackTrace();

}

}

public void Init(){

题目:学生信息管理系统 第 16 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

ctp=fr.getContentPane();

ctp.setLayout(new BorderLayout());

//上部面板的布局

upPanel.setLayout(new GridLayout(4,4,5,5)); upPanel.add(jLabel1); upPanel.add(sNum); upPanel.add(jLabel2); upPanel.add(sName); upPanel.add(jLabel3); upPanel.add(sSex); upPanel.add(jLabel4); upPanel.add(sSethnic); upPanel.add(jLabel5); upPanel.add(sBirth); upPanel.add(jLabel6); upPanel.add(sYear); upPanel.add(jLabel7); upPanel.add(sCollege); upPanel.add(jLabel8); upPanel.add(sMajor);

ctp.add(upPanel, BorderLayout.CENTER);

//下部面板的布局 downPanel.add(btnView); downPanel.add(btnPre);

downPanel.add(btnNext);

downPanel.add(eixtInfo);

题目:学生信息管理系统 第 17 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

ctp.add(downPanel, BorderLayout.SOUTH);

//添加事件侦听

myMonitorView mm=new myMonitorView(); btnView.addActionListener(mm); btnPre.addActionListener(mm);

btnNext.addActionListener(mm); eixtInfo.addActionListener(mm);

sNum.setEditable(false); sName.setEditable(false); sSex.setEditable(false); sSethnic.setEditable(false); sBirth.setEditable(false); sYear.setEditable(false); sMajor.setEditable(false); sCollege.setEditable(false); btnPre.setEnabled(false); btnNext.setEnabled(false);

}

class myMonitorView implements ActionListener { public void actionPerformed(ActionEvent e) { Object obj = e.getSource(); if (obj == btnView) { //浏览

题目:学生信息管理系统 第 18 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

Database db=new Database(); db.OpenConn(); try {

String

sql=\

sNum,sname,ssex,sbirth,sethnic,syear,smajor,scollege from student\

}

catch(Exception ex) {

String s=\捕获错误信息\r=db.executeQuery(sql); r.first();

sNum.setText(r.getString(\sName.setText(r.getString(\sSex.setText(r.getString(\sSethnic.setText(r.getString(\sBirth.setText(r.getString(\sYear.setText(r.getString(\sMajor.setText(r.getString(\sCollege.setText(r.getString(\

btnPre.setEnabled(true); btnNext.setEnabled(true);

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage(),

s,0);

}

题目:学生信息管理系统 第 19 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

}

else if (obj == btnPre) { //上一条

try{

btnNext.setEnabled(true);

r.previous();

sNum.setText(r.getString(\

sName.setText(r.getString(\sSex.setText(r.getString(\sSethnic.setText(r.getString(\sBirth.setText(r.getString(\sYear.setText(r.getString(\sMajor.setText(r.getString(\sCollege.setText(r.getString(\

}

catch(Exception ex){

System.out.println(\已经超出第一条记录!\ btnPre.setEnabled(false); }

}

else if (obj == btnNext) { //下一条

try{

btnPre.setEnabled(true);

r.next();

sNum.setText(r.getString(\

sName.setText(r.getString(\sSex.setText(r.getString(\sSethnic.setText(r.getString(\

题目:学生信息管理系统 第 20 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

} }

}

sBirth.setText(r.getString(\sYear.setText(r.getString(\sMajor.setText(r.getString(\sCollege.setText(r.getString(\

}

catch(Exception ex){

System.out.println(\已经超过最后一条记录!\ btnNext.setEnabled(false); } }

else if (obj == eixtInfo) { //退出 }

fr.dispose();

public void setVisible(boolean flag) { }

fr.setVisible(flag);

4.3 课程信息管理模块

课程信息管理模块主要由ADDCourseInfo.java、ModCourse.java、ModCourseInfo.java、DelCourseInfo.java、ViewCourseInfo.java这5个文件组成,其构成关系如图4-4所示。

题目:学生信息管理系统 第 21 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

增加课程信息 课程信息超类 修改课程信息 按课程号查询 删除课程信息 按课程号查询 课程信息浏览 图4-4 课程信息管理模块功能结构图

课程信息管理模块中的5个类文件组成了主界面中“课程管理”菜单的内容,其中包括增加、修改、删除和课程信息浏览功能,用户可以通过输入相应操作来增加、修改、删除相应信息,然后到access数据表中查询相应结果,运行结果如图4-5所示

图4-5 课程信息管理模块运行界面

源程序主要代码介绍: import javax.swing.*;

题目:学生信息管理系统 第 22 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

import java.awt.*; import java.awt.event.*; import java.sql.*;

public class ModCourseInfo {

JFrame fr=new JFrame(); Container ctp;

JPanel upPanel = new JPanel(); JPanel downPanel = new JPanel();

// 框架的大小

JComboBox cNum = new JComboBox(); JTextField cName = new JTextField(15); JTextField cTea = new JTextField(15); JTextField cPlace = new JTextField(15); JTextField cType = new JTextField(15);

JLabel jLabel1 = new JLabel(\课程号:\JLabel jLabel2 = new JLabel(\课程名:\JLabel jLabel3 = new JLabel(\教师:\JLabel jLabel4 = new JLabel(\地点:\JLabel jLabel5 = new JLabel(\类别:\JLabel jLabel6 = new JLabel(\时间:\

Dimension faceSize = new Dimension(400, 250);

题目:学生信息管理系统 第 23 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

JTextField cTime = new JTextField(15);

JButton ModInfo = new JButton(\修改\

JButton eixtInfo = new JButton(\退出\

public ModCourseInfo() {

fr.setSize(faceSize);

fr.setTitle(\课程综合信息管理\ fr.setResizable(false); try { Init(); FillsNum();

}

catch(Exception e) { e.printStackTrace();

}

}

public void Init(){

ctp=fr.getContentPane();

ctp.setLayout(new BorderLayout());

upPanel.setLayout(new GridLayout(6,2,5,5)); upPanel.add(jLabel1); upPanel.add(cNum); upPanel.add(jLabel2);

upPanel.add(cName);

题目:学生信息管理系统 第 24 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

upPanel.add(jLabel3); upPanel.add(cTea); upPanel.add(jLabel4); upPanel.add(cPlace); upPanel.add(jLabel5); upPanel.add(cType); upPanel.add(jLabel6); upPanel.add(cTime);

ctp.add(upPanel, BorderLayout.CENTER); downPanel.add(ModInfo); downPanel.add(eixtInfo);

ctp.add(downPanel, BorderLayout.SOUTH);

//添加事件侦听

myMonitorMod mm=new myMonitorMod();

ModInfo.addActionListener(mm); eixtInfo.addActionListener(mm);

MyMonitorCbx m=new MyMonitorCbx(); cNum.addItemListener(m);

} class myMonitorMod implements ActionListener { public void actionPerformed(ActionEvent e) { Object obj = e.getSource();

if (obj == ModInfo)

题目:学生信息管理系统 第 25 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

{ //修改

Database db=new Database(); db.OpenConn();

String Num=cNum.getSelectedItem().toString(); String Name=cName.getText(); String Teacher=cTea.getText(); String Place=cPlace.getText(); String Type=cType.getText(); String Time=cTime.getText(); try {

if(Name.equals(\{

String s=\信息\

String message=\课程名不能为空!\

JOptionPane.showMessageDialog(fr.getContentPane(),message,s,0);

} else {

String sql=\course set cname = '\

cteacher = '\cplace = '\ctype = '\ctime = '\

}

db.closeStmt(); db.closeConn();

题目:学生信息管理系统 第 26 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

}

catch(Exception ex) {

String s=\捕获错误信息\

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage(),

s,0);

class MyMonitorCbx implements ItemListener {

public void itemStateChanged(ItemEvent e) {

Database db=new Database(); db.OpenConn(); String

from

sql=\course

where

}

}

}

else if (obj == eixtInfo) { //退出 }

fr.dispose(); }

cnum,cname,cteacher,cplace,ctype,ctime cNum='\

ResultSet r=db.executeQuery(sql); try

题目:学生信息管理系统 第 27 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

{ }

catch(Exception ex) {

String s=\捕获错误信息\while(r.next()) { }

db.closeStmt(); db.closeConn();

cName.setText(r.getString(\cTea.setText(r.getString(\cPlace.setText(r.getString(\cType.setText(r.getString(\cTime.setText(r.getString(\

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage(),

s,0);

public void FillsNum() {

Database db=new Database(); db.OpenConn();

String sql=\

}

}

}

题目:学生信息管理系统 第 28 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

ResultSet r=db.executeQuery(sql); try { }

catch(Exception ex) {

String s=\捕获错误信息\while(r.next()) { }

db.closeStmt(); db.closeConn();

String num=r.getString(\cNum.addItem(num);

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage(),

s,0);

}

public void setVisible(boolean flag) { }

fr.setVisible(flag);

}

}

题目:学生信息管理系统 第 29 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

4.4 成绩信息管理模块

成绩信息管理模块主要由AddGradeInfo.java这1个文件组成,其构成关系如图4-6所示。

成绩管理超类 成绩增加信息 图4-6 成绩信息管理模块功能结构图

成绩信息管理模块中的1个类文件组成了主界面中的“成绩管理”菜单的内容,其中包括增加功能,用户可以通过输入相应操作来增加应信息,然后到access数据表中查询相应结果,运行结果如图4-7所示

题目:学生信息管理系统 第 30 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

图4-7 成绩信息管理模块的运行界面

源程序主要代码介绍:

import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.ResultSet; public class AddGrideInfo {

JFrame fr=new JFrame();Container ctp;

JPanel upPanel = new JPanel();JPanel downPanel = new JPanel(); Dimension faceSize = new Dimension(400, 250);

JLabel jLabel1 = new JLabel(\课程号:\JLabel jLabel2 = new JLabel(\课程名:\JLabel jLabel3 = new JLabel(\学号:\JLabel jLabel4 = new JLabel(\姓名:\JLabel jLabel5 = new JLabel(\成绩:\JComboBox cnum = new JComboBox(); JTextField cname = new JTextField(15);

题目:学生信息管理系统 第 31 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

JComboBox sNum = new JComboBox(); JTextField sName = new JTextField(15); JTextField gride = new JTextField(15); JButton addInfo = new JButton(\增加\ JButton clearInfo = new JButton(\清空\ JButton eixtInfo = new JButton(\退出\

public AddGrideInfo() { }

public void Init(){

ctp=fr.getContentPane();ctp.setLayout(new BorderLayout()); upPanel.setLayout(new GridLayout(3,3,5,5));

upPanel.add(jLabel1);upPanel.add(cnum);upPanel.add(jLabel2); upPanel.add(cname);upPanel.add(jLabel3);upPanel.add(sNum); upPanel.add(jLabel4);upPanel.add(sName);upPanel.add(jLabel5); upPanel.add(gride);

ctp.add(upPanel, BorderLayout.CENTER); downPanel.add(addInfo); downPanel.add(eixtInfo);

downPanel.add(clearInfo);

fr.setSize(faceSize);

fr.setTitle(\成绩综合信息管理\fr.setResizable(false);

try {Init();FillcNum();FillsNum();}

catch(Exception e) {e.printStackTrace();}

ctp.add(downPanel, BorderLayout.SOUTH); myMonitorAdd mm=new myMonitorAdd();

addInfo.addActionListener(mm); clearInfo.addActionListener(mm); eixtInfo.addActionListener(mm);MyMonitorCbx m=new MyMonitorCbx(); sNum.addItemListener(m);cnum.addItemListener(m);} class myMonitorAdd implements ActionListener

题目:学生信息管理系统 第 32 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

{public void actionPerformed(ActionEvent e) {

Object obj = e.getSource(); if (obj == addInfo)

{ Database db=new Database();db.OpenConn();

String Num=sNum.getSelectedItem().toString(); String Num1=cnum.getSelectedItem().toString(); String q=gride.getText();

try

{if(Num.equals(\

{String s=\信息\学号或课程号不能为空!\

JOptionPane.showMessageDialog(fr.getContentPane(),message,s,0); }

else

{String sql=\

\

db.executeUpdate(sql); db.closeStmt();

db.closeConn();}}

catch(Exception ex) {String

s=\

\

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage(),

s,0); }

setNull();}

else if (obj == clearInfo) { setNull();} }

class MyMonitorCbx implements ItemListener {public void itemStateChanged(ItemEvent e)

{Object obj = e.getSource();

if (obj == cnum) }

else if (obj == eixtInfo) {fr.dispose();}

题目:学生信息管理系统 第 33 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

{ Database db=new Database();db.OpenConn();

String

sql=\

cname

from

course

where

cnum='\

ResultSet r=db.executeQuery(sql); try

{while(r.next())

{cname.setText(r.getString(\db.closeStmt();db.closeConn(); }

catch(Exception ex) {String s=\捕获错误信息\

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage

(),s,0); }

}

else if (obj == sNum) {

Database db=new Database();db.OpenConn(); String

sql=\

sname

from

student

where

sNum='\

ResultSet r=db.executeQuery(sql); try

{while(r.next())

{sName.setText(r.getString(\db.closeStmt();db.closeConn();}

catch(Exception ex) {String s=\捕获错误信息\

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage

(),s,0); }

}

题目:学生信息管理系统 第 34 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

}

}

public void FillcNum()

{Database db=new Database();db.OpenConn();

}

db.closeStmt();db.closeConn();} String sql=\ResultSet r=db.executeQuery(sql); try

{while(r.next())

{String num=r.getString(\

catch(Exception ex) {String s=\捕获错误信息\

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage

(),s,0); }

}public void FillsNum()

{Database db=new Database();db.OpenConn();

String sql=\ResultSet r=db.executeQuery(sql); try

{while(r.next())

{String num=r.getString(\} db.closeStmt();db.closeConn();}

catch(Exception ex) {String s=\捕获错误信息\

JOptionPane.showMessageDialog(fr.getContentPane(),ex.getMessage

(),s,0); }

}

public void setVisible(boolean flag)

题目:学生信息管理系统 第 35 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

{fr.setVisible(flag);} void setNull(){ gride.setText(null);}}

题目:学生信息管理系统 第 36 页 共 40 页

吉林大学计算机与科学技术学院 本科生论文

第五章 系统调试与测试

5.1 测试的定义及目的

软件测试就是在软件投入运行之前,对软件需求分析、设计规格说明和编码的最终复审,是保证软件质量的关键步骤。如果要给软件测试下定义,可以这样讲,软件测试是为了发现错误而执行程序的过程。

测试的目的在于将软件设计时设计者与程序开发者之间理解不一致的地方、功能与需求不一致的地方、不符合逻辑思维的情况都反映给质量控制部门,由质量控制部门调配需求部门统一做出一个明确解答,再由开发人员进行修改和补充。测试的目的是以最少的时间和人力找出软件中潜在的各种错误和缺陷。

5.2系统功能测试

功能测试主要是测试程序模块是否实现了设计中所要求的功能。功能测试中需要注意的有:

(1)查询功能中,有按单一查询条件进行查询的,也有按多个查询条件组合查询的。这里要注意的多个查询条件之间的关系。还有一些常识性的问题,比如按月查询,闰月中二月的天数。

(2)录入功能中,需要注意的是前台设置的数值长度是否大于后台数值长度,以及前台和后台的数据结构是否相符,很多时候录入功能无法实现是由于这些原因。还有就是必须录入的字段的设置时候有误。

(3)测试删除功能中需要注意的是单击\删除\按钮后,一般会出现提示信息,询问是否确定删除。通常情况下,我们单击\确认\按钮查看信息是否被删除掉了,而忽略了单击\取消\按钮后程序的反应:这时有可能的是没有删除,还有一种可能是即便单击了\取消\按钮,也一样删除了数据。另外,在删除多条记录的时候,要注意连续选中的几条记录是否真正都被删除掉了,即如果再按照这种查询方式查询,时候还能查询出来。有的时候需要在数据库中设立一个标志位,而不是真正的物理删除。所以在下一次查询中,可能还会被查询出来,这主要是因为在查询条件中没有将标志考虑在内。

(4)关于修改功能的测试主要是看修改确认后是否数据真正已被修改了。这

题目:学生信息管理系统 第 37 页 共 40 页

本文来源:https://www.bwwdw.com/article/2j4g.html

Top