版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网上选课系统课程设计手册团队: 非你莫属学校: 武汉轻工大学队长: 刘一飞时间:2014.11目 录1. 项目概述 31.1开发背景 31.2 开发目的 31.3 开发运行境 31.4 系统功能 32.需求分析 32.1 系统需求 32.2 功能需求 32.3 业务流图 33.总体设计 43.1 基本设计概念和处理流程 43.2 系统层次模图 43.3系统层次模块图 43.4模块设计 54.数据库计 54.1 数据库的逻辑设计 54.2数据库的配置65. 详细设计 85.1 学生登录模块的设计与实现 85.2 学生注册模块的设计与实现 95.3 学生查询模块的设计与实现95.4 学生选课模块的
2、设计与实现106 测试及提交 101.项目概述1.1 开发背景internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。人们打开网页浏览当天的新闻,发电子邮件给远方的朋友,使用搜索引擎查找资料,进入网上商城购买商品这一切都是在使用internet。社会的方方面面渗透着互连网的应用,使得一向烦琐的手工程序变得方便,快捷,而学校网上选课系统正是基于这一思想而发展起来的。1.2 开发目的传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和时间的限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工作效率
3、。1.3 开发运行环境:开发工具:java语言开发环境:jdk1.4 系统功能:(1) 登录、注册功能.(2) 选课功能(3) 查询功能2.需求分析2.1 系统需求用户的需求具体体现在各种学习成绩的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽数据字典,为后面的具体设计打下基础。2.2 功能需求通过系统功能分析,针对一般的网上选课系统,总结出如下的需求信息:(1) 学生的需求:网上选课、选课情况查询;(2) 本系统主要实现学生信息管理和选课查询。学生信息包括学号、姓名、班级;课程信息包括课程名;2.3 业务流程
4、图学生登录选课查询课程系统管理员选课信息3.总体设计3.1 基本设计概念和处理流程互联网技术的飞速发展,java等设计工具的方便实用,以及数据库技术的发展给本系统的设计和实现提供了技术上的支持。系统基本的流程是:用户登录>主界面>选择各项子系统。3.2 系统层次模块图 学生选课系统登陆/注册选课查询数据库的设计3.3系统层次模块图3.4模块设计(1) 用户注册模块:填写用户名、密码、确认密码(2) 用户登录模块:填写已注册的用户名称,填写正确的密码,进入主控制页面。(3) 用户选课模块:。 (4) 用户查询模块:可以进行查看所选课程的操作。4.数据库设计4.1 数据库的逻辑设计我们
5、选用了microsoft access 2000。数据通信接口采用odbc。odbc是微软开发的一套读取数据库的解决方案,它的目的是将所有对数据库的底层操作全部隐藏在odbc的驱动程序内核里。对于程序员来说,只要构建了一个指向数据库的连接,就可以采用统一的应用程序编程接口实现对数据库的读写。目前odbc驱动已经提供了对大多数常见类型数据库的支持,包括dbase,informix,access,sql server和oracle等。也包括了对其它类型的数据库的支持,如文本,excel电子表格等的支持。根据系统功能设计的要求以及功能模块的划分,对于系统信息数据库,可以列出以下数据项和数据结构:1.
6、 名称:用户信息表表名称标识:login名称字段名称数据类型主键非空用户名username文本noyes密码password文本nono记录:2.名称:课程信息表表名称标识:kechengbiao名称字段名称数据类型主键非空学号number数字noyes姓名name文本nono课程名称lesson文本nono记录:4.2数据库的配置一个真正的、完整的站点是离不开数据库的。odbc为应用程序提供了一种标准方法来操作相关的数据库:管理器根据数据源提供的数据库的位置、数据库类型及odbc驱动程序等信息,建立起odbc与具体数据库的联系。这样,只要应用程序将数据源名提供给odbc,odbc就能建立起与
7、相应数据库的连接。按如下步骤可以建立一个新的系统数据源。首先,在控制面板中双击odbc图标,打开“odbc数据源管理器”对话框,选择“系统dsn”选项卡,单击“添加”按钮。如下图所示。在“创建新数据源”对话框中,选择“driver do microsoft access(*.mdb)”作为数据库驱动程序并单击“完成”按钮。如下图所示。在“odbc microsoft access安装”对话框中,数据源名称填写为“student”,这是程序中将要引用的。单击“选择”按钮,从弹出的文件窗口中选择student.mdb文件所在的位置。如下图所示。然后单击“确定”按钮,这样就完成了access数据库的
8、odbc数据源设置。以上步骤,通过odbc管理器注册了一个名字为student的数据源,并且指定了数据库的驱动程序。5. 详细设计5.1 学生登录模块的设计与实现5.1.1. 登录模块功能:本模块主要用于对用户身份进行鉴别。用户通过表单提供用户名和密码信息,系统根据用户提供的登录信息对用户进行身份查询鉴别。如果身份合法,则将用户导向系统的选课页面。输入:用户名、密码处理:(1) 输入用户的登录信息:在页面提供的表单出输入用户的用户名和密码信息,点击“登录”按钮提交表单信息到身份验证页面。或点击“重置”按钮,重新输入。 (2) 用户身份进行验证:连接数据库,打开用户数据表login,检验用户登录
9、信息。以输入数据“用户名”为查询条件创建数据集查看输入用户名是否存在。如果存在,继续检验输入的密码是否正确。密码和用户名都正确,则进入选课页面;如果用户名不存在或密码不正确,则给出登录失败的提示框。输出:学生选课页面5.1.2学生登录页面图如下图所示:5.2 学生注册模块的设计与实现 5.3 学生查询模块的设计与实现 5.4 学生选课模块的设计与实现6 测试及提交7 项目小组成员及详细分工工作任务徐寒亭胡中涛卢文琳李爽需求分析数据库的设计查询功能选课功能登陆注册功能查询模块注册登录模块数据库设计模块选课模块8 附:模块源代码(1)登录模块import java.awt.*;import jav
10、a.awt.event.*;import javax.swing.joptionpane;import java.sql.*;public class login extends frame implements actionlistener frame f,f1; button b1; button b2;button b3; textfield t1; textfield t2; label l1; label l2; connection con; statement sql; /声明statement对象 resultset rs; public login()f=new frame(
11、"学生选课系统"); toolkit tool=f.gettoolkit();dimension dim=tool.getscreensize();f.setbounds(0,0,dim.width,dim.height); panel p=new panel(); f.add(p); l1=new label("用户名"); l2=new label("密码"); t1=new textfield(20); t2=new textfield(20); b1=new button("登陆"); b2=new but
12、ton("取消");b3=new button("注册"); p.add(l1); p.add(t1); p.add(l2); p.add(t2); p.add(b1); p.add(b2);p.add(b3); b1.addactionlistener(this); b2.addactionlistener(this); b3.addactionlistener(this); f.setvisible(true); t2.setechochar('*'); f.addwindowlistener(new windowadapter()p
13、ublic void windowclosing(windowevent e)system.exit(0);); public void actionperformed(actionevent e) if(e.getsource()=b1) if(t1.gettext().equals("")|t2.gettext().equals("") joptionpane.showmessagedialog(null,"输入不能为空!"); else try class.forname("sun.jdbc.odbc.jdbcodbc
14、driver"); catch(classnotfoundexception a) system.out.println(""+a); try con=drivermanager.getconnection("jdbc:odbc:sun","",""); sql=con.createstatement(); rs=sql.executequery("select * from login"); /查询数据库 boolean check = false; while(rs.next()
15、string username=rs.getstring(1); /获得数据库第二列 string password=rs.getstring(2); /获得数据库第三列 if(t1.gettext().equals(username) && t2.gettext().equals(password) /判断语句 check = true; joptionpane.showmessagedialog(null,"登陆成功!");f.dispose(); new windowbox("选课窗口"); t1.settext("&qu
16、ot;); t2.settext(""); break; if(check = false) joptionpane.showmessagedialog(null,"登陆失败,请重新输入!"); con.close(); catch(sqlexception el) if(e.getsource()=b2) t1.settext(""); t2.settext(""); if(e.getsource()=b3)f.dispose();new regist("学生选课系统注册界面");public
17、 void windowclosing(windowevent e) system.exit(0);public static void main(string args) new login();(2)注册模块import java.awt.*;import java.awt.event.*;import javax.swing.joptionpane;import java.sql.*;class regist extends frame implements actionlistenerlabel lb1, lb2, lb3;textfield tf1, tf2, tf3;button
18、bt1, bt2, bt3;regist(string s)super(s);setlayout(null);setbounds(0,0,900,900);setvisible(true);setresizable(false);lb1 = new label("用户名");lb1.setbounds(150,100,50,20);lb2 = new label("密码");lb2.setbounds(150,200,50,20);lb3 = new label("确认");lb3.setbounds(150,300,50,20);t
19、f1 = new textfield();tf1.setbounds(200,98,200,20);tf2 = new textfield();tf2.setbounds(200,198,200,20);tf2.setechochar('*');tf3 = new textfield();tf3.setbounds(200,298,200,20);tf3.setechochar('*');bt1 = new button("注册");bt1.setbounds(200,400,100,40);bt2 = new button("返回
20、");bt2.setbounds(350,400,100,40);bt3 = new button("退出");bt3.setbounds(435,400,100,40);add(lb1);add(lb2);add(lb3);add(tf1);add(tf2);add(tf3);add(bt1);add(bt2);add(bt3);tf3.addactionlistener(this);bt1.addactionlistener(this);bt2.addactionlistener(this);bt3.addactionlistener(this);addwin
21、dowlistener(new java.awt.event.windowadapter()public void windowclosing(java.awt.event.windowevent e)system.exit(0););public void actionperformed(actionevent e)if(e.getsource()= bt1 | e.getsource()= tf1 | e.getsource()= tf2 | e.getsource()= tf3)if(tf1.gettext().equals("")| tf2.gettext().eq
22、uals("") | tf3.gettext().equals("")joptionpane.showmessagedialog(this,"请输入用户名和密码","提示",joptionpane.error_message);/判断文本内容语句elseif(tf2.gettext().equals(tf3.gettext()tryclass.forname("sun.jdbc.odbc.jdbcodbcdriver");connection con;statement sq;resultset
23、 r;string u, p;con = drivermanager.getconnection("jdbc:odbc:sun",null,null);sq=con.createstatement(resultset.type_scroll_insensitive,resultset.concur_updatable);r = sq.executequery("select * from login");while(r.next() u =r.getstring(1); if(tf1.gettext().equals(u) joptionpane.sho
24、wmessagedialog(this,"用户已存在","错误",joptionpane.error_message); con.close(); break; /判断用户是否存在 else if(r.islast()/判断是否已经读完整个表 u = tf1.gettext(); p = tf2.gettext(); sq.executeupdate("insert into login(username,password) values("+"'"+u+"'"+",&
25、quot;+"'"+p+"'"+")");/写入用户信息 joptionpane.showmessagedialog(this,"注册成功","提示",joptionpane.information_message); con.close(); dispose(); new login(); break; tf1.settext(null);tf2.settext(null);tf3.settext(null);catch(sqlexception b)joptionpane.s
26、howmessagedialog(this,b,"错误",joptionpane.error_message);catch(classnotfoundexception a)joptionpane.showmessagedialog(this,a,"错误",joptionpane.error_message);elsejoptionpane.showmessagedialog(this,"两次密码不一致","提示",joptionpane.error_message);tf2.settext(null);tf3.s
27、ettext(null);else if(e.getsource()= bt3)system.exit(0);else if(e.getsource()= bt2)dispose();new login();public class xuhanting1public static void main(string args)new regist("学生选课系统注册界面");(3)选课模块import java.awt.*;import java.awt.event.*;import java.sql.*;class windowbox extends frame imple
28、ments actionlistener,itemlistener checkbox box1,box2,box3,box4,box5,box6; label l1;label l2;textfield t1;label l3;textfield t2;textarea t = new textarea();button b1,b2;windowbox(string s)super(s);setlayout(new flowlayout();l2=new label("学号"); t1=new textfield(10);l3=new label("姓名"
29、;);t2=new textfield(10);b1=new button("确定");b2=new button("重置");l1=new label("所选课程");box1=new checkbox("离散数学",false);box2=new checkbox("汇编语言",false);box3=new checkbox("java语言设计",false);box4=new checkbox("软件工程",false);box5=new chec
30、kbox("操作系统",false);box6=new checkbox("马克思政治学",false);box1.additemlistener(this);box2.additemlistener(this);box3.additemlistener(this);box4.additemlistener(this);box5.additemlistener(this);box6.additemlistener(this);add(l2);add(t1);add(l3);add(t2);add(b1);add(b2);add(l1);add(box1)
31、;add(box2);add(box3);add(box4);add(box5);add(box6);add(t);b1.addactionlistener(this);b2.addactionlistener(this);setsize(500,500);setvisible(true);addwindowlistener(new windowadapter()public void windowclosing(windowevent e)system.exit(0););validate();public void itemstatechanged(itemevent e)checkbox
32、 box=(checkbox)e.getsource();if(box.getstate()int n=t.getcaretposition();t.insert(box.getlabel(),n);elset.settext("");public void actionperformed(actionevent a) if(a.getsource()=b1) connection con;statement sql;resultset rs;string number1,name1,lesson1, recode,insertstr;tryclass.forname(&q
33、uot;sun.jdbc.odbc.jdbcodbcdriver");catch(classnotfoundexception g)system.out.println(""+g);trycon=drivermanager.getconnection("jdbc:odbc:sun","","");sql=con.createstatement();number1=t1.gettext();name1=t2.gettext();lesson1=t.gettext();recode="("
34、+"'"+number1+"'"+","+"'"+name1+"'"+","+"'"+lesson1+"'"+")"insertstr="insert into kechengbiao values"+recode; sql.executeupdate(insertstr);con.close();dispose(); ruanjian rj=new
35、 ruanjian("查询窗口"); catch(sqlexception h) system.out.println(h);else if(a.getsource()=b2) t1.settext("");t2.settext("");t.settext("");public class xuhanting3public static void main(string args)new windowbox("选课窗口");(4)查询模块import java.awt.*;import java
36、.awt.event.*;import java.sql.*;import javax.swing.joptionpane; class ruanjian extends frame implements actionlistenerlabel lab1;textfield text1;button b1,b2;textarea t=new textarea();ruanjian(string s)settitle(s);setlayout(null);lab1=new label("请输入学号");text1=new textfield(10);b1=new button
37、("确定");b1.addactionlistener(this);b2=new button("重置");b2.addactionlistener(this);lab1.setbounds(120,100,100,30);text1.setbounds(250,100,200,30);b1.setbounds(220,180,50,30);b2.setbounds(320,180,50,30);t.setbounds(100,250,380,300);add(lab1);add(text1);add(b1);add(b2);add(t);setbounds(100,100,600,600);setvisible(true);addwindowlistener(new windowadapter()public void windowclosing(windowevent e)system.exit(0);); validate();public void act
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2024学年广东省深圳市红岭中学八年级上学期月考二物理试题及答案
- 四川电子机械职业技术学院《生物分离技术》2023-2024学年第一学期期末试卷
- 四川大学锦江学院《民航服务英语》2023-2024学年第一学期期末试卷
- 企业营销策略与市场定位研究
- 摊位物品转让合同范例
- 粮库整体收购合同范例
- 煤矿刮板收购合同范例
- 网络安全设备升级合同范例
- 石膏原料采购合同范例
- 签淘宝运营合同范例
- 北师大版五年级上册数学期末测试卷及答案共5套
- 儿童社区获得性肺炎管理指南(2024修订)解读
- 《人体解剖与组织胚胎学》学习通超星期末考试答案章节答案2024年
- 2024-2025学年人教版生物八年级上册期末综合测试卷
- 北师大版六年级上册数学《总复习》课件
- 2023-2024学年四川省成都市高一上英语期末考试题(含答案和音频)
- 国开人类与社会形考任务1试题及答案
- 铁总建设201857号 中国铁路总公司 关于做好高速铁路开通达标评定工作的通知
- 工作人员应对突发地震灾害应急处置卡
- 铀矿物资源库所有的铀矿总结
- 小学数学答题卡模板(共4页)
评论
0/150
提交评论