成绩管理系统java+mySQL
- 格式:doc
- 大小:1.41 MB
- 文档页数:54
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的学生成绩管理系统的设计与实现是一个重要的课题,本文将从深度与广度两个角度来探讨这个主题。
二、学生成绩管理系统的基本要求学生成绩管理系统需要满足以下基本要求:1)能够实现学生信息的录入、修改和删除;2)能够实现课程信息的录入、修改和删除;3)能够实现成绩信息的录入、修改和删除;4)能够实现成绩的统计和排名功能;5)能够实现成绩的查询和导出功能。
三、基于Java的学生成绩管理系统的设计与实现1. 系统架构设计学生成绩管理系统可以采用三层架构设计,即用户界面层、业务逻辑层和数据访问层。
用户界面层负责与用户的交互,业务逻辑层负责处理业务逻辑,数据访问层负责与数据库进行交互。
2. 数据库设计数据库设计是学生成绩管理系统中的关键环节,需要设计学生信息表、课程信息表和成绩信息表,并建立它们之间的关联关系。
3. 功能模块设计学生成绩管理系统的功能模块包括学生信息管理、课程信息管理、成绩信息管理、成绩统计和排名以及成绩查询和导出功能。
四、基于Java的学生成绩管理系统的个人观点我认为基于Java的学生成绩管理系统的设计与实现不仅可以提高学校管理效率,也可以帮助老师更好地了解学生的学习情况,同时也能够让学生更方便地查询自己的成绩信息。
这个系统可以为学校管理和教学工作提供很大的便利,是非常值得推广和应用的。
五、总结与展望通过本文的探讨,我们深入了解了基于Java的学生成绩管理系统的设计与实现,从系统架构设计、数据库设计,功能模块设计等方面进行了全面的评估。
我们也共享了个人观点和理解。
希望本文能够为读者提供有价值的信息,同时也为学生成绩管理系统的推广应用提供一些借鉴和思路。
六、个人观点通过本次的撰写,我对基于Java的学生成绩管理系统的设计与实现有了更深入的了解,同时也对系统架构设计、数据库设计、功能模块设计等方面有了更全面的认识。
课设名称:学生成绩管理系统院(系):姓名:学号:年级:专业班级:指导教师:时间: 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作为后台数据库。
本系统具有学生管理、课程管理、成绩管理、信息查询等功能,分成四大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。
本系统完成了学生信息的增加、修改、删除、查询和选课,课程信息的增加、修改、删除、查询,成绩的添加、修改、查询等功能.【关键字】:信息管理系统、模块设计、软件工程。
学生成绩管理系统是现代教育管理中不可或缺的一部分。
随着信息化时代的到来,学生成绩管理系统已经成为学校教务管理的基础工具之一。
通过使用基于javaweb的学生成绩管理系统,学校可以更高效地管理学生成绩,并为学生、老师和家长提供更加便捷的查询和反馈渠道。
1. 学生成绩管理系统的意义学生成绩管理系统作为教务管理的重要组成部分,可以帮助学校实现信息化管理、提高管理效率、减轻教师工作负担、增加家长对学生成绩的了解渠道等方面的作用。
基于javaweb的学生成绩管理系统具有良好的稳定性和安全性,能够满足学校教务管理的需求,值得深入探讨和研究。
2. javaweb在学生成绩管理系统中的应用在学生成绩管理系统的设计和开发中,javaweb技术可以发挥重要作用。
通过javaweb技术,可以实现系统的快速开发和良好的用户体验,同时也能保证系统的性能和安全性。
javaweb还可以与数据库等其他技术相结合,实现学生成绩的有效管理和查询。
3. 设计模板的重要性设计模板是学生成绩管理系统开发的关键环节之一。
一个合理的设计模板能够直接影响到系统的使用体验和用户满意度。
在设计模板时,需要考虑到系统的可用性、易用性和美观性,以及不同用户角色的需求。
只有通过合理的设计模板,学生成绩管理系统才能真正发挥作用,并得到广泛的应用和认可。
4. 个人观点和理解对于基于javaweb的学生成绩管理系统毕业设计模板,我认为需要充分考虑到系统的灵活性和可扩展性。
学生成绩管理系统面向的是未来的教育管理需求,因此需要具备良好的可扩展性,以适应未来的变化和发展。
系统的用户体验和界面设计也是至关重要的,只有用户满意度高的系统才能真正发挥作用。
总结回顾在本文中,我对基于javaweb的学生成绩管理系统毕业设计模板进行了深入的探讨。
我指出了学生成绩管理系统的意义、javaweb在其中的应用、设计模板的重要性,并共享了个人观点和理解。
通过这些内容的阐述,相信读者对于学生成绩管理系统的设计和开发有了更深入的理解,也能够更好地应用这些知识到实际的毕业设计中。
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数据库来实现学生成绩管理代码,实现高效的学生成绩管理。
一、数据库设计在开始实现学生成绩管理代码之前,我们首先要进行数据库设计。
为了存储学生信息和成绩数据,我们可以创建两张表:学生表和成绩表。
学生表包含以下字段:-学号(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);```四、查询数据在学生成绩管理中,我们经常需要查询学生的成绩信息。
学生成绩在线管理系统数据库课程设计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的学生成绩管理系统的设计与实现摘要:本文按照目前流行的B/S体系结构模式,结合现有的学生成绩管理系统的现状,采用SQL Server 2000数据库和JAVA技术,设计开发了学生成绩管理系统系统,本系统分为前台页面和后台管理两大部分,主要实现成绩查询、成绩删除、成绩添加、成绩修改四大主体功能。
在细节方面,着重考虑了用户添加成绩、成绩查询两方面的简易操作,力求为客户带来方便。
关键词:B/S模式;JA V A;SQL ServerAbstract:This according to the popular B / S architecture model, combined with the current status of student achievement management system using SQL Server 2000 database and JAVA technology, design and development of student achievement management system, the system is divided into front page and back office management two parts, the main accomplishment query results to delete, add scores, results modify the four main functions. In detail, the focus to consider the user to add results, performance query both easy to operate, and strive to bring convenience for customers.Key words:B/S mode;JA V A;SQL Server近年来,随着高校的扩招,运用常规的方法对学生成绩的管理变得越来越困难,因此学校迫切的需要一种高效的系统来帮助其管理学生的成绩。
总结16一、课题介绍课题介绍 ...................................... ...................................... 3二、目的和要求目的和要求 ................................... ................................... 3三、任务计划任务计划 ...................................... .. (3)需求分析需求分析 (5)一、学生管理系统的发展现状学生管理系统的发展现状 ................................ ................................ 5二、系统功能分析系统功能分析 ................................... .. (5)三、系统结构框图系统结构框图 ................................... .. (5)数据库设计.........................................创建数据表的结构创建数据表的结构 ................................. (7)各表功能及其关系各表功能及其关系 ................................. (7)系统模块功能的实现与界面设计 (8)一、系统主要模块系统主要模块 ................................... ................................... 8二、欢迎界面欢迎界面 ..................................... ..................................... 9三、主菜单界面主菜单界面 ............................ ............................ 错误!未定义书签。
《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()throws SQLException,ng.ClassNotFoundException{//建立本地数据库连接,编码规则转换为utf-8(正常录入中文)Stringurl="jdbc:mysql://localhost:3306/studentmanagement?useUnicode= true&characterEncoding=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.getText())+Float.p arseFloat(maths.getText());try{//建立数据库连接Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCU R_UPDATABLE);//添加数据到数据库sql.executeUpdate("insert into student(Num,Name,Sex,Grade,Class,Major,Birth,Chinese,English,Maths,Total)" +"values('"+num.getText()+"','"+name.getText()+"','"+s.getSelectedItem()+"','"+grade.getSelectedItem()+"','"+clas.getSelectedItem()+"','"+major.getSelected Item()+"','"+birth.getText()+"',"+chinese.getText()+","+english.getText()+","+maths.getT ext()+","+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,Result Set.CONCUR_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,Result Set.CONCUR_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,Result Set.CONCUR_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())+Floa t.parseFloat(maths.getText());try{Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,Result Set.CONCUR_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,Result Set.CONCUR_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()=="显示"){。