JAVA课程设计,基于mysql的学生信息管理系统
java学生信息管理系统课程设计

java学生信息管理系统课程设计一、课程目标知识目标:1. 理解Java面向对象编程的基本概念,掌握类与对象的关系、封装、继承和多态性;2. 学会使用Java集合框架管理学生信息,掌握ArrayList、HashMap等常用集合类的使用方法;3. 掌握Java异常处理机制,提高程序的健壮性;4. 理解数据库基本概念,学会使用SQLite数据库存储和管理学生信息。
技能目标:1. 能够运用面向对象思想设计学生信息管理系统,实现学生信息的增删改查功能;2. 能够使用Java集合框架对学生信息进行有效管理;3. 能够编写简单的数据库操作语句,实现对学生信息的数据存储和查询;4. 能够运用所学知识解决实际问题,具备一定的编程实践能力。
情感态度价值观目标:1. 培养学生团队协作精神,提高沟通与协作能力;2. 增强学生编程兴趣,激发创新意识,培养探索精神;3. 培养学生良好的编程习惯,注重代码规范和程序优化;4. 培养学生严谨的学习态度,面对问题敢于挑战,勇于克服困难。
课程性质:本课程为信息技术课程,以实践操作为主,注重培养学生的编程能力和实际应用能力。
学生特点:学生具备一定的Java基础,了解面向对象编程概念,但对实际项目开发经验不足。
教学要求:结合学生特点和课程性质,采用项目驱动教学法,引导学生自主探究,注重实践操作,提高学生的编程能力和解决问题的能力。
同时,关注学生的情感态度价值观培养,提高学生的综合素质。
通过本课程的学习,使学生能够独立完成一个简单的学生信息管理系统,为后续学习打下坚实基础。
二、教学内容1. 面向对象编程基础- 类与对象的关系- 封装、继承和多态性- 抽象类和接口2. Java集合框架- ArrayList、LinkedList、HashSet、HashMap等常用集合类- 集合类的使用场景和性能分析3. Java异常处理- 异常分类和异常处理机制- try-catch-finally结构- 自定义异常4. 数据库基础- 数据库概念和SQLite数据库- 数据表的设计与创建- SQL语句:增删改查操作5. 学生信息管理系统功能模块- 系统需求分析- 功能模块划分:学生信息管理、成绩管理、课程管理等- 编程实现各模块功能6. 项目实践与拓展- 系统测试与调试- 代码优化与重构- 项目拓展:增加用户权限管理、数据可视化等教学内容安排与进度:第一周:面向对象编程基础第二周:Java集合框架第三周:Java异常处理第四周:数据库基础第五周:学生信息管理系统功能模块设计第六周:项目实践与拓展教材关联:本教学内容与《Java程序设计》教材相关章节紧密关联,涵盖了面向对象编程、Java集合框架、异常处理和数据库基础等知识点。
JavaEE课程设计(学生信息管理系统)

JavaEE课程设计(学生信息管理系统)1000字学生信息管理系统是一种面向学生信息管理的软件系统,实现了对学生基本信息、课程信息、考试信息、成绩信息等的录入、查询、修改和删除等功能。
本课程设计主要实现了以下功能:1. 登录和注册功能学生和管理员均需要先进行登录才能使用系统,管理员可以对学生信息进行管理。
注册时需要填写基本信息,包括学号、姓名、学院等。
2. 学生基本信息管理学生基本信息包括学号、姓名、年龄、性别、出生日期、籍贯、班级、专业等。
管理员可以对学生基本信息进行添加、修改、查询和删除等操作。
3. 课程信息管理课程信息包括课程编号、课程名称、课程类型、教师名字等。
管理员可以对课程信息进行添加、修改、查询和删除等操作。
4. 考试信息管理考试信息包括考试名称、考试时间、考试地点等。
管理员可以对考试信息进行添加、修改、查询和删除等操作。
5. 成绩信息管理成绩信息包括学生学号、课程编号、考试名称、成绩等。
管理员可以对成绩信息进行添加、修改、查询和删除等操作。
6. 统计功能系统可以根据学院、专业、年龄等不同条件进行统计查询,可以得到对应结果的统计图表。
在实现以上功能中,我们使用了Java EE的相关技术,包括Java Servlet、JSP、JavaBean、数据库等。
其中Servlet负责接受用户请求,处理请求并返回相应结果,JSP用于实现用户界面,JavaBean实现数据操作,并将数据返回给JSP。
我们将数据存储在MySQL数据库中,使用JDBC进行连接和操作。
此外,我们还使用了Bootstrap实现了网页的美化和响应式设计,方便了不同尺寸的设备的访问使用。
总的来说,本课程设计实现了学生信息管理系统的基本功能,并对系统进行了优化和美化,具有实用性和可操作性。
学生信息管理系统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、设计目的学生信息管理系统是一个教育单位不成缺少的部分。
一个功能齐全、简单易用的信息管理系统不单能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将发生大量的文件和数据,这对于查找、更新和维护都带来了很多困难。
随着科学技术的不竭提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比较的优点。
例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
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作为后台数据库。
本系统具有学生管理、课程管理、成绩管理、信息查询等功能,分成四大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。
本系统完成了学生信息的增加、修改、删除、查询和选课,课程信息的增加、修改、删除、查询,成绩的添加、修改、查询等功能.【关键字】:信息管理系统、模块设计、软件工程。
基于mysql的学生成绩管理系统的设计与实现

基于mysql的学生成绩管理系统的设计与实现1. 引言1.1 概述在现代教育系统中,学生成绩的管理是非常重要且必不可少的一项工作。
为了实现高效、准确地管理学生成绩信息,本篇文章设计并实现了一个基于MySQL的学生成绩管理系统。
1.2 文章结构本文将分为五个主要部分来介绍该学生成绩管理系统的设计与实现。
首先,引言部分将提供对整个文章内容的概述和总体结构。
其次,系统需求分析模块将详细讨论用户需求、功能需求和数据需求。
接下来,数据库设计与建模模块将介绍实体-关系模型(ERM)设计、数据表设计与规范化以及数据库安全性与权限控制设计。
然后,在系统功能实现与开发过程介绍模块中,我们会深入探讨前端界面设计与开发过程、后端逻辑处理与数据库操作实现技术选型以及系统测试与调试过程描述。
最后,在结论和展望模块中,我们将总结本文所介绍的学生成绩管理系统并展望未来可能的优化和扩展方向。
1.3 目的本文旨在通过对基于MySQL的学生成绩管理系统进行全面而详细的设计与实现,帮助读者更好地理解和掌握学生成绩管理系统的开发过程和关键技术。
通过本文,读者将了解到学生信息管理、成绩录入和查询功能的实现方法,以及数据库设计与优化的要点。
同时,本文还将对未来学生管理系统的扩展和优化提出建议和展望,以帮助读者在实际应用中更好地运用该系统并满足不断变化的需求。
2. 系统需求分析2.1 用户需求在学生成绩管理系统的设计与实现过程中,我们需要了解用户的需求,以便为其提供满足其期望的功能和特性。
通过调研和访谈,我们确定了以下用户需求:1. 学生管理功能:学生能够登录系统并查看自己的个人信息、课程成绩以及绩点等相关信息。
2. 教师管理功能:教师能够登录系统,并能够录入学生成绩、查询学生成绩、修改学生成绩等操作。
3. 管理员管理功能:管理员具有最高权限,能够对学生信息进行增删改查以及对系统进行配置和设置。
4. 数据统计与报表分析功能:系统能够根据各类指标统计学生成绩情况,生成相应的报表供相关人员参考分析。
mysql《学生管理系统》课程管理模块

mysql《学生管理系统》课程管理模块学生管理系统课程管理模块一、课程管理模块概述课程管理模块是《学生管理系统》中的一个重要组成部分,主要用于对学生选课、课程安排、成绩录入等功能进行管理。
通过课程管理模块,管理员可以方便地添加、删除、修改课程信息,并对学生选课情况进行实时监控和调整。
同时,学生也可以通过该模块查看课程安排、选课以及查询自己的成绩。
二、课程管理模块功能1.课程信息管理:管理员可以通过该模块添加、删除、修改课程信息,包括课程名称、学分、教师等信息。
这些信息将作为学生选课的依据,并在成绩录入时作为课程识别的重要标识。
2.学生选课管理:学生可以通过该模块查看课程安排,并根据自己的兴趣和需求进行选课。
在选课过程中,系统会根据学生的专业、年级等因素进行筛选,确保学生选择的课程与自身实际情况相符合。
3.成绩录入管理:教师可以通过该模块录入学生成绩,并对成绩进行管理。
成绩录入时,系统会自动关联对应的课程信息,确保成绩录入的准确性和完整性。
同时,系统还会对学生成绩进行统计和分析,为教学评估提供数据支持。
4.课程调整管理:管理员可以通过该模块对学生选课情况进行实时监控和调整。
当出现选课人数不足或课程安排不合理等情况时,管理员可以及时进行调整,确保课程的正常进行。
三、课程管理模块使用流程1.管理员登录系统后,进入课程管理模块;2.根据需求选择相应的功能,如添加课程信息、查看学生选课情况等;3.按照系统提示进行操作,完成相应任务;4.保存并提交数据,完成操作。
四、课程管理模块特点1.操作简单:课程管理模块界面简洁明了,操作流程简单易懂,方便管理员和学生使用。
2.功能齐全:该模块涵盖了课程信息管理、学生选课管理、成绩录入管理和课程调整管理等全方位的功能,满足用户多样化需求。
3.实时监控:管理员可以实时监控学生选课情况,及时了解课程安排的合理性和学生选课的满意度,以便进行相应的调整和管理。
学生成绩在线管理系统数据库课程设计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代码来执行查询和更新操作。
这只是一个简单的数据库设计示例,你可以根据你的具体需求进行调整和扩展。
mysql课程设计案例

mysql课程设计案例
以下是一个简单的MySQL课程设计案例,用于帮助学生了解数据库设计和MySQL的基本操作。
项目名称:学生信息管理系统
项目目标:
1. 创建一个学生信息管理系统,能够存储和管理学生信息。
2. 实现对学生信息的增删改查操作。
3. 保证数据的安全性和完整性。
项目内容:
1. 设计数据库表结构,包括学生表、课程表和成绩表。
2. 实现学生信息的增删改查操作,包括添加学生信息、查询学生信息、修改学生信息和删除学生信息。
3. 实现课程信息的增删改查操作,包括添加课程信息、查询课程信息、修改课程信息和删除课程信息。
4. 实现成绩信息的录入和查询操作。
5. 保证数据的安全性和完整性,包括设置合适的字段属性、设置外键约束等。
技术要求:
1. 使用MySQL数据库进行数据存储和管理。
2. 使用PHP编写服务器端代码,实现与数据库的交互。
3. 使用HTML和CSS进行前端页面设计。
4. 使用JavaScript进行表单验证和动态交互。
项目步骤:
1. 创建数据库和数据表,包括学生表、课程表和成绩表。
2. 编写PHP代码,实现与数据库的连接和操作。
3. 编写前端页面,包括学生信息管理页面、课程信息管理页面和成绩信息管理页面。
4. 在前端页面中添加表单,用于输入和修改数据。
5. 在前端页面中添加JavaScript代码,用于表单验证和动态交互。
6. 进行测试和调试,确保系统功能正常、安全可靠。
7. 上交项目文档,包括数据库表结构、PHP代码、前端页面和测试报告等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录概述 (3)一、课题介绍 (3)二、目的和要求 (3)三、任务计划 (4)需求分析 (5)一、学生管理系统的发展现状 (5)二、系统功能分析 (5)三、系统结构框图 (5)数据库设计 (7)一、创建数据表的结构 (7)二、各表功能及其关系 (7)系统模块功能的实现与界面设计 (8)一、系统主要模块 (8)二、欢迎界面 (9)三、主菜单界面 .............................................................................................. 错误!未定义书签。
四、子菜单 (10)五、学生信息录入 (11)六、学生信息查找 (12)七、学生信息删除 (13)八、学生信息修改 (14)课程设计心得 (15)一、程序结构设计培养 (15)二、书写习惯养成 (15)三、注意程序简洁 (15)总结 (16)参考文献 (17)附录:项目源代码 (18)一、数据库连接(D B C ONNECTION.JAVA) (18)二、学生信息数据库管理(S TUDENT_D AO.JAVA) (26)三、欢迎界面(W ELCOME.JAVA) (23)四、主菜单界面(M ENU.JAVA) (24)五、子菜单界面(S ON_M ENU.JAVA) (27)六、添加功能(A DD_M ENU.JAVA) (31)七、查找功能(F IND_M ENU.JAVA) (34)八、删除功能(D ELET_M ENU.JAVA) (36)九、修改功能(C HANGE_M ENU.JAVA).......................................................... 错误!未定义书签。
概述一、课题介绍本次课程设计要现一个面向学生信息的管理系统。
学生信息系统是一个非常通用的管理系统。
很多大、中、小学校都需要拥有自己的学生档案管理系统,以便对本校学生的基本信息和学习情况进行管理,另一方面,较完整的学校信息管理系统同样也需要有学生信息管理系统的支持。
由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能。
该系统要求使用JAVA和MySQL作为开发工具和数据库管理系统,因此,系统设计涉及系统功能设计、数据库设计和系统界面等几个方面容。
二、目的和要求1.了解JAVA语言的特点及使用的围,掌握开发软件平台的搭建。
2.要求使用JAVA和MySQL开发一个学生信息管理系统,系统主要功能如下:1)院系信息管理院系系统信息的录入,包括院系编号、院系名称等信息;院系信息的修改、删除、查询。
2)学生基本信息管理学生基本信息的录入,包括学号、姓名、性别、出生日期、所在院系、班级等信息;学生基本信息的修改、删除、查询。
3)课程设置管理课程信息的录入,包括课程编号、课程名称、学分、课程容等信息;课程信息的修改、删除、查询。
4)学生成绩管理学生成绩的录入,包括课程编号、课程名称、学分、课程容等信息;学生信息的修改、删除、查询。
三、任务计划考虑到本次课程设计是独立完成,所以,不需要进行细致的分工,只要对框架和时需求分析一、学生管理系统的发展现状经过了一段时间的发展,当今,各大高校普遍都有了相对完善的学生管理系统,但在部分中小学中,这种高效的管理手段,仍未能全面普及。
目前已有的学生管理系统存在界面和操作相对繁琐,实现成本较高等缺点,仍需改进。
二、系统功能分析由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能1。
实现以上各模块的功能,需要以下子功能:1数据库连接的建立与断开2数据库的数据操作,包括插入、查询、删除、修改3.系统操作界面与数据库操作相关联三、系统结构框图从系统功能表述可以看出,该系统可以实现几个功能,根据这些功能设计出系统的功能模块如图表1所示:1因各模块基本功能相近,故本文仅以学生基本信息管理功能为例图表1 学生信息管理系统功能模块图数据库设计一、创建数据表的结构(以学生基本信息管理系统为例)1.主要数据项学号、姓名、性别、出生年月、所在院系、所在班级2.数据类型及要求为操作方便,均定义为字符串。
其中学号不得重复。
3.MySQL建表语句二、各表功能及其关系1.本系统各表分别存储相应数据。
2.涉及的数据表之间相对独立,但仍有少量关联。
1)学生成绩表包含对学生基本信息表和课程设置表的映射2)学生基本信息表包含对院系信息表的映射系统模块功能的实现与界面设计一、系统主要模块本次课程设计的主要目的,是通过实践,让我对所学到的知识进行考验和巩固。
经过一点时间的了解。
设计出了系统的总体框架,参看图表1。
由于各模块的功能及原理基本相同,只是涉及的数据类型有所不同,所以本次只对学生基本信息管理的功能进行了较为全面的设计。
由于时间关系,其余功能没有进行具体设计。
(具体的在以下说明中会提及)系统界面设计如下:菜单界面Menu.class数据库管理模块:模块名称相关的类学生信息数据库管理StudentDao.class院系信息数据库管理DepartDao.class课程信息数据库管理CourseDao.class成绩信息数据库管理ScoreDao.class模块功能界面设计如下:模块名称相关的类添加功能Add_Menu.class查询功能Find_Menu.class二、欢迎界面1.实际运行效果(图表2)图表 2 欢迎界面2.实现方法1)继承了JPanel,并在构造函数中建立JFrame做外框;2)用JLabel显示欢迎信息容;3)确定按钮在监听到事件后,new出一个Menu类;三、主菜单界面1.实际运行效果(图表3)2.实现方法1)继承JFrame类,在部建立的JPanel插入JButton;2)定义相应按钮的响应事件,调用子菜单的不同建立函数(如new Son_menu().studentmenu(););图表 3 主菜单界面四、子菜单1.实际运行效果(错误!未找到引用源。
)2.实现方法1)建立JFrame,JTable,JButton等工具;2)建立数据库;3)将数据库里的数据逐个读入到JTable类;4)对JButton加入ActionListener,并关联相应的功能菜单,如:五、学生信息录入1.实际运行效果(图表5)图表 4 录入学生信息实现方法1)由输入的学生信息构造一个Student类;2)利用SQL语句,将Student类插入到数据库;六、学生信息查找1.实际运行效果(图标6)图表 6 查找学生信息实现方法1)由输入的学号,利用SQL语句找到相关数据,返回一个Student类;2)有则将student的相关信息显示到JTextArea上,没有则显示“学生信息未找到”;七、学生信息删除1.实际运行效果(图表7)图表7 学生信息删除2.实现方法1)应用查找功能相似的原理先搜索到要删除的信息;2)利用SQL语句将找到的信息删除,并显示“学生信息以删除”。
八、学生信息修改1.实际运行效果图表8 学生信息修改2.实现方法1)应用查找功能相似的原理先搜索到要修改的信息;2)应用删除功能相似的原理删除要修改的信息;3)调用录入类,录入要修改的新信息;课程设计心得一、程序结构设计思路培养为了简化程序,我并没有为每个窗口都建一个类,而是把类似的窗口例如student_add,depart_add等建一个类Add_Menu,调用不同的函数建立不同窗口,如:student_add(),depart_add();二、书写习惯的养成好的书写习惯是一个优秀程序员的必备品质。
在写代码的时候要随时注意书写的格式。
如:1.赋值语句的“=”的左右应该用空格隔开;a=1;改为a = 1;这样更为清晰;2.大括号一定要对齐;class {……public void …..{…….}}三、注意程序简洁在逐渐适应面向对象编程以后。
依然应道保持过去在编程中的一些好习惯。
使用Vector等,也需要留意效率。
不能只顾用法方便。
总结系统设计过程中,主要涉及了包括JAVA基本语法、AWT,Java Swing,MySQL 等方面的相关知识。
设计中遇到不少问题,到图书馆查阅了不少资料,向王宋君老师请教过不少问题,老师都一一细心解答,非常感谢。
由于时间仓促,原本设想的功能还没有一一实现,待进一步完善。
参考文献1.《Thinking in Java(Java编程思想)》第四版,机械工业出版社,【美】Bruce Eckel著,昊鹏译;2.《精通Java Swing程序设计》中国铁道出版社,林智扬、明翔、锦辉编著;3.《深入浅出Java Swing程序设计》中国铁道出版社,林智扬、明翔、锦辉编著;4.《Java GUI程序设计》清华大学出版社,肖刚等编著;5.《Java信息系统设计与开发实例》机械工业出版社,黄明、梁旭、曹利超编著;6.《Java例大全》机械工业出版社,继平、帆编著;附录:项目源代码一、数据库连接(DbConnection.java)package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DbConnection {public static Connection getConnection(){Connection con = null;String url = "jdbc:mysql://localhost:3306/java";String userName= "root";String password = "l057788y";try {Class.forName(".mysql.jdbc.Driver");con = DriverManager.getConnection(url,userName,password);System.out.println("数据库连接成功");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();return null;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return con;}public static void closeConnection(Connection con){if(con!=null){try {con.close();con = null;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String args[]){getConnection();}}}二、学生信息数据库管理(Student_Dao.java)package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import model.Depart;import model.Student;public class StudentDao {public boolean addInfo(Student student){boolean flag;Connection con = DbConnection.getConnection();PreparedStatement ps;String sql = "";// ResultSet rs;try {sql = "insert into student values(?,?,?,?,?,?)"; //用问号代替ps = con.prepareStatement(sql);ps.setInt(1, student.getId());ps.setString(2, student.getName());ps.setString(3, student.getSex());ps.setString(4, student.getBorn_date());ps.setString(5, student.getDepart_id());ps.setString(6, student.getClass_name());ps.execute();System.out.println("添加了一条记录");flag = true;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();flag = false;}finally{DbConnection.closeConnection(con);}return flag;}public ArrayList<Student> findAll(){ArrayList<Student> students = new ArrayList<Student>();Connection con = DbConnection.getConnection();Statement sta;ResultSet rs;try {sta = con.createStatement();rs = sta.executeQuery("SELECT * FROM student"); //从表depart 中查询所有数据while(rs.next()){Student student = new Student();student.setId(rs.getInt(1));student.setName(rs.getString(2));student.setSex(rs.getString(3));student.setBorn_date(rs.getString(4));student.setDepart_id(rs.getString(5));student.setClass_name(rs.getString(6));System.out.println(student.getName());students.add(student);}rs.close();sta.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{DbConnection.closeConnection(con);}return students;}public Student findOne(int id){Student student = new Student();Connection con = DbConnection.getConnection();PreparedStatement ps;String sql = "";ResultSet rs;try {sql = "SELECT * FROM student where id=?";ps = con.prepareStatement(sql);ps.setInt(1, id);rs = ps.executeQuery(); //从表depart中查询所有数据if(rs.next()){student.setId(rs.getInt("id")); //注意数据类型要对应student.setName(rs.getString("Name"));student.setSex(rs.getString("Sex"));student.setBorn_date(rs.getString("birthday"));student.setDepart_id(rs.getString("Depart"));student.setClass_name(rs.getString("Class"));System.out.println("id:"+student.getId()+"name:"+student.getName());}else{System.out.println("没有数据");}rs.close();ps.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{DbConnection.closeConnection(con);}return student;}public boolean deleteInfo(Student student){boolean flag;Connection con = DbConnection.getConnection();PreparedStatement ps;String sql = "";try {sql = "delete from student where id=?"; //用问号代替ps = con.prepareStatement(sql);ps.setInt(1, student.getId());ps.execute();System.out.println("成功删除了一条记录");flag = true;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();flag = false;}finally{DbConnection.closeConnection(con);}return flag;}}三、欢迎界面(Welcome.java)package menu;import java.awt.BorderLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.*;public class Welcome {JFrame w = new JFrame("managementsystem");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JLabel l = new JLabel("欢迎进入学生信息管理系统!");JButton b = new JButton("确定");Welcome(){w.addWindowListener(new Wind());b.addMouseListener(new Monitor2());Font font = new Font( "欢迎进入学生信息管理系统!", Font.PLAIN, 40);l.setFont(font);w.add(p1,BorderLayout.CENTER);w.add(p2,BorderLayout.SOUTH);p1.add(l);l.setBounds(p1.WIDTH/2-100,p1.HEIGHT/2-10,200,20);p2.add(b);b.setBounds(p2.WIDTH/2-10,p2.HEIGHT/2-6,20,12);w.setBounds(400, 200, 600, 200);w.setVisible(true);}private class Monitor2 extends MouseAdapter{p ublic void mousePressed(MouseEvent e) {new Menu();w.setVisible(false);}}public static void main(String args[]){new Welcome();}private class Wind extends WindowAdapter{public void windowClosing(WindowEvent e) {w.setVisible(false);System.exit(0);}}}四、主菜单界面(Menu.java)package menu;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.*;public class Menu {JFrame f = new JFrame("菜单");JPanel p = new JPanel();Menu(){JButton b_depart = new JButton("院系信息");JButton b_student = new JButton("学生信息");JButton b_course = new JButton("课程信息");JButton b_score = new JButton("成绩信息");JButton ex = new JButton("退出");b_score.addActionListener(new Monitor2());ex.addActionListener(new Monitor2());b_depart.addActionListener(new Monitor2());b_student.addActionListener(new Monitor2());b_course.addActionListener(new Monitor2());f.addWindowListener(new Wind());f.add(p);p.setLayout(new GridLayout(1,2));JLabel l = new JLabel();JPanel p2 = new JPanel();p.add(l);p.add(p2);p2.setLayout(new GridLayout(5,1));p2.add(b_depart);p2.add(b_student);p2.add(b_course);p2.add(b_score);p2.add(ex);f.setBounds(400,200,400,400);f.setVisible(true);}public static void main(String args[]){new Menu();}private class Wind extends WindowAdapter{ public void windowClosing(WindowEvent e) {f.setVisible(false);System.exit(0);}}private class Monitor2 implements ActionListener{p ublic void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("退出")){new Menu();System.exit(0);}if(e.getActionCommand().equals("学生信息")){new Son_menu().studentmenu();f.setVisible(false);}i f(e.getActionCommand().equals("院系信息")){new Son_menu().departmenu();f.setVisible(false);}i f(e.getActionCommand().equals("课程信息")){new Son_menu().coursemenu();f.setVisible(false);}i f(e.getActionCommand().equals("成绩信息")){new Son_menu().scoremenu();f.setVisible(false);}}}}五、子菜单界面(Son_Menu.java)package menu;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.Vector;import javax.swing.*;import javax.swing.table.DefaultTableModel;import model.Student;import dao.StudentDao;public class Son_menu {JFrame f ;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton b_add = new JButton("录入");JButton b_delet = new JButton("删除");JButton b_change = new JButton("修改");JButton b_find = new JButton("查找");JButton b_return = new JButton("返回");JTable t;DefaultTableModel tableModel= null;public static void main(String args[]){new Son_menu().studentmenu();}//学生信息菜单public void studentmenu(){f = new JFrame("学生信息");ArrayList scan = new ArrayList();Vector columnNames = new Vector();columnNames.add("学号");columnNames.add("姓名");columnNames.add("性别");columnNames.add("出生年月");columnNames.add("学院代码");columnNames.add("所在班级");tableModel = new DefaultTableModel(columnNames,0);tableModel.addRow(columnNames);StudentDao ddao = new StudentDao();scan = ddao.findAll();for(int i=0;i<scan.size();i++){Vector v = new Vector();Student student = (Student)scan.get(i);v.add(student.getId());v.add(student.getName());v.add(student.getSex());v.add(student.getBorn_date());v.add(student.getDepart_id());v.add(student.getClass_name());tableModel.addRow(v);}t = new JTable(tableModel);t.setVisible(true);f.setLayout(new BorderLayout());f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.SOUTH);f.setBounds(400,200,600,400);p1.add(t);b_add.setActionCommand("学生录入");b_delet.setActionCommand("学生删除");b_change.setActionCommand("学生修改");b_find.setActionCommand("学生查找");b_add.addActionListener(new Monitor2());b_delet.addActionListener(new Monitor2());b_change.addActionListener(new Monitor2());b_find.addActionListener(new Monitor2());b_return.addActionListener(new Monitor2());p2.add(b_add);p2.add(b_delet);p2.add(b_change);p2.add(b_find);p2.add(b_return);f.setVisible(true);}//院系信息菜单public void departmenu(){f = new JFrame("院系信息");t = new JTable(100,2);t.setVisible(true);f.setLayout(new BorderLayout());f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.SOUTH);f.setBounds(400,200,400,400);p1.add(t);b_add.setActionCommand("院系录入");b_delet.setActionCommand("院系删除");b_change.setActionCommand("院系修改");b_find.setActionCommand("院系查找");b_add.addActionListener(new Monitor2());b_delet.addActionListener(new Monitor2());b_change.addActionListener(new Monitor2());b_find.addActionListener(new Monitor2());b_return.addActionListener(new Monitor2());p2.add(b_add);p2.add(b_delet);p2.add(b_change);p2.add(b_find);p2.add(b_return);f.setVisible(true);}//课程信息菜单public void coursemenu(){f = new JFrame("课程信息");t = new JTable(100,2);t.setVisible(true);f.setLayout(new BorderLayout());f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.SOUTH);f.setBounds(400,200,400,400);p1.add(t);b_add.setActionCommand("课程录入");b_delet.setActionCommand("课程删除");b_change.setActionCommand("课程修改");b_find.setActionCommand("课程查找");b_add.addActionListener(new Monitor2());b_delet.addActionListener(new Monitor2());b_change.addActionListener(new Monitor2());b_find.addActionListener(new Monitor2());b_return.addActionListener(new Monitor2());p2.add(b_add);p2.add(b_delet);p2.add(b_change);p2.add(b_find);p2.add(b_return);f.setVisible(true);}//成绩信息菜单public void scoremenu(){f = new JFrame("成绩信息");t = new JTable(100,2);t.setVisible(true);f.setLayout(new BorderLayout());f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.SOUTH);f.setBounds(400,200,400,400);p1.add(t);b_add.setActionCommand("成绩录入");b_delet.setActionCommand("成绩删除");b_change.setActionCommand("成绩修改");b_find.setActionCommand("成绩查找");b_add.addActionListener(new Monitor2());b_delet.addActionListener(new Monitor2());b_change.addActionListener(new Monitor2());b_find.addActionListener(new Monitor2());b_return.addActionListener(new Monitor2());p2.add(b_add);p2.add(b_delet);p2.add(b_change);p2.add(b_find);p2.add(b_return);f.setVisible(true);}private class Monitor2 implements ActionListener{ p ublic void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("返回")){f.setVisible(false);new Menu();}if(e.getActionCommand().equals("学生录入")){f.setVisible(false);new Add_Menu().student_add();}if(e.getActionCommand().equals("学生删除")){f.setVisible(false);new Delet_Menu().student_delet();}if(e.getActionCommand().equals("学生修改")){f.setVisible(false);new Change_Menu().student_change();}if(e.getActionCommand().equals("学生查找")){f.setVisible(false);new Find_Menu().student_find();}}}}六、添加功能(Add_Menu.java)package menu;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import model.Student;import dao.StudentDao;public class Add_Menu {JFrame add_menu;JPanel p1,p2,p11,p12,p13,p14,p15,p16;JLabel l1,l2,l3,l4,l5,l6;JTextField t1,t2,t3,t4,t5,t6;JButton b_ok,b_cancel;public void student_add(){add_menu = new JFrame("录入学生信息");p1 = new JPanel();p2 = new JPanel();p11 = new JPanel();p12 = new JPanel();p13 = new JPanel();p14 = new JPanel();p15 = new JPanel();p16 = new JPanel();p1.setLayout(new GridLayout(6,1));l1 = new JLabel(" 学号:");l2 = new JLabel(" 姓名:");l3 = new JLabel(" 性别:");l4 = new JLabel("出生日期:");l5 = new JLabel("院系代码:");l6 = new JLabel("所在班级:");t1 = new JTextField(16);t2 = new JTextField(16);t3 = new JTextField(16);t4 = new JTextField(16);t5 = new JTextField(16);t6 = new JTextField(16);p11.add(l1);p11.add(t1);p12.add(l2);p12.add(t2);p13.add(l3);p13.add(t3);p14.add(l4);p14.add(t4);p15.add(l5);p15.add(t5);p16.add(l6);p16.add(t6);p1.add(p11);p1.add(p12);p1.add(p13);p1.add(p14);p1.add(p15);p1.add(p16);p2.add(b_ok = new JButton("确定"));p2.add(b_cancel = new JButton("取消"));b_ok.addActionListener(new Monitor2());b_cancel.addActionListener(new Monitor2());add_menu.add(p1,BorderLayout.NORTH);add_menu.add(p2,BorderLayout.SOUTH);add_menu.setBounds(400,200,400,300);add_menu.setVisible(true);}public static void main(String args[]){new Add_Menu().student_add();}private class Monitor2 implements ActionListener{ p ublic void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("取消")){add_menu.setVisible(false);new Son_menu().studentmenu();}if(e.getActionCommand().equals("确定")){Student s = new Student();s.setId(Integer.parseInt(t1.getText()));s.setName(t2.getText());s.setSex(t3.getText());s.setBorn_date(t4.getText());s.setDepart_id(t5.getText());s.setClass_name(t6.getText());new StudentDao().addInfo(s);add_menu.setVisible(false);new Son_menu().studentmenu();}}}}七、查找功能(Find_Menu.java)package menu;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import dao.StudentDao;import model.Student;public class Find_Menu {Student find_student;JFrame find_menu;JPanel p1,p2;JLabel l1;JTextField text;JTextArea show;JButton find_find,find_cancel;public void student_find(){find_menu = new JFrame("学生信息查找");p1 = new JPanel();p2 = new JPanel();l1 = new JLabel("学号:");text = new JTextField(16);show = new JTextArea(100,100);find_find = new JButton("搜索");find_cancel = new JButton("取消");find_cancel.addActionListener(new Monitor2());find_find.addActionListener(new Monitor2());find_menu.add(p1,BorderLayout.NORTH);find_menu.add(show,BorderLayout.CENTER);find_menu.add(p2,BorderLayout.SOUTH);p1.add(l1);p1.add(text);p2.add(find_find);p2.add(find_cancel);find_menu.setBounds(400,200,400,400);find_menu.setVisible(true);}private class Monitor2 implements ActionListener{p ublic void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("取消")){find_menu.setVisible(false);new Son_menu().studentmenu();}if(e.getActionCommand().equals("搜索")){find_student = new StudentDao().findOne(Integer.parseInt(text.getText()));if(find_student.getName()!= null){String str = " 姓名:"+find_student.getName()+"\n 学号:"+find_student.getId()+"\n 性别:"+find_student.getSex()+"\n 生日:"+find_student.getBorn_date()+"\n 院系代号:"+find_student.getDepart_id()+"\n 班级:"+find_student.getClass_name()+" ";show.setText("");show.insert(str, 1);}else{show.setText("");show.insert("学生信息未找到", 1);}}if(e.getActionCommand().equals("删除")){new StudentDao().deleteInfo(find_student);show.setText("");show.insert("学生信息已删除", 1);}}}public static void main(String args[]){new Find_Menu().student_find();}}八、删除功能(Delet_Menu.java)package menu;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import model.Student;import dao.StudentDao;public class Delet_Menu {Student delet_student;JFrame delet_menu;JPanel p1,p2;JLabel l1;JTextField text;JTextArea show;JButton delet_ok,delet_find,delet_cancel;public void student_delet(){delet_menu = new JFrame("学生信息删除");p1 = new JPanel();p2 = new JPanel();l1 = new JLabel("学号:");text = new JTextField(16);show = new JTextArea(100,100);delet_ok = new JButton("删除");delet_find = new JButton("搜索");delet_cancel = new JButton("取消");delet_ok.setEnabled(false);delet_cancel.addActionListener(new Monitor2());delet_find.addActionListener(new Monitor2());delet_ok.addActionListener(new Monitor2());delet_menu.add(p1,BorderLayout.NORTH);delet_menu.add(show,BorderLayout.CENTER);delet_menu.add(p2,BorderLayout.SOUTH);p1.add(l1);p1.add(text);p2.add(delet_find);p2.add(delet_ok);p2.add(delet_cancel);delet_menu.setBounds(400,200,400,400);delet_menu.setVisible(true);}private class Monitor2 implements ActionListener{p ublic void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("取消")){delet_menu.setVisible(false);new Son_menu().studentmenu();}if(e.getActionCommand().equals("搜索")){delet_student = new StudentDao().findOne(Integer.parseInt(text.getText()));if(delet_student.getName()!= null){String str = "找到学生姓名:"+delet_student.getName()+" 学号:"+delet_student.getId()+" ";show.setText("");show.insert(str, 1);delet_ok.setEnabled(true);}else{show.setText("");show.insert("学生信息未找到", 1);}}if(e.getActionCommand().equals("删除")){new StudentDao().deleteInfo(delet_student);show.setText("");show.insert("学生信息已删除", 1);}}}public static void main(String args[]){new Delet_Menu().student_delet();}}九、修改功能(Change_Mene.java)package menu;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import dao.StudentDao;import model.Student;public class Change_Menu {Student change_student;JFrame change_menu;JPanel p1,p2;JLabel l1;JTextField text;JTextArea show;JButton delet_change,delet_find,delet_cancel;public void student_change(){change_menu = new JFrame("学生信息修改");p1 = new JPanel();p2 = new JPanel();l1 = new JLabel("学号:");text = new JTextField(16);show = new JTextArea(100,100);delet_change = new JButton("修改");delet_find = new JButton("搜索");delet_cancel = new JButton("取消");delet_change.setEnabled(false);delet_cancel.addActionListener(new Monitor2());delet_find.addActionListener(new Monitor2());delet_change.addActionListener(new Monitor2());change_menu.add(p1,BorderLayout.NORTH);change_menu.add(show,BorderLayout.CENTER);change_menu.add(p2,BorderLayout.SOUTH);p1.add(l1);p1.add(text);p2.add(delet_find);p2.add(delet_change);p2.add(delet_cancel);change_menu.setBounds(400,200,400,400);change_menu.setVisible(true);}private class Monitor2 implements ActionListener{p ublic void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("取消")){change_menu.setVisible(false);new Son_menu().studentmenu();}if(e.getActionCommand().equals("搜索")){change_student = newStudentDao().findOne(Integer.parseInt(text.getText()));if(change_student.getName()!= null){String str = "找到学生姓名:"+change_student.getName()+" 学号:"+change_student.getId()+" ";show.setText("");show.insert(str, 1);delet_change.setEnabled(true);}else{show.setText("");show.insert("学生信息未找到", 1);}}if(e.getActionCommand().equals("修改")){new StudentDao().deleteInfo(change_student);show.setText("");change_menu.setVisible(false);new Add_Menu().student_add();}}}public static void main(String args[]){new Change_Menu().student_change();}}。