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

上传人:b****6 文档编号:7047974 上传时间:2023-01-16 格式:DOCX 页数:5 大小:19.47KB
下载 相关 举报
软件工程学生选课系统课程设计.docx_第1页
第1页 / 共5页
软件工程学生选课系统课程设计.docx_第2页
第2页 / 共5页
软件工程学生选课系统课程设计.docx_第3页
第3页 / 共5页
软件工程学生选课系统课程设计.docx_第4页
第4页 / 共5页
软件工程学生选课系统课程设计.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

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

  网上选课系统课程设计手册团队:

   学校:

  队长:

  时间:

2014 目 录 1.项目概述………………………………………………………………………3开发背景………………………………………………………………………3 开发目的 ……………………………………………………………………3 开发运行境……………………………………………………………………3 系统功能………………………………………………………………………32.需求分析…………………………………………………………………………3 系统需求………………………………………………………………………3 功能需求………………………………………………………………………3 业务流图………………………………………………………………………33.总体设计…………………………………………………………………………4 基本设计概念和处理流程……………………………………………………4 系统层次模图…………………………………………………………………4系统层次模块图………………………………………………………………4模块设计………………………………………………………………………54.数据库计…………………………………………………………………………5 数据库的逻辑设计……………………………………………………………5数据库的配置……………………………………………………………………65.详细设计………………………………………………………………………8 学生登录模块的设计与实现…………………………………………………8 学生注册模块的设计与实现…………………………………………………9 学生查询模块的设计与实现…………………………………………………9 学生选课模块的设计与实现…………………………………………………106测试及提交……………………………………………………………………10 1.项目概述 开发背景Internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。

人们打开网页浏览当天的新闻,发电子邮件给远方的朋友,使用搜索引擎查找资料,进入网上商城购买商品——这一切都是在使用Internet。

社会的方方面面渗透着互连网的应用,使得一向烦琐的手工程序变得方便,快捷,而学校网上选课系统正是基于这一思想而发展起来的。

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

  开发运行环境:

开发工具:

java语言开发环境:

JDK 系统功能:

  

(1)登录、注册功能.

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

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

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

  

(1)学生的需求:

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

  

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

  学生信息包括学号、姓名、班级;

  课程信息包括课程名;

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

  系统基本的流程是:

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

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

(1)用户注册模块:

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

(2)用户登录模块:

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

  (3)用户选课模块:

   (4)用户查询模块:

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

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

  数据通信接口采用ODBC。

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

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

目前ODBC驱动已经提供了对大多数常见类型数据库的支持,包括dBase,Informix,Access,SQLServer和Oracle等。

也包括了对其它类型的数据库的支持,如文本,Excel电子表格等的支持。

  根据系统功能设计的要求以及功能模块的划分,对于系统信息数据库,可以列出以下数据项和数据结构:

  1.名称:

用户信息表表名称标识:

login名称字段名称数据类型主键非空用户名UserName文本NoYes密码Password文本NoNo记录:

   2.名称:

课程信息表表名称标识:

kechengbiao名称字段名称数据类型主键非空学号number数字NoYes姓名name文本NoNo课程名称lesson文本NoNo记录:

   数据库的配置一个真正的、完整的站点是离不开数据库的。

ODBC为应用程序提供了一种标准方法来操作相关的数据库:

管理器根据数据源提供的数据库的位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。

这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

  按如下步骤可以建立一个新的系统数据源。

  首先,在控制面板中双击ODBC图标,打开“ODBC数据源管理器”对话框,选择“系统DSN”选项卡,单击“添加”按钮。

如下图所示。

   在“创建新数据源”对话框中,选择“DriverdoMicrosoftAccess(*.mdb)”作为数据库驱动程序并单击“完成”按钮。

如下图所示。

   在“ODBCMicrosoftAccess安装”对话框中,数据源名称填写为“student”,这是程序中将要引用的。

单击“选择…”按钮,从弹出的文件窗口中选择文件所在的位置。

如下图所示。

  然后单击“确定”按钮,这样就完成了Access数据库的ODBC数据源设置。

  以上步骤,通过ODBC管理器注册了一个名字为student的数据源,并且指定了数据库的驱动程序。

  5.详细设计 学生登录模块的设计与实现 登录模块功能:

本模块主要用于对用户身份进行鉴别。

用户通过表单提供用户名和密码信息,系统根据用户提供的登录信息对用户进行身份查询鉴别。

如果身份合法,则将用户导向系统的选课页面。

  输入:

用户名、密码处理:

  

(1)输入用户的登录信息:

在页面提供的表单出输入用户的用户名和密码信息,点击“登录”按钮提交表单信息到身份验证页面。

或点击“重置”按钮,重新输入。

  

(2)用户身份进行验证:

连接数据库,打开用户数据表login,检验用户登录信息。

以输入数据“用户名”为查询条件创建数据集查看输入用户名是否存在。

如果存在,继续检验输入的密码是否正确。

密码和用户名都正确,则进入选课页面;

  如果用户名不存在或密码不正确,则给出登录失败的提示框。

  输出:

学生选课页面.学生登录页面图如下图所示:

学生注册模块的设计与实现  学生查询模块的设计与实现  学生选课模块的设计与实现 6测试及提交7项目小组成员及详细分工工作任务徐寒亭胡中涛卢文琳李爽需求分析数据库的设计查询功能选课功能登陆注册功能查询模块 √ 注册登录模块  √数据库设计模块√  选课模块 √ 8附:

模块源代码

(1)登录模块import*;import*;import;import*; publicclassLoginextendsFrameimplementsActionListener{  Framef,f1;  Buttonb1;  Buttonb2; Buttonb3;  TextFieldt1;  TextFieldt2;  Labell1;  Labell2;  Connectioncon;  Statementsql;  //声明Statement对象  ResultSetrs;  publicLogin(){ f=newFrame(“学生选课系统“);  Toolkittool=(); Dimensiondim=(); (0,0,,);    Panelp=newPanel();(p);    l1=newLabel(“用户名“);l2=newLabel(“密码“);    t1=newTextField(20);t2=newTextField(20);    b1=newButton(“登陆“);b2=newButton(“取消“); b3=newButton(“注册“);    (l1);(t1);(l2);(t2);(b1);(b2); (b3);    (this);(this);(this);  (true);('*');(newWindowAdapter() {  publicvoidwindowClosing(WindowEvente)  {  (0);  } } );  }  publicvoidactionPerformed(ActionEvente){if(()==b1){  if(().equals(““)||().equals(““)){ (null,“输入不能为空!

“);  }   else{ try{  (““); }catch(ClassNotFoundExceptiona){  (““+a); } try{  con=(“jdbc:

odbc:

sun“,““,““);  sql=();  rs=(“Select*FROMlogin“);  //查询数据库  booleancheck=false;  while(()){ StringUserName=

(1);//获得数据库第二列 StringPassword=

(2);  //获得数据库第三列 if(().equals(UserName)&&().equals(Password)){  //判断语句     check=true;   (null,“登陆成功!

“);   ();  newWindowBox(“选课窗口“);   (““);   (““);   break; }  }  if(check==false){ (null,“登陆失败,请重新输入!

“);  }       ();  }catch(SQLExceptionel){}}   }  if(()==b2){(““);(““);  } if(()==b3){ (); newRegist(“学生选课系统注册界面“);  } }publicvoidwindowClosing(WindowEvente){  (0);} publicstaticvoidmain(String[]args){  newLogin();}}

(2)注册模块import*;import*;import;import*; 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(“用户名“); (150,100,50,20); lb2=newLabel(“密码“); (150,200,50,20); lb3=newLabel(“确认“); (150,300,50,20);  tf1=newTextField(); (200,98,200,20); tf2=newTextField(); (200,198,200,20); ('*'); tf3=newTextField(); (200,298,200,20); ('*');  bt1=newButton(“注册“); (200,400,100,40); bt2=newButton(“返回“); (350,400,100,40); bt3=newButton(“退出“); (435,400,100,40);  add(lb1); add(lb2); add(lb3); add(tf1); add(tf2); add(tf3); add(bt1); add(bt2); add(bt3); (this); (this); (this); (this);   addWindowListener(new(){  publicvoidwindowClosing(e)  {  (0);  } } ); } publicvoidactionPerformed(ActionEvente){ if(()==bt1||()==tf1||()==tf2||()==tf3){  if(().equals(““)||().equals(““)||().equals(““)){  (this,“请输入用户名和密码“,“提示“,_MESSAGE);//判断文本内容语句  }  else{  if(().equals(())){  try{  (““);  Connectioncon;  Statementsq;  ResultSetr;  Stringu,p;   con=(“jdbc:

odbc:

sun“,null,null);  sq=(_SCROLL_INSENSITIVE,_UPDATABLE);  r=(“SELECT*FROMlogin“);  while(()){u=

(1);if(().equals(u)){  (this,“用户已存在“,“错误“,_MESSAGE);  ();  break;//判断用户是否存在}elseif(()){ //判断是否已经读完整个表  u=();  p=();  (“INSERTINTOlogin(UserName,Password)VALUES(“+“'“+u+“'“+“,“+“'“+p+“'“+“)“);//写入用户信息  (this,“注册成功“,“提示“,_MESSAGE); ();  dispose();      newLogin();  break;  }   }  (null);  (null);  (null);  }  catch(SQLExceptionb){  (this,b,“错误“,_MESSAGE);  }  catch(ClassNotFoundExceptiona){  (this,a,“错误“,_MESSAGE);  }  }  else{  (this,“两次密码不一致“,“提示“,_MESSAGE);  (null);  (null);  }  } } elseif(()==bt3){  (0); } elseif(()==bt2){  dispose();  newLogin(); } }}publicclassxuhanting1{ publicstaticvoidmain(Stringargs[]) { newRegist(“学生选课系统注册界面“); }} (3)选课模块import*;import*;import*;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); (this); (this); (this); (this); (this); (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);(this); (this); setSize(500,500); setVisible(true); addWindowListener(newWindowAdapter() {  publicvoidwindowClosing(WindowEvente)  {(0);} } ); validate();}  publicvoiditemStateChanged(ItemEvente) { Checkboxbox=(Checkbox)(); if(()) {  intn=();  ((),n);} else  {(““);}  } publicvoidactionPerformed(ActionEventa)  { if(()==b1)  {  Connectioncon;  Statementsql;  ResultSetrs;  Stringnumber1,name1,lesson1,recode,insertStr;  try{  (““);  }  catch(ClassNotFoundExceptiong){  (““+g);  }  try{  con=(“jdbc:

odbc:

sun“,““,““);  sql=();  number1=();  name1=();  lesson1=();  recode=“(“+“'“+number1+“'“+“,“+“'“+name1+“'“+“,“+“'“+lesson1+“'“+“)“;  insertStr=“INSERTINTOkechengbiaovalues“+recode;(insertStr);  ();  dispose();  RuanJianrj=newRuanJian(“查询窗口“);     } catch(SQLExceptionh)  {(h);}  } elseif(()==b2)  {  (““);  (““);  (““);  } }}publicclassxuhanting3{publicstaticvoidmain(Stringargs[]) {newWindowBox(“选课窗口“);}} (4)查询模块import*;import*;import*;import; classRuanJianextendsFrameimplementsActionListener{Labellab1; TextFieldtext1; Buttonb1,b2; TextAreat=newTextArea(); RuanJian(Strings) { setTitle(s); setLayout(null); lab1=newLabel(“请输入学号“); text1=newTextField(10); b1=newButton(“确定“); (this); b2=newButton(“重置“); (this); (120,100,100,30); (250,100,200,30); (220,180,50,30); (320,180,50,30); (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)  {  (0);  } } );  validate(); } publicvoidactionPerformed(ActionEventm) { if(()==b1) {  Strings;   s=();   intr=1;  Connectioncon;//包中Connection连接   Statementsql;//向数据库发送sql语句   ResultSetrs;//处理查询结果  try{  Class.forName(““);//建立jdbc与odbc连接  }  catch(ClassNotFoundExceptione)   {  (““+e);  }  try{  con=(“jdbc:

odbc:

sun“,““,““);  sql=();  rs=(“select*fromkechengbiao“);  while(())  { Stringnumber=

(1);  Stringname=

(2);  Stringlesson=(3);  if((number))  {  (“学号:

“+nu

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

当前位置:首页 > 总结汇报

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

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