科生课程设计(实践)务书设计报告
(C++语言程序设计)
题 目
稿件理数系统
学生姓名
指导教师
学 院
专业班级
学生学号
计算机基础教学实验中心
20XX年 X 月 X 日
目 录
设计务书……………………………………………3
课程实践报告…………………………………………4
实践容…………………………………………………………4
二实践成果…………………………………………………………4
三程序功…………………………………………………………4
四设计思路…………………………………………………………5
五源程序……………………………………………………………7
六运行情况…………………………………………………………13
七实践心…………………………………………………………16
八实践收获足…………………………………………………18
C++语言程序设计务书
指导老师:
课程编号:
学时学分
学时:40
学分:2
二实践目
计算机实践科计算机基础教学重环节巩固学生计算机基础知识增强学生计算机应水改善学生知识结构具重意义
三实践务求
C++语言编程编程题目:
()统计班(35)学生成绩求实现功:
(1)输入学生学号6门课程成绩
(2)计算学生均分总分
(3)总分高低排出名次名次输出学生情况包括学号科成绩均分总分
(4)根户求输出某门课程(键盘输入课程号)成绩90分(含90分)总分前5名学生情况包括学号科成绩均分总分(5)根统计绘制总成绩五分制百分饼图(学利C++提供库函数绘制曲线图)
求:
利类实现学生学号成绩采文件输入排序 数组织采象数组 查阅相关资料写出系统设计说明书写出实践报告
(二)统计商品销售数求菜单实现功:
(1)输入件商品名称编号入库日期标价成
(2)输入件商品售价出售日期
(3)总销售量高低排出种商品名称售出件数销售额
(4)根户求输出某商品某月(键盘输入商品名称月份)均售价售出件数总利润(5)根统计绘制商品销售利润百分饼图(学利C++提供库函数绘制曲线图)
求:
利类实现数采文件输入排序 数组织采象数组 查阅相关资料写出系统设计说明书写出实践报告
(三)统计足球赛数求菜单实现功:
(1)输入场赛队名称客队名称赛日期队分客队分
(2)总分高低排出队名称总分胜负次数
(3)根户求输出某队某月(键盘输入队名月份)赛数(4)根户求输出某队场总分客场总分(5) 根户输入绘制某队成绩历史趋势图(学利C++提供库函数绘制曲线图)
求:
利类实现数采文件输入排序 数组织采象数组 查阅相关资料写出系统设计说明书写出实践报告
(四)统计稿件理数求菜单实现功:
(1)输入件稿件第作者名字稿件名称投稿日期作者省份
(2)输入件稿件发表日期审稿意见(3)作者省份高低排出省总发表篇数
(4)根户求输出某作者某月(键盘输入作者名月份)稿件数 (5) 根户输入绘制稿件省份百分饼图(学利C++提供库函数绘制曲线图)
求:
利类实现数采文件输入排序 数组织采象数组 查阅相关资料写出系统设计说明书写出实践报告
(五)统计电理数求菜单实现功:
(1)输入电表户名楼栋号抄表日期电表读数
(3)作者电量高低排出户总电量
(3)根户求输出某户某月(键盘输入户名月份)总电量(4)统计某楼栋某月某月(键盘输入)总电量 (5) 绘制楼栋电百分饼图(学利C++提供库函数绘制曲线图)
求:
利类实现数采文件输入排序 数组织象数组查阅相关资料写出系统设计说明书写出实践报告
五题选题
四实践纪律
学生遵守实践期间学院基规定外求做:
1.必须规定时间点独立完成务
2.迟早退尤擅缺席
五设计报告求
1. 务书必须作报告第页
2. 报告少3000字:总结实践心实践成果 程序功设计思路(程序流程图)源程序(加必注释)运行情况课程设计收获足等
六时间安排
两周时间
七成绩评定规
成绩分优良中格格五等
优:程序功完备报告深度 遵守实践纪律
良:程序功满足求报告容 遵守实践纪律
中:程序报告基满足求 遵守实践纪律
格:程序错误体运行报告书 基遵守实践纪律
格:程序完全错误严重违反实践纪律
C++语言程序设计报告
实践容
统计稿件理数求菜单实现功:
(1)输入件稿件第作者名字稿件名称投稿日期作者省份
(2)输入件稿件发表日期审稿意见(3)作者省份高低排出省总发表篇数
(4)根户求输出某作者某月(键盘输入作者名月份)稿件数 (5) 根户输入绘制稿件省份百分饼图(学利C++提供库函数绘制曲线图)
二实践成果
灵活运C++程序设计课程学基础知识独立设计型程序力该程序必须户界面友操作简洁方便提高工作效率
程序先户输入数存储作种功处理整程序基实现稿件理数系统统计
三 程序功
a) 录入功:写入关稿件基信息进行项功
b) 排序功:户作者省份省总发表篇数进行排序输出
c) 查询功:户根作者月份查出某作者某月稿件数没找予提示
d) 绘制饼状图功:系统根输入数绘制高价男生份百分饼图
e) 项退出功:环节里设退出功
四设计思路
统计稿件理数系统程序框图
开始
输出菜单提示信息
1
输入稿件第作者名字稿件名称投稿日期作者省份
2
输入件稿件发表日期审稿意见
3
省份排序
输入功数字
4
作者名月份查找
5
绘制百分饼状图
1
N
2
Y
N
3
AddNew()
Y
N
4
N
N
Y
AddNew()
Y
5
退出
Sort_by_province()
Y
N
DoFind()
Do print()
结束
五源程序
LeftViewcpp implementation of the CLeftView class
#include stdafxh
#include Odbch
#include OdbcDoch
#include LeftViewh
#include MainFrmh
#include OdbcViewh
#include CpbmSeth
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] __FILE__
#endif
CLeftView
IMPLEMENT_DYNCREATE(CLeftView CTreeView)
BEGIN_MESSAGE_MAP(CLeftView CTreeView){{AFX_MSG_MAP(CLeftView)
ON_NOTIFY_REFLECT(TVN_SELCHANGED OnSelchanged)}}AFX_MSG_MAP
Standard printing commands
ON_COMMAND(ID_FILE_PRINT CTreeViewOnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT CTreeViewOnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW CTreeViewOnFilePrintPreview)
END_MESSAGE_MAP()
CLeftView constructiondestruction
CLeftViewCLeftView()
{ TODO add construction code here}
CLeftView~CLeftView()
{
}
BOOL CLeftViewPreCreateWindow(CREATESTRUCT& cs)
{
TODO Modify the Window class or styles here by modifying
the CREATESTRUCT cs
csstyle | TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT|TVS_SHOWSELALWAYS
return CTreeViewPreCreateWindow(cs)
}
CLeftView drawing
void CLeftViewOnDraw(CDC* pDC)
{
COdbcDoc* pDoc GetDocument()
ASSERT_VALID(pDoc) TODO add draw code for native data here
}
CLeftView printing
BOOL CLeftViewOnPreparePrinting(CPrintInfo* pInfo)
{
default preparation
return DoPreparePrinting(pInfo)
}
void CLeftViewOnBeginPrinting(CDC* *pDC* CPrintInfo* *pInfo*)
{
TODO add extra initialization before printing
}
void CLeftViewOnEndPrinting(CDC* *pDC* CPrintInfo* *pInfo*)
{
TODO add cleanup after printing
}
void CLeftViewOnInitialUpdate()
{
CTreeViewOnInitialUpdate()
TODO You may populate your TreeView with items by directly accessing
its tree control through a call to GetTreeCtrl()
创建图列表
m_ImageListCreate( 20 20 ILC_COLOR16 4 1 )
图象列表添加4图标
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR1))
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR2) )
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR3) )
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR4) )
取Tree控件指出树结点图标m_ImageList中取
CTreeCtrl &m_TreeCtrl GetTreeCtrl()
m_TreeCtrlSetImageList( &m_ImageList TVSIL_NORMAL )
HTREEITEM hItem0 hItem1 hItem2
TV_INSERTSTRUCT tvstruct
tvstructhParentNULL
tvstructitemlParam0
tvstructitemmaskTVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_TEXT|TVIF_PARAM
tvstructitemiImage0
tvstructitemiSelectedImage0
tvstructitempszText 0000 作者
hItem0 m_TreeCtrlInsertItem(&tvstruct)
CDatabase db
CCpbmSet* pCpbmSet new CCpbmSet(&db)
pCpbmSet>m_strSort fCpbm ASC
if(pCpbmSet>IsOpen())
pCpbmSet>Open()
if(pCpbmSet>IsBOF())
pCpbmSet>MoveFirst()
while(pCpbmSet>IsEOF())
{
CString strTemp1 pCpbmSet>m_fcpbm
CString strTemp2 pCpbmSet>m_fcpmc
strTemp1TrimLeft()
strTemp1TrimRight()
strTemp2TrimLeft()
strTemp2TrimRight()
CString strTemp strTemp1 + + strTemp2
if(strTemp1Right(3) 000)
{
tvstructhParent hItem0
tvstructitemlParam 1
tvstructitemiImage1
tvstructitemiSelectedImage1
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
hItem1 m_TreeCtrlInsertItem(&tvstruct)}
else if(strTemp1Right(2) 00)
{
tvstructhParent hItem1
tvstructitemlParam 2
tvstructitemiImage2
tvstructitemiSelectedImage2
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
hItem2 m_TreeCtrlInsertItem(&tvstruct)
}
else
{
tvstructhParent hItem2
tvstructitemlParam 3
tvstructitemiImage3
tvstructitemiSelectedImage3
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
m_TreeCtrlInsertItem(&tvstruct)
}pCpbmSet>MoveNext()
}
pCpbmSet>Close()
delete pCpbmSet
}
CLeftView diagnostics
#ifdef _DEBUG
void CLeftViewAssertValid() const
{
CTreeViewAssertValid()
}
void CLeftViewDump(CDumpContext& dc) const
{
CTreeViewDump(dc)
}
COdbcDoc* CLeftViewGetDocument() nondebug version is inline
{
ASSERT(m_pDocument>IsKindOf(RUNTIME_CLASS(COdbcDoc)))
return (COdbcDoc*)m_pDocument
}
#endif _DEBUG
CLeftView message handlers
void CLeftViewOnSelchanged(NMHDR* pNMHDR LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView (NM_TREEVIEW*)pNMHDR
TODO Add your control notification handler code here
CTreeCtrl &m_TreeCtrl GetTreeCtrl()
HTREEITEM CurItem m_TreeCtrlGetSelectedItem()
TVITEM TreeCtrlItem
TreeCtrlItemhItem CurItem
m_TreeCtrlGetItem(&TreeCtrlItem)
CString tempString TreeCtrlItempszText
CString tempString m_TreeCtrlGetItemText(m_TreeCtrlGetSelectedItem())
m_strCpbm tempStringLeft(4)
m_nCurlParam TreeCtrlItemlParam
CMainFrame *MainFrame(CMainFrame *) AfxGetMainWnd()
COdbcView * pOdbcView MainFrame>GetRightPane()
pOdbcView>ListBuild()
*pResult 0
}
CpqkSetcpp implementation file
#include stdafxh
#include Odbch
#include CpqkSeth
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] __FILE__
#endif
CCpqkSet
IMPLEMENT_DYNAMIC(CCpqkSet CRecordset)
CCpqkSetCCpqkSet(CDatabase* pdb) CRecordset(pdb)
{
{{AFX_FIELD_INIT(CCpqkSet)
m_fgsbm _T()
m_fcpbm _T()
m_nFields 2
}}AFX_FIELD_INIT
m_nDefaultType snapshot
}
CString CCpqkSetGetDefaultConnect()
{
return _T(ODBCDSNCaie)
}
CString CCpqkSetGetDefaultSQL()
{
return _T([cpqk])
}
void CCpqkSetDoFieldExchange(CFieldExchange* pFX)
{
{{AFX_FIELD_MAP(CCpqkSet)
pFX>SetFieldType(CFieldExchangeoutputColumn)
RFX_Text(pFX _T([fgsbm]) m_fgsbm)
RFX_Text(pFX _T([fcpbm]) m_fcpbm)
}}AFX_FIELD_MAP
}
CCpqkSet diagnostics
#ifdef _DEBUG
void CCpqkSetAssertValid() const
{
CRecordsetAssertValid()
}
void CCpqkSetDump(CDumpContext& dc) const
{
CRecordsetDump(dc)
}
#endif _DEBUG
CpqkSetcpp implementation file
#include stdafxh
#include Odbch
#include CpqkSeth
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] __FILE__
#endif
CCpqkSet
IMPLEMENT_DYNAMIC(CCpqkSet CRecordset)
CCpqkSetCCpqkSet(CDatabase* pdb) CRecordset(pdb)
{
{{AFX_FIELD_INIT(CCpqkSet)
m_fgsbm _T()
m_fcpbm _T()
m_nFields 2
}}AFX_FIELD_INIT
m_nDefaultType snapshot
}
CString CCpqkSetGetDefaultConnect()
{
return _T(ODBCDSNCaie)
}
CString CCpqkSetGetDefaultSQL()
{
return _T([cpqk])
}
void CCpqkSetDoFieldExchange(CFieldExchange* pFX)
{
{{AFX_FIELD_MAP(CCpqkSet)
pFX>SetFieldType(CFieldExchangeoutputColumn)
RFX_Text(pFX _T([fgsbm]) m_fgsbm)
RFX_Text(pFX _T([fcpbm]) m_fcpbm)
}}AFX_FIELD_MAP
}
CCpqkSet diagnostics
#ifdef _DEBUG
void CCpqkSetAssertValid() const
{
CRecordsetAssertValid()
}
void CCpqkSetDump(CDumpContext& dc) const
{
CRecordsetDump(dc)
}
#endif _DEBUG
DqbmSetcpp implementation file
#include stdafxh
#include Odbch
#include DqbmSeth
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] __FILE__
#endif
CDqbmSet
IMPLEMENT_DYNAMIC(CDqbmSet CRecordset)
CDqbmSetCDqbmSet(CDatabase* pdb)
CRecordset(pdb)
{
{{AFX_FIELD_INIT(CDqbmSet)
m_fdqbm _T()
m_fdqmc _T()
m_nFields 2
}}AFX_FIELD_INIT
m_nDefaultType dynaset
}
CString CDqbmSetGetDefaultConnect()
{
return _T(ODBCDSNCaie)
}
CString CDqbmSetGetDefaultSQL()
{
return _T([dqbm])
}
void CDqbmSetDoFieldExchange(CFieldExchange* pFX)
{
{{AFX_FIELD_MAP(CDqbmSet)
pFX>SetFieldType(CFieldExchangeoutputColumn)
RFX_Text(pFX _T([fdqbm]) m_fdqbm)
RFX_Text(pFX _T([fdqmc]) m_fdqmc)
}}AFX_FIELD_MAP
}
CDqbmSet diagnostics
#ifdef _DEBUG
void CDqbmSetAssertValid() const
{
CRecordsetAssertValid()
}
void CDqbmSetDump(CDumpContext& dc) const
{
CRecordsetDump(dc)
}
#endif _DEBUG
DqbmSetcpp implementation file
#include stdafxh
#include Odbch
#include DqbmSeth
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] __FILE__
#endif
CDqbmSet
IMPLEMENT_DYNAMIC(CDqbmSet CRecordset)
CDqbmSetCDqbmSet(CDatabase* pdb) CRecordset(pdb)
{
{{AFX_FIELD_INIT(CDqbmSet)
m_fdqbm _T()
m_fdqmc _T()
m_nFields 2
}}AFX_FIELD_INIT
m_nDefaultType dynaset
}
CString CDqbmSetGetDefaultConnect()
{
return _T(ODBCDSNCaie)
}
CString CDqbmSetGetDefaultSQL()
{
return _T([dqbm])
}
void CDqbmSetDoFieldExchange(CFieldExchange* pFX)
{
{{AFX_FIELD_MAP(CDqbmSet)
pFX>SetFieldType(CFieldExchangeoutputColumn)
RFX_Text(pFX _T([fdqbm]) m_fdqbm)
RFX_Text(pFX _T([fdqmc]) m_fdqmc)
}}AFX_FIELD_MAP
}
CDqbmSet diagnostics
#ifdef _DEBUG
void CDqbmSetAssertValid() const
{
CRecordsetAssertValid()
}
void CDqbmSetDump(CDumpContext& dc) const
{
CRecordsetDump(dc)
}
#endif _DEBUG
LeftViewcpp implementation of the CLeftView class
#include stdafxh
#include Odbch
#include OdbcDoch
#include LeftViewh
#include MainFrmh
#include OdbcViewh
#include CpbmSeth
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] __FILE__
#endif
CLeftView
IMPLEMENT_DYNCREATE(CLeftView CTreeView)
BEGIN_MESSAGE_MAP(CLeftView CTreeView)
{{AFX_MSG_MAP(CLeftView)
ON_NOTIFY_REFLECT(TVN_SELCHANGED OnSelchanged)
}}AFX_MSG_MAP
Standard printing commands
ON_COMMAND(ID_FILE_PRINT CTreeViewOnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT CTreeViewOnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW CTreeViewOnFilePrintPreview)
END_MESSAGE_MAP()
CLeftView constructiondestruction
CLeftViewCLeftView()
{
TODO add construction code here
}
CLeftView~CLeftView()
{
}
BOOL CLeftViewPreCreateWindow(CREATESTRUCT& cs)
{
TODO Modify the Window class or styles here by modifying
the CREATESTRUCT cs
csstyle | TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT|TVS_SHOWSELALWAYS
return CTreeViewPreCreateWindow(cs)
}
CLeftView drawing
void CLeftViewOnDraw(CDC* pDC)
{
COdbcDoc* pDoc GetDocument()
ASSERT_VALID(pDoc)
TODO add draw code for native data here
}
CLeftView printing
BOOL CLeftViewOnPreparePrinting(CPrintInfo* pInfo)
{
default preparation
return DoPreparePrinting(pInfo)
}
void CLeftViewOnBeginPrinting(CDC* *pDC* CPrintInfo* *pInfo*)
{
TODO add extra initialization before printing
}
void CLeftViewOnEndPrinting(CDC* *pDC* CPrintInfo* *pInfo*)
{
TODO add cleanup after printing
}
void CLeftViewOnInitialUpdate()
{
CTreeViewOnInitialUpdate()
TODO You may populate your TreeView with items by directly accessing
its tree control through a call to GetTreeCtrl()
创建图列表
m_ImageListCreate( 20 20 ILC_COLOR16 4 1 )
图象列表添加4图标
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR1))
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR2) )
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR3) )
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR4) )
取Tree控件指出树结点图标m_ImageList中取
CTreeCtrl &m_TreeCtrl GetTreeCtrl()
m_TreeCtrlSetImageList( &m_ImageList TVSIL_NORMAL )
HTREEITEM hItem0 hItem1 hItem2
TV_INSERTSTRUCT tvstruct
tvstructhParentNULL
tvstructitemlParam0
tvstructitemmaskTVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_TEXT|TVIF_PARAM
tvstructitemiImage0
tvstructitemiSelectedImage0
tvstructitempszText 0000 作者
hItem0 m_TreeCtrlInsertItem(&tvstruct)
CDatabase db
CCpbmSet* pCpbmSet new CCpbmSet(&db)
pCpbmSet>m_strSort fCpbm ASC
if(pCpbmSet>IsOpen())
pCpbmSet>Open()
if(pCpbmSet>IsBOF())
pCpbmSet>MoveFirst()
while(pCpbmSet>IsEOF())
{
CString strTemp1 pCpbmSet>m_fcpbm
CString strTemp2 pCpbmSet>m_fcpmc
strTemp1TrimLeft()
strTemp1TrimRight()
strTemp2TrimLeft()
strTemp2TrimRight()
CString strTemp strTemp1 + + strTemp2
if(strTemp1Right(3) 000)
{
tvstructhParent hItem0
tvstructitemlParam 1
tvstructitemiImage1
tvstructitemiSelectedImage1
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
hItem1 m_TreeCtrlInsertItem(&tvstruct)
}
else if(strTemp1Right(2) 00)
{
tvstructhParent hItem1
tvstructitemlParam 2
tvstructitemiImage2
tvstructitemiSelectedImage2
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
hItem2 m_TreeCtrlInsertItem(&tvstruct)
}
else
{
tvstructhParent hItem2
tvstructitemlParam 3
tvstructitemiImage3
tvstructitemiSelectedImage3
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
m_TreeCtrlInsertItem(&tvstruct)
}
pCpbmSet>MoveNext()
}
pCpbmSet>Close()
delete pCpbmSet
}
CLeftView diagnostics
#ifdef _DEBUG
void CLeftViewAssertValid() const
{
CTreeViewAssertValid()
}
void CLeftViewDump(CDumpContext& dc) const
{
CTreeViewDump(dc)
}
COdbcDoc* CLeftViewGetDocument() nondebug version is inline
{
ASSERT(m_pDocument>IsKindOf(RUNTIME_CLASS(COdbcDoc)))
return (COdbcDoc*)m_pDocument
}
#endif _DEBUG
CLeftView message handlers
void CLeftViewOnSelchanged(NMHDR* pNMHDR LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView (NM_TREEVIEW*)pNMHDR
TODO Add your control notification handler code here
CTreeCtrl &m_TreeCtrl GetTreeCtrl()
HTREEITEM CurItem m_TreeCtrlGetSelectedItem()
TVITEM TreeCtrlItem
TreeCtrlItemhItem CurItem
m_TreeCtrlGetItem(&TreeCtrlItem)
CString tempString TreeCtrlItempszText
CString tempString m_TreeCtrlGetItemText(m_TreeCtrlGetSelectedItem())
m_strCpbm tempStringLeft(4)
m_nCurlParam TreeCtrlItemlParam
CMainFrame *MainFrame(CMainFrame *) AfxGetMainWnd()
COdbcView * pOdbcView MainFrame>GetRightPane()
pOdbcView>ListBuild()
*pResult 0
}
LeftViewcpp implementation of the CLeftView class
#include stdafxh
#include Odbch
#include OdbcDoch
#include LeftViewh
#include MainFrmh
#include OdbcViewh
#include CpbmSeth
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] __FILE__
#endif
CLeftView
IMPLEMENT_DYNCREATE(CLeftView CTreeView)
BEGIN_MESSAGE_MAP(CLeftView CTreeView)
{{AFX_MSG_MAP(CLeftView)
ON_NOTIFY_REFLECT(TVN_SELCHANGED OnSelchanged)
}}AFX_MSG_MAP
Standard printing commands
ON_COMMAND(ID_FILE_PRINT CTreeViewOnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT CTreeViewOnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW CTreeViewOnFilePrintPreview)
END_MESSAGE_MAP()
CLeftView constructiondestruction
CLeftViewCLeftView()
{
TODO add construction code here
}
CLeftView~CLeftView()
{
}
BOOL CLeftViewPreCreateWindow(CREATESTRUCT& cs)
{
TODO Modify the Window class or styles here by modifying
the CREATESTRUCT cs
csstyle | TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT|TVS_SHOWSELALWAYS
return CTreeViewPreCreateWindow(cs)
}
CLeftView drawing
void CLeftViewOnDraw(CDC* pDC)
{
COdbcDoc* pDoc GetDocument()
ASSERT_VALID(pDoc)
TODO add draw code for native data here
}
CLeftView printing
BOOL CLeftViewOnPreparePrinting(CPrintInfo* pInfo)
{
default preparation
return DoPreparePrinting(pInfo)
}
void CLeftViewOnBeginPrinting(CDC* *pDC* CPrintInfo* *pInfo*)
{
TODO add extra initialization before printing
}
void CLeftViewOnEndPrinting(CDC* *pDC* CPrintInfo* *pInfo*)
{
TODO add cleanup after printing
}
void CLeftViewOnInitialUpdate()
{
CTreeViewOnInitialUpdate()
TODO You may populate your TreeView with items by directly accessing
its tree control through a call to GetTreeCtrl()
创建图列表
m_ImageListCreate( 20 20 ILC_COLOR16 4 1 )
图象列表添加4图标
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR1))
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR2) )
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR3) )
m_ImageListAdd(AfxGetApp()>LoadIcon(IDI_CAR4) )
取Tree控件指出树结点图标m_ImageList中取
CTreeCtrl &m_TreeCtrl GetTreeCtrl()
m_TreeCtrlSetImageList( &m_ImageList TVSIL_NORMAL )
HTREEITEM hItem0 hItem1 hItem2
TV_INSERTSTRUCT tvstruct
tvstructhParentNULL
tvstructitemlParam0
tvstructitemmaskTVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_TEXT|TVIF_PARAM
tvstructitemiImage0
tvstructitemiSelectedImage0
tvstructitempszText 0000 作者
hItem0 m_TreeCtrlInsertItem(&tvstruct)
CDatabase db
CCpbmSet* pCpbmSet new CCpbmSet(&db)
pCpbmSet>m_strSort fCpbm ASC
if(pCpbmSet>IsOpen())
pCpbmSet>Open()
if(pCpbmSet>IsBOF())
pCpbmSet>MoveFirst()
while(pCpbmSet>IsEOF())
{
CString strTemp1 pCpbmSet>m_fcpbm
CString strTemp2 pCpbmSet>m_fcpmc
strTemp1TrimLeft()
strTemp1TrimRight()
strTemp2TrimLeft()
strTemp2TrimRight()
CString strTemp strTemp1 + + strTemp2
if(strTemp1Right(3) 000)
{
tvstructhParent hItem0
tvstructitemlParam 1
tvstructitemiImage1
tvstructitemiSelectedImage1
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
hItem1 m_TreeCtrlInsertItem(&tvstruct)
}
else if(strTemp1Right(2) 00)
{
tvstructhParent hItem1
tvstructitemlParam 2
tvstructitemiImage2
tvstructitemiSelectedImage2
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
hItem2 m_TreeCtrlInsertItem(&tvstruct)
}
else
{
tvstructhParent hItem2
tvstructitemlParam 3
tvstructitemiImage3
tvstructitemiSelectedImage3
tvstructitempszText (LPTSTR)(LPCTSTR)strTemp
m_TreeCtrlInsertItem(&tvstruct)
}
pCpbmSet>MoveNext()
}
pCpbmSet>Close()
delete pCpbmSet
}
CLeftView diagnostics
#ifdef _DEBUG
void CLeftViewAssertValid() const
{
CTreeViewAssertValid()
}
void CLeftViewDump(CDumpContext& dc) const
{
CTreeViewDump(dc)
}
COdbcDoc* CLeftViewGetDocument() nondebug version is inline
{
ASSERT(m_pDocument>IsKindOf(RUNTIME_CLASS(COdbcDoc)))
return (COdbcDoc*)m_pDocument
}
#endif _DEBUG
CLeftView message handlers
void CLeftViewOnSelchanged(NMHDR* pNMHDR LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView (NM_TREEVIEW*)pNMHDR
TODO Add your control notification handler code here
CTreeCtrl &m_TreeCtrl GetTreeCtrl()
HTREEITEM CurItem m_TreeCtrlGetSelectedItem()
TVITEM TreeCtrlItem
TreeCtrlItemhItem CurItem
m_TreeCtrlGetItem(&TreeCtrlItem)
CString tempString TreeCtrlItempszText
CString tempString m_TreeCtrlGetItemText(m_TreeCtrlGetSelectedItem())
m_strCpbm tempStringLeft(4)
m_nCurlParam TreeCtrlItemlParam
CMainFrame *MainFrame(CMainFrame *) AfxGetMainWnd()
COdbcView * pOdbcView MainFrame>GetRightPane()
pOdbcView>ListBuild()
*pResult 0
}
*++
Copyright (c) 19971998 Microsoft Corporation
Module Name
basetsdh
Abstract
Type definitions for the basic sized types
Author
Jeff Havens (jhavens) 23Oct1997
Revision History
*
#ifndef _BASETSD_H_
#define _BASETSD_H_
#ifdef __cplusplus
extern C {
#endif
The following types are guaranteed to be signed and 32 bits wide
typedef int LONG32 *PLONG32
typedef int INT32 *PINT32
The following types are guaranteed to be unsigned and 32 bits wide
typedef unsigned int ULONG32 *PULONG32
typedef unsigned int DWORD32 *PDWORD32
typedef unsigned int UINT32 *PUINT32
The INT_PTR is guaranteed to be the same size as a pointer Its
size with change with pointer size (3264) It should be used
anywhere that a pointer is cast to an integer type UINT_PTR is
the unsigned variation
HALF_PTR is half the size of a pointer it intended for use with
within strcuture which contain a pointer and two small fields
UHALF_PTR is the unsigned variation
#ifdef _WIN64
typedef __int64 INT_PTR *PINT_PTR
typedef unsigned __int64 UINT_PTR *PUINT_PTR
#define MAXINT_PTR (0x7fffffffffffffffI64)
#define MININT_PTR (0x8000000000000000I64)
#define MAXUINT_PTR (0xffffffffffffffffUI64)
typedef unsigned int UHALF_PTR *PUHALF_PTR
typedef int HALF_PTR *PHALF_PTR
#define MAXUHALF_PTR (0xffffffffUL)
#define MAXHALF_PTR (0x7fffffffL)
#define MINHALF_PTR (0x80000000L)
#pragma warning(disable4311) type cast truncation
#if defined(__midl)
__inline
unsigned long
HandleToUlong(
void *h
)
{
return((unsigned long) h )
}
__inline
unsigned long
PtrToUlong(
void *p
)
{
return((unsigned long) p )
}
__inline
unsigned short
PtrToUshort(
void *p
)
{
return((unsigned short) p )
}
__inline
long
PtrToLong(
void *p
)
{
return((long) p )
}
__inline
short
PtrToShort(
void *p
)
{
return((short) p )
}
#endif
#pragma warning(34311) type cast truncation
#else
typedef long INT_PTR *PINT_PTR
typedef unsigned long UINT_PTR *PUINT_PTR
#define MAXINT_PTR (0x7fffffffL)
#define MININT_PTR (0x80000000L)
#define MAXUINT_PTR (0xffffffffUL)
typedef unsigned short UHALF_PTR *PUHALF_PTR
typedef short HALF_PTR *PHALF_PTR
#define MAXUHALF_PTR 0xffff
#define MAXHALF_PTR 0x7fff
#define MINHALF_PTR 0x8000
#define HandleToUlong( h ) ((ULONG) (h) )
#define PtrToUlong( p ) ((ULONG) (p) )
#define PtrToLong( p ) ((LONG) (p) )
#define PtrToUshort( p ) ((unsigned short) (p) )
#define PtrToShort( p ) ((short) (p) )
#endif
SIZE_T used for counts or ranges which need to span the range of
of a pointer SSIZE_T is the signed variation
typedef UINT_PTR SIZE_T *PSIZE_T
typedef INT_PTR SSIZE_T *PSSIZE_T
The following types are guaranteed to be signed and 64 bits wide
typedef __int64 LONG64 *PLONG64
typedef __int64 INT64 *PINT64
The following types are guaranteed to be unsigned and 64 bits wide
typedef unsigned __int64 ULONG64 *PULONG64
typedef unsigned __int64 DWORD64 *PDWORD64
typedef unsigned __int64 UINT64 *PUINT64
#ifdef __cplusplus
}
#endif
#endif _BASETSD_H_
六运行情况
1程序Dialog话框
2程序界面
七实践心
课程学程中遇面问题:
1刚开始C++实践理课学时学兴趣高总想着够完全掌握PPT知识做成完美程序着学进展调试程序总出现问题夸张次出现204ERRORS常知道正确期房插入程序块较严格语法规时难接受产生畏难情绪总怕怕学导致没学
2注重理学忽视机编程实践造成笔纸编程奇怪现象特刚开始时开始编译连接手忙脚乱总会出现许错误时程序出现错误更理解该查找错误排错误
3前期学中没抓紧总觉难希通突击搞定课程学事实课程实践时积累时突击前面基础够扎实面险法弥补
4发现期学中急求成总想编写综合性程序老师求次性快完成直接导致编程序时乱法阅读
发现学课程没什窍门采笨技巧:
认真听讲积极思考提高课效率老师课讲述课程实践重点难点听课程够达事半功倍目
动机实践提高动手实时着急通机实践验证学理通机器查找错误巩固概念通提高机促进理学开阔编程思路提高反映效率提高分析问题解决问题锻炼心理素质提高心理承受
第二次计算机实践课程第次网页设计然两次完成务感觉较迷茫课时没认真听C++课程老师讲解学相糟糕设计较程序便请教老师老师建议找模板认真仔细理解懂然根实践容适修改应该没问题
老师话莫鼓励觉滋生傲慢态度模板行嘛事桩啊结果非实践程中碰许麻烦
中省份省总发表篇数进行排序问题刚开始真会弄开始维数组排序太明白询问周边学知道Access导入C++利Access排序功调试成功听讲解便方法学讨学请教时候失方法智慧毕竟全面集体力量强
时运行时老会出现错误发现实里面参数复杂着error提示改实简单结果事实时点102错误全部搞定错误三类:
1 号分号等符号错
2 写等造成应问题
3 变量完全修改
改完执行时发现界面界面略加修改美观少运行功利运行存瑕疵太会弄清回事问学帮助成功解决问题真谢谢
终功告成欣慰次实践中仅弥补C++课落容尤指针块部分然现概念搞懂见程序够理解次C++实践学期学知识总复总实践知道知识点运更知道知识点搞明白实践出真知通次实践系统课第四次回顾猛然觉C++二级考试更握
门课程实践程中更领悟学重性学加强交流便互相时答疑解惑时学会采种形式进行交流仅传统面面进行相互答疑时利网络通百度知道百度文库邮件BBS进行网交流学会绝问题积累
时次实践中开阔眼界开思路阅读关C++编程教程通理解作者C++法提高C++理解方便未C++进步学
八课程设计收获足
选定设计题目学会进行分析理清思路出相应数学模型掌握顶设计方法问题进行模块化领会结构化程序设计方法熟练掌握C++语言基语法灵活运种数类型进步掌握集成环境调试程序修改程序树立正确程序设计思想培养程序设计力创新力学会面象程序设计方法掌握面象程序设计般规律进行程序设计基技训练算法分析设计类设计
通次实践认识C++程序设计门实践性强课程学程序设计仅限纸谈兵许程序方法技巧光听课书学必须通量机实践慢慢积累起程序设计力培养必须实践重天学锻炼机会外通次实践培养做事认真严谨态度
程序设计程序编译运行程中避免会出现会懂方出现程序错误编译运行等种种困难必须非常严谨语句锻炼严谨思维
足:教材例题时感觉明白说明原理掌握机总错误百出掌握理知识远远够
附参考文献:
1C++程序设计实践教程 中国铁道出版社(2008)
2C++程序设计 中国铁道出版社(2008)
3 网载资料 事务理系统
学院:物理科学技术学院
专业班级:物理电子科学类1007班
学号:1404100725姓名:阮静雅
指导老师:李力
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档