c++课程设计.docx
- 文档编号:3517539
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:24
- 大小:115.89KB
c++课程设计.docx
《c++课程设计.docx》由会员分享,可在线阅读,更多相关《c++课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
c++课程设计
C++程序设计课程设计说明书
题目:
学生成绩管理信息系统设计与开发
学生姓名:
张苇
学号:
200812010228
院(系):
理学院
专业:
数学与应用数学
指导教师:
刘海峰
2010年6月15日
陕西科技大学
C++程序设计课程设计任务书
理学院数学与应用数学专业数学082班级姓名:
张苇
学号:
200812010228
题目:
学生成绩管理信息系统设计与开发
课程设计从2010年5月10日起到2010年7月2日
1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):
1)、设计内容:
制作学生成绩管理系统,实现数据录入、数据删除、数据浏览以及数据查询等功能。
2)、课程设计的要求:
包括系统设计要求,开发环境要求,技术文档要求三部分。
系统设计要求:
a)学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定.
b)该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,保存文件.
c)系统使用文字菜单,用户通过选择菜单项的编号,实现系统对子模块的调用.也可用windows界面下的菜单栏、弹出式菜单、下拉菜单。
d)每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件,以便在windows的notebook或者Microsoftword下打印,规定该文本文件名由班级号和课程名拼音字符串构成.输入班级号和课程名字符串后自动生成文件名.如1班,语文,则文件名为:
c1yuwen.txt.
e)每个学生学习的课程有语文,英语,数学,物理,化学,生物.
f)学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩).总评成绩由程序自动计算,总评成绩=平时成绩﹡30%+期末成绩﹡70%.
g)学号是一个9位整数构成的字符串,学号的编码规则:
入学年份+在读年级+在读班级+班内编号;入学年份用4位整数构成字符串,如2003年入学则表示为:
”2003”;在读年级用1位整数构成字符串,如正在1年级读书则表示为:
”1”;在读班级用2位整数构成字符串,如正在1班读书则表示为:
”01”;班内编号用2位整数构成字符串,如在班内编号为23号则表示为:
”23”
开发环境要求:
软件环境:
windows98/windowsXP/windows2000,VisualC++
硬件环境:
计算机(Pen4CPU,256MRAM,60G以上硬盘,输入输出设备)
技术文档要求:
按照软件工程技术文档编写要求进行。
要求流程图绘制规范,模块功能描述清晰,数据字典齐全。
程序流程图如下:
程序设计
学生成绩管理系统能有效地管理每个学生的各科成绩,还可以管理学生的基本信息以及课程信息。
该系统能简便地实行相关记录的查询,添加,修改,删除操作。
接下来,我详细介绍一下学生成绩表中记录的查询,添加,修改,删除功能,以及实现这些功能的相关代码。
学生基本信息表,课程信息表的功能和功能实现代码与此表类似。
实验讨论
C++程序设计设计性实验收获与总结
1、实验总结
a)、实验完成了题目的要求。
b)、编写代码基本上能够满足编程规范的要求,代码的变量命名,以及注释的书写,基本能按照要求进行。
b)、将数据结构中的知识复习到,并且学会创新,在代码的编写中,学习了编程规范,学习了结构化编程。
运行软件
主界面:
添加模块:
修改模块:
修改王浩的信息
删除梁磊峰的成绩:
导出模块:
参考程序:
//DlgRealBJ.cpp:
implementationfile
//
#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
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CDlgRealBJdialog
BOOLm_bAsc=TRUE;
intm_nCol=0;
CDlgRealBJ:
:
CDlgRealBJ(CWnd*pParent/*=NULL*/)
:
CDialog(CDlgRealBJ:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CDlgRealBJ)
m_strCombo=_T("");
//}}AFX_DATA_INIT
m_bPanduan=TRUE;
//m_bAsc=TRUE;
//m_nCol=0;
}
voidCDlgRealBJ:
:
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_MAP
}
BEGIN_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_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CDlgRealBJmessagehandlers
voidCDlgRealBJ:
:
OnOK()
{
//TODO:
Addextravalidationhere
return;
//CDialog:
:
OnOK();
}
BOOLCDlgRealBJ:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
CreatDlgList();
m_strCombo="一班";
UpdateData(FALSE);
//UpdateData();
ShowClassData();
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
voidCDlgRealBJ:
:
ShowClassData()
{
CScorem_Score;
CAccessConnm_Conn;
_RecordsetPtrm_Set;
_bstr_tvSQL;
//if(!
m_Conn.m_pConnection->State)
//MessageBox("hi");
m_Conn.OnInitAccessConn();
switch(m_ComBoClass.GetCurSel())
{
case0:
vSQL="select*fromstudentwhere班级='一班'";
m_strCombo="一班";
break;
case1:
vSQL="select*fromstudentwhere班级='二班'";
m_strCombo="二班";
break;
case2:
vSQL="select*fromstudentwhere班级='三班'";
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();
}
voidCDlgRealBJ:
:
CreatDlgList()
{
CStringstr[13]={"学号","姓名","班级","性别","语文","数学","英语",
"物理","化学","生物","体育","总分","平均分"};
intnIndex=0;
m_ListClass.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES);
for(;nIndex<13;nIndex++)
{
m_ListClass.InsertColumn(nIndex,str[nIndex],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,"不好");*/
}
//DELvoidCDlgRealBJ:
:
OnMeasureItem(intnIDCtl,LPMEASUREITEMSTRUCTlpMeasureItemStruct)
//DEL{
//DEL//TODO:
Addyourmessagehandlercodehereand/orcalldefault
//DELif(nIDCtl==IDC_LIST_CLASS)
//DELlpMeasureItemStruct->itemHeight=1000;
//DELCDialog:
:
OnMeasureItem(nIDCtl,lpMeasureItemStruct);
//DEL}
//DELvoidCDlgRealBJ:
:
ChangeStr()
//DEL{
//DELCScorescr;
//DELCStringstr;
//DEL//m_ListClass.GetItemCount();
//DELstr.Format("",scr.m_strNO);
//DEL
//DEL}
voidCDlgRealBJ:
:
ChangeStr(CScorem_scr)
{
CScorescr=m_scr;
CStringstr;
intn=m_ListClass.GetItemCount();
inti=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);
}
voidCDlgRealBJ:
:
OnSelchangeComboClass()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
ShowClassData();
//UpdateData();
}
voidCDlgRealBJ:
:
OnButtonTianjia()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_bPanduan=TRUE;
CTianJiaDlgdlg(this);
dlg.DoModal();
//CScorescore;
/*if(IDOK==dlg.DoModal())
if(dlg.m_bWrite)
{
//MessageBox("hello");
dlg.DestroyWindow();
OnButtonTianjia();
}
else
MessageBox("hi");*/
//score.m_strNO=dlg.m_strNO;
}
//DELCScoreCDlgRealBJ:
:
ReScore()
//DEL{
//DELCTianJiaDlgdlg;
//DELCScorescore;
//DELif(dlg.DoModal()!
=IDOK)returnscore;
//DEL
//DEL}
voidCDlgRealBJ:
:
OnButtonDelete()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CStringstr;
CAccessConnm_Conn;
//intnIndex=-1;
//nIndex=m_ListClass.GetNextItem(nIndex,LVNI_SELECTED);
POSITIONpos=m_ListClass.GetFirstSelectedItemPosition();
if(pos==NULL)
{
MessageBox("请选择你要删除的一行");
return;
}
intnIndex=m_ListClass.GetNextSelectedItem(pos);
str=m_ListClass.GetItemText(nIndex,0);
if(MessageBox("你确定要删除‘"+str+"’这行数据吗?
","删除功能",MB_OKCANCEL)!
=IDOK)
return;
_bstr_tvSQL="deletefromstudentwhere学号='"+str+"'";
_RecordsetPtrm_Set;
m_Conn.OnInitAccessConn();
//m_Set=m_Conn.GetRecordSet();
try
{
m_Set=m_Conn.GetRecordSet("select*fromstudent");
m_Conn.ExecuteSQL(vSQL);
m_Set->Update();
}
catch(_com_errore)
{
MessageBox("失败");
return;
}
MessageBox("成功删除“"+str+"”");
m_Conn.CutConn();
ShowClassData();
}
voidCDlgRealBJ:
:
OnButtonXiugai()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_bPanduan=FALSE;
intnIndex=-1;
nIndex=m_ListClass.GetNextItem(nIndex,LVNI_SELECTED);
if(nIndex==-1)
{
MessageBox("请选择你要修改的一行");
return;
}
CTianJiaDlgdlg(this);
dlg.DoModal();
}
voidCDlgRealBJ:
:
OnColumnclickListClass(NMHDR*pNMHDR,LRESULT*pResult)
{
NM_LISTVIEW*pNMListView=(NM_LISTVIEW*)pNMHDR;
//TODO:
Addyourcontrolnotificationhandlercodehere
/*CStringstr[13]={"学号","姓名","班级","性别","语文","数学","英语",
"物理","化学","生物","体育","总分","平均"};
staticbIs=0;
CScorem_Score;
intnIndex=pNMListView->iSubItem;
_bstr_tvSQL;
if(bIs)
vSQL="select*fromstudentwhere班级='"+m_strCombo+"'orderby"+str[nIndex]+"ASC";
else
vSQL="select*fromstudentwhere班级='"+m_strCombo+"'orderby"+str[nIndex]+"DESC";
CAccessConnm_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计