版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生信息管理系统
(一)用microsoftofficeaccess创建'一个数据库student。mdb
(图1.1)
在表中添加字段和数据类型,如下图所示:
classinfo:表
字段名称
_►文本班级号
文本
depart所在院系
文本
spedal专北名称
数字
studyyear学制
日和
泄问
entertime入学时间
当Bn木;r
(图1。2)
(aio3)
(图1。4)
创建ODBC数据源
选择控制面板T管理工具T数据源(ODBC)T系统DSN标签T单击“添加”
出现下图所示的界面。选择DrivedoMicrosoftAccess(*<,mdb),单击"完成”.
输入数据源名,单击“选择、、、",选择c/student.mdb单击“确定”,将会出现如图(图1。7)所示。
创建梦数据源
选择您想为其安装数据源的驱动程序6)。
名称
DriverdaMicrosoftparaarquivostext。
DriverdoMicrosoftAccess(*.mdb)
DriverdoMicrosoftdBase(*.dbf)
DriverdoMicrosoftExcel(*.xls)
DriverdoMicrosoftParadox(*.db)
DriverparaoMicrosoftVisualFoxPro
MicrosoftAccessDriver(*.mdb)
Mi_croso£tAccesp-Treiber(*.mdb)______
7]iiiITV
:上一步但)|完成|匚殷消
(图1.5)
选择数据专
数据库名⑥I目录时
student.mdb
student.mdb
Downleads
Intel
□只读®
ProgranFiles口独占国)
temp
文件类型Q)二驱动器W):
Access数据库(*.me▼■c:网络国)..
(图1。6)
(图1。7)
(二)。MFC图形建立
000
(图2。1)
特别注意:创建的应用程序类型是单文档(singledocument应用程序)
MFC应用程序向导,步骤17
您要创建的应用程序类型是:
3单文档母)
「多重文档倒)
「基本对话框Q)
2文档,查看体系结构支持(V)
您的资源使用的语言是:
1市克荷体[中国](APPWZCHSQLLJ三]
<上一步下一步>完成|取消|
(图2.2)
将CSTUDXINXIView的基类改为CScrolIView然后单击“完成
(图2.3)
为数据表创建CRecordSet用户类
按“Ctrl+W”进入“建立类向导(即MFCCIasWizard)”单击"AddCIass。。。”选择“New.・.”
如图(图2。4)所示.按照(图2。5)T(图2。6)T(图2。7)的安装顺序。即可完成创建CRecordSet
用户类的工作。
回
,FCClasswizard
MessageMapsMemberVariablesAutomationActiveXEvents!ClassInfo
:
ProjectClassnameAddCiass...▼
|STUDXINXICMainFrame
2JAddFunction
C:\STUDXINXI\MainFrm.h,C:\STUDXINXI\MainFrm.cpp
ObjectIDs:Messages:DeleteFunction
CMainFrame____________________________ActivateFrame
EditCode
ID_APP_ABOUT三CalcWindowRect
ID_APP_EXITCreate
ID_EDlflCOPYDefWindowProc
ID_EDIT_CUTDestroyWindow
ID_EDIT_PASTEDoDataExchange
ID_EDIT_UNDOxzGetActiveDocumcnt*✓
Memberfunctions:
WOnCreateON_WM_CREATE
VPreCreateWindow
Description:
确定|取消
(图24)
(图2⑸
(图2。6)
(图27)
在stdafx.h文件中添加CRecordSet包含语句:#incIude〈afxdb。h)
如图(图2。8)所示
==:=:=:==二二_=:==:"二=喟山三//bLUdrx.11:inuiuuerxierurbLdiiudru
//orprojectspecificincludefilestl
唱工作区‘STUDXINXI,:1工程
//arechangedinfrequently
-£p]STUDXINXIFiles
//
+_jSourceFiles
T^HeaderFilesttif?deFined(AFX_STDAFX_H_BCAD3C54_FD0:
[g|ClassInFoSet,h"defineAFX_STDAFX_H_BCAD3C54_FD03_4B9:
f]MainFrm.h
E|Resource.httiF_MSC_UER>1000
[g||stdftfxJ?■pragmaonce
ttendiF//_MSC_UER>1000
g)STUDXINXI.h
|g|STUDXINXIDoc.h
itdefineUC_EXTRALEAN//Excludei
[g|STUDXINXIUiew.hlitiin:I(i(1p<<it-x(lh.
-^ResourceFilesttinclude<aFxwin.h>//MFCcore
图STUDXINXI.ico^include<afxext-h>//MFCextei
国STUDXINXI.rc2Itinclude<afxdisp.h>//MFCAutoi
[g|STUDXINXIDoc.icottinclude<aFxdtctl.h>//MFCsupp(
圄Toolbar.bmpItiFndeF_AFX_NO_AFXCMN_SUPPORT
ttinclude<aFxcnn.h>MFCsupp(
圜ReadMe.txt//
ttendiF//AFX^NOAFXCMN_SUPPORT
■»r,人r-uacc人nr,ca・、、
(图2。8)
(三)构建班级信息对话框类
按“Ctrl+R”键,打开“插入资源”,选择dialog(对话框),选择新建。将名字改为IDD_CLASSINFO,标题
为“班级信息输入”.按照(图3.1)添加控件.
添加的控件ID号标题其他属性
编辑框(班级号)IDC_EDIT_CLASSNO默认
编辑框(所在院系)IDC_EDIT_DEPART默认
编辑框(专业)IDC_EDIT_SPECIAL默认
组合框(学制)IDC_COMBO_YEAR默认
日期/时间控件(入学时IDC_DATETIMEPICKER1默认
间)
对于学制框:使用Data页面来添加数据项,按Ctrl+Enter换行.
@
日
■3对话
\翦
叫级号:隔而4
abdl
所在院系:巴
取消|
区(«
国
专业:国
图
函
国
学制:。
》
神
后
I3回
(日
入学时间:12013/11/30
ZJ网
完成控件添加后,选择“建立类向导“,创建一个新类、即CCIassInfoDIg,如图(3.2)所示。
然后按照下图,为控件添加成员变量.
Automation
(图3c2)
(图3。3)
控件ID号变量类别变量类型变量名
IDC_EDIT_CLASSNOVaIueCStringm_strClassNO
IDC_EDIT_DEPARTVaIueCStringm_strDepart
IDC_EDIT_SPECIALVaIueCStringm_strSpeciaI
IDC_COMBO_YEARVaIueCStringm_strYear
IDC_DATETIMEPICKER1VaIuedimem_tEnter
(图3.4)
使用类向导为CCIassInfoDIg类添加WM_INITDIALOG消息映射.
代码位于附录1.见(图3。5)
使用类向导为CCIassInfoDIg类添加ID0K按钮的BN_CLICKED消息映射.
代码位于附录2.见(图3。6)
BOOLCCIassInfoDIg::OnInitDialog()
<
CDialog::OnInitDialog();
e^trainitializationhere
X>_strVear="4";、〃有关于消息映射
|UpdateData(FALSE);
returnTRUE;//returnTRUEunlessyousettheFocustoac(
//EXCEPTION:OCXPropertyPagesshouldreturn
(图3.5)
uoidCClassInfoDlg::0n0K()
<
//TODO:Addextraualidationhere
UpdateData();
nstrClassNO.TrimLeft();
mstrDepart.TrinLeft();
m_strSpecial.TrimLeFt();
if(n_strDepart.IsEmpty())
iiessageBox(,,必须要宥所院系?”);
elseif(n_strSpecial.IsEnpty())
MessageBox,必须要有班级,”);
else
if(n_strClassNO.IsEnpty())
HessageBox(“必须要有班级号?・,);
else
CDialoq::0n0K():
(图3.6)
鉴于添加代码都是从类向导找到相应的代码区域,以后就不详细截图了。
(四)实现班级基本信息添加和显示功能
为CSTUDXINXIView类添加一个LOGFONT型成员变量m」fFont
选择AddMemberVariable.o.出现(图4。1)所示输入下面表格的变量类型和名称即可.
连续三次。
变量类型变量名称
LOGFONTm_IfFont
CStringm_strClassNO
CStringm_strSQL
在CSTUDXINXIView::CSTUDXINXIView()添加代码。
代码位于附录3.
(图4.1)
添加一个成员函数
如(图4。2)所示。
(S4o2)
添加代码,位于附录4。
在STUDXINXIView。cpp文件的前面添加CCIassInf。类的包含语句:#include”ClassInfoSet。h
打开菜单资源,添加如(图4.3)所示的菜单项。
文件⑹编蚩⑥查看⑨帮助(H)信息城入①厂……
班级信息嘘入©
(图4。3)
用类向导为CSTUDXINXIView类添加该菜单项的COMMAND消息映射,并添加代码.
代码位于附录5
在CSTUDXINXIView::OnDraw函数添加代码。
代码位于附录6
在STUDXINXIView。cpp文件的前面添加ClassInfoDIg类的包含语句:
#incIude"ClassInfoDIg.h"
(五)查询班级信息
添加一个新的对话资源框,名字改为ID.SEEKCLASS标题定为“查询班级信息,按照下面的表格添加控件.
布局如(图5O1所示)
添加的控件ID号标题其他属性
单选按钮(按所在院系)IDC_RADIO1默认
单选按钮(按专业)IDC_RADIO2默认
编辑框IDC_EDIT1默认
Aa
□
区
国
HE]
金
1O-1
图
a
(图5.1)
建立新美,为IDC_EDIT1添加一个CString型变量m_strSeek
为CSeekClassDIg类添加消息映射,代码位于附录7
为CSeekClassDIg类添加CString型成员变量m_strSQL
用类向导为IDOK按钮添加消息映射。
代码位于附录8
打开菜单资源,添加菜单项如(图5.2)所示。
用类向导添加消息映射.
代码位于附录9
在STUDXINXIView。cpp文件的前面添加包含语句:#incIude"SeekCIassDIgoh"
工■▼掺幽!Hl四
0帮助口信息域入(D信息宜洵⑼
查询班级信息⑤
(图5.2)
运行,编译。
附录:
1
m_strYear二"4”;〃有关于消息映射
UpdateData(FALSE);
2
UpdateData();
m_strCIassNO.TrimLeft();
m_strDepartoTrimLeft();
m_strSpeciaI.TrimLeft();
if(m_strDepartoIsEmpty())
MessageBox("必须要有所院系!”);
eIseif(m_strSpecial。IsEmpty())
MessageBox("必须要有班级!”);
eIse
if(m_strCIassNO.IsEmpty())
MessageBox("必须要有班级号!");
eIse
3
memset(&m_lfFont,0,sizeof(LOGFONT));
m_IfFont.lfHeight=12;
m_IfFont.IfCharSet=GB2312_CHARSET:
strcpy(m_lfFontoIfFaceName,”宋体”);
m_strCIassN0=m_strSQL="w;
4
CFontfont;
LOGFONTlf=m_lfFont;
IfoIfWeight=700;
strcpy(If.IfFaceName,"幼圆");
font.CreateFontIndirect(&lf);
TEXTMETRICtm;
pDC—〉GetTextMetrics(&tm);
intnLineHeight=(int)((tm0tmHeight+tm.tmExternaILeading)*1o5);
〃行高为1o5倍字符高度
intx=0,y=0,nWidth;
CFont*oIdFont=pDC—>SeIectObject(&font);//使用新字体
〃揄出表头
CStringstrHeader[]:]“班级号","所在院系",”专业名称学制",“入学时间”};
intnStrWidth[]={10,25,25,8,10);
CCIassInfoSetcSet;
cSet.m_strFilter=strSQL;
cSetoOpen();
for(UINTi=0;i<cSetomnFields:i++)
(-
〃计笄每一个字段所需的长度
nWidth=tm.tniAveCharWidlh*nStrWidth[i];
pDC—>Text0ut(x,y,strHeader[i]);
x+二nWidth;
1
pDC—〉SelectObject(oldFont);
〃显示具体内容
CStringstr;
while(!cSet0IsEOF())
(
if(strClass-cSetom_clsssno)
{
〃这是要强调显示的班级
If.IfWeight=0;
strcpy(IfoIfFaceNane,v楷体_GB2312”);
fontoDeIeteObject0;
font.CreateFontIndirect(&If);
pDC-)SeIectObject(&font);
)
eIse
pDC->SeIectObject(oIdFont);〃使用原来的字体
x=0;y+=nLineHeight;
for(UINTi=0;i<cSet.m_nFields;i++)
(
cSetoGetFieldValue(i,str);
〃计算每一个字段需要的长度
nWidth=tm.tmAveCharWidth*nStrWidth[i];
pDC-)TextOut(x,y,str);
x+=nWidth;
}
cSetoMoveNext();
]
cSetoClose();
〃设置视图滚动大小
CSizesizeTotaI;
sizeTotaI<>ex=x+nWidth;sizeTotaI.cy=y+nLineHeight;
SetScroIISizes(MM_TEXT,sizeTotaI);
5
CCIassInfoDIgdig;
if(dIgoDoModaI()!=lDOK)return;
〃向classinfo表添加新的记录,为了防止添加相同的记录,这里先来判断
CClassInfoSetinfoSet;
infoSet.m_strFiI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年港口消防系统布局与消防能力建设规划
- 2026年电梯安装项目质量管理方案
- 2026年社区邻里中心的竞争环境与服务集成研究
- 2026年企业字号与商标冲突应对策略
- 怀念母亲教学设计6篇
- 肉芽肿性菌病治疗流程
- 难治性高血压的综合管理策略培训
- 支气管哮喘急性发作应急救治措施
- 2025年公务员(保障性住房后续管理)试题及答案
- 鼻窦炎保守治疗措施培训
- GB/Z 45463-2025热喷涂涂层孔隙率的测定
- 《三维点云:原理、方法与技术》笔记
- 中考英语:近三年中考英语530个高频词非常重要
- GB/T 45071-2024自然保护地分类分级
- 【MOOC】宋词经典-浙江大学 中国大学慕课MOOC答案
- 福建师范大学《宪法学》2021-2022学年第一学期期末试卷
- 计算机系统结构曹强习题答案
- 第5课《大自然的语言》课件++2023-2024学年统编版八年级语文下册
- 有创血压测量操作评分标准
- 数据排序课件浙教版高中信息技术选修1
- python课件第三章基本数据类型:数字类型及math库的应用
评论
0/150
提交评论