java程序设计-学生成绩信息管理系统

合集下载

基于java的学生成绩管理系统的设计与实现

基于java的学生成绩管理系统的设计与实现

文章标题:基于Java的学生成绩管理系统的设计与实现一、引言学生成绩管理系统是学校管理系统中的重要组成部分,它可以帮助学校、老师和学生高效地管理和查询学生成绩信息。

基于Java的学生成绩管理系统的设计与实现是一个重要的课题,本文将从深度与广度两个角度来探讨这个主题。

二、学生成绩管理系统的基本要求学生成绩管理系统需要满足以下基本要求:1)能够实现学生信息的录入、修改和删除;2)能够实现课程信息的录入、修改和删除;3)能够实现成绩信息的录入、修改和删除;4)能够实现成绩的统计和排名功能;5)能够实现成绩的查询和导出功能。

三、基于Java的学生成绩管理系统的设计与实现1. 系统架构设计学生成绩管理系统可以采用三层架构设计,即用户界面层、业务逻辑层和数据访问层。

用户界面层负责与用户的交互,业务逻辑层负责处理业务逻辑,数据访问层负责与数据库进行交互。

2. 数据库设计数据库设计是学生成绩管理系统中的关键环节,需要设计学生信息表、课程信息表和成绩信息表,并建立它们之间的关联关系。

3. 功能模块设计学生成绩管理系统的功能模块包括学生信息管理、课程信息管理、成绩信息管理、成绩统计和排名以及成绩查询和导出功能。

四、基于Java的学生成绩管理系统的个人观点我认为基于Java的学生成绩管理系统的设计与实现不仅可以提高学校管理效率,也可以帮助老师更好地了解学生的学习情况,同时也能够让学生更方便地查询自己的成绩信息。

这个系统可以为学校管理和教学工作提供很大的便利,是非常值得推广和应用的。

五、总结与展望通过本文的探讨,我们深入了解了基于Java的学生成绩管理系统的设计与实现,从系统架构设计、数据库设计,功能模块设计等方面进行了全面的评估。

我们也共享了个人观点和理解。

希望本文能够为读者提供有价值的信息,同时也为学生成绩管理系统的推广应用提供一些借鉴和思路。

六、个人观点通过本次的撰写,我对基于Java的学生成绩管理系统的设计与实现有了更深入的了解,同时也对系统架构设计、数据库设计、功能模块设计等方面有了更全面的认识。

学生信息管理系统java课程设计(含源代码)

学生信息管理系统java课程设计(含源代码)

JAVA 程序设计 课程设计陈述宇文皓月课 题: 学生信息管理系统 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间:目 录1、需要实现的功能32、设计目的3 1、功能模块划分32、数据库结构描述43、系统详细设计文档64、各个模块的实现方法描述95、测试数据及期望结果11一、系统描述1、需求实现的功能1.1、录入学生基本信息的功能学生基本信息主要包含:学号、姓名、年龄、出生地、专业、班级总学分,在拔出时,如果数据库已经存在该学号,则不克不及再拔出该学号。

1.2、修改学生基本信息的功能在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。

评阅意见:评定成绩:指导老师签名:年 月 日1.3、查询学生基本信息的功能可使用“姓名”对已存有的学生资料进行查询。

1.4、删除学生基本信息的功能在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。

1.5、用户登陆用分歧的登录权限可以进入分歧的后台界面,从而实现权限操纵。

1.6、用户登陆信息设置可以修改用户登陆密码2、设计目的学生信息管理系统是一个教育单位不成缺少的部分。

一个功能齐全、简单易用的信息管理系统不单能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。

所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将发生大量的文件和数据,这对于查找、更新和维护都带来了很多困难。

随着科学技术的不竭提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比较的优点。

例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。

基于javaweb的学生成绩管理系统毕业设计模板

基于javaweb的学生成绩管理系统毕业设计模板

学生成绩管理系统是现代教育管理中不可或缺的一部分。

随着信息化时代的到来,学生成绩管理系统已经成为学校教务管理的基础工具之一。

通过使用基于javaweb的学生成绩管理系统,学校可以更高效地管理学生成绩,并为学生、老师和家长提供更加便捷的查询和反馈渠道。

1. 学生成绩管理系统的意义学生成绩管理系统作为教务管理的重要组成部分,可以帮助学校实现信息化管理、提高管理效率、减轻教师工作负担、增加家长对学生成绩的了解渠道等方面的作用。

基于javaweb的学生成绩管理系统具有良好的稳定性和安全性,能够满足学校教务管理的需求,值得深入探讨和研究。

2. javaweb在学生成绩管理系统中的应用在学生成绩管理系统的设计和开发中,javaweb技术可以发挥重要作用。

通过javaweb技术,可以实现系统的快速开发和良好的用户体验,同时也能保证系统的性能和安全性。

javaweb还可以与数据库等其他技术相结合,实现学生成绩的有效管理和查询。

3. 设计模板的重要性设计模板是学生成绩管理系统开发的关键环节之一。

一个合理的设计模板能够直接影响到系统的使用体验和用户满意度。

在设计模板时,需要考虑到系统的可用性、易用性和美观性,以及不同用户角色的需求。

只有通过合理的设计模板,学生成绩管理系统才能真正发挥作用,并得到广泛的应用和认可。

4. 个人观点和理解对于基于javaweb的学生成绩管理系统毕业设计模板,我认为需要充分考虑到系统的灵活性和可扩展性。

学生成绩管理系统面向的是未来的教育管理需求,因此需要具备良好的可扩展性,以适应未来的变化和发展。

系统的用户体验和界面设计也是至关重要的,只有用户满意度高的系统才能真正发挥作用。

总结回顾在本文中,我对基于javaweb的学生成绩管理系统毕业设计模板进行了深入的探讨。

我指出了学生成绩管理系统的意义、javaweb在其中的应用、设计模板的重要性,并共享了个人观点和理解。

通过这些内容的阐述,相信读者对于学生成绩管理系统的设计和开发有了更深入的理解,也能够更好地应用这些知识到实际的毕业设计中。

java学生成绩管理系统报告

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)。

JAVA-面向对象程序设计-学生个人信息管理系统

JAVA-面向对象程序设计-学生个人信息管理系统

JAVA-面向对象程序设计-学生个人信息管理系统软件学院课程设计报告书课程名称面向对象程序设计设计题目学生个人信息管理系统专业班级嵌入式软件09-2学号**********姓名王翀指导教师2011 年6 月目录1 设计时间 (5)2 设计目的 (5)3设计任务 (5)4 设计内容 (5)4.1需求分析 (5)4.1.1问题描述 (5)4.1.2基本要求 (5)4.2总体设计 (6)4.2.1包的描述 (9)4.2.2类的描述 (10)4.2.3类之间的关系 (10)类MainTest继承JFrame。

(10)类jenter实现接口ActionListener。

(10)4.3 详细设计 (10)4.3.1类图 (14)4.3.2页面设计 (14)4.4 测试与分析 (15)4.5 程序代码 (17)5 总结与展望 (32)参考文献 (32)课程设计成绩评定 (34)1 设计时间2012年6月13日——6月19日2 设计目的《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力3设计任务设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。

要求如下:(1)具有简单的录入,查询和修改功能。

(2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;(3)使用文件存储数据。

(也可用数据库)(4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。

4 设计内容4.1需求分析学生管理系统需要对学生的基本信息进行简单的录入,查询,修改三项基本功能。

具体实现使用Access2003数据库实现基本操作,前台窗口使用GUI编程创建图形界面,对图形界面的窗口和按钮进行事件监听,执行相应的SQL语句。

学生考试成绩分析JAVA程序报告

学生考试成绩分析JAVA程序报告

学生考试成绩分析JAVA程序一、实验目的(1)掌握图形用户界面的基本设计方法。

(2)掌握事件驱动程序设计的方法。

(3)掌握JA V A中绘图的方法。

(4)掌握面向对象程序建立的过程。

(5)进一步掌握UML中类图的使用。

二、实验过程1、系统分析题目的要求大概可分为3个模块:要实现这个程序其实就是构建一个面向对象的过程,有以下步骤:1.确定、标识系统的类。

2.描述每个类的属性和方法。

3.建立类之间的关系。

4.创建类。

第一步是为系统确定、标识类。

有许多方法可以为系统确定类,一种方法是研究系统的运转机制,并且选择一定数量有用的实例或场景。

第二步是对已经确定的每个类描述其属性和方法,它们可以用UML图表示,如上图所示。

第三步是建立类之间的关系。

关系来源于欠两步的分析,这三步是相互关联的。

当划分的时候,也需要思考它们之间的关系。

建立对象之间的关系有助于理解对象之间的相互作用。

一个面向对象系统由相互关联、相互合作的对象组合而成。

上图说明了本例中类的关系第四步是编写类的代码。

程序虽然较长,但是大部分代码是get和set方法。

一旦对象确定下来,就可以通过分析系统的需求和方案来定义他的属性和方法。

通常,提供完整的get方法和set方法是一个很好的习惯。

当前的项目也许不需要这些方法,但是其他项目可能需要,设计类是应该考虑到今后的项目可能使用它们。

2、系统设计三、系统实现:该程序主要创建了五介类:Scores类,要实现这个程序,我们除了要构建出不同的类外,重要的是创建界面GUI,同时实现多个界面GUI同时显示出来,我们还要很熟悉JAVA中的创建各种界面GUI的类。

在实现GUI的类时,我们要注意实现接口。

实现基本数据输入,考试成绩输入,成绩查询都是要求我们熟悉各种GUI 的类同时要懂得创建GUI的类;在实现成绩分析时,分数分析和分数段分析我们可以用swing包中的JoptionPane实现,图形分析,要注意JAVA的坐标。

java课程设计学生信息管理系统

java课程设计学生信息管理系统

java课程设计学生信息管理系统一、教学目标本节课的教学目标是使学生掌握Java编程语言的基本语法和编程技巧,能够运用Java语言实现简单的学生信息管理系统。

具体目标如下:1.知识目标:–掌握Java语言的基本语法和数据结构;–理解面向对象编程的基本概念和方法;–了解学生信息管理系统的功能和结构。

2.技能目标:–能够使用Java语言编写简单的程序;–能够运用面向对象编程方法设计和实现学生信息管理系统;–能够对程序进行调试和优化。

3.情感态度价值观目标:–培养学生的编程兴趣和自主学习能力;–培养学生解决问题的能力和团队合作精神;–使学生认识到计算机技术在现实生活中的重要性和应用价值。

二、教学内容本节课的教学内容主要包括以下几个部分:1.Java语言的基本语法和数据结构;2.面向对象编程的基本概念和方法;3.学生信息管理系统的功能和结构;4.学生信息管理系统的实现和优化。

具体安排如下:1.第1-2课时:讲解Java语言的基本语法和数据结构;2.第3-4课时:讲解面向对象编程的基本概念和方法;3.第5-6课时:介绍学生信息管理系统的功能和结构;4.第7-8课时:引导学生实现和优化学生信息管理系统。

三、教学方法本节课采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解Java语言的基本语法和数据结构,面向对象编程的基本概念和方法;2.案例分析法:分析实际的学生信息管理系统的案例,使学生更好地理解理论知识;3.实验法:引导学生动手实现和优化学生信息管理系统,提高学生的实际编程能力。

四、教学资源本节课所需的教学资源包括:1.教材:Java编程语言相关教材;2.参考书:面向对象编程相关参考书;3.多媒体资料:讲解Java语言和面向对象编程的PPT;4.实验设备:计算机和网络设备,以便进行编程实践。

五、教学评估本节课的教学评估将采用多元化评价方式,以全面、客观、公正地评估学生的学习成果。

学生信息管理系统课程设计java

学生信息管理系统课程设计java

学生信息管理系统课程设计 java一、课程目标知识目标:1. 让学生理解学生信息管理系统的基本概念,掌握Java语言实现该系统的核心知识,包括类的定义、对象的使用、集合框架等。

2. 使学生掌握如何使用Java编写数据库连接程序,实现对数据库的增、删、改、查等基本操作。

3. 帮助学生了解Java GUI编程,能够使用Swing组件设计出友好的用户界面。

技能目标:1. 培养学生运用Java语言设计并实现学生信息管理系统,提高编程实践能力。

2. 培养学生分析问题、解决问题的能力,能够根据需求独立完成系统功能模块的设计与实现。

3. 培养学生具备一定的项目开发经验,能够进行团队合作,分工协作完成项目。

情感态度价值观目标:1. 激发学生对Java编程的兴趣,培养其主动学习的习惯,提高学习积极性。

2. 培养学生具备良好的编程习惯,注重代码规范,提高代码质量。

3. 培养学生的团队协作意识,使其认识到团队协作的重要性,学会与他人共同解决问题。

课程性质:本课程为实践性较强的Java语言课程,以项目驱动的方式进行教学,旨在提高学生的编程能力、项目开发能力和团队协作能力。

学生特点:学生已具备一定的Java基础,具有一定的编程能力,但缺乏实际项目经验和团队协作能力。

教学要求:结合学生特点,注重实践操作,引导学生主动参与,充分调动学生的积极性,培养其编程实践和团队协作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. Java基础回顾:包括类与对象、继承与多态、集合框架等基础知识,对应教材第一章至第四章。

- 类与对象:定义类、创建对象、封装、构造方法等。

- 继承与多态:继承的概念、方法重写、多态性等。

- 集合框架:常用集合类、迭代器、泛型等。

2. 数据库连接与操作:学习JDBC技术,实现与数据库的连接、数据查询、插入、删除和修改操作,对应教材第五章。

- JDBC概念与使用:理解JDBC的作用,掌握JDBC API的使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA程序设计——学生信息管理系统题目学生信息管理系统学院软件学院专业班别学号姓名 XXX2015年6月10日2一、课程题目设计一个简易的学生成绩管理系统。

用于记录学生的各科成绩,以及实现常用的统计功能。

(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 ConnectiongetConnection()throws SQLException,ng.ClassNotFoundException{//建立本地数据库连接,编码规则转换为utf-8(正常录入中文)Stringurl="jdbc:mysql://localhost:3306/studentmanagement?useUnicode=true&characterEncodin g=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.parseFloat(ma ths.getText());try{//建立数据库连接Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_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.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.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,ResultSet.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,ResultSet.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())+Float.parseFloat(maths.getTe xt());try{Connection con=DataBaseCreate.getConnection();Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.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,ResultSet.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()=="显示"){text.setText("");String s="";。

相关文档
最新文档