学生信息管理系统Java程序可行性报告.docx
- 文档编号:28131112
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:61
- 大小:159.26KB
学生信息管理系统Java程序可行性报告.docx
《学生信息管理系统Java程序可行性报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统Java程序可行性报告.docx(61页珍藏版)》请在冰豆网上搜索。
学生信息管理系统Java程序可行性报告
Java课程设计——学生信息管理系统
开发与设计的总体思想
教师方面:
教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。
在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。
在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。
在查找学生成绩信息时,只能依据学生姓名和学号进行查找。
在修改功能里面,包括对学生基本信息表和学生成绩表进行增加和删除记录
学生方面:
学生通过自己的用户名和密码登录此系统后,可以查询自己本学期的各科成绩信息
功能介绍
学生信息管理系统要面对教师和学生用户。
对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。
对于学生,不需要查询自己的基本信息,只需要查询成绩。
为了保护学生成绩隐私,每位学生登录系统后只能查询自己的成绩,而无法看到别人的成绩
流程图
主要方法
•主要用JLabel、JTextField、JTable、JPasswordField、JButton、来编写文本框和按钮
•addMenuItem.addActionListener(newAddActionListener());//注册事件
•deleteMenuItem.addActionListener(newDeleteActionListener());//注册事件
•addScoreMenuItem.addActionListener(newAddScoreActionListener());//注册事件
•deleteScoreMenuItem.addActionListener(newDeleteScoreActionListener());//注册事件
•queryMenuItem.addActionListener(newQueryActionListener());//注册事件
•queryScoreMenuItem.addActionListener(newQueryScoreActionListener());//注册事件
•exitMenuItem.addActionListener(newExitActionListener());//注册事件
总主界面
•总主界面登陆后,可以选择用户,是学生用户或者教师用户
•如果选择教师用户,则进入教师登陆界面,在这个界面上输入教师姓名和用户密码,输入后单击“登录”按钮,则进入教师主界面。
•如果选择学生用户,则进入学生登录界面,在这个界面上输入学生姓名和用户密码。
•学生用户
•输入后单击“成绩查询”按钮,若密码正确,这显示该学生本人本学期成绩,若密码不正确,这提示密码错误。
•教师用户
•在教师主界面可以选择进行查询操作还是修改操作。
在查询操作中包含查询学生基本信息和查询学生成绩信息。
查询界面
•若要查询学生基本信息,点击菜单项则进入学生基本信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个学生姓名。
输入后,单击“检索”按钮,则开始数据库查询。
如果数据库检索到所需信息,这生成列表显示检索结构,如果没有所需信息,则列表中的内容为空。
•若要查询学生成绩信息,则点击学生成绩查询菜单项,进入成绩查询界面。
在此界面的文本框中输入要查询成绩的学生姓名,然后单击检索按钮。
若数据库中有此学生的成绩信息,则生成列表显示成绩信息,若没有此记录,则列表内容为空。
教师界面
•如果教师要进行修改操作,则在教师主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:
增加新生信息,删除毕业生信息(这两个是对学生基本信息表的操作),增加成绩信息,删除成绩信息(这两个是对学生成绩信息表的操作)。
在增加信息操作中,按照标签提示一次输入要增添的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。
在删除信息操作中,输入要删除信息的学生姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。
系统实现
本系统保存在studentmanage包里
其中包含四个包:
connection包,dao包,model包,ui包
1.Connection包中的类:
(1)DBconnection类:
此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。
若连接成功,提示:
connectionsuccess,若连接失败,提示:
connectionfailure
DBconnection类源代码:
packageconnection;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
publicclassDBConnection{
publicstaticConnectioncon=null;
publicstaticConnectiongetConnection()
{
try{
StringdbDriver="com.mysql.jdbc.Driver";
Class.forName(dbDriver);
System.out.println("DriverSuceess");
}catch(ClassNotFoundExceptione){
System.out.println("Drivernotfound");
e.printStackTrace();
}
try{
con=DriverManager.getConnection("jdbc:
mysql:
//127.0.0.1:
3306/studentmanage","root","root");
System.out.println("ConnectionSuceess");
}catch(SQLExceptione){
System.out.println("Connetionfailure");
e.printStackTrace();
}
returncon;
}
publicstaticvoidcloseConnection()
{
if(con!
=null)
try{
con.close();
System.out.println("databaseclosesuccess");
}catch(SQLExceptione){
System.out.println("closefailure");
e.printStackTrace();
}
}
}
2.Dao包中的类:
(1)StudentDao类:
此类中有四个方法,studentLogin,addStudent,deleteStudent,queryStuden,作用分别是控制学生登陆,增加学生基本信息,查询学生基本信息,删除学生基本信息。
studentLogin()方法中,有两个参数,分别传给select语句中的sname(学生姓名)和password(登录密码),利用select语句在studentlogin表中检索学生登录信息。
若存在此信息,返回true,否则返回false
addStudent()方法中,有五个参数,分别传给insert语句中的num(学号),sname(学生姓名),age(年龄),sex(性别)和dept(系别),利用insert语句向student学生基本信息表中插入学生记录。
若插入成功,返回true,否则返回false
deleteStudent()方法中,有一个参数,传给delete语句中的sname(学生姓名),利用delete语句,把student表中相关学生信息删除。
若删除成功,返回true,否则返回false
queryStuden()方法中,有两个参数,分别传给select语句中的field(查找方式)和key(查找内容),利用select语句,从student表中检索学生基本信息。
若存在此信息,则返回一个ArrayList类的对象lis(表格),否则,异常处理
StudentDao类源代码:
packagedao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importmodel.Student;
importconnection.DBConnection;
publicclassStudentDao{
publicbooleanstudentLogin(Stringsname,Stringpassword){
DBConnectiondb=newDBConnection();
Connectioncon=db.getConnection();
booleanisfound=false;
PreparedStatementpst;
try{
pst=con.prepareStatement("select*fromstudentloginwheresname=?
andpassword=?
");
pst.setString(1,sname);
pst.setString(2,password);
ResultSetrs=pst.executeQuery();
if(rs.next())
isfound=true;
}catch(SQLExceptione){
e.printStackTrace();
}
System.out.println(isfound);
returnisfound;
}
publicbooleanaddStudent(intnum,Stringsname,Stringsex,intage,
Stringdept){
Connectioncon=DBConnection.getConnection();
PreparedStatementpst;
try{
pst=con.prepareStatement("insertintostudentvalues(?
?
?
?
?
)");
pst.setInt(1,num);
pst.setString(2,sname);
pst.setString(3,sex);
pst.setInt(4,age);
pst.setString(5,dept);
intcount=pst.executeUpdate();//返回修改的记录数
if(count==1)
returntrue;
else
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
publicArrayListqueryStudent(Stringfield,Stringkey){
ArrayListlis=newArrayList();
Connectioncon=DBConnection.getConnection();
Statementstm;
try{
stm=con.createStatement();
Stringsql="select*fromstudentwhere"+field+"like'%"
+key+"%'";
System.out.println(sql);
ResultSetrs=stm.executeQuery(sql);
while(rs.next()){
Studentstudent=newStudent(rs.getInt
(1),rs.getString
(2),rs
.getString(3),rs.getInt(4),rs.getString(5));
lis.add(student);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlis;
}
publicbooleandeleteStudent(Stringkey){
Connectioncon=DBConnection.getConnection();
Statementstm;
try{
stm=con.createStatement();
Stringsql="deletefromstudentwheresnamelike'%"
+key+"%'";
System.out.println(sql);
intcount=stm.executeUpdate(sql);
if(count==1)
returntrue;
else
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
}
(2)TeacherDao类:
此类中有一个方法:
queryTeacher,作用是控制教师登陆
queryTeacher()方法中,有两个参数,分别传给select语句中的tname(教师姓名)和password(登陆密码),利用select语句在teacher表中检索教师登陆信息。
若存在此信息,返回true,否则返回false
TeacherDao类源代码:
packagedao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importconnection.DBConnection;
publicclassTeacherDao{
publicbooleanqueryTeacher(Stringtname,Stringpassword){
DBConnectiondb=newDBConnection();
Connectioncon=db.getConnection();
booleanisfound=false;
PreparedStatementpst;
try{
pst=con.prepareStatement("select*fromteacherwheretname=?
andpassword=?
");
pst.setString(1,tname);
pst.setString(2,password);
ResultSetrs=pst.executeQuery();
if(rs.next())
isfound=true;
}catch(SQLExceptione){
e.printStackTrace();
}
System.out.println(isfound);
returnisfound;
}
publicstaticvoidmain(String[]args){
}
}
(3)ScoreDao类:
此类中有四个方法,queryScore,queryScore1,addScore,deleteScor
作用分别是为教师用户提供查询学生成绩信息功能,为学生用户提供
询本人成绩信息功能,添加成绩信息,删除成绩信息。
queryScore()方法中,有一个参数,传给select语句中的sname(学生姓名),利用select语句,查询学生成绩信息表中的内容。
若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理
queryScore1()方法中,有一个参数,传给传给select语句中的sname(学生姓名),这个sname的学生用户登录时输入的姓名。
即此类的作用是每个学生登陆只能查看本人成绩。
若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理
addScore()方法中,有五个参数,分别传给insert语句中的num(学号),sname(学生姓名),course(课程名称),score(成绩),credit(学分)。
利用insert语句,将这些记录写入score表中。
若插入成功返回true,否则返回false
deleteScore()方法中,有一个参数,传给delete语句中的sname(学生姓名),利用delete语句,把score表中相关学生信息删除。
若删除成功,返回true,否则返回false
ScoreDao类源代码:
packagedao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importui.StudentLoginUI;
importmodel.Score;
importmodel.Student;
importconnection.DBConnection;
publicclassScoreDao{
publicArrayListqueryScore(Stringkey){
ArrayListlis=newArrayList();
Connectioncon=DBConnection.getConnection();
Statementstm;
try{
stm=con.createStatement();
Stringsql="select*fromscorewheresnamelike'%"+key
+"%'";
System.out.println(sql);
ResultSetrs=stm.executeQuery(sql);
while(rs.next()){
Scorescore=newScore(rs.getInt
(1),rs.getString
(2),rs
.getString(3),rs.getInt(4),rs.getInt(5));
lis.add(score);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlis;
}
publicArrayListqueryScore1(Stringkey){
ArrayListlis=newArrayList();
Connectioncon=DBConnection.getConnection();
Statementstm;
try{
stm=con.createStatement();
Stringsql="select*fromscorewheresnamelike'%"+StudentLoginUI.st1
+"%'";
System.out.println(sql);
ResultSetrs=stm.executeQuery(sql);
while(rs.next()){
Scorescore=newScore(rs.getInt
(1),rs.getString
(2),rs
.getString(3),rs.getInt(4),rs.getInt(5));
lis.add(score);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlis;
}
publicbooleanaddScore(intnum,Stringsname,Stringcourse,intscore,
intcredit){
Connectioncon=DBConnection.getConnection();
PreparedStatementpst;
try{
pst=con.prepareStatement("insertintoscorevalues(?
?
?
?
?
)");
pst.setInt(1,num);
pst.setString(2,sname);
pst.setString(3,course);
pst.setInt(4,score);
pst.setInt(5,credit);
intcount=pst.executeUpdate();//返回修改的记录数
if(count==1)
returntrue;
else
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
publicbooleandeleteScore(Stringkey){
Connectioncon=DBConnection.getConnection();
Statementstm;
try{
stm=con.createStatement();
Stringsql="d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 Java 程序 可行性报告