Web系统开发课程设计报告
课 题: 学生信息理系统
专 业: 数字媒体技术
班 级: 1708班
组 长:张(2010843)
组 员:张(200844)
樊(2017)
康(200840)
邓 (200809)
2020年6月10日
目 录
系统描述 2
1需实现功 3
2设计目 3
二分析设计 3
1功模块划分 3
2数库结构描述 4
3系统详细设计文档 6
4模块实现方法描述 9
5测试数期结果 11
三系统测试 16
四心体会总结 23
五代码 24
系统描述
1需求实现功
11录入学生基信息功
学生基信息包括:学号姓名年龄出生专业班级总学分插入时果数库已存该学号插入该学号
12修改学生基信息功
理员模式表格中选中某学生该学生信息进行修改
13查询学生基信息功
姓名已存学生资料进行查询
14删学生基信息功
理员模式选择表格中某学生删该学生
15户登陆
登录权限进入台界面实现权限操作
16户登陆信息设置
修改户登陆密码
2设计目
学生信息理系统教育单位缺少部分功齐全简单易信息理系统效减轻学校相关工作员工作负担容学校决策者理者说关重学生信息理系统应该够户提供充足信息快捷查询手段直传统工方式理文件档案统计查询数种理方式存着许缺点:效率低保密性差工量浪费外时间长产生量文件数查找更新维护带少困难着科学技术断提高计算机科学日渐成熟强功已深刻认识已进入类社会领域发挥着越越重作
作计算机应部分计算机学校类信息进行理具手工理法拟优点例:检索迅速查询方便效率高性存储量保密性寿命长成低等优点够极提高学校信息理效率单位科学化正规化理世界接轨重条件
系统现代化计算机技术传统教学教务工作相结合学院工作流程设计完成通简化学生信息理系统学生信息理工作系统化规范化动化达提高学生信息理效率目
二分析设计
1功模块划分
学生信息理系统
浏览学生信息
查询学生信息
添加学生信息
修改学生信息
删学生信息
普通学生(户)模块
班委(理员)模块
浏览学生信息
查询学生信息
学生理
登陆理
修改登陆密码
显示登陆户
图1 功模块划分图
2数库结构描述
21数库ER模型
登录户理
账号
密码
职位
图2 登录户理ER图
学 生
总学分
出生
年龄
专业
性
姓名
学号
班级
图3 实体学生ER图
22数库关系模型——二维表
表1 学生表(student)
字段
数类型
说明
stuId
nvarchar(30)
学号
stuName
nvarchar(30)
姓名
stuSex
nvarchar(30)
性
stuAge
int
年龄
stuJg
nvarchar(30)
籍贯
stuZy
nvarchar(30)
专业
classId
nvarchar(30)
班号
stuSourse
numeric(52)
总学分
图4 录入数学生表
表2 登陆权限表(login)
字段
数类型
说明
userId
nvarchar(30)
户名(账号)登陆Id
password
nvarchar(30)
登陆密码
position
nvarchar(30)
职位班委普通学生
图5 录入数登陆权限表
3系统详细设计文档
31系统执行流程图
进度条(闪屏)
户登陆
登陆验证
false
true
班委(理员)界面
普通学生界面
查询
添加
修改
删
查询
显示
班委(理员 )
普通学生(户)
退出
退出系统
结束
结束
退出系统
true
false
false
true
修改户登陆密码
显示登陆户信息
图6 系统执行流程图
32类划分
表3 学生信息查询类
类名
类成员属性方法
说明
StuQueryjava
JPanel jp1
定义面板
JLabel jp1_jl1
定义两标签
JTextField jp1_jtf1
定义文输入框
JButton jp1_jb1jp1_jb2jp1_jb3
定义三钮
JTable jtb
定义表
JScrollPane jsp
定义滚动面板存放表
TableModel tm
定义表模型更新表数
public StuQuery(Frame MainString title boolean model)
构造方法通传递三参数实现话
super(Maintitlemodel)
调父类构造方法实现模式话
public void actionPerformed(ActionEvent arg0)
事件响应方法
表4 修改学生信息类
类名
类成员属性方法
说明
UpdateStujava
JLabel jl1jl2jl3jl4jl5jl6jl7jl8
定义八标签设置数库表字段名
JTextField jtf1jtf2jtf3jtf4jtf5jtf6jtf7jtf8
定义八文框接收表字段值
JButton jb1jb2jb3
定义三钮事件响应
public void addView()
修改学生界面函数封装
public AddStu(Frame MainString titleboolean model)
构造方法通传递三参数实现话
super(Maintitlemodel)
调父类构造方法实现模式话
public UpdateStu(Frame MainString titleTableModel tmint rowNoboolean model)
修改信息必须获选中行信息添加文框作默认值构造方法应添加参数传递模型tm传递选中行号row
public void actionPerformed(ActionEvent e)
事件响应方法
表5 修改理员信息类
类名
类成员属性方法
说明
UpdateLoginjava
JLabel jl1jl2jl3
定义三标签户名密码职位
JTextField jtf1jtf2jtf3
定义三文框应三标签值
JButton jb1jb2jb3
定义三钮事件响应
JTable jtb
定义表格显示登陆户信息
PurViewModel pvm
定义登陆户信息数更新模型
public void upView()
修改账户信息权限界面函数封装
public UpdateLogin(Frame MainString titlePurViewModel pvmint rowNoboolean model)
修改信息必须获选中行信息添加文框作默认值构造方法应添加参数传递模型tm传递选中行号row
super(Maintitlemodel)
调父类构造方法实现模式话
public void actionPerformed(ActionEvent e)
事件响应方法
表6表模式更新数
类名
类成员属性方法
说明
TableModeljava
Vector rowDatarowcolumn
定义表格需集合(表行列)
ResultSet rs
定义记录集接收数库返回记录集
SqlConn conn
定义连接数库象SqlConn连接数库类
public TableModel(String sql)
构造方法传SQL语句实现查询操作
public String getColumnName(int column)
重写方法设置表列名
public int getColumnCount()
数模型记录集列数
public int getRowCount()
数模型记录集行数
public Object getValueAt(int arg0 int arg1)
数模型记录集某行某列值
4模块实现方法描述
说明:处包含完成模块实现方法描述
41学生信息查询
学生信息查询窗口采基理窗口界面话框实现实现方法:
1)定义查询需面板组件
2)调父类构造方法实现模式话
3)进行学生信息查询
42修改理员信息
修改理员信息界面通模式话继承JDialog话框实现实现方法:
1)定义修改学生信息相关组件
2)加载数库获选中行信息
3)组件添加窗体
4)调父类构造方法实现模式话
5)调修改户权限信息界面方法
6)修改理员信息
7)调数库连接设置操更新sql语句
43修改学生信息
修改学生信息界面通模式话继承JDialog话框实现实现方法:
1)定义修改学生信息相关组件
2)加载数库获选中行信息
3)组件添加窗体
4)调父类构造方法实现模式话
5)调修改学生信息界面方法
6)修改学生信息
7)完成相应功
44更新数
表模型数更新实现方法:
1)定义表格需集合
2)定义记录集接收数库返回记录集
3)定义连接数库象
4)设置表格列名
5)创建表记录集
6)调数库连接
7)设置表列名表列数行数
8)某行某列值
5测试数期结果
51学生信息查询数测试期结果
数测试期结果图:
图7学生登录初界面
图8学生查信息界面
图9全部学生信息记录(处时运TableModel类)
图10实现处查询功测试数:
姓名:肖立
期结果显示数:
学号:904325 姓名:肖立 性:男 年龄:23 出生:安徽 专业:信息理 班级:9040303 总学分:5425
图7 学生信息理系统
图8 学生信息理系统显示记录
图9 学生信息理系统显示信息
图10 学生信息理系统学生信息查询
52修改理员数测试期结果
数测试期结果图:
图11显示出理员信息处测试数:
账号1:admin 密码1:admin 职位1:班委
账号2:user 密码2:user 职位2:普通学生
图12弹出修改密码窗口处密码admin修改值
图11 显示理员信息
图12 修改理员信息窗口
53修改学生信息数测试期结果
数测试期结果图:
图13全部学生信息记录(处时运TableModel类)
图14弹出修改学生信息窗口:
测试数:姓名:杨明辉
期结果:修改姓名性年龄出生专业班级总学分
图13 学生信息理系统显示信息
图14 修改学生信息窗口
三系统测试
1系统启动界面
图15 系统启动界面
2户登录界面
图16 户登录界面
3班委(理员)界面具完全权限户台界面
图17 理员界面
4班委(理员)界面子菜单项显示
图18 理员界面子菜单系统界面
图19 理员界面子菜单学生理界面
图20 理员界面子菜单系统设置界面
5学生信息查询界面
图21 学生信息查询
6学生信息查询结果显示
图22 学生信息查询显示
7添加学生信息界面
没输入学号者姓名某项时会弹出话框进行提示没输入学号时:
图23 添加学生信息
8修改学生信息界面(学号键灰色显示更改)
图24 修改学生信息
9显示学生信息
图25 显示信息
10没选中行时候修改删弹出提示警告框
图26 修改删警告框图
11删文件时确认话框(点击确认时会删点击取消返回界面)
图27 删学生确认话框
12显示登陆户信息
图28 显示登录户信息示意图
13修改户登陆密码选中某户进行修改
图29 修改户登录密码界面示意图
14关闭户记录显示户信息
图30 关闭户记录示意图
15关闭学生记录
图31 关闭学生记录示意图
16退出系统确认话框
确认时会退出系统否返加界面
图32 退出系统
17普通学生登陆界面(学生信息进行添加修改删户
密码修改应项灰色显示点击)
图33 学生登录界面(1)
图34 学生登录界面(2)
四心体会总结
张星宇:次课程设计web系统开发进步认识时加深课堂学知识课程设计段时间收获课法学知识尤需求分析eclipse熟练部分知识熟练程序设计程中遇少困难通组家起改写调试困难解决
张鑫瑀:通次课程设计发现中需知识没接触网查找资料时候发现学仅仅皮毛需掌握东西根知道时发现已学东西没理解位灵活运脑解决问题需断量实践通断理解断发现问题思考问题进解决问题
樊杨森:掌握前台程序设计技术VC++Sql Server 结合设计CS结构理信息系统综合练Sql Server数库理技术综合熟悉练SQL语言编程中认识系统取系统需求分析更重编程 方面提高实现目标代码力调试代码力
康思成 通次课程设计觉做什始终相信畏惧怕遇困难什尝试开始认难事尝试会发现原没想象难进步深入理解数库设计整程该学生信息理系统需求分析数库概念结构设计关容等时提高编程力
邓琦:程中深刻理解学知识时学少实东西果没信没目标没信心难事情做迷茫时候定坚信目标 学专业事方面工作需断学实践次实践警钟 面毕业面择业需实践验困难面前勇尝试次课程设计感想
五代码
1功:学生信息查询窗口采基理窗口界面话框实现
package comView
import javaawt*
import javaawteventActionEvent
import javaawteventActionListener
import javaxswing*
import comToolsMyFont
public class StuQuery extends JDialog implements ActionListener{
定义查询需面板组件
JPanel jp1
JLabel jp1_jl1
JTextField jp1_jtf1
JButton jp1_jb1jp1_jb2jp1_jb3
JTable jtb
JScrollPane jsp
TableModel tm
public StuQuery(Frame MainString title boolean model)
{
调父类构造方法实现模式话
super(Maintitlemodel)
jp1new JPanel()
jp1_jl1new JLabel(请输入姓名:)
jp1_jl1setFont(MyFontf1)
jp1_jtf1new JTextField(15)
jp1_jb1new JButton(查 询>)
jp1_jb1setFont(MyFontf1)
jp1_jb1addActionListener(this)
jp1_jb2new JButton(清 )
jp1_jb2setFont(MyFontf1)
jp1_jb2addActionListener(this)
jp1_jb3new JButton(显示记录)
jp1_jb3setFont(MyFontf1)
jp1_jb3addActionListener(this)
jp1add(jp1_jl1)
jp1add(jp1_jtf1)
jp1add(jp1_jb1)
jp1add(jp1_jb2)
jp1add(jp1_jb3)
jtbnew JTable()
jspnew JScrollPane(jtb)
thisadd(jp1North)
thisadd(jspCenter)
thissetSize(600400)
thissetVisible(true)
}
@Override
public void actionPerformed(ActionEvent arg0) {
TODO Autogenerated method stub
果点击查询钮
if(arg0getSource()jp1_jb1)
{
获取文框值
String stuNamejp1_jtf1getText()trim()中trim()掉文框前面空格掉字符串中空格
String sqlselect * from student where stuName'+stuName+'
调模型
tmnew TableModel(sql)
jtbsetModel(tm)
}
else if(arg0getSource()jp1_jb2)
{
jp1_jtf1setText()
}
else if(arg0getSource()jp1_jb3)
{
tmnew TableModel(null)
jtbsetModel(tm)
}
}
}
2功:表模型更新数
package comView
import comSqlConnection*引入数库连接包
import javasql*
import javautil*
import javaxswingtableAbstractTableModel
import comSqlConnectionSqlConn
public class TableModel extends AbstractTableModel {
定义表格需集合
Vector rowDatarowcolumn
定义记录集接收数库返回记录集
ResultSet rs
定义连接数库象
SqlConn conn
public TableModel(String sql)
{
if(sqlnull)
{
sqlselect * from student
}
设置表格列名
columnnew Vector()
columnadd(学号)
columnadd(姓名)
columnadd(性)
columnadd(年龄)
columnadd(出生)
columnadd(专业)
columnadd(班级)
columnadd(总学分)
创建表记录集
rowDatanew Vector()
调数库连接
connnew SqlConn()
rsconnsqlQuery(sql)
try {
while(rsnext())
{
rownew Vector()
rowadd(rsgetString(1))
rowadd(rsgetString(2))
rowadd(rsgetString(3))
rowadd(rsgetString(4))
rowadd(rsgetString(5))
rowadd(rsgetString(6))
rowadd(rsgetString(7))
rowadd(rsgetString(8))
rowDataadd(row)
}
} catch (Exception e) {
eprintStackTrace()
TODO handle exception
}
}
@Override
设置表列名
public String getColumnName(int column) {
TODO Autogenerated method stub
return (String)thiscolumnget(column)
}
@Override
列数
public int getColumnCount() {
TODO Autogenerated method stub
return thiscolumnsize()
}
行数
@Override
public int getRowCount() {
TODO Autogenerated method stub
return thisrowDatasize()
}
@Override
某行某列值
public Object getValueAt(int arg0 int arg1) {
TODO Autogenerated method stub
return ((Vector)thisrowDataget(arg0))get(arg1)
}
}
3 功:修改理员信息界面通模式话(继承JDialog话框)实现
package comView
import javaawt*
import javaawteventActionEvent
import javaawteventActionListener
import javaxswing*
import comSqlConnectionSqlConn
import comToolsMyFont
public class UpdateLogin extends JDialog implements ActionListener {
定义修改学生信息相关组件
JLabel jl1jl2jl3
JTextField jtf1jtf2jtf3
JButton jb1jb2jb3
修改账户信息权限界面函数封装
public void upView()
{
加载数库获选中行信息
jl1new JLabel(账 号:)
账号键设置文框编辑时般设置标签灰色显示区标签
jl1setEnabled(false)
jl1setBounds(20 20 60 25)
jl1setFont(MyFontf1)
jl2new JLabel(密 码:)
jl2setFont(MyFontf1)
jl2setBounds(250 20 60 25)
jl3new JLabel(职 位:)
jl3setEnabled(false)
jl3setFont(MyFontf1)
jl3setBounds(20 60 60 25)
jtf1new JTextField(20)
账号键修改设置障碍曙jtf1编辑
jtf1setEnabled(false)
jtf1setBounds(70 20 130 25)
jtf2new JTextField(20)
jtf2setBounds(300 20 130 25)
jtf3new JTextField(20)
jtf3setEnabled(false)
jtf3setBounds(70 60 130 25)
jb1new JButton(修 改)
jb1setFont(MyFontf1)
jb1setBounds(100 100 80 25)
jb1addActionListener(this)
jb2new JButton(取 消)
jb2setFont(MyFontf1)
jb2setBounds(280 100 80 25)
jb2addActionListener(this)
jb3new JButton(清 )
jb3setFont(MyFontf1)
jb3setBounds(1901008025)
jb3addActionListener(this)
thissetLayout(null)
组件添加窗体
thisadd(jl1)
thisadd(jtf1)
thisadd(jl2)
thisadd(jtf2)
thisadd(jl3)
thisadd(jtf3)
thisadd(jb1)
thisadd(jb2)
thisadd(jb3)
}
修改信息必须获选中行信息添加文框作默认值构造方法应添加参数传递模型tm传递选中行号row
public UpdateLogin(Frame MainString titlePurViewModel pvmint rowNoboolean model)
{
调父类构造方法实现模式话
super(Maintitlemodel)
调修改户权限信息界面方法
thisupView()
先表模型中获取选中行数
String userId(String)pvmgetValueAt(rowNo 0)
Systemoutprintln(userId+userId)
String password(String)pvmgetValueAt(rowNo 1)
String position(String)pvmgetValueAt(rowNo 2)
设置广框值
jtf1setText(userId)
jtf2setText(password)
jtf3setText(position)
设置窗体属性
thissetSize(465170)
thissetVisible(true)
thissetResizable(false)
}
@Override
public void actionPerformed(ActionEvent e) {
TODO Autogenerated method stub
点击修改钮
if(egetSource()jb1)
{
获取文框信息
String userIdjtf1getText()trim()
String passwordjtf2getText()trim()
String positionjtf3getText()trim()
调数库连接
设置操更新sql语句
String sqlupdate login set password'+password+'position'+position+'where userId'+userId+'
SqlConn sqlconnnew SqlConn()
sqlconnsqlUpdate(sql)
关闭交资源
sqlconncloseSqlConn()
关闭数库连接资源关闭话框否数动表中更新显示出
thisdispose()
}
果点击取消钮关闭模式话框
else if(egetSource()jb2)
{
thisdispose()
}
果点击清钮清广框容学号
else if(egetSource()jb3)
{
账号键清空
jtf2setText()
}
}
}
4功:修改学生信息界面通模式话(继承JDialog话框)实现
package comView
import javaawt*
import javaawteventActionEvent
import javaawteventActionListener
import javaxswing*
import comSqlConnectionSqlConn
import comToolsMyFont
public class UpdateStu extends JDialog implements ActionListener {
定义修改学生信息相关组件
JLabel jl1jl2jl3jl4jl5jl6jl7jl8
JTextField jtf1jtf2jtf3jtf4jtf5jtf6jtf7jtf8
JButton jb1jb2jb3
int stuAge0
Double stuSourse00
修改学生信息界面函数封装
public void upView()
{
加载数库获选中行信息
jl1new JLabel(学 号:)
学号键设置文框编辑时般设置标签灰色显示区标签
jl1setEnabled(false)
jl1setBounds(20 20 60 25)
jl1setFont(MyFontf1)
jl2new JLabel(姓 名:)
jl2setFont(MyFontf1)
jl2setBounds(250 20 60 25)
jl3new JLabel(性 :)
jl3setFont(MyFontf1)
jl3setBounds(20 60 60 25)
jl4new JLabel(年 龄:)
jl4setFont(MyFontf1)
jl4setBounds(250 60 60 25)
jl5new JLabel(出生:)
jl5setFont(MyFontf1)
jl5setBounds(14 100 60 25)
jl6new JLabel(专 业:)
jl6setFont(MyFontf1)
jl6setBounds(20 140 60 25)
jl7new JLabel(班 级:)
jl7setFont(MyFontf1)
jl7setBounds(20 180 60 25)
jl8new JLabel(总学分:)
jl8setFont(MyFontf1)
jl8setBounds(240 180 60 25)
jtf1new JTextField(20)
学号键修改设置障碍曙jtf1编辑
jtf1setEnabled(false)
jtf1setBounds(70 20 130 25)
jtf1setBorder(BorderFactorycreateLoweredBevelBorder())
jtf2new JTextField(20)
jtf2setBounds(300 20 130 25)
jtf2setBorder(BorderFactorycreateLoweredBevelBorder())
jtf3new JTextField(10)
jtf3setBounds(70 60 60 25)
jtf3setBorder(BorderFactorycreateLoweredBevelBorder())
jtf4new JTextField(10)
jtf4setBounds(300 60 60 25)
jtf4setBorder(BorderFactorycreateLoweredBevelBorder())
jtf5new JTextField(30)
jtf5setBounds(70 100 360 25)
jtf5setBorder(BorderFactorycreateLoweredBevelBorder())
jtf6new JTextField(20)
jtf6setBounds(70 140 290 25)
jtf6setBorder(BorderFactorycreateLoweredBevelBorder())
jtf7new JTextField(20)
jtf7setBounds(70 180 130 25)
jtf7setBorder(BorderFactorycreateLoweredBevelBorder())
jtf8new JTextField(20)
jtf8setBounds(300 180 130 25)
jtf8setBorder(BorderFactorycreateLoweredBevelBorder())
jb1new JButton(修 改)
jb1setFont(MyFontf1)
jb1setBounds(100 220 80 25)
jb1addActionListener(this)
jb2new JButton(取 消)
jb2setFont(MyFontf1)
jb2setBounds(280 220 80 25)
jb2addActionListener(this)
jb3new JButton(清 )
jb3setFont(MyFontf1)
jb3setBounds(1902208025)
jb3addActionListener(this)
thissetLayout(null)
组件添加窗体
thisadd(jl1)
thisadd(jtf1)
thisadd(jl2)
thisadd(jtf2)
thisadd(jl3)
thisadd(jtf3)
thisadd(jl4)
thisadd(jtf4)
thisadd(jl5)
thisadd(jtf5)
thisadd(jl6)
thisadd(jtf6)
thisadd(jl7)
thisadd(jtf7)
thisadd(jl8)
thisadd(jtf8)
thisadd(jb1)
thisadd(jb2)
thisadd(jb3)
}
修改信息必须获选中行信息添加文框作默认值构造方法应添加参数传递模型tm传递选中行号row
public UpdateStu(Frame MainString titleTableModel tmint rowNoboolean model)
{
调父类构造方法实现模式话
super(Maintitlemodel)
调修改学生信息界面方法
thisupView()
先表模型中获取选中行数
String stuId(String)tmgetValueAt(rowNo 0)
Systemoutprintln(sutId+stuId)
String stuName(String)tmgetValueAt(rowNo 1)
String stuSex(String)tmgetValueAt(rowNo 2)
String stuAge(String)tmgetValueAt(rowNo 3)
String stuJg(String)tmgetValueAt(rowNo 4)
String stuZy(String)tmgetValueAt(rowNo 5)
String classId(String)tmgetValueAt(rowNo 6)
String stuSourse(String)tmgetValueAt(rowNo 7)
设置文框默认值
jtf1setText(stuId)
jtf2setText(stuName)
jtf3setText(stuSex)
jtf4setText(stuAge)
jtf5setText(stuJg)
jtf6setText(stuZy)
jtf7setText(classId)
jtf8setText(stuSourse)
设置窗体属性
thissetSize(465300)
thisgetContentPane()setBackground(ColorLIGHT_GRAY)
thissetVisible(true)
thissetResizable(false)
}
@Override
public void actionPerformed(ActionEvent e) {
TODO Autogenerated method stub
点击修改钮
if(egetSource()jb1)
{
获取文框信息
String stuIdjtf1getText()trim()
String stuNamejtf2getText()trim()
if(stuNameequals())
{
JOptionPaneshowMessageDialog(this 请输入姓名)
return返回输入界面果没return语句会回界面
}
String stuSexjtf3getText()trim()
if(stuSexequals())
{
JOptionPaneshowMessageDialog(this 请输入性)
return返回输入界面果没return语句会回界面
}
年龄需进行两判断空必须int型面异常判断输入学生年龄否整型数
******************************************
try {
stuAgeIntegerparseInt(jtf4getText()trim())文框取字符串转换成整型果抛异常输入整形数
if(stuAge<1)
{
JOptionPaneshowMessageDialog(this 年龄必须等1)
return
}
} catch (Exception e2) {
提示输入整数
JOptionPaneshowMessageDialog(this 请输入整数年龄)
果抛异常返回添加窗口面终止执行******************************
return
TODO handle exception
}
*******************************************************************
String stuJgjtf5getText()trim()
if(stuJgequals())
{
JOptionPaneshowMessageDialog(this 请输入出生)
return返回输入界面果没return语句会回界面
}
String stuZyjtf6getText()trim()
if(stuZyequals())
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档