首页 《软件工程》课程设计—— 学生选课系统

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

举报
开通vip

《软件工程》课程设计—— 学生选课系统PAGEPAGE3《软件工程》课程设计手册题目:学生选课系统设计2010年1月20日目录1.项目概述………………………………………………………………………31.1开发背景………………………………………………………………………31.2开发目的……………………………………………………………………31.3开发运行境……………………………………………………………………31.4系统功能………………………………………………………………………32.需求分析…………………………………………………………………………32....

《软件工程》课程设计—— 学生选课系统
PAGEPAGE3《软件工程》课程设计手册题目:学生选课系统设计2010年1月20日目录1.项目概述………………………………………………………………………31.1开发背景………………………………………………………………………31.2开发目的……………………………………………………………………31.3开发运行境……………………………………………………………………31.4系统功能………………………………………………………………………32.需求 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 …………………………………………………………………………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学生选课模块的设计与实现…………………………………………………106测试及提交……………………………………………………………………107项目小组成员及详细分工……………………………………………………108附:模块源代码………………………………………………………………111.项目概述1.1开发背景Internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。人们打开网页浏览当天的新闻,发电子邮件给远方的朋友,使用搜索引擎查找资料,进入网上商城购买商品——这一切都是在使用Internet。社会的方方面面渗透着互连网的应用,使得一向烦琐的手工程序变得方便,快捷,而学校网上选课系统正是基于这一思想而发展起来的。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数据库的逻辑设计我们选用了MicrosoftAccess2000。数据通信接口采用ODBC。ODBC是微软开发的一套读取数据库的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,它的目的是将所有对数据库的底层操作全部隐藏在ODBC的驱动程序内核里。对于程序员来说,只要构建了一个指向数据库的连接,就可以采用统一的应用程序编程接口实现对数据库的读写。目前ODBC驱动已经提供了对大多数常见类型数据库的支持,包括dBase,Informix,Access,SQLServer和Oracle等。也包括了对其它类型的数据库的支持,如文本,Excel电子表格等的支持。根据系统功能设计的要求以及功能模块的划分,对于系统信息数据库,可以列出以下数据项和数据结构:1.名称:用户信息表表名称标识:login名称字段名称数据类型主键非空用户名UserName文本NoYes密码Password文本NoNo记录:2.名称:课程信息表表名称标识:kechengbiao名称字段名称数据类型主键非空学号number数字NoYes姓名name文本NoNo课程名称lesson文本NoNo记录:4.2数据库的配置一个真正的、完整的站点是离不开数据库的。ODBC为应用程序提供了一种标准方法来操作相关的数据库:管理器根据数据源提供的数据库的位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。按如下步骤可以建立一个新的系统数据源。首先,在控制面板中双击ODBC图标,打开“ODBC数据源管理器”对话框,选择“系统DSN”选项卡,单击“添加”按钮。如下图所示。在“创建新数据源”对话框中,选择“DriverdoMicrosoftAccess(*.mdb)”作为数据库驱动程序并单击“完成”按钮。如下图所示。在“ODBCMicrosoftAccess安装”对话框中,数据源名称填写为“student”,这是程序中将要引用的。单击“选择…”按钮,从弹出的文件窗口中选择student.mdb文件所在的位置。如下图所示。然后单击“确定”按钮,这样就完成了Access数据库的ODBC数据源设置。以上步骤,通过ODBC管理器注册了一个名字为student的数据源,并且指定了数据库的驱动程序。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.*;importjavax.swing.JOptionPane;importjava.sql.*;publicclassLoginextendsFrameimplementsActionListener{Framef,f1;Buttonb1;Buttonb2;Buttonb3;TextFieldt1;TextFieldt2;Labell1;Labell2;Connectioncon;Statementsql;//声明Statement对象ResultSetrs;publicLogin(){f=newFrame("学生选课系统");Toolkittool=f.getToolkit();Dimensiondim=tool.getScreenSize();f.setBounds(0,0,dim.width,dim.height);Panelp=newPanel();f.add(p);l1=newLabel("用户名");l2=newLabel("密码");t1=newTextField(20);t2=newTextField(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.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);f.setVisible(true);t2.setEchoChar('*');f.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}publicvoidactionPerformed(ActionEvente){if(e.getSource()==b1){if(t1.getText().equals("")||t2.getText().equals("")){JOptionPane.showMessageDialog(null,"输入不能为空!");}else{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptiona){System.out.println(""+a);}try{con=DriverManager.getConnection("jdbc:odbc:sun","","");sql=con.createStatement();rs=sql.executeQuery("Select*FROMlogin");//查询数据库booleancheck=false;while(rs.next()){StringUserName=rs.getString(1);//获得数据库第二列StringPassword=rs.getString(2);//获得数据库第三列if(t1.getText().equals(UserName)&&t2.getText().equals(Password)){//判断语句check=true;JOptionPane.showMessageDialog(null,"登陆成功!");f.dispose();newWindowBox("选课窗口");t1.setText("");t2.setText("");break;}}if(check==false){JOptionPane.showMessageDialog(null,"登陆失败,请重新输入!");}con.close();}catch(SQLExceptionel){}}}if(e.getSource()==b2){t1.setText("");t2.setText("");}if(e.getSource()==b3){f.dispose();newRegist("学生选课系统注册界面");}}publicvoidwindowClosing(WindowEvente){System.exit(0);}publicstaticvoidmain(String[]args){newLogin();}}(2)注册模块importjava.awt.*;importjava.awt.event.*;importjavax.swing.JOptionPane;importjava.sql.*;classRegistextendsFrameimplementsActionListener{Labellb1,lb2,lb3;TextFieldtf1,tf2,tf3;Buttonbt1,bt2,bt3;Regist(Strings){super(s);setLayout(null);setBounds(0,0,900,900);setVisible(true);setResizable(false);lb1=newLabel("用户名");lb1.setBounds(150,100,50,20);lb2=newLabel("密码");lb2.setBounds(150,200,50,20);lb3=newLabel("确认");lb3.setBounds(150,300,50,20);tf1=newTextField();tf1.setBounds(200,98,200,20);tf2=newTextField();tf2.setBounds(200,198,200,20);tf2.setEchoChar('*');tf3=newTextField();tf3.setBounds(200,298,200,20);tf3.setEchoChar('*');bt1=newButton("注册");bt1.setBounds(200,400,100,40);bt2=newButton("返回");bt2.setBounds(350,400,100,40);bt3=newButton("退出");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);addWindowListener(newjava.awt.event.WindowAdapter(){publicvoidwindowClosing(java.awt.event.WindowEvente){System.exit(0);}});}publicvoidactionPerformed(ActionEvente){if(e.getSource()==bt1||e.getSource()==tf1||e.getSource()==tf2||e.getSource()==tf3){if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")){JOptionPane.showMessageDialog(this,"请输入用户名和密码","提示",JOptionPane.ERROR_MESSAGE);//判断文本内容语句}else{if(tf2.getText().equals(tf3.getText())){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon;Statementsq;ResultSetr;Stringu,p;con=DriverManager.getConnection("jdbc:odbc:sun",null,null);sq=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);r=sq.executeQuery("SELECT*FROMlogin");while(r.next()){u=r.getString(1);if(tf1.getText().equals(u)){JOptionPane.showMessageDialog(this,"用户已存在","错误",JOptionPane.ERROR_MESSAGE);con.close();break;//判断用户是否存在}elseif(r.isLast()){//判断是否已经读完整个表u=tf1.getText();p=tf2.getText();sq.executeUpdate("INSERTINTOlogin(UserName,Password)VALUES("+"'"+u+"'"+","+"'"+p+"'"+")");//写入用户信息JOptionPane.showMessageDialog(this,"注册成功","提示",JOptionPane.INFORMATION_MESSAGE);con.close();dispose();newLogin();break;}}tf1.setText(null);tf2.setText(null);tf3.setText(null);}catch(SQLExceptionb){JOptionPane.showMessageDialog(this,b,"错误",JOptionPane.ERROR_MESSAGE);}catch(ClassNotFoundExceptiona){JOptionPane.showMessageDialog(this,a,"错误",JOptionPane.ERROR_MESSAGE);}}else{JOptionPane.showMessageDialog(this,"两次密码不一致","提示",JOptionPane.ERROR_MESSAGE);tf2.setText(null);tf3.setText(null);}}}elseif(e.getSource()==bt3){System.exit(0);}elseif(e.getSource()==bt2){dispose();newLogin();}}}publicclassxuhanting1{publicstaticvoidmain(Stringargs[]){newRegist("学生选课系统注册界面");}}(3)选课模块importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classWindowBoxextendsFrameimplementsActionListener,ItemListener{Checkboxbox1,box2,box3,box4,box5,box6;Labell1;Labell2;TextFieldt1;Labell3;TextFieldt2;TextAreat=newTextArea();Buttonb1,b2;WindowBox(Strings){super(s);setLayout(newFlowLayout());l2=newLabel("学号");t1=newTextField(10);l3=newLabel("姓名");t2=newTextField(10);b1=newButton("确定");b2=newButton("重置");l1=newLabel("所选课程");box1=newCheckbox("离散数学",false);box2=newCheckbox("汇编语言",false);box3=newCheckbox("java语言设计",false);box4=newCheckbox("软件工程",false);box5=newCheckbox("操作系统",false);box6=newCheckbox("马克思政治学",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);add(box2);add(box3);add(box4);add(box5);add(box6);add(t);b1.addActionListener(this);b2.addActionListener(this);setSize(500,500);setVisible(true);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});validate();}publicvoiditemStateChanged(ItemEvente){Checkboxbox=(Checkbox)e.getSource();if(box.getState()){intn=t.getCaretPosition();t.insert(box.getLabel(),n);}else{t.setText("");}}publicvoidactionPerformed(ActionEventa){if(a.getSource()==b1){Connectioncon;Statementsql;ResultSetrs;Stringnumber1,name1,lesson1,recode,insertStr;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptiong){System.out.println(""+g);}try{con=DriverManager.getConnection("jdbc:odbc:sun","","");sql=con.createStatement();number1=t1.getText();name1=t2.getText();lesson1=t.getText();recode="("+"'"+number1+"'"+","+"'"+name1+"'"+","+"'"+lesson1+"'"+")";insertStr="INSERTINTOkechengbiaovalues"+recode;sql.executeUpdate(insertStr);con.close();dispose();RuanJianrj=newRuanJian("查询窗口");}catch(SQLExceptionh){System.out.println(h);}}elseif(a.getSource()==b2){t1.setText("");t2.setText("");t.setText("");}}}publicclassxuhanting3{publicstaticvoidmain(Stringargs[]){newWindowBox("选课窗口");}}(4)查询模块importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjavax.swing.JOptionPane;classRuanJianextendsFrameimplementsActionListener{Labellab1;TextFieldtext1;Buttonb1,b2;TextAreat=newTextArea();RuanJian(Strings){setTitle(s);setLayout(null);lab1=newLabel("请输入学号");text1=newTextField(10);b1=newButton("确定");b1.addActionListener(this);b2=newButton("重置");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(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});validate();}publicvoidactionPerformed(ActionEventm){if(m.getSource()==b1){Strings;s=text1.getText();intr=1;Connectioncon;//java.sql包中Connection连接Statementsql;//向数据库发送sql语句ResultSetrs;//处理查询结果try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//建立jdbc与odbc连接}catch(ClassNotFoundExceptione){System.out.println(""+e);}try{con=DriverManager.getConnection("jdbc:odbc:sun","","");sql=con.createStatement();rs=sql.executeQuery("select*fromkechengbiao");while(rs.next()){Stringnumber=rs.getString(1);Stringname=rs.getString(2);Stringlesson=rs.getString(3);if(s.equals(number)){t.append("学号:"+number+"\n");t.append("姓名:"+name+"\n");t.append("课程:"+lesson+"\n");r=0;break;}}if(s.equals("")){JOptionPane.showMessageDialog(this,"请输入学号","警告对话框",JOptionPane.WARNING_MESSAGE);}elseif(r==1){JOptionPane.showMessageDialog(this,"学号输入错误","警告对话框",JOptionPane.WARNING_MESSAGE);//break;}con.close();}catch(SQLExceptione){System.out.println(e);}}elseif(m.getSource()==b2){Strings="";text1.setText(s);t.setText(s);}}}publicclassxuhanting{publicstaticvoidmain(Stringargs[]){RuanJianrj=newRuanJian("查询窗口");}}
本文档为【《软件工程》课程设计—— 学生选课系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥12.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
小吴
多年维修电工经验
格式:doc
大小:160KB
软件:Word
页数:22
分类:教育学
上传时间:2021-11-16
浏览量:3