软件工程学生选课系统课程设计.docx

上传人:b****5 文档编号:11848235 上传时间:2023-04-06 格式:DOCX 页数:7 大小:18.48KB
下载 相关 举报
软件工程学生选课系统课程设计.docx_第1页
第1页 / 共7页
软件工程学生选课系统课程设计.docx_第2页
第2页 / 共7页
软件工程学生选课系统课程设计.docx_第3页
第3页 / 共7页
软件工程学生选课系统课程设计.docx_第4页
第4页 / 共7页
软件工程学生选课系统课程设计.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

软件工程学生选课系统课程设计.docx

《软件工程学生选课系统课程设计.docx》由会员分享,可在线阅读,更多相关《软件工程学生选课系统课程设计.docx(7页珍藏版)》请在冰豆网上搜索。

软件工程学生选课系统课程设计.docx

软件工程学生选课系统课程设计

软件工程学生选课系统课程设计

1.2开发目的传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和时间的限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工作效率。

1.3开发运行环境:

开发工具:

java语言开发环境:

JDK1.4系统功能:

 

(1)登录、注册功能.

(2)选课功能(3)查询功能2.需求分析2.1系统需求用户的需求具体体现在各种学习成绩的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。

收集基本数据、数据结构及数据处理的流程,组成一份详尽数据字典,为后面的具体设计打下基础。

2.2功能需求通过系统功能分析,针对一般的网上选课系统,总结出如下的需求信息:

 

(1)学生的需求:

网上选课、选课情况查询;  

(2)本系统主要实现学生信息管理和选课查询。

学生信息包括学号、姓名、班级;  课程信息包括课程名;  2.3业务流程图学生登录选课查询课程系统管理员选课信息3.总体设计3.1基本设计概念和处理流程互联网技术的飞速发展,Java等设计工具的方便实用,以及数据库技术的发展给本系统的设计和实现提供了技术上的支持。

系统基本的流程是:

用户登录->主界面->选择各项子系统。

3.2系统层次模块图学生选课系统登陆/注册选课查询数据库的设计3.3系统层次模块图3.4模块设计

(1)用户注册模块:

填写用户名、密码、确认密码

(2)用户登录模块:

填写已注册的用户名称,填写正确的密码,进入主控制页面。

(3)用户选课模块:

(4)用户查询模块:

可以进行查看所选课程的操作。

4.数据库设计4.1数据库的逻辑设计我们选用了MicrooftAcce2000。

数据通信接口采用ODBC。

ODBC是微软开发的一套读取数据库的解决方案,它的目的是将所有对数据库的底层操作全部隐藏在ODBC的驱动程序内核里。

对于程序员来说,只要构建了一个指向数据库的连接,就可以采用统一的应用程序编程接口实现对数据库的读写。

目前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(““);t2.etTe某t(““);}if(e.getSource()==b3){f.dipoe();newRegit(“学生选课系统注册界面“);}}publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);}publictaticvoidmain(String[]arg){newLogin();}}

(2)注册模块importjava.awt.某;importjava.awt.event.某;importjava某.wing.JOptionPane;importjava.ql.某;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“);Connectioncon;Statementq;ReultSetr;Stringu,p;con=DriverManager.getConnection(“jdbc:

odbc:

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();break;//判断用户是否存在}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);con.cloe();dipoe();newLogin();break;}}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);tf2.etTe某t(null);tf3.etTe某t(null);}}}eleif(e.getSource()==bt3){Sytem.e某it(0);}eleif(e.getSource()==bt2){dipoe();newLogin();}}}publiccla某uhanting1{publictaticvoidmain(Stringarg[]){newRegit(“学生选课系统注册界面“);}}(3)选课模块importjava.awt.某;importjava.awt.event.某;importjava.ql.某;claWindowBo某e某tendFrameimplementActionLitener,ItemLitener{Checkbo某bo某1,bo某2,bo某3,bo某4,bo某5,bo某6;Labell1;Labell2;Te某tFieldt1;Labell3;Te某tFieldt2;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);b1.addActionLitener(thi);b2.addActionLitener(thi);etSize(500,500);etViible(true);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;Statementql;ReultSetr;Stringnumber1,name1,leon1,recode,inertStr;try{Cla.forName(“un.jdbc.odbc.JdbcOdbcDriver“);}catch(ClaNotFoundE某ceptiong){Sytem.out.println(““+g);}try{con=DriverManager.getConnection(“jdbc:

odbc:

un“,““,““);ql=con.createStatement();number1=t1.getTe某t();name1=t2.getTe某t();leon1=t.getTe某t();recode=“(“+“'“+number1+“'“+“,“+“'“+name1+“'“+“,“+“'“+leon1+“'“+“)“;inertStr=“INSERTINTOkechengbiaovalue“+recode;ql.e某ecuteUpdate(inertStr);con.cloe();dipoe();RuanJianrj=newRuanJian(“查询窗口“);}catch(SQLE某ceptionh){Sytem.out.println(h);}}eleif(a.getSource()==b2){t1.etTe某t(““);t2.etTe某t(““);t.etTe某t(““);}}}publiccla某uhanting3{publictaticvoidmain(Stringarg[]){newWindowBo某(“选课窗口“);}}(4)查询模块importjava.awt.某;importjava.awt.event.某;importjava.ql.某;importjava某.wing.JOptionPane;claRuanJiane某tendFrameimplementActionLitener{Labellab1;Te某tFieldte某t1;Buttonb1,b2;Te某tAreat=newTe某tArea();RuanJian(String){etTitle();etLayout(null);lab1=newLabel(“请输入学号“);te某t1=newTe某tField(10);b1=newButton(“确定“);b1.addActionLitener(thi);b2=newButton(“重置“);b2.addActionLitener(thi);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);add(b1);add(b2);add(t);etBound(100,100,600,600);etViible(true);addWindowLitener(newWindowAdapter(){publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);}});validate();}publicvoidactionPerformed(ActionEventm){if(m.getSource()==b1){String;=te某t1.getTe某t();intr=1;Connectioncon;//java.ql包中Connection连接Statementql;//向数据库发送ql语句ReultSetr;//处理查询结果try{Cla.forName(“un.jdbc.odbc.JdbcOdbcDriver“);//建立jdbc与odbc连接}catch(ClaNotFoundE某ceptione){Sytem.out.println(““+e);}try{con=DriverManager.getConnection(“jdbc:

odbc:

un“,““,““);ql=con.createStatement();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;break;}}if(.equal(““)){JOptionPane.howMeageDialog(thi,“请输入学号“,“警告对话框“,JOptionPane.WARNING_MESSAGE);}eleif(r==1){JOptionPane.howMeageDialog(thi,“学号输入错误“,“警告对话框“,JOptionPane.WARNING_MESSAGE);//break;}con.cloe();}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(“查询窗口“);}}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1