版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XXXXX学 院课程设计指导手册班级: X X X X X 姓名: X X X X X X X设计题目: 方达学生选课系统_设计时间: 2012.12.23 至指导教师: X X X X X _评 语:_评阅成绩: 评阅教师: 目 录目 录I方达学生选课管理系统设计总说明III第1章 绪论1第2章 需求设计22.1 需求分析22.1.1 了解需求分析背景22.1.2 确切了解客户的需求22.1.3 掌握系统需求22.1.4 掌握功能需求32.1.5 掌握数据需求32.1.6 性能需求,出错处理需求,设计数据字典3第3章 相关设计43.1 后台数据库设计与相关操作设计43.1.1 E-R模型设计
2、463.1.3 建立数据库索引63.1.4 数据库完整性设计7第4章 相关软件介绍94.1 简要论述ODBC数据源94.2 简要论述MFC104.2.1 MFC简介104.2.2 建立MFC工程10第5章系统实现过程115.1 华科学生选课管理系统前台界面设计115.1.1 资源视图(Resource View)设计115.1.2 文件视图(File View)设计115.1.3 类视图(Class View)设计135.1.4 界面与界面之间实现连接设计145.2 方达学生选课管理系统功能展示205.2.1 方达选课系统教师,学生,管理员登录主界面205.2.2 系统管理员添加课程信息205
3、.2.3 系统管理员查看学生信息与课程信息215.2.5 学生登录选修课程225.2.6 学生查看自己成绩235.2.7 学生修改密码235.2.8 教师登录给学生评分24第6章 总计及感想256.1 本次课程设计总结256.2 课程设计体会与感想25参考文献27附录:(源代码)28方达学生选课管理系统设计总说明 围绕着本次的学生选课系统,我设计了方达学生选课系统,前台界面采用VC+中MFC应用程序,后台我们通过SQL2008做出此系统的数据库, 后台我通过SQL2008做出此系统的数据库,鉴于本次课设实际情况我们设计了五个表:教师表,学生表,选课表,课程表,教务处登录表。然后用E-R图设计,
4、我们大致计算出数据库的大小,这样才能防止后续由于人数增多而导致数据库容量不足。 首先我们要创建ODBC数据源,通过MFC程序把数据库数据源与前台界面连接起来。前台界面按钮设计主要依据数据库中各个表的列名设计。界面与界面之间有代码进行连接,通过建立类向导。 当达到界面与界面正确连接,界面与后台数据库正确连接后,运行后的前台可以对数据库进行操作,添加或者删除信息,也就达到了课设的目的与要求。因为成绩管理系统是一项很实用的系统,所面对的数据量很大,所以我们要求系统能够高效快速的处理这些数据,并且要保证数据的正确性、相容性和安全性。VC+作为前台是将数据库中的数据读取出来,有助于用户对这些数据进行相应
5、的操作,使操作更方便,更符合用户的要求。关键词:SQL2008,VC+,E-R图,ODBC数据源,MFC应用程序第1章 绪论 随着课程改革的不断深入,学校规模不断扩大、课程项目不断增多,为了解决学生选课管理上的复杂的人工操作,减轻重复工作,故设计了选课系统。学校规模的扩大使得学校对每年新生入学、毕业生离校及本校各种分流机制造成的学生信息产生变动,如学籍变动、个人信息修改。为了适应课程的改革,学校在每个学期都要开设一定的课程提供给学生,让学生根据自己的情况来选择,根据学生选择结果给出课程表。本校根据教学实际,为了使教师有效地管理学生信息 设计学生信息管理系统,由此形成学生成绩管理系统,本文就此设
6、计思路进行阐述。随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理仍停留在复杂的人工操作上,重复工作较多,工作量大,率低,因此,迫切需要开发基于互联网的课程信息管理系统来提高管理工作的效率。 基于互联网的学生选课管理系统在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。第2章 需求设计2.1 需求分析2.1.1 了解需求分析背景为方便学校对广大学生选课信息的管理以及方便学生选课,学生选课系统的设计显得十分重要。本次程序设计的题目就是学生选课系
7、统,系统中的课程信息包括课程编码、课程名称、适用专业、课程类型包括必修、限选、必选、实践、实习、学分、学时、主讲教师等。本程序要求做到可通过键盘输入的形式输入数字及英文字母,实现数据的输入,输入值的范围按照系统给出的提示 。输出的形式是通过电脑显示屏显示程序的运行结果及数据 程序能够达到的功能,学生信息管理,学生选课管理,学生选课学分总数有一定的范围,学生可以对课程进行查询、浏览,选完课后可以退选、重选,并且可以按学号、姓名、课程名称进行查询、统计。按照系统提示输入能进行下一步的选择并得到相应的正确结果,当输入错误时会得到错误提示,返回进行下一步操作。 2.1.2 确切了解客户的需求(1) 用
8、户类型:教务处管理员,教师,学生。(2) 各类用户拥有的权限:教务处管理员可以添加,修改,查询学生的资料和学生的选课情况。学生只能查询自己的资料、选修课程、修改密码。教师可以选择教授的课程,对课程进行评分。2.1.3 掌握系统需求(1) 管理员使用本系统对全部数据进行维护。(2) 教师对自己相关的数据实体进行操作。(3) 学生对数据实体只有查询,选修操作。2.1.4 掌握功能需求(1) 设计不同用户操作的登录名与密码。(2) 管理员可以操作教师与学生的所有信息。(3) 学生可以查询信息,选修课程。2.1.5 掌握数据需求(1) 学生信息:学号,姓名,性别,系部,专业班级,密码,年龄。(2) 课
9、程信息:课程编号,课程名称,学分,学时,开课学期。(3) 选课信息:学号,课程编号,课程名称,学生姓名,学分,学生成绩。(4) 教师信息:教师编号,姓名,性别,密码,教授课程编号,年龄。(5) 教务处管理员信息:姓名,编号,密码。2.1.6 性能需求,出错处理需求,设计数据字典综上所述我们知道学生选课管理系统,是学校管理学生选课信息的重要系统。系统中分别涉及到不同管理部门所管理的学生信息,因而将系统的信息分类,分别由教务处、学生处、各系老师管理具体的信息。 因此学生选课管理系统这样设计的目的是:(1)利用查询分析器可以查找学生在学校的一些基本情况(2)为用户提供充足的信息和快捷的查找手段(3)
10、提高文件的查找、维护和更新(4)提高教学信息管理的效率 (5)为了更好的管理学生的基本信息第3章 相关设计3.1 后台数据库设计与相关操作设计3.1.1 E-R模型设计学生选课管理系统中采用“实体联系模型”(E-R模型)来描述数据库的结构与语义,是对现实世界进行第一次抽象。E-R模型直接从现实世界抽象出实体类型及实体间联系,然后用E-R图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。但E-R模型只能说明实体间语义的联系,不能进一步说明详细的数据结构,它只是数据库设计的第一步。根据以上对系统所作的需求分析,系统设计,规划出本系统中使用的数据实体。因此学
11、生选课管理系统的E-R图如下:系部密码姓名专业班级学号学生表 性别年龄 图1 学生表实体E-R图年龄教师编号教授课程编号密码教师表 性别姓名 图2 教师表实体E-R图姓名密码编号管理员信息表 图3 管理员信息表E-R图课程编号学分课程名称课程信息表 开课学期学时 图4 课程信息表E-R图学生成绩课程编号学分课程名称选课信息表 学号学生姓名 图5 选课信息表E-R图综合上述的E-R图,我们可以清晰的看到画出E-R图对于建立表提供了依据,同样表与表之间的连接通过各表相同候选码连接起来。这也是为了后台数据库建立视图,索引,触发器,数据库的完整性等编写代码打下基础,由此可见E-R图对于本次课设后台数据
12、库建立起相当重要的地位。3.1.2后台数据库与基本表的设计图6 创建学生选课管理student数据库(采用界面方式创建)图7 创建基本表表(采用界面方式创建)3.1.3 建立数据库索引(1)设计思想:为了从数据库的大量数据中迅速找到需要的内容,也采用类似于书目录的索引技术,不必顺序查找,就能迅速查到所需要的内容。索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,在数据库中的作用如下:快速存取数据、保证数据记录的唯一性、实现表与表之间的参照完整性、减少排序和分组的时间。(2)索引建立的说明:学生选课管理系统中有五个表,而聚集索引一个表只能有一个,因此有五个聚集索引。一个表
13、可以有一个或者多个非聚集索引,因此非聚集索引不限。图8 命令方式创建索引3.1.4 数据库完整性设计(1)设计思想:数据完整性是指数据库中的数据在逻辑上的一致性与准确性,数据库的完整性一般包括:实体完整性,域完整性,参照完整性性。下面分开介绍三种完整性:1:实体完整性:实体完整性又称行完整性,要求表中有一个主键,其值不能为空且能唯一的标识对应的记录。通过索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性可以实现数据的实体完整性。2:域完整性:域完整性又称列完整性,指给定列输入的有效性。实现域完整的方法有:限制类型,格式(通过CHECK约束和规则)或可能的取值范围(通过CH
14、ECK约束、DEFALUT定义、NOT NULL定义和规则)等。3:参照完整性:又称引用完整性。参照完整性保证主表中的数据与从表中数据的一致性。在SQL Server 2008中,参照完整性的实现是通过定义外键与主键之间或者外键与唯一键之间的对应关系来实现的。参照完整性确保键值在所有表中的一致性。(2)具体实现:图9 命令方式实现数据库的完整性第4章 相关软件介绍4.1 简要论述ODBC数据源 3.1.1 ODBC简介ODBC(Open DataBase Conectivity)是标准编程接口,只要有相应的ODBC驱动程序,就可以通过ODBC连结操作各种不同的数据库。通常通过控制面板中的ODB
15、C Data Source来配置ODBC的数据源。所谓ODBC数据源就是命名的一组信息,包括需要连结的数据库所在位置(可以是磁盘目录文件,也可以是网络服务器)、对应的ODBC驱动程序以及访问数据库所需的其他相关信息,用户可以通过数据源的名称来指定所需的ODBC连接。 3.1.2 前台与后台数据源连接图10 数据源连接4.2 简要论述MFC 4.2.1 MFC简介MFC是用于在C+环境下编写应用程序的一个框架和引擎。MFC的本质就是一个包含了许多微软公司已经定义好的对象的类库,我们知道,虽然我们要编写的程序在功能上是千差万别的,但从本质上来讲,都可以化归为用户界面的设计,对文件的操作
16、,多媒体的使用,数据库的访问等等一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个类库中包含了一百多个程序开发过程中最常用到的对象。在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时我们只要简单地调用已有对象的方法就可以了。我们还可以利用面向对象技术中很重要的“继承”方法从类库中的已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当然,也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。 4.2.2 建立MFC工程图11 建立MFC工程
17、第5章系统实现过程5.1 华科学生选课管理系统前台界面设计5.1.1 资源视图(Resource View)设计建立完MFC工程之后进入前台界面制作,在C+中界面制作分为三个模块:类视图,资源视图,文件视图。资源视图的设计是前台制作的第一步,资源视图里分为对话框制作与菜单制作,下面就分别介绍:(1) 主菜单设计:学生选课管理系统主菜单分为学生选课与管理员管理两个主菜单。(2) 对话框设计:学生选课管理系统对话框设计为25个,具体见截图:图12 对话框设计5.1.2 文件视图(File View)设计我们知道C+编程需要有头文件,界面涉及的头文件更多,在文件视图里我们可以看到学生选课对话框涉及的
18、所有头文件,本次课程设计选课系统头文件有如下:(1) 管理员添加课程信息头文件:#if !defined(AFX_ADMADDCDIALOG_H_A7044B91_139A_4DF0_9DA2_0C9787E9A4FF_INCLUDED_)#define AFX_ADMADDCDIALOG_H_A7044B91_139A_4DF0_9DA2_0C9787E9A4FF_INCLUDED_#if _MSC_VER > 1000#pragma once#endifclass CAdmADDCDialog : public CDialogpublic:CAdmADDCDialog(CWnd* p
19、Parent = NULL); enum IDD = IDD_ADMADDCOURSE ;protected:virtual void DoDataExchange(CDataExchange* pDX); protected:afx_msg void OnAdmAddc();afx_msg void OnAdmcancles();DECLARE_MESSAGE_MAP();previous line.#endif (2) 管理员添加学生信息头文件:#if !defined(AFX_ADMADDSDIALOG_H_9D145081_BC47_4A8F_B590_0A8F719B7390_INC
20、LUDED_)#if _MSC_VER > 1000#pragma once#endifclass CAdmADDSDialog : public CDialogpublic:CAdmADDSDialog(CWnd* pParent = NULL); enum IDD = IDD_ADMADDSTUDENT protected:virtual void DoDataExchange(CDataExchange* pDX); protected:afx_msg void OnAdninserts();afx_msg void OnAdds();DECLARE_MESSAGE_MAP();p
21、revious line.#endif由于头文件代码过于多,所以选取截图作说明,具体详细代码见附录。图13 头文件代码5.1.3 类视图(Class View)设计由于类是在对话框创建时一并创建的,因此截图说明类的种类,代码见附录。图14 类视图设计5.1.4 界面与界面之间实现连接设计(1)登录主界面与管理员操作界面,学生界面,老师界面的连接#include "stdafx.h"#include "Student.h"#include "LogonDialog.h"#include "AdmDialog.h"#i
22、nclude "StuDialog.h"#include "TeacherDialog.h"CString usernumber;CString username;#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifCLogonDialog:CLogonDialog(CWnd* pParent /*=NULL*/): CDialog(CLogonDialog:IDD, pParent)void CLogonDialog:DoDataE
23、xchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CLogonDialog, CDialog)ON_BN_CLICKED(IDC_LOG, OnLog)ON_BN_CLICKED(IDC_LOGCANCLE, OnLogcancle)END_MESSAGE_MAP()void CLogonDialog:OnLog() CDatabase db;db.OpenEx("DSN=Student");CString type,key,user;GetDlgItemText(IDC_TYP
24、E,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' an
25、d 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_CLOS
26、E);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,"
27、");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
28、);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();els
29、eAfxMessageBox("没有该类型!");SetDlgItemText(IDC_USER,"");SetDlgItemText(IDC_KEY,"");SetDlgItemText(IDC_TYPE,"");return;void CLogonDialog:OnLogcancle() / TODO: Add your control notification handler code hereSendMessage(WM_CLOSE);(2)登录界面与学生选课界面连接#include "stdaf
30、x.h"#include "Student.h"#include "StuDialog.h"#include "StudentAdd.h"#include "LogonDialog.h"#include "CourseDialog.h"#include "SCCCourseDialog.h"#include "SCCourseDialog.h"#include "ChangeKey.h"#include "CJDia
31、log.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
32、 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_BN_CLICKED(IDC_SEEINFOR
33、, OnSeeinfor)ON_COMMAND(ID_XIANSHI, OnXianshi)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 han
34、dlersvoid CStuDialog:OnMenuaddcourse() / TODO: Add your command handler code hereCStudentAdd cs;cs.DoModal();void CStuDialog:OnSeeinfor() / TODO: Add your control notification handler code hereCDatabase db;db.OpenEx("DSN=Student");CRecordset rs(&db);CString strSQL;strSQL.Format("s
35、elect Num,Name,Sdepar,Sclass,Sage,Sbit from Student where Num='%s'",usernumber); rs.Open(CRecordset:snapshot,strSQL);CString temp1,temp2,temp3,temp4,temp5,temp6;if(!rs.IsEOF()rs.GetFieldValue("Num",temp1);rs.GetFieldValue("Name",temp2);rs.GetFieldValue("Sdepar&q
36、uot;,temp3);rs.GetFieldValue("Sclass",temp4);rs.GetFieldValue("Sage",temp5);ieldValue("Sbit",temp6);SetDlgItemText(IDC_XUEHAO,temp1);SetDlgItemText(IDC_XINGMING,temp2);SetDlgItemText(IDC_YUANXI,temp3);SetDlgItemText(IDC_BANJI,temp4);SetDlgItemText(IDC_XINGBIE,temp6);if(
37、temp5.Compare("1")SetDlgItemText(IDC_AGE,"男");elseSetDlgItemText(IDC_AGE,"女");void CStuDialog:OnXianshi() / TODO: Add your command handler code here/舍弃原有做法/*CCourseDialog cc;cc.DoModal();*/CSCCourseDialog csc;csc.DoModal();void CStuDialog:OnMenurelog() / TODO: Add your
38、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:
39、OnMenuchangekey() / TODO: Add your command handler code hereCChangeKey cck;cck.DoModal();void CStuDialog:OnMenucj() / TODO: Add your command handler code hereCCJDialog ccj;ccj.DoModal();(3) 此外还有登录界面与教师评分界面连接、登录界面与学生修改密码界面连接、与学生删除选修课程界面之间的连接等等。由于代码过于繁多,详细界面连接见附录。5.2 方达学生选课管理系统功能展示5.2.1 方达选课系统教师,学生,管理
40、员登录主界面图15 登录主界面5.2.2 系统管理员添加课程信息图16 管理员添加课程信息5.2.3 系统管理员查看学生信息与课程信息图17 管理员查看信息5.2.4 系统管理员删除学生信息与课程信息图18 管理员删除信息5.2.5 学生登录选修课程图19 学生选课5.2.6 学生查看自己成绩图20 学生查看自己成绩5.2.7 学生修改密码图21 学生修改密码5.2.8 教师登录给学生评分图22 教师评分6章 总计及感想6.1 本次课程设计总结 这次课程设计花了将近两个星期的时间。刚拿到这个课题时,觉得这个课题以前讲过,有些掉以轻心。今天回过去看看,原来所有一切见在细微处通过我们的努力终于完成
41、了。虽然这不是我读大学以来的检验。经过这次毕业设计我的能力有了很大的提高比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都进步了。这期间凝结我们的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。6.2 课程设计体会与感想通过本次课程设计,我对SQL2008与VC+6.0有了更深的了解,数据库和表是SQL2008中用于组织和管理数据的基本对象,用户使用SQL2008设计和实现查询信息,首要的任务是实现数据库的表示和储存,即创建数据库和表,在设计中我深知自己掌握的知识还远远不够掌握的一些理论知识应用到实践中去总会出现这样或那样的问题不是理论没有掌握好而是光知道
42、书本上的知识是远远不够的一定要把理论知识和实践结合起来。把学到的知识应用到实践中去多做多练才可以把理论的精华发挥出来。知识不是知道了解就好一定要去应用它发展它让它在现实生活中得到充分的应用从而解决一些问题这才是学习的根本目的。而且知识又不是单一的它是互相联系的学科与学科之间都有着内在的联系。计算机是一门非常复杂且庞大的学科一项课题往往需要多项技术才可以完成的。在设计阶段通过对课题的深入分析与研究迫使我对技术有了一定的了解。在遇到问题时得到了指导老师与同学的悉心帮助使我感受到集体的力量是无穷的。在整个设计阶段感受最为深刻的是掌握学习的方式和解决问题的方法。首先是解决问题的方式,虽然面临的信息有很
43、多,但是如何从大量的信息中筛选出所需的信息,有用的信息,才是解决问题的关键。另外一个就是解决问题的方法,就像是我在解决问题中的很多问题一样,一开始总是看书,和书上的例子,题目对比,虽然说书本上的大部分是有价值的,正确的,但是实际上每个人的设计思想和编程思路,对数据的处理方法,处理思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在整个设计过程中,我深刻地体会到了这一点的重要性也牢记住了这一点,在今后的学习和研究中我也会继续将这种方法延续下去。参考文献1 数据库原理及应用 钱雪忠主编 北京邮电大学出版社 2007.8 第二版2 SQL Server2008实用教程 郑阿奇主编 电
44、子工业出版社 2012.5 第三版3 数据库基础与应用 中央广播电视大学出版社 1997年4 数据库技术与联机分析处理 王珊主编 北京科学出版社 19985.Visual C+从入门到精通. 刘锐宁主编 北京:清华大学出版社,2010 6.数据库应用基础实践教程 . 杨长兴主编 北京:中国铁道出版社,2008附录:(源代码)附录(一):添加课程信息#include "stdafx.h"#include "Student.h"#include "AdmADDCDialog.h"#ifdef _DEBUG#define new DEBUG
45、_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAdmADDCDialog dialogCAdmADDCDialog:CAdmADDCDialog(CWnd* pParent /*=NULL*/): CDialog(CAdmADDCDialog:IDD, pParent)/AFX_DATA_INIT(CAdmADDCDialog)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid CAdmADDCDialog:DoDat
46、aExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAdmADDCDialog)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAdmADDCDialog, CDialog)/AFX_MSG_MAP(CAdmADDCDialog)ON_BN_CLICKED(IDC_ADMADDC, OnAdmAddc)ON_BN_CLICKED(IDC_ADMCANCLES, OnAdmcanc
47、les)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAdmADDCDialog message handlersvoid CAdmADDCDialog:OnAdmAddc() / TODO: Add your control notification handler code hereCDatabase db;db.OpenEx("DSN=Student");CString strSQL;CRecordset rs(&db);CString temp1,temp2,temp3,temp4,temp5;GetDlgItemText(IDC_EDIT
48、1,temp1);GetDlgItemText(IDC_EDIT2,temp2);GetDlgItemText(IDC_EDIT3,temp3);GetDlgItemText(IDC_EDIT4,temp4);GetDlgItemText(IDC_EDIT5,temp5);if(temp1.IsEmpty()AfxMessageBox("课程编号不能为空!");return;strSQL.Format("select * from Course where courseNum='%s'",temp1);rs.Open(CRecordset
49、:snapshot,strSQL);int i=rs.GetRecordCount();if(i!=0)AfxMessageBox("课程编号已经存在!");SetDlgItemText(IDC_EDIT1,"");return;strSQL.Format("insert into Course(courseNum,courseName,courseTime,courseScore,courseTerm) values('%s','%s','%s','%s','%s'
50、;)",temp1,temp2,temp3,temp4,temp5);db.ExecuteSQL(strSQL);AfxMessageBox("添加课程成功!");SetDlgItemText(IDC_EDIT1,"");SetDlgItemText(IDC_EDIT2,"");SetDlgItemText(IDC_EDIT3,"");SetDlgItemText(IDC_EDIT4,"");SetDlgItemText(IDC_EDIT5,"");void CAd
51、mADDCDialog:OnAdmcancles() / TODO: Add your control notification handler code hereSendMessage(WM_CLOSE);附录(二):管理员添加学生信息#include "stdafx.h"#include "Student.h"#include "AdmADDSDialog.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endi
52、f/ CAdmADDSDialog dialogCAdmADDSDialog:CAdmADDSDialog(CWnd* pParent /*=NULL*/): CDialog(CAdmADDSDialog:IDD, pParent)/AFX_DATA_INIT(CAdmADDSDialog)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid CAdmADDSDialog:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAdmADDSDialog)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAdmADDSDialog, CDialog)/AFX_MSG_MAP(CAdmADDSDialog)ON_BN_CLICKED(IDC_ADNINSERTS, OnAdninserts)ON_BN_CLICKED(IDC_ADDS, OnAdds)/AFX_MSG_MAPEND
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老院老人健康饮食营养师表彰制度
- 人教版教学课件免疫调节(上课)
- 《石油和油品》课件
- 整体验收合同模板(2篇)
- 2024年特定项目资产抵押融资合同范本版B版
- 2025年东营货运从业资格证试题库及答案
- 2024年生态农业用地流转合作合同范本3篇
- 2025年苏州货运考试题库
- 2025年巴中货运上岗证考试题
- 2025年黔南货运上岗证考试题库
- 2024年汽车维修工高级理论考试题库带答案(满分必刷)
- 国家开放大学电大《国际私法》机考4套真题题库及答案8
- 深静脉血栓VTE防治中心年度工作报告总结
- 国家开放大学本科《人文英语3》一平台机考真题及答案(第七套)
- 2024版美团商家合作协议合同范本
- 科学教育合作协议
- 大众传媒文化智慧树知到期末考试答案章节答案2024年复旦大学
- 人教部编版三年级道德与法治上册全册教案(全册)
- 中心静脉压CVP监测专家讲座
- 大豆购货合同范本(2024版)
- 装修出租合同范本
评论
0/150
提交评论