ImageVerifierCode 换一换
格式:DOC , 页数:50 ,大小:1.15MB ,
资源ID:4517691      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4517691.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C++实习报告学生学籍成绩管理系统+画线.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C++实习报告学生学籍成绩管理系统+画线.doc

1、C++实习报告学生学籍成绩管理系统+画线(完整版) (文档可以直接使用,也可根据实际需要修改使用,可编辑 欢迎下载) 实习题目一 一、【需求规格说明】 1、题目描述: ² 利用鼠标在视图上绘制线,能够设置线的颜色和宽度; ² 能够用鼠标拾取绘制的某条线,被选中的线能够高亮显示,并且弹出对话框,输入线的属性保存起来; ² 能够将绘制的线数据保存在Line.dat文本文件中; ² 打开线数据文件Line.dat,可以显示出文件里面的线图形。 2、问题分析:  ⑴ 通过获取鼠标在显示界面的坐标,运用MoveTo()以及LineTO()函数,绘制出画线;通过调用GetCol

2、or()函数,调用系统的调色板,将获得的信息传到程序中,改变画线的颜色;通过改变宽度函数的变量,来改变画线的宽度。  ⑵ 首先获取鼠标的坐标,通过计算,在右击鼠标后,在鼠标有限的距离之内的画线有效,然后选定,然后再调用相应的函数来改变选定直线的属性。  ⑶ 用CFile 定义一个对象,通过对象调用Open()函数来打开保存的文件。文件的保存是先用Open()函数,然后再保存要保存的数据。 二、【算法设计】 ⑴、基本思想 在视图中画好线后,存在文档里面,再从文档存到磁盘,打开文件时,从磁盘到文档,由OnDraw()函数调用重绘函数进行重绘。 ⑵程序设计: ////////

3、////////////////////////////////////////////////// // DrawView.h : interface of the CDrawView class #if !defined(AFX_DRAWVIEW_H__D9CAA283_2CAD_4A04_86EE_42FBE886F459__INCLUDED_) #define AFX_DRAWVIEW_H__D9CAA283_2CAD_4A04_86EE_42FBE886F459__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif

4、// _MSC_VER > 1000 class CDrawView : public CView { public: void ChangeLine(CPoint point); public: BOOL m_bIsLine; //记录是否处于画线状态 CPoint point0; //记录线段起点坐标 int m_nStep; //记录画线的操作步数 CPoint point1; //记录线段终点坐标 COLORREF m_nLineColor; /

5、/线条颜色 int m_nLineWidth; //线条宽度 int i; //循环控制变量 BOOL ClickSaveButton; //点击自己的保存时给它赋值为假 int drawmodel; //划线模式 0:D-U-D 1:D-D CString filename; //用于存取已绘制的图像的文件名 BOOL m_nChange; //选中线,改变属性 BOOL m_nChangeReDraw; //选中进行重绘 ////

6、/////////////////////////////////// protected: // create from serialization only CDrawView(); DECLARE_DYNCREATE(CDrawView) // Attributes public: CDrawDoc* GetDocument(); // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(C

7、DrawView) public: virtual void OnDraw(CDC* pDC); // overridden to draw this view virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); virtual void OnEndPrinting(CDC* pDC

8、 CPrintInfo* pInfo); //}}AFX_VIRTUAL // Implementation public: virtual ~CDrawView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Generated message map functions protected: //{{AFX_MSG(CDrawView) afx_msg voi

9、d OnDrawLine(); afx_msg void OnUpdateDrawLine(CCmdUI* pCmdUI); afx_msg void OnSetColor(); afx_msg void OnSetWidth(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT messag

10、e); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg void OnDeleteLine(); afx_msg void OnSave(); afx_msg void OnOpen(); afx_msg void OnClear(); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnDownUpDown(); afx_msg void OnDownUP(); afx_msg void OnCh

11、ange(); afx_msg void OnUpdateChange(CCmdUI* pCmdUI); afx_msg void OnChangeReDraw(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; #ifndef _DEBUG // debug version in DrawView.cpp inline CDrawDoc* CDrawView::GetDocument() { return (CDrawDoc*)m_pDocument; } #endif /////////////////////////

12、//////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif ////////////////////////////////////////////////////////// // DrawDoc.h : interface of the CDrawDoc class

13、 #if !defined(AFX_DRAWDOC_H__1959C5D8_A40D_4E17_AE59_A7650B71CC9F__INCLUDED_) #define AFX_DRAWDOC_H__1959C5D8_A40D_4E17_AE59_A7650B71CC9F__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include using namespace std; class CDrawDoc : public CDocument { pu

14、blic: void SetWindowCwnd(CWnd *pcWnd); CWnd* m_cWndView; public: vector distance; //距离 vector StorePoint; //存入点 COLORREF color[50]; int width[50]; //======================= void DrawLines(CDC *pDC); protected: // create from serialization only CDraw

15、Doc(); DECLARE_DYNCREATE(CDrawDoc) // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CDrawDoc) public: virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar); //}}AFX_VIRTUAL // Impleme

16、ntation public: virtual ~CDrawDoc(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Generated message map functions protected: //{{AFX_MSG(CDrawDoc) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATI

17、ON}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_DRAWDOC_H__1959C5D8_A40D_4E17_AE59_A7650B71CC9F__INCLUDED_) ////////////////////////////////////////////////////////// // DrawDoc.cpp : implementation of the CDrawDoc c

18、lass #include "stdafx.h" #include "Draw.h" #include "DrawDoc.h" #include "DrawView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDrawDoc IMPL

19、EMENT_DYNCREATE(CDrawDoc, CDocument) BEGIN_MESSAGE_MAP(CDrawDoc, CDocument) //{{AFX_MSG_MAP(CDrawDoc) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDrawDoc construction/destruction CDrawDoc::CDrawDoc() { // TODO:

20、 add one-time construction code here } CDrawDoc::~CDrawDoc() { } BOOL CDrawDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; // TODO: add reinitialization code here // (SDI documents will reuse this document) return TRUE; } ///////////////////////////

21、////////////////////////////////////////////////// // CDrawDoc serialization void CDrawDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here int NumOfPoint=(int)StorePoint.size(); ar<

22、 ar<>NumOfPoint; for(int i=0;i>point0>>point1;

23、 StorePoint.push_back(CPoint(point0)); StorePoint.push_back(CPoint(point1)); ar>>width[i]>>color[i]; } } } ///////////////////////////////////////////////////////////////////////////// // CDrawDoc diagnostics #ifdef _DEBUG void CDrawDoc::AssertValid() const { CDoc

24、ument::AssertValid(); } void CDrawDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CDrawDoc commands void CDrawDoc::DrawLines(CDC *pDC) { int NumOfPoint=(int)StorePoint.size();

25、 for (int j=0;jSelectObject(& newPen);//将画笔选入设备环境,同时保存旧画笔 //=================================== ///////////////////////////// pDC->Move

26、To(StorePoint[j]); pDC->LineTo(StorePoint[j+1]); pDC->SelectObject(pOldPen); //绘图完毕后恢复原有环境 } } void SetWindowCwnd(CWnd *pcWnd) { CWnd* m_cWndView; m_cWndView = pcWnd; } ///////////////////////////////////////////////////// DrawView.cpp : implementation of the CDrawView cl

27、ass #include "stdafx.h" #include "Draw.h" #include "math.h" #include "DrawDoc.h" #include "DrawView.h" #include "SetWidthDlg.h" #include "NameFileDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ////////////////////////////

28、///////////////////////////////////////////////// // CDrawView IMPLEMENT_DYNCREATE(CDrawView, CView) BEGIN_MESSAGE_MAP(CDrawView, CView) //{{AFX_MSG_MAP(CDrawView) ON_COMMAND(ID_DrawLine, OnDrawLine) ON_UPDATE_COMMAND_UI(ID_DrawLine, OnUpdateDrawLine) ON_COMMAND(ID_SetColor, OnSetColo

29、r) ON_COMMAND(ID_SetWidth, OnSetWidth) ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_WM_SETCURSOR() ON_WM_RBUTTONDOWN() ON_COMMAND(ID_DeleteLine, OnDeleteLine) ON_COMMAND(ID_SAVE, OnSave) ON_COMMAND(ID_OPEN, OnOpen) ON_COMMAND(ID_CLEAR, OnClear) ON_WM_LBUTTONUP() ON_COMMAND(ID_DownU

30、pDown, OnDownUpDown) ON_COMMAND(ID_DownUP, OnDownUP) ON_COMMAND(ID_Change, OnChange) ON_UPDATE_COMMAND_UI(ID_Change, OnUpdateChange) ON_COMMAND(ID_ChangeReDraw, OnChangeReDraw) //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_F

31、ILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDrawView construction/destruction CDrawView::CDrawView() { // TODO: add construction cod

32、e here m_bIsLine=FALSE; //开始没有处于画线状态 point0=point1=(0,0);//线段的起点坐标初始为0 m_nStep=0; //操作步数初始为0 m_nLineWidth=1; //线宽为1 i=0; //循环控制变量 ClickSaveButton=TRUE; //是否已经保存 filename=_T(""); //存磁盘时的文件名 m_nChange=FALSE; //是否选中 m_nChangeReDra

33、w=FALSE; //是否每次进行重绘 } CDrawView::~CDrawView() { } BOOL CDrawView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); } //////////////////////////////////////////////////////

34、/////////////////////// // CDrawView drawing void CDrawView::OnDraw(CDC* pDC) { CDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here pDoc->DrawLines(pDC); } ///////////////////////////////////////////////////////////////////////////// // C

35、DrawView printing BOOL CDrawView::OnPreparePrinting(CPrintInfo* pInfo) { // default preparation return DoPreparePrinting(pInfo); } void CDrawView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add extra initialization before printing } void CDrawView::OnEndPrinti

36、ng(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add cleanup after printing } ///////////////////////////////////////////////////////////////////////////// // CDrawView diagnostics #ifdef _DEBUG void CDrawView::AssertValid() const { CView::AssertValid(); } void CDrawView::Dump(C

37、DumpContext& dc) const { CView::Dump(dc); } CDrawDoc* CDrawView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDrawDoc))); return (CDrawDoc*)m_pDocument; } #endif //_DEBUG //////////////////////////////////////////////////////////////////

38、/////////// // CDrawView message handlers void CDrawView::OnDrawLine() { // TODO: Add your command handler code here if(drawmodel != 0 && drawmodel != 1) { MessageBox("请下先在视图中画图"); } if(m_bIsLine==FALSE) { m_bIsLine=TRUE; //允许画线 } else m_bIsLine=FALSE; //中止画线 } void

39、CDrawView::OnUpdateDrawLine(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_bIsLine); //控制用户界面更(新菜单项和工具栏的画线按钮处于选中\未选中状态) } void CDrawView::OnSetColor() { // TODO: Add your command handler code here CColorDialog dlg; //系统颜色对话框 if(dlg.

40、DoModal()==IDOK) { m_nLineColor=dlg.GetColor(); } } void CDrawView::OnSetWidth() { // TODO: Add your command handler code here SetWidthDlg dlg; if(dlg.DoModal()==IDOK) { m_nLineWidth=dlg.m_nLineWidth; } } void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { /

41、/ TODO: Add your message handler code here and/or call default CDrawDoc* pDoc = GetDocument(); CDC *pDC = GetDC(); CClientDC dc(this); //获取设备环境 if(m_nChange|m_nChangeReDraw) { ChangeLine(point); } else { //===================================== CPen newPen(PS_S

42、OLID,m_nLineWidth,m_nLineColor); ////画线前创建一支画笔 CPen *pOldPen=dc.SelectObject(& newPen); //将画笔选入设备环境,同时保存旧画笔 //======================================= ; if(m_bIsLine) //若处于画线状态 { if(m_nStep == 0) { point0=point; m_nStep++;

43、 //操作步数加1 pDoc->StorePoint.push_back(point0); } else if(m_nStep == 1 && drawmodel == 0) //如果是终点,则画线 { dc.MoveTo(point0); dc.LineTo(point); point1=point; pDoc->StorePoint.push_back(point1); pDoc->color[i]=m_nLineColor;

44、 pDoc->width[i]=m_nLineWidth; //================================= m_nStep=0; //画线完毕后,操作步数立即归0 point0=point1=(0,0); //画线完毕后,起点坐标立即归0 //一条线段画完后,终点坐标归0 i+=2; } else {} } dc.SelectObject(pOldPen

45、); // 绘图完毕后恢复原有环境 ReleaseDC(pDC); } if(ClickSaveButton==FALSE) { pDoc->SetModifiedFlag(TRUE); //表明文档被修改,当未保存文件而关闭程序时,就会弹出对话框询问是否保存 } CView::OnLButtonDown(nFlags, point); } void CDrawView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handl

46、er code here and/or call default CClientDC dc(this); //获取设备环境 CPen newPen(PS_SOLID,m_nLineWidth,m_nLineColor); //画线前创建一支画笔 CPen *pOldPen=dc.SelectObject(& newPen); //将画笔选入设备环境,同时保存旧画笔 if(m_nStep!=0) //第一次点击鼠标之后,m_nStep=1,则拉出橡皮条 { dc.SetROP2

47、R2_NOT); //设置线条模式R2_NOTXORPEN/R2_NOT if(point1!=CPoint(0,0)) { //保留最后一次画的线,之前擦出(也就是重画一次) dc.MoveTo(point0); dc.LineTo(point1); } //更新终点的坐标 point1=point; //画出新的线段(最后一次画的那条) dc.MoveTo(point0); dc.LineTo(point1); } CView::OnMouseMove(n

48、Flags, point); } //设置光标的函数 BOOL CDrawView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { // TODO: Add your message handler code here and/or call default if(m_bIsLine) //若处于画线状态,则使用Windows系统的IDC_CROSS十字光标 { HCURSOR hCursor; if(m_nChange==true|m_nChangeReDraw==true)

49、 //需选中线条改变属性时把光标改为箭头 { hCursor=AfxGetApp()->LoadStandardCursor(IDC_ARROW);//加载光标 } else { hCursor=AfxGetApp()->LoadStandardCursor(IDC_CROSS);//加载光标 } SetCursor(hCursor); return TRUE; } return CView::OnSetCursor(pWnd, nHitTest, message); } /* ID

50、C_CROSS 标志十字光标 IDC_ARROW 标志箭头光标 IDC_IBEAM I型光标 IDC_NO 禁止光标 IDC_APPSTARTING 标志箭头光标附带沙漏 IDC_SIZEALL 四向箭头光标 IDC_SIZENESW 东北,西南方向斜线箭头光标 IDC_SIZENS 南北方向箭头光标 IDC_SIZENWSE

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服