C期末论文学生成绩管理程序_第1页
C期末论文学生成绩管理程序_第2页
C期末论文学生成绩管理程序_第3页
C期末论文学生成绩管理程序_第4页
C期末论文学生成绩管理程序_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论