MFC开发学生信息管理系统.docx

上传人:b****5 文档编号:27724855 上传时间:2023-07-04 格式:DOCX 页数:12 大小:17.38KB
下载 相关 举报
MFC开发学生信息管理系统.docx_第1页
第1页 / 共12页
MFC开发学生信息管理系统.docx_第2页
第2页 / 共12页
MFC开发学生信息管理系统.docx_第3页
第3页 / 共12页
MFC开发学生信息管理系统.docx_第4页
第4页 / 共12页
MFC开发学生信息管理系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

MFC开发学生信息管理系统.docx

《MFC开发学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《MFC开发学生信息管理系统.docx(12页珍藏版)》请在冰豆网上搜索。

MFC开发学生信息管理系统.docx

MFC开发学生信息管理系统

学生信息管理系统

(一)用microsoftofficeaccess创建一个数据库

(图)

 

 

在表中添加字段和数据类型,如下图所示:

(图)

(图)

 

(图)

 

创建ODBC数据源

选择控制面板→管理工具→数据源(ODBC)→系统DSN标签→单击“添加”

出现下图所示的界面。

选择DrivedoMicrosoftAccess(*.mdb),单击“完成”。

输入数据源名,单击“选择、、、”,选择c/单击“确定”,将会出现如图(图)所示。

(图)

 

(图)

 

(图)

 

(二).MFC图形建立

 

(图)

 

特别注意:

创建的应用程序类型是单文档(singledocument应用程序)

 

(图)

 

将CSTUDXINXIView的基类改为CScrollView然后单击“完成”。

(图)

为数据表创建CRecordSet用户类

按“Ctrl+W”进入“建立类向导(即MFCClasWizard)”单击“AddClass...”选择“New...”如图(图)所示.按照(图)→(图)→(图)的安装顺序。

即可完成创建CRecordSet用户类的工作。

(图)

(图)

 

(图)

(图)

在文件中添加CRecordSet包含语句:

#include<>

如图(图)所示

 

(图)

(三)构建班级信息对话框类

按“Ctrl+R”键,打开“插入资源”,选择dialog(对话框),选择新建。

将名字改为IDD_CLASSINFO,标题为“班级信息输入”。

按照(图)添加控件。

添加的控件

ID号

标题

其他属性

编辑框(班级号)

IDC_EDIT_CLASSNO

默认

编辑框(所在院系)

IDC_EDIT_DEPART

默认

编辑框(专业)

IDC_EDIT_SPECIAL

默认

组合框(学制)

IDC_COMBO_YEAR

默认

日期/时间控件(入学时间)

IDC_DATETIMEPICKER1

默认

对于学制框:

使用Data页面来添加数据项,按Ctrl+Enter换行。

 

(图)

完成控件添加后,选择“建立类向导”,创建一个新类、即CClassInfoDlg,如图()所示。

然后按照下图,为控件添加成员变量。

(图)

(图)

控件ID号

变量类别

变量类型

变量名

IDC_EDIT_CLASSNO

Value

CString

m_strClassNO

IDC_EDIT_DEPART

Value

CString

m_strDepart

IDC_EDIT_SPECIAL

Value

CString

m_strSpecial

IDC_COMBO_YEAR

Value

CString

m_strYear

IDC_DATETIMEPICKER1

Value

CTime

m_tEnter

(图

使用类向导为CClassInfoDlg类添加WM_INITDIALOG消息映射。

代码位于附录1。

见(图)

使用类向导为CClassInfoDlg类添加IDOK按钮的BN_CLICKED消息映射。

代码位于附录2。

见(图)

(图)

(图)

鉴于添加代码都是从类向导找到相应的代码区域,以后就不详细截图了。

 

(四)实现班级基本信息添加和显示功能

为CSTUDXINXIView类添加一个LOGFONT型成员变量m_lfFont

选择AddMemberVariable...出现(图)所示输入下面表格的变量类型和名称即可。

连续三次。

变量类型

变量名称

LOGFONT

m_lfFont

CString

m_strClassNO

CString

m_strSQL

在CSTUDXINXIView:

:

CSTUDXINXIView()添加代码。

代码位于附录3.

(图)

添加一个成员函数

如(图)所示。

(图)

添加代码,位于附录4.

在文件的前面添加CClassInfo类的包含语句:

#include""

打开菜单资源,添加如(图)所示的菜单项。

(图)

用类向导为CSTUDXINXIView类添加该菜单项的COMMAND消息映射,并添加代码。

代码位于附录5

在CSTUDXINXIView:

OnDraw函数添加代码。

代码位于附录6

在文件的前面添加ClassInfoDlg类的包含语句:

#include""

(五)查询班级信息

添加一个新的对话资源框,名字改为ID_SEEKCLASS标题定为“查询班级信息”。

按照下面的表格添加控件。

布局如(图所示)

添加的控件

ID号

标题

其他属性

单选按钮(按所在院系)

IDC_RADIO1

默认

单选按钮(按专业)

IDC_RADIO2

默认

编辑框

IDC_EDIT1

默认

(图)

建立新类,为IDC_EDIT1添加一个CString型变量m_strSeek

为CSeekClassDlg类添加消息映射,代码位于附录7

为CSeekClassDlg类添加CString型成员变量m_strSQL

用类向导为IDOK按钮添加消息映射。

代码位于附录8

打开菜单资源,添加菜单项如(图)所示。

用类向导添加消息映射。

代码位于附录9

在文件的前面添加包含语句:

#include""

(图)

运行,编译。

附录:

1

m_strYear="4";//有关于消息映射

UpdateData(FALSE);

2

UpdateData();

();

();

();

if())

MessageBox("必须要有所院系!

");

elseif())

MessageBox("必须要有班级!

");

else

if())

MessageBox("必须要有班级号!

");

else

3

memset(&m_lfFont,0,sizeof(LOGFONT));

=12;

=GB2312_CHARSET;

strcpy,"宋体");

m_strClassNO=m_strSQL="";

4

CFontfont;

LOGFONTlf=m_lfFont;

=700;

strcpy,"幼圆");

(&lf);

TEXTMETRICtm;

pDC->GetTextMetrics(&tm);

intnLineHeight=(int)(+*;

//行高为倍字符高度

intx=0,y=0,nWidth;

CFont*oldFont=pDC->SelectObject(&font);//使用新字体

//输出表头

CStringstrHeader[]={"班级号","所在院系","专业名称","学制","入学时间"};

intnStrWidth[]={10,25,25,8,10};

CClassInfoSetcSet;

=strSQL;

();

for(UINTi=0;i<;i++)

{

//计算每一个字段所需的长度

nWidth=*nStrWidth[i];

pDC->TextOut(x,y,strHeader[i]);

x+=nWidth;

}

pDC->SelectObject(oldFont);

//显示具体内容

CStringstr;

while(!

())

{

if(strClass==

{

//这是要强调显示的班级

=0;

strcpy,"楷体");

();

(&lf);

pDC->SelectObject(&font);

}

else

pDC->SelectObject(oldFont);//使用原来的字体

x=0;y+=nLineHeight;

for(UINTi=0;i<;i++)

{

(i,str);

//计算每一个字段需要的长度

nWidth=*nStrWidth[i];

pDC->TextOut(x,y,str);

x+=nWidth;

}

();

}

();

//设置视图滚动大小

CSizesizeTotal;

=x+nWidth;=y+nLineHeight;

SetScrollSizes(MM_TEXT,sizeTotal);

5

CClassInfoDlgdlg;

if()!

=IDOK)return;

//向classinfo表添加新的记录,为了防止添加相同的记录,这里先来判断

CClassInfoSetinfoSet;

"classno='%s'ANDdepart='%s'",,,;

();

if(!

())

{

MessageBox+"班级记录已被添加过!

!

!

");//if())();

return;

}

if())

();

CClassInfoSetaddSet;

if())

{

//添加一个新的记录

();

=;

=;

=;

=(float)atof;

=;

();

();

}

if())

();

//更新视图

m_strClassNO=;m_strSQL="";

MessageBox("稍等几分钟后,单击“确定”按钮!

O(∩_∩)O谢谢","特别提示",MB_OK|MB_ICONINFORMATION);

Invalidate();//重新调用OnDraw

6

CFontfont;

(&m_lfFont);

CFont*oldFont=pDC->SelectObject(&font);

DispClassInfo(pDC,m_strClassNO,m_strSQL);

pDC->SelectObject(oldFont);

7

CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1);

8

UpdateData();

();

if())

{

MessageBox("查询内容不能为空!

");

return;

}

intnID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);

if(nID==IDC_RADIO1)

("depart='%s'",m_strSeek);

else

("special='%s'",m_strSeek);

9

CSeekClassDlgdlg;

if()==IDOK){

m_strClassNO="";

m_strSQL=;

Invalidate();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1