欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:2384363       资源大小:722KB        全文页数:20页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    C+程序设计课程设计说明书题目:学生成绩管理信息系统设计与开发 学生姓名: 学 号: 200812010228 院 (系): 理 学 院 专 业: 数学与应用数学 指导教师: 2010 年 6 月 15 日陕 西 科 技 大 学C+程序设计课程设计任务书理学院 数学与应用数学 专业 数学082班级 姓名: 学号: 200812010228题目: 学生成绩管理信息系统设计与开发 课程设计从 2010 年 5 月 10日起到 2010 年 7月 2 日1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):1)、设计内容: 制作学生成绩管理系统,实现数据录入、数据删除、数据浏览以及数据查询等功能。2)、课程设计的要求:包括系统设计要求,开发环境要求,技术文档要求三部分。系统设计要求:a) 学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定b) 该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,保存文件c) 系统使用文字菜单,用户通过选择菜单项的编号,实现系统对子模块的调用也可用windows界面下的菜单栏、弹出式菜单、下拉菜单。d) 每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件,以便在windows的notebook或者Microsoft word下打印,规定该文本文件名由班级号和课程名拼音字符串构成输入班级号和课程名字符串后自动生成文件名如班,语文,则文件名为:c1yuwen.txt e) 每个学生学习的课程有语文,英语,数学,物理,化学,生物f) 学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩)总评成绩由程序自动计算,总评成绩平时成绩30期末成绩70g) 学号是一个9位整数构成的字符串, 学号的编码规则:入学年份+在读年级+在读班级+班内编号;入学年份用4位整数构成字符串,如2003年入学则表示为:”2003”;在读年级用1位整数构成字符串,如正在1年级读书则表示为:”1”;在读班级用2位整数构成字符串,如正在1班读书则表示为:”01”;班内编号用2位整数构成字符串,如在班内编号为23号则表示为:”23”开发环境要求:软件环境:windows98/windowsXP/windows2000,Visual C+硬件环境:计算机(Pen4CPU, 256MRAM,60G以上硬盘,输入输出设备)技术文档要求:按照软件工程技术文档编写要求进行。要求流程图绘制规范,模块功能描述清晰,数据字典齐全。程序流程图如下:程序设计学生成绩管理系统能有效地管理每个学生的各科成绩,还可以管理学生的基本信息以及课程信息。该系统能简便地实行相关记录的查询,添加,修改,删除操作。接下来,我详细介绍一下学生成绩表中记录的查询,添加,修改,删除功能,以及实现这些功能的相关代码。学生基本信息表,课程信息表的功能和功能实现代码与此表类似。实验讨论C+程序设计设计性实验收获与总结1、实验总结a)、实验完成了题目的要求。b)、编写代码基本上能够满足编程规范的要求,代码的变量命名,以及注释的书写,基本能按照要求进行。b)、将数据结构中的知识复习到,并且学会创新,在代码的编写中,学习了编程规范,学习了结构化编程。运行软件主界面:添加模块:修改模块:修改王浩的信息删除梁磊峰的成绩:导出模块:参考程序:/ DlgRealBJ.cpp : implementation file/#include "stdafx.h"#include "student.h"#include "DlgRealBJ.h"/#include "CScore.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, 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_BtnTianjia);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_DATA_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_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() 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;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="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)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->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_Score);m_Set->MoveNext();/m_Score.m_strName=(_bstr_t)m_Set->GetCollect("学号");/m_Score.m_strName=(_bstr_t)m_Set->GetCollect("学号");m_Conn.CutConn();void CDlgRealBJ:CreatDlgList()CString str13="学号","姓名","班级","性别","语文","数学","英语","物理","化学","生物","体育","总分","平均分"int nIndex=0;m_ListClass.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES);for(;nIndex<13;nIndex+)m_ListClass.InsertColumn(nIndex,strnIndex,LVCFMT_LEFT,70);m_ListClass.SetColumnWidth(0,90);/*CHeaderCtrl *pHeader=m_ListClass.GetHeaderCtrl();pHeader->ModifyStyle(0,CCS_NORESIZE,0);*/*m_ListClass.InsertItem(0,"你好");m_ListClass.SetItemText(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);/DEL /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_ListClass.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.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_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();/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_strNO=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.GetNextItem(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 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 CDlgRealBJ: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, 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_strCombo+"' 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->MoveFirst();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->GetCollect("性别");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_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 control 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()<=0|m_ListClass.GetSelectionMark()-1>m_ListClass.GetItemCount() return ;*/pSubmenu->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;FindInfo.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<=3)if(m_bAsc)rValue = strcmp(str1,str2);elserValue = strcmp(str2,str1);else float num1,num2;num1 = (float)atof(str1);num2 = (float)atof(str2);if(m_bAsc)if(num1 = num2) rValue = 0;else if(num1 > num2) rValue = 1;else rValue = -1;elseif(num1 = num2) rValue = 0;else if(num1 < num2) rValue = 1;else rValue = -1;return rValue;void CDlgRealBJ:OnButtonOut() / TODO: Add your control notification handler code hereif(MessageBox("你确定要导出到EXCEL吗?","提示",MB_OKCANCEL)!=IDOK)return ;if (CoInitialize(NULL)!=0) AfxMessageBox("初始化COM支持库失败!"); exit(1); _Application ExcelApp; Workbooks wbsMyBooks; _Workbook wbMyBook; Worksheets wssMysheets; _Worksheet wsMysheet; Range rgMyRge; if (!ExcelApp.CreateDispatch("Excel.Application",NULL) AfxMessageBox("创建Excel服务失败!"); exit(1); ExcelApp.SetVisible(false); /str+="student.xls"/str.Format("%s%s.xls",str,dlg.m_strXlsName);/MessageBox(str);/CFile f;/f.Open(str,CFile:modeCreate );/HANDLE handle;/handle=CreateFile(str, GENERIC_WRITE |GENERIC_READ,FILE_SHARE_WRITE |FILE_SHARE_READ ,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL ,0);/LPDISPATCH lp;/CString str1="0"/wssMysheets.GetItem(_variant_t)dlg.m_strXlsName);wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); wbMyBook.AttachDispatch(wbsMyBooks.Add(vtMissing);wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);/MessageBox(str);wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1"),true);/MessageBox(lp);/MessageBox(wsMysheet.GetName();/wsMysheet.SetName();rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);CString string;CAccessConn m_Conn;_bstr_t vSQL="select * from student"m_Conn.OnInitAccessConn();m_Conn.GetRecordSet(vSQL);if(m_Conn.m_pRecordset->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

    注意事项

    本文(C++程序设计课程设计说明书学生成绩管理信息系统设计与开发.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开