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