欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    c++mfc上机实习报告.docx

    • 资源ID:13525691       资源大小:540.16KB        全文页数:25页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c++mfc上机实习报告.docx

    1、c+mfc上机实习报告 面向对象程序设计 课程设计报告学 号: 201* 班级序号: 11* 姓 名:* 指导老师: 陈亮老师 成 绩: 中国地质大学(武汉) 信息工程学院信息工程系 2014年6月17日上机题目一1、题目:橡皮筋画线程序,要求:(1)基本要求利用鼠标在视图上绘制线,能够设置线的颜色和宽度;能够用鼠标拾取绘制的某条线,被选中的线能够高亮显示,并且弹出对话框,输入线的属性保存起来;(2)高阶要求能够将绘制的线数据保存在Line.dat文本文件中;打开线数据文件Line.dat,可以显示出文件里面的线图形。(3)可选功能文字能够在视图任意地方点击鼠标后输入。(提示:可以使用STL中

    2、的容器来管理数据。)2、设计思路:利用MFC中的单文档,在view函数中添加up和down的命令响应函数,使实现画线的功能,并在函数中增加特定代码使实现设置线宽和颜色(具体函数代码可以从书上找到),同样的添加保存和打开所画的线、能输入文字的命令函数。3、实现情况和能改进的地方:代码运行成果是可以改变线宽和颜色,并且在运行出的窗口的大小改变构绘制的线不会消失,可以保存并打开绘制的线,能在视图的任何地方输入文字。用鼠标拾取绘制的线并高亮显示没有实现,保存时直接保存的绘制的线,而并没有将所画线的属性保存下来,没有dat类型的文件。4、具体代码如下:设置线宽的对话框的代码:(因引入对话框,需添加头文件

    3、)void CHuiView:OnSetting() / TODO: Add your command handler code here CSettingDlg dlg; dlg.m_nLineWidth=m_nLineWidth; if(IDOK=dlg.DoModal() m_nLineWidth=dlg.m_nLineWidth; 设置颜色的代码:void CHuiView:OnColor() / TODO: Add your command handler code here CColorDialog dlg; dlg.m_cc.rgbResult=m_clr; dlg.m_cc.F

    4、lags |=CC_RGBINIT | CC_FULLOPEN; if(IDOK=dlg.DoModal() m_clr=dlg.m_cc.rgbResult; /dlg.DoModal();文件保存于打开的代码:void CHuiView:OnFileOpen() / TODO: Add your command handler code here HMETAFILE hmetaFile; hmetaFile=GetMetaFile(meta.wmf); m_dcMetaFile.PlayMetaFile(hmetaFile); DeleteMetaFile(hmetaFile); Inva

    5、lidate();void CHuiView:OnFileSave() / TODO: Add your command handler code here HMETAFILE hmetaFile; hmetaFile=m_dcMetaFile.Close(); CopyMetaFile(hmetaFile,meta.wmf); m_dcMetaFile.Create(); DeleteMetaFile(hmetaFile);在视图的任何地方输入文字:(OnCreat和OnChar函数)int CHuiView:OnCreate(LPCREATESTRUCT lpCreateStruct) i

    6、f (CView:OnCreate(lpCreateStruct) = -1) return -1; CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight); ShowCaret(); / TODO: Add your specialized creation code here return 0;void CHuiView:OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) / TODO: A

    7、dd your message handler code here and/or call default CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); if(0x0d=nChar) m_strLine.Empty(); m_ptOrigin.y+=tm.tmHeight; else if (0x08=nChar) COLORREF clr=dc.SetTextColor(dc.GetBkColor(); dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine); m_strLine=

    8、m_strLine.Left(m_strLine.GetLength()-1); dc.SetTextColor(clr); else m_strLine+=nChar; CSize sz=dc.GetTextExtent(m_strLine); CPoint pt; pt.x=m_ptOrigin.x+sz.cx; pt.y=m_ptOrigin.y; SetCaretPos(pt); dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine); CView:OnChar(nChar, nRepCnt, nFlags);在运行窗口上保存绘制的线:void

    9、CHuiView:OnDraw(CDC* pDC) CHuiDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CPen pen(PS_SOLID,m_nLineWidth,m_clr); CBrush* pBrush=CBrush:FromHandle(HBRUSH)GetStockObject(NULL_BRUSH); pDC-SelectObject(pBrush); for (int i=0;iMoveTo(CGraph*)m_ptrArray.GetAt(i)-m_ptOrigin); pDC-LineTo(CGraph*)m_ptrArra

    10、y.GetAt(i)-m_ptEnd); HMETAFILE hmetaFile; hmetaFile=m_dcMetaFile.Close(); pDC-PlayMetaFile(hmetaFile); m_dcMetaFile.Create(); m_dcMetaFile.PlayMetaFile(hmetaFile); DeleteMetaFile(hmetaFile); / TODO: add draw code for native data here最终的up 和down函数:void CHuiView:OnLButtonDown(UINT nFlags, CPoint point

    11、) / TODO: Add your message handler code here and/or call default m_ptOrigin=point; SetCaretPos(point); m_strLine.Empty(); CView:OnLButtonDown(nFlags, point);void CHuiView:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default CClientDC dc(this); CPen pe

    12、n(PS_SOLID,m_nLineWidth,m_clr); CBrush* pBrush=CBrush:FromHandle(HBRUSH)GetStockObject(NULL_BRUSH); dc.SelectObject(&pen); dc.SelectObject(pBrush); dc.MoveTo(m_ptOrigin); dc.LineTo(point); m_dcMetaFile.MoveTo(m_ptOrigin); m_dcMetaFile.LineTo(point); m_dcMetaFile.SelectObject(&pen); /m_dcMetaFile.Sel

    13、ectObject(pBrush); CGraph *pGraph=new CGraph(m_ptOrigin,point); m_ptrArray.Add(pGraph); CView:OnLButtonUp(nFlags, point);添加的成员变量及其初始化:m_ptOrigin=0; m_clr=RGB(255,0,0); m_nLineWidth=0; m_strLine= ; m_dcMetaFile.Create();运行结果为:上机题目二1、题目:学生学籍成绩管理系统学生的信息包括:姓名、学号、性别、班级、院系;学生的成绩信息包括英语、数学、程序设计及体育成绩等各门课的成绩;

    14、定义如下类,并建立一个文本文件Student.dat,用于存储学生、课程与成绩的相关信息。文件格式自己定义。学生类CStudent(姓名、学号、性别、班级、院系);课程类CLessen(课程名称、课程开设时间);成绩类CGrade(学号、课程名称、成绩)要求实现如下功能: 在对话框上能够添加、删除、编辑和查询课程信息; 在对话框上能够添加、删除、编辑和查询学生信息学生信息; 在对话框上能够增加、删除、编辑和查询学生的选课信息; 在对话框上能够录入和编辑学生某门课的考试成绩; 在对话框上能够按照学生姓名查询学生的选课信息和选课成绩,并统计出其总成绩、平均成绩,计算出该学生的成绩的标准差; 显示全

    15、班的学生成绩排名。 统计出各班的平均成绩,并进行排名。2、设计思路:对话框的应用,在对话框上添加控件,将控件与具体函数或成员变量绑定,该题中利用此来实现编辑框与列表控件的同步,从而实现录入、查询、和编辑等功能。将学生管理系统分为三部分:学生个人信息、成绩和选课情况,三部分在具体处理上是一样的,成绩计算时,需进行类型转换。3、实现结果及可改进的地方:实现结果是能在对话框上进行录入、查询、编辑和删除。在学生成绩的对话框上没有实现学生排名情况,可以无限录入但是没有数据的保存,不能整个班级排名和不同班级排名。该题目中查询、录入都是在同一对话框实现的,可以再不同对话框实现,实现需要变量对应。4、具体代码

    16、如下:单击按钮,使弹出另一对话框:(固定,改变具体类名即可)void CXUESHENGDlg:OnButton1() / TODO: Add your control notification handler code here CStudent st; st.DoModal();学生信息:对编辑框定义对应的成员变量:m_xingming = _T(); m_xingbie = _T(); m_xuehao = _T(); m_yuanxi = _T(); m_zhuanye = _T();列表控件在相同对话框内,定义对用成员变量: DDX_Control(pDX, IDC_LIST1, m

    17、_list); DDX_Text(pDX, IDC_EDIT1, m_xingming); DDX_Text(pDX, IDC_EDIT2, m_xingbie); DDX_Text(pDX, IDC_EDIT3, m_xuehao); DDX_Text(pDX, IDC_EDIT4, m_yuanxi); DDX_Text(pDX, IDC_EDIT5, m_zhuanye); /AFX_DATA_MAP录入按钮及列表控件设置代码:void CStudent:OnButton1() / TODO: Add your control notification handler code here

    18、 UpdateData(TRUE);/将界面的数据更新到对应的变量中 int count=m_list.GetItemCount();/获取当前存在的数据总量 m_list.InsertItem(count,m_xingming);/插入一行 m_list.SetItemText(count,1, m_xingbie); m_list.SetItemText(count,2, m_xuehao); m_list.SetItemText(count,3, m_yuanxi); m_list.SetItemText(count,4, m_zhuanye); MessageBox(已录入学生信息!)

    19、;BOOL CStudent:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here DWORD dwStyle = m_list.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT; dwStyle |= LVS_EX_GRIDLINES; m_list.SetExtendedStyle(dwStyle); m_list.InsertColumn(0, 姓名,LVCFMT_LEFT,60); m_list.InsertColumn(1, 性别,

    20、LVCFMT_LEFT,60); m_list.InsertColumn(2, 学号,LVCFMT_LEFT,60); m_list.InsertColumn(3, 院系,LVCFMT_LEFT,60); m_list.InsertColumn(4, 专业,LVCFMT_LEFT,60); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE删除按钮:void CStudent:OnButton2() / TODO:

    21、 Add your control notification handler code here BOOL findok = FALSE; for(int i=0;im_list.GetItemCount();i+) if(m_list.GetItemState(i,LVIS_SELECTED)=LVIS_SELECTED) m_list.DeleteItem(i); MessageBox(已删除所选学生信息); findok=TRUE; if(findok!=TRUE) MessageBox(请先选择需要删除的学生); UpdateData(FALSE);查询按钮(按名字查询):void C

    22、Student:OnSearch() / TODO: Add your control notification handler code here int i; BOOL temp = FALSE; UpdateData(TRUE); for(i=0;im_list.GetItemCount();i+) if(m_xingming=m_list.GetItemText(i,0) m_xingbie = m_list.GetItemText(i,1); m_xuehao = m_list.GetItemText(i,2); m_yuanxi= m_list.GetItemText(i,3);

    23、m_zhuanye = m_list.GetItemText(i,4); UpdateData(FALSE); temp = TRUE; break; if(temp=FALSE) MessageBox(没有该学生的记录!); UpdateData(FALSE);编辑按钮:(按名字一样修改)void CStudent:OnGai() / TODO: Add your control notification handler code here Cgai ga; ga.DoModal(); int i; BOOL temp = FALSE; UpdateData(TRUE); for(i=0;i

    24、m_list.GetItemCount();i+) /if(temp=true) if(ga.m_xingming=m_list.GetItemText(i,0) /m_xingming=ga.m_xingming; int count=m_list.GetItemCount();/获取当前存在的数据总量 / m_list.InsertItem(count,m_xingming);/插入一行 m_list.SetItemText(i,1, ga.m_xingbie); m_list.SetItemText(i,2, ga.m_xuehao); m_list.SetItemText(i,3, g

    25、a.m_yuanxi); m_list.SetItemText(i,4, ga.m_zhuanye); /m_xingbie=ga.m_xingbie; /m_xuehao =ga.m_xuehao; /m_yuanxi = ga.m_yuanxi; /m_zhuanye = ga.m_zhuanye; UpdateData(FALSE); /temp = TRUE; break; if(ga.m_xingming!=m_list.GetItemText(i,0) MessageBox(修改失效!); 在成绩和选课情况的对话框上,录入、查询、编辑、删除的代码只需改变给的成员变量名,具体实现是一

    26、样的。成绩:成员变量:m_chengxu = _T(); m_tiyu = _T(); m_xingming = _T(); m_pingjun = _T(); m_cha = _T(); m_shuxue = _T(); m_yingyu = _T();列表控件的变量: DDX_Control(pDX, IDC_LIST1, m_list1); DDX_Text(pDX, IDC_EDIT3, m_chengxu); DDX_Text(pDX, IDC_EDIT4, m_tiyu); DDX_Text(pDX, IDC_EDIT5, m_xingming); DDX_Text(pDX, ID

    27、C_EDIT6, m_pingjun); DDX_Text(pDX, IDC_EDIT7, m_cha); DDX_Text(pDX, IDC_EDIT2, m_shuxue); DDX_Text(pDX, IDC_EDIT1, m_yingyu);列表控件与编辑框的同步,(录入)及平均数、方差的计算,并将计算结果同时在编辑框列表控件中显示。void CGrade:OnButton1() / TODO: Add your control notification handler code here UpdateData(TRUE);/将界面的数据更新到对应的变量中 int count=m_li

    28、st1.GetItemCount();/获取当前存在的数据总量 m_list1.InsertItem(count,m_xingming);/插入一行 m_list1.SetItemText(count,1, m_yingyu); m_list1.SetItemText(count,2, m_shuxue); m_list1.SetItemText(count,3, m_chengxu); m_list1.SetItemText(count,4, m_tiyu); int a,b,c,d,e; char ch110,ch210,ch310,ch410,ch510,ch610,ch710; Get

    29、DlgItemText(IDC_EDIT1,ch1,10); GetDlgItemText(IDC_EDIT2,ch2,10); GetDlgItemText(IDC_EDIT3,ch3,10); GetDlgItemText(IDC_EDIT4,ch4,10); GetDlgItemText(IDC_EDIT6,ch5,10); GetDlgItemText(IDC_EDIT7,ch6,10); GetDlgItemText(IDC_EDIT8,ch7,10); a=atoi(ch1); b=atoi(ch2); /类型转换 c=atoi(ch3); d=atoi(ch4); e=(a+b+c+d)/4; itoa(e,ch5,10); SetDlgItemText(IDC_EDIT6,ch5); m_list1.SetItemText(count,5,ch5); int m,n; m=sqrt(a-e)*(a-e)+(b-e)*(b-e)+(c-e)*(c-e)+(d-e)*(d-e)/4); n=a+b+c+d; itoa(m,ch6,1


    注意事项

    本文(c++mfc上机实习报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开