




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计说明书 设计题目:_小雨点学生成绩管理系统 设计时间: 2011.1.10 至 2011.1.21 评 语:_评阅成绩: 评阅教师: 目录设计总说明4关键词5绪论6第1章 数据库设计71.1 需求分析71.1.1 数据需求71.1.2数据字典71.1.3数据流程图81.2概念分析81.3逻辑结构设计91.4物理实施91.4.1 创建数据库101.4.2 创建数据表101.4.3 像数据表中插入数据111.4.4 创建视图121.4.5 触发器和完整性约束121.4.6 存储过程13第2章 系统界面设置及主要功能142.1 添加主菜单和功能按钮142.2 登录界面设置162.3 学生信
2、息增、删、改界面182.4 对学生信息多角度查询21总结27参考文献28附录 程序代码291 StuConStr.h头文件的代码292 登录界面“确定”按钮代码293 添加登录界面背景图片的代码294 使控件变为透明的代码305 主界面“添加”按钮代码306 主界面“查找”按钮代码317 主界面“修改”按钮代码338 主界面“删除”按钮代码359 添加菜单栏和工具栏代码3510 信息查询界面“查询”按钮代码3611 成绩录入界面“查询”代码3612 成绩录入界面“添加”代码3713 成绩录入界面“修改”3714 成绩录入界面“删除”按钮代码38小雨点学生成绩管理系统设计总说明:在当今社会,无论
3、中小学还是大学,成绩管理是一项必要而且很关键的工作。现在随着学生数量的急剧增加,处理学生的成绩数据变的越来越烦琐艰巨。在当今社会,计算机已经普及到了几乎每个学校、家庭,我们的学习和生活已经处处离不开计算机的存在。按照传统的管理方法,学生成绩都是登录在纸质的成绩册上,使用很不方便,在进行查询、修改、插入和删除操作时,可能由于人为的失误,使这些数据很容易丢失。另一方面,传统的管理方法在面对大量的数据时,工作量非常大,效率非常低。所以要设计出一套高效的、合理的学生成绩管理系统是很有必要的。本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。开发本系统可使老师减轻工作
4、压力,比较系统地对学生的信息和成绩进行管理,查询、增添、修改、删除都变的非常简便,节省了大量的工作量。本课程设计是在学习了数据库系统A和相关开发软件课程之后,让学生通过实际项目的设计、开发,培养学生独立进行数据库软件的建模、在计算机中进行数据库设计、并通过相关软件开发系统的能力。输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5) ,要求 :1、用户录入每个学生每门课程的分数; 2、能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名; 3、计算全班各门功课的平均分,显示没门课程中低于平均分的每一个学生的学号,姓名,性别
5、,科目,成绩等信息; 4、显示每门科目中,成绩在90分以上的学生信息。另外还输出每门科目中不及格的学生信息; 5、能按姓名或者学号查找,增加,删除和保存各个学生的信息。本系统主要用于对学生成绩进行管理,能够进行插入、删除、修改、查询和显示学生的信息。登录该系统时,用户需要输入口令和密码,以确保数据的安全性,成功登录的用户,可以插入学生的信息和成绩,并对学生的信息和成绩进行增、删、改操作。基于上述想法,我们将学生数据保存到数据库中,以C+为前台进行系统的设计。因为成绩管理系统是一项很实用的系统,所面对的数据量很大,所以我们要求系统能够高效快速的处理这些数据,并且要保证数据的正确性、相容性和安全性
6、。所以在数据库中需要定义很多触发器,比如删除了某位同学的信息则删除对应的所有成绩信息、活着删除了某门课程则删除该门课所有的成绩等。C+作为前台是将数据库中的数据读取出来,有助于用户对这些数据进行相应的操作,使操作更方便,更符合用户的要求。所以该系统应该要有一个良好的界面,使用户感觉很直观,使用快捷,这就是用C+所要实现的功能。既然在一个系统中同时涉及到数据库和C+,所以我们要从数据库中读取数据,并且和界面联系起来,同时也能将用户界面上的数据存储到数据库中。以上是设计此系统应该注意的地方和设计原则,以下就是遵循这些原则和标准设计出的一套完整的管理系统。关键词:SQL Server;成绩管理;MF
7、C绪论本课程设计是在学习了数据库系统A和以前学过的C+等相关软件课程后,通过实际的操作来熟悉数据库和相关软件的应用,培养独立的完成对相关课题或者项目的分析能力、设计能力和调试能力。这次的课程设计是继大二开设的C+面向对象课程设计之后的,同样是运用MFC程序来设计。与上次课程设计唯一不同的就是数据的存储位置不同。在大二下学期开设的课程设计中,我们主要是将数据保存到数据文件当中,而这次课程设计我们要将数据保存到数据库中。所以我们要解决的首要问题就是如何将数据库中的数据导出来,这也是我们这次课程设计的关键,因为其他的操作我们在学面向对象程序设计C+时已经练习过。这次的课程设计中,着重培养的是学生的自
8、学能力,以及独立分析互联网上和图书馆里的各种资料,用来丰富自己的知识并且提高对SQL、VC+等软件的实际操作能力。通过这次的课程设计,使我们对已经学习过的数据库课程的进一步的掌握,对知识进行最大程度的消化融汇。因此这次的课程设计对我们来说具有非常重要的作用:为以后学生工作做必要的准备和实践,提高自身对数据库开发的能力。学生成绩管理系统,在系统中分为大的两个个方面:一是学生信息的增删改,二是学生成绩的增删改。(1)用户进入系统后,可以查询相应学号的学生的信息,可以增加、删除、修改学生信息。(2)用户可以录入学生的成绩,只需输入对应的学号和课程号以及成绩,简单易操作,并且可以对记录进行增、删、改操
9、作。此次设计的学生成绩管理系统,虽然简单,但是却十分实用,极大的方便了用户对学生信息和成绩的操作,节省了大量的工作量。第1章 数据库设计1.1 需求分析1.1.1 数据需求学生成绩管理系统需要完成的主要功能有:1.学生的基本信息录入,包括学号、姓名、性别、出生时间、专业、总学分、备注、地址。2.课程信息表的录入,包括课程号、课程名,学分。3.成绩信息表的查询、插入、修改、删除等操作,包括课程号、学号、成绩。1.1.2 数据字典表1 学生信息表(XSB)结构项目名列名数据类型可空默认值说明学号XHChar6NOT NULL无主键姓名XMChar8NOT NULL无性别XBChar2NULL无出生
10、时间CSSJDatetimeNULL无专业ZYCharNULL无总学分ZXFIntNULL00总学分160备注BZVarchar500NULL无地址DZxmlNULL无表2 课程信息表(KCB)结构项目名列名数据类型可空默认值说明课程号KCHChar3NOT NULL无主键课程名KCMChar16NOT NULL无学分XFtinyintNULL0表3 成绩表(CJB)结构项目名列名数据类型可空默认值说明学号XHChar6NOT NULL无主键课程号KCHChar3NOT NULL无主键成绩CJintNULL01.1.3 数据流程图图1 数据流程图1.2 概念分析在以上需求分析的基础上,设计出该
11、系统的E-R图以及各数据项之间的关系模式,则得出学生表E-R图:图2 学生表E-R图课程表E-R图:图3 课程表E-R图成绩表E-R图图4 成绩表E-R图所以得出总的E-R图:图5 总E-R图1.3 逻辑结构设计关系模型:学生表 (XH, XM, XB, CSSJ, ZY, ZXF, BZ, DZ);课程表 (KCH, KCM, XF);成绩表 (XH, KCH, CJ)1.4 物理实施1.4.1 创建数据库CREATE DATABASE PXSCJON PRIMARY (NAME= 'PXSCJ_data', FILENAME='F:数据库课程设计数据源PXSCJ.m
12、df', SIZE=10 , MAXSIZE=UNLIMITED , FILEGROWTH=5) LOG ON (NAME= 'PXSCJ_log', FILENAME='F:数据库课程设计数据源PXSCJ.LDF', SIZE=5 , MAXSIZE=UNLIMITED , FILEGROWTH=20%)1.4.2 创建数据表创建学生信息表:USE PXSCJGOCREATE TABLE XSB(XH CHAR(6) NOT NULL PRIMARY KEY,XM CHAR(8) NOT NULL,XB CHAR(2) NULL CHECK(XB=
13、39;男' OR XB='女'),CSSJ DATETIME NULL,ZY CHAR(12) NULL,ZXF INT NULL DEFAULT 0 CHECK(ZXF>=0 AND ZXF<160),BZ VARCHAR(500)NULL,DZ VARCHAR(500)NULL创建课程信息表:CREATE TABLE KCB(KCH CHAR(3) NOT NULL PRIMARY KEY,KCM CHAR(16) NOT NULL,XF TINYINT NOT NULL DEFAULT 0)创建成绩表:CREATE TABLE CJB(XH CHAR(
14、6) NOT NULL ,KCH CHAR(3) NOT NULL ,CJ INT NULL DEFAULT 0 CHECK(CJ>=0 AND CJ<=100)1.4.3 像数据表中插入数据学生信息表部分数据如图6:图:6 学生信息表部分数据课程信息表数据如图7:图7 课程信息表数据成绩表部分数据如图8:图8 成绩表部分数据1.4.4 创建视图USE PXSCJGOCREATE VIEW XS_KC_CJASSELECT XSB.XH,XSB.XM,KCB.KCH,KCB.KCM,CJB.CJFROM KCBINNER JOIN CJB ON KCB.KCH=CJB.KCHINN
15、ER JOIN XSB ON XSB.XH=CJB.XH1.4.5 触发器和完整性约束删除学生对应成绩记录(使用触发器实现)实现功能:当删除学生记录后,同步删除成绩表(CJB)该学生的成绩记录。可以通过创建学生表(XSB)的DELETE触发器实现此功能。触发器语句如下:CREATE TRIGGER CHECK_XSB_CJB ON XSBFOR DELETEASDELETE FROM CJB WHERE XH IN(SELECT XH FROM DELETED)删除课程对应成绩记录(使用完整性约束实现)实现功能:当删除课程记录后,同步删除成绩表(CJB)中所有学生该课程的成绩记录。语句如下:A
16、LTER TABLE CJB WITH CHECK ADD CONSTRAINT FK_CJB_KCB FOREIGN KEY(KCH)REFERENCES KCB(KCH)ON DELETE CASCADE用触发器验证输入数据实现功能:当向成绩表(CJB)表插入一条记录时,检查该记录的“学号”在学生表中是否存在,检查“课程号”在课程表(KCB)中是否存在。若有一项为否,则不允许插入。触发器语句如下:CREATE TRIGGER DBO.CHECK_XSB_KCB ON DBO.CJBFOR INSERTASIF EXISTS (SELECT XH FROM INSERTED WHERE NO
17、T EXISTS(SELECT XH FROM XSB WHERE INSERTED.XH=XSB.XH)OR EXISTS (SELECT KCH FROM INSERTED WHERE NOT EXISTS(SELECT KCH FROM KCB WHERE INSERTED.KCH=KCB.KCH)ROLLBACK TRANSACTION1.4.6 存储过程存储过程名为CJ_Data。参数:学号(in_xh)、课程号(in_kch)和成绩(in_cj)。实现功能:根据存储过程的3个参数,对指定学号、课程号的学生成绩进行增、删、改。编写思路:(1) 根据课程号查询该课程对应的学分。(2)
18、根据学号和课程号查询该成绩记录,删除原来成绩记录。如果成绩>=60,则该学生总学分减去该课程的学分。(3) 如果新成绩=-1(表示删除该成绩记录),则储存过程结束。(4) 增加成绩记录,如果成绩>=60,则该学生总学分加上该课程的学分。存储过程如下:CREATE PROCEDURE CJ_Date(in_xh CHAR(6),in_kch CHAR(3),in_cj INT)ASSET NOCOUNT ONDECLARE in_count INTDECLARE in_xf TINYINTDECLARE in_cjb_cj INTSET in_xf=(SELECT XF FROM K
19、CB WHERE KCH=in_kch)SET in_count=(SELECT COUNT(*) FROM CJB WHERE XH=in_xh AND KCH=in_kch)SET in_cjb_cj=(SELECT CJ FROM CJB WHERE XH=in_xh AND KCH=in_kch)IF(in_count>0)BEGINDELETE FROM CJB WHERE XH=in_xh AND KCH=in_kchIF(in_cjb_cj>60)BEGINUPDATE XSB SET ZXF=ZXF-in_xf WHERE XH=in_xhENDENDIF(in_c
20、j!=-1)BEGININSERT INTO CJB VALUES(in_xh,in_kch,in_cj)IF(in_cj>60)BEGINUPDATE XSB SET ZXF=ZXF+in_xf WHERE XH=in_xhENDEND第2章 系统界面设置及主要功能2.1 添加主菜单和功能按钮在项目工作区窗口中选择ResourceView页面,双击资源“Menu”项中的“IDR_MAINFRAME”,则菜单编辑窗口出现在主页面的右面,如图9所示。相应的XSCJ项目的菜单资源被显示出来,在菜单的最后一项,Visual C+为用户留出了一个空位置,用来输入新的菜单项。在此可输入“学生信息管
21、理”“学生成绩管理”和“成绩输入”图9 XSCJ菜单资源同理,双级资源“Toolbar”项中的IDR_MAINFRAME,则工具条编辑器窗口出现在主界面的右面,如图10所示。在此可以添加新的按钮:图10 工具栏编辑窗口2.2 登录界面设置:登录界面设置如图11所示:图11 登录界面登录界面的控件ID和标题设置如表4所示:表4 登陆界面设置ID和标题添加的控件ID号标题其他属性编辑框(用户名)IDC_EDIT1默认编辑框(密码)IDC_EDIT2选中选项password按钮IDOK确定默认按钮IDCANCEL退出默认打开MFC ClassWizad,切换到Member Variables页下添加
22、成员变量,详见表5:表5 登录界面设置控件关联变量ID号变量类型变量名IDOKCstringm_usernameIDCANCELCStringm_passkey背景图片的添加过程为:打开MFC ClassWizad,在Message Maps里添加WM_PAINT和WM_CTLCOLOR函数,函数代码见附录。添加图片的过程如下:在ResourceView中选中一项,单击右键:选择Insert,在“插入资源”中选择Bitmap,单击导入,选择格式为bmp的图片,则在项目工作区窗口会出现一个Bitmap选项,里面又要加入的图片,见图12:图12 插入图片如果用户名或密码错误,则会出现如图13的提示
23、:图13 用户名或密码错误提示如果用户名密码正确,则成功登录系统,如图14:图14 成功登录提示如果点击退出,则有如图15提示:图15 退出系统提示2.3 学生信息增、删、改界面界面设置如图16所示:登录界面的控件ID和标题设置如表6所示:打开MFC ClassWizad,切换到Member Variables页下添加成员变量,详见图17图16 学生信息增、删、改界面表6 登陆界面设置ID和标题添加的控件ID号标题其他属性编辑框(学号)IDC_XH默认编辑框(姓名)IDC_XM默认编辑框(性别)默认男选中“组”编辑框(性别)默认女默认编辑框(出生时间)默认默认编辑框(专业)IDC_ZY默认编辑
24、框(备注)IDC_BZ默认编辑框(地址)IDC_DZ默认按钮IDC_ADD添加默认按钮IDC_SEARCH查找默认按钮IDC_DELETE删除默认按钮IDC_EXIT退出默认按钮IDC_CHECK检查您输入的学号是否存在默认图17 为控件添加数据成员建立头文件StuConStr.h,在其定义本应用系统在后续编程中一直要用使用的连接字符串宏常量SQLCONSTR。具体代码见附录。输入学号对学生进行添加功能,若学号已存在,则弹出系统消息,如图18图18 重复添加相同学号学生信息的系统提示若输入数据表中不存在的学号的学生信息,则弹出“添加成功”的系统信息,如图19:图19 添加成功系统消息对学生信息
25、进行查询时,如果不存在要查询的学号,则弹出如图20系统消息:图20 查询非数据表中学号的学生信息的系统消息如果要查询的学生的学号存在,则直接在显示在各个控件中,如查询学号为081106的学生,得到图21:图21 查询结果在对学生信息进行修改时,可以先查询该学生的信息,再点击修改按钮,修改成功,出现图22提示:图22 修改成功提示在对学生信息进行删改成功,则出现图23提示:图23 修改成功系统消息2.4 对学生信息多角度查询点击菜单栏上的“学生信息管理”或工具栏上的“信”,可以对学生信息进行多角度查询。在此界面中,可以按学号查询学生信息,也可以按姓名查找学生信息,并且可以按系部来看全系学生的基本
26、信息情况。基本界面如图24所示:图24 学生信息多角度查询界面设置此对话框的方法为:在Dialog下插入一个新对话框,有机对话框打开属性,在ID中输入“IDD_STUINFO_MODIFY”,标题为:”学生成绩管理系统学生信息查询修改”。按Ctrl+W快捷键,弹出“添加新类”对话框,单击OK按钮,类名输入“CStuInfoModify”。设置ADODC的属性,在“Command Type”中选择“1-adCmdText”,表示命令为SQL语句。打开DataGrid控件的属性对话框,定位到“全部”页。将DataGrid一栏右边的“DataSource”绑定为ADODC的ID,这里是“IDC_St
27、uADODC”。以后的操作类似,不再重复叙述。登录界面的控件ID和标题设置如表7所示:表7 登陆界面设置ID和标题添加的控件ID号标题其他属性编辑框(学号)IDC_XH默认编辑框(姓名)IDC_XM默认编辑框(专业)IDC_COMBOZY默认DataGrid默认默认见步骤ADODCIDC_StuADODC默认见步骤按钮IDC_BUTSearch查询默认按钮IDOK保存默认按钮IDCANCEL退出默认打开MFC ClassWizad,切换到Member Variables页下添加成员变量,详见图25:图25为控件添加数据成员运行程序,例如查询学号为081101,专业为基础部的学生,点击查询,显示
28、结果如图26所示:图26 查询结果如果系部中不存在要查询的学号或姓名,则出现如图27提示:图27 未找到记录提示2.5 学生成绩的增删改和查询点击菜单栏上的“学生成绩管理”下拉菜单中的“成绩录入”或工具栏上的“成绩录入”,即可进入学生成绩增删改和查询的界面,如图28所示:图28 学生成绩增删改和查询的界面登录界面的控件ID和标题设置如表8所示:表8 登陆界面设置ID和标题添加的控件ID号标题其他属性编辑框(按查找)IDC_COMBO1默认编辑框(请输入)IDC_EDIT1默认编辑框(学号)IDC_EDIT2默认编辑框(课程号)IDC_EDIT3默认编辑框(成绩)IDC_EDIT4默认DataG
29、ridIDC_DATAGRID1见步骤ADODCIDC_ADODC1见步骤按钮IDC_BUTTON1查询默认按钮IDC_BUTTON2添加默认按钮IDC_BUTTON3修改默认按钮IDC_BUTTON4删除默认按钮IDC_BUTTON5退出默认打开MFC ClassWizad,切换到Member Variables页下添加成员变量,详见图29。图29 为控件添加数据成员对学生成绩的查询,可以按照不同的方式:姓名、学号、课程名、课程号,极大的方便了用户的使用,如按照课程名“计算机基础”进行查询时,课得到如图30所示的结果:图30 成绩查询结果对学生成绩添加时,如果学号或课程号为空,则出现如图31
30、的提示:图31 添加成绩错误提示如果添加的记录存在,则出现图32提示:图32 添加记录存在提示若添加成功,则出现图33提示,并且记录更新到该界面左边的表格中:图33 添加成功提示对成绩进行修改时,如果修改的记录不存在,则弹出图34提示图34 修改记录不存在提示如果修改成功,则出现图35提示,点击确定后,系统更新到左边的表格中:图35 修改成功提示对成绩记录进行删除时,如果记录不存在,则弹出如图36的消息:图36 删除记录不存在的系统消息如果删除成功,则弹出“删除成功”的系统消息,并且更新到左边的表中,如图37:图37 删除成功系统消息总结通过两周时间做出来的学生管理系统,基本的功能已经实现,如
31、对学生信息的增加、删除、修改、查询以及对学生成绩的增加、删除、修改等,还可以对学生信息和成绩进行多角度查询,节省了大量的工作量。而且设置界面清爽干净,功能及操作一目了然,并且通过对触发器的定义,可以在删除学生信息的同时删除该学生对应的成绩,减少了系统大量的冗余数据。当然,系统也有一些不足之处需要改进,比如系统在运行过程中如果有的地方操作不当,会造成运行错误,这是由于代码中存在一些不合理的地方,以我们现在的知识也许还不知道错误出在哪里,但是相信在不断的学习和积累的过程中我们会慢慢了解。在这两周做课程设计中,收获了很多。因为这次课程设计设计的知识面非常广。从数据库方面来说,涉及到数据库设计的五个步
32、骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计和运行调试,对于常用的SQL语句如查询语句、创建视图、定义触发器、定义完整性约束和存储过程等都进行了一次系统的训练;对于VC+来说,这次进行MFC编程,实现学生成绩管理的各个功能,通过增加对话框、控件、菜单、工具按钮等,对MFC又了进一步的理解,第一次用MFC编程时对MFC的功能等都非常模糊,现在已经系统的了解其控件功能以及程序代码等,而且此次成绩管理系统中首次用到了菜单栏和工具按钮,是以前都没有接触的。而且以前设计MFC都是照着书抄,对其代码的意思完全不懂,现在经过了练习,已经可以达到了举一反三的效果,根据网上或者书籍上的内容,可以自己尝
33、试着编写并运行程序,达到了创新的目的。但是此次课程设计最大的收获不只只是对SQL和MFC更加熟悉和理解了,而是充分锻炼了我们的实际动手操作能力,这是现在大学生最缺乏的能力。平时我们看着书上的实例觉得编程也不过如此,都觉得很简单就可以编好运行,造成了眼高手低的局面。而在实际操作中,会遇到各种各样的问题,而这些问题是书上没有介绍的,这就需要我们独立思考,查询各种资料,尝试着去找出哪里出错了,并且找到解决得办法。锻炼我们独立思考的同时,也培养了我们团结合作的精神,有些问题需要去和周围的同学一起探讨,这样可以得到更好的解决方法。这些独立思考和团队合作精神是我们在学习和工作中必不可少的精神,让我们在学习
34、和工作中取得更高的成就。这也是我们这次课程设计真正的目的所在。经过这次课程设计,提高了我的能力,也让我明白了自己的不足,在今后的学习工作中一定会努力改正。参考文献1 郑阿奇,刘启芬,顾韵华.SQL Server 实用教程.第3版.北京:电子工业出版社,20092 周启涛,高英.Visual C+ 数据库开发基础与应用.第1版.北京:人民邮电出版社,2005附录 程序代码1 StuConStr.h头文件的代码#ifndef _STUCONSTR_H_#define _STUCONSTR_H_#define SQLCONSTR "Provider=SQLOLEDB.1;Integrate
35、d Security=SSPI;Persist Security Info=False;Initial Catalog=PXSCJ;Data Source=."#endif2 登录界面“确定”按钮代码void CLoginDlg:OnOK() / TODO: Add extra validation hereUpdateData(true);if(m_username="")MessageBox("用户名不能为空!请重新输入!","系统消息");return;if(m_username!="李晓媛"|m_
36、passkey!="lixiaoyuan")MessageBox("用户名或密码错误!请重新输入!","系统消息");m_username=""m_passkey=""UpdateData(false);return;elseCDialog:OnOK();3 添加登录界面背景图片的代码void CLoginDlg:OnPaint() CPaintDC dc(this); / device context for painting/ TODO: Add your message handler c
37、ode here /CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP11); /IDB_BITMAP是你自己的图对应的ID BITMAP bitmap; bmpBackground.GetBitmap(&bitmap); CBitmap *pbmpOld=dcMem.SelectObject(&bmpBack
38、ground); dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0, bitmap.bmWidth,bitmap.bmHeight,SRCCOPY); / Do not call COleDBRecordView:OnPaint() for painting messages4 使控件变为透明的代码HBRUSH CLoginDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) /HBRUSH hbr = COleDBRecordView:OnCtlColor(pDC, pW
39、nd, nCtlColor);/ TODO: Change any attributes of the DC here HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor); / TODO: Change any attributes of the DC here / TODO: Return a different brush if the default is not desired if(nCtlColor=CTLCOLOR_STATIC)/对所有的STATIC控件的属性进行设定 pDC->SetBkMode(TRANSPARE
40、NT); return (HBRUSH):GetStockObject(NULL_BRUSH); return hbr;/ TODO: Return a different brush if the default is not desired/return hbr;5 主界面“添加”按钮代码void CXSCJView:OnAdd() / TODO: Add your control notification handler code hereCString strname;strname.Format("Provider=SQLOLEDB.1;Integrated Securit
41、y=SSPI;Persist Security Info=False;Initial Catalog=PXSCJ;Data Source=.");_bstr_t strCnn=strname;tryUpdateData(TRUE);pConnection.CreateInstance (_uuidof(Connection);pConnection->Open(strCnn,"","",NULL);pRs.CreateInstance (_uuidof(Recordset);CString SqlStr;SqlStr.Format (&q
42、uot;select * from XSB where XH='%s'",m_stuXH);pRs->Open (_variant_t(SqlStr),_variant_t(IDispatch*)pConnection,true),adOpenKeyset,adLockOptimistic,adCmdText);if(!pRs->RecordCount=0)MessageBox("您输入的学号已存在,请重新添加!","系统消息");elsepRs->AddNew();pRs->PutCollect(&qu
43、ot;XH",_variant_t(m_stuXH);pRs->PutCollect("XM",_variant_t(m_stuXM);pRs->PutCollect("CSSJ",_variant_t(DATE)m_stuCSSJ);pRs->PutCollect("ZY",_variant_t(m_stuZY);pRs->PutCollect("BZ",_variant_t(m_stuBZ);pRs->PutCollect("DZ",_variant_
44、t(m_stuDZ);if(m_stuXBN=atoi("男")pRs->PutCollect("XB",_variant_t("男");elsepRs->PutCollect("XB",_variant_t("女");pRs->Update();MessageBox("添加成功!","系统消息");pRs->Close();pConnection->Close();catch(_com_error &e)_bstr_
45、t bstrSource(e.Source ();_bstr_t bstrDescription(e.Description ();CString sError;sError.Format ("Source:%Description:%s",(LPCSTR)bstrSource,(LPCSTR)bstrDescription);AfxMessageBox(sError);6 主界面“查找”按钮代码void CXSCJView:OnSearch() _variant_t varFld;CString strname;strname.Format("Provider=
46、SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=PXSCJ;Data Source=.");_bstr_t strCnn=strname;UpdateData(TRUE);pConnection.CreateInstance(_uuidof(Connection);pConnection->Open(strCnn,"","",NULL);pRs.CreateInstance(_uuidof(Recordset);CString
47、SqlStr;SqlStr.Format ("select * from XSB where XH ='%s'",m_stuXH);pRs->Open(_variant_t(SqlStr),_variant_t(IDispatch*)pConnection,true),adOpenKeyset,adLockOptimistic,adCmdText);if(!pRs->RecordCount=0)varFld=pRs->Fields->GetItem("XH")->Value;CString strXH(_T(
48、varFld.bstrVal );strXH.TrimRight();m_stuXH=strXH;varFld=pRs->Fields->GetItem("XM")->Value;CString strXM(_T(varFld.bstrVal );strXM.TrimRight();m_stuXM=strXM;varFld=pRs->Fields->GetItem("ZY")->Value;CString strZY(_T(varFld.bstrVal );strZY.TrimRight();m_stuZY=strZY
49、;varFld=pRs->Fields->GetItem("BZ")->Value;CString strBZ(_T(varFld.bstrVal );strBZ.TrimRight();varFld=pRs->Fields->GetItem("DZ")->Value;CString strDZ(_T(varFld.bstrVal );strDZ.TrimRight();m_stuDZ=strDZ;m_stuBZ=strBZ;varFld=pRs->Fields->GetItem("CSSJ&qu
50、ot;)->Value;CString strCSSJ(_T(varFld.bstrVal );strCSSJ.TrimRight();m_stuCSSJ=varFld.date ;varFld=pRs->Fields->GetItem("XB")->Value;CString sql;sql=(LPCTSTR)(_bstr_t)varFld;if(sql="女") m_stuXBN=1;else m_stuXBN=0;/m_stuXBN=atoi(sql);/AfxMessageBox(sql);UpdateData(FALSE
51、);elseMessageBox("没有您要查找的学号信息!","系统消息");7 主界面“修改”按钮代码void CXSCJView:Onxiugai() UpdateData(TRUE);if(m_stuXH=""|m_stuXM="")MessageBox("学号和姓名不能为空!请重新输入!","系统消息");return;_CommandPtr pCmd=NULL;_variant_t vNULL;vNULL.vt=VT_ERROR;vNULL.scode =DISP
52、_E_PARAMNOTFOUND;CString strname;strname.Format("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=PXSCJ;Data Source=.");_bstr_t strCnn=strname;UpdateData(TRUE);pConnection.CreateInstance(_uuidof(Connection);pConnection->Open(strCnn,"",&q
53、uot;",NULL);pCmd.CreateInstance (_uuidof(Command);pCmd->ActiveConnection =pConnection;CString SqlStr;SqlStr.Format("delete from XSB where XH='%s'",m_stuXH);pCmd->CommandText =(_bstr_t)SqlStr;pCmd->Execute (&vNULL,&vNULL,adCmdText);pConnection->Close();trypC
54、onnection.CreateInstance (_uuidof(Connection);pConnection->Open(strCnn,"","",NULL);pRs.CreateInstance (_uuidof(Recordset);CString SqlStr;SqlStr.Format ("select * from XSB where XH='%s'",m_stuXH);pRs->Open (_variant_t(SqlStr),_variant_t(IDispatch*)pConnection,true),adOpenKeyset,adLockOptimistic,adCmdText);if(!pRs->RecordCount=0)MessageBox(&qu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际融资租赁合同
- 畜牧业合作社养殖废弃物处理协议
- 仅用于招聘面试的工作证明声明(5篇)
- 植物学分类与鉴别能力考核试题
- 行政管理经济法前景展望试题及答案
- 思想政治教育学科授课
- 酒店业服务质量提升与管理手册
- 影视制作公司与剧组合作协议
- 畜牧养殖合作与产品供应保障协议
- 水利水电工程前沿研究领域试题及答案
- 2025版矿山基建项目水土保持方案编制合同范本3篇
- DB37T 1913-2011 金属非金属地下矿山特种作业人员配置
- 玉林师范学院《舞蹈心理学》2023-2024学年第一学期期末试卷
- 2025年日历(日程安排-可直接打印)
- 八角造林项目可行性研究报告-八角种植效益稳步提升
- 脑梗死患者康复期护理
- 【MOOC】奥运裁判教你学规则(排球篮球)-西南交通大学 中国大学慕课MOOC答案
- 维修服务保密协议
- 《大客户销售培训》课件
- 多学科协作危重孕产妇管理制度
- GB 4793-2024测量、控制和实验室用电气设备安全技术规范
评论
0/150
提交评论