JAVA课程设计报告学生网上选课管理 系统.docx
《JAVA课程设计报告学生网上选课管理 系统.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计报告学生网上选课管理 系统.docx(21页珍藏版)》请在冰豆网上搜索。
JAVA课程设计报告学生网上选课管理系统
青岛理工大学琴岛学院
设计报告
课题名称:
学生管理系统设计
学院:
青岛理工大学琴岛学院
专业班级:
计算机科学与技术11(专升本)
学号:
XXXXXXXXX
学生:
XXX
指导教师:
代学卿
青岛理工大学琴岛学院教务处
2011年12月30日
学生
XXX
指导教师
代学卿
课题名称
学生管理系统
设计时间
2011.12.19—12.30
设计地点
分散
设计目的
复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;培养学生在项目开发中的创新意识及能力。
指导教师
评语
系部教研室
意见
一、系统需求分析
1.开发背景
现代学生管理的本质在于快捷方便,以往的学生管理完全手工操做,通过文档记录信息,既浪费时间,又浪费人工、纸张,而且学生和课程以及成绩的信息查询比较麻烦,不能及时提供领导管理上需要的各种信息,例如,老师课程情况、学生成绩情况。
随着电子信息技术的飞速发展,这些工作也发生了实质性的进展和变化。
现代化的服务手段逐渐替代传统的手工操作,网上选课、网上添加课程、查询成绩等项目开始在教学领域普及。
在计算机技术、网络技术的进一步冲击下,学生管理系统随着教育教学改革的深入和素质教育的全面推动,逐渐演变形成信息化网上查询方式,其作用也越来越重要了。
为了使学生管理更科学、更方便,减少重复劳动,节省学生信息管理建设和管理中的人力、财力,方便老师及学生查询课程和成绩,所以有必要建立一个学生信息管理系统。
这个系统是典型的学生信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
2.系统介绍:
开发一个学生信息管理系统,主要有三个部分:
系统管理,数据管理,数据查询。
(1)系统管理主要用于用户信息的相关管理。
主要包括密码设置、用户登录、退出三个功能。
(2)数据管理主要用于信息的增加、删除、更改,主要包括学生管理、课程管理和成绩管理三大模块。
其中学生管理下有添加了添加学生、删除学生、修改学生三大功能,同样课程和成绩也有增加、删除、修改这三大功能。
(3)数据查询主要用于查询信息管理,主要包括查询学生信息管理、查询课程信息和查询成绩信息三大功能。
3系统面向的用户群体
本系统为某高校所开发。
立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提学生信息的现代化发展,实现信息资源的共享。
系统的建成无疑会为广大师生提供极大的帮助。
4.开发环境
Eclipse应用程序
Access数据库
二、系统总体设计
该系统的设计是充分考虑到学生的管理和课程的管理两个大的方面,首先用户需要根据自己的用户名登陆到系统主界面,然后才能对该系统实施操作,否则不能登陆该系统。
系统中主要包含的内容有:
(1)学生管理中的增、删、改、查等功能;
(2)课程管理中的增、删、改、查等功能;
(3)用户名密码的更改等操作;
(4)以上操作都直接关联数据库;
(5)数据库采用的是ACCESS数据库;
1.系统功能结构图2-1所示:
图2-1系统功能结构图
2.系统设计
图2-2系统数据流程图
三、系统详细设计
1.数据库实体E-R图设计
1.1学生管理实体E-R图
图3-1学生管理实体E-R图
1.2课程管理实体图
图3-2课程管理实体图
2.数据库表的设计
数据库名:
student
3.1学生表(student)
列名
数据类型
长度
是否为空
studNo
char
10
否
studName
char
10
是
studSex
char
10
是
studBirthDate
char
10
是
studIsMember
char
10
是
studAddress
char
10
是
3.2课程表(course)
列名
数据类型
长度
是否为空
couID
varchar
50
否
couName
char
10
是
couTeacher
char
10
是
coucredit
char
20
是
3.详细设计
3.1闪屏界面:
闪屏界面主要是用于进入学生管理系统的登录界面之前的一段带时间条的页面,闪屏结束后进入登录界面。
加入时间条,插入了一张闪屏图片。
要代码:
(1).添加闪烁图片:
JLabelback=newJLabel(newImageIcon("school.jpg"));
(2)添加进度条:
JProgressBarprogressBar=newJProgressBar(1,100);
(3)添加时间控件:
Timertimer;
闪屏实体截图:
图3-3闪屏
3.2登录界面:
登陆实体截图:
图3-4登陆界面
设置一个用户名和密码文本框输入内容。
两个标签用户名和密码,两个按钮确定和取消。
JTextFieldtxtUsername=newJTextField(10);
JPasswordFieldtxtPassword=newJPasswordField(10);
JButtonbtnOK=newJButton("确定");
JButtonbtnCancel=newJButton("取消");
设置面板,把按钮等加到面板上
ContainercontentPane=this.getContentPane();
contentPane.setLayout(newGridLayout(3,1,5,5));
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
p1.add(newJLabel("用户名:
"));
p1.add(txtUsername);
p2.add(newJLabel("密码:
"));
p2.add(txtPassword);
p3.add(btnOK);
p3.add(btnCancel);
contentPane.add(p1);
contentPane.add(p2);
contentPane.add(p3);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
按钮文本框设置监听
btnOK.addActionListener(this);
btnCancel.addActionListener(this);
txtUsername.addActionListener(this);
txtPassword.addActionListener(this);
3.3主界面
主界面主要是用于对选择相应的功能进行相应的功能,主界面主要包括系统管理、数据管理和数据查询三大功能。
主界面添加JMenuBar菜单条,和JMenu菜单,和JMenuItem菜单项。
三个菜单包括:
系统管理、数据管理和数据查询。
系统管理中包括:
密码设置、用户登录、退出。
数据管理中包括学生管理、课程管理和成绩管理。
数据查询主要包括学生查询、课程查询、成绩查询。
在数据管理页面下可以对学生及课程和成绩等增删改等。
在数据查询下可以对学生课程及成绩进行查询。
主界面如图3-5:
图3-5主界面
重要代码:
menu2=newJMenu("数据管理(D)");
menu2.setMnemonic('D');
m21=newJMenu("学生管理");
m22=newJMenu("课程管理");
m23=newJMenu("成绩管理");
menu2.add(m21);
menu2.add(m22);
menu2.add(m23);
m211=newJMenuItem("添加学生信息");
m212=newJMenuItem("修改学生信息");
m213=newJMenuItem("删除学生信息");
m21.add(m211);
m21.add(m212);;
m21.add(m213);
m221=newJMenuItem("添加课程");
m222=newJMenuItem("修改课程");
m223=newJMenuItem("删除课程");
m22.add(m221);
m22.add(m222);;
m22.add(m223);
关联网页代码:
if(e.getSource()==m211){
newAddStudent();
}
if(e.getSource()==m311){
newSelectStudent();
}
if(e.getSource()==m212){
newModifyStudent();
}
if(e.getSource()==m213){
newDeleteStudent();
}
if(e.getSource()==m12){
this.dispose();
newLoginWindow();
}
if(e.getSource()==m221){
newAddCourse();
}
if(e.getSource()==m222){
newModifyCourse();
}
if(e.getSource()==m223){
newDeleteCourse();
}
if(e.getSource()==m321){
newSelectCourse();
}
if(e.getSource()==m13){
dispose();
}
3.4数据库连接
学生、课程以及成绩的增删改查都是建立在连接数据库的基础之上,在Access里建立学生表、课程表、成绩表等。
建立ODBC数据源的连接。
连接数据库重要代码:
publicclassConnectDB{
publicstaticConnectionconnect(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncon=DriverManager.getConnection("jdbc:
odbc:
stu");
returncon;
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}
}
3.5数据查询
这部分主要功能是查询学生信息、课程信息以及课程信息。
查询学生信息如图:
图3-6查询学生信息
重要代码如下:
Listlist=newArrayList();
try{
con=ConnectDB.connect();
stuName="";
pstmt=con.prepareStatement("select*fromstudentwherestuNamelike?
");
pstmt.setString(1,"%"+stuName+"%");
rs=pstmt.executeQuery();
Studentstudent=null;
while(rs.next()){
student=newStudent();
student.setStuNo(rs.getString("stuNo"));
student.setStuName(rs.getString("stuName"));
student.setStuSex(rs.getString("stuSex"));
student.setStuBirthday(rs.getString("stuBirthday"));
student.setStuMember(rs.getString("stuMember"));
student.setStuAddress(rs.getString("stuAddress"));
list.add(student);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlist;
}
try{
Studentstudent=list.get(n);
lab[0].setText(student.getStuNo());
lab[1].setText(student.getStuName());
lab[2].setText(student.getStuSex());
lab[3].setText(student.getStuBirthday().toString());
lab[5].setText(student.getStuAddress());
if(student.getStuMember().trim().equals("团员")){
lab[4].setText("是");
}
else{
lab[4].setText("不是");
}
}catch(Exceptione){
e.printStackTrace();
}
3.6添加学生信息
这部分的主要功能是向数据库中添加新的学生信息。
添加学生信息如图:
图3-7添加学生信息
添加学生信息主要代码:
sql="select*fromstudentwherestuNo='"+snumber+"'";
try{
Statementstm;
ResultSetrs;
Connectioncon=ConnectDB.connect();
stm=con.createStatement();
rs=stm.executeQuery(sql);
if(rs.next()){
JOptionPane.showMessageDialog(null,"该号已经存在!
");
}
else
{
sql="insertintostudent(stuNo,stuName,stuSex,stuBirthday,stuMember,stuAddress)values('"+snumber+"','"+sname+"','"+ssex+"','"+sbirthdate+"','"+smember+"',
'"+saddress+"')";
inti=stm.executeUpdate(sql);
if(i>0)
JOptionPane.showMessageDialog(null,"添加成功!
");
else
JOptionPane.showMessageDialog(null,"添加失败!
");
}
3.7修改学生信息
这部分的主要功能是更改数据库中学生的基本信息。
修改学生信息如图:
图3-8修改学生信息
修改学生信息主要代码:
try{
Statementstm1;
ResultSetrs1;
Connectioncon1=ConnectDB.connect();
stm1=con1.createStatement();
sql1="updatestudentsetstuName="+"'"+sdname+"'"+",stuSex="+"'"+sdsex+"'"+",stuBirthday="+"'"+
sdbirthdate+"'"+",stuMember="+"'"+sdmember+"'"+",
stuAddress="+"'"+sdaddress+"'"+"wherestuNo="+"'"+sdnumber+"'";
inti=stm1.executeUpdate(sql1);
if(i>0)
{
JOptionPane.showMessageDialog(null,"修改成功!
");}
else
JOptionPane.showMessageDialog(null,"修改失败!
");
}catch(Exceptionee){
}
3.7删除学生信息
这部分的主要功能是删除数据库中学生的基本信息。
删除学生信息如图:
图3-9删除学生信息
删除学生信息主要代码:
sqldel="deletefromstudentwherestuNo='"+sdnumber+"'";
inti=stm1.executeUpdate(sqldel);
if(i==1);
JOptionPane.showMessageDialog(null,"删除成功!
");
}catch(Exceptionee){
JOptionPane.showMessageDialog(null,"删除失败!
");
ee.printStackTrace();
}
3.8课程管理
课程管理也是有增删改查四个功能,并且与学生管理相对应的四个功能技术上基本相似,在此就不在一一赘述,在这只显示了修改课程信息窗口(如图3-10),以做示例,其它三个功能基本一样。
修改课程主要代码:
if(cid.trim().isEmpty()||cname.trim().isEmpty()||ccredit.trim().isEmpty()||
cteacher.trim().isEmpty()){
JOptionPane.showMessageDialog(null,"请将资料填写完整!
");
}
try{
Statementstm1;
ResultSetrs1;
Connectioncon1=ConnectDB.connect();
stm1=con1.createStatement();
sql1="updatecoursesetCouID="+"'"+cid+"'"+",CouName="+"'"+cname+"'"+",CouCredit="+"'"+ccredit+"'"+",
CouTeacher="+"'"+cteacher+"'"+"whereCouID="+"'"+cid+"'";
inti=stm1.executeUpdate(sql1);
if(i>0)
{
JOptionPane.showMessageDialog(null,"修改成功!
");}
else
JOptionPane.showMessageDialog(null,"修改失败!
");
}catch(Exceptionee){}
图3-10修改课程
3.8用户密码更改
这部分的主要功能是更改数据库中用户登录的密码。
用户密码更改如图3-11:
图3-11用户密码更改
主要代码:
sql="updateloginsetpassword='"+pw+"'whereuserName='"+usern+"'";
try{
Statementst;
Connectioncon1=ConnectDB.connect();
st=con1.createStatement();
inti=st.executeUpdate(sql);
if(i>0)
JOptionPane.showMessageDialog(null,"密码修改成功!
");
else
JOptionPane.showMessageDialog(null,"密码修改失败!
");
}catch(Exceptione2){}
}
else{
JOptionPane.showMessageDialog(null,"两次新密码不一致,请重新填写!
!
");
}
}
else{
JOptionPane.showMessageDialog(null,"用户名或密码错误!
!
");
txtuser.requestFocus();
}
四、系统总结
学生管理系统的流程主要是开始闪屏界面(Splashwindow)接下来是登陆界面(Loginwindow)在接下来开始进入学生系统管理的主界面(Mainwindow)。
其中还要做数据库的建立以及连接。
学生系统主要分为三大部分系统管理、数据管理、数据查询。
其中系统管理主要包括用户的一些信息。
数据管理主要包括学生、课程的增删改。
数据查询主要包括学生、课程的查询。
五、系统设计心得体会
通过做学生管理系统使自己对数据库的增加删除修改查询等功能进一步熟悉了解,深深体会到做一个大系统需要整体的思路设计及构思。