c++课程设计Word格式文档下载.docx
《c++课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c++课程设计Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
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"
student.h"
DlgRealBJ.h"
//#include"
CScore.h"
AccessConn.h"
TianJiaDlg.h"
excel.h"
comdef.h"
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
OnOK()
//TODO:
Addextravalidationhere
return;
//CDialog:
OnOK();
BOOLCDlgRealBJ:
OnInitDialog()
OnInitDialog();
Addextrainitializationhere
CreatDlgList();
m_strCombo="
一班"
;
UpdateData(FALSE);
//UpdateData();
ShowClassData();
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
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:
二班'
二班"
case2:
三班'
三班"
}
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->
m_Score.m_strNO=(LPCSTR)(_bstr_t)m_Set->
GetCollect("
学号"
m_Score.m_strName=(LPCSTR)(_bstr_t)m_Set->
姓名"
m_Score.m_strClass=(LPCSTR)(_bstr_t)m_Set->
班级"
m_Score.m_strSex=(LPCSTR)(_bstr_t)m_Set->
性别"
m_Score.m_fChinese=m_Set->
语文"
m_Score.m_fMaths=m_Set->
数学"
m_Score.m_fEnglish=m_Set->
英语"
m_Score.m_fPhysics=m_Set->
物理"
m_Score.m_fChemistry=m_Set->
化学"
m_Score.m_fBiology=m_Set->
生物"
m_Score.m_fSports=m_Set->
体育"
ChangeStr(m_Score);
m_Set->
MoveNext();
//m_Score.m_strName=(_bstr_t)m_Set->
m_Conn.CutConn();
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}
ChangeStr()
//DELCScorescr;
//DELCStringstr;
//DEL//m_ListClass.GetItemCount();
//DELstr.Format("
scr.m_strNO);
//DEL
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);
scr.m_fMaths);
scr.m_fEnglish);
scr.m_fPhysics);
scr.m_fChemistry);
scr.m_fBiology);
scr.m_fSports);
scr.fScore());
scr.fAverage());
m_ListClass.SetItemData(n,n);
OnSelchangeComboClass()
Addyourcontrolnotificationhandlercodehere
OnButtonTianjia()
CTianJiaDlgdlg(this);
dlg.DoModal();
//CScorescore;
/*if(IDOK==dlg.DoModal())
if(dlg.m_bWrite)
//MessageBox("
hello"
dlg.DestroyWindow();
OnButtonTianjia();
else
MessageBox("
//score.m_strNO=dlg.m_strNO;
//DELCScoreCDlgRealBJ:
ReScore()
//DELCTianJiaDlgdlg;
//DELCScorescore;
//DELif(dlg.DoModal()!
=IDOK)returnscore;
//DEL
OnButtonDelete()
//intnIndex=-1;
//nIndex=m_ListClass.GetNextItem(nIndex,LVNI_SELECTED);
POSITIONpos=m_ListClass.GetFirstSelectedItemPosition();
if(pos==NULL)
MessageBox("
请选择你要删除的一行"
intnIndex=m_ListClass.GetNextSelectedItem(pos);
str=m_ListClass.GetItemText(nIndex,0);
if(MessageBox("
你确定要删除‘"
+str+"
’这行数据吗?
删除功能"
MB_OKCANCEL)!
=IDOK)
_bstr_tvSQL="
deletefromstudentwhere学号='
'
//m_Set=m_Conn.GetRecordSet();
try
m_Set=m_Conn.GetRecordSet("
select*fromstudent"
m_Conn.ExecuteSQL(vSQL);
Update();
catch(_com_errore)
失败"
成功删除“"
”"
OnButtonXiugai()
m_bPanduan=FALSE;
intnIndex=-1;
nIndex=m_ListClass.GetNextItem(nIndex,LVNI_SELECTED);
if(nIndex==-1)
请选择你要修改的一行"
OnColumnclickListClass(NMHDR*pNMHDR,LRESULT*pResult)
NM_LISTVIEW*pNMListView=(NM_LISTVIEW*)pNMHDR;
/*CStringstr[13]={"
"
平均"
staticbIs=0;
intnIndex=pNMListView->
iSubItem;
if(bIs)
vSQL="
+m_strCombo+"
orderby"
+str[nIndex]+"
ASC"
DESC"
CAccessConnm_