学生成绩管理系统最终完美修复版
- 格式:docx
- 大小:240.13 KB
- 文档页数:21
学生成绩管理系统我将把我的实现步骤完整的写出来,我是在VC 6.0版本下用MFC实现的。
我创建的基于单文档的应用程序,过程不介绍,大家都会。
下面的是我系统菜单:思路:刚进入系统时,只有“登录”菜单可用,其他三个菜单项都是灰色不可用的。
当用户点“进入系统”菜单项时,用户输入用户名、密码和用户类型,系统将根据相应的用户权限使相应的菜单可用,并且“进入系统”菜单项变为不可用。
如:如果用户类型是学生,那么只有学生权限菜单可用,而“教师权限”和“管理员权限”都不可用,同时“进入系统”变为不可用。
“学生权限”下只有“查询成绩”,因为学生只可以查询自己相应的成绩;“教师权限”下有“查询学生成绩”和“增改删学生成绩”两个菜单项,因为教师除了可以查询学生成绩还可以增加、修改和删除学生成绩;“管理员权限”下有“管理学生”和“管理教师”两个菜单项。
整体设计:因为我们要设置系统菜单的状态,所以必须在CMainFrame中添加相应的函数和代码,具体步骤如下:【步骤1】由于系统要使用ODBC类操作数据库,所以需要在stdafx.h中加入代码:#include <afxdb.h>【步骤2】在CMainFrame中的OnCreat()中添加代码如下,实现菜单的初始化工作,当用户没进入系统之前,只有“登陆”菜单下的“进入系统”菜单项可用,而“退出系统”和其他3个权限菜单都不可用,即都是灰色的。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){//使“退出系统”和其他3个权限菜单都不可用,即都是灰色的GetMenu()->GetSubMenu(0)-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(2,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(3,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);}【步骤3】在CMainFrame中添加自己定义的函数void SetMenuSta(int type),此函数在登陆对话框的OnOK()中被调用,即当用户进入系统后使“进入系统”菜单项不可用,并根据用户类型使相应菜单可用。
学生成绩管理系统数据流程图及数据字典引言概述:学生成绩管理系统是一种用于管理学生学习成绩的软件系统。
通过数据流程图和数据字典,可以清晰地了解该系统的运行过程和数据结构。
本文将详细介绍学生成绩管理系统的数据流程图和数据字典。
一、学生成绩管理系统数据流程图1.1 学生信息录入流程1.2 成绩录入流程1.3 成绩查询流程二、学生成绩管理系统数据字典2.1 学生信息表2.2 课程信息表2.3 成绩信息表正文内容:一、学生成绩管理系统数据流程图1.1 学生信息录入流程学生信息录入是学生成绩管理系统的第一步,该流程主要包括以下三个步骤:1.1.1 学生信息输入:教师或管理员通过系统界面输入学生的基本信息,包括学生姓名、学号、性别、年级等。
1.1.2 学生信息验证:系统对输入的学生信息进行验证,确保信息的准确性和完整性。
1.1.3 学生信息存储:经过验证的学生信息将被存储到学生信息表中,以便后续的成绩管理和查询。
1.2 成绩录入流程成绩录入是学生成绩管理系统的核心功能之一,该流程主要包括以下三个步骤:1.2.1 课程信息选择:教师或管理员通过系统界面选择要录入成绩的课程。
1.2.2 学生成绩输入:根据选择的课程,教师或管理员输入学生的成绩信息,包括学生学号和对应的成绩。
1.2.3 成绩信息存储:经过验证的成绩信息将被存储到成绩信息表中,以便后续的成绩查询和统计。
1.3 成绩查询流程成绩查询是学生成绩管理系统的常用功能之一,该流程主要包括以下三个步骤:1.3.1 学生信息输入:学生通过系统界面输入自己的学号,以进行成绩查询。
1.3.2 成绩信息检索:系统根据输入的学号,在成绩信息表中检索对应的成绩信息。
1.3.3 成绩信息显示:系统将检索到的成绩信息显示在界面上,供学生查看和参考。
二、学生成绩管理系统数据字典2.1 学生信息表学生信息表是学生成绩管理系统中存储学生基本信息的表格,包括以下字段:- 学号:学生的唯一标识符- 姓名:学生的姓名- 性别:学生的性别- 年级:学生所在的年级2.2 课程信息表课程信息表是学生成绩管理系统中存储课程信息的表格,包括以下字段:- 课程编号:课程的唯一标识符- 课程名称:课程的名称- 授课教师:该课程的教师姓名2.3 成绩信息表成绩信息表是学生成绩管理系统中存储学生成绩信息的表格,包括以下字段:- 学号:学生的学号- 课程编号:课程的编号- 成绩:学生在该课程中的成绩结论:通过数据流程图和数据字典,我们可以清晰地了解学生成绩管理系统的运行过程和数据结构。
学生成绩管理系统(V F P) -标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII摘要:学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
本文简要介绍了本学校学生成绩管理的情况和系统的实现过程,阐述了课题来源,系统及需求分析,系统规划,设计及实现情况。
关键字:控件、窗体、域。
Abstract:Student’s achievement administrative system is a typical information management system(know as MIS), Its development include backstage supporter the foundation and maintain and front the twoes respects of development of application programs of data mainly. As to the former require set up data consistency and integrality strong, data security kind storehouse. Require application program not to be complete, easy to use characteristic of waiting for function the latter.This text has recommended a situation of student’s achievement management of institute and systematic realization course briefly, Having explained the subject source, the system and demand analyse, the system is planned, Design and realize the situation.Key word: Accuse of one, window body, land.目录摘要 (2)一前言 (3)二课题来源 (4)三系统及需求分析 (4)(一)、系统需求 (4)(二)、可行性分析 (4)(三)、VFP5.0以上的中文版概述 (5)四系统规划 (6)(一)、项目规划 (6)(二)、功能框图 (7)(三)、规划数据库 (7)五系统设计和实现 (9)(一)、数据分析与项目的建立 (9)(二)、数据库设计 (9)(三)、模块设计 (10)(四)、系统性能测试 (31)六结束语 (31)参考文献 (32)附录 (3)3一前言Visual FoxPro(简称VFP)是Windows平台下的新一代数据库管理系统,它具有优美的图形用户界面(GUI)、面向对象的开发方式、客户/服务品的数据连接以及通过OLE的数据访问工具等特点。
学生成绩管理系统设计与实现一、本文概述本文旨在深入探讨学生成绩管理系统的设计与实现过程。
随着信息技术的快速发展和普及,教育领域对于信息化、智能化的需求日益增强。
学生成绩管理系统作为学校教育管理信息化的重要组成部分,其设计与实现对于提高教育管理水平、优化教育资源分配、促进教育教学改革具有重要意义。
本文将首先介绍学生成绩管理系统的基本概念、功能和作用,随后详细阐述系统的设计原则、设计思路和设计方法,包括系统架构、数据库设计、用户界面设计等方面。
在此基础上,本文将进一步探讨学生成绩管理系统的实现过程,包括系统开发的编程语言、开发环境、关键技术等,以及系统测试、部署和维护的策略和方法。
本文将总结学生成绩管理系统的设计与实现过程中的经验教训,展望未来的发展方向和应用前景。
通过本文的阐述,希望能够为读者提供一个全面、深入的学生成绩管理系统设计与实现的理论指导和实践参考。
二、系统需求分析在设计和实现学生成绩管理系统之前,对系统需求进行深入分析是至关重要的。
系统需求分析阶段的目标是明确系统的功能需求、性能需求、安全需求以及用户需求,为后续的系统设计和实现提供明确的指导。
我们需要明确系统的功能需求。
学生成绩管理系统应能够实现对学生成绩的基本管理,包括成绩的录入、查询、修改、删除等操作。
同时,系统还应提供成绩统计和报表生成功能,以便于教师和管理人员对学生成绩进行分析和评估。
系统还应支持成绩的导入和导出功能,以便于与其他系统进行数据交换。
我们需要考虑系统的性能需求。
学生成绩管理系统应具备良好的性能和稳定性,能够处理大量数据的存储和访问。
同时,系统还应具备良好的响应速度,确保用户在进行成绩管理操作时能够获得流畅的体验。
系统的安全需求也是不可忽视的。
学生成绩管理系统应采取有效的安全措施,保护数据的机密性和完整性。
例如,系统应设置用户权限管理功能,对不同用户设置不同的访问权限,以防止未经授权的访问和数据泄露。
同时,系统还应采用加密技术,对敏感数据进行加密存储和传输,确保数据的安全性。
详细内容学生学籍成绩管理系统(b/s网络版)《学籍成绩管理系统》的中心是学生成绩管理,是学校教务管理中常用而又繁杂的部分。
从登分到统计、从排序到报表制作等都涉及大量的工作。
如果单纯用人工来管理,费时费力,无法及时获得准确的数据资料来指导教学。
拥有成绩信息系统后,你会发现:现在只需要正确完成成绩录入,其余的事都可放心的交给成绩信息系统。
您可以轻松地进行浏览各科成绩,打印出全套报表等复杂工作。
由于学生成绩是考察学生学习质量,老师教学效果的一个量化指标,使用计算机管理后,对这个指标进行深入研究成为现实。
成绩信息系统是教学评估,改进教学方法、提高教学质量的科学手段。
系统的特点1.系统完全基于B/S结构,没使用任何其他控件,所以只要客户端安装了任何一种浏览器,不用作任何设置即可使用本系统。
2.非常人性化的设计该系统非常注重系统的人性化设计。
让普通用户可以快速熟悉并能方便使用。
3.强大的功能体现在学籍管理和考试成绩管理等模块中体现出系统强大的查询、统计、分析功能。
学籍录入:通过所在的班级来录入学生姓名、性别、民族、籍贯、出生日期、入学时间、联系电话、家庭地址和家长姓名等学生相关信息。
录入第一条记录后,系统会自动进入下一学生的录入页面(班级和入学日期将和上个录入信息一致),减轻了手工劳动并避免了许多错误的发生。
提供了批量录入的功能,可以一次性录入所有学籍。
学籍查询:可通过班级、姓名、入学时间、状态、有学籍记录的时间五种查询方法查询学生的信息,对查询方法可任选其一或多个进行查询。
支持模糊查询!可以通过查看来查看学生的在校学籍情况。
学籍编辑:首先使用查询功能查询出需要修改/删除的记录,然后进行修改/删除操作。
其查询方式和学籍查询模块一样。
学籍管理:对在校学生进行转班(升级)、毕业、退学的管理。
首先选择班级,点击查看,将列出选择班级中的所有学生,要进行转班操作,则先选择转入班级,再选择要转班的学生后点击转班,转班完成。
学生成绩管理系统数据流程图及数据字典一、数据流程图学生成绩管理系统是一个用于记录和管理学生的学习成绩的系统。
下面是该系统的数据流程图,展示了系统中各个模块之间的数据流动和处理过程。
1. 学生信息管理模块学生信息管理模块用于录入和管理学生的基本信息,包括学生姓名、学号、班级等。
该模块的数据流程如下:- 输入:学生基本信息- 处理:验证学生信息的合法性,如学号是否重复等- 输出:存储学生信息至学生信息数据库2. 课程信息管理模块课程信息管理模块用于录入和管理课程的基本信息,包括课程名称、课程编号、授课教师等。
该模块的数据流程如下:- 输入:课程基本信息- 处理:验证课程信息的合法性,如课程编号是否重复等- 输出:存储课程信息至课程信息数据库3. 成绩录入模块成绩录入模块用于教师录入学生的课程成绩。
该模块的数据流程如下:- 输入:学生学号、课程编号、成绩- 处理:验证学生和课程的存在性,计算学生的总评成绩- 输出:存储学生成绩至成绩信息数据库4. 成绩查询模块成绩查询模块用于学生和教师查询学生成绩。
该模块的数据流程如下:- 输入:学生学号或教师工号- 处理:根据输入的学号或工号查询学生或教师的成绩信息- 输出:显示学生或教师的成绩信息5. 成绩统计模块成绩统计模块用于对学生的成绩进行统计和分析。
该模块的数据流程如下:- 输入:学生学号或课程编号- 处理:根据输入的学号或课程编号统计学生或课程的成绩情况,如平均分、最高分、最低分等- 输出:显示学生或课程的成绩统计结果二、数据字典数据字典是对系统中所使用的数据进行定义和说明的文档。
下面是学生成绩管理系统的数据字典,包含了系统中所使用的数据及其相关属性。
1. 学生信息表(Student)- 学号(StudentID):学生的唯一标识,主键- 姓名(Name):学生的姓名- 班级(Class):学生所在的班级2. 课程信息表(Course)- 课程编号(CourseID):课程的唯一标识,主键- 课程名称(CourseName):课程的名称- 授课教师(Teacher):课程的授课教师3. 成绩信息表(Score)- 学号(StudentID):学生的学号,外键,关联学生信息表- 课程编号(CourseID):课程的编号,外键,关联课程信息表- 成绩(Grade):学生在该课程中的成绩- 总评成绩(TotalGrade):学生在该课程中的总评成绩以上是学生成绩管理系统的数据流程图及数据字典,通过数据流程图可以清晰地了解系统中各个模块之间的数据流动和处理过程,而数据字典则对系统中所使用的数据进行了详细的定义和说明。
青果学生成绩补录修改操作说明(原创实用版)目录1.青果学生成绩补录修改操作说明的背景和目的2.操作说明的详细步骤3.注意事项和建议正文【青果学生成绩补录修改操作说明的背景和目的】青果学生成绩补录修改操作说明是为了帮助学校管理人员和教师更加方便、高效地完成学生成绩的录入、修改和补录工作。
通过这份操作说明,可以确保学生成绩信息的准确性,便于学校对学生的学习情况进行分析和评估,从而为提高教学质量提供有力支持。
【操作说明的详细步骤】1.登录系统:使用管理员账号或教师账号登录青果学生成绩管理系统。
2.进入成绩补录页面:在管理系统首页,点击“成绩管理”菜单,选择“成绩补录”选项,进入成绩补录页面。
3.查找需要补录的学生:在成绩补录页面,可以通过输入学生姓名、学号等信息,快速定位到需要补录成绩的学生。
4.录入成绩:在找到需要补录成绩的学生后,输入正确的成绩信息,并点击“保存”按钮。
系统将自动保存并更新学生的成绩信息。
5.修改成绩:若发现录入的成绩有误,可以在成绩补录页面直接修改。
找到需要修改成绩的学生,修改正确的成绩信息,并点击“保存”按钮。
系统将自动保存并更新学生的成绩信息。
6.成绩查询:在成绩补录页面,可以查询到已录入、修改、补录的成绩信息。
若发现成绩信息有误,可以及时进行修改或补录。
【注意事项和建议】1.请确保在录入、修改、补录成绩时,输入的信息准确无误。
错误的成绩信息可能导致学生、家长和学校的误解,影响学生的学习积极性和学校的教学质量。
2.建议在录入、修改、补录成绩时,先进行数据备份。
一旦发现操作失误,可以及时恢复数据,避免造成不必要的损失。
学生成绩管理系统数据流程图及数据字典标题:学生成绩管理系统数据流程图及数据字典引言概述:学生成绩管理系统是一种用于管理学生的成绩信息的系统。
通过数据流程图和数据字典的设计,可以清晰地描述系统的数据流动和数据元素的定义。
本文将详细介绍学生成绩管理系统的数据流程图以及数据字典,以帮助读者更好地理解该系统的数据管理流程。
一、数据流程图1.1 学生信息录入流程- 学生信息录入:管理员或教师通过系统界面录入学生的基本信息,包括学号、姓名、性别、班级等。
- 数据验证:系统对录入的学生信息进行验证,确保数据的准确性和完整性。
- 学生信息存储:经过验证的学生信息被存储在学生信息数据库中。
1.2 成绩录入流程- 成绩录入:教师通过系统界面录入学生的成绩信息,包括科目、分数等。
- 数据验证:系统对录入的成绩信息进行验证,确保数据的准确性和合法性。
- 成绩信息存储:经过验证的成绩信息被存储在成绩信息数据库中。
1.3 成绩查询流程- 学生查询:学生通过系统界面查询自己的成绩信息。
- 数据检索:系统根据学生提供的学号进行数据检索,找到对应的成绩信息。
- 成绩信息展示:系统将查询到的成绩信息展示给学生。
二、数据字典2.1 学生信息数据字典- 学号:学生的唯一标识符,用于区分不同学生。
- 姓名:学生的姓名。
- 性别:学生的性别,可以是男或女。
- 班级:学生所在的班级信息。
2.2 成绩信息数据字典- 学号:学生的唯一标识符,用于关联学生的成绩信息。
- 科目:学生所修科目的名称。
- 分数:学生在该科目中获得的成绩。
2.3 数据库数据字典- 学生信息数据库:用于存储学生的基本信息。
- 成绩信息数据库:用于存储学生的成绩信息。
三、数据流程图与数据字典的关系数据流程图是通过图形化的方式展示数据在系统中的流动过程,而数据字典则是对数据元素进行定义和描述的工具。
数据流程图和数据字典相互配合,可以帮助我们更好地理解和管理学生成绩管理系统中的数据流动和数据元素。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录一、设计目的 2二、功能介绍 2三、程序流程 2四、设计步骤(不用加过多代码) 21.设计数据库建表 22.新用户注册功能 33.注册用户登录功能 34.学生成绩的录入功能 45.数据查询功能 56.按条件删除数据功能 6五、设计总结 6六、程序清单7┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计目的学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。
重点介绍了学生成绩管理系统的实现过程:包括系统分析、系统调查、功能设计、数据库设计、系统实现、系统测试和调试等。
本系统主要功能有教师管理、学生管理、班级管理、学生信息管理、成绩管理、留言管理,包括功能需求描述、数据库设计等内容。
二、功能介绍(1)具有新用户注册功能。
(2)具有注册用户登录功能。
(3)具有学生成绩的录入功能,自动计算每个学生的总成绩。
(4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。
(5)具有按条件删除数据功能。
三、程序流程三、设计步骤(不用加过多代码)(1)设计数据库,建表A:表usersB:表grade┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊(2)新用户注册。
if(dbopt.Register(jtf_username.getText(), newString(jtf_password.getPassword()), sex, jtf_email.getText(), jtf_addr.getText())){JOptionPane.showMessageDialog(this, "注册成功了");LoginFrame lf=new LoginFrame();this.dispose();}else{JOptionPane.showMessageDialog(this, "出错了,请重新尝试,\r\n如果还出错请联系管理员!");}(3)注册用户登录功能。
if(e.getSource()==login){if(dbopt.check(jtf.getText(), newString(jpf.getPassword()))){StuInfoFrame sif=new StuInfoFrame();this.dispose();}else{JOptionPane.showMessageDialog(this, "用户名或密码错误");jtf.setText("");jpf.setText("");}(4)学生成绩的录入功能┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊1、录入的学生成绩信息均不为空,即录入成功if(dbop.putInforIntoDb(jtf_name.getText(),Integer.parseInt(jtf_sid.getText()), jtf_sex.getText(),jtf_depart.getText(), Integer.parseInt(jtf_cs.getText()),Integer.parseInt( jtf_ccs. getText()), Integer.parseInt(jtf_javas.getText()))) {JOptionPane.showMessageDialog(this, "这条学生成绩信息录入成功!");}else {JOptionPane.showMessageDialog(this, "出错了,请检查你输入的信息后重新录入,\r\n如果还出错,请联系管理员!");}2、学生总成绩ps=(PreparedStatement) conn.prepareStatement("INSERT INTO grade (name,sid,sex,sdepart,cs,ccs,javas,sum) VALUES (?,?,?,?,?,?,?,?);");…………ps.setInt(8, sum=cs+ccs+javas);(5)数据查询功能A:学生成绩管理界面B:按学生学号搜索学生成绩信息┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("SELECT * FROM grade WHERE sid="+sid+"");res=ps.executeQuery();C:查询所有学生的成绩ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("SELECT * FROM grade");res=ps.executeQuery();(6)删除学生信息。
ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("DELETE FROM grade WHERE sid="+id);int sid=ps.executeUpdate();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊五、设计总结继C++之后学习Java 程序设计语言会感觉很轻松,因为Java 与C++语法类似,并把C++中一些较低级和较难以理解的功能都去掉了,如多继承、指针等,同时Java增强了部分功能,如“+”运算符的重载。
对于初学Java的人而言,难点是 Java 中的引用、初始化一个类过程等。
总的来说,Java 其易于学习、高效率的执行方式、平台无关性、分布式与高安全性及其丰富的API文档和类库等特点都说明Java 是程序设计语言的伟大进步的表现。
可以说这么说,本次课程设计综合考察了我们对Java程序设计知识的掌握熟练程度和实际运用能力。
其间,涉及到了Java 中的绝大多数的知识点,如Java图形用户界面设计、Java的异常处理机制、Java中的多线程程序设计、Java输入输出流等。
程序实现的关键在于功能的合理划分以及各个包或者类之间的通讯问题,只要分析清楚这两点,剩下的就是按部就班的写代码了。
所以设计是关键。
六、程序清单1、ConnDB.java/*** 数据库连接*/import java.sql.Connection;import java.sql.DriverManager;public class ConnDB {private Connection conn=null;public Connection getConn(){try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mykc design","root","root");}catch(Exception e){e.printStackTrace();}return conn;}}2、DBOperate.javaimport java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;public class DBOperate {private Connection conn=null;private PreparedStatement ps=null;private ResultSet res =null;//录入学生成绩public boolean putInforIntoDb(String name,int sid,String sex,String depart,int cs,int ccs,int javas){ int sum;┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊boolean b=false;try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("INSERT INTO grade (name,sid,sex,sdepart,cs,ccs,javas,sum) V ALUES (?,?,?,?,?,?,?,?);");ps.setString(1, name);ps.setInt(2, sid);ps.setString(3, sex );ps.setString(4, depart);ps.setInt(5, cs);ps.setInt(6, ccs);ps.setInt(7, javas);ps.setInt(8, sum=cs+ccs+javas);//学生总成绩有所有科目成绩相加得出int cont=ps.executeUpdate();if(cont==1){b=true;}} catch (Exception e) {e.printStackTrace();} finally{this.close();}return b;}//验证用户public boolean check(String u,String p){boolean b=false;try{ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("select userpwd from users where username='"+u+"'");res=ps.executeQuery();if(res.next()){String dbpwd=res.getString(1);if(dbpwd.equals(p)){b=true;}}}catch(Exception e){e.printStackTrace();}finally{this.close();}return b;}//注册用户public boolean Register(String username,String password,String sex,String email,String address){ boolean b=false;┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("INSERT INTO users (username,userpwd,sex,e_mail,address) V ALUES (?,?,?,?,?)");ps.setString(1, username);ps.setString(2, password);ps.setString(3, sex);ps.setString(4, email);ps.setString(5, address);int num=ps.executeUpdate();if(num==1){b=true;}} catch (Exception e) {e.printStackTrace();} finally{this.close();}return b;}//删除学生成绩public boolean Deleteuser(String id){boolean b=false;try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("DELETE FROM grade WHERE sid="+id);int sid=ps.executeUpdate();if(sid==1){b=true;}} catch (Exception e) {e.printStackTrace();} finally{this.close();}return b;}//按学号查找学生成绩public gradeBean getAGradeInfo(String tid){gradeBean grb=new gradeBean();if(tid.equals("")){return null;}int sid=Integer.parseInt(tid);try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("SELECT * FROM grade WHERE sid="+sid+"");res=ps.executeQuery();while(res.next()){g rb.setNum(res.getInt(1));g rb.setName(res.getString(2));g rb.setSid(res.getInt(3));┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊g rb.setSex(res.getString(4));g rb.setSdepart(res.getString(5));g rb.setCs(res.getInt(6));g rb.setCcs(res.getInt(7));g rb.setJavas(res.getInt(8));g rb.setSum(res.getInt(9));}} catch (Exception e) {e.printStackTrace();} finally{this.close();}return grb;}//显示所有学生的成绩public ArrayList<gradeBean> ShowGradeInfo(){ArrayList<gradeBean> al=new ArrayList<gradeBean>();try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("SELECT * FROM grade");res=ps.executeQuery();while(res.next()){g radeBean grb=new gradeBean();grb.setNum(res.getInt(1));g rb.setName(res.getString(2));g rb.setSid(res.getInt(3));g rb.setSex(res.getString(4));g rb.setSdepart(res.getString(5));g rb.setCs(res.getInt(6));g rb.setCcs(res.getInt(7));g rb.setJavas(res.getInt(8));g rb.setSum(res.getInt(9));a l.add(grb);}} catch (Exception e) {e.printStackTrace();} finally{this.close();}return al;}//关闭资源public void close(){try{if(res!=null){res.close();res=null;}if(ps!=null){ps.close();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ps=null;}if(conn!=null){conn.close();conn=null;}}catch(Exception e){e.printStackTrace();}}}3、LoginFrame.javaimport java.awt.Color;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class LoginFrame extends JFrame implements ActionListener { JPanel mainjp;Color mainjp_color;JLabel titleLb;JLabel jlb_username;JLabel jlb_password;JTextField jtf;JPasswordField jpf;JButton login;JButton regist;DBOperate dbopt;public LoginFrame(){dbopt=new DBOperate();this.init();}public void init(){//主面板mainjp_color=new Color(189,227,241);mainjp=new JPanel();mainjp.setLayout(null);//用户名jlb_username=new JLabel("用户名:");jlb_username.setBounds(50, 50, 50, 30);jtf=new JTextField(100);jtf.setBounds(110, 50, 200, 30);//密码jlb_password=new JLabel("密码:");jlb_password.setBounds(50, 90, 50, 30);jpf=new JPasswordField(100);jpf.setBounds(110, 90, 200, 30);┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊//标题titleLb=new JLabel(" 学生成绩管理系统登录界面");titleLb.setFont(new Font("微软雅黑", 1, 20));titleLb.setOpaque(true);titleLb.setBackground(mainjp_color);//注册按钮和登录按钮login=new JButton("登录");login.addActionListener(this);login.setBounds(80, 150, 100, 30);regist=new JButton("注册");regist.addActionListener(this);regist.setBounds(200, 150, 100, 30);//设置背景色mainjp.setBackground(mainjp_color);//添加mainjp.add(jlb_username);mainjp.add(jlb_password);mainjp.add(jtf);mainjp.add(jpf);mainjp.add(login);mainjp.add(regist);this.add(titleLb,"North");this.add(mainjp,"Center");//Frame部分this.setSize(400, 300);this.setVisible(true);this.setTitle("学生成绩管理系统");this.setResizable(false);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String[] args) {// TODO Auto-generated method stubLoginFrame mf=new LoginFrame();}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource()==login){if(dbopt.check(jtf.getText(), new String(jpf.getPassword()))){StuInfoFrame sif=new StuInfoFrame();this.dispose();}else{JOptionPane.showMessageDialog(this, "用户名或密码错误");jtf.setText("");jpf.setText("");}}else if(e.getSource()==regist){RegisterFrame rf=new RegisterFrame();this.dispose();}}}4、RegisterFrame.java┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊import java.awt.Checkbox;import java.awt.CheckboxGroup;import java.awt.Color;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class RegisterFrame extends JFrame implements ActionListener { JLabel titlelb;Color mainjp_color;JPanel mainjp;JPanel mainjp_all;JLabel jlb_username;JLabel jlb_password;JLabel jlb_sex;JLabel jlb_email;JLabel jlb_addr;JTextField jtf_username,jtf_email,jtf_addr;JPasswordField jtf_password;CheckboxGroup cbg;Checkbox cb_man,cb_woman;JButton jb_reg,jb_clear;DBOperate dbopt;public RegisterFrame(){dbopt=new DBOperate();this.init();}public void init(){//背景色设置mainjp_color=new Color(189,227,241);//标题titlelb=new JLabel(" 用户注册界面");titlelb.setFont(new Font("微软雅黑",1,30));titlelb.setOpaque(true);titlelb.setBackground(mainjp_color);//主面板mainjp=new JPanel();mainjp.setBackground(mainjp_color);mainjp.setLayout(null);//放按钮和文本的面板mainjp_all=new JPanel();mainjp_all.setBounds(20, 40, 350, 300);mainjp_all.setLayout(null);//用户名┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊jlb_username=new JLabel("用户名:");jtf_username=new JTextField(100);jlb_username.setBounds(10, 5, 80, 30);jtf_username.setBounds(100, 5, 220, 30);//密码jlb_password=new JLabel("密码:"); jtf_password=new JPasswordField(20);jlb_password.setBounds(10, 50, 80, 30);jtf_password.setBounds(100, 50, 220, 30);//性别cbg=new CheckboxGroup();jlb_sex=new JLabel("性别:");cb_man=new Checkbox("男", true,cbg);cb_woman=new Checkbox("女", false,cbg);jlb_sex.setBounds(10, 95, 80, 30);cb_man.setBounds(100, 95, 50, 30);cb_woman.setBounds(160, 95, 50, 30);//邮件jlb_email=new JLabel("电子邮件:");jtf_email=new JTextField(20);jlb_email.setBounds(10, 140, 80, 30);jtf_email.setBounds(100, 140, 220, 30);//地址jlb_addr=new JLabel("家庭住址:");jtf_addr=new JTextField(20);jlb_addr.setBounds(10, 185, 80, 30);jtf_addr.setBounds(100, 185, 220, 30);//按钮jb_reg=new JButton("注册");jb_reg.addActionListener(this);jb_clear=new JButton("重置");jb_clear.addActionListener(this);jb_reg.setBounds(20, 260, 120, 35);jb_clear.setBounds(180, 260, 120, 35);//添加处理//用户名mainjp_all.add(jlb_username);mainjp_all.add(jtf_username);//密码mainjp_all.add(jlb_password);mainjp_all.add(jtf_password);//性别mainjp_all.add(jlb_sex);mainjp_all.add(cb_man);mainjp_all.add(cb_woman);//电子邮件mainjp_all.add(jlb_email);mainjp_all.add(jtf_email);//家庭住址mainjp_all.add(jlb_addr);mainjp_all.add(jtf_addr);//注册和重置按钮mainjp_all.add(jb_reg);mainjp_all.add(jb_clear);mainjp_all.setBackground(mainjp_color);┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊mainjp.add(mainjp_all);this.add(titlelb,"North");this.add(mainjp,"Center");//Frame部分this.setTitle("用户注册");this.setSize(400, 510);this.setVisible(true);this.setLocationRelativeTo(null);this.setResizable(false);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource()==jb_clear){jtf_username.setText("");jtf_password.setText("");jtf_email.setText("");jtf_addr.setText("");}else if(e.getSource()==jb_reg){String sex="";if(cb_man.getState()){sex="男";}else{sex="女";}if(dbopt.Register(jtf_username.getText(), new String(jtf_password.getPassword()), sex, jtf_email.getText(), jtf_addr.getText())){JOptionPane.showMessageDialog(this, "注册成功了");LoginFrame lf=new LoginFrame();this.dispose();}else{JOptionPane.showMessageDialog(this, "出错了,请重新尝试,\r\n如果还出错请联系管理员!");}}}}5、StuInfoFrame.javaimport java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTable;import javax.swing.JTextField;public class StuInfoFrame extends JFrame implements ActionListener {┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊Color mainjp_color;JPanel jp_north,jp_norputCom;JPanel jp_center,jp_center_search,jp_center_table,jp_center_add; JLabel jlb;JTextField jtf;JButton jb_go,jb_allgo,jb_addNewInfo;JTable jtable_add,jtableSearch;JButton deletXuJIInfo,addInfo;DBOperate dbop;public StuInfoFrame(){dbop=new DBOperate();this.init();this.add(jp_north,"North");this.add(jp_center,"Center");this.setSize(800, 350);this.setVisible(true);this.setLocationRelativeTo(null);this.setTitle("学生成绩管理界面");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }public void init(){//主面板颜色mainjp_color=new Color(189,227,241);//上边jp_north=new JPanel();jp_north.setBackground(mainjp_color);jlb=new JLabel("按照学号搜索学生成绩信息:");jlb.setBounds(20, 5, 200, 25);jtf=new JTextField(20);jb_go=new JButton("搜索");jb_go.addActionListener(this);jb_allgo=new JButton("搜索所有学生的成绩");jb_allgo.addActionListener(this);jb_addNewInfo=new JButton("录入学生成绩");jb_addNewInfo.addActionListener(this);//中间deletXuJIInfo=new JButton("删除该学生信息");deletXuJIInfo.addActionListener(this);addInfo=new JButton("录入学生成绩");addInfo.addActionListener(this);jp_center=new JPanel();jp_center.setBackground(mainjp_color);jp_center_search=new JPanel();jp_center_search.setBackground(mainjp_color);//添加jp_north.add(jlb);┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊jp_north.add(jtf);jp_north.add(jb_go);jp_north.add(jb_allgo);jp_north.add(jb_addNewInfo);}public void firstCard(gradeBean grb){String strSearch[]={"序号","姓名","学号","性别","院系","C语言成绩","c++ 成绩","Java 成绩","总成绩"};Object objSearch1[][]=new Object[2][9];for(int i=0;i<9;i++){o bjSearch1[0][i]=strSearch[i];}StringssSearch[]={grb.getNum()+"",grb.getName(),grb.getSid()+"",grb.getSex(),grb.getSdepart(),grb.getCs() +"",grb.getCcs()+"",grb.getJavas()+"",grb.getSum()+""};for(int i=0;i<9;i++){o bjSearch1[1][i]=ssSearch[i];}Object objSearch2[]={"序号","姓名","学号","性别","院系","C语言成绩","c++ 成绩","Java 成绩","总成绩"};jtableSearch=new JTable(objSearch1,objSearch2);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource()==jb_allgo){allStuGradeInfo axji=new allStuGradeInfo();}else if(e.getSource()==jb_addNewInfo){addStuGradeInof sif=new addStuGradeInof();}else if(e.getSource()==jb_go){if(jtf.getText().equals("")){JOptionPane.showMessageDialog(this, "请输入要查询的学生学号");}else{this.firstCard(dbop.getAGradeInfo(jtf.getText()));jp_center_search.removeAll();jp_center_search.add(jtableSearch);jp_center_search.add(deletXuJIInfo);this.add(jp_center_search);this.setVisible(true);}}else if(e.getSource()==deletXuJIInfo){if(dbop.Deleteuser(jtf.getText())){JOptionPane.showMessageDialog(this, "删除信息成功");this.remove(jp_center_search);jp_center=new JPanel();jp_center.setBackground(mainjp_color);this.add(jp_center);this.setVisible(true);}else{JOptionPane.showMessageDialog(this, "出错了,请重新尝试,\r\n如果还出错,请联系管理员!");}}┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊}}6、addStuGradeInfo.javaimport java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class addStuGradeInof extends JFrame implements ActionListener { JLabel titlelb;Color mainjp_color;JPanel jp_center;JPanel jp_center_main;JLabel jlb_xuhao,jlb_name,jlb_sid,jlb_sex,jlb_depart,jlb_cs,jlb_ccs,jlb_javas,jlb_sum;JTextField jtf_xuhao,jtf_name,jtf_sid,jtf_sex,jtf_depart,jtf_cs,jtf_ccs,jtf_javas,jtf_sum;JButton jb_reg,jb_reset;DBOperate dbop;public addStuGradeInof(){dbop=new DBOperate();//主面板颜色mainjp_color=new Color(189,227,241);titlelb=new JLabel(" 录入学生成绩");titlelb.setFont(new Font("微软雅黑", 1, 30));titlelb.setOpaque(true);titlelb.setBackground(mainjp_color);jp_center=new JPanel();jp_center.setBackground(mainjp_color);jp_center.setLayout(null);jlb_name=new JLabel(" 姓名:");jlb_sid=new JLabel(" 学号:");jlb_sex=new JLabel(" 性别:");jlb_depart=new JLabel(" 院系:");jlb_cs=new JLabel(" C语言成绩:");jlb_ccs=new JLabel(" C++ 成绩:");jlb_javas=new JLabel(" Java 成绩:");int num=20;jtf_name=new JTextField(num);jtf_sid=new JTextField(num);jtf_sex=new JTextField(num);jtf_depart=new JTextField(num);jtf_cs=new JTextField(num);jtf_ccs=new JTextField(num);┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊jtf_javas=new JTextField(num);jtf_sum=new JTextField(num);jp_center_main=new JPanel();jp_center_main.setBounds(50, 30, 300, 200);jp_center_main.setLayout(new GridLayout(7, 2));jp_center_main.add(jlb_name);jp_center_main.add(jtf_name);jp_center_main.add(jlb_sid);jp_center_main.add(jtf_sid);jp_center_main.add(jlb_sex);jp_center_main.add(jtf_sex);jp_center_main.add(jlb_depart);jp_center_main.add(jtf_depart);jp_center_main.add(jlb_cs);jp_center_main.add(jtf_cs);jp_center_main.add(jlb_ccs);jp_center_main.add(jtf_ccs);jp_center_main.add(jlb_javas);jp_center_main.add(jtf_javas);jb_reg=new JButton("录入成绩");jb_reg.addActionListener(this);jb_reset=new JButton("重置");jb_reset.addActionListener(this);jb_reg.setBounds(80, 280, 100, 25);jb_reset.setBounds(210, 280, 100, 25);jp_center.add(jp_center_main);jp_center.add(jb_reg);jp_center.add(jb_reset);this.add(titlelb,"North");this.add(jp_center,"Center");this.setSize(400, 500);this.setVisible(true);this.setResizable(false);this.setLocationRelativeTo(null);}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource()==jb_reset){jtf_name.setText("");jtf_sid.setText("");jtf_sex.setText("");jtf_depart.setText("");jtf_cs.setText("");jtf_ccs.setText("");jtf_javas.setText("");jtf_sum.setText("");}else if(e.getSource()==jb_reg){if(jtf_name.getText().equals("")||jtf_sex.getText().equals("")||jtf_sid.getText().equals("")||jtf_cs.getT ext().equals("")||┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊jtf_depart.getText().equals("")||jtf_cs.getText().equals("")||jtf_ccs.getText().equals("")||jtf_javas.getText( ).equals("")){JOptionPane.showMessageDialog(this, "所有信息都是必填信息,如果不填将无法录入!");}else{if(dbop.putInforIntoDb(jtf_name.getText(), Integer.parseInt(jtf_sid.getText()), jtf_sex.getText(),jtf_depart.getText(),Integer.parseInt( jtf_cs.getText()),Integer.parseInt( jtf_ccs.getText()), Integer.parseInt(jtf_javas.getText()))){JOptionPane.showMessageDialog(this, "这条学生成绩信息录入成功!");}else {JOptionPane.showMessageDialog(this, "出错了,请检查你输入的信息后重新录入,\r\n如果还出错,请联系管理员!");}}}}}7、allStuGradeInfo.javaimport java.awt.Color;import java.util.ArrayList;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTable;public class allStuGradeInfo extends JFrame {Color mainjp_color;JPanel jp_main;JTable jtable;DBOperate dbop;public allStuGradeInfo(){//主面板颜色mainjp_color=new Color(189,227,241);jp_main=new JPanel();jp_main.setBackground(mainjp_color);dbop=new DBOperate();ArrayList<gradeBean> al=dbop.ShowGradeInfo();String str[]={"序号","姓名","学号","性别","院系","C语言成绩","c++成绩","Java 成绩","总成绩"};Object obj1[][]=new Object[al.size()+1][9];for(int i=0;i<9;i++){o bj1[0][i]=str[i];}for(int i=1;i<al.size()+1;i++){g radeBean grb=al.get(i-1);StringssSearch[]={grb.getNum()+"",grb.getName(),grb.getSid()+"",grb.getSex(),grb.getSdepart(),grb.getCs() +"",grb.getCcs()+"",grb.getJavas()+"",grb.getSum()+""};f or(int j=0;j<9;j++){obj1[i][j]=ssSearch[j];┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊}}Object obj2[]={"序号","姓名","学号","性别","院系","C语言成绩","c++ 成绩","Java 成绩","总成绩"};jtable=new JTable(obj1, obj2);jp_main.add(jtable);this.add(jp_main);this.setSize(750, 450);this.setVisible(true);this.setResizable(false);this.setTitle("所有学生的成绩");this.setLocationRelativeTo(null);}}8、gradeBean.java/***学生成绩信息*/public class gradeBean {public String getName() {return name;}public void setName(String name) { = name;}public int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getSdepart() {return sdepart;}public void setSdepart(String sdepart) {this.sdepart = sdepart;}public int getCs() {return cs;}public void setCs(int cs) {this.cs = cs;}public int getCcs() {return ccs;}public void setCcs(int ccs) {s = ccs;}public int getJavas() {return javas;长 春 大 学 课程设计纸 共 21 页 第 21 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ } public void setJavas(int javas) { this .javas = javas; }public int getSum() { return sum ; } public void setSum(int sum) { this .sum = sum; } public int getNum() { return num ; } public void setNum(int num) { this .num = num; } private int num ; //序号 private String name ; //学生姓名 private int sid ; //学号 private String sex ; //性别 private String sdepart ; //院系 private int cs ;//c 语言成绩 private int ccs ;//c++成绩 private int javas ;//java 成绩 private int sum ;//总成绩}。