学生个人信息管理系统.docx
- 文档编号:6562540
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:29
- 大小:282.76KB
学生个人信息管理系统.docx
《学生个人信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生个人信息管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
学生个人信息管理系统
代码行数
1500
项目名称
学生信息管理系统
1.实训目的
面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、图形用户接口、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。
2.实训内容
使用MyEclipse为开发工具,使用RationalRose为建模工具,使用MySQL为数据库服务器,基于GUI和JDBC技术,分析、设计并实现一个管理信息系统。
3.需求分析
3.1需求描述
学生信息管理作为学校管理的一个重要方面,其可变因素多,管理方面繁琐复杂,时间跨度大,再加上其固有的基数大,因而形成了巨大的数据量。
以前的人工管理方式处理这样大量的数据,不可避免的增加了管理的工作量及复杂程度,使有关管理人员工作复杂,负担重,压力大。
根据显示情况,要彻底改变原来的不利条件局面,一个基于网络的综合的学生管理信息系统的建立势在必行。
“学生信息管理系统”为尚未达到信息化管理的学校提供的报名基本信息采集的补充手段,主要用于招生学校学生的基本信息采集及报名管理。
功能需求:
学生信息管理系统对学生管理提供了对学生的学号,姓名,生日,所属城市,所属学院等及部分的增,删,查,改的功能。
(1)学生信息录入,添加:
在此将录入学生基本情况,产生某个学生记录,供以后的一切操作使用。
在操作上力求方便利用,最大程度的把程序人性化。
(2)学生信息查询:
在这里可以对学生进行自定义的多元化的查询。
比如按学号查询,按姓名查询,按城市查询等等,快速方便地提供用户所需信息。
(3)学生信息修改和删除:
可以轻松地进行多种信息的修改或删除。
3.2用例描述
图3.2.1系统用例图
s
4.功能设计
4.1系统层次方框图
图4.1.1系统层次方框图
4.2算法设计(活动图或时序图)
4.2.1.登录功能
在主界面输入用户名和密码,点击登录,在Dao层中组合成执行登录操作的SQL语句,再将其传递给数据库访问类,由其完成数据库的查询操作。
依据查询结果,显示欢迎信息和对用户信息进行维护的选项;如果失败,则显示提示信息并允许重新输入账号和密码。
图4.2.1用户登录功能活动图
4.2.2.注册功能
在主界面点击注册,表示进行注册操作。
依次输入账户、密码和确认密码,当密码和确认密码不一致时,需要重新输入密码和确认密码,完成添加操作。
如果添加成功,则返回主界面,输入新注册的账户和密码进行登录;如果添加失败,则重新进行输入。
4.2.2注册功能活动图
4.2.3添加学生信息功能
在主页面点击添加学生信息按钮,创建AddStudentMessage对象在该方法中向数据库访问类(DB)发送添加SQL语句。
如果添加成功,则显示所有学生信息;如果添加失败,则提示重新输入。
图4.2.3添加学生信息活动图
4.2.4.删除学生信息功能
在主页面点击删除学生信息按钮,创建DeleteStudentMessage对象,在方法中输入要删除的学号,再对其删除方法执行调用,在该方法中向数据库访问类(DB)发送模糊删除SQL语句。
如果删除成功,则不会显示删除到的学生信息;如果删除失败,则提示重新输入。
4.2.4删除学生信息活动图
4.2.5.查询学生信息功能
在主页面点击查询学生信息按钮,创建SelectStudentMessage对象,在方法中输入要查询的学号,再对其查询方法执行调用,在该方法中向数据库访问类(DB)发送模糊查询SQL语句。
如果查询成功,则显示查询到的学生信息;如果查询失败,则提示重新输入。
图4.2.5查找学生信息活动图
4.2.6.修改学生信息功能
在主页面点击修改学生信息按钮,创建UpdateStudentMessage对象,在方法中输入要修改的学号,再对其修改方法执行调用,在该方法中向数据库访问类(DB)发送模糊修改SQL语句。
如果修改成功,则显示修改到的学生信息;如果查询失败,则提示重新输入。
图4.2.6修改学生信息活动图
5.数据设计
5.1类图设计
图5.1.1类图
5.2数据表设计
表5.2.1user_message
字段
类型
长度
是否为空
描述
id
int
Notnull
主键,自动增长
username
varchar
50
Notnull
会员姓名
userpass
varchar
50
Notnull
会员密码
信息表5.2.2student_message
字段
类型
长度
是否为空
描述
id
int
Notnull
主键,自动增长
sname
varchar
50
Notnull
学生姓名
birthday
datetime
Notnull
学生生日
city
varchar
20
Notnull
所属城市
department
varchar
50
Notnull
所属学院
6.运行结果
6.1管理员登录
管理员输入账号密码进行登录,登录成功后,显示登录成功,如图6.1.1,登录成功后进入主页面,如图6.1.2
图6.1.1管理员登录页面
图6.1.2学生信息管理主页面
6.2添加学生信息
点击添加按钮,添加学生基本信息,如图6.2
图6.2添加学生信息页面
6.3添加学生信息成功
输入学生的姓名,生日,城市,学院,点击确定添加成功如图6.3.1,点击确定,添加学生信息成功,显示学生基本信息,如图6.3.2
图6.3.1添加学生信息成功页面
图6.3.2显示添加学生信息页面
6.4删除学生信息
点击删除学生信息按钮,输入学生id,如图6.4.1,点击确认删除,删除成功,如图6.4.2
图6.4.1删除学生信息页面
图6.4.2删除学生信息成功页面
6.5查找学生信息成功
点击查找学生信息按钮,输入学生的id,点击查询,结果如图6.5
图6.5查找学生信息成功页面
6.6修改学生信息成功
点击修改学生信息按钮,进行修改学生的基本信息,修改成功如图6.6
图6.6修改学生信息成功页面
7.关键代码
创建StudentMessageDao类,操作学生信息表:
publicclassStudentsMessageDao{
publicResultSetselect_students(){//查找所有学生的信息
DataBaseManagerdbm=DataBaseManager.getInstance();
Stringsql="select*fromstudent_message";
ResultSetrs=dbm.executeQueryByParam(sql);
try{
if(rs.next()){
rs.previous();
returnrs;
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnnull;
}
publicbooleaninsert_students(Student_Messagestudent_Message){//插入学生信息
DataBaseManagerdbm=DataBaseManager.getInstance();
Stringsql="insertintostudent_message(sname,birthday,city,dapartment)values(?
?
?
?
)";
intrs=dbm.executeUpdate(sql,student_Message.getSname(),student_Message.getBirthday(),student_Message.getCity(),student_Message.getDapartment());
if(rs==1){
returntrue;
}
returnfalse;
}
publicbooleandelete_students(Student_Messagestudent_Message){//删除学生信息
DataBaseManagerdbm=DataBaseManager.getInstance();
Stringsql="deletefromstudent_messagewhereid=?
";
intrs=dbm.executeUpdate(sql,student_Message.getId());
if(rs==1){
returntrue;
}
returnfalse;
}
publicbooleanupdate_students(Student_Messagestudent_Message){//修改学生信息
DataBaseManagerdbm=DataBaseManager.getInstance();
Stringsql="updatestudent_messagesetsname=?
birthday=?
city=?
dapartment=?
whereid=?
";
intrs=dbm.executeUpdate(sql,student_Message.getSname(),student_Message.getBirthday(),student_Message.getCity(),student_Message.getDapartment(),student_Message.getId());
if(rs==1){
returntrue;
}
returnfalse;
}
publicResultSetselects_students(Student_Messagestudent_Message){//按id查找学生信息
DataBaseManagerdbm=DataBaseManager.getInstance();
Stringsql="select*fromstudent_messagewhereid=?
";
ResultSetrs=dbm.executeQueryByParam(sql,student_Message.getId());
returnrs;
}
//用户信息表,验证用户信息是否正确
publicclassUserMessageDao{
publicbooleanlogin(User_Messageuser_Message){//用户登录
DataBaseManagerdbm=DataBaseManager.getInstance();
Stringsql="select*fromuser_messagewhereusername=?
anduserpass=?
";
ResultSetrs=dbm.executeQueryByParam(sql,user_Message.getUsername(),user_Message.getUserpass());
try{
if(rs.next()){
returntrue;
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
dbm.close();
}
returnfalse;
}
publicbooleanregister(User_Messageuser_Message){//用户注册
DataBaseManagerdbm=DataBaseManager.getInstance();
Stringsql="insertintouser_message(username,userpass)values(?
?
)";
intrs=dbm.executeUpdate(sql,user_Message.getUsername(),user_Message.getUserpass());
if(rs==1){
returntrue;
}
dbm.close();
returnfalse;
}
publicResultSetselect_pass(User_Messageuser_Message){//查询用户密码
DataBaseManagerdbm=DataBaseManager.getInstance();
Stringsql="selectuserpassfromuser_messagewhereusername=?
";
ResultSetrs=dbm.executeQueryByParam(sql,user_Message.getUsername());
try{
if(rs.next()){
returnrs;
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnnull;
}
单态模式:
publicclassDataBaseManager{
privateConnectioncon;
privatePreparedStatementpre;
privateResultSetrs;
privatestaticDataBaseManagerdb;
static{
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
privateDataBaseManager(){}
publicstaticDataBaseManagergetInstance(){
if(db==null){
db=newDataBaseManager();
}
returndb;
}
连接数据库:
privatevoidbuildConnection(){
try{
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/shixun","root","0000");
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicResultSetexecuteQueryByParam(Stringsql,Object...o){
this.buildConnection();
try{
pre=con.prepareStatement(sql);
for(inti=0;i pre.setObject(i+1,o[i]); } rs=pre.executeQuery(); }catch(SQLExceptione){ e.printStackTrace(); } returnrs; } publicResultSetexecuteQueryNoParam(Stringsql){ this.buildConnection();; try{ pre=con.prepareStatement(sql); rs=pre.executeQuery(); }catch(SQLExceptione){ e.printStackTrace(); } returnrs; } publicintexecuteUpdate(Stringsql,Object...o){ this.buildConnection(); try{ pre=con.prepareStatement(sql); for(inti=0;i pre.setObject(i+1,o[i]); } intcount=pre.executeUpdate(); returncount; }catch(SQLExceptione){ e.printStackTrace(); return0; } } publicvoidclose(){ try{ if(rs! =null){ rs.close(); } pre.close(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } 添加学生信息界面: publicvoidactionPerformed(ActionEventarg0){ Student_Messagestudent=newStudent_Message(); if(textField_1.getText().equals("")||textField_2.getText().equals("")||textField_3.getText().equals("")||textField_4.getText().equals("")){ JOptionPane.showMessageDialog(AddStudentMessage.this,"添加失败,信息不能为空"); }else{ student.setSname(textField_1.getText()); student.setBirthday(textField_2.getText()); student.setCity(textField_3.getText()); student.setDapartment(textField_4.getText()); StudentsMessageServicestudentService=newStudentsMessageService(); if(studentService.insert_students(student)){ JOptionPane.showMessageDialog(AddStudentMessage.this,"添加成功"); StudentPagestudentPage=newStudentPage(title); studentPage.setVisible(true); setVisible(false); } } }); 删除学生信息界面: publicvoidactionPerformed(ActionEventarg0){ Student_Messagestudent=newStudent_Message(); if(textField.getText().equals("")){ JOptionPane.showMessageDialog(null,"删除失败,id不能为空"); }elseif(DeleteStudentMessage.this.selectUser(Integer.parseInt(textField.getText().toString()))){ student.setId(Integer.parseInt(textField.getText().toString())); StudentsMessageServicestudentService=newStudentsMessageService(); if(studentService.delete_students(student)){ JOptionPane.showMessageDialog(null,"删除成功"); StudentPagestudentPage=newStudentPage(title); studentPage.setVisible(true); setVisible(false); } }else{ JOptionPane.showMessageDialog(null,"不存在此学生"); } } }); 查找学生信息界面: try{ StudentsMessageServicegService=newStudentsMessageService(); ResultSetn=(ResultSet)gService.selects_students(student); while(n.next()){//显示学生的信息 Vector insertRow1.addElement(n.getString (1)); insertRow1.addElement(n.getString (2)); insertRow1.addElement(n.getString(3)); insertRow1.addElement(n.getString(4)); insertRow1.ad
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 个人 信息管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)