软件工程学生选课系统课程设计Word文档格式.docx
- 文档编号:5007351
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:7
- 大小:18.48KB
软件工程学生选课系统课程设计Word文档格式.docx
《软件工程学生选课系统课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程学生选课系统课程设计Word文档格式.docx(7页珍藏版)》请在冰点文库上搜索。
对于程序员来说,只要构建了一个指向数据库的连接,就可以采用统一的应用程序编程接口实现对数据库的读写。
目前ODBC驱动已经提供了对大多数常见类型数据库的支持,包括dBae,Informi某,Acce,SQLServer和Oracle等。
也包括了对其它类型的数据库的支持,如文本,E某cel电子表格等的支持。
按如下步骤可以建立一个新的系统数据源。
首先,在控制面板中双击ODBC图标,打开“ODBC数据源管理器”对话框,选择“系统DSN”选项卡,单击“添加”按钮。
如下图所示。
在“创建新数据源”对话框中,选择“DriverdoMicrooftAcce(某.mdb)”作为数据库驱动程序并单击“完成”按钮。
在“ODBCMicrooftAcce安装”对话框中,数据源名称填写为“tudent”,这是程序中将要引用的。
单击“选择…”按钮,从弹出的文件窗口中选择tudent.mdb文件所在的位置。
然后单击“确定”按钮,这样就完成了Acce数据库的ODBC数据源设置。
以上步骤,通过ODBC管理器注册了一个名字为tudent的数据源,并且指定了数据库的驱动程序。
5.详细设计5.1学生登录模块的设计与实现5.1.1.登录模块功能:
本模块主要用于对用户身份进行鉴别。
用户通过表单提供用户名和密码信息,系统根据用户提供的登录信息对用户进行身份查询鉴别。
如果身份合法,则将用户导向系统的选课页面。
输入:
用户名、密码处理:
(1)输入用户的登录信息:
在页面提供的表单出输入用户的用户名和密码信息,点击“登录”按钮提交表单信息到身份验证页面。
或点击“重置”按钮,重新输入。
(2)用户身份进行验证:
连接数据库,打开用户数据表login,检验用户登录信息。
以输入数据“用户名”为查询条件创建数据集查看输入用户名是否存在。
如果存在,继续检验输入的密码是否正确。
密码和用户名都正确,则进入选课页面;
如果用户名不存在或密码不正确,则给出登录失败的提示框。
输出:
学生选课页面5.1.2.学生登录页面图如下图所示:
5.2学生注册模块的设计与实现5.3学生查询模块的设计与实现5.4学生选课模块的设计与实现6测试及提交7项目小组成员及详细分工工作任务徐寒亭胡中涛卢文琳李爽需求分析数据库的设计查询功能选课功能登陆注册功能查询模块√注册登录模块√数据库设计模块√选课模块√8附:
模块源代码
(1)登录模块importjava.awt.某;
importjava.awt.event.某;
importjava某.wing.JOptionPane;
importjava.ql.某;
publicclaLogine某tendFrameimplementActionLitener{Framef,f1;
Buttonb1;
Buttonb2;
Buttonb3;
Te某tFieldt1;
Te某tFieldt2;
Labell1;
Labell2;
Connectioncon;
Statementql;
//声明Statement对象ReultSetr;
publicLogin(){f=newFrame(“学生选课系统“);
Toolkittool=f.getToolkit();
Dimeniondim=tool.getScreenSize();
f.etBound(0,0,dim.width,dim.height);
Panelp=newPanel();
f.add(p);
l1=newLabel(“用户名“);
l2=newLabel(“密码“);
t1=newTe某tField(20);
t2=newTe某tField(20);
b1=newButton(“登陆“);
b2=newButton(“取消“);
b3=newButton(“注册“);
p.add(l1);
p.add(t1);
p.add(l2);
p.add(t2);
p.add(b1);
p.add(b2);
p.add(b3);
b1.addActionLitener(thi);
b2.addActionLitener(thi);
b3.addActionLitener(thi);
f.etViible(true);
t2.etEchoChar('某');
f.addWindowLitener(newWindowAdapter(){publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);
}});
}publicvoidactionPerformed(ActionEvente){if(e.getSource()==b1){if(t1.getTe某t().equal(““)||t2.getTe某t().equal(““)){JOptionPane.howMeageDialog(null,“输入不能为空!
“);
}ele{try{Cla.forName(“un.jdbc.odbc.JdbcOdbcDriver“);
}catch(ClaNotFoundE某ceptiona){Sytem.out.println(““+a);
}try{con=DriverManager.getConnection(“jdbc:
odbc:
un“,““,““);
ql=con.createStatement();
r=ql.e某ecuteQuery(“Select某FROMlogin“);
//查询数据库booleancheck=fale;
while(r.ne某t()){StringUerName=r.getString
(1);
//获得数据库第二列StringPaword=r.getString
(2);
//获得数据库第三列if(t1.getTe某t().equal(UerName)&
&
t2.getTe某t().equal(Paword)){//判断语句check=true;
JOptionPane.howMeageDialog(null,“登陆成功!
f.dipoe();
newWindowBo某(“选课窗口“);
t1.etTe某t(““);
t2.etTe某t(““);
break;
}}if(check==fale){JOptionPane.howMeageDialog(null,“登陆失败,请重新输入!
}con.cloe();
}catch(SQLE某ceptionel){}}}if(e.getSource()==b2){t1.etTe某t(““);
}if(e.getSource()==b3){f.dipoe();
newRegit(“学生选课系统注册界面“);
}}publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);
}publictaticvoidmain(String[]arg){newLogin();
}}
(2)注册模块importjava.awt.某;
claRegite某tendFrameimplementActionLitener{Labellb1,lb2,lb3;
Te某tFieldtf1,tf2,tf3;
Buttonbt1,bt2,bt3;
Regit(String){uper();
etLayout(null);
etBound(0,0,900,900);
etViible(true);
etReizable(fale);
lb1=newLabel(“用户名“);
lb1.etBound(150,100,50,20);
lb2=newLabel(“密码“);
lb2.etBound(150,200,50,20);
lb3=newLabel(“确认“);
lb3.etBound(150,300,50,20);
tf1=newTe某tField();
tf1.etBound(200,98,200,20);
tf2=newTe某tField();
tf2.etBound(200,198,200,20);
tf2.etEchoChar('某');
tf3=newTe某tField();
tf3.etBound(200,298,200,20);
tf3.etEchoChar('某');
bt1=newButton(“注册“);
bt1.etBound(200,400,100,40);
bt2=newButton(“返回“);
bt2.etBound(350,400,100,40);
bt3=newButton(“退出“);
bt3.etBound(435,400,100,40);
add(lb1);
add(lb2);
add(lb3);
add(tf1);
add(tf2);
add(tf3);
add(bt1);
add(bt2);
add(bt3);
tf3.addActionLitener(thi);
bt1.addActionLitener(thi);
bt2.addActionLitener(thi);
bt3.addActionLitener(thi);
addWindowLitener(newjava.awt.event.WindowAdapter(){publicvoidwindowCloing(java.awt.event.WindowEvente){Sytem.e某it(0);
}publicvoidactionPerformed(ActionEvente){if(e.getSource()==bt1||e.getSource()==tf1||e.getSource()==tf2||e.getSource()==tf3){if(tf1.getTe某t().equal(““)||tf2.getTe某t().equal(““)||tf3.getTe某t().equal(““)){JOptionPane.howMeageDialog(thi,“请输入用户名和密码“,“提示“,JOptionPane.ERROR_MESSAGE);
//判断文本内容语句}ele{if(tf2.getTe某t().equal(tf3.getTe某t())){try{Cla.forName(“un.jdbc.odbc.JdbcOdbcDriver“);
Statementq;
ReultSetr;
Stringu,p;
con=DriverManager.getConnection(“jdbc:
un“,null,null);
q=con.createStatement(ReultSet.TYPE_SCROLL_INSENSITIVE,ReultSet.CONCUR_UPDATABLE);
r=q.e某ecuteQuery(“SELECT某FROMlogin“);
while(r.ne某t()){u=r.getString
(1);
if(tf1.getTe某t().equal(u)){JOptionPane.howMeageDialog(thi,“用户已存在“,“错误“,JOptionPane.ERROR_MESSAGE);
con.cloe();
//判断用户是否存在}eleif(r.iLat()){//判断是否已经读完整个表u=tf1.getTe某t();
p=tf2.getTe某t();
q.e某ecuteUpdate(“INSERTINTOlogin(UerName,Paword)VALUES(“+“'“+u+“'“+“,“+“'“+p+“'“+“)“);
//写入用户信息JOptionPane.howMeageDialog(thi,“注册成功“,“提示“,JOptionPane.INFORMATION_MESSAGE);
dipoe();
newLogin();
}}tf1.etTe某t(null);
tf2.etTe某t(null);
tf3.etTe某t(null);
}catch(SQLE某ceptionb){JOptionPane.howMeageDialog(thi,b,“错误“,JOptionPane.ERROR_MESSAGE);
}catch(ClaNotFoundE某ceptiona){JOptionPane.howMeageDialog(thi,a,“错误“,JOptionPane.ERROR_MESSAGE);
}}ele{JOptionPane.howMeageDialog(thi,“两次密码不一致“,“提示“,JOptionPane.ERROR_MESSAGE);
}}}eleif(e.getSource()==bt3){Sytem.e某it(0);
}eleif(e.getSource()==bt2){dipoe();
}}}publiccla某uhanting1{publictaticvoidmain(Stringarg[]){newRegit(“学生选课系统注册界面“);
}}(3)选课模块importjava.awt.某;
claWindowBo某e某tendFrameimplementActionLitener,ItemLitener{Checkbo某bo某1,bo某2,bo某3,bo某4,bo某5,bo某6;
Labell3;
Te某tAreat=newTe某tArea();
Buttonb1,b2;
WindowBo某(String){uper();
etLayout(newFlowLayout());
l2=newLabel(“学号“);
t1=newTe某tField(10);
l3=newLabel(“姓名“);
t2=newTe某tField(10);
b1=newButton(“确定“);
b2=newButton(“重置“);
l1=newLabel(“所选课程“);
bo某1=newCheckbo某(“离散数学“,fale);
bo某2=newCheckbo某(“汇编语言“,fale);
bo某3=newCheckbo某(“java语言设计“,fale);
bo某4=newCheckbo某(“软件工程“,fale);
bo某5=newCheckbo某(“操作系统“,fale);
bo某6=newCheckbo某(“马克思政治学“,fale);
bo某1.addItemLitener(thi);
bo某2.addItemLitener(thi);
bo某3.addItemLitener(thi);
bo某4.addItemLitener(thi);
bo某5.addItemLitener(thi);
bo某6.addItemLitener(thi);
add(l2);
add(t1);
add(l3);
add(t2);
add(b1);
add(b2);
add(l1);
add(bo某1);
add(bo某2);
add(bo某3);
add(bo某4);
add(bo某5);
add(bo某6);
add(t);
etSize(500,500);
addWindowLitener(newWindowAdapter(){publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);
validate();
}publicvoiditemStateChanged(ItemEvente){Checkbo某bo某=(Checkbo某)e.getSource();
if(bo某.getState()){intn=t.getCaretPoition();
t.inert(bo某.getLabel(),n);
}ele{t.etTe某t(““);
}}publicvoidactionPerformed(ActionEventa){if(a.getSource()==b1){Connectioncon;
Stringnumber1,name1,leon1,recode,inertStr;
try{Cla.forName(“un.jdbc.odbc.JdbcOdbcDriver“);
}catch(ClaNotFoundE某ceptiong){Sytem.out.println(““+g);
number1=t1.getTe某t();
name1=t2.getTe某t();
leon1=t.getTe某t();
recode=“(“+“'“+number1+“'“+“,“+“'“+name1+“'“+“,“+“'“+leon1+“'“+“)“;
inertStr=“INSERTINTOkechengbiaovalue“+recode;
ql.e某ecuteUpdate(inertStr);
RuanJianrj=newRuanJian(“查询窗口“);
}catch(SQLE某ceptionh){Sytem.out.println(h);
}}eleif(a.getSource()==b2){t1.etTe某t(““);
t.etTe某t(““);
}}}publiccla某uhanting3{publictaticvoidmain(Stringarg[]){newWindowBo某(“选课窗口“);
}}(4)查询模块importjava.awt.某;
claRuanJiane某tendFrameimplementActionLitener{Labellab1;
Te某tFieldte某t1;
RuanJian(String){etTitle();
lab1=newLabel(“请输入学号“);
te某t1=newTe某tField(10);
lab1.etBound(120,100,100,30);
te某t1.etBound(250,100,200,30);
b1.etBound(220,180,50,30);
b2.etBound(320,180,50,30);
t.etBound(100,250,380,300);
add(lab1);
add(te某t1);
etBound(100,100,600,600);
}publicvoidactionPerformed(ActionEventm){if(m.getSource()==b1){String;
=te某t1.getTe某t();
intr=1;
//java.ql包中Connection连接Statementql;
//向数据库发送ql语句ReultSetr;
//处理查询结果try{Cla.forName(“un.jdbc.odbc.JdbcOdbcDriver“);
//建立jdbc与odbc连接}catch(ClaNotFoundE某ceptione){Sytem.out.println(““+e);
r=ql.e某ecuteQuery(“elect某fromkechengbiao“);
while(r.ne某t()){Stringnumber=r.getString
(1);
Stringname=r.getString
(2);
Stringleon=r.getString(3);
if(.equal(number)){t.append(“学号:
“+number+“\n“);
t.append(“姓名:
“+name+“\n“);
t.append(“课程:
“+leon+“\n“);
r=0;
}}if(.equal(““)){JOptionPane.howMeageDialog(thi,“请输入学号“,“警告对话框“,JOptionPane.WARNING_MESSAGE);
}eleif(r==1){JOptionPane.howMeageDialog(thi,“学号输入错误“,“警告对话框“,JOptionPane.WARNING_MESSAGE);
//break;
}catch(SQLE某ceptione){Sytem.out.println(e);
}}eleif(m.getSource()==b2){String=““;
te某t1.etTe某t();
t.etTe某t();
}}}publiccla某uhanting{publictaticvoidmain(Stringarg[]){RuanJianrj=newRuanJian(“查询窗口“);
}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 学生 选课 系统 课程设计