课程设计报告
学院:
计算机科学技术系
专业名称:
计算机科学技术
课程设计科目:
计算机软件综合课程设计
题目:
网选课系统设计实现系统
学号姓名:
指导教师:
完成时间:
目 录
摘 1
Abstract 1
引言 2
1 系统相关技术介绍 2
11 系统开发采技术方案——B S模式 2
12 MVC设计模式 3
13 JSP介绍 3
2 系统开发工具容器 4
21 开发工具 4
211 Visual studio 2015简介 4
22 数库选择 4
221 MySQL 简介 4
3 需求分析 5
31行性分析 5
32 功模块分析 5
33 软硬件环境需求 7
4 概设计 7
41 系统功结构 7
42 系统流程图 7
43 系统数库ER模型 8
44 数库表设计 9
5 详细设计 10
51 界面设计 10
52 系统功模块设计 11
521 公模块 11
522理员模块 12
523 学生模块 16
结束语 20
致 谢 20
参考文献 20
摘
着学校招生规模断扩许高校出现校区存局面校区间理位置跨度非常高校选课带便高校选课系统解决问题产生利高校现网络资源学生通网络轻松实现选课功教务员方便快捷统计课程选择情况
学生选课系统款理系统囊括学生理课程理基程系统覆盖学生选课查修改密码等环节软件模块操作界面简单实户短时间掌握系统方法户短时间找需信息该系统基BS结构Web项目显著减轻教务员工作负担提高工作效率实现教务理数字化网络化系统采Struts软件进行开发户数选MySQL进行统理
关键词:BS 选课系统数库Web项目
Design and Implementation of Online Course Selection System
Abstract:With the school's enrollment continues to expand many universities there coexist many campuses and campus location between the span is very large to the college enrollment is a big inconvenience University course selection system is to solve this problem arise it is use of the college network resources available so that students can easily achieve enrollment through the network function so that academic staff can easily and quickly in the statistics of each course preference
Class selection system is a management system the system include the students management and curriculum management the basic process System covers course selection of students view modify your password and other links the software interface of each module is simple practical users can master the system within the shortest possible time to use Users Ke Yi in the shortest time to find their required information the system yes one based on B S structure of the Web Project would greatly relieve academic staff burdens that greatly enhance the work efficiency and realizing the Senate Management digitalization and networkbasedSystem software using Struts development user data used for unified management of MySQL
Key words:B S Course elective system Database Web projects
引言
Internet发展教育更加现代化现网信息理现教育中热点现教师学生学校间信息传播指间创造方便快速途径安全性信息更新化方面存定足现系统资料单独建立享性差理者体方式中信息取舍赖理者信息认知喜较容易掌握户真正需求法完全满足户需求目前国家教育体制正处断改革创新阶段国教育部门充分吸取国外优秀教学模式结合国年办学验逐步探索出适合中国特色教学形式国家教育部面级类学校开展全面学分制改革教学理软件应充分托校园网实现教学信息集中理分散操作信息享传统教学理数字化纸化智化综合化方发展进步实现完善计算机教学文件理系统全校信息系统良基础学生网选课系统高校教学理系统重组成部分熟悉教学理工作全部程教务工作实际出发解决工作中关键性难点问题充分利计算机网络功实现教学工作全程计算机理帮助具体理员复杂烦琐工作中解放出教学理走纸化办公规范化现代化理
Internet 具影响范围广够方便快捷传递信息具实时交互性身巨信息库等诸优点着校学生数断增加教务系统数量断涨学生网选课系统提高教师学生学校理效率目标学生网选课系统实现快全校选修课程发布新闻发布教师学生快知道创造现代化学环境学生选课学理工作涉校系师生诸方面着教学体制断改革学生选课时制约素较复杂工作量需较短时间完成里运计算机辅助选课实时量选课数进行检验统计十分方便输出选课结果时避免工处理时容易产生错误程度做实性扩展性维护性相结合安全性规范化原
系统相关技术介绍
11 系统开发采技术方案——B S模式
信息技术高速发展网络计算模式断更新单机时代机终端模式文件服务器时代享数模式客户机服务器时代ClientServer(客户机服务器)模式天网络计算机时代BrowserServer(浏览器服务器)模式计算模式发生巨变化时计算模式断进步理软件架构发生变化
系统综合应BS模式[1]BrowserServer(浏览器服务器)结构CS结构种改进BS模式处运行维护较简便实现员点接入方式访问操作数解决域限制基互联网应系统采BrowserS erver(浏览器服务器)模式结构客户端中Web浏览器外安装软件便插件控件插件设计服务器端通网络载客户端控件第次浏览载注册种化客户端安装客户机模式目前客户服务器体系结构发展方
12 MVC设计模式
Model模型View视图Controller控制器[2]软件工程中种软件架构模式软件系统分三基部分:Model模型View视图Controller控制器
模型视图控制器模式目实现种动态程序设计续程序修改扩展简化程序某部分重复利成专业员通身专长分组:
• 控制器Controller 负责转发请求请求进行处理
• 视图View 界面设计员进行图形界面设计
• 模型Model 程序员编写程序应功(实现算法等等)数库专家进行数理数库设计(实现具体功)
13 JSP介绍
JSPSun Microsystems公司倡导许公司参起建立种动态网页技术标准该技术创建显示动态生成容Web页面提供简捷快速方法JSP技术设计目构造基Web应程序更加容易快捷应程序够种Web服务器应服务器浏览器开发工具工作 JSP规范Web服务器应服务器交易系统开发工具供应商间广泛合作结果传统网页HTML文件(*htm*html)中加入Java程序片段(Scriptlet)JSP标记(tag)构成JSP网页(*jsp)Web服务器遇访问JSP网页请求时首先执行中程序片段然执行结果HTML格式返回客户程序片段操作数库重新定网页发送 email 等等建立动态网站需功程序操作服务器端执行网络传送客户端仅结果客户浏览器求低实现PluginActiveXJava Applet甚FrameJSP技术方面加速动态Web页面开发:
2 系统开发工具容器
21 开发工具
系统开发工具台代码编写Visual studio 2015前台页面编辑样
211 Visual Studio简介
Visual Studio 套基组件软件开发工具技术构建功强性出众应程序Visual Studio 2015部代号Visual Studio 14 Visual Studio 14 Community Technology Previews (CTP) Visual Studio 版早期预发布版2014年11月13日开放载
22 数库选择
221 MySQL 简介
MySQL开放源码关系数库理系统[6]MySQL性高成低性已成流行开源数库广泛应中型网站中着MySQL断成熟逐渐更规模网站应
MySQL 真正户线程SQL数库服务器MySQL现流行关系数库中中种相数库理系统MySQL具巧功齐全查询迅捷等优点MySQL 目标快速健壮易关键免费
3 需求分析
31行性分析
(1)技术行性
学生选课系统款理系统系统包含课程理基程系统覆盖学生选课查修改密码等环节软件模块操作界面简单实户短时间掌握系统方法户短时间找需信息系统采已广泛接受BS结构通Internet协工作数享系统软件采现流行技术成熟框架Struts +MySQL台进行开发实现进行高效理提高工作效率系统具特点:
l 具良系统性友户界面
l 较高处理效率便维护
l 采成熟技术开发全系统具较高技术水
l 简化选课理工作提高工作效率
(2)济行性
系统学生选课理系统该系统容易实现学生老师学校间联系Internet实现完成部分教务工作提高办事效率周期系统成集中系统软件开发系统投入运行学校节约量力物力带效益远远系统软件开发成济完全行
(3)操作行性
界面设计时充分考虑理员惯操作简单数录入迅速规范统计准确制表灵活适应力强容易扩充
32 功模块分析
系统中两类户:系统理员学生两种户具操作权限操作容均样
选课系统予理员权负责系统中添加学生教师信息教学楼教室信息开设课程等学生登录网站选择课程系统超级理员设置选课时间段达时间段前普通理员开设课程达选课时间段学生登陆网站选择课程理员登陆网站开设课程课程编辑课时间点系统中出现时间点突时候系统报告推荐时间点
学生户达选课时间段学生必须选择必修课程外少选择两门选修课程时候超选课时段系统动锁定学生选课课程[8]系统根学生选课信息生成份学生课表[9]
根面求操作功分两类:通操作实现户登录注销修改密码等种户定制操作
1通操作
(1)登录注销
户帐号登录系统[10]户操作完成退出系统注销重新登录系统
(2)修改密码
户第次登录默认密码[11](初始密码123456)
2户功
(1)系统理员
设置选课时间段:系统理员通项功设置选课时段[12]选课时间段里学生选择课程超次时间段学生选课信息动定修改
录入学生教师信息:通项功实现教师学生信息添加删
录入教学楼教室信息:通项功学校里教学楼教室信息录入系统中便教师开设课程时候设置课教室
开设课程{[13]:设置该课程教师教室时间点数剩余数开设课程灵活设置课时间点
(2)学生户
显示修改信息:学生登录系统查修改学生信息姓名性电话等
查开设课程:学生登录查开设课程查该课程信息课时间点开课教师信息等
查终选课信息:学生登录系统列出已选择课程[14]选课信息未锁定退选
选课功例图图31示:
图31 选课功例图
查已选课程例图图32示:
图32 已选课程例图
账号理例图图33示:
图33账号理例图
33 软硬件环境需求
硬件台:CPU:P4 18GHz存:256MB
软件台:
操作系统:Windows 2000WinXPWin2003
数库:MySQL50
JSP 服务器:Tomcat 60
开发工具包:JDK Version 16
4 概设计
41 系统功结构
学生选课系统功结构图41示
学生选课系统
户登陆
学生模块
理模块
选择课程
修改密码
查询已选课程
基信息
学生信息理
课程信息理
图 41学生选课系统功结构图
42 系统流程图
根学生选课系统操作流程系统流程图图4243示
理员
学生选课系统
理员登陆
基信息理
学生信息理
课程信息理
添加学生信息
查询学生信息
修改学生信息
添加课程信息
查询课程信息
修改课程信息
图42 学生选课系统流程图
学生
学生选课系统
学生登陆
选课信息理
查询选课程
选择课程
查询已选课程
查询信息
图43学生选课系统流程图
43 系统数库ER模型
学生信息表:包含学号姓名性密码学院专业等基信息
课程信息表:包含课程号课程名教师课时间课点总数等基信息
理员信息表:包含理员编号密码等信息
选课表:包含选择课程号课程名课教师等
分ER图总ER图分图4448示:
理员
编号
户名
密码
选课表
课程号
学号
课教师
图45选课表实体属性
学生
学号
姓名
学院
专业
性
图46 学生实体属性
课程
课程号
课程名
时间
点
教师
图47 课程实体属性
添加
理员
学生
选修
1
n
n
m
讲授
教师
m
课程
p
图48 系统关系ER图
44 数库表设计
分析述实体属性集中找出关系键然关系式表示实体(中划线属性键)表41表45分出表结构实体属性:
表41 admin
表名称
字段
数类型
长度
属性
输入方式
描述
备注
理员表
Id
字符串
10
NN
输入
户名(键)
Name
字符串
50
NN
输入
理员名字
Password
字符串
10
NN
输入
密码
备注
定义登录系统理员获权限理员登录
表42 Checkin
表名称
字段
数类型
长度
属性
输入方式
描述
备注
户表
Id
字符串
10
NN
输入
户名(键)
Name
字符串
50
NN
输入
姓名
Password
字符串
10
NN
输入
密码
备注
学生登录信息注册学生登录系统选课
表43 select_course
表名称
字段
数类型
长度
属性
输入方式
描述
备注
选课表
ID
字符串
50
NN
生成
户名(键)
CID
字符串
50
NN
课程号(键)
Teacher
字符串
50
NN
教师
备注
定义学生选课程存储学生选择课程
表44 student_infor
表名称
字段
数类型
长度
属性
输入方式
描述
备注
学生表
S_id
字符串
8
NN
输入
户名(键)
S_name
字符串
50
NN
输入
姓名
major
字符串
50
NN
选择
专业
grade
字符串
50
NN
输入
年级
College
字符串
50
NN
输入
学院
备注
存储学生基信息
表45 Course
表名称
字段
数类型
长度
属性
输入方式
描述
备注
课程表
Id
bigint
10
NN
生成
编号(键)
系统动生成
CID
字符串
200
NN
输入
课程号
Cname
字符串
150
NN
选择
课程名
Teacher
字符串
150
NN
选择
教师
Place
字符串
150
NN
选择
教室
Time
字符串
150
NN
选择
时间
Sum
int
10
NN
输入
总数
Spare
int
10
NN
输入
剩余数
备注
存储开设课程基信息
5 详细设计
51 界面设计
(1)已注册户通登录界面够保护系统安全性界面图
(2)面理员页面图52示通菜单实现功模块:
图52 理员页面
(3)面学生页面图53通菜单实现功:
图53 学生页面
图57 修改密码界面
522理员模块
理模块实现理学生信息课程信息学生选课情况进行统计输出功模块中框架[17]页面managerjsp代码:
if(radioButton2Checked)
{
string admin_id textBox1Text获取账号
string admin_psw textBox2Text获取密码
gvteacher_id admin_id
string MyconnectionString DatabasetestDBData Source127001User IdrootPasswordpoolingfalseCharSetutf8port3306连接字符串需改成
MySqlConnection connection new MySqlConnection(MyconnectionString)创建连接
connectionOpen()开连接
string sql select * from teacher where teacher_id' + textBox1Text + ' and PASSWORD' + textBox2Text + '查询否该条记录根账户密码
MySqlDataAdapter objSqlDataAdapter new MySqlDataAdapter(sql connection)
DataSet ds new DataSet() 建立数库
objSqlDataAdapterFill(ds TEACHER)
DataTable dt dsTables[0]
if (dtRowsCount > 0)果1说明记录存登录成功
{
MessageBoxShow(登录成功)
thisHide()
TeacherSysteamview teachersysteamview new TeacherSysteamview()
teachersysteamviewShow()
}
else
{
MessageBoxShow(户名者密码错误)
}
connectionClose()
}
(1)学生理流程图59示:
学生理
增加新学生
设置已毕业
输入新学生信息
显示出未毕业学生
写入数库
设置毕业
更新数库
图59 学生理流程图
(2)课程理流程图512示:
课程理
增加新课程
根条件查询课程
选举课程属专业输入课程信息
显示课程详细信息
写入数库
设置选
更新数库
图512 课程理流程
页面中单击删课程超链接进入删课程页面[19]中显示课程信息信息图513示
图513 课程理页面
该页面中单击删钮页面创建新课程该页面运行效果图514示:
图514 删课程页面
代码:
string MyconnectionString DatabasetestDBData Source127001User IdrootPasswordpoolingfalseCharSetutf8port3306иїћжЋҐе—符串,需要ж№ж€ђдЅ и‡Єе·±зљ„
MySqlConnection MyConnection new MySqlConnection(MyconnectionString)
MyConnectionOpen()
int i
int exresult 0
for (i0i
if ((bool)thisdataGridView1Rows[i]Cells[0]EditedFormattedValue true)
{
string del_sql delete from sc where course_id' + thisdataGridView1Rows[i]Cells[2]EditedFormattedValueToString() + 'AND student_id'+gvstrname+'
MySqlCommand del_com new MySqlCommand(del_sqlMyConnection)
exresult del_comExecuteNonQuery()
}
}
if (exresult > 0)
MessageBoxShow(е€ й™¤ж€ђеЉџ)
DataTable MyTable new DataTable()
MySqlDataAdapter Adapter new MySqlDataAdapter(MySql MyConnection)
AdapterFill(MyTable)
thisdataGridView1DataSource MyTable
if (MyConnectionState ConnectionStateOpen)
{
MyConnectionClose()
(3)退出系统
退出系统exitjsp页面中完成该页面中需前户会话销毁跳出框架返回项目首页
523 学生模块
学生模块中部分功StuUserAction类完成StuUserAction继承DispatchAction类Struts控制器StuUserAction类中编写insert()方法数库插入学生基信息编写welcome()方法方法根学生编号查询出学生基信息然返回学生模块首页——studentjsp页面编写exit()方法该方法退出系统请求该方法中首先户会话象销毁然返回项目首页编写selected()方法查询学生已选课程编写select()方法查询学生选课程编写selctting()方法执行学生选课操作学生标号选课程编号关联起编写courseInfo()方法查询课程详细信息
学生选课页面图515示:
图515 学生登录页面
(1)学生基信息页面图516示:
图516信息页面
(2)学生选课页面
学生模块页面中单击选课超链接程序调学生模块控制器类StuUserAction中select方法学生选择课程查询出然显示selectjsp页面[21]中运行效果图517示:
图517 选课页面
代码:
string xuenian 123
string xueqi 123
string xingqi 123
string shijian 123
string MyconnectionString DatabasetestDBData Source127001User IdrootPasswordpoolingfalseCharSetutf8port3306连接字符串需改成
MySqlConnection MyConnection new MySqlConnection(MyconnectionString) 创建连接
MyConnectionOpen()
int rowsreturned 0
int temp 0
for (int i 0 i < dataGridView1RowsCount i++)
if ((bool)thisdataGridView1Rows[i]Cells[0]EditedFormattedValue true)
{
string Slescsql SELECT * FROM SC WHERE course_id' + thisdataGridView1Rows[i]Cells[1]EditedFormattedValueToString() + '
MySqlCommand SLESC new MySqlCommand(Slescsql MyConnection)
MySqlDataReader slesqlreader SLESCExecuteReader()
while (slesqlreaderRead())
{
if (gvstrname slesqlreaderGetString(slesqlreaderGetOrdinal(student_id)))
{
MessageBoxShow(前选择课程门突课程ID: + thisdataGridView1Rows[i]Cells[1]EditedFormattedValue)
temp i
slesqlreaderClose()
return
}
}
slesqlreaderClose()
string Slecourse SELECT * FROM COURSE WHERE COURSE_ID' + thisdataGridView1Rows[i]Cells[1]EditedFormattedValueToString() + '
MySqlCommand SLE_course new MySqlCommand(Slecourse MyConnection)
MySqlDataReader slecoursereader SLE_courseExecuteReader()
while (slecoursereaderRead())
{
xuenian slecoursereaderGetString(slecoursereaderGetOrdinal(学年))
xueqi slecoursereaderGetString(slecoursereaderGetOrdinal(学期))
xingqi slecoursereaderGetString(slecoursereaderGetOrdinal(星期))
shijian slecoursereaderGetString(slecoursereaderGetOrdinal(Course_time))
if (slecoursereaderGetInt32(slecoursereaderGetOrdinal(collectdMan)) > slecoursereaderGetInt32(slecoursereaderGetOrdinal(Capacity)))
{
MessageBoxShow(该课程数已满请重新选择课程名 + slecoursereaderGetString(slecoursereaderGetOrdinal(course_name)) + 课程ID + thisdataGridView1Rows[i]Cells[1]EditedFormattedValue)
slecoursereaderClose()
return
}
}
slecoursereaderClose()
string SLESTUCOURSE SELECT * FROM SCCOURSE WHERE SCCourse_idCOURSEcourse_id
MySqlCommand SLESTU_COURSE new MySqlCommand(SLESTUCOURSE MyConnection)
MySqlDataReader SLESTU_COURSEreader SLESTU_COURSEExecuteReader()
while (SLESTU_COURSEreaderRead())
{
if (SLESTU_COURSEreaderGetString(SLESTU_COURSEreaderGetOrdinal(学年)) xuenian
&& SLESTU_COURSEreaderGetString(SLESTU_COURSEreaderGetOrdinal(学期)) xueqi
&& SLESTU_COURSEreaderGetString(SLESTU_COURSEreaderGetOrdinal(星期)) xingqi
&& SLESTU_COURSEreaderGetString(SLESTU_COURSEreaderGetOrdinal(Course_time)) shijian)
{
MessageBoxShow(课程时间发生突课程名 + SLESTU_COURSEreaderGetString(SLESTU_COURSEreaderGetOrdinal(course_name)))
slecoursereaderClose()
SLESTU_COURSEreaderClose()
return
}
}
SLESTU_COURSEreaderClose()
}
for (int i 0 i < dataGridView1RowsCount i++)
if ((bool)thisdataGridView1Rows[i]Cells[0]EditedFormattedValue true)
{
string InSQL insert into SC (STUDENT_IDCOURSE_ID) values( ' + gvstrname + '' + thisdataGridView1Rows[i]Cells[1]ValueToString() + ')
MySqlCommand cmd new MySqlCommand(InSQL MyConnection)
rowsreturned cmdExecuteNonQuery() 执行SQL命令
string UpdateSQL update course set collectdmancollectdman+1 where Course_id' + thisdataGridView1Rows[i]Cells[1]ValueToString() + '
MySqlCommand UpdateMan new MySqlCommand(UpdateSQL MyConnection)
UpdateManExecuteNonQuery()
}
if (rowsreturned > 0 && temp 0)
{
MessageBoxShow(选课成功)
}
else
{
MessageBoxShow(选课失败继续努力)
}
MyTableClear()
MySqlDataAdapter MyAdatper new MySqlDataAdapter(MySQL MyConnection)
MyAdatperFill(MyTable)
thisdataGridView1Rows[0]Cells[0]Value 1
thisdataGridView1DataSource MyTable 数库填充dataGridView控件
if (MyConnectionState ConnectionStateOpen)
MyConnectionClose()
(4)修改密码页面
登录修改密码页面stuUpdatejsp中学生修改登录密码输入正确原始密码进行密码修改密码修改操作通updatePwddo请求调户模块中密码修改控制器类UpdatePwdAction进行身份验证更新数库中旧密码运行效果图519示:
图519 修改密码页面
(5)预约选课系统
预约理中点击进入然输入预约需时间然持续窗口规定时间助预约选课C#时间触发器Time控件实现预约数数库调然加入学生已选课程达预约选课效果
预约成功
预约失败时间突
(6)理员登录界面
分四模块分基信息学生理课程理密码修改
学生理模块出节课程什学生选择
课程理模块进行添加修改删课程等操作
修改密码界面
结束语
学生选课系统款理系统包含中数库知识户数选MySQL进行统理囊括学生理课程理基程系统覆盖学生选课查修改密码等环节软件模块操作界面简单实户短时间掌握系统方法户短时间找需信息该系统基BS结构Web项目显著减轻教务员工作负担提高工作效率实现教务理数字化网络化系统采VS软件进行开发然系统然存改进空间通进步设计提高性实性条件限制非采取部署专业服务器系统够稳定实际应中处理海量数方面网页数容量网络安全保障会成系统瓶颈水限中某问题未进行深入分析研究需工作中努力学探讨文中足处敬请位老师读者指正
致 谢
首先衷心感谢指导老师王钲旋教授文选题设计撰写定稿始终王老师悉心指导帮助
两月时间基完成规定设计务两月设计学中仅加深掌握专业知识专业技更重通毕业设计程历解课题研究整程更深入学工作奠定坚实基础次课题研究文编写中王钲旋老师予量建议指导帮助课题疑难问题够成功解决课题够期利完成时老师严谨治学态度实事求科研精神课题研究中时刻影响着成学工作中榜样激励着进步
特感谢王钲旋老师悉心教导时衷心感谢计科领导予学生活思想引导帮助
感谢领导老师学业关心
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档