《学生选课管理系统设计报告014145.pdf》由会员分享,可在线阅读,更多相关《学生选课管理系统设计报告014145.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、勿以恶小而为之,勿以善小而不为。刘备穷则独善其身,达则兼善天下。孟子 学生选课系统课程设计 学 院 信 息 工 程 专 业 网 络 工 程 班 级 130461 课题名称 学生选课管理系统设计 组长学号 姓 名 成绩 组员学号 姓 名 成绩 组员学号 姓 名 成绩 开课时间 2014 至 2015 学年 第 一 学期 地点 D509 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。苏轼常将有日思无日,莫待无时思有时。增广贤文 1 一、课程设计的目的和要求 本次学生选课管理系统的课程设计,明白整个系统架构,使得自己所学的 Microsoft Visual C+6.0 和 Microsoft A
2、ccess 知识的相互结合,加深对数据库的认识,同时又复习了 Microsoft Visual C+6.0 的编写。为以后能够合理的、精确地、独立的完成数据库提供了前提。数据库运用到数据库建立,建立表以及表与表的连接等等,前台用 Microsoft Visual 6.0中 MFC 工程建立需要的界面与编写界面之间连接代码等。我们想通过本实验解决后台数据库与前台界面连接问题,这也是主要问题所在,只有正确连接才能保证前台用户操作正确的数据,达到数据库中数据资源的共享目的。本次课程设计开发一套选课系统,由学生选课系统、教师系统和管理员系统三部分组成。管理员可以通过管理员系统进行管理课程,查看课程选修
3、情况,查看教师授课情况,修改或删除课程或者学生的信息。教师可以通过教师系统进行查看自己教授的的课程,可以进行对学生的评分,以及对自己密码的修改。学生可以通过学生选课系统进行查看备选课程及该课程的信息,选择希望选修的课程,以及对自己密码的修改。二、设计 2.1 本次课程设计建立学生选课管理系统,通过用户名、密码分别进入3 个类别系统,分别是教理系统,教师管理系统,学生选课系统,图 2.1 学生管理系统基本图 豆豆学生选课管理系统 管 理 员 系 统 教 师 管 理 系 统 学 生 选 课 系 统 天行健,君子以自强不息。地势坤,君子以厚德载物。易经谋事在人,成事在天!增广贤文 2 通过管理员,进
4、入系统界面可以执行以下操作:图 2.2 教务处管理系统 通过学生,进入系统界面可以执行以下操作:图 2.3 学生管理系统 管理员系统 添加 显示 修改 退出 添加学生信息 添加课程信息 显示学生信息 显示课程信息 修改学生信息 修改课程信息 删除学生信息 删除课程信息 学生管理系统 选课 个人信息 退出 学生选课 查 看 已选 课 程和 显 示所 有 课程 信息 修改密码 查看成绩 重新登录 退出系统 重新登录 退出系统 吾日三省乎吾身。为人谋而不忠乎?与朋友交而不信乎?传不习乎?论语穷则独善其身,达则兼善天下。孟子 3 通过教师,进入界面可以执行以下操作:图 2.4 教师管理系统 数据需求(
5、1)学生表信息:学号,姓名,性别,院系,班级,密码,年龄。(2)课程表信息:课程编号,课程名称,学分,学时,开课学期。(3)选表信息:学号,课程编号,课程名称,姓名,学分,成绩。(4)教师表信息:教师编号,姓名,性别,密码,课程名称,年龄。(5)管理员表信息:姓名,编号,密码。2.2 后台数据库与基本表的设计 图 2.5 管理员表 图 2.9 教师表 教师管理系统 退出 对学生评分 查看班上学生信息 查看所教课程 云路鹏程九万里,雪窗萤火二十年。王实甫百川东到海,何时复西归?少壮不尽力,老大徒伤悲。汉乐府长歌行 4 图 2.6 课程表以及其连接的表 图 2.7 选课表 图 2.8 学生表以及其
6、连接的表 人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。顾炎武忍一句,息一怒,饶一着,退一步。增广贤文 5 2.3 资源视图设计 建立完 MFC 工程之后进入前台界面制作,在 Microsoft Visual C+6.0 中界面制作分为三个模块:类视图,资源视图,文件视图。资源视图的设计是前台制作的第一步,资源视图里分为对话框制作与菜单制作,下面就分别介绍:(1)主菜单设计:学生选课管理系统主菜单分为学生选课与管理员管理两个主菜单。(2)对话框设计:学生选课管理系统对话框设计为25 个,具体见截图:豆豆学生选课系统教师,学生,管理员登录界面 图 2.10 登陆界面
7、2.4 文件视图设计 我们知道 Microsoft Visual C+6.0 编程需要有头文件,界面涉及的头文件更多,在文件视图里我们可以看到学生选课对话框涉及的所有头文件,本次课程设计选课系统头文件有如下:管理员添加学生信息 非淡泊无以明志,非宁静无以致远。诸葛亮百学须先立志。朱熹 6 三、编码 下面是应用程序的部分代码:(1)登录主界面与管理员操作界面,学生界面,老师界面的连接#include stdafx.h#include Student.h#include LogonDialog.h#include AdmDialog.h#include StuDialog.h#include Te
8、acherDialog.h CString usernumber;CString username;#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILE static char THIS_FILE=_FILE_;#endif /CLogonDialog dialog CLogonDialog:CLogonDialog(CWnd*pParent/*=NULL*/):CDialog(CLogonDialog:IDD,pParent)/AFX_DATA_INIT(CLogonDialog)/NOTE:the ClassWizard will add m
9、ember initialization here /AFX_DATA_INIT void CLogonDialog:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CLogonDialog)/NOTE:the ClassWizard will add DDX and DDV calls here /AFX_DATA_MAP BEGIN_MESSAGE_MAP(CLogonDialog,CDialog)/AFX_MSG_MAP(CLogonDialog)丈夫志四方,有事先悬弧,焉能钧三江,终年
10、守菰蒲。顾炎武人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。顾炎武 7 ON_BN_CLICKED(IDC_LOG,OnLog)ON_BN_CLICKED(IDC_LOGCANCLE,OnLogcancle)/AFX_MSG_MAP END_MESSAGE_MAP()/CLogonDialog message handlers void CLogonDialog:OnLog()/TODO:Add your control notification handler code here CDatabase db;db.OpenEx(DSN=Student);CStrin
11、g type,key,user;GetDlgItemText(IDC_TYPE,type);GetDlgItemText(IDC_USER,user);GetDlgItemText(IDC_KEY,key);if(key.IsEmpty()|user.IsEmpty()|type.IsEmpty()AfxMessageBox(用户名或密码或类别不能为空!);return;CString strSQL;CRecordset rs(&db);int i;if(type=管理员)strSQL.Format(select Aname from Admini where Anum=%s and Akey
12、=%s,user,key);rs.Open(CRecordset:snapshot,strSQL);i=rs.GetRecordCount();if(i=0)AfxMessageBox(用户名或密码错误!);SetDlgItemText(IDC_USER,);SetDlgItemText(IDC_KEY,);return;rs.GetFieldValue(Aname,username);usernumber=user;SendMessage(WM_CLOSE);宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒。洪应明丹青不知老将至,贫贱于我如浮云。杜甫 8 CAdmDialog adm;ad
13、m.DoModal();else if(type=老师)strSQL.Format(select Tname from Teacher where Tnum=%s and Tkey=%s,user,key);rs.Open(CRecordset:snapshot,strSQL);i=rs.GetRecordCount();if(i=0)AfxMessageBox(用户名或密码错误!);SetDlgItemText(IDC_USER,);SetDlgItemText(IDC_KEY,);return;rs.GetFieldValue(Tname,username);usernumber=user
14、;SendMessage(WM_CLOSE);CTeacherDialog tea;tea.DoModal();else if(type=学生)strSQL.Format(select Name from Student where Num=%s and Skey=%s,user,key);rs.Open(CRecordset:snapshot,strSQL);i=rs.GetRecordCount();if(i=0)AfxMessageBox(用户名或密码错误!);SetDlgItemText(IDC_USER,);SetDlgItemText(IDC_KEY,);return;rs.Get
15、FieldValue(Name,username);usernumber=user;SendMessage(WM_CLOSE);CStuDialog stu;stu.DoModal();好学近乎知,力行近乎仁,知耻近乎勇。中庸穷则独善其身,达则兼善天下。孟子 9 else AfxMessageBox(没有该类型!);SetDlgItemText(IDC_USER,);SetDlgItemText(IDC_KEY,);SetDlgItemText(IDC_TYPE,);return;void CLogonDialog:OnLogcancle()/TODO:Add your control not
16、ification handler code here SendMessage(WM_CLOSE);BOOL CLogonDialog:OnInitDialog()CDialog:OnInitDialog();/TODO:Add extra initialization here CComboBox*pComb=(CComboBox*)GetDlgItem(IDC_TYPE);ASSERT(pComb);pComb-SetCurSel(0);return TRUE;/return TRUE unless you set the focus to a control /EXCEPTION:OCX
17、 Property Pages should return FALSE (2)登录界面与学生选课界面连接#include stdafx.h#include Student.h#include StuDialog.h#include StudentAdd.h#include LogonDialog.h#include SCCCourseDialog.h#include SCCourseDialog.h#include ChangeKey.h#include CJDialog.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILE 百学须先立志。朱熹
18、非淡泊无以明志,非宁静无以致远。诸葛亮 1 0 static char THIS_FILE=_FILE_;#endif /CStuDialog dialog CStuDialog:CStuDialog(CWnd*pParent/*=NULL*/):CDialog(CStuDialog:IDD,pParent)/AFX_DATA_INIT(CStuDialog)/NOTE:the ClassWizard will add member initialization here /AFX_DATA_INIT void CStuDialog:DoDataExchange(CDataExchange*p
19、DX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CStuDialog)/NOTE:the ClassWizard will add DDX and DDV calls here /AFX_DATA_MAP BEGIN_MESSAGE_MAP(CStuDialog,CDialog)/AFX_MSG_MAP(CStuDialog)ON_COMMAND(ID_MENUADDCOURSE,OnMenuaddcourse)ON_COMMAND(ID_MENURELOG,OnMenurelog)ON_COMMAND(ID_MENUSTUEXIT,OnMenustu
20、exit)ON_COMMAND(ID_MENUSEECHOICED,OnMenuseechoiced)ON_COMMAND(ID_MENUCHANGEKEY,OnMenuchangekey)ON_COMMAND(ID_MENUCJ,OnMenucj)/AFX_MSG_MAP END_MESSAGE_MAP()/CStuDialog message handlers void CStuDialog:OnMenuaddcourse()/TODO:Add your command handler code here CStudentAdd cs;其身正,不令而行;其身不正,虽令不从。论语古之立大事者
21、,不惟有超世之才,亦必有坚忍不拔之志。苏轼 1 1 cs.DoModal();void CStuDialog:OnMenurelog()/TODO:Add your command handler code here SendMessage(WM_CLOSE);CLogonDialog cl;cl.DoModal();void CStuDialog:OnMenustuexit()/TODO:Add your command handler code here SendMessage(WM_CLOSE);void CStuDialog:OnMenuseechoiced()/TODO:Add yo
22、ur command handler code here CSCCCourseDialog scc;scc.DoModal();void CStuDialog:OnMenuchangekey()/TODO:Add your command handler code here CChangeKey cck;cck.DoModal();void CStuDialog:OnMenucj()/TODO:Add your command handler code here CCJDialog ccj;ccj.DoModal();BOOL CStuDialog:OnInitDialog()CDialog:
23、OnInitDialog();志不强者智不达,言不信者行不果。墨翟丹青不知老将至,贫贱于我如浮云。杜甫 1 2 /TODO:Add extra initialization here CDatabase db;db.OpenEx(DSN=Student);CRecordset rs(&db);CString strSQL;strSQL.Format(select Num,Name,Sdepar,Sclass,Sage,Sbit from Student where Num=%s,usernumber);rs.Open(CRecordset:snapshot,strSQL);CString te
24、mp1,temp2,temp3,temp4,temp6,temp5;if(!rs.IsEOF()rs.GetFieldValue(Num,temp1);rs.GetFieldValue(Name,temp2);rs.GetFieldValue(Sdepar,temp3);rs.GetFieldValue(Sclass,temp4);rs.GetFieldValue(Sbit,temp5);rs.GetFieldValue(Sage,temp6);SetDlgItemText(IDC_XUEHAO,temp1);SetDlgItemText(IDC_XINGMING,temp2);SetDlgI
25、temText(IDC_YUANXI,temp3);SetDlgItemText(IDC_BANJI,temp4);/SetDlgItemText(IDC_AGE,男);if(temp5=0)SetDlgItemText(IDC_AGE,男);else SetDlgItemText(IDC_AGE,女);SetDlgItemText(IDC_XINGBIE,temp6);return TRUE;/return TRUE unless you set the focus to a control /EXCEPTION:OCX Property Pages should return FALSE
26、(3)此外还有登录界面与教师评分界面连接、登录界面与学生修改密码界面连接、与学生删除选修课程界面之间的连接等等。一寸光阴一寸金,寸金难买寸光阴。增广贤文谋事在人,成事在天!增广贤文 1 3 四、调试和运行 1、数据源连接:添加数据源 2、选择数据源以及连接成功 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。苏轼常将有日思无日,莫待无时思有时。增广贤文 1 4 3、选课系统教师,学生,管理员登录界面 4、管理员查看课程信息 5、管理员修改学生信息 大丈夫处世,不能立功建业,几与草木同腐乎?罗贯中穷则独善其身,达则兼善天下。孟子 1 5 6、管理员添加课程 7、教师查看班上学生 以家为家,以乡
27、为乡,以国为国,以天下为天下。管子牧民丹青不知老将至,贫贱于我如浮云。杜甫 1 6 8、教师对学生评分 9、学生登录 10、学生查看成绩 丹青不知老将至,贫贱于我如浮云。杜甫老当益壮,宁移白首之心;穷且益坚,不坠青云之志。唐王勃 1 7 11、学生选课 12、学生修改密码 丈夫志四方,有事先悬弧,焉能钧三江,终年守菰蒲。顾炎武一寸光阴一寸金,寸金难买寸光阴。增广贤文 1 8 五、总结(心得体会)通过这数周的努力,这个学生选课管理系统终于完成了。想想当初,刚开时动工的时候,那真是毫无头绪,根本不知道从哪入手,首先对 MFC 的相关知识不是很了解,再者对 Microsoft Access 程序的操
28、作不是很熟悉。但我们并没有灰心气馁。通过几天的学习,请教,上网咨询,慢慢的有了一些眉目,同时也感觉不再那么无助。虽然,对 Microsoft Access 的了解还不是很充足,但一些简单的操作还是很令我们兴奋。我也深深体验到要熟练掌握一种操作软件的难度时那么的大。在制作过程中,有失败,有兴奋。但我们坚持了下来,遇到困难我们没有灰心,首先的困难就是对信息的收集,对各个表建立属性的调查,通过书本上的介绍和网上的一些资料的启发,这个困难不再困扰着我们。但最大的困难就是对 MFC 的操作的学习,从一无所知到作出自己的程序,我们经历了许多的困难。在座的过程中我们一遍又一遍的建立工程项目,不对出错的时候又
29、一遍又一遍的删除,还有一个困难就是对语句的输入,一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。再不懂的地方,上网查询,查看书籍,向同学请问,总之在做 MFC 的时候花费了我们很多的时间。有时候,我们自己觉得我们写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否定自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展很缓慢。最后还是限期的完成本次课程设计。这次课程设计并不是完全由我们三个人完成的,虽然其他人都有不同的题目要求,但是我们还是相互讨论,相互学习,在自己一筹莫展的时候,其他同学有时候能够想出意想不到的方法!解决了我们的困难。总之,通过这个学生选课管理系统的设计,我感到受益匪浅。