C++ 实验五总结报告
实验十三 数据库(1)
实验目的和要求
对于大量数据处理,采用数据库更为安全简便。例如,对于学生信息管理系统,常常需要处理学生的基本信息、课程成绩以及课程信息等,这些信息用数据库表的形式来描述更为清晰。本实验将在列表视图的显示视图中显示学生的基本信息内容。
(1)用Microsoft Access 2003创建一个数据库main.mdb,含有4个数据表:学生基本信息表student、课程信息表course、课程成绩表score和专业数据表special(具体表结构见教材附录),并建立ODBC联接。
(2)创建学生课程成绩表score的CRecordSet派生类CScoreSet。
(3)在主菜单中添加“课程成绩(&S)”顶层菜单,在该菜单添加“添加(&A)”、“删除(&D)”和“修改(&C)”子菜单。
(4)选择“添加”菜单命令,弹出“学生课程成绩”对话框,单击“添加”按钮,在score表中添加一条记录,并自动更新列表视图显示的内容。如图9.1所示。
图9.1 学生课程信息输入及显示
图9.2 学生课程信息修改及显示
(5)当选定列表视图中的某个列表项后,选择“删除”菜单命令,弹出消息对话框,询问是否确认删除,单击“确定”后,当前选择的列表项所在的数据表记录被删除,并自动更新列表视图显示的内容。 (6)当选定列表视图中的某个列表项后,选择“修改”菜单命令,弹出“学生课程成绩”对话框,对话框的内容就是当前选择的列表项中的内容,修改后,单击“修改”按钮,当前选择的列表项所在的数据表记录被修改,并自动更新列表视图显示的内容。如图9.2所示。
实验准备和说明
(1)具备知识:MFC的ODBC常用编程。
(2)创建本次实验工作文件夹“…\\Visual C++程序\\实验\\实验9”。 (3)创建数据库所在的文件夹“…\\Visual C++程序\\实验\\实习”。
实验内容和步骤
1.创建数据库和数据表
这里以Microsoft Access 2003为例说明数据库和数据表的创建过程。 ②?? 启动Microsoft Access 2003。
② 选择“文件”→“新建”菜单,在右边任务窗格中单击“空数据库”,弹出一个对话框,将文件路径指定到“…\\Visual C++程序\\实验\\实习”,指定数据库名main.mdb。单击“创建”按钮,出现如图9.3所示的数据库设计窗口。
1
图9.3 数据库设计窗口 图9.4 表设计界面
③ 双击“使用设计器创建表”,出现如图9.4所示的表设计界面。其中,单击数据类型框的下拉按钮,可在弹出的列表中选择适当的数据类型。在下方的常规页面中可以设置字段大小、格式等内容。 ④ 按表9.1添加字段名和数据类型,关闭表设计界面,弹出一个消息对话框,询问是否保存刚才设计的数据表,单击“是(Y)”按钮,出现如图9.5所示的对话框,在表名称中输入score,单击““确定”按钮。此时出现一个消息对话框,用来询问是否要为表创建主关键词,单击[否(N)”按钮。注意:若单击“是(Y)”按钮,则系统会自动为表添加另一个字段ID。
表9.1 学生课程成绩表(score)结构
序 号 1 2 3 4 字 段 名 称 studentno course score credit 数 据 类 型 文本 文本 数字 数字 字 段 大 小 8 7 单精度 单精度 小 数 位 1 1 字 段 含 义 学号 课程号 成绩 学分 ⑤ 在数据库设计窗口中,双击score表,就可向数据表输入记录数据。如图9.6是记录输入的结果。
图9.5 保存数据表 图9.6 在score表中添加的记录
⑥ 按照上面的过程,添加学生基本信息表student、课程信息表course和专业数据表special,并输入如图9.7所示的记录。
图9.7 各数据表添加的记录
2
⑦ 关闭Microsoft Access 2003。 2.创建ODBC数据源
① 运行ODBC组件,进入ODBC数据源管理器。 ② 单击“添加”按钮,弹出有一驱动程序列表的“创建新数据源”对话框,在该对话框中选择Microsoft Access Driver。
③ 单击“完成”按钮,进入指定驱动程序的安装对话框,数据源名称设为“学生信息管理系统”,单击“选择”按钮将本实验中的main.mdb数据库。
④ 单击“确定”按钮,刚才创建的用户数据源被添加在“ODBC数据源管理器”的“用户数据源”列表中。
3.启动Visual C++ 6.0 启动Visual C++ 6.0系统。
4.创建单文档应用程序Ex_Student
① 用MFC AppWizard创建一个单文档应用程序Ex_Student,在向导的第六步将CEx_StudentView的基类由CView改为CListView。
② 在CEx_StudentView::PreCreateWindow函数添加下列代码,用来设置列表视图内嵌列表控件的风格:
BOOL CEx_StudentView::PreCreateWindow(CREATESTRUCT& cs) { }
cs.style |= LVS_REPORT;
// 报表风格
return CListView::PreCreateWindow(cs);
5.为数据表创建CRecordSet用户派生类
① 在Ex_Student中添加学生基本信息表student、课程信息表course、课程成绩表score和专业数据表special的CRecordSet派生类CStudentSet、CCourseSet、CScoreSet和CSpecialSet。
② 在stdafx.h文件中添加CRecordSet头文件包含#include 。 6.复制“学生课程成绩”对话框和CScoreDlg类 ① 复制对话框资源IDD_SCORE。
② 复制对话框类文件Score.h和Score.cpp,并添加到工程中。
③ 将Score.cpp文件前面的头文件包含#include \修改为#include \。 7.实现添加、删除和修改功能
① 打开菜单资源IDR_MAINFRAME,添加“课程成绩(&S)”顶层菜单,在该菜单添加“添加(&A)”(ID_SCORE_ADD)、“删除(&D)”(ID_SCORE_DEL)和“修改(&C)”(ID_SCORE_CHANGE)子菜单。
② 在CEx_StudentView类添加成员函数DeleteAllColumn,用来删除列表视图的标题头,以便能再创建标题头显示不同的信息。
void CEx_StudentView::DeleteAllColumn() {
CListCtrl& m_ListCtrl = GetListCtrl();
int nCount = 0;
CHeaderCtrl* pHeaderCtrl = m_ListCtrl.GetHeaderCtrl(); if ( pHeaderCtrl!= NULL) nCount = pHeaderCtrl->GetItemCount(); for (int i=0;i < nCount;i++)
m_ListCtrl.DeleteColumn(0);
3
}
③ 在CEx_StudentView类添加成员函数DispScoreInfo,用来显示课程成绩信息。
void CEx_StudentView::DispScoreInfo(CString strFilter) { }
DeleteAllColumn();
// 删除表头
CListCtrl& m_ListCtrl = GetListCtrl();
CString strHeader[]={\学号\课程号\成绩\学分\
for (int nCol=0; nCol sSet.m_strFilter = strFilter; sSet.m_strSort = \sSet.Open(); int nItem = 0; CString str; while (!sSet.IsEOF()) { m_ListCtrl.InsertItem( nItem, sSet.m_
…… 此处隐藏:3303字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




