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

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6404029.html】到电脑端继续下载(重复下载不扣费)。

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易电子表格的设计Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

简易电子表格的设计Word文件下载.docx

1、SetName( )CY COleFont:GetSize( )SetSize( )SetBold( )SetItalic( )SetUnderline( )CPicture:GetHandle( )GetHPal( )SetHPal( )GetType( )利用这些函数将可视化表格绘制出来。第二,定义函数CChild:OnClickMsflexgrid1( )将可视化表格打印出来。同时利用两个for循环,在行和列上分别将AZ,“和”“最大值”“最小值”“平均值”“行排序”“列排序”“读取”“保存”等字符串显示出来。第三,使表格成为可编辑状态。通过if(lRowm_FlexGrid.GetRo

2、ws() | lRow=0)判断点击是否有效。若有效,则获取FlexGrid控件的窗口矩形并将其转换为客户区矩形,以像素为单位计算选中格的左上角的坐标和选中格的尺寸,形成选中个所在的矩形区域并转换成相对对话框的坐标。然后获取单元格内容,改变大小并移到选中格位置,显示文本。第四,求和。定义函数CChild:OnButton1()。先判断是行还是列需要求和,在将所在行(或列)的所有数加起来得到sum并显示。为方便存取,利用可以将字符转换成浮点数的函数atof和可以将浮点数转换成字符的函数gcvt把获取到的单元格内容来回转换。第五,求最值。分别定义函数CChild:OnButton2()和CChil

3、d:OnButton3( )求最大值和最小值。先判断是行还是列需要求最值,将所在行(或列)的第一个数存放在max(或min)中,并将此数与后面的数次比较。求最大值时,如果前面的数比后面的数大,则继续向下比较。否则,将大的数存到max中。求最小值时,如果前面的数比后面的数小,则继续向下比较。否则,将小的数存到min中。比较结束之后,将最终的max(或min)输出。第六,定义函数CChild:OnButton8()求平均值。由于第四步已经求得了所在行(或列)的和sum,因此直接利用sum除以col或row即可得到平均值。第七,定义函数CChild:OnButton6()和函数CChild:OnBu

4、tton7()进行行(列)排序。先利用函数current_col=m_FlexGrid.GetCol()获取鼠标所在的列的值,将所在列的所有值存入temp数组,利用选择排序法将temp数组中所有数据进行排序,并将排好序的数组的值重新传回表格。同理,利用函数current_row=m_FlexGrid.GetRow()获取鼠标所在的列的值,将所在列的所有值存入temp数组,利用选择排序法将temp数组中所有数据进行排序,并将排好序的数组的值重新传回表格。选择排序法部分的代码为:for(int i=1;ii;j-) if(tempjm_FlexGrid.GetRows() | lRow=0) /判

5、断点击是否有效 return; CRect rect; m_FlexGrid.GetWindowRect(&rect); /获取FlexGrid控件的窗口矩形 ScreenToClient(& /转换为客户区矩形 CDC* pDC=GetDC(); /MSFlexGrid 控件的函数的长度单位是“缇(twips)”,需要将其转化为像素,1440 缇 = 1 英寸 /计算象素点和缇的转换比例 int nTwipsPerDotX=1440/pDC-GetDeviceCaps(LOGPIXELSX); int nTwipsPerDotY=1440/pDC-GetDeviceCaps(LOGPIXEL

6、SY); /计算选中格的左上角的坐标(象素为单位) long y = m_FlexGrid.GetRowPos(lRow)/nTwipsPerDotY; long x = m_FlexGrid.GetColPos(lCol)/nTwipsPerDotX; /计算选中格的尺寸(象素为单位)。加1是实际调试中,发现加1后效果更好 long width = m_FlexGrid.GetColWidth(lCol)/nTwipsPerDotX+1; long height = m_FlexGrid.GetRowHeight(lRow)/nTwipsPerDotY+1; /形成选中个所在的矩形区域 CR

7、ect rc(x,y,x+width,y+height); /转换成相对对话框的坐标 rc.OffsetRect(rect.left+1,rect.top+1); CString strValue=m_FlexGrid.GetTextMatrix(lRow,lCol); /获取单元格内容 m_Edit.ShowWindow(SW_SHOW); /显示控件 m_Edit.MoveWindow(rc); /改变大小并移到选中格位置 m_Edit.SetWindowText(strValue); /显示文本 m_Edit.SetFocus(); /获取焦点/*输入完毕后使edit空间隐藏,并返回值*

8、/OnKillfocusEdit1() / TODO: Add your control notification handler code here CString strInput; GetDlgItemText(IDC_EDIT1,strInput); /获取输入框内容 m_FlexGrid.SetText(strInput); /设置单元格内容 m_Edit.ShowWindow(SW_HIDE);/*求和*/OnButton1() Add your control notification handler code here / 求和 double sum=0; char t10;

9、long current_col=m_FlexGrid.GetCol(); long current_row=m_FlexGrid.GetRow(); if(col+1=current_col) /行求和 /用col+1判断是行还是列需要求和 for(int i=1;i+) sum+=atof(m_FlexGrid.GetTextMatrix(current_row,i);/atof是将字符转换成浮点数的函数 gcvt(sum,10,t); /gcvt是将浮点数转换成字符的函数 m_FlexGrid.SetTextMatrix(current_row,col+1,t); /求和结束后将结果显示

10、 if(row+1=current_row) /列求和 /用row+1判断是行还是列需要求和 sum=0; sum+=atof(m_FlexGrid.GetTextMatrix(i,current_col); /gcvt是将浮点数转换成字符的函数 m_FlexGrid.SetTextMatrix(row+1,current_col,t);/求和结束后将结果显示/*求最大值*/OnButton2() double max; int i=1; if(col+2=current_col) /指向当前行,求最大值 /用col+2判断是行还是列需要求最大值 max=atof(m_FlexGrid.Get

11、TextMatrix(i,current_col);/将当前的第一个值赋给max for( i=1; if(maxatof(m_FlexGrid.GetTextMatrix(current_row,i) /min与后面的数进行比较 min=atof(m_FlexGrid.GetTextMatrix(current_row,i);/如果min小于后面的数,则将该数重新赋给min gcvt(min,10,t); m_FlexGrid.SetTextMatrix(current_row,current_col,t); /将min显示 else if(row+3=current_row) /指向当前列

12、,求最小值 /用row+3判断是行还是列需要求最小值 min=atof(m_FlexGrid.GetTextMatrix(i,current_col); atof(m_FlexGrid.GetTextMatrix(i,current_col) min=atof(m_FlexGrid.GetTextMatrix(i,current_col); gcvt(min,10,t);/*读取存储的值*/OnButton4() extern double mem2020; /将数组的值一次存入表格 extern double m_r; extern double m_c;=m_r; for(int j=1;

13、j=m_c;j+) gcvt(memij,10,t); m_FlexGrid.SetTextMatrix(i,j,t); /*存储表格的值*/OnButton5() for(int j=1; memij=atof(m_FlexGrid.GetTextMatrix(i,j); m_r=row; /用全局变量记录表格的行列数 m_c=col; EndDialog(0);/*列排序*/OnButton6() /获取鼠标所在的列的值 double temp20; for(int k=1;kk+) /将所在列的所有值存入temp数组 tempk=atof(m_FlexGrid.GetTextMatrix

14、(k,current_col); /用选择排序排列 for(int m=1;mm+) gcvt(tempm,10,t); /将排好序的数组的值重新传回表格 m_FlexGrid.SetTextMatrix(m,current_col,t);/*行排序*/OnButton7() /获取表格所在的行k+) tempk=atof(m_FlexGrid.GetTextMatrix(current_row,k); /将所在行的值存入数组 for(int j=col;templow) /用选择排序法排序 /将排好序的数组的值回传表格 m_FlexGrid.SetTextMatrix(current_row,m,t);/*求平均值*/OnButton8() double ave; double m; if(current_col=col+4) /用col+4判断是行还是列需要求平均值 m=atof(m_FlexGrid.GetTextMatrix(current_row,col+1);/利用前面求的的和(COL+1)m直接进行求平均 ave=m/col; gcvt(ave,10,t); m_FlexGrid.SetTextMatrix(current_row,col+4,t); else if(r

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

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