成绩管理系统java+mySQL
java项目经验案例

java项目经验案例Java项目经验案例一:学生成绩管理系统项目描述:学生成绩管理系统是一个用于管理学生信息和成绩的系统。
该系统具有以下功能:学生信息的添加、删除、修改和查询;学生成绩的录入、计算平均成绩和排名;教师和管理员的登录和权限管理。
项目实施:1.需求分析:根据客户需求,确定系统功能和界面设计。
与客户沟通,了解具体需求,明确系统功能和界面要求。
2.技术选型:选择适合的技术框架和数据库,如Spring MVC、MyBatis和MySQL。
3.数据库设计:根据系统需求,设计学生信息表和成绩表,并建立相应的关联关系。
4.界面设计:设计用户界面,包括登录界面、学生信息管理界面、成绩管理界面等。
5.编码实现:根据需求和设计,进行系统编码实现,包括前端界面和后端逻辑。
6.单元测试:对系统各个模块进行单元测试,确保功能正常。
7.集成测试:将各个模块集成,进行功能测试和性能测试,确保系统稳定。
8.上线部署:将系统部署到服务器上,配置好相关环境,进行线上测试。
9.用户培训:对管理员和教师进行培训,使其能够熟练操作系统。
10.系统维护:定期进行系统维护和更新,修复bug和优化系统性能。
项目亮点:1.采用Spring MVC框架,实现了模块化开发,提高了代码的复用性和可维护性。
2.使用MyBatis进行数据库操作,提高了数据库访问的效率。
3.采用前后端分离的架构,前端使用Vue.js框架,实现了页面的交互和数据展示。
4.使用JWT实现用户认证和权限管理,保证了系统的安全性。
5.采用缓存技术,提高了系统的响应速度和并发能力。
6.引入日志管理,方便系统的监控和故障排查。
7.系统界面简洁美观,用户操作友好,提高了用户体验。
项目收获:1.熟练掌握了Java语言和Spring MVC框架的开发技术。
2.了解了数据库设计和优化的方法,提高了数据的存储和访问效率。
3.学习了前端开发技术,提高了用户界面的设计和交互能力。
4.加深了对软件开发流程和项目管理的理解,提高了团队协作能力。
基于java的学生成绩管理系统的设计与实现

文章标题:基于Java的学生成绩管理系统的设计与实现一、引言学生成绩管理系统是学校管理系统中的重要组成部分,它可以帮助学校、老师和学生高效地管理和查询学生成绩信息。
基于Java的学生成绩管理系统的设计与实现是一个重要的课题,本文将从深度与广度两个角度来探讨这个主题。
二、学生成绩管理系统的基本要求学生成绩管理系统需要满足以下基本要求:1)能够实现学生信息的录入、修改和删除;2)能够实现课程信息的录入、修改和删除;3)能够实现成绩信息的录入、修改和删除;4)能够实现成绩的统计和排名功能;5)能够实现成绩的查询和导出功能。
三、基于Java的学生成绩管理系统的设计与实现1. 系统架构设计学生成绩管理系统可以采用三层架构设计,即用户界面层、业务逻辑层和数据访问层。
用户界面层负责与用户的交互,业务逻辑层负责处理业务逻辑,数据访问层负责与数据库进行交互。
2. 数据库设计数据库设计是学生成绩管理系统中的关键环节,需要设计学生信息表、课程信息表和成绩信息表,并建立它们之间的关联关系。
3. 功能模块设计学生成绩管理系统的功能模块包括学生信息管理、课程信息管理、成绩信息管理、成绩统计和排名以及成绩查询和导出功能。
四、基于Java的学生成绩管理系统的个人观点我认为基于Java的学生成绩管理系统的设计与实现不仅可以提高学校管理效率,也可以帮助老师更好地了解学生的学习情况,同时也能够让学生更方便地查询自己的成绩信息。
这个系统可以为学校管理和教学工作提供很大的便利,是非常值得推广和应用的。
五、总结与展望通过本文的探讨,我们深入了解了基于Java的学生成绩管理系统的设计与实现,从系统架构设计、数据库设计,功能模块设计等方面进行了全面的评估。
我们也共享了个人观点和理解。
希望本文能够为读者提供有价值的信息,同时也为学生成绩管理系统的推广应用提供一些借鉴和思路。
六、个人观点通过本次的撰写,我对基于Java的学生成绩管理系统的设计与实现有了更深入的了解,同时也对系统架构设计、数据库设计、功能模块设计等方面有了更全面的认识。
java+mysql学生信息管理系统课程设计报告

课设名称:学生成绩管理系统院(系):姓名:学号:年级:专业班级:指导教师:时间: 2012年6月目录第一部分摘要 (3)第二部分目的背景与意义 (4)第三部分需求分析 (4)第四部分系统设计 (4)4.1 结构设计 (4)4。
2 功能结构图 (5)4。
3 功能流程以及工作流描述 (6)第五部分数据库的设计 (6)5.1数据库设计 (6)5。
2数据表的设计 (7)第六部分详细设计 (8)6。
1 学生管理系统主界面模块 (8)6.2 学生信息管理模块 (9)6。
3 课程信息管理模块 (11)6.4 查询模块 (12)图6.5 数据库操作模块 (13)第七部分课程设计心得 (13)第八部分附录(按名称排序) (14)第一部分摘要该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理.目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要.本文介绍了学生信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计和系统实施的全过程。
在开发方法上本系统利用了软件工程化的思想和方法,总体上采用结构化生命周期开发方法,具体模块实施采用了原型法和面向对象系统开发方法。
并采用JAVA作为开发工具,mysql作为后台数据库。
本系统具有学生管理、课程管理、成绩管理、信息查询等功能,分成四大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。
本系统完成了学生信息的增加、修改、删除、查询和选课,课程信息的增加、修改、删除、查询,成绩的添加、修改、查询等功能.【关键字】:信息管理系统、模块设计、软件工程。
java学生成绩管理系统报告

Java学生成绩管理系统报告简介本文将介绍一个基于Java开发的学生成绩管理系统。
该系统旨在帮助学校和教师高效管理学生的成绩信息,包括录入、查询、统计和分析等功能。
开发环境和工具•Java编程语言•IntelliJ IDEA集成开发环境•MySQL数据库功能需求1. 学生信息管理•录入学生信息,包括学生姓名、学号、性别等基本信息。
•修改学生信息,如学号、班级等。
•删除学生信息。
2. 成绩录入和查询•录入学生的考试成绩,包括科目、分数、考试日期等。
•查询学生的考试成绩,可按照学生姓名、学号、科目等进行检索。
3. 成绩统计和分析•对学生的考试成绩进行统计,包括平均分、最高分、最低分等。
•根据科目、班级等条件进行成绩分析,生成成绩报表。
4. 数据备份与恢复•对学生信息和成绩数据进行备份,以防数据丢失或损坏。
•支持从备份中恢复数据。
数据库设计学生表(student)字段名类型备注学号int 主键姓名varchar(50)性别varchar(10)班级varchar(50)成绩表(score)字段名类型备注学号int 外键科目varchar(50)分数float考试日期date系统架构本系统采用Java MVC(Model-View-Controller)架构模式进行设计和开发。
•Model层:负责数据的处理和存储,包括与数据库的交互。
•View层:负责用户界面的展示和交互,使用Swing或JavaFX等GUI 库进行开发。
•Controller层:负责接收用户的请求,调用对应的Model方法进行数据处理,并更新View层的显示。
开发步骤1. 数据库连接和表设计使用JDBC连接MySQL数据库,并创建上述的学生表和成绩表。
2. 学生信息管理模块开发•创建学生类(Student)和学生管理类(StudentManager)。
•实现学生信息的录入、修改和删除功能。
3. 成绩录入和查询模块开发•创建成绩类(Score)和成绩管理类(ScoreManager)。
学生成绩管理系统分析报告

学生成绩管理系统-—分析报告目录目录...................................................... 错误!未定义书签。
一、概要设计 (1)1. 功能结构图: (1)2。
开发工具的选择: (1)3。
网络选择: (2)4。
数据库选择: (2)5. 操作系统: (2)二、详细设计 (3)1。
数据库设计: (3)1) E-R图 (3)2)关系模型: (3)3)数据库表: (4)2. 程序流程图: (5)1) 成绩查询 (5)2) 成绩录入 (5)3)成绩修改 (6)3。
代码设计: (6)4。
界面设计: (6)一、概要设计1.功能结构图:学生成绩系统主要由教务处上成绩,学生模块、教师模块、管理员模块,其模块图如下:图1.1 功能结构图其各子功能如下:1.教务处功能:教务处有专门的管理人员负责成绩的管理工作,教务处下分为按各级分院上成绩。
2.学生模块:学生登录自己的学号密码就可以登录到自己的界面,上面有自己的个人信息和考成绩结果等,成绩查询可以按照成绩高低查询和按课程查询;3。
教师模块:教师可以对学生的成绩进行管理,成绩管理可分别对成绩进行录入、修改、添加、查询,教师的信息也可以查询;4.管理员模块:管理员模块可以对教师、学生和成绩进行进一步的管理;2.开发工具的选择:MyEclipse开发工具:MYEclipse 企业级工作平台(MYEclipse EnterpriseWorkbench,简称MYEclipse)是对EclipseIDE的扩展,利用它可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate.Eclipse 是一个开放源码社区,专注于开发框架和示范工具的通用平台,从而使得构建和部署软件更简单且成本有效.Dreamweaver集多种网页开发功能于一身,可以轻松地完成几乎所有网页技术的编辑。
用mysql实现学生成绩管理代码

用mysql实现学生成绩管理代码学生成绩管理是教育行业中非常重要的一项工作,它涉及到学生的学习情况、成绩统计、课程安排等多方面内容。
为了更好地管理学生成绩数据,我们可以利用MySQL数据库来实现学生成绩管理代码,实现高效的学生成绩管理。
一、数据库设计在开始实现学生成绩管理代码之前,我们首先要进行数据库设计。
为了存储学生信息和成绩数据,我们可以创建两张表:学生表和成绩表。
学生表包含以下字段:-学号(id):唯一标识学生的编号,也是该表的主键。
-姓名(name):学生的姓名。
-班级(class):学生所在的班级。
成绩表包含以下字段:-学号(id):学生的学号,也是该表的外键,与学生表中的id字段关联。
-课程(course):学生所修的课程。
-成绩(score):学生在该门课程上的成绩。
二、创建数据库和表在MySQL命令行中,我们可以使用以下SQL语句创建学生成绩管理数据库和相应的表:```CREATE DATABASE student_score;USE student_score;CREATE TABLE student ( id INT PRIMARY KEY, name VARCHAR(50), class VARCHAR(50));CREATE TABLE score ( id INT, course VARCHAR(50), score INT, FOREIGN KEY (id) REFERENCES student(id));```三、插入数据在完成数据库和表的创建之后,我们可以向学生表和成绩表中插入数据。
以下是向学生表中插入学生信息的示例:```INSERT INTO student (id, name, class) VALUES (1, '张三', '一班'), (2, '李四', '二班'), (3, '王五', '一班');```以下是向成绩表中插入学生成绩的示例:```INSERT INTO score (id, course, score) VALUES (1, '数学', 90), (1, '英语', 85), (2, '数学', 95), (2, '英语', 80), (3, '数学', 88), (3, '英语', 92);```四、查询数据在学生成绩管理中,我们经常需要查询学生的成绩信息。
学生信息管理系统java功能模块
学生信息管理系统Java功能模块简介学生信息管理系统是一种用于管理学生信息的软件系统。
它可以帮助学校、教育机构或其他组织有效地记录、存储和处理学生的个人和学术信息。
Java是一种面向对象的编程语言,具有广泛的应用领域和强大的开发工具,非常适合用于开发学生信息管理系统。
本文将介绍学生信息管理系统的Java功能模块,包括以下几个方面:用户登录与权限管理、学生信息录入与查询、成绩管理、课程管理以及数据统计与报表生成。
用户登录与权限管理用户登录用户登录是系统的入口,通过输入用户名和密码进行身份验证。
在Java中,可以使用Swing或JavaFX等图形界面库创建一个登录界面,用户输入用户名和密码后,通过数据库验证用户身份。
权限管理不同用户可能具有不同的权限,例如管理员可以对系统进行全面管理,而普通教师只能查看和编辑自己所负责的班级或课程。
在Java中,可以使用角色-权限模型来实现权限管理。
每个用户被分配到一个或多个角色,并且每个角色具有一组特定的权限。
通过为每个操作配置相应的权限,并在代码中进行权限检查,可以确保只有具备相应权限的用户才能执行该操作。
学生信息录入与查询学生信息录入学生信息包括个人基本信息、家庭背景、学习成绩等。
在Java中,可以使用面向对象的思想,创建一个学生类,包含各种属性和方法。
通过用户界面,可以输入学生的各项信息,并将其保存到数据库中。
学生信息查询学生信息查询是系统的核心功能之一。
用户可以通过多种方式进行查询,例如按照学号、姓名、班级等进行精确查询,或者按照年级、性别等进行模糊查询。
在Java中,可以使用SQL语句来实现数据库查询操作,并将结果显示在用户界面上。
成绩管理成绩录入成绩管理是学生信息管理系统的重要组成部分。
教师可以根据课程安排录入学生成绩,并将其与相应的学生和课程关联起来。
在Java中,可以使用面向对象的思想,创建一个成绩类,包含相关属性和方法。
通过用户界面,教师可以输入学生成绩,并将其保存到数据库中。
学生成绩在线管理系统数据库课程设计mysql+java
学生成绩在线管理系统数据库课程设计mysql+java以下是一个学生成绩在线管理系统的数据库设计示例,使用MySQL数据库和Java 编程语言:1. 学生表(students)-学生ID(student_id):主键,自增-学生姓名(student_name):varchar类型,最大长度为50-学生年龄(student_age):整数类型-学生性别(student_gender):varchar类型,最大长度为10-学生班级(student_class):varchar类型,最大长度为502. 课程表(courses)-课程ID(course_id):主键,自增-课程名称(course_name):varchar类型,最大长度为503. 成绩表(scores)-成绩ID(score_id):主键,自增-学生ID(student_id):外键,关联到学生表的学生ID-课程ID(course_id):外键,关联到课程表的课程ID-分数(score):浮点数类型通过以上表的设计,你可以实现以下功能:-添加学生信息-添加课程信息-添加学生成绩-查询学生信息-查询课程信息-查询学生的成绩-更新学生信息-更新课程信息-更新学生成绩-删除学生信息-删除课程信息-删除学生成绩在Java中,你可以使用JDBC(Java Database Connectivity)来连接MySQL数据库并执行SQL语句来实现对数据库的操作。
你需要配置数据库连接信息,并编写相应的Java代码来执行查询和更新操作。
这只是一个简单的数据库设计示例,你可以根据你的具体需求进行调整和扩展。
JAVA课程设计报告,基于mysql的学生信息管理系统
总结16一、课题介绍课题介绍 ...................................... ...................................... 3二、目的和要求目的和要求 ................................... ................................... 3三、任务计划任务计划 ...................................... .. (3)需求分析需求分析 (5)一、学生管理系统的发展现状学生管理系统的发展现状 ................................ ................................ 5二、系统功能分析系统功能分析 ................................... .. (5)三、系统结构框图系统结构框图 ................................... .. (5)数据库设计.........................................创建数据表的结构创建数据表的结构 ................................. (7)各表功能及其关系各表功能及其关系 ................................. (7)系统模块功能的实现与界面设计 (8)一、系统主要模块系统主要模块 ................................... ................................... 8二、欢迎界面欢迎界面 ..................................... ..................................... 9三、主菜单界面主菜单界面 ............................ ............................ 错误!未定义书签。
学生成绩管理信息系统-概要设计说明书
学绩管理信息系统-概要设计说明书学绩管理信息系统-概要设计说明书1.引言本文档旨在说明学绩管理信息系统的概要设计。
学绩管理信息系统是为学校提供一个方便、高效管理学绩的平台,包括学生信息管理、课程管理、成绩录入和查询等功能。
2.系统概述本系统旨在解决学校学绩管理中的一系列问题,将学生信息、课程信息和成绩信息进行统一管理,并为学生、教师和管理员提供相应的功能模块。
2.1 功能模块①学生信息管理该模块用于管理学生基本信息,包括学生姓名、学号、班级、性别等。
教师和管理员可以进行学生信息的添加、修改和删除操作。
②课程管理该模块用于管理课程信息,包括课程名称、课程编号、教师姓名等。
教师和管理员可以进行课程信息的添加、修改和删除操作。
③成绩录入与查询该模块用于录入学生的成绩信息,并提供学绩查询功能。
教师可以录入学生的成绩,学生和管理员可以根据学号或课程名查询学绩。
2.2 系统界面系统将提供学生信息管理界面、课程管理界面、成绩录入界面和成绩查询界面等。
每个界面将按照页面布局规范设计,确保用户友好性和易用性。
3.数据库设计系统将采用关系型数据库来存储学生信息、课程信息和成绩信息。
数据库设计包括表结构设计、关系设计和索引设计等。
4.系统架构系统的架构采用三层架构,包括表示层、业务层和数据访问层。
表示层负责用户界面的展示,业务层负责处理各种业务逻辑,数据访问层负责与数据库的交互。
5.开发环境系统将使用Java作为开发语言,采用Spring MVC框架和MySQL数据库。
开发工具包括Eclipse IDE和Navicat数据库管理工具。
6.运行环境系统将在Windows和Linux操作系统上运行,需要安装Java运行环境和MySQL数据库。
7.安全性设计考虑到敏感的学生信息和成绩信息,系统将采取一系列安全措施,包括用户权限管理、数据加密和防止SQL注入等。
8.性能设计为了提高系统的性能,系统将采用缓存技术、数据库索引优化和并发控制等手段,保证系统的响应速度和并发能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java语言》课程期末作业题目第9题:学生成绩管理系统学院计算机学院专业班别学号姓名温景钊2013年6月10日一、课程题目设计一个简易的学生成绩管理系统。
用于记录学生的各科成绩,以及实现常用的统计功能。
(1) 记录学生的基本信息,如姓名、学号、专业、班级等(2) 记录各科成绩(3) 实现常用的统计功能,如:单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值……(4) 使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线……(可选)(5) 必须使用数据库。
其它功能可自行扩展。
二、题目分析与设计1.注明所使用的开发环境(Eclipse、NetBeans,JBuilder)。
开发环境:Eclipse2.论述题目的需求。
给出软件功能架构图。
题目需求:通过数据库记录学生成绩和信息,并通过数据库读取这些信息,实现单个学生查找、全体学生查找等功能和单科排名、平均分、总分排名、平均分等功能。
其他扩展功能:登录界面,保存到txt文件。
软件功能架构图:其中,删除、修改、单个查找功能均通过学号定位学生3.论述界面设计过程,指出其设计上的创意及组件的布局策略。
界面设计过程:主要界面包括登录界面,主功能界面,各个子功能界面。
登录界面包括3个面板,每个面板放入相应的标签、文本框、按钮等组件,登录界面采用3行1列的网格布局;主功能界面包括菜单栏和若干面板,面板中放入标签或若干按钮,菜单栏的菜单项与按钮相对应,主功能界面采用7行1列的网格布局;学生管理类子功能(增加学生、删除学生、修改学生、单个查找)界面采用6行2列的网格布局,每个网格均放入一个面板,每个面板放入标签、文本框、组合框、按钮等组件,以达到较友好的界面效果;学生查找类子功能界面(查看全体、按年级查询、按班别查询、按专业查询)和成绩管理类子功能(单科排名、总分排名、合格学生、挂科学生)界面采用边界布局,界面的上部放入一个面板,面板放入相应的按钮或组合框,中部放入一个文本域。
所有错误信息等信息均通过对话框的形式显示相应信息。
4.论述程序逻辑的实现,包括类的设计、对象的协作过程等,必要时加以各种图形和表格辅助论述。
不得以粘贴代码的方式代替设计部分。
类的设计过程:本程序包括19个类文件,每个类文件只含有一个类,分别是包含main方法的主类Main,实现登录功能的类Login, 实现各种功能选择功能的类Function, 实现数据库连接的类 DataBaseCreate, 实现学生信息编辑功能类StudentEdit, 执行增加学生功能的类 AddStudent, 执行删除学生功能的类DeleteStudent, 执行修改学生功能的类 UpdateStudent, 执行单个查询功能的类IndexOfSingle, (由于AddStudent, DeleteStudent, UpdateStudent, IndexOfSingle 界面和操作基本相同,所以上4类均继承StudentEdit) 实现条件查找和成绩管理功能的类IndexOrManage, 执行查询全体功能的类LookAllStudents, 执行按年级查询功能的类 IndexOfGrade, 执行按班别查询功能的类 IndexOfClass, 执行按专业查询的类 IndexOfMajor, 执行单科排名功能的类 SubjectScoreRanking, 执行总分排名功能的类 TotalScoreRanking, 执行查找单科及格学生功能的类 PassStudents, 执行查找单科不及格学生功能的类NotPassStudents, (由于LookAllStudents, IndexOfGrade, IndexOfClass, IndexOfMajor, SubjectScoreRanking, TotalScoreRanking, PassStudents, NotPassStudents, 界面和操作基本相同,所以上8类均继承IndexOrManage)执行将文本域内容保存到TXT文件的类 TxtSave。
以上19个类,除了Main类以外,均包含一个构造方法,有些还包含actionPerformed(e)方法。
对象的协作过程:三、测试分析小四字体,1.5倍行距。
对程序的测试情况作出分析。
至少包括但不限于需要具备以下内容:1.阐述扩展包(仅限于SUN官方发布)的部署过程,并将扩展包附于光盘源程序中;给出数据库的详细配置说明。
导入扩展包mysql-connector-java-5.1.25-bin.jar数据库配置说明:数据库 mySQL数据库服务器 localhost端口 3306用户名 root密码空数据库名studentmanagementStudent 表2.典型测试数据的构建,并且给出测试数据的预计结果原数据:测试数据:添加学生10005 张兰女 2012 2 信息工程 19930506 82 74 58删除学生 10000修改学生 10001李嘉女 2011 4 网络工程 19920304 54 85 86.5单个查找 10003查询全体按年级查找2011级按班别查找1班按专业查找软件工程单科排名并显示平均分语文总分排名并显示平均分单科及格学生英语单科不及格学生语文保存Txt 总分预测结果:均成功完成操作3.本程序的测试情况,与预计结果作对比测试情况:成功完成相关操作添加学生10005 张兰女 2012 2 信息工程 19930506 82 74 58删除学生 10000修改学生 10001李嘉女 2011 4 网络工程 19920304 54 85 86.5 单个查找 10003 20001查询全体按年级查找2011级按班别查找1班按专业查找软件工程单科排名并显示平均分语文总分排名并显示平均分单科及格学生英语单科不及格学生语文保存Txt 总分排名附录:源代码小四字体,1.5倍行距。
只需列出程序中所有的包及相关的文件。
不需要打印源代码。
程序中所有的包及相关的文件:代码:import javax.swing.JFrame; public class Main {/*** @param args*/public static void main(String[] args) {Login login=new Login();login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}import java.awt.*;import java.awt.event.*;import javax.swing.*;//登录界面public class Login extends JFrame implements ActionListener{ JButton b1=new JButton("登录");JButton b2=new JButton("退出");JLabel la1=new JLabel("用户名");JLabel la2=new JLabel("密码");JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JTextField name=new JTextField(15);JPasswordField pw=new JPasswordField(15);public Login(){setTitle("学生成绩管理系统");getContentPane().setLayout(new GridLayout(3,1));getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);p1.add(la1);p1.add(name);p2.add(la2);p2.add(pw);p3.add(b1);p3.add(b2);setBounds(500, 250, 100, 100);pack();setVisible(true);pw.setEchoChar('*');b1.addActionListener(this);b2.addActionListener(this);}public void actionPerformed(ActionEvent e) {if(e.getActionCommand()=="登录"){String password=pw.getText();String user=name.getText();if(user.equals("admin") && password.equals("admin")){Function function=new Function();function.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(false);}else{JOptionPane.showMessageDialog(null, "用户名或密码错误", "Error", RMATION_MESSAGE);}}else if(e.getActionCommand()=="退出"){System.exit(0);}}}import java.sql.*;//连接数据库类public class DataBaseCreate {//连接数据库静态方法,若产生错误,则抛出相应错误信息public static Connection getConnection()throwsSQLException,ng.ClassNotFoundException{//建立本地数据库连接,编码规则转换为utf-8(正常录入中文)Stringurl="jdbc:mysql://localhost:3306/studentmanagement?useUnicode=true&ch aracterEncoding=utf8";Class.forName("com.mysql.jdbc.Driver");String userName="root";Connection con=DriverManager.getConnection(url, userName, "");return con;}}import javax.swing.JFrame;public class Main {/*** @param args*/public static void main(String[] args) {Login login=new Login();login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}import java.awt.*;import java.awt.event.*;import javax.swing.*;//主要功能界面public class Function extends JFrame implements ActionListener{ JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p6=new JPanel();JPanel p3=new JPanel();JPanel p4=new JPanel();JPanel p5=new JPanel();JButton add=new JButton("增加学生");JButton del=new JButton("删除学生");JButton update=new JButton("修改学生");JButton single=new JButton("单个查询");JButton look=new JButton("查看全体");JButton b11=new JButton("按年级查找");JButton b12=new JButton("按班别查找");JButton b13=new JButton("按专业查找");JLabel la1=new JLabel("学生管理");JLabel la2=new JLabel("成绩管理");JLabel la3=new JLabel("学生查找");JButton b1=new JButton("单科排名");JButton b2=new JButton("总分排名");JButton b3=new JButton("合格学生");JButton b4=new JButton("挂科学生");JMenuItem items[][]=new JMenuItem[4][];JMenuBar bar=new JMenuBar();JMenu m1=new JMenu("开始");JMenu m2=new JMenu("学生管理");JMenu m3=new JMenu("学生查找");JMenu m4=new JMenu("成绩管理");//构造方法public Function(){setTitle("学生成绩管理系统");//设计菜单栏items[0]=new JMenuItem[2];items[1]=new JMenuItem[4];items[2]=new JMenuItem[4];items[3]=new JMenuItem[4];m1.add(items[0][0]=new JMenuItem("返回"));m1.add(items[0][1]=new JMenuItem("退出"));m2.add(items[1][0]=new JMenuItem("增加学生"));m2.add(items[1][1]=new JMenuItem("删除学生"));m2.add(items[1][2]=new JMenuItem("修改学生"));m2.add(items[1][3]=new JMenuItem("单个查询"));m3.add(items[2][0]=new JMenuItem("查看全体"));m3.add(items[2][1]=new JMenuItem("按年级查找"));m3.add(items[2][2]=new JMenuItem("按班别查找"));m3.add(items[2][3]=new JMenuItem("按专业查找"));m4.add(items[3][0]=new JMenuItem("单科排名"));m4.add(items[3][1]=new JMenuItem("总分排名"));m4.add(items[3][2]=new JMenuItem("合格学生"));m4.add(items[3][3]=new JMenuItem("挂科学生"));bar.add(m1);bar.add(m2);bar.add(m3);bar.add(m4);//设计布局getContentPane().setLayout(new GridLayout(7,1));getContentPane().add(bar);getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p6);getContentPane().add(p3);getContentPane().add(p4);getContentPane().add(p5);p1.add(la1);p2.add(add);p2.add(del);p2.add(update);p2.add(single);p6.add(la3);p3.add(look);p3.add(b11);p3.add(b12);p3.add(b13);p4.add(la2);p5.add(b1);p5.add(b2);p5.add(b3);p5.add(b4);setBounds(500, 250, 100, 100);pack();setVisible(true);//注册监听器add.addActionListener(this);del.addActionListener(this); update.addActionListener(this); look.addActionListener(this); single.addActionListener(this);b11.addActionListener(this);b12.addActionListener(this);b13.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);items[0][0].addActionListener(this); items[0][1].addActionListener(this); items[1][0].addActionListener(this); items[1][1].addActionListener(this); items[1][2].addActionListener(this); items[1][3].addActionListener(this); items[2][0].addActionListener(this); items[2][1].addActionListener(this); items[2][2].addActionListener(this); items[2][3].addActionListener(this);items[3][0].addActionListener(this);items[3][1].addActionListener(this);items[3][2].addActionListener(this);items[3][3].addActionListener(this);}//按钮事件响应,对用对应的类对象public void actionPerformed(ActionEvent e) {if(e.getActionCommand()=="增加学生"){AddStudent addStudent =new AddStudent();}else if(e.getActionCommand()=="删除学生"){DeleteStudent delStudent=new DeleteStudent();}else if(e.getActionCommand()=="修改学生"){UpdateStudent delStudent=new UpdateStudent();}else if(e.getActionCommand()=="单个查询"){IndexSingle is=new IndexSingle();}else if(e.getActionCommand()=="查看全体"){LookAllStudents look=new LookAllStudents();}else if(e.getActionCommand()=="按年级查找"){IndexOfGrade ig=new IndexOfGrade();}else if(e.getActionCommand()=="按班别查找"){IndexOfClass ic=new IndexOfClass();}else if(e.getActionCommand()=="按专业查找"){IndexOfMajor im=new IndexOfMajor();}else if(e.getActionCommand()=="单科排名"){SubjectScoreRanking subject= new SubjectScoreRanking();}else if(e.getActionCommand()=="总分排名"){TotalScoreRanking subject= new TotalScoreRanking();}else if(e.getActionCommand()=="合格学生"){PassStudents pass=new PassStudents();}else if(e.getActionCommand()=="挂科学生"){NotPassStudents notPass=new NotPassStudents();}else if(e.getActionCommand()=="返回"){setVisible(false);Login login=new Login();login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}else if(e.getActionCommand()=="退出"){System.exit(0);}}}import java.awt.GridLayout;import java.awt.event.*;import javax.swing.*;public class StudentEdit extends JFrame{JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JPanel p4=new JPanel();JPanel p5=new JPanel();JPanel p6=new JPanel();JPanel p7=new JPanel();JPanel p8=new JPanel();JPanel p9=new JPanel();JPanel p10=new JPanel();JPanel p11=new JPanel();JPanel p12=new JPanel();JLabel la1=new JLabel("学号");JLabel la2=new JLabel("姓名");JLabel la3=new JLabel("性别");JLabel la4=new JLabel("生日");JLabel la5=new JLabel("年级");JLabel la6=new JLabel("班别");JLabel la7=new JLabel("语文");JLabel la8=new JLabel("英语");JLabel la9=new JLabel("数学");JLabel la10=new JLabel("专业");JButton b1=new JButton("确定");JButton b2=new JButton("取消");JTextField num=new JTextField(10);JTextField name=new JTextField(10);JTextField chinese=new JTextField(10);JTextField english=new JTextField(10);JTextField maths=new JTextField(10);JTextField birth=new JTextField(10);String[] sex={"","男","女"};JComboBox s=new JComboBox(sex);String[] grades={"","2010","2011","2012","2013"};JComboBox grade=new JComboBox(grades);String[] classes={"","1","2","3","4","5","6"};JComboBox clas=new JComboBox(classes);String[] majors={"","网络工程","软件工程","信息工程","计算机科学"};JComboBox major=new JComboBox(majors);public StudentEdit(){p1.add(la1);p1.add(num);p2.add(la2);p2.add(name);p3.add(la3);p3.add(s);p4.add(la4);p4.add(birth);p5.add(la5);p5.add(grade);p6.add(la6);p6.add(clas);p7.add(la7);p7.add(chinese);p8.add(la8);p8.add(english);p9.add(la9);p9.add(maths);p10.add(la10);p10.add(major);p11.add(b1);p11.add(b2);//设计布局getContentPane().setLayout(new GridLayout(6,2));getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);getContentPane().add(p4);getContentPane().add(p5);getContentPane().add(p6);getContentPane().add(p7);getContentPane().add(p8);getContentPane().add(p9);getContentPane().add(p10);getContentPane().add(p11);getContentPane().add(p12);setBounds(500, 250, 100, 100);pack();setVisible(true);}}import java.awt.event.*;import java.sql.*;import javax.swing.JOptionPane;public class AddStudent extends StudentEdit implements ActionListener{public AddStudent(){super();b1.addActionListener(this);b2.addActionListener(this);}public void actionPerformed(ActionEvent e) {if(e.getActionCommand()=="确定"){//计算总分//调用字符串转换浮点数方法floattotal=Float.parseFloat(chinese.getText())+Float.parseFloat(english.ge tText())+Float.parseFloat(maths.getText());try{//建立数据库连接Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CON CUR_UPDATABLE);//添加数据到数据库sql.executeUpdate("insert into student(Num,Name,Sex,Grade,Class,Major,Birth,Chinese,English,Maths,To tal)" +"values('"+num.getText()+"','"+name.getText()+"','"+s.getSelectedItem("','"+grade.getSelectedItem()+"','"+clas.getSelectedItem()+"','"+ major.getSelectedItem()+"','"+birth.getText()+"',"+chinese.getText()+","+english.getText( )+","+maths.getText()+","+total+")");//关闭数据库连接sql.close();con.close();JOptionPane.showMessageDialog(null, "成功录入学生信息与成绩", "Message",RMATION_MESSAGE);setVisible(false);}catch(ng.ClassNotFoundException err){//捕捉错误,以对话框形式显示错误信息JOptionPane.showMessageDialog(null, err.getMessage(), "ClassNotFoundException:",RMATION_MESSAGE);}catch (SQLException ex){JOptionPane.showMessageDialog(null, ex.getMessage(), "SQLException: ", RMATION_MESSAGE);}}else if(e.getActionCommand()=="取消"){setVisible(false);}}}import java.awt.event.*;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JOptionPane;public class DeleteStudent extends StudentEdit implements ActionListener {JButton b3=new JButton("删除");public DeleteStudent(){super();p12.add(b3);//对非必要文本框设置不可编辑s.setEnabled(false);name.setEditable(false);birth.setEditable(false);grade.setEnabled(false);clas.setEnabled(false);chinese.setEditable(false);english.setEditable(false);maths.setEditable(false);major.setEnabled(false);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO自动生成的方法存根if(e.getActionCommand()=="确定"){String number=num.getText();if(number.equals("")){JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}elsetry{Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CON CUR_UPDATABLE);//查找Num字段中与number相等的数据ResultSet rs=sql.executeQuery("select * from student where Num like '%"+number+"%'");if(rs.next()){//显示到文本框s.setSelectedItem(rs.getString("Sex"));name.setText(rs.getString("Name"));birth.setText(rs.getString("Birth"));chinese.setText(rs.getString("Chinese"));english.setText(rs.getString("English"));maths.setText(rs.getString("Maths"));s.setSelectedItem(rs.getString("Sex"));clas.setSelectedItem(rs.getString("Class"));grade.setSelectedItem(rs.getString("Grade"));major.setSelectedItem(rs.getString("Major"));}else{JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}sql.close();con.close();}catch(ng.ClassNotFoundException err){JOptionPane.showMessageDialog(null, err.getMessage(), "ClassNotFoundException:",RMATION_MESSAGE);}catch (SQLException ex){JOptionPane.showMessageDialog(null, ex.getMessage(), "SQLException: ", RMATION_MESSAGE);}}else if(e.getActionCommand()=="取消"){setVisible(false);}else if(e.getActionCommand()=="删除"){String number=num.getText();if(number.equals("")){JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}elsetry{Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CON CUR_UPDATABLE);ResultSet rs=sql.executeQuery("select * from student where Num like '%"+number+"%'");if(rs.next()){//删除number所在行数据rs.deleteRow();//清空文本框s.setSelectedItem("");num.setText("");name.setText("");birth.setText("");chinese.setText("");english.setText("");maths.setText("");s.setSelectedItem("");clas.setSelectedItem("");grade.setSelectedItem("");major.setSelectedItem("");JOptionPane.showMessageDialog(null, "删除成功", "Messages",RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}sql.close();con.close();setVisible(false);}catch(ng.ClassNotFoundException err){JOptionPane.showMessageDialog(null, err.getMessage(), "ClassNotFoundException:",RMATION_MESSAGE);}catch (SQLException ex){JOptionPane.showMessageDialog(null, ex.getMessage(), "SQLException: ", RMATION_MESSAGE);}}}}import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JOptionPane;public class UpdateStudent extends StudentEdit implements ActionListener{JButton b3=new JButton("修改");public UpdateStudent(){super();p12.add(b3);//对非必要文本框设置不可编辑s.setEnabled(false);name.setEditable(false);birth.setEditable(false);grade.setEnabled(false);clas.setEnabled(false);chinese.setEditable(false);english.setEditable(false);maths.setEditable(false);major.setEnabled(false);//注册监听器b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO自动生成的方法存根if(e.getActionCommand()=="确定"){String number=num.getText();if(number.equals("")){JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}elsetry{Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CON CUR_UPDATABLE);ResultSet rs=sql.executeQuery("select * from student where Num like '%"+number+"%'");//通过学号查找并显示数据到文本框if(rs.next()){s.setSelectedItem(rs.getString("Sex"));name.setText(rs.getString("Name"));birth.setText(rs.getString("Birth"));chinese.setText(rs.getString("Chinese"));english.setText(rs.getString("English"));maths.setText(rs.getString("Maths"));s.setSelectedItem(rs.getString("Sex"));clas.setSelectedItem(rs.getString("Class"));grade.setSelectedItem(rs.getString("Grade"));major.setSelectedItem(rs.getString("Major"));//必要文本框设为可编辑num.setEditable(false);s.setEnabled(true);name.setEditable(true);birth.setEditable(true);grade.setEnabled(true);clas.setEnabled(true);chinese.setEditable(true);english.setEditable(true);maths.setEditable(true);major.setEnabled(true);b1.setEnabled(false);}else{JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}sql.close();con.close();}catch(ng.ClassNotFoundException err){JOptionPane.showMessageDialog(null, err.getMessage(), "ClassNotFoundException:",RMATION_MESSAGE);}catch (SQLException ex){JOptionPane.showMessageDialog(null, ex.getMessage(), "SQLException: ", RMATION_MESSAGE);}}else if(e.getActionCommand()=="取消"){setVisible(false);}else if(e.getActionCommand()=="修改"){String number=num.getText();float total=Float.parseFloat(chinese.getText())+Float.parseFloat(english.getText())+Float.pars eFloat(maths.getText());try{Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CON CUR_UPDATABLE);//通过学号查找数据ResultSet rs1=sql.executeQuery("select * from student where Num like '%"+number+"%'");if(rs1.next()){//修改各字段数值rs1.updateString("Name", name.getText());rs1.updateString("Birth", birth.getText());rs1.updateString("Sex", (String)s.getSelectedItem());rs1.updateString("Class", (String)clas.getSelectedItem());rs1.updateString("Grade", (String)grade.getSelectedItem());rs1.updateString("Major", (String)major.getSelectedItem());rs1.updateString("Chinese", chinese.getText());rs1.updateString("English", english.getText());rs1.updateString("Maths", maths.getText());rs1.updateFloat("Total", total);rs1.updateRow();}else{JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}sql.close();con.close();JOptionPane.showMessageDialog(null, "成功修改学生信息与成绩", "Message",RMATION_MESSAGE);setVisible(false);}catch(ng.ClassNotFoundException err){JOptionPane.showMessageDialog(null, err.getMessage(), "ClassNotFoundException:",RMATION_MESSAGE);}catch (SQLException ex){JOptionPane.showMessageDialog(null, ex.getMessage(), "SQLException: ", RMATION_MESSAGE);}}}}import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JOptionPane;public class IndexSingle extends StudentEdit implements ActionListener{public IndexSingle(){super();//对非必要文本框设置不可编辑s.setEnabled(false);name.setEditable(false);birth.setEditable(false);grade.setEnabled(false);clas.setEnabled(false);chinese.setEditable(false);english.setEditable(false);maths.setEditable(false);major.setEnabled(false);b1.addActionListener(this);b2.addActionListener(this);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO自动生成的方法存根if(e.getActionCommand()=="确定"){String number=num.getText();if(number.equals("")){JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}elsetry{Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CON CUR_UPDATABLE);//查找Num字段中与number相等的数据ResultSet rs=sql.executeQuery("select * from student where Num like '%"+number+"%'");if(rs.next()){//显示到文本框s.setSelectedItem(rs.getString("Sex"));name.setText(rs.getString("Name"));birth.setText(rs.getString("Birth"));chinese.setText(rs.getString("Chinese"));english.setText(rs.getString("English"));maths.setText(rs.getString("Maths"));s.setSelectedItem(rs.getString("Sex"));clas.setSelectedItem(rs.getString("Class"));grade.setSelectedItem(rs.getString("Grade"));major.setSelectedItem(rs.getString("Major"));}else{JOptionPane.showMessageDialog(null, "不存在此学生", "Messages",RMATION_MESSAGE);}sql.close();con.close();}catch(ng.ClassNotFoundException err){JOptionPane.showMessageDialog(null, err.getMessage(), "ClassNotFoundException:",RMATION_MESSAGE);}catch (SQLException ex){JOptionPane.showMessageDialog(null, ex.getMessage(), "SQLException: ", RMATION_MESSAGE);}}else if(e.getActionCommand()=="取消"){setVisible(false);}}}import java.awt.BorderLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;public class IndexOrManage extends JFrame{JButton b1=new JButton("显示");JButton b2=new JButton("取消");JButton b3=new JButton("保存");JTextArea text=new JTextArea(15,40);JPanel p1=new JPanel();JPanel p2=new JPanel();JScrollPane scroll=new JScrollPane(text);public IndexOrManage(){p2.add(b1);p2.add(b2);p2.add(b3);//设置布局getContentPane().setLayout(new BorderLayout());getContentPane().add(p1,BorderLayout.NORTH);getContentPane().add(scroll,BorderLayout.CENTER);getContentPane().add(p2,BorderLayout.SOUTH);setBounds(500, 250, 100, 100);pack();setVisible(true);}}import java.awt.BorderLayout;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Arrays;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;public class SubjectScoreRanking extends IndexOrManage implements ActionListener{String[] subjects={"","语文","英语","数学"};JComboBox subject=new JComboBox(subjects);JLabel la=new JLabel("选择查询科目");public SubjectScoreRanking(){super();p1.add(la);p1.add(subject);//注册监听b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);pack();setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO自动生成的方法存根if(e.getActionCommand()=="显示"){text.setText("");。