设计学生选修课程系统课程设计报告.docx
- 文档编号:18298009
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:19
- 大小:734.98KB
设计学生选修课程系统课程设计报告.docx
《设计学生选修课程系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《设计学生选修课程系统课程设计报告.docx(19页珍藏版)》请在冰点文库上搜索。
设计学生选修课程系统课程设计报告
综合课程设计
(一)
IntegratedCurriculumDesign
(1)
所在院系
专业名称
班级
题目
设计学生选修课程系统
指导教师
成员
完成时间
一、设计任务及要求:
设计任务:
设计学生选修课程系统。
要求:
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开学学期等信息,学生可按要求(如总学分不得少于60)自由选课。
(1)课程信息录入功能(课程信息用文件保存)
(2)课程信息浏览功能
(3)排序:
按总学时排序
(4)查询功能:
按开学学期查询
(5)课程修改,删除(可选项)。
指导教师签名:
2014年5月28日
二、指导教师评语:
指导教师签名:
2014年5月28日
三、成绩
验收盖章
2014年5月28日
设计学生选修课程系统
1设计目的
学生选修课程系统作为信息管理系统的一个分支,已逐渐成为学校信息化建设的重要组成部分,为学校管理全校的院系班级和学生提供了一个功能强大、安装部署方便、使用成本低、操作简捷的学生信息查询系统,不仅能够提高工作的效益,也为最终实现有效的“无纸化办公”和更加广泛的“电子事务”奠定了基础
2设计思路
开发一个学生信息管理系统,主要有三个部分:
人事管理,课程管理,个人信息管理。
(1) 人事管理主要用于用户信息的相关管理。
主要包括添加用户、查看用户信息、删除用户三个功能。
(2) 课程管理主要用于课程的增加、删除、更改。
(3)个人信息管理主要用于用户个人信息的查看、修改。
3开发环境
Myeclipse应用程序
MySQL数据库
4系统总体设计
该系统的设计是充分考虑到学生的管理和课程的管理两个大的方面,首先用户需要根据自己的用户名登陆到系统主界面,然后才能对该系统实施操作,否则不能登陆该系统。
系统中主要包含的内容有:
(1)学生管理中的增、删、改、查等功能;
(2)课程管理中的增、删、改、查等功能;
(3)用户名密码的更改等操作;
(4)以上操作都直接关联数据库;
(5)数据库采用的是MySQL数据库;
4.1系统功能结构图所示:
4.2数据库表的设计
数据库名:
xsxk
表user:
表course:
5详细设计
5.1登陆界面
登陆实体截图如下:
设置一个用户名、密码和验证码文本框输入内容。
三个标签用户名、密码和验证码,一个按钮登陆
publicvoidlogin(){
Stringrand=null;
Stringrands=null;
if(req.getParameter("rand")!
=null){
rand=req.getParameter("rand");
rands=(String)req.getSession().getAttribute("rands");
}
Useruser=buildVO();
try{
if(udao.login(user)&&rands.equals(rand)){
session.setAttribute("user",udao.query(user));
Pagepage=PageUtil.createPage(size,currentpage,cdao.alltotal());
session.setAttribute("course_list",cdao.queryAll(page.getBeginindex(),size));
session.setAttribute("page",page);
path="base/main.jsp";
}else{
path="base/login.jsp";
Stringmes=rands.equals(rand)?
"用户名或密码错误!
!
!
":
"验证码错误!
!
!
";
req.setAttribute("mes",mes);
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
5.2主界面
主界面实体截图如下:
主界面主要是用于对选择相应的功能进行相应的功能,主界面主要包括人事管理、课程管理和个人信息管理三大功能。
在左侧均有不同的链接用以实现不同的功能
5.3数据库连接
学生、课程的增删改查都是建立在连接数据库的基础之上,在MySQL里建立学生表、课程表。
建立JDBC数据源的连接。
代码如下:
importjava.sql.*;
publicclassDateBaseConnection{
//驱动程序名
privatefinalStringDbDriver="com.mysql.jdbc.Driver";
//URL指向要访问的数据库名
privatefinalStringDbUrl="jdbc:
mysql:
//localhost:
3306/xsxk";
//MySQL配置时的用户名
privatefinalStringDbUser="root";
//Java连接MySQL配置时的密码
privatefinalStringDbPassword="hjj";
privateConnectionconn=null;
publicDateBaseConnection(){
try{
Class.forName(DbDriver);//加载驱动程序
conn=DriverManager.getConnection(DbUrl,DbUser,DbPassword);
}catch(Exceptione){
e.printStackTrace();
}
}
publicConnectiongetConnection(){
returnthis.conn;
}
publicvoidclose(){
try{
this.conn.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
5.4添加用户信息
这部分的主要功能是向数据库中添加新的学生信息以及管理员等用户信息。
添加用户界面截图如下:
添加用户信息重要代码:
publicvoidinsert(){
try{
Useruser=buildVO();
udao.insert(user);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidinsert(Useruser)throwsException{
sql="insertintouser(name,IDcard,s_number,password,permission)values(?
?
?
?
?
)";
try{
psmt=dbc.getConnection().prepareStatement(sql);
psmt.setString(1,user.getName());
psmt.setString(2,user.getIDcard());
psmt.setString(3,user.getS_number());
psmt.setString(4,user.getS_number());//密码默认为学号
psmt.setInt(5,user.getPermission());
psmt.executeUpdate();
psmt.close();
}catch(Exceptione){
e.printStackTrace();
}
}
5.5查看用户信息
这部分的主要功能是查看用户信息已确认信息是否添加正确。
查看用户信息截图如下:
重要代码如下:
publicvoidpreview(){
try{
intid=Integer.parseInt(req.getParameter("id"));
req.setAttribute("user",udao.queryById(id));
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
path="back/user/view.jsp";
}
//单挑查询
publicUserqueryById(intid)throwsException{
sql="select*fromuserwhereid=?
";
Useruser=null;
try{
psmt=dbc.getConnection().prepareStatement(sql);
psmt.setInt(1,id);
ResultSetrs=psmt.executeQuery();
while(rs.next()){
user=newUser();
user.initFormRs(rs);
}
rs.close();
psmt.close();
}catch(Exceptione){
e.printStackTrace();
}
returnuser;
}
5.6更新用户信息
这部分主要功能是修改用户相关信息
实体截图如下:
重要代码:
publicvoidupdate(){
try{
Useruser=buildVO();
udao.update(user);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
//更新用户信息
publicvoidupdate(Useruser)throwsException{
sql="updateusersetname=?
IDcard=?
s_number=?
c_number=?
credit=?
whereid=?
";
try{
psmt=dbc.getConnection().prepareStatement(sql);
psmt.setString(1,user.getName());
psmt.setString(2,user.getIDcard());
psmt.setString(3,user.getS_number());
psmt.setString(4,user.getCourse());
psmt.setInt(5,user.getCredit());
psmt.setInt(6,user.getId());
psmt.executeUpdate();
psmt.close();
}catch(Exceptione){
e.printStackTrace();
}
}
5.7删除用户
主要功能是删除用户
实体截图如下:
重要代码如下:
publicvoiddelete(){
try{
intid=Integer.parseInt(req.getParameter("id"));
udao.delete(id);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
//删除单挑记录
publicvoiddelete(intid)throwsException{
sql="deletefromuserwhereid=?
";
try{
psmt=dbc.getConnection().prepareStatement(sql);
psmt.setInt(1,id);
psmt.executeUpdate();
psmt.close();
}catch(Exceptione){
e.printStackTrace();
}
}
5.8密码修改
这部分的主要功能是用于用户自己修改自己的登陆密码,以保障账户安全。
实体截图如下:
重要代码:
publicvoidpassword(){
Stringname=((User)session.getAttribute("user")).getName();
intid=((User)session.getAttribute("user")).getId();
Stringold_p=req.getParameter("old_p");
Stringnew_p=req.getParameter("password");
Stringrepeat_p=req.getParameter("password2");
Stringp=((User)session.getAttribute("user")).getPassword();
if(old_p.equals(p)&&(new_p.equals(repeat_p))){
try{
udao.update(name,new_p,id);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
req.setAttribute("msg","密码修改成功!
!
!
");
}else{
Stringmsg=new_p.equals(repeat_p)?
"原始密码输入错误!
!
!
":
"两次密码输入不一致!
!
!
";
req.setAttribute("msg",msg);
}
path="back/user/password.jsp";
}
//更新用户密码
publicvoidupdate(Stringname,Stringnew_p,intid)throwsException{
sql="updateusersetname=?
password=?
whereid=?
";
try{
psmt=dbc.getConnection().prepareStatement(sql);
psmt.setString(1,name);
psmt.setString(2,new_p);
psmt.setInt(3,id);
psmt.executeUpdate();
psmt.close();
}catch(Exceptione){
//TODO:
handleexception
e.printStackTrace();
}
}
5.9课程管理
课程管理也是有增删改查四个功能,并且与学生管理相对应的四个功能技术上基本相似,在此就不在一一赘述,在这只显示了修改课程信息窗口(如下图),以做示例,其它三个功能基本一样
重要代码:
publicvoidupdate(){
try{
Coursecourse=buildVO();
cdao.update(course);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
//更新课程信息
publicvoidupdate(Coursecourse)throwsException{
sql="updatecoursesetname=?
c_number=?
teacher=?
schooltime=?
location=?
credit=?
totalhours=?
property=?
capacity=?
selected=?
college=?
testtime=?
whereid=?
";
try{
psmt=dbc.getConnection().prepareStatement(sql);
psmt.setString(1,course.getName());
psmt.setString(2,course.getC_number());
psmt.setString(3,course.getTeacher());
psmt.setString(4,course.getSchooltime());
psmt.setString(5,course.getLocation());
psmt.setInt(6,course.getCredit());
psmt.setInt(7,course.getTotalhours());
psmt.setString(8,course.getProperty());
psmt.setInt(9,course.getCapacity());
psmt.setInt(10,course.getSelected());
psmt.setString(11,course.getCollege());
psmt.setString(12,course.getTesttime());
psmt.setInt(13,course.getId());
psmt.executeUpdate();
psmt.close();
}catch(Exceptione){
e.printStackTrace();
}
}
6设计总结与体会
学生选课系统的流程主要开始是登陆界面在接下来开始进入学生选课管理的主界面。
其中还要做数据库的建立以及连接。
系统主要分为三大部分人事管理、课程管理和个人信息管理。
其中人事管理主要包括用户的一些信息。
课程管理主要是课程的增删改。
个人信息管理主要包括学生个人信息的查看和修改。
通过做学生管理系统使自己对数据库的增加删除修改查询等功能进一步熟悉了解,深深体会到做一个系统需要整体的思路设计及构思
在这次实验中,让我对Java学习有了进一步的认识与体会,着实发现Java是一款非常不错的一门语言,方便,实用,美观。
在今后的学习中,我将继续对
JAVA的学习精益求精。
参考文献(至少5篇)
[1].张桂珠刘丽陈爱国Java面向对象程序设计(第2版)北京邮电大学出版社
[2]毕广吉.Java程序设计实例教程[M].北京:
冶金工业出版社,2007年
[3].王保罗.Java面向对象程序设计[M].北京:
清华大学出版社,2003年
[4].高林,周海燕.Jsp网上书店系统与案例分析[M].北京:
人民邮电出版社,2004年
[5].刘腾红,孙细明.信息系统分析与设计[M].北京:
科学出版社,2003年
[6].林邦杰,彻底研究java.北京:
电子工业出版社,2002年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 学生 选修 课程 系统 课程设计 报告