C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc

上传人:文库蛋蛋多 文档编号:2384363 上传时间:2023-02-17 格式:DOC 页数:20 大小:722KB
返回 下载 相关 举报
C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc_第1页
第1页 / 共20页
C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc_第2页
第2页 / 共20页
C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc_第3页
第3页 / 共20页
C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc_第4页
第4页 / 共20页
C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc》由会员分享,可在线阅读,更多相关《C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc(20页珍藏版)》请在三一办公上搜索。

1、C+程序设计课程设计说明书题目:学生成绩管理信息系统设计与开发 学生姓名: 学 号: 200812010228 院 (系): 理 学 院 专 业: 数学与应用数学 指导教师: 2010 年 6 月 15 日陕 西 科 技 大 学C+程序设计课程设计任务书理学院 数学与应用数学 专业 数学082班级 姓名: 学号: 200812010228题目: 学生成绩管理信息系统设计与开发 课程设计从 2010 年 5 月 10日起到 2010 年 7月 2 日1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):1)、设计内容: 制作学生成绩管理系统,实现数据录入、数据删除、数据浏览以及数据查询

2、等功能。2)、课程设计的要求:包括系统设计要求,开发环境要求,技术文档要求三部分。系统设计要求:a) 学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定b) 该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,保存文件c) 系统使用文字菜单,用户通过选择菜单项的编号,实现系统对子模块的调用也可用windows界面下的菜单栏、弹出式菜单、下拉菜单。d) 每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件,以便在windows的notebook或者Microsoft word下打印,规定该文本文件名由班级号和课程名拼音字符串构成输入班级号和课程名字符串后自动生成

3、文件名如班,语文,则文件名为:c1yuwen.txt e) 每个学生学习的课程有语文,英语,数学,物理,化学,生物f) 学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩)总评成绩由程序自动计算,总评成绩平时成绩30期末成绩70g) 学号是一个9位整数构成的字符串, 学号的编码规则:入学年份+在读年级+在读班级+班内编号;入学年份用4位整数构成字符串,如2003年入学则表示为:”2003”;在读年级用1位整数构成字符串,如正在1年级读书则表示为:”1”;在读班级用2位整数构成字符串,如正在1班读书则表示为:”01”;班内编号用2位整数构成字符串,如在班内编号为23号则表

4、示为:”23”开发环境要求:软件环境:windows98/windowsXP/windows2000,Visual C+硬件环境:计算机(Pen4CPU, 256MRAM,60G以上硬盘,输入输出设备)技术文档要求:按照软件工程技术文档编写要求进行。要求流程图绘制规范,模块功能描述清晰,数据字典齐全。程序流程图如下:程序设计学生成绩管理系统能有效地管理每个学生的各科成绩,还可以管理学生的基本信息以及课程信息。该系统能简便地实行相关记录的查询,添加,修改,删除操作。接下来,我详细介绍一下学生成绩表中记录的查询,添加,修改,删除功能,以及实现这些功能的相关代码。学生基本信息表,课程信息表的功能和功

5、能实现代码与此表类似。实验讨论C+程序设计设计性实验收获与总结1、实验总结a)、实验完成了题目的要求。b)、编写代码基本上能够满足编程规范的要求,代码的变量命名,以及注释的书写,基本能按照要求进行。b)、将数据结构中的知识复习到,并且学会创新,在代码的编写中,学习了编程规范,学习了结构化编程。运行软件主界面:添加模块:修改模块:修改王浩的信息删除梁磊峰的成绩:导出模块:参考程序:/ DlgRealBJ.cpp : implementation file/#include stdafx.h#include student.h#include DlgRealBJ.h/#include CScore

6、.h#include AccessConn.h#include TianJiaDlg.h#include excel.h#include comdef.h#include DlgXLS.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CDlgRealBJ dialogBOOL m_bAsc=TRUE;int m_nCol=0;CDlgRealBJ:CDlgRealBJ(CWnd* pParent /*=NULL*/): CDialog(CDlgRealBJ:IDD

7、, pParent)/AFX_DATA_INIT(CDlgRealBJ)m_strCombo = _T();/AFX_DATA_INITm_bPanduan=TRUE;/m_bAsc=TRUE;/m_nCol=0;void CDlgRealBJ:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CDlgRealBJ)DDX_Control(pDX, IDC_BUTTON_XIUGAI, m_BtnXiugai);DDX_Control(pDX, IDC_BUTTON_TIANJIA, m_Bt

8、nTianjia);DDX_Control(pDX, IDC_BUTTON_MANAGE, m_BtnManage);DDX_Control(pDX, IDC_BUTTON_OUT, m_BtnOut);DDX_Control(pDX, IDC_BUTTON_DELETE, m_BtnDelete);DDX_Control(pDX, IDC_LIST_CLASS, m_ListClass);DDX_Control(pDX, IDC_COMBO_CLASS, m_ComBoClass);DDX_CBString(pDX, IDC_COMBO_CLASS, m_strCombo);/AFX_DAT

9、A_MAPBEGIN_MESSAGE_MAP(CDlgRealBJ, CDialog)/AFX_MSG_MAP(CDlgRealBJ)ON_CBN_SELCHANGE(IDC_COMBO_CLASS, OnSelchangeComboClass)ON_BN_CLICKED(IDC_BUTTON_TIANJIA, OnButtonTianjia)ON_BN_CLICKED(IDC_BUTTON_DELETE, OnButtonDelete)ON_BN_CLICKED(IDC_BUTTON_XIUGAI, OnButtonXiugai)ON_NOTIFY(LVN_COLUMNCLICK, IDC_

10、LIST_CLASS, OnColumnclickListClass)ON_NOTIFY(NM_RCLICK, IDC_LIST_CLASS, OnRclickListClass)ON_BN_CLICKED(IDC_BUTTON_OUT, OnButtonOut)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CDlgRealBJ message handlersvoid CDlgRealBJ:OnOK() / TODO: Add extra validation herereturn ;/CDialog:OnOK();BOOL CDlgRealBJ:OnInitDialog()

11、 CDialog:OnInitDialog();/ TODO: Add extra initialization hereCreatDlgList();m_strCombo=一班;UpdateData(FALSE);/UpdateData();ShowClassData();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CDlgRealBJ:ShowClassData()CScore m_Score;

12、CAccessConn m_Conn;_RecordsetPtr m_Set;_bstr_t vSQL;/if(!m_Conn.m_pConnection-State)/MessageBox(hi);m_Conn.OnInitAccessConn();switch(m_ComBoClass.GetCurSel()case 0:vSQL=select * from student where 班级=一班;m_strCombo=一班;break;case 1:vSQL=select * from student where 班级=二班;m_strCombo=二班;break;case 2:vSQL

13、=select * from student where 班级=三班;m_strCombo=三班;break;if(m_ListClass.GetItemCount()0) m_ListClass.DeleteAllItems();m_Conn.GetRecordSet(vSQL);if(m_Conn.m_pRecordset-adoEOF)m_Conn.CutConn();return ;m_Set=m_Conn.GetRecordSet(vSQL);m_Set-MoveFirst();while(!m_Set-adoEOF)m_Score.m_strNO=(LPCSTR)(_bstr_t)

14、m_Set-GetCollect(学号);m_Score.m_strName=(LPCSTR)(_bstr_t)m_Set-GetCollect(姓名);m_Score.m_strClass=(LPCSTR)(_bstr_t)m_Set-GetCollect(班级);m_Score.m_strSex=(LPCSTR)(_bstr_t)m_Set-GetCollect(性别);m_Score.m_fChinese=m_Set-GetCollect(语文);m_Score.m_fMaths=m_Set-GetCollect(数学);m_Score.m_fEnglish=m_Set-GetColle

15、ct(英语);m_Score.m_fPhysics=m_Set-GetCollect(物理);m_Score.m_fChemistry=m_Set-GetCollect(化学);m_Score.m_fBiology=m_Set-GetCollect(生物);m_Score.m_fSports=m_Set-GetCollect(体育);ChangeStr(m_Score);m_Set-MoveNext();/m_Score.m_strName=(_bstr_t)m_Set-GetCollect(学号);/m_Score.m_strName=(_bstr_t)m_Set-GetCollect(学号

16、);m_Conn.CutConn();void CDlgRealBJ:CreatDlgList()CString str13=学号,姓名,班级,性别,语文,数学,英语,物理,化学,生物,体育,总分,平均分;int nIndex=0;m_ListClass.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES);for(;nIndexModifyStyle(0,CCS_NORESIZE,0);*/*m_ListClass.InsertItem(0,你好);m_ListClass.SetItemTex

17、t(0,1,不好);*/DEL void CDlgRealBJ:OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) /DEL /DEL / TODO: Add your message handler code here and/or call default/DEL if(nIDCtl=IDC_LIST_CLASS)/DEL lpMeasureItemStruct-itemHeight=1000;/DEL CDialog:OnMeasureItem(nIDCtl, lpMeasureItemStruct);/D

18、EL /DEL void CDlgRealBJ:ChangeStr()/DEL /DEL CScore scr;/DEL CString str;/DEL /m_ListClass.GetItemCount();/DEL str.Format(,scr.m_strNO);/DEL /DEL void CDlgRealBJ:ChangeStr(CScore m_scr)CScore scr=m_scr;CString str;int n=m_ListClass.GetItemCount();int i=0;if(scr.m_strClass!=m_strCombo) return ;m_List

19、Class.InsertItem(n,scr.m_strNO);m_ListClass.SetItemText(n,+i,scr.m_strName);m_ListClass.SetItemText(n,+i,scr.m_strClass);m_ListClass.SetItemText(n,+i,scr.m_strSex);str.Format(%4.1f,scr.m_fChinese);m_ListClass.SetItemText(n,+i,str);str.Format(%4.1f,scr.m_fMaths);m_ListClass.SetItemText(n,+i,str);str.

20、Format(%4.1f,scr.m_fEnglish);m_ListClass.SetItemText(n,+i,str);str.Format(%4.1f,scr.m_fPhysics);m_ListClass.SetItemText(n,+i,str);str.Format(%4.1f,scr.m_fChemistry);m_ListClass.SetItemText(n,+i,str);str.Format(%4.1f,scr.m_fBiology);m_ListClass.SetItemText(n,+i,str);str.Format(%4.1f,scr.m_fSports);m_

21、ListClass.SetItemText(n,+i,str);str.Format(%4.1f,scr.fScore();m_ListClass.SetItemText(n,+i,str);str.Format(%4.1f,scr.fAverage();m_ListClass.SetItemText(n,+i,str);m_ListClass.SetItemData(n,n);void CDlgRealBJ:OnSelchangeComboClass() / TODO: Add your control notification handler code hereShowClassData(

22、);/UpdateData();void CDlgRealBJ:OnButtonTianjia() / TODO: Add your control notification handler code herem_bPanduan=TRUE;CTianJiaDlg dlg(this);dlg.DoModal();/CScore score;/*if(IDOK=dlg.DoModal()if(dlg.m_bWrite)/MessageBox(hello);dlg.DestroyWindow();OnButtonTianjia();elseMessageBox(hi);*/score.m_strN

23、O=dlg.m_strNO;/DEL CScore CDlgRealBJ:ReScore()/DEL /DEL CTianJiaDlg dlg;/DEL CScore score;/DEL if(dlg.DoModal()!=IDOK) return score;/DEL /DEL void CDlgRealBJ:OnButtonDelete() / TODO: Add your control notification handler code hereCString str;CAccessConn m_Conn;/int nIndex=-1;/nIndex=m_ListClass.GetN

24、extItem(nIndex, LVNI_SELECTED);POSITION pos=m_ListClass.GetFirstSelectedItemPosition();if(pos=NULL)MessageBox(请选择你要删除的一行);return ;int nIndex=m_ListClass.GetNextSelectedItem(pos);str=m_ListClass.GetItemText(nIndex,0);if(MessageBox(你确定要删除+str+这行数据吗?,删除功能,MB_OKCANCEL)!=IDOK)return ;_bstr_t vSQL=delete

25、from student where 学号=+str+;_RecordsetPtr m_Set;m_Conn.OnInitAccessConn();/m_Set=m_Conn.GetRecordSet();trym_Set=m_Conn.GetRecordSet(select * from student);m_Conn.ExecuteSQL(vSQL);m_Set-Update();catch(_com_error e)MessageBox(失败);return ;MessageBox(成功删除“+str+”);m_Conn.CutConn();ShowClassData();void CD

26、lgRealBJ:OnButtonXiugai() / TODO: Add your control notification handler code herem_bPanduan=FALSE;int nIndex=-1;nIndex=m_ListClass.GetNextItem(nIndex, LVNI_SELECTED);if(nIndex=-1)MessageBox(请选择你要修改的一行);return ;CTianJiaDlg dlg(this);dlg.DoModal();void CDlgRealBJ:OnColumnclickListClass(NMHDR* pNMHDR,

27、LRESULT* pResult) NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;/ TODO: Add your control notification handler code here/*CString str13=学号,姓名,班级,性别,语文,数学,英语,物理,化学,生物,体育,总分,平均;static bIs=0;CScore m_Score;int nIndex= pNMListView-iSubItem;_bstr_t vSQL;if(bIs)vSQL=select * from student where 班级=+m_strC

28、ombo+ order by +strnIndex+ ASC;elsevSQL=select * from student where 班级=+m_strCombo+ order by +strnIndex+ DESC;CAccessConn m_Conn;m_Conn.OnInitAccessConn();m_Conn.GetRecordSet(vSQL);if(m_Conn.m_pRecordset-adoEOF)m_Conn.CutConn();return ;_RecordsetPtr m_Set;m_Set=m_Conn.GetRecordSet(vSQL);m_Set-MoveFi

29、rst();if(m_ListClass.GetItemCount()0) m_ListClass.DeleteAllItems();while(!m_Set-adoEOF)m_Score.m_strNO=(LPCSTR)(_bstr_t)m_Set-GetCollect(学号);m_Score.m_strName=(LPCSTR)(_bstr_t)m_Set-GetCollect(姓名);m_Score.m_strClass=(LPCSTR)(_bstr_t)m_Set-GetCollect(班级);m_Score.m_strSex=(LPCSTR)(_bstr_t)m_Set-GetCol

30、lect(性别);m_Score.m_fChinese=m_Set-GetCollect(语文);m_Score.m_fMaths=m_Set-GetCollect(数学);m_Score.m_fEnglish=m_Set-GetCollect(英语);m_Score.m_fPhysics=m_Set-GetCollect(物理);m_Score.m_fChemistry=m_Set-GetCollect(化学);m_Score.m_fBiology=m_Set-GetCollect(生物);m_Score.m_fSports=m_Set-GetCollect(体育);ChangeStr(m_

31、Score);m_Set-MoveNext();m_Conn.CutConn();bIs=+bIs%2;*/if(pNMListView-iSubItem=m_nCol)m_bAsc=!m_bAsc;elsem_bAsc=TRUE;m_nCol=pNMListView-iSubItem;m_ListClass.SortItems(CompareFun,(DWORD)&m_ListClass);*pResult = 0;void CDlgRealBJ:OnRclickListClass(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your contr

32、ol notification handler code hereCMenu menu,*pSubmenu;menu.LoadMenu(IDR_MENU);pSubmenu=menu.GetSubMenu(0);CPoint point;GetCursorPos(&point);int nIndex=-1;nIndex=m_ListClass.GetNextItem(nIndex, LVNI_SELECTED);if(nIndex=-1)return ;/*if(m_ListClass.GetItemCount()m_ListClass.GetItemCount() return ;*/pSu

33、bmenu-TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);/MessageBox(hello);*pResult = 0;int CALLBACK CDlgRealBJ:CompareFun(LPARAM lParam1,LPARAM lParam2,LPARAM lParamSort)CListCtrl *pListCtrl = (CListCtrl*)lParamSort;int rValue=0;int nItem1,nItem2;LVFINDINFO FindInfo;FindInfo.flags=LVFI_PARAM;FindI

34、nfo.lParam=lParam1;nItem1=pListCtrl-FindItem(&FindInfo,-1);FindInfo.lParam=lParam2;nItem2=pListCtrl-FindItem(&FindInfo,-1);if(nItem1 = -1)|(nItem2 = -1) return 0;CString str1,str2;str1=pListCtrl-GetItemText(nItem1,m_nCol);str2=pListCtrl-GetItemText(nItem2,m_nCol);if(m_nCol=0)&(m_nCol num2) rValue =

35、1;else rValue = -1;elseif(num1 = num2) rValue = 0;else if(num1 adoEOF)ExcelApp.Quit();rgMyRge.ReleaseDispatch(); wsMysheet.ReleaseDispatch(); wssMysheets.ReleaseDispatch(); wbMyBook.ReleaseDispatch(); wbsMyBooks.ReleaseDispatch(); ExcelApp.ReleaseDispatch(); m_Conn.CutConn();return ;m_Conn.m_pRecordset-MoveFirst();rgMyRge.SetItem(_variant_t(long)1),_variant_t(long)1),_variant_t(学号);/*rgMyRge.GetItem(_variant_t(long)1),vtMissing);rgMyRge.SetColumnWidth(_variant_t(long)12

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号