版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、甘肃政法学院面向对象程序设计期末考试题 目 学生成绩管理程序计算机科学 学院信息管理与信息系统 班学 号 : 201081020108 姓 名 : 贾 燚 指导教师 : _ 金 涛_ _ 成 绩 :_ _ _ 完成时间 : 2011 年 6 月项目说明成绩管理是一个复杂的系统工程,其管理范围大、内容广,若采取旧管理方式,不仅耗费大量的人力物力,而且管理效率十分低下。随着科学技术的迅猛发展,在各项管理中充分应用计算机管理信息系统及现代化的管理方式,尤其是一些高科技技术,让管理中的许多日常工作实现自动化。一、数据库的设计用Micosoft Access 2003创建一个数据库student.mdb
2、,包含用于描述学生信息、课程成绩及课程信息的数据表student、score、course,其结构如表1、表2、表3所示。表1 学生信息表(student)结构序号字段名称数据类型字段大小小数位字段含义1studentname文本20姓名2studentno文本10学号3xb是/否性别4birthday日期/时间出生年月5special文本50专业表2 学生课程成绩表(score)结构序号字段名称数据类型字段大小小数位字段含义1studentno文本8学号2course文本7课程号3score数字单精度1成绩4credit数字单精度1学分表3 课程信息表(course)结构序号字段名称数据类型
3、字段大小小数位字段含义1courseno文本7课程号2special文本50所属专业3coursename文本50课程名4coursestype文本10课程类型5openterm数字字节开课学期6hours数字字节课时数7credit数字单精度1学分二、程序框架界面及其添加的类1.为上述数据库添加并创建一个ODBC数据源 打开控制面板中的管理工具,如图1所示。图1 管理工具(2)双击ODBC图标,进入ODBC数据管理器,如图2所示。在这里,用户可以设置一些ODBC数据源的一些信息。图2 ODBC数据源管理器(3)创建用户DSN单击“添加”按钮,弹出有一驱动程序列表的“创建新数据源”对话框,如图
4、3所示。在这里选择“Micosoft Access Driver”。图3 “创建新数据源”对话框单击“完成”按钮,进入指定驱动程序的ODBC Access安装对话框,单击“选择”按钮,然后在数据源名输入“student”,如图4所示。图4 ODBC Access安装对话框单击“确定”按钮,刚才创建的用户数据源已被添加在“ODBC数据源管理器”的“用户数据源”列表中,如图5所示。图5 “用户数据源”列表2用MFC AppWizard创建一个单文档应用程序student,在向导的第6步选择基类CListView。3.在应用程序项目中,用Class Wizard为数据表student、score、c
5、ourse创建并添加CRecordSet的派生类:CStudentSet、CScoreSet和CCourseSet。4添加一个对话框资源IDD_STUINFO,用于学生信息数据的添加和修改。如图6所示为“学生信息”对话框,创建的对话框类为CStuInfoDlg。并依次为“学生信息”对话框的控件添加成员变量,如图7所示。图6 “学生信息”对话框图7 “学生信息”对话框添加成员变量5. 添加一个对话框资源IDD_SCORE,用于学生课程成绩数据的添加和修改。如图8所示为“学生成绩”对话框,创建的对话框类为CscoreDlg。并依次为“学生成绩”对话框的控件添加成员变量,如图9所示。图8 “学生成绩
6、”对话框图9 为“学生成绩”对话框添加成员变量6.添加一个对话框资源IDD_COURSE,用于课程信息数据的添加和修改。如图10所示为“课程信息”对话框,创建对话框类为CCourseDlg。并依次为“课程信息”对话框的控件添加成员变量,如图11所示。图10 “课程信息”对话框图11 为“课程信息”对话框添加成员变量7.设计菜单项和工具栏,如图12所示。图12 菜单栏和工具栏三、主要代码分析1.用MFC ClassWizard 为CStuInfoDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码:BOOL CStuInfoDlg:OnInitDialog() CDialog:
7、OnInitDialog();if(m_strSex="女")CheckRadioButton(IDC_RADIO_M,IDC_RADIO_W,IDC_RADIO_W);elseCheckRadioButton(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(FAL
8、SE); GetDlgItem(IDC_EDIT_NO)->EnableWindow(FALSE);return TRUE;2.用MFC ClassWizard 为CStuInfoDlg类添加IDOK按钮的BN_CLILKED消息映射,并添加下列代码:void CStuInfoDlg:OnOK()UpdateData();m_strName.TrimLeft();m_strNO.TrimLeft();if(m_strName.IsEmpty()MessageBox("必须有姓名!");else if(m_strNO.IsEmpty()MessageBox("
9、必须有学号!");else3.为Cjy001View类添加一个成员函数DispAllRec,用于显示指定数据表的所有记录,并指定字段排序,strFiled默认参数值为"",其代码如下:void Cjy001View:DispAllRec(CString tablename, CString strFiled)CListCtrl&m_ListCtrl=GetListCtrl();m_ListCtrl.DeleteAllItems();int nColumnCount=m_ListCtrl.GetHeaderCtrl()->GetItemCount();
10、for(int i=0;i<nColumnCount;i+) m_ListCtrl.DeleteColumn(0);_CommandPtr pCmd;pCmd.CreateInstance(_uuidof(Command);pCmd->ActiveConnection=m_pConnection;CString strText; strField.TrimLeft();if(strField.IsEmpty()strText.Format("SELECT*FROM %s",tablename);elsestrText.Format("SELECT*FR
11、OM %s ORDER BY %s",tablename,strField);pCmd->CommandText=_bstr_t(strText);_RecordsetPtr pSet;pSet.CreateInstance(_uuidof(Recordset);pSet=pCmd->Execute(NULL,NULL,adCmdText);FiledsPtr flds=pSet->GetFields();_variant_t Index;Index.vt=VT_I2;m_ListCtrl.InsertColumn(0,"序号",LVCEMT_L
12、EFT,40);for(i=0;i<(int)flds->GetCount();i+)Index.iVal=i;int nWidth=flds->GetItem(Index)->GetDefineSize()*9;if(nWidth<40)nWidth=40;m_ListCtrl.InsertColumn(i+1,(LPSTR)flds->GetItem(Index)->GetName(),LVSFMT_LEFT,nWidth);_bstr_t str,value;int nItem=0;CString strItem;while(!pSet->
13、adoEOF)strItem.Format("%d",nItem+1);m_ListCtrl.InsertItem(nItem,strItem);for(i=0;i<(int)flds->GetCount();i+)Index.iVal=i;str=flds->GetItem(Index)->GetName();value=pSet->GetCollect(str);m_ListCtrl.SetItemText(nItem,i+1,(LPSTR)value);pSet->MoveNext();nItem+;pSet->Close()
14、;4.用MFC ClassWizard 为Cjy001View类添加该菜单的COMMAND消息映射,并添加下列代码:void Cjy001View:OnStuinfoAdd() / TODO: Add your command handler code hereCStuInfoDlg dlg;if(dlg.DoModal()!=IDOK)return;_CommandPtr pCmd;pCmd.CreateInstance(_uuidof(Command);pCmd->ActiveConnection=m_pConnection;CString strText;strText.Forma
15、t("SELECT * FROM student WHERE studentname='%s' AND studentno='%s'",dlg.m_strName,dlg.m_strNO);pCmd->CommandText=_bstr_t(strText);_RecordsetPtr pSet;pSet.CreateInstance(_uuidof(Recordset);pSet=pCmd->Execute(NULL,NULL,adCmdText);if(!pSet->adoEOF)MessageBox(dlg.m_str
16、Name+"学生记录已添加过!","重复添加");pSet->Close();return;CString strSex,strTime;if(dlg.m_strSex="男")strSex="True"else sreSex="False"strTime=dlg.m_tBirth.Format("%Y-%m-%d");strText.Format("INSERT INFO student(studentname,studentno,xb,birthday,s
17、pecial)VALUES('%s','%s','%s','%s','%s')",dlg.m_strName,dlg.m_strNO,strSex,strTime,dlg.m_strSpec);pCmd->CommandText=_bstr_t(strText);pCmd->Execute(NULL,NULL,adCmdText);DispAllRec("student");5. 用MFC ClassWizard 为Cjy001View类添加该菜单的WM_RBUTTONDO
18、WN消息映射,并添加下列代码:CListView:OnRButtonDown(nFlags, point); CListCtrl& m_ListCtrl=GetListCtrl();UINT uFlags;int nItem=m_ListCtrl.HitTest(point,&uFlags);if(uFlags& LVHT_ONITEMLABEL)CStuInfoDlg dlg;dlg.m_strOKText="修改"dlg.m_strName=m_ListCtrl.GetItemText(nItem,1);dlg.m_strNO=m_ListCtr
19、l.GetItemText(nItem,2);CString strSex,strTime;strSex=m_ListCtrl.GetItemText(nItem,3);if(strSex="0")strSex="女"else strSex="男"dlg.m_strSex=strSex;strTime=m_ListCtrl.GetItemText(nItem,4);COleVariant vt(strTime);vt.ChangeType(VT_DATE);COleDateTime tm=vt;dlg.m_tBirth=CTime(t
20、m.GetYear(),tm.GetMonth(),tm.GetDay(),0,0,0);dlg.m_strSpec=m_ListCtrl.GetItemText(nItem,5);if(IDOK=dlg.DoModal()if(dlg.m_strSex="男")strSex="True"else strSex="False"strTime=dlg.m_tBirth.Format("%Y-%m-%d");_CommandPtr pCmd;pCmd.CreateInstance(_uuidof(Command);pC
21、md->ActiveConnection=m_pConnection;CString strText; strText.Format("UPDATE student SET xb=%S,birthday='%s',special='&s'WHERE studentname='%s' AND studentno='%s'",strSex,strTime,dlg.m_strSpec,dlg.m_strName,dlg.m_strNO);pCmd->CommandText=_bstr_t(strText);pCmd->Execute(NULL,NULL,adCmdText);DispAllRe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 30269.602-2017信息技术 传感器网络 第602部分:信息安全:低速率无线传感器网络网络层和应用支持子层安全规范》
- 深度解析(2026)《GBT 30203-2013飞机电气系统特性》:面向未来的航空电气系统构建与安全应用前瞻
- 深度解析(2026)《GBT 30059-2013热交换器用耐蚀合金无缝管》
- 机器人辅助支气管镜诊疗技术专家共识完整版
- 2026年烟花爆竹事故应急处置操作手册
- 深度解析(2026)《GBT 29822-2013钨铼热电偶丝及分度表》
- 深度解析(2026)《GBT 29651-2013锰矿石和锰精矿 全铁含量的测定 火焰原子吸收光谱法》
- GBT 33953-2025 钢筋混凝土用耐蚀钢筋
- 《GBT 7345-2008控制电机基本技术要求》(2026年)合规红线与避坑实操手册
- 《GBT 3260.3-2013锡化学分析方法 第3部分:铋量的测定 碘化钾分光光度法和火焰原子吸收光谱法》(2026年)合规红线与避坑实操手册
- 2018年上半年全国事业单位联考D类《职业能力倾向测验》答案+解析
- 2026年广东广州市高三二模高考数学试卷试题(含答案详解)
- 特医食品管理工作制度
- 人教版五年级数学下册第三单元《长方体与正方体的表面积》专项训练(含答案)
- 2025年四川省达州市中考物理模拟试题(试卷+解析)
- 国开2026年《新媒体伦理与法规》形成性考核1-5答案
- 高考地理总复习《内外力作用对地表形态的影响》专项测试卷(带答案)
- 《汽车轮毂单元》
- 2026年医院舆情监测与危机公关试题含答案
- 萧山区2025杭州萧山水务有限公司招聘40人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 医学类集体备课课件
评论
0/150
提交评论