ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:268.91KB ,
资源ID:2046028      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2046028.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MFC学生信息管理系统.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

MFC学生信息管理系统.docx

1、MFC学生信息管理系统甘肃政法学院本科生实验报告( 数据库编程)姓名:郭加强学院:计算机科学学院专业:计算机科学与技术班级:计算机科学与技术一班实验课程名称:面向对象程序设计实验日期:2012年6月20日指导教师及职称:金涛 老师实验成绩:开课时间:2011-2012学年第二学期甘肃政法学院实验管理中心印制实验题目ODBC数据库编程小组合作姓名郭加强班级计本班学 号201181110105一、实验目的1.学习使用VC+与数据库进行连接,创建数据库编程。2.熟悉数据库编程的作用和使用方法。二实验环境Visual C+ 6.0三、实验内容与步骤1. 创建一个基于Clistview的单文本应用程序E

2、x_ODBC,用来操作ODBC源“用于MFC ODBC的数据库”中指定的score表。如图1所示:图12. 对于大量数据处理,采用数据库更为安全简便。例如,对于学生成绩管理系统,常常需要处理学生的基本信息、课程成绩及与学生有关的院系、专业情况等,这些信息用数据库表的形式来描述更为清晰。四、实验过程与分析1 创建工作文件夹。2 并建立数据库和数据表。()启动数据库,选择新建文件,单击空数据库,弹出一个对话框,指定数据库名main.mdb。单击创建按钮。()双击“使用设计器创建表”,出现如图所示的表设计界面,其中单击数据类型框的下拉按钮,可在弹出的列表中选择合适的数据类型。()保存建立的数据库和数

3、据表。()在数据库设计窗口中,双击score表,就可向数据表输入记录数据。如图2所示:图2()在Windows“控制面板”的“管理工具”中,找到并运行“数据库(ODBC)”组件,弹出“ODBC数据源管理器”的对话框。如图3所示:图3()加载数据库到Visual C+ 6.0联系,将实验中的main.mdb数据库导入。()一直单击确定按钮,刚才创建的用户数据源就会被添加在“ODBC数据源管理器”的“用户数据源”列表中。如图4所示:图4(1)启动Visual C+ 6.0。 (2)用MFCAppWizard创建一个基于CListView的默认单文档应用程序Ex_ODBC。在向导的第六步对话框中为E

4、x_ODBCView选定CListView基类。如图5所示:图5 (3)添加代码,编译并运行。得到截图如图6所示:图64 学生信息的添加、修改和删除(1)添加对话框,创建对话框类CScoreDlg。如图7所示,将添加的对话框的标题设为“课程成绩信息”,将对话框的字体改为“宋体,9号”。将“OK”和“Cancel”按钮标题分别改为“确定”和“取消”。图75 添加代码,并运行得到的截图如图8所示:图86 视图类实验代码如下:#if !defined(AFX_EX_ODBCVIEW_H_67EB9D2E_5048_4026_880E_A41624015617_INCLUDED_)#define AF

5、X_EX_ODBCVIEW_H_67EB9D2E_5048_4026_880E_A41624015617_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000class CEx_ODBCView : public CListViewprotected: / create from serialization only CEx_ODBCView(); DECLARE_DYNCREATE(CEx_ODBCView)/ Attributespublic: CEx_ODBCDoc* GetDocument();/ Operations

6、public:/ Overrides / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CEx_ODBCView) public: virtual void OnDraw(CDC* pDC); / overridden to draw this view virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual void OnInitialUpdate(); / called first time after construct virtua

7、l BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); /AFX_VIRTUAL/ Implementationpublic: void CEx_ODBCView:UpdateListItemData(); virtual CEx_ODBCView();#ifdef _DEBUG virtual void AssertValid()

8、 const; virtual void Dump(CDumpContext& dc) const;#endifprotected:/ Generated message map functionsprotected: /AFX_MSG(CEx_ODBCView) afx_msg void OnOpAdd(); afx_msg void OnOpChange(); afx_msg void OnOpDel(); afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult); /AFX_MSG DECLARE_MESSAGE_MAP();#ifnd

9、ef _DEBUG / debug version in Ex_ODBCView.cppinline CEx_ODBCDoc* CEx_ODBCView:GetDocument() return (CEx_ODBCDoc*)m_pDocument; #endif/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_EX_ODBCVIEW_H_67EB9D2E_5048_4026

10、_880E_A41624015617_INCLUDED_)7 资源类代码如下:/ Ex_ODBCView.cpp : implementation of the CEx_ODBCView class/#include stdafx.h#include Ex_ODBC.h#include Ex_ODBCDoc.h#include Ex_ODBCView.h#include Scoreset.h#include ScoreDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#en

11、dif/ CEx_ODBCViewIMPLEMENT_DYNCREATE(CEx_ODBCView, CListView)BEGIN_MESSAGE_MAP(CEx_ODBCView, CListView) /AFX_MSG_MAP(CEx_ODBCView) ON_COMMAND(ID_OP_ADD, OnOpAdd) ON_COMMAND(ID_OP_CHANGE, OnOpChange) ON_COMMAND(ID_OP_DEL, OnOpDel) ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk) /AFX_MSG_MAP / Standard printin

12、g commands ON_COMMAND(ID_FILE_PRINT, CListView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView:OnFilePrintPreview)END_MESSAGE_MAP()/ CEx_ODBCView construction/destructionCEx_ODBCView:CEx_ODBCView() / TODO: add construction code hereCEx

13、_ODBCView:CEx_ODBCView()BOOL CEx_ODBCView:PreCreateWindow(CREATESTRUCT& cs) / TODO: Modify the Window class or styles here by modifying / the CREATESTRUCT cs cs.style|=LVS_REPORT; return CListView:PreCreateWindow(cs);/ CEx_ODBCView drawingvoid CEx_ODBCView:OnDraw(CDC* pDC) CEx_ODBCDoc* pDoc = GetDoc

14、ument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data herevoid CEx_ODBCView:OnInitialUpdate() CListView:OnInitialUpdate(); CListCtrl& m_ListCtrl=GetListCtrl(); m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);/LVS_EX_GRIDLINES); CScoreSet cSet; cSet.Open(); CODBCFieldInfo field; /创建列表头

15、 for(UINT i=0;iIsKindOf(RUNTIME_CLASS(CEx_ODBCDoc); return (CEx_ODBCDoc*)m_pDocument;#endif /_DEBUG/ CEx_ODBCView message handlersvoid CEx_ODBCView:UpdateListItemData() CListCtrl&m_ListCtrl=GetListCtrl(); m_ListCtrl.DeleteAllItems(); CScoreSet cSet; cSet.m_strSort=studentno,courseno; cSet.Open(); /添

16、加列表项 int nItem=0; CString str; while(!cSet.IsEOF() for(UINT i=0;icSet.m_nFields;i+) cSet.GetFieldValue(i,str); if(i=0) m_ListCtrl.InsertItem(nItem,str); else m_ListCtrl.SetItemText(nItem,i,str); nItem+; cSet.MoveNext(); cSet.Close();void CEx_ODBCView:OnOpAdd() / TODO: Add your command handler code h

17、ere CScoreDlg dlg; if(dlg.DoModal()=IDOK) /先查找是否有同学号同课程的记录 CScoreSet cSet; cSet.m_strFilter.Format(studentno=%sANDcourseno=%s,dlg.m_strStuNO,dlg.m_strCourseNO); cSet.Open(); if(!cSet.IsEOF() MessageBox(有相同的记录存在!); cSet.Close(); return; cSet.AddNew(); cSet.m_studentno =dlg.m_strStuNO; cSet.m_courseno

18、 =dlg.m_strCourseNO; cSet.m_score =dlg.m_fScore; cSet.m_credit =dlg.m_fCredit; cSet.Update(); cSet.Requery(); cSet.Close(); MessageBox(记录已添加!); UpdateListItemData(); void CEx_ODBCView:OnOpChange() / TODO: Add your command handler code here MessageBox(双击要修改的列表项即可!);void CEx_ODBCView:OnOpDel() / TODO:

19、 Add your command handler code here CListCtrl&m_ListCtrl=GetListCtrl(); POSITION pos; pos=m_ListCtrl.GetFirstSelectedItemPosition(); if(pos=NULL) MessageBox(你还没有选中列表项!); return; int nItem=m_ListCtrl.GetNextSelectedItem(pos); CString strItem,str; strItem=m_ListCtrl.GetItemText(nItem,0); str.Format(你确

20、实要删除%s列表项(记录)吗?); if(IDOK!=MessageBox(str,删除确认,MB_ICONQUESTION|MB_OKCANCEL) return; CString strStuNO =m_ListCtrl.GetItemText(nItem,0); CString strCourseNO =m_ListCtrl.GetItemText(nItem,1); CScoreSet infoSet; infoSet.m_strFilter.Format(studentno=%sANDcourseno=%s,strStuNO,strCourseNO); infoSet.Open();

21、 if(!infoSet.IsEOF() CRecordsetStatus status; infoSet.GetStatus(status); infoSet.Delete(); if(status.m_lCurrentRecord=0) infoSet.MoveNext(); else infoSet.MoveFirst(); if(infoSet.IsOpen()infoSet.Close();MessageBox(当前指定的记录已删除!);UpdateListItemData();void CEx_ODBCView:OnDblclk(NMHDR* pNMHDR, LRESULT* pR

22、esult) / TODO: Add your control notification handler code here CListCtrl&m_ListCtrl=GetListCtrl(); POSITION pos; pos=m_ListCtrl.GetFirstSelectedItemPosition(); if(pos=NULL) MessageBox(应双击要修改的列表项!); return; int nItem=m_ListCtrl.GetNextSelectedItem(pos); CString strStuNO =m_ListCtrl.GetItemText(nItem,

23、0); CString strCourseNO =m_ListCtrl.GetItemText(nItem,1); CScoreSet sSet; sSet.m_strFilter.Format(studentno=%sANDcourseno=%s,strStuNO,strCourseNO); sSet.Open(); CScoreDlg dlg; dlg.m_strCourseNO =sSet.m_courseno; dlg.m_strStuNO =sSet.m_studentno; dlg.m_fScore =sSet.m_score; dlg.m_fCredit =sSet.m_cred

24、it; if(IDOK!=dlg.DoModal() if(sSet.IsOpen()sSet.Close(); return; sSet.Edit(); sSet.m_score =dlg.m_fScore; /只能修改学分 sSet.m_credit =dlg.m_fCredit; /只能修改成绩 sSet.Update(); sSet.Requery(); if(sSet.IsOpen()sSet.Close(); /更新列表视图 MessageBox(当前只能修改成绩和学分,修改成功!); UpdateListItemData(); *pResult = 0;8 .实验添加学生信息对话框截图,如图9所示:图9五、实验总结1, 在建立数据库与数据表是应注意名称还有格式及其他选项。2, 在数据库与VC之间建立连接时,要注意类的添加还有选项的选择。3, 在建立对话框时要注意美观和功能的全面,信息的详细等。4, 编写代码时要注意头文件的使用,还有其他的一下小错误,如大小写,标点符号等。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2