3090908学生选课管理系统课程设计报告.docx
《3090908学生选课管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《3090908学生选课管理系统课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
3090908学生选课管理系统课程设计报告
学生选课管理系统
东北大学秦皇岛分校
姓名:
刘国锋
学号:
3090908
指导教师:
朱世敏
日期:
2011年06月19日
目录
目录1
一、总体说明3
二、功能模块结构图4
三、变量说明(公有、私有、本地变量4
四、数据库、表的设计及描述5
1.数据库:
5
2.
(1)管理员表:
5
(2)学生基本信息表:
6
(3)课程表:
6
(4)学生成绩表:
6
(5)密码表:
7
五、操作说明7
六、各模块代码及结果图8
封面:
8
登录:
9
主界面:
10
可选课程信息表单:
11
学生选课记录查询11
记录修改下的表单:
12
学生选课信息:
12
课程信息修改表单:
13
报表:
13
密码修改:
15
菜单:
16
七、课程设计总结:
17
一、总体说明
总体功能介绍:
1、在学生选课信息管理系统中,先打开封面,两秒后自动关闭并跳转至登录界面;
2、首先输入用户名和密码等登录信息,点击确定登录进入主界面,点击退出登录,退出系统;
3、登陆成功,进入主界面以后,有以下模块“数据查询”、“记录修改”、“报表”、“密码安全”。
在“数据查询”中,包含“课程查询”;在“记录修改”中包含“课程和学生选课修改”和“学生选课”;在“报表”中包含以下两项子菜单:
“学生选课情况”,“可选课程”;在“密码安全”中有“密码修改”子菜单。
4、进入主界面
1、在“数据查询”下的“课程查询”在其中输入中输入相应课程名称可以显示已将选课的内容,早课程信息上边的框中输入相应的课程名称可以查询该门课的课程信息;也可以在“数据查询”中的“选课记录查询”中可以通过按照“学号”对学生的选课记录进行统计;
2、在“记录修改”的下拉菜单中的“课程和学生选课修改”中可以对课程信息进行修改,主要包括添加、删除、和退出等;在该下拉菜单下的“学生选课”子菜单中可以添加选课信息和删除选课信息;
3、“报表”的下拉菜单中有“学生选课情况”和“课程信息”的报表,通过这两张报表可以查看和打印学生的选课情况,以及所有的课程信息内容,并可以按照学号、班级、系别显示学生的选课情况;
4、在“密码安全”下拉菜单中有“密码修改”通过“密码修改”可以使原用户还可通过密码修改来不定期修改自己的原始密码,保证了数据的真实性和安全性。
二、功能模块结构图
按课程名称查询选课情况
:
课程信息查询
数据查询按课程名称查询课程信息
学生选课记录查询(按照学号进行查询)
可进行课程信息修改
课程和学生选课修改
可进行学生信息修改
主界面记录修改
学生选课(可实现学生的自由选课)
密码登陆
学生选课情况
报表
可选课程
密码安全(密码信息修改)
三、变量说明(公有、私有、本地变量
1.在登录系统中,有公有变量i,表示输入密码的次数,i的初值设为0,当i>=3时系统将提示已超过三次;还有公有变量uid,其代指的是全局变量“用户名”信息。
2.私有变量:
pwd:
记录登录时的用户密码。
3、密码修改表中的本地变量oldpass、newpass1和newpass2,oldpass代指的是原密码,newpass1代指的是第一次输入的新密码,newpass2代指的是“重新输入新密码”输入的密码
四、数据库、表的设计及描述
1.数据库:
为整个系统提供所有必须的数据信息并为接下来的连编提供数据源。
2.
(1)管理员表:
为登录系统提供账号和相应的密码初始化的密码是和用户的学号相同
(2)学生基本信息表:
可以学生基本信息,对其添加、删除;为查询学生基本信息提供数据源。
(3)课程表:
对其添加、删除,为查询可以选修的课程信息提供数据源
(4)学生成绩表:
可以查询学生成绩,以及选修的课程的部分信息对其添加、删除、修改
(5)密码表:
记录用户的用户名和登录密码,并涉及到后来的密码修改的内容
五、操作说明
本系统适合广大用户操作使用,其操作过程简单明了。
该系统拥有“学生基本信息查询”、“学生成绩查询”、“课程查询”、“打印报表”等功能,此外也设计到视图的操作。
操作步骤如下:
1、打开联编后的xkxt.txt文件进入封面,两秒后该页面自动关闭,并进入登录界面;
1、单机登陆界面进入用户名和密码登录界面,输入用户名和密码之后单击“确定”按钮即可进入系统。
若用户名和密码输入错误,则退出本系统。
选择“确定退出”按钮则离开本系统。
本系统的初始密码为用户自己的“学号”
2用户进入系统后,便直接进入主界面。
在此界面中有“数据查询”、“记录修改”、“报表”、“密码安全”。
在“数据查询”中,包含“课程查询”;在“记录修改”中包含“课程和学生选课修改”和“学生选课”;在“报表”中包含以下两项子菜单:
“学生选课情况”,“可选课程”;在“密码安全”中有“密码修改”子菜单。
1、用户可以在“数据查询”输入课程名称对已选课信息和课程信息进行查询;
a)点击在“数据查询”下的“课程查询”在其中输入中输入相应课程名称可以显示已将选课的内容,早课程信息上边的框中输入相应的课程名称可以查询该门课的课程信息;也可以在“数据查询”中的“选课记录查询”中可以通过按照“学号”对学生的选课记录进行统计;
b)点击“记录修改”的下拉菜单中的“课程和学生选课修改”进入该页面,该页面中用到了页框,分为两页,分别为“课程信息”和“学生选课信息”在其中可以对课程信息进行修改,主要包括添加、删除、和退出等;在该下拉菜单下的“学生选课”子菜单中可以通过输入学号和选课课程号内容进行添加选课信息也可通过“删除”按钮删除存在的选课信息;
c)点击“报表”的下拉菜单下的“学生选课情况”和进入学生选课情况的报表,通过这该报表可以查看和打印学生的选课情况,并可以按照学号、班级、系别显示学生的选课情况,该报表主要包括学号、姓名、课程名称、学分;点击“课程信息”进入可选课程的报表中,该报表中可以显示所有的课程的信息,主要包括,课程号、课程名称、任课教师和学分;
d)点击“密码安全”下拉菜单中有“密码修改”进入“密码修改”页面,可以通过输入原密码和新密码,再次输入新密码三项,如果原密码正确且两次输入的新密码相同,点击“确定修改”的时候可以对密码进行修改,点击“取消修改”退出该页面,通过密码更改可以使原用户还可通过密码修改来不定期修改自己的原始密码,保证了数据的真实性和安全性。
2、单击“退出”按钮,退出该页面。
六、各模块代码及结果图
封面:
1、计时器按钮的属性:
1、Interval改为2000即定时两秒
2、Timer事件代码为:
thisform.release
doform登陆.scx
2、表单属性:
Keypress以及click事件为:
thisform.release
doform登陆.scx
3、设置“封面”表单的属性,主要有autocenter的属性改为“.T.”showwindow改为2,添加图片等
登录:
确定按钮的click事件为:
uid=alltrim(thisform.text1.value)
pwd=alltrim(thisform.text2.value)
locatefor用户=uid
ifnotfound()
messagebox("无此用户",0,"学生选课管理系统")
thisform.text1.selstart=0
thisform.text1.sellength=len(thisform.text1.text)
thisform.text1.setfocus
return
endif
ifalltrim(密码)==pwd
thisform.release
doform主程序.scx
i=i+1
else
ifi>=3
messagebox("三次密码输入不对,系统将退出")
thisform.release
else
messagebox("密码不正确,请重新输入")
thisform.text1.selstart=0
thisform.text1.sellength=len(thisform.text1.text)
endif
endif
取消登录的click事件为:
Quit
主界面:
该界面主要的代码便是把菜单嵌入到该表单中:
把showwindow的属性值改为2—最为顶层菜单
在该表的init事件中输入:
do菜单.mprwiththis,.T.
可选课程信息表单:
该表单的代码主要有
1、选课信息:
select*from选课wherealltrim(课程名称)==alltrim(thisform.text1.value)
2、课程信息:
select*fromcoursewherealltrim(课程名称)==alltrim(thisform.text2.value)
学生选课记录查询
该表的主要代码和相关属性如下
1、combo1的click事件代码:
thisform.grid1.recordsource="null"
select*fromxuankewhere学号=bo1.valueintocursortemp1
thisform.grid1.recordsource='temp1'
thisform.refresh
退出的click事件代码:
Thisform.release
属性:
rowsource属性改为xuanke
Rowsourcetype属性值改为6字段
Controlsource属性值选为:
xuanke.学号
记录修改下的表单:
学生选课信息:
添加的代码:
Appendblankinstudents
Thisform.refresh
删除的click事件:
SELECTstudents
DELETE
thisform.pageframe1.page1.grdstudents.recordsource=null
PACK
thisform.pageframe1.page1.grdstudents.recordsource="students"
thisform.Refresh
退出事件:
thisform.Release
课程信息修改表单:
添加的click事件:
APPENDBLANKINcourse
thisform.Refresh
删除的click事件:
SELECTcourse
DELETE
thisform.pageframe1.page2.grdcourse.recordsource=null
PACK
thisform.pageframe1.page2.grdcourse.recordsource="course"
thisform.Refresh
退出的click事件:
thisform.Release
报表:
课程信息报表:
学生选课信息报表:
密码修改:
确认修改的click事件为:
onerrordoerrhandlerinprocs.prgwithmessage()
usemima
oldpass=thisform.text11.value
newpass1=thisform.text12.value
newpass2=thisform.text13.value
locatefor用户=uid
ifoldpass<>密码
messagebox("原密码不对,请重新输入!
")
thisform.text11.setfocus
use
endif
ifnewpass1<>newpass2
messagebox("新密码两次输入不一致!
")
thisform.text12.setfocus
use
endif
replace密码withnewpass1
messagebox("密码更改完毕!
")
use
取消登录的click事件为:
thisform.release
菜单:
主菜单:
子菜单
1、数据查询的子菜单
2、记录修改的子菜单:
3、报表的子菜单:
4、密码安全的子菜单:
程序:
Proce:
procedureerrhandler
parameterstrmess
messagebox(strmess)
return
main:
_screen.visible=.f.
doform封面.scx
readevents
七、课程设计总结:
1、通过本次课程设计是自己更加清楚的认识到自身存在的不足,在课程设计的过程中通过查询相关资料和书籍,此外还有问一些同学自己不懂的地方;
2、在此过程中更进一步的熟悉了关于项目的创建、数据库的创建、表格的操作、表单的操作、sql语言的运用、报表的生成、表单中嵌入菜单等操作;
3、总体设计
系统模块结构设计的任务是划分子系统,然后确定子系统的模块结构,并画出模块结构图。
在这个过程中必须考虑以下几个问题:
a、如何将一个系统划分成多个子系统;b、每个子系统如何划分成多个模块;c、如何确定子系统之间、模块之间传送的数据及其调用关系。
4、详细设计
在总体设计基础上,第二步进行的是详细设计,主要有处理过程设计以确定每个模块内部的详细执行过程,包括局部数据组织,一般来说,处理过程模块详细设计的难度已不太大,关键是用一种合适的方式来描述每个模块的执行过程;除了处理过程设计,还有代码设计、界面设计、数据库设计、输入输出设计等。
系统设计的目的是在保证实现逻辑模型功能的基础上尽可能提高目标系统的简单性、可变性、一致性、完整性、可靠性、经济性、系统的运行效率和安全性,将分析阶段所获得的系统逻辑模型,转换成一个具体的可实现方案的物理模型。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
所以通过此次课设不仅锻炼了自己这方面的能力,也确实提高了自己,虽然以前有过计算机基础的课程设计,但由于这是两种不同方面的知识,且难易程度也有区别,所以总的来说还是学到了不少东西,而且也因为课设使自己进一步认识了VF,并算是真正掌握了一些关于VF的知识。
且课设要求的是我们做一个学生选课信息管理系统,而且课设是在自己摸索和同学及老师帮助下完成的,所以也体会到了团队合作及在遇到困难时应该多多寻找帮助才能更快并更好完成任务的重要性。
在这个设计的过程中,我了解到很多我平常不了解的东西:
5、通过此次课程设计是自己懂得了一些道理:
1、学习是没有止境的。
在完成这个设计的时候,我总是被一些小的,细的问题挡住前进的步伐,让我总是为了解决一个小问题而花费很长的时间。
最后还要查阅其他的书籍才能找出解决的办法。
并且我在做设计的过程中发现有很多东西,我都还不知道。
其实在做设计的时候,基础是一个不可缺少的知识,但是往往一些核心的高层次的东西更是不可缺少。
2、多和同学讨论。
我们在做课程设计的工程中要不停的讨论问题,这样,我们可以尽可能的统一思想,这样就不会使自己在做的过程中没有方向,并且这样也是为了方便最后程序和在一起。
讨论不仅是一些思想的问题,他还可以深入的讨论一些技术上的问题,这样可以使自己的人处理问题要快一些。
3、多改变自己设计的方法。
在设计的过程中最好要不停的改善自己解决问题的方法,这样可以方便自己解决问题。
其实任意一次实践都是在检验自己学习的水平,也是让自己再提高一下水平,除非你已经不再做这方面的事情了。