《软件工程》课程设计学生选课系统教案资料.docx

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

《软件工程》课程设计学生选课系统教案资料.docx

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

《软件工程》课程设计学生选课系统教案资料.docx

《软件工程》课程设计学生选课系统教案资料

 

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

《软件工程》课程设计手册

题目:

学生选课系统设计

2010年1月20日

 

1.项目概述………………………………………………………………………3

1.1开发背景………………………………………………………………………3

1.2开发目的……………………………………………………………………3

1.3开发运行境……………………………………………………………………3

1.4系统功能………………………………………………………………………3

2.需求分析…………………………………………………………………………3

2.1系统需求………………………………………………………………………3

2.2功能需求………………………………………………………………………3

2.3业务流图………………………………………………………………………3

3.总体设计…………………………………………………………………………4

3.1基本设计概念和处理流程……………………………………………………4

3.2系统层次模图…………………………………………………………………4

3.3系统层次模块图………………………………………………………………4

3.4模块设计………………………………………………………………………5

4.数据库计…………………………………………………………………………5

4.1数据库的逻辑设计……………………………………………………………5

4.2数据库的配置……………………………………………………………………6

5.详细设计………………………………………………………………………8

5.1学生登录模块的设计与实现…………………………………………………8

5.2学生注册模块的设计与实现…………………………………………………9

5.3学生查询模块的设计与实现…………………………………………………9

5.4学生选课模块的设计与实现…………………………………………………10

6测试及提交……………………………………………………………………10

7项目小组成员及详细分工……………………………………………………10

8附:

模块源代码………………………………………………………………11

 

1.项目概述

1.1开发背景

Internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。

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

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

1.2开发目的

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

1.3开发运行环境:

开发工具:

java语言

开发环境:

JDK

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

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

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

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

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

1.名称:

用户信息表

表名称标识:

login

名称

字段名称

数据类型

主键

非空

用户名

UserName

文本

No

Yes

密码

Password

文本

No

No

记录:

2.名称:

课程信息表

表名称标识:

kechengbiao

名称

字段名称

数据类型

主键

非空

学号

number

数字

No

Yes

姓名

name

文本

No

No

课程名称

lesson

文本

No

No

记录:

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项目小组成员及详细分工

工作任务

XXX

XXX

XXX

XXX

需求分析

数据库的设计

查询功能

选课功能

登陆注册功能

查询模块

注册登录模块

数据库设计模块

选课模块

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=new

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

当前位置:首页 > 小学教育 > 语文

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

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