




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计面向对象程序设计 第 1 页 共 46 页 面向对象程序设计面向对象程序设计 课程设计报告课程设计报告 学学 号 号 2010100401420101004014 班级序号 班级序号 116101 28116101 28 姓姓 名 名 冯齐奇冯齐奇 指导老师 指导老师 陈陈 亮亮 成成 绩 绩 中国地中国地质质大学 武大学 武汉汉 信息工程学院信息工程系信息工程学院信息工程系 2011 年年 6 月月 面向对象程序设计面向对象程序设计 第 2 页 共 46 页 实习题目一实习题目一 第一题 第一题 需求规格说明需求规格说明 一 题号及题目一 题号及题目 1 1 橡皮筋画线程序 要求 橡皮筋画线程序 要求 利用鼠标在视图上绘制线 能够设置线的颜色和宽度 能够用鼠标拾取绘制的某条线 被选中的线能够高亮显示 并且弹出对话框 输 入线的属性保存起来 能够将绘制的线数据保存在 Line dat 文本文件中 打开线数据文件 Line dat 可以显示出文件里面的线图形 二 问题描述二 问题描述 该题需要设计一个画线程序 在该程序中需要实现画线 设置线宽 设置线的颜色 拾取线 拾取线后的特殊属性 保存线数据 打开线数据等功能 画线和拾取线功能都需 要靠鼠标的左右键的信号来实现 设置线宽和颜色靠对话框输入 变换数值 保存和打开 线数据是存储的线上各点 线宽 颜色等属性 然后在视图上重绘 三 问题分析三 问题分析 该题需要设计一个画线程序 用不同的模块来实现不同的功能 而这些功能主要是在 视图类中实现 画线和拾取线功能都需要靠鼠标的左右键的信号来实现 设置线宽和颜色 靠对话框输入 变换数值 保存和打开线数据是存储的线上各点 线宽 颜色等属性 然 后在视图上重绘 除此之外 还要设置其他的类来保存数据 算法设计算法设计 一 设计思想一 设计思想 1 由于画线和提取线的功能都是靠鼠标的信息来确定的 故需设定一个成员变量来确 定鼠标的状态 设定成员变量为 m Get 来判断是进行画线操作还是提取线操作 2 画线功能 当 m Get 1 靠鼠标左键的 down up 和 mousemove 信息来传递给函 数来实现画线 其各自的函数为 OnLButtonDown OnLButtonUp OnMouseMove 实质上是记录下了各点 成员变量为起点 m startPoin 和终点 m endPoint 再增加了鼠标移动响应函数 OnMouseMove 后 必须是鼠标按下去之后才 开始绘图 因此 添加一个变量来表示鼠标左键是否按下去这一状态 于是 为视图类添 加一个 BOOL 型的私有变量成员 m bPaint 当鼠标左键按下去时 此变量为真 当鼠标左 键弹起来时 此变量为假 于是在视图类构造函数中 m bPaint FALSE 在视图类函数 OnLButtonDown 中 m bPaint TRUE 在视图类函数 OnLButtonUp 中 m bPaint FALSE 这时在函数 OnMouseMove 中 通过判断 m bPaint 是否等于 TRUE 来确定画线 3 提取线功能 当 m Get 0 也是靠鼠标左键的 down up 和 mousemove 信息来传 递给函数实现提取线的功能的 由于在鼠标点击线的过程中有可能存在误差 不能准确的 面向对象程序设计面向对象程序设计 第 3 页 共 46 页 点到线条 因此应该在提取线时鼠标点击只要在线条附近就可以 故必须计算两个点之间 的距离 当这个距离在允许的误差范围内时 就实现提取线的功能 为此 另建一个函数 Gettingfunction 来确定鼠标点击是否在误差范围内 另一方面 提取线时要把线的属性 更改为高亮显示 这里我用另外一种醒目的颜色代替 这时需将画笔的属性改掉 来突出 显示选中的线 除此之外 在选中线后还要弹出对话框 输入线的属性 并保存下来 这 时在函数 Gettingfunction 中添加弹出对话框的指令 4 保存线数据是通过菜单项确定 然后弹出对话框 记录数据的名字 把线的属性 起点 终点 线宽 颜色 储存起来 并不是保存了一条线 同理 打开线数据通过菜 单项确定 弹出对话框 输入要打开的文件名 然后提取出线的属性 起点 终点 线宽 颜色 然后在试图上重绘 就得到了原来保存的线数据 二 设计表示二 设计表示 1 首先确定菜单项 除去原有的菜单项后 包括线的操作和线的保存和打开 关系为 2 确定菜单项各自对应的对话框 1 线属性对话框 其中宽度对应的成员变量为 m nLineWidth 颜色分别为 m red m green m blue 通过输入值传递给函数 并建立了类 Dlg 初始化各成员变量 线的操作 线的属性 开始画线 拾取线 清除线 存储操作 保存 打开 面向对象程序设计面向对象程序设计 第 4 页 共 46 页 2 提取线后弹出的对话框 弹出对话框后 分别输入宽度 颜色保存起来 为 其建立类 CSave 实现提取线并保存 3 保存和打开线数据的对话框 在编辑框中输入文件名 存储或打开线数据 为其建立类 CFileDat 实现存储或打开线的数据功能 3 各功能子模块和主要函数的说明 1 画线的功能 主要靠鼠标信息传递 其主要函数在视图类中表示为函数 OnLButtonDown OnLButtonUp OnMouseMove 各函数的实现为 void CMyView OnLButtonDown UINT nFlags CPoint point TODO Add your message handler code here and or call default 面向对象程序设计面向对象程序设计 第 5 页 共 46 页 m bPaint 1 确定鼠标的移动效果 m startPoint point m endPoint point Gettingfunction 拾取线的功能 CView OnLButtonDown nFlags point void CMyView OnLButtonUp UINT nFlags CPoint point TODO Add your message handler code here and or call default if m Get 0 return m bPaint 0 Getting m StartPoint m startPoint m startPoint m endPoint m nLineWidth m red m green m blue Getting m EndPoint m endPoint Getting m red m red Getting m nLineWidth m nLineWidth Getting m green m green Getting m blue m blue Save push back Getting CView OnLButtonUp nFlags point void CMyView OnMouseMove UINT nFlags CPoint point TODO Add your message handler code here and or call default if m Drawline 0 return if m bPaint 0 return if m Get 0 return CDC pdc GetDC CPen pen 0 m nLineWidth RGB m red m green m blue pdc SelectObject pdc SetROP2 R2 NOTXORPEN pdc MoveTo m startPoint pdc LineTo m endPoint 面向对象程序设计面向对象程序设计 第 6 页 共 46 页 m endPoint point CGraph pGraph new CGraph m startPoint m endPoint m nLineWidth m red m green m blue m ptrArray Add pGraph pdc MoveTo m startPoint pdc LineTo m endPoint ReleaseDC pdc CView OnMouseMove nFlags point 2 拾取线的功能 主要靠鼠标的信息传递 其主要函数在视图类中表示为 OnLButtonDown OnLButtonUp OnMouseMove Gettingfunction 其中函数 Gettingfunction 的具体实现为 void CMyView Gettingfunction if m Get 1 return for int i 0 i Save size i 以下为计算点击的点和实际点的误差 double d sqrt pow Save i m StartPoint y Save i m EndPoint y 2 pow Save i m StartPoint x Save i m EndPoint x 2 double d1 sqrt pow Save i m StartPoint y m startPoint y 2 pow Save i m StartPoint x m endPoint x 2 double d2 sqrt pow Save i m EndPoint y m startPoint y 2 pow Save i m EndPoint x m endPoint x 2 if d1 d2 dSelectObject pdc MoveTo Save i m StartPoint pdc LineTo Save i m EndPoint CPen pen1 0 Save i m nLineWidth 10 RGB 0 255 255 实现特殊颜色表示 pdc SelectObject pdc MoveTo Save i m StartPoint pdc LineTo Save i m EndPoint CSave dlg save dlg save DoModal 面向对象程序设计面向对象程序设计 第 7 页 共 46 页 3 设置线属性功能 主要通过菜单项弹出对话框来确定 其主要函数在视图类中表 示为函数 OnSetting 其具体实现为 void CMyView OnSetting TODO Add your command handler code here m Drawline 1 m Get 1 Dlg Djg Djg DoModal if Djg DoModal IDOK return m nLineWidth Djg m nLineWidth m red Djg m red m green Djg m green m blue Djg m blue 4 存储和打开线数据的功能 主要通过菜单项弹出对话框来确定 其主要函数在视 图类中表示时为 OnSave 和 OnOpen 其具体实现为 void CMyView OnSave TODO Add your command handler code here CFileDat filedat if filedat DoModal IDOK return int size Save size ofstream OFile filedat m File ios base binary OFile write char for int j 0 jGetting Save j OFile write char OFile close void CMyView OnOpen TODO Add your command handler code here CFileDat filedat1 if filedat1 DoModal IDOK return int size ifstream IFile filedat1 m File ios base binary 面向对象程序设计面向对象程序设计 第 8 页 共 46 页 IFile read char Save clear for int k 0 kGetting IFile close OnPaint 4 各个类之间的调用关系图 工程自动生成的类 主要的实现部分 视图类 CMyView 各功能的主要具体实 现部分 CMyApp 线属性对 话框 CDlg 提取线 CGetting 线属性存 储 CSave CMainFra me CAboutDlg 线上点数 组 CGraph 文件保存 和打开 CFileDat CMyDoc 面向对象程序设计面向对象程序设计 第 9 页 共 46 页 调试报告调试报告 一 遇到的问题及解决方法 一 遇到的问题及解决方法 1 在视图框内画图后 当改变视图框的大小 最小化视图框或者将视图框移出桌面时 原来的线条消失不见或者出现多条线条错综复杂 解决方法 首先添加一个 CGraph 类来存储线上各点 然后在视图类 CMyView 中的函数 OnMouseMove 中添加代码段用来把线上各点添加到动态数组中 CGraph pGraph new CGraph m startPoint m endPoint m nLineWidth m red m green m blue m ptrArray Add pGraph 由于改变视图框会调用视图类 CMyView 中的函数 OnDraw 故还需在 OnDrow 函数中 添加代码用来在视图上显示出已画的线条 CPen pen PS SOLID m nLineWidth RGB m red m green m blue 面向对象程序设计面向对象程序设计 第 10 页 共 46 页 pDC SelectObject CBrush pBrush CBrush FromHandle HBRUSH GetStockObject NULL BRUSH pDC SelectObject pBrush for int i 0 iMoveTo CGraph m ptrArray GetAt i m ptStart pDC LineTo CGraph m ptrArray GetAt i m ptEnd 2 保存线数据后不能打开先前的线数据 试图类上是空白 解决方法 修改保存和打开函数 OnSave 和 OnOpen 是存储的线的属性 附录附录 一 源程序清单 主要为视图类和自己添加的类 一 源程序清单 主要为视图类和自己添加的类 1 1 视图类具体实现 视图类具体实现 画线 View cpp implementation of the CMyView class include stdafx h include 画线 h include 画线 Doc h include 画线 View h include Getting h include include math h include Graph h include Save h using namespace std ifdef DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif CMyView IMPLEMENT DYNCREATE CMyView CView BEGIN MESSAGE MAP CMyView CView AFX MSG MAP CMyView ON WM LBUTTONDOWN ON WM LBUTTONUP 面向对象程序设计面向对象程序设计 第 11 页 共 46 页 ON WM MOUSEMOVE ON COMMAND ID start Onstart ON COMMAND ID select Onselect ON COMMAND ID Getting OnGetting ON COMMAND ID Save OnSave ON COMMAND ID Open OnOpen ON COMMAND ID CLEAR OnClear AFX MSG MAP Standard printing commands ON COMMAND ID FILE PRINT CView OnFilePrint ON COMMAND ID FILE PRINT DIRECT CView OnFilePrint ON COMMAND ID FILE PRINT PREVIEW CView OnFilePrintPreview END MESSAGE MAP CMyView construction destruction CMyView CMyView 视图类构造函数 用于初始化各成员变量 m nLineWidth 2 m red 255 m green 255 m blue 0 m bPaint FALSE m Drawline FALSE m Get TRUE TODO add construction code here CMyView CMyView BOOL CMyView PreCreateWindow CREATESTRUCT CMyView drawing void CMyView OnDraw CDC pDC CMyDoc pDoc GetDocument 面向对象程序设计面向对象程序设计 第 12 页 共 46 页 ASSERT VALID pDoc TODO add draw code for native data here CPen pen PS SOLID m nLineWidth RGB m red m green m blue pDC SelectObject CBrush pBrush CBrush FromHandle HBRUSH GetStockObject NULL BRUSH pDC SelectObject pBrush for int i 0 iMoveTo CGraph m ptrArray GetAt i m ptStart pDC LineTo CGraph m ptrArray GetAt i m ptEnd CMyView printing BOOL CMyView OnPreparePrinting CPrintInfo pInfo default preparation return DoPreparePrinting pInfo void CMyView OnBeginPrinting CDC pDC CPrintInfo pInfo TODO add extra initialization before printing void CMyView OnEndPrinting CDC pDC CPrintInfo pInfo TODO add cleanup after printing CMyView diagnostics ifdef DEBUG void CMyView AssertValid const CView AssertValid void CMyView Dump CDumpContext CMyDoc CMyView GetDocument non debug version is inline ASSERT m pDocument IsKindOf RUNTIME CLASS CMyDoc return CMyDoc m pDocument endif DEBUG CMyView message handlers void CMyView Onstart 开始画线 确定控制变量的值 TODO Add your command handler code here m Get TRUE m Drawline TRUE void CMyView OnLButtonDown UINT nFlags CPoint point TODO Add your message handler code here and or call default m bPaint TRUE m startPoint point 画线操作 m endPoint point Gettingfunction 当确定提取时 调用函数 CView OnLButtonDown nFlags point void CMyView OnLButtonUp UINT nFlags CPoint point TODO Add your message handler code here and or call default if m Get FALSE 当鼠标左键 up 时 结束画线 return m bPaint FALSE Getting m StartPoint m startPoint Getting m EndPoint m endPoint Getting m red m red Getting m nLineWidth m nLineWidth Getting m green m green Getting m blue m blue 面向对象程序设计面向对象程序设计 第 14 页 共 46 页 Save push back Getting CView OnLButtonUp nFlags point void CMyView OnMouseMove UINT nFlags CPoint point TODO Add your message handler code here and or call default if m Drawline FALSE return if m bPaint FALSE return if m Get FALSE return CDC pdc GetDC CPen pen 0 m nLineWidth RGB m red m green m blue 得到画笔 pdc SelectObject pdc SetROP2 R2 NOTXORPEN pdc MoveTo m startPoint pdc LineTo m endPoint CGraph pGraph 存储线上各点到动态数组中 new CGraph m startPoint m endPoint m nLineWidth m red m green m blue m ptrArray Add pGraph m endPoint point pdc MoveTo m startPoint pdc LineTo m endPoint ReleaseDC pdc CView OnMouseMove nFlags point void CMyView Onselect 设置线的属性 TODO Add your command handler code here m Drawline TRUE m Get TRUE Dlg Djg if Djg DoModal IDOK return m nLineWidth Djg m nLineWidth m red Djg m red m green Djg m green 面向对象程序设计面向对象程序设计 第 15 页 共 46 页 m blue Djg m blue void CMyView OnGetting 提取线的控制变量 TODO Add your command handler code here m Get FALSE void CMyView Gettingfunction 提取线的函数 if m Get TRUE return for int i 0 i Save size i 计算两点间的距离 double d sqrt pow Save i m StartPoint y Save i m EndPoint y 2 pow Save i m StartPoint x Save i m EndPoint x 2 double d1 sqrt pow Save i m StartPoint y m startPoint y 2 pow Save i m StartPoint x m endPoint x 2 double d2 sqrt pow Save i m EndPoint y m startPoint y 2 pow Save i m EndPoint x m endPoint x 2 if d1 d2 dSelectObject pdc MoveTo Save i m StartPoint pdc LineTo Save i m EndPoint CPen pen1 0 Save i m nLineWidth RGB 125 125 125 pdc SelectObject pdc MoveTo Save i m StartPoint pdc LineTo Save i m EndPoint CSave dlg save dlg save DoModal 面向对象程序设计面向对象程序设计 第 16 页 共 46 页 void CMyView OnSave 存储函数 TODO Add your command handler code here CFileDat filedat if filedat DoModal IDOK return int size Save size ofstream OFile filedat m File ios base binary OFile write char for int j 0 jGetting Save j OFile write char OFile close void CMyView OnOpen 打开函数 TODO Add your command handler code here CFileDat filedat1 if filedat1 DoModal IDOK return int size ifstream IFile filedat1 m File ios base binary IFile read char Save clear for int k 0 kGetting IFile close CPaint void CMyView CPaint 画图函数 for int a 0 aSelectObject pdc MoveTo Save a m StartPoint pdc LineTo Save a m EndPoint void CMyView OnClear 清除函数 用于清除视图中的图形 TODO Add your command handler code here m ptrArray RemoveAll Invalidate 2 2 视图类头文件 视图类头文件 画线 View h interface of the CMyView class if defined AFX VIEW H DD50FDB7 6995 4A99 AD5A 0C613956F1D9 INCLUDED define AFX VIEW H DD50FDB7 6995 4A99 AD5A 0C613956F1D9 INCLUDED include Dlg h include Getting h include Save h include include math h include include include FileDat h using namespace std if MSC VER 1000 pragma once endif MSC VER 1000 class CMyView public CView protected create from serialization only CMyView DECLARE DYNCREATE CMyView Attributes public T CMyDoc GetDocument Operations public Overrides ClassWizard generated virtual function overrides AFX VIRTUAL CMyView public virtual void OnDraw CDC pDC overridden to draw this view virtual BOOL PreCreateWindow CREATESTRUCT protected virtual BOOL OnPreparePrinting CPrintInfo pInfo virtual void OnBeginPrinting CDC pDC CPrintInfo pInfo virtual void OnEndPrinting CDC pDC CPrintInfo pInfo AFX VIRTUAL Implementation public void CPaint void Gettingfunction virtual CMyView ifdef DEBUG virtual void AssertValid const virtual void Dump CDumpContext endif protected Generated message map functions protected AFX MSG CMyView afx msg void OnLButtonDown UINT nFlags CPoint point afx msg void OnLButtonUp UINT nFlags CPoint point afx msg void OnMouseMove UINT nFlags CPoint point afx msg void Onstart afx msg void Onselect afx msg void OnGetting afx msg void OnSave afx msg void OnOpen afx msg void OnClear 面向对象程序设计面向对象程序设计 第 19 页 共 46 页 AFX MSG private 主要成员变量和函数 CPtrArray m ptrArray vector Save CGetting Getting CPoint m startPoint m endPoint bool m bPaint m Drawline m Get int m nLineWidth m red m green m blue DECLARE MESSAGE MAP ifndef DEBUG debug version in 画线 View cpp inline CMyDoc CMyView GetDocument return CMyDoc m pDocument endif AFX INSERT LOCATION Microsoft Visual C will insert additional declarations immediately before the previous line endif defined AFX VIEW H DD50FDB7 6995 4A99 AD5A 0C613956F1D9 INCLUDED 3 3 提取类 提取类 存储提取的线的属性存储提取的线的属性 Getting h interface for the CGetting class if defined AFX Getting H 26A86F23 DA81 4531 A443 6E42E1F2C746 INCLUDED define AFX Getting H 26A86F23 DA81 4531 A443 6E42E1F2C746 INCLUDED if MSC VER 1000 pragma once endif MSC VER 1000 class CGetting public CGetting virtual CGetting int m nLineWidth m red m green m blue CPoint m StartPoint m EndPoint 面向对象程序设计面向对象程序设计 第 20 页 共 46 页 endif defined AFX Getting H 26A86F23 DA81 4531 A443 6E42E1F2C746 INCLUDED 4 4 动态数组类 动态数组类 存储线上各点存储线上各点 Graph cpp implementation of the CGraph class include stdafx h include 画线 h include Graph h ifdef DEBUG undef THIS FILE static char THIS FILE FILE define new DEBUG NEW endif Construction Destruction CGraph CGraph CPoint m ptStart CPoint m ptEnd int m nLineWidth int m red int m green int m blue this m ptStart x m ptStart x this m ptStart y m ptStart y this m ptEnd x m ptEnd x this m ptEnd y m ptEnd y this m nLineWidth m nLineWidth this m red m red this m green m green this m blue m blue CGraph CGraph CGraph CGraph 面向对象程序设计面向对象程序设计 第 21 页 共 46 页 5 5 数组类头文件 数组类头文件 Graph h interface for the CGraph class if defined AFX GRAPH H F1F8BC9F 4273 4785 8734 4654288C136B INCLUDED define AFX GRAPH H F1F8BC9F 4273 4785 8734 4654288C136B INCLUDED if MSC VER 1000 pragma once endif MSC VER 1000 class CGraph public CPoint m ptStart CPoint m ptEnd int m nLineWidth m red m green m blue CGraph CGraph CPoint m ptStart CPoint m ptEnd int m nLineWidth int m red int m green int m blue virtual CGraph endif defined AFX GRAPH H F1F8BC9F 4273 4785 8734 4654288C136B INCLUDED 6 6 存储类的实现 存储类的实现 Save cpp implementation file include stdafx h include 画线 h include Save h include Graph h ifdef DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif CSave dialog CSave CSave CWnd pParent NULL CDialog CSave IDD pParent 面向对象程序设计面向对象程序设计 第 22 页 共 46 页 AFX DATA INIT CSave CGraph dlg Set m Width dlg Set m nLineWidth m Red dlg Set m red m Green dlg Set m green m Blue dlg Set m blue AFX DATA INIT void CSave DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CSave DDX Text pDX IDC EDIT1 m Width DDV MinMaxUInt pDX m Width 1 100 DDX Text pDX IDC EDIT2 m Red DDV MinMaxUInt pDX m Red 0 255 DDX Text pDX IDC EDIT3 m Green DDV MinMaxUInt pDX m Green 0 255 DDX Text pDX IDC EDIT4 m Blue DDV MinMaxUInt pDX m Blue 0 255 AFX DATA MAP BEGIN MESSAGE MAP CSave CDialog AFX MSG MAP CSave AFX MSG MAP END MESSAGE MAP CSave message handlers void CSave OnOK TODO Add extra validation here UpdateData CDialog OnOK 7 7 对话框类的具体实现 对话框类的具体实现 Dlg cpp implementation file include stdafx h 面向对象程序设计面向对象程序设计 第 23 页 共 46 页 include 画线 h include Dlg h ifdef DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif Dlg dialog Dlg Dlg CWnd pParent NULL CDialog Dlg IDD pParent AFX DATA INIT Dlg m nLineWidth 0 m red 0 m green 0 m blue 0 AFX DATA INIT void Dlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP Dlg DDX Text pDX IDC EDIT1 m nLineWidth DDV MinMaxUInt pDX m nLineWidth 1 100 DDX Text pDX IDC EDIT2 m red DDV MinMaxUInt pDX m red 0 255 DDX Text pDX IDC EDIT3 m green DDV MinMaxUInt pDX m green 0 255 DDX Text pDX IDC EDIT4 m blue DDV MinMaxUInt pDX m blue 0 255 AFX DATA MAP BEGIN MESSAGE MAP Dlg CDialog AFX MSG MAP Dlg AFX MSG MAP END MESSAGE MAP 面向对象程序设计面向对象程序设计 第 24 页 共 46 页 Dlg message handlers void Dlg OnOK TODO Add extra validation here UpdateData CDialog OnOK 8 8 文件数据的具体实现 文件数据的具体实现 保存文件数据保存文件数据 FileDat cpp implementation file include stdafx h include 画线 h include FileDat h ifdef DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif CFileDat dialog CFileDat CFileDat CWnd pParent NULL CDialog CFileDat IDD pParent AFX DATA INIT CFileDat m File T AFX DATA INIT void CFileDat DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CFileDat DDX Text pDX IDC EDIT1 m File AFX DATA MAP BEGIN MESSAGE MAP CFileDat CDialog AFX MSG MAP CFileDat AFX MSG MAP 面向对象程序设计面向对象程序设计 第 25 页 共 46 页 END MESSAGE MAP CFileDat message handlers void CFileDat OnOK TODO Add extra validation here UpdateData CDialog OnOK 二 测试数据和运行结果 二 测试数据和运行结果 1 设置属性 2 画线 3 提取线 4 保存线 5 打开线 面向对象程序设计面向对象程序设计 第 26 页 共 46 页 第二题 第二题 需求规格说明需求规格说明 一 题号及题目一 题号及题目 2 2 学生学籍成绩管理系统 学生学籍成绩管理系统 学生的信息包括 姓名 学号 性别 班级 院系 学生的成绩信息包括英语 数学 程序设计及体育成绩等各门课的成绩 定义如下类 并建立一个文本文件 Student dat 用于存储学生 课程与成绩的相关 信息 文件格式自己定义 学生类 CStudent 姓名 学号 性别 班级 院系 课程类 CLessen 课程名称 课程开设时间 成绩类 CGrade 学号 课程名称 成绩 要求实现如下功能 在对话框上能够添加 删除 编辑和查询课程信息 在对话框上能够添加 删除 编辑和查询学生信息 在对话框上能够增加 删除 编辑和查询学生的选课信息 在对话框上能够录入和编辑学生某门课的考试成绩 在对话框上能够按照学生姓名查询学生的选课信息和选课成绩 并统计出其总成 绩 平均成绩 计算出该学生的成绩的标准差 显示全班的学生成绩排名 统计出各班的平均成绩 并进行排名 n i i x n x 1 1 平均分 面向对象程序设计面向对象程序设计 第 27 页 共 46 页 n i i xx n s 1 2 1 标准差 二 问题描述二 问题描述 该题需要设计一个学生学籍成绩管理系统 该系统需要能够添加 删除 编辑和查询 学生的基本信息 成绩信息 课程信息和选课信息 需要建立三个类用于存储学生 课程 与成绩的相关信息 分别为学生类 CStudent 姓名 学号 性别 班级 院系 课程类 CLessen 课程名称 课程开设时间 成绩类 CGrade 学号 课程名称 成绩 并能建立 一个文本文件 Student
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京食堂安全培训试题及答案解析
- 专业护理考试题库及答案解析
- 中职护理理论试题库及答案解析
- 富士康安全教育题库及答案解析
- 衡实中学 教学课件图片
- 元音教学课课件
- 中班上期末汇报
- 少儿美术创意画教学课件
- 全切子宫的护理查房
- 腹部肠管造瘘护理查房
- mh fg2000ab普通说明书使用服务及配件手册
- 疼痛科梯队建设聊城
- 骨关节健康氨糖氨糖疗法
- 面向航空制造过程排产的关键参数智能感知计算研究
- YS/T 921-2013冰铜
- GB/T 28121-2011非热封型茶叶滤纸
- 2023年廊坊市投资控股集团有限公司招聘笔试模拟试题及答案解析
- 苹果栽培学完整版课件
- 湿性愈合和新型敷料选择课件
- 软件生命周期与开发模型课件
- 实验动物从业人员上岗证考试题库(含近年真题、典型题)
评论
0/150
提交评论