C++期末论文-学生成绩管理程序Word文件下载.doc

上传人:b****2 文档编号:14570175 上传时间:2022-10-23 格式:DOC 页数:14 大小:1.11MB
下载 相关 举报
C++期末论文-学生成绩管理程序Word文件下载.doc_第1页
第1页 / 共14页
C++期末论文-学生成绩管理程序Word文件下载.doc_第2页
第2页 / 共14页
C++期末论文-学生成绩管理程序Word文件下载.doc_第3页
第3页 / 共14页
C++期末论文-学生成绩管理程序Word文件下载.doc_第4页
第4页 / 共14页
C++期末论文-学生成绩管理程序Word文件下载.doc_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C++期末论文-学生成绩管理程序Word文件下载.doc

《C++期末论文-学生成绩管理程序Word文件下载.doc》由会员分享,可在线阅读,更多相关《C++期末论文-学生成绩管理程序Word文件下载.doc(14页珍藏版)》请在冰豆网上搜索。

C++期末论文-学生成绩管理程序Word文件下载.doc

字段名称

数据类型

字段大小

小数位

字段含义

1

studentname

文本

20

姓名

2

studentno

10

学号

3

xb

是/否

性别

4

birthday

日期/时间

出生年月

5

special

50

专业

表2学生课程成绩表(score)结构

8

course

7

课程号

score

数字

单精度

成绩

credit

学分

表3课程信息表(course)结构

courseno

所属专业

coursename

课程名

coursestype

课程类型

openterm

字节

开课学期

6

hours

课时数

二、程序框架界面及其添加的类

1.为上述数据库添加并创建一个ODBC数据源

⑴打开控制面板中的管理工具,如图1所示。

图1管理工具

(2)双击ODBC图标,进入ODBC数据管理器,如图2所示。

在这里,用户可以设置一些ODBC数据源的一些信息。

图2ODBC数据源管理器

(3)创建用户DSN

①单击“添加”按钮,弹出有一驱动程序列表的“创建新数据源”对话框,如图3所示。

在这里选择“MicosoftAccessDriver”。

图3“创建新数据源”对话框

②单击“完成”按钮,进入指定驱动程序的ODBCAccess安装对话框,单击“选择”按钮,然后在数据源名输入“student”,如图4所示。

图4ODBCAccess安装对话框

③单击“确定”按钮,刚才创建的用户数据源已被添加在“ODBC数据源管理器”的“用户数据源”列表中,如图5所示。

图5“用户数据源”列表

2.用MFCAppWizard创建一个单文档应用程序student,在向导的第6步选择基类CListView。

3.在应用程序项目中,用ClassWizard为数据表student、score、course创建并添加CRecordSet的派生类:

CStudentSet、CScoreSet和CCourseSet。

4.添加一个对话框资源IDD_STUINFO,用于学生信息数据的添加和修改。

如图6所示为“学生信息”对话框,创建的对话框类为CStuInfoDlg。

并依次为“学生信息”对话框的控件添加成员变量,如图7所示。

图6“学生信息”对话框

图7“学生信息”对话框添加成员变量

5.添加一个对话框资源IDD_SCORE,用于学生课程成绩数据的添加和修改。

如图8所示为“学生成绩”对话框,创建的对话框类为CscoreDlg。

并依次为“学生成绩”对话框的控件添加成员变量,如图9所示。

图8“学生成绩”对话框

图9为“学生成绩”对话框添加成员变量

6.添加一个对话框资源IDD_COURSE,用于课程信息数据的添加和修改。

如图10所示为“课程信息”对话框,创建对话框类为CCourseDlg。

并依次为“课程信息”对话框的控件添加成员变量,如图11所示。

图10“课程信息”对话框

图11为“课程信息”对话框添加成员变量

7.设计菜单项和工具栏,如图12所示。

图12菜单栏和工具栏

三、主要代码分析

1.用MFCClassWizard为CStuInfoDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码:

BOOLCStuInfoDlg:

:

OnInitDialog()

{

CDialog:

OnInitDialog();

if(m_strSex=="

女"

CheckRadioButton(IDC_RADIO_M,IDC_RADIO_W,IDC_RADIO_W);

else

CheckRadioButton(IDC_RADIO_M,IDC_RADIO_W,IDC_RADIO_M);

m_strOKText.TrimLeft();

GetDlgItem(IDOK)->

SetWindowText(m_strOKText);

if(m_strOKText=="

修改"

{

GetDlgItem(IDC_EDIT_NAME)->

EnableWindow(FALSE);

GetDlgItem(IDC_EDIT_NO)->

}

returnTRUE;

}

2.用MFCClassWizard为CStuInfoDlg类添加IDOK按钮的BN_CLILKED消息映射,并添加下列代码:

voidCStuInfoDlg:

OnOK()

UpdateData();

m_strName.TrimLeft();

m_strNO.TrimLeft();

if(m_strName.IsEmpty())

MessageBox("

必须有姓名!

"

);

elseif(m_strNO.IsEmpty())

必须有学号!

3.为Cjy001View类添加一个成员函数DispAllRec,用于显示指定数据表的所有记录,并指定字段排序,strFiled默认参数值为"

其代码如下:

voidCjy001View:

DispAllRec(CStringtablename,CStringstrFiled)

CListCtrl&

m_ListCtrl=GetListCtrl();

m_ListCtrl.DeleteAllItems();

intnColumnCount=m_ListCtrl.GetHeaderCtrl()->

GetItemCount();

for(inti=0;

i<

nColumnCount;

i++)

m_ListCtrl.DeleteColumn(0);

_CommandPtrpCmd;

pCmd.CreateInstance(__uuidof(Command));

pCmd->

ActiveConnection=m_pConnection;

CStringstrText;

strField.TrimLeft();

if(strField.IsEmpty())

strText.Format("

SELECT*FROM%s"

tablename);

strText.Format("

SELECT*FROM%sORDERBY%s"

tablename,strField);

CommandText=_bstr_t(strText);

_RecordsetPtrpSet;

pSet.CreateInstance(__uuidof(Recordset));

pSet=pCmd->

Execute(NULL,NULL,adCmdText);

FiledsPtrflds=pSet->

GetFields();

_variant_tIndex;

Index.vt=VT_I2;

m_ListCtrl.InsertColumn(0,"

序号"

LVCEMT_LEFT,40);

for(i=0;

(int)flds->

GetCount();

Index.iVal=i;

intnWidth=flds->

GetItem(Index)->

GetDefineSize()*9;

if(nWidth<

40)nWidth=40;

m_ListCtrl.InsertColumn(i+1,(LPSTR)flds->

GetName(),LVSFMT_LEFT,nWidth);

}_bstr_tstr,value;

intnItem=0;

CStringstrItem;

while(!

pSet->

adoEOF)

strItem.Format("

%d"

nItem+1);

m_ListCtrl.InsertItem(nItem,strItem);

for(i=0;

{

Index.iVal=i;

str=flds->

GetName();

value=pSet->

GetCollect(str);

m_ListCtrl.SetItemText(nItem,i+1,(LPSTR)value);

}

pSet->

MoveNext();

nItem++;

pSet->

Close();

4.用MFCClassWizard为Cjy001View类添加该菜单的COMMAND消息映射,并添加下列代码:

voidCjy001View:

OnStuinfoAdd()

//TODO:

Addyourcommandhandlercodehere

CStuInfoDlgdlg;

if(dlg.DoModal()!

=IDOK)return;

strText.Format("

SELECT*FROMstudentWHEREstudentname='

%s'

ANDstudentno='

dlg.m_strName,dlg.m_strNO);

CommandText=_bstr_t(str

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

当前位置:首页 > PPT模板 > 动态背景

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

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