已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生选课系统课程设计学 院 信 息 工 程 专 业 网 络 工 程 班 级 课题名称 学生选课管理系统设计 组长学号 姓 名 成绩 组员学号 姓 名 成绩 组员学号 姓 名 成绩 开课时间 2014 至 2015 学年 第 一 学期 地点 D509 191、 课程设计的目的和要求 本次学生选课管理系统的课程设计,明白整个系统架构,使得自己所学的Microsoft Visual C+ 6.0和Microsoft Access知识的相互结合,加深对数据库的认识,同时又复习了Microsoft Visual C+ 6.0的编写。为以后能够合理的、精确地、独立的完成数据库提供了前提。数据库运用到数据库建立,建立表以及表与表的连接等等,前台用Microsoft Visual 6.0中MFC工程建立需要的界面与编写界面之间连接代码等。我们想通过本实验解决后台数据库与前台界面连接问题,这也是主要问题所在,只有正确连接才能保证前台用户操作正确的数据,达到数据库中数据资源的共享目的。本次课程设计开发一套选课系统,由学生选课系统、教师系统和管理员系统三部分组成。管理员可以通过管理员系统进行管理课程,查看课程选修情况,查看教师授课情况,修改或删除课程或者学生的信息。教师可以通过教师系统进行查看自己教授的的课程,可以进行对学生的评分,以及对自己密码的修改。学生可以通过学生选课系统进行查看备选课程及该课程的信息,选择希望选修的课程,以及对自己密码的修改。2、 设计 2.1本次课程设计建立学生选课管理系统,通过用户名、密码分别进入3个类别系统,分别是教理系统,教师管理系统,学生选课系统,豆豆学生选课管理系统学生选课系统教师管理系统管理员系统图2.1 学生管理系统基本图通过管理员,进入系统界面可以执行以下操作:管理员系统修改退出显示添加退出系统重新登录删除课程信息删除学生信息修改课程信息显示课程信息显示学生信息添加学生信息添加课程信息修改学生信息图2.2 教务处管理系统 通过学生,进入系统界面可以执行以下操作:学生管理系统个人信息退出选课查看已选课程和显示所有课程 信息重新登录退出系统查看成绩修改密码学生选课图2.3 学生管理系统教师管理系统通过教师,进入界面可以执行以下操作:查看班上学生信息查看所教课程对学生评分退出图2.4 教师管理系统 数据需求(1) 学生表信息:学号,姓名,性别,院系,班级,密码,年龄。(2) 课程表信息:课程编号,课程名称,学分,学时,开课学期。(3) 选表信息:学号,课程编号,课程名称,姓名,学分,成绩。(4) 教师表信息:教师编号,姓名,性别,密码,课程名称,年龄。(5) 管理员表信息:姓名,编号,密码。2.2后台数据库与基本表的设计图2.5 管理员表图2.9 教师表图2.6 课程表以及其连接的表图2.7 选课表图2.8 学生表以及其连接的表2.3资源视图设计 建立完MFC工程之后进入前台界面制作,在Microsoft Visual C+ 6.0中界面制作分为三个模块:类视图,资源视图,文件视图。资源视图的设计是前台制作的第一步,资源视图里分为对话框制作与菜单制作,下面就分别介绍:(1) 主菜单设计:学生选课管理系统主菜单分为学生选课与管理员管理两个主菜单。(2) 对话框设计:学生选课管理系统对话框设计为25个,具体见截图:豆豆学生选课系统教师,学生,管理员登录界面图2.10 登陆界面2.4文件视图设计我们知道Microsoft Visual C+ 6.0编程需要有头文件,界面涉及的头文件更多,在文件视图里我们可以看到学生选课对话框涉及的所有头文件,本次课程设计选课系统头文件有如下:管理员添加学生信息3、 编码下面是应用程序的部分代码:(1)登录主界面与管理员操作界面,学生界面,老师界面的连接#include stdafx.h#include Student.h#include LogonDialog.h#include AdmDialog.h#include StuDialog.h#include TeacherDialog.hCString usernumber;CString username;#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CLogonDialog dialogCLogonDialog:CLogonDialog(CWnd* pParent /*=NULL*/): CDialog(CLogonDialog:IDD, pParent)/AFX_DATA_INIT(CLogonDialog)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid CLogonDialog:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CLogonDialog)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CLogonDialog, CDialog)/AFX_MSG_MAP(CLogonDialog)ON_BN_CLICKED(IDC_LOG, OnLog)ON_BN_CLICKED(IDC_LOGCANCLE, OnLogcancle)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CLogonDialog message handlersvoid CLogonDialog:OnLog() / TODO: Add your control notification handler code hereCDatabase db;db.OpenEx(DSN=Student);CString 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=%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);CAdmDialog adm;adm.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;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.GetFieldValue(Name,username);usernumber=user;SendMessage(WM_CLOSE);CStuDialog stu;stu.DoModal();elseAfxMessageBox(没有该类型!);SetDlgItemText(IDC_USER,);SetDlgItemText(IDC_KEY,);SetDlgItemText(IDC_TYPE,);return;void CLogonDialog:OnLogcancle() / TODO: Add your control notification handler code hereSendMessage(WM_CLOSE);BOOL CLogonDialog:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereCComboBox* pComb = (CComboBox*)GetDlgItem(IDC_TYPE);ASSERT(pComb);pComb-SetCurSel(0);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX 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_FILEstatic char THIS_FILE = _FILE_;#endif/ CStuDialog dialogCStuDialog:CStuDialog(CWnd* pParent /*=NULL*/): CDialog(CStuDialog:IDD, pParent)/AFX_DATA_INIT(CStuDialog)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid CStuDialog:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CStuDialog)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CStuDialog, CDialog)/AFX_MSG_MAP(CStuDialog)ON_COMMAND(ID_MENUADDCOURSE, OnMenuaddcourse)ON_COMMAND(ID_MENURELOG, OnMenurelog)ON_COMMAND(ID_MENUSTUEXIT, OnMenustuexit)ON_COMMAND(ID_MENUSEECHOICED, OnMenuseechoiced)ON_COMMAND(ID_MENUCHANGEKEY, OnMenuchangekey)ON_COMMAND(ID_MENUCJ, OnMenucj)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CStuDialog message handlersvoid CStuDialog:OnMenuaddcourse() / TODO: Add your command handler code hereCStudentAdd cs;cs.DoModal();void CStuDialog:OnMenurelog() / TODO: Add your command handler code hereSendMessage(WM_CLOSE);CLogonDialog cl;cl.DoModal();void CStuDialog:OnMenustuexit() / TODO: Add your command handler code hereSendMessage(WM_CLOSE);void CStuDialog:OnMenuseechoiced() / TODO: Add your command handler code hereCSCCCourseDialog scc;scc.DoModal();void CStuDialog:OnMenuchangekey() / TODO: Add your command handler code hereCChangeKey cck;cck.DoModal();void CStuDialog:OnMenucj() / TODO: Add your command handler code hereCCJDialog ccj;ccj.DoModal();BOOL CStuDialog:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereCDatabase 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 temp1,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);SetDlgItemText(IDC_YUANXI,temp3);SetDlgItemText(IDC_BANJI,temp4);/SetDlgItemText(IDC_AGE,男);if (temp5=0)SetDlgItemText(IDC_AGE,男);elseSetDlgItemText(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(3)此外还有登录界面与教师评分界面连接、登录界面与学生修改密码界面连接、与学生删除选修课程界面之间的连接等等。4、 调试和运行1、 数据源连接:添加数据源2、 选择数据源以及连接成功3、选课系统教师,学生,管理员登录界面4、管理员查看课程信息5、管理员修改学生信息6、管理员添加课程7、教师查看班上学生8、教师对学生评分9、学生登录10、学生查看成绩11、学生选课12、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年人力经理岗位专业测试题及答案
- 2026年期末白狼测试题及答案
- 2026年企业班组长测试题及答案
- 2026年皮内注射技术测试题及答案
- 2026年车险实务测试题及答案
- 2026年行行重行行测试题及答案
- 2026年动土作业安全测试题及答案
- 指数计算题目及答案
- AI在装配式建筑构件智能制造技术中的应用
- 医院会议记录制度
- 财政局知识培训班课件
- 智慧树知道网课《问卷调查设计及研究方法》课后章节测试满分答案
- 国内饲料法规培训
- 药事法规和专业知识培训课件
- 贵州国企薪酬管理办法
- 2025年医卫类临床医学检验技术(正副高)专业知识-专业实践能力参考题库含答案解析(5套试卷)
- 安徽省宣城市2024-2025学年高二下学期期末考试 数学 含答案
- 室内设计师个人简介
- 2025年化工安全与环保试题及答案
- 6月份安全培训内容
- 养殖设备供货方案(3篇)
评论
0/150
提交评论