Microsoft Word - 实验3.doc
|
|
|
- 核屋完 晏
- 8 years ago
- Views:
Transcription
1 实验 3 常用控件 控件是在系统内部定义的能够完成特定功能的程序单元 在应用程序中使用控件不仅简化了编程, 还能完成常用的各种功能 在所有的控件中, 根据它的使用以及 Visual C 对其支持情况 ( 包括 Visual C 对其更新和扩展 ), 可以把控件分为基本控件 公共控件和 ActiveX 控件 控件的创建方式有两种 一种是在对话框模板中指定控件 ( 既可使用对话框编辑器进行创建, 也可自行定义 ), 这样, 当应用程序启动该对话框时,Windows 系统就会为对话框创建控件 ; 当对话框清除时, 控件也随之清除 另一种方式是将控件看作子窗口, 通过调用 CWnd::Create 函数来创建控件 在本实验 ( 实训 ) 中, 将用对话框模板来设计几个比较有趣的实例 :Ex_Font 能枚举系统中的字体并能显示其样式 ;Ex_Hatch 用来例显控件中图案和颜色绘制的能力 ; Ex_Person 能简单管理学生的个人信息 实验目的 熟悉对话框应用程序的创建 熟悉对话框资源的添加和设计 掌握控件消息和对话框消息的映射 学会在控件上绘制图案 学会在同一个消息函数处理不同控件的消息 熟悉常见问题的处理方法和技巧 实验内容 简单计算器 控件图案绘制 管理学生的个人信息 实验准备和说明 具备知识 : 常用控件 构思并准备上机所需要的程序 Ex_Cal Ex_Hatch 和 Ex_Person 创建本实验 ( 实训 ) 的工作文件夹 D:\Visual C++ 程序 \LiMing\3 3.1 简单计算器 一个简单的计算器常常包含加 减 乘和除四则运算, 由于乘除的运算等级要高于加减, 因此显示结果时需要对输入的表达式按进行运算等级解析 当然, 表达式的输入是通过数字和符号按钮进行的, 如图 3.1(a) 所示, 单击 = 按钮, 结果如图 3.1(b) 所示
2 54 Visual C++ 实训 ( 第 3 版 ) 本实验 ( 实训 ) 创建的项目为 Ex_Cal, 具体过程如下 : 设计计算器对话框 映射并控制输入 解析并输出结果 (a) (b) 图 3.1 项目 Ex_Cal 运行结果 设计计算器对话框具体步骤如下 : (1) 启动 Visual C++ 6.0, 选择 文件 新建 菜单命令, 显示出 新建 对话框 单击 工程 标签, 从列表框中选中 MFC AppWizard(exe) 项, 单击 位置 编辑框右侧的浏览按钮, 从弹出的 选择目录 对话框指定项目所在的文件夹 D:\Visual C++ 程序 \LiMing\3 在 工程名称 编辑框中输入项目名 Ex_Cal, 结果如图 3.2 所示 图 3.2 创建项目 Ex_Cal (2) 单击按钮进入下一步, 出现向导的步骤 1( 共 1 步 ) 对话框, 选定 基本对话框 (Dialog Based, 基于对话框 ) 类型 单击按钮, 出现一个信息对话框, 显
3 实验 3 常用控件 55 示出用户在前面几个步骤中做出的选择, 单击按钮, 系统开始创建, 并又回到了 Visual C 的主界面, 同时自动打开对话框模板编辑器以及控件工具栏 控件布局工具栏等 (3) 删除对话框模板中的 TODO:xx 静态控件以及 确定 和 取消 按钮 ; 将对话框标题设为 简单计算器, 字体设为 Tahoma,8 (4) 单击布局工具栏上的按钮, 打开对话框模板的网格 调整对话框的大小, 参看图 3.1 的控件布局为对话框添加如表 3.1 所示的一些控件 需要说明的是, 表中控件 ID 号中的 = 用来重新为其指定一个值 例如,IDC_BUTTON_0 = 600 表示将按钮 ID 号 IDC_ BUTTON_0 的值设为 600 表 3.1 简单计算器对话框添加的控件 添加的控件 ID 号 标题 其他属性 静态文本 IDC_STATIC_DISP 默认 靠右, 垂直居中, 凹陷 按钮 IDC_BUTTON_7=607 7 默认 按钮 IDC_BUTTON_8=608 8 默认 按钮 IDC_BUTTON_9=609 9 默认 按钮 IDC_BUTTON_4=604 4 默认 按钮 IDC_BUTTON_5=605 5 默认 按钮 IDC_BUTTON_6=606 6 默认 按钮 IDC_BUTTON_1=601 1 默认 按钮 IDC_BUTTON_2=602 2 默认 按钮 IDC_BUTTON_3=603 3 默认 按钮 IDC_BUTTON_0=600 0 默认 按钮 IDC_BUTTON_00= 默认 按钮 IDC_BUTTON_DOT. 默认 按钮 IDC_BUTTON_BACK 默认 按钮 IDC_BUTTON_CLEAR C 默认 按钮 IDC_BUTTON_MUL=701 x 默认 按钮 IDC_BUTTON_DIV=702 默认 按钮 IDC_BUTTON_ADD=703 + 默认 按钮 IDC_BUTTON_SUB=704 - 默认 按钮 IDC_BUTTON_RES = 默认 图 3.3 资源符号对话框 图 3.4 设置控件 Tab 顺序
4 56 Visual C++ 实训 ( 第 3 版 ) (5) 选择 查看 资源符号 菜单命令, 弹出如图 3.3 所示的 资源符号 对话框, 从中核对它们的值是否与表 3.1 所设一致 (6) 关闭 资源符号 对话框 选择 布局 Tab 顺序 菜单或直接按快捷键 Ctrl+D, 则对话框模板中添加的各控件旁出现蓝底白字的数字, 这个数字就是表示该控件在使用 Tab 键选择时的次序, 如图 3.4 所示 单击 = 按钮, 则其 Tab 顺序值被重置为 1, 这就意味着该控件在对话框显示第 1 个被选定的对象 按 Enter 键或在其他区域单击鼠标, 退出 Tab 顺序设置状态 (7) 按 Ctrl+W 快捷键, 弹出 MFC ClassWizard 对话框, 切换到 Member Variables 页面, 查看 Class name 是否是 CEx_CalDlg, 然后选中 IDC_STATIC_DISP, 双击鼠标或单击 Add Variables 按钮, 为其设定 Value 类别的 CString 类型变量 m_strdisp 单击按钮, 退出 MFC ClassWizard 对话框, 回到 Visual C 主界面 (8) 编译并运行 映射并控制输入对于按钮等控件来说, 可通过映射 WM_COMMAND 消息 ( 重载 OnCommand) 达到统一处理消息的目的 为了区分简单计算器中 ~9 数字按钮与小数点 加减乘除等按钮, 这里用成员变量 m_ncurkeytype( 当前按钮类型 ) m_bhasdot( 是否已有小数点 ) m_bhasnum( 是否已有非 0 数值 ) 来控制输入 具体步骤如下 : ( 1 ) 将项目工作区窗口切换到 ClassView 页面, 双击节点, 打开 Ex_CalDlg.h, 在类 CEx_CalDlg 中添加下列成员变量定义代码 : class CEx_CalDlg : public CDialog public: int m_ncurkeytype; bool m_bhasdot; bool m_bhasnum; // Construction public: CEx_CalDlg(CWnd* pparent = NULL); ; // standard constructor (2) 在项目工作区窗口的 ClassView 页面中, 将节点展开, 双击成员函数节点, 在 OnInitDialog 函数的最后 (return true; 语句前 ) 添加下列初始化代码 : BOOL CEx_CalDlg::OnInitDialog() CDialog::OnInitDialog(); // TODO: Add extra initialization here m_strdisp = "0"; // 开始显示为 0
5 实验 3 常用控件 57 m_bhasdot = false; m_bhasnum = false; m_ncurkeytype = -1; // 没有输入 // 设置显示字体 CWnd* pwnd = GetDlgItem( IDC_STATIC_DISP ); CFont* pfont = pwnd->getfont(); LOGFONT lf; pfont->getlogfont( &lf ); lf.lfheight = -24; // 指定为 24 像素高度 static CFont font; // 须将其指定为全局, 否则后面的字体设置无效 font.createfontindirect(&lf); pwnd->setfont( &font ); // 创建字体 UpdateData( false ); return TRUE; // return TRUE unless you set the focus to a control (3) 编译并运行 (4) 按 Ctrl+W 快捷键, 弹出 MFC ClassWizard 对话框, 切换到 Message Maps 页面, 查看 Class name 是否是 CEx_CalDlg, 然后在 Object IDs 框中选中 CEx_CalDlg, 在 Messages 框中找到并双击 OnCommand 这样,OnCommand 消息函数就添加好了 (5) 单击按钮, 退出 MFC ClassWizard 对话框并自动定位到 OnCommand 消息函数的实现代码处, 添加下列代码 : BOOL CEx_CalDlg::OnCommand(WPARAM wparam, LPARAM lparam) // TODO: Add your specialized code here and/or call the base class WORD nid = LOWORD( wparam ); // 获取控件 ID if (( nid >= 599 ) && ( nid <= 609 )) // 数字按钮 // 处理 0 00 按钮 if (( nid == 600 ) ( nid == 599 )) if ( m_bhasdot m_bhasnum ) // 有小数点或非 0 数值 m_strdisp = m_strdisp + "0"; if ( nid == 599 ) m_strdisp = m_strdisp + "0"; else UpdateData( false ); m_ncurkeytype = 1;
6 58 Visual C++ 实训 ( 第 3 版 ) if ( m_ncurkeytype < 0 ) m_strdisp.empty(); m_bhasnum = true; CString strnum; strnum.format("%d", nid ); m_strdisp = m_strdisp + strnum; UpdateData( false ); m_ncurkeytype = 1; else if ( nid == IDC_BUTTON_DOT ) if (!m_bhasdot ) m_bhasdot = true; m_strdisp = m_strdisp + "."; // 处理小数点按钮 UpdateData( false ); m_ncurkeytype = 2; else if (( nid >= 701 ) && ( nid <= 704 )) // 处理 * / + - int nlength = m_strdisp.getlength(); if (( m_ncurkeytype > 0 ) && ( nlength > 0 )) m_strdisp.replace( " ", "*" ); m_strdisp.replace( " ", "/" ); CString strop[] = "*", "/", "+", "-"; if ( m_ncurkeytype >= 5 ) nlength = m_strdisp.getlength(); m_strdisp = m_strdisp.left( nlength - 1 ); m_strdisp = m_strdisp + strop[ nid ]; m_strdisp.replace( "*", " " ); m_strdisp.replace( "/", " " ); UpdateData( false ); m_ncurkeytype = 5; m_bhasdot = false; m_bhasnum = false;
7 实验 3 常用控件 59 return CDialog::OnCommand(wParam, lparam); (6) 按 Ctrl+W 快捷键, 打开 MFC ClassWizard 对话框, 在 Object IDs 框中选中 IDC_BUTTON_CLEAR, 在 Messages 框中找到并双击 BN_CLICKED, 弹出 Add Member Function 对话框, 保留默认的函数名 OnButtonClear, 单击 按钮 (7) 在 Member functions 列表中, 双击消息函数 OnButtonClear 或单击 按钮, 退出 MFC ClassWizard 对话框, 并转向文档窗口, 自动定位到 CEx_CalDlg:: OnButtonClear 函数实现的源代码处, 添加下列代码 : void CEx_CalDlg::OnButtonClear() // TODO: Add your control notification handler code here m_strdisp = "0"; // 开始显示为 0 m_bhasdot = false; m_bhasnum = false; m_ncurkeytype = -1; // 没有输入 UpdateData( false ); (8) 类似地, 用 MFC ClassWizard 为按钮 IDC_BUTTON_BACK 添加 BN_CLICKED 消息映射函数 OnButtonBack, 并添加下列代码 : void CEx_CalDlg::OnButtonBack() // TODO: Add your control notification handler code here if ( m_ncurkeytype < 0 ) return; m_strdisp.replace( " ", "*" ); m_strdisp.replace( " ", "/" ); int nlength = m_strdisp.getlength(); if ( nlength <= 1 ) OnButtonClear(); // 则相当于按 C 按钮 return; m_strdisp = m_strdisp.left( nlength - 1 ); char chlast = m_strdisp[ nlength - 2 ]; if (( chlast >= '0' ) && ( chlast <= '9' ))
8 60 Visual C++ 实训 ( 第 3 版 ) m_bhasnum = true; m_ncurkeytype = 1; else if ( chlast == '.' ) m_bhasdot = true; m_ncurkeytype = 2; else // 剩下来应是 + - * / 运算符号 m_ncurkeytype = 5; m_bhasdot = false; m_bhasnum = false; m_strdisp.replace( "*", " " ); m_strdisp.replace( "/", " " ); UpdateData( false ); (9) 编译运行并测试, 结果如前图 3.1(a) 所示 解析并输出结果由于乘除的运算等级要高于加减, 因此解析输入的表达式时需要先按乘除进行运算 由于乘除是二元运算符, 因此可先找出运算符左 右两边操作数, 运算后的结果 替换 原来的表达式, 然后循环解析直到没有乘除运算符为止, 最后解析 加减 运算 同级别相邻运算符需按从左到右的顺序来计算结果 具体步骤如下 : (1) 将项目工作区窗口切换到 ClassView 页面, 右击节点, 从弹出的快捷菜单中选择 ( 添加成员函数 ) 命令, 弹出如图 3.5 所示的对话框 在函数类型 (Function Type) 框中输入 CString, 在函数声明 (Function Declaration) 框中输入 GetLeftData(CString str, double& fres), 对话框下方用来确定该成员函数的访问方式 图 3.5 添加成员函数 对话框
9 实验 3 常用控件 61 (2) 保留默认的 Public 访问类型, 单击按钮, 退出对话框, 并自动定位到添加的函数实现代码处, 在这里可以为该函数添加下列代码 : // 取运算符左侧的操作数, 结果保存到引用 fres 中, 剩下的字符串由函数返回 CString CEx_CalDlg::GetLeftData(CString str, double&fres) int nindex = str.getlength() - 1; // 从最后往前查找 while ( nindex >= 0 ) char ch = str[ nindex ]; if (( ch == '+' ) ( ch == '-' ) ( ch == '*' ) ( ch == '/' )) break; nindex--; CString strleft; // 数据拿掉后还剩下的字符串 if ( nindex >= 0 ) strleft = str.left( nindex + 1 ); fres = atof( str.mid( nindex + 1 ) ); else fres = atof( str ); strleft.empty(); return strleft; (3) 类似地, 为 CEx_CalDlg 类添加成员函数 GetRightData, 用来取运算符右侧的操作数, 结果保存到引用 fres 中, 剩下的字符串由函数返回 添加的函数代码如下 : // 取运算符左侧的操作数, 结果保存到引用 fres 中, 剩下的字符串由函数返回 CString CEx_CalDlg::GetRightData(CString str, double&fres) int nindex = 0; int nlength = str.getlength(); while ( nindex < nlength ) char ch = str[ nindex ]; if (( ch == '+' ) ( ch == '-' ) ( ch == '*' ) ( ch == '/' )) break; nindex++;
10 62 Visual C++ 实训 ( 第 3 版 ) CString strleft; // 数据拿掉后还剩下的字符串 if ( nindex >= 0 ) strleft = str.mid( nindex ); fres = atof( str.left( nindex ) ); else fres = atof( str ); strleft.empty(); return strleft; (4) 为 CEx_CalDlg 类添加用于处理运算符的成员函数 DoParseOP, 函数返用解析后 的字符串 具体的函数代码如下 : CString CEx_CalDlg::DoParseOP(CString strdata, CString strop) int npos; while (( npos = strdata.findoneof( strop ) ) >= 0 ) // 处理首字符是运算符的情况 if ( npos == 0 ) CString strtemp = strdata.mid( 1 ); npos = strtemp.findoneof( strop ); if ( npos < 0 ) break; else npos++; char chop = strdata[npos]; // 以当前运算符为界, 将字符串分成左 右两段 CString strl = strdata.left( npos ); CString strr = strdata.mid( npos + 1 ); double fldata, frdata, fdata; CString strll = GetLeftData( strl, fldata ); CString strrr = GetRightData( strr, frdata ); if ( chop == '*' ) else if ( chop == '/' ) else if ( chop == '+' ) else if ( chop == '-' ) fdata = fldata * frdata; fdata = fldata / frdata; fdata = fldata + frdata; fdata = fldata - frdata;
11 实验 3 常用控件 63 CString strres; strres.format("%f", fdata ); strres.trimright('0'); strres.trimright('.'); // 将左右剩下来和当前计算结果合成一个表达式 strdata.format("%s%s%s", strll, strres, strrr ); return strdata; (5) 打开 MFC ClassWizard 对话框, 添加按钮 IDC_BUTTON_CLEAR 的 BN_CLICKED 消息处理函数 CEx_CalDlg::OnButtonRes, 并添加下列代码 : void CEx_CalDlg::OnButtonRes() // TODO: Add your control notification handler code here // 无输入或输入为空 if (( m_ncurkeytype < 0 ) ( m_strdisp.isempty() )) OnButtonClear(); return; m_strdisp.replace( " ", "*" ); m_strdisp.replace( " ", "/" ); // 先处理 */, 再处理 +- m_strdisp = DoParseOP( m_strdisp, "*/" ); m_strdisp = DoParseOP( m_strdisp, "+-" ); // 处理结果 m_strdisp.trimright('0'); m_strdisp.trimright('.'); UpdateData( false ); m_bhasnum = true; if ( m_strdisp.find( '.' ) >= 0 ) m_bhasdot = true; else m_bhasdot = false; m_ncurkeytype = 1; (6) 编译运行并测试, 结果如前面图 3.1 所示
12 64 Visual C++ 实训 ( 第 3 版 ) 3.2 控件图案绘制 在控件中绘制图案的关键在于控制对话框自动刷新控件 图案绘制后还可通过 图案 组合框和颜色分量调节器来改变绘制的图案类型和颜色, 创建的项目为 Ex_Hatch, 结果如图 3.6(a) 所示 (a) (b) 图 3.6 Ex_Hatch 运行结果具体的实验 ( 实训 ) 过程如下 : 设计图案绘制对话框 WM_PAINT 和控件绘制 图案及其颜色调整 设计图案绘制对话框具体步骤如下 : (1) 选择 文件 关闭工作区 菜单命令, 将弹出一个提示对话框, 询问是否真的关闭所有文档窗口 单击按钮, 关闭原来的项目 (2) 选择 文件 新建 菜单命令, 弹出 新建 对话框, 在 工程 页面的列表框中选定 MFC AppWizard(exe) 项, 在 工程名称 编辑框中输入项目名 Ex_Hatch (3) 单击按钮进入下一步, 出现向导的步骤 1( 共 1 步 ) 对话框, 选定 基本对话框 (Dialog Based, 基于对话框的应用程序, 简称对话框 ) 类型 单击按钮, 出现一个信息对话框, 单击按钮, 系统开始创建, 并又回到了 Visual C 的主界面, 同时还自动打开对话框模板编辑器以及控件工具栏 控件布局工具栏等 (4) 删除对话框模板中的 TODO:xx 静态控件和 确定 按钮 ; 将对话框标题设为 图案绘制 ; 将 取消 按钮标题改为 退出 (5) 单击布局工具栏上的按钮, 打开对话框模板的网格 调整对话框大小, 并将 退出 按钮移至对话框的右下角 参看图 3.6(b) 控件布局为对话框添加如表 3.2 所示的一些控件
13 实验 3 常用控件 65 表 3.2 图案绘制对话框添加的控件 添加的控件 ID 号标题其他属性 组合框 IDC_COMBO_HATCH 默认 静态文本 IDC_STATIC_DRAW 默认 Static edge( 静态边缘 ), 其余默认 编辑框 IDC_EDIT_R 默认 上下旋转控件 IDC_SPIN_R Auto buddy( 自动结伴 ),Set buddy integer ( 设置结伴整数 ),Right( 靠右 ) 对齐 滚动条 IDC_SCROLLBAR_G 默认 滑动条 IDC_SLIDER_B 点 : 两者, 打勾标记 自动打勾, 其余 需要说明的是 : 当添加组合框后, 一定要单击右侧的下拉箭头, 增大下拉框的大小 当 红色分量 编辑框添加之后, 紧接着要添加上下旋转按钮, 这样它们才能组成 伙伴窗口 (6) 按 Ctrl+W 快捷键, 弹出 MFC ClassWizard 对话框, 切换到 Member Variables 页 面, 查看 Class name 是否是 CEx_HatchDlg, 然后选中所需的控件 ID 号, 双击鼠标或单击 Add Variables 按钮, 依次为表 3.3 中的控件增加成员相应的控件变量 表 3.3 控件变量 控件 ID 号 变量类别 变量类型 变量名 范围和大小 IDC_COMBO_HATCH Control CComboBox m_cbhatch IDC_EDIT_R Value UINT m_nrvalue 0~255 IDC_SPIN_R Control CSpinButtonCtrl m_spinrvalue IDC_SCROLLBAR_G Control ScrollBar m_sbgvalue IDC_SLIDER_B Control CSliderCtrl m_sdbvalue (7) 单击按钮, 退出 MFC ClassWizard 对话框, 回到 Visual C 的主界面, 编译并运行 WM_PAINT 和控件绘制在 MFC 框架中, 当需要更新或重新绘制窗口的外观时, 应用程序就会发送 WM_PAINT 消息, 通常需要在对话框中映射 WM_PAINT 消息以便执行自己的绘制代码 不过, 基于对话框应用程序中,WM_PAINT 消息映射已自动添加 所以, 控件绘制的代码只要添加到 OnPaint 映射函数就可以了 只是, 在对话框中的控件进行绘画时, 为了防止 Windows 用系统默认的颜色向对话框进行重复绘制, 用户须调用 UpdateWindow( 更新窗口 ) 函数来达到这一效果 UpdateWindow 是 CWnd 的一个无参数的成员函数, 其目的是绕过系统的消息队列, 而直接发送或停止发送 WM_PAINT 消息 当窗口没有需要更新的区域时, 就停止发送 这样, 当用户绘制完图形时, 由于没有 WM_PAINT 消息的发送, 系统也就不会用默认的颜色对窗口进行重复绘制
14 66 Visual C++ 实训 ( 第 3 版 ) 当然, 也可在程序中通过调用 Invalidate 函数来通知系统此时的窗口状态已变为无效, 强制系统调用 WM_PAINT 消息函数 OnPaint 重新绘制 具体步骤如下 : (1) 将项目工作区窗口切换到 ClassView 页面, 展开 Ex_Hatch 中的所有节点 双击 节点, 从弹出的快捷菜单中选择 ( 添加成员变量 ), 弹出 添加成员变量 对话框 (2) 在 变量类型 框中输入 UINT( 无符号整数 ), 在 变量名称 框中输入变量名 m_ngvalue, 保留默认的成员属性, 单击按钮 类似的, 添加下列成员变量 : class CEx_HatchDlg : public CDialog // Construction public: UINT m_ngvalue; UINT m_nbvalue; UINT m_nhatch; CEx_HatchDlg(CWnd* pparent = NULL); // standard constructor (3) 再次双击节点, 从弹出的快捷菜单中选择 ( 添加成员函数 ), 在弹出的对话框中为 CEx_HatchDlg 类添加函数 void DrawHatch(void), 单击 按钮, 添加下列函数实现代码 : void CEx_HatchDlg::DrawHatch() CWnd* pwnd = GetDlgItem(IDC_STATIC_DRAW); pwnd->updatewindow(); CDC* pdc = pwnd->getdc(); CBrush drawbrush; // 获得窗口当前的设备环境指针 // 定义画刷变量 drawbrush.createhatchbrush( m_nhatch, RGB(m_nRValue,m_nGValue, m_nbvalue)); // 创建一个图案画刷 RGB 是一个颜色宏, 用来将指定的红 绿 蓝 3 种颜色分量 // 转换成一个 32 位的 RGB 颜色值 CBrush* poldbrush = pdc->selectobject(&drawbrush); CRect rcclient; pwnd->getclientrect(rcclient); pdc->rectangle(rcclient); pdc->selectobject(poldbrush); // 获取当前控件的客房区大小 // 用当前画刷填充指定的矩形框 // 恢复原来的画刷 (4) 在 CEx_HatchDlg::OnInitDialog 函数中添加下列初始化代码 : BOOL CEx_HatchDlg::OnInitDialog()
15 实验 3 常用控件 67 // TODO: Add extra initialization here // 填充并设定图案组合框选项 int nindex; nindex = m_cbhatch.addstring( " 向上 45 度斜线 " ); m_cbhatch.setitemdata( nindex, HS_BDIAGONAL ); nindex = m_cbhatch.addstring( " 交叉十字线 " ); m_cbhatch.setitemdata( nindex, HS_CROSS ); nindex = m_cbhatch.addstring( " 斜十字交叉线 " ); m_cbhatch.setitemdata( nindex, HS_DIAGCROSS ); nindex = m_cbhatch.addstring( " 向下 45 度斜线 " ); m_cbhatch.setitemdata( nindex, HS_FDIAGONAL ); nindex = m_cbhatch.addstring( " 水平线 " ); m_cbhatch.setitemdata( nindex, HS_HORIZONTAL ); nindex = m_cbhatch.addstring( " 垂直线 " ); m_cbhatch.setitemdata( nindex, HS_VERTICAL ); m_cbhatch.setcursel( 0 ); m_nhatch = m_cbhatch.getitemdata( 0 ); // 设置上下转换按钮范围和当前值 m_spinrvalue.setrange( 0, 255 ); m_nrvalue = 0; m_spinrvalue.setpos( m_nrvalue ); // 设置滚动条范围和当前值 m_sbgvalue.setscrollrange( 0, 255 ); m_ngvalue = 0; m_sbgvalue.setscrollpos( m_ngvalue ); // 设置滑动条范围和当前值 m_sdbvalue.setrange( 0, 255 ); m_nbvalue = 0; m_sdbvalue.setpos( m_nbvalue ); return TRUE; // return TRUE unless you set the focus to a control (5) 在 CEx_HatchDlg::OnPaint 函数中添加下列代码 : void CEx_HatchDlg::OnPaint() if (IsIconic()) else CDialog::OnPaint(); DrawHatch(); (6) 编译并运行, 结果如图 3.7 所示
16 68 Visual C++ 实训 ( 第 3 版 ) 图 3.7 Ex_Hatch 第一次运行 图案及其颜色调整具体步骤如下 : (1) 用 MFC ClassWizard 为 CEx_HatchDlg 类映射组合框 IDC_COMBO_HATCH 的 CB_SELCHANGE 消息, 保留默认的消息映射函数名, 添加下列代码 : void CEx_HatchDlg::OnSelchangeComboHatch() // TODO: Add your control notification handler code here int nindex = m_cbhatch.getcursel(); if ( nindex!= CB_ERR ) m_nhatch = m_cbhatch.getitemdata( nindex ); DrawHatch(); (2) 为 CEx_HatchDlg 类添加一个 BOOL m_bok 成员变量, 同时在 CEx_HatchDlg 的构造函数中令其初值为 FALSE, 即 : CEx_HatchDlg::CEx_HatchDlg(CWnd* pparent /*=NULL*/) : CDialog(CEx_HatchDlg::IDD, pparent) m_hicon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_bok = FALSE; (3) 在 CEx_HatchDlg::OnInitDialog 函数的最后 return 语句之前, 添加下列代码 : m_bok = TRUE; (4) 用 MFC ClassWizard 为 CEx_HatchDlg 类映射编辑框 IDC_EDIT_R 的 EN_
17 实验 3 常用控件 69 CHANGE 消息, 保留默认的消息映射函数名, 添加下列代码 : void CEx_HatchDlg::OnChangeEditR() // TODO: Add your control notification handler code here if ( m_bok ) UpdateData(); DrawHatch(); 需要说明的是, 由于编辑框和上下旋转按钮控件结成伙伴窗口时, 任何对上下旋转按钮的初始化操作均影响结伴的编辑框的控件变量的值无效, 从而产生断言错误 ( 发生在 DLGDATA.CPP 文件的第 624 行 ) 在代码引入 m_bok 可解决这个错误 (5) 用 MFC ClassWizard 为 CEx_HatchDlg 类映射 WM_HSCROLL 消息, 在映射函数中添加下列代码 : void CEx_HatchDlg::OnHScroll(UINT nsbcode, UINT npos, CScrollBar* pscrollbar) // TODO: Add your message handler code here and/or call default int nid = pscrollbar->getdlgctrlid(); if (nid == IDC_SLIDER_B) // 若是滑动条产生水平滚动消息 m_nbvalue = m_sdbvalue.getpos(); // 则获得滑动条当前的位置 DrawHatch(); if (nid == IDC_SCROLLBAR_G) // 若是滚动条产生水平滚动消息 switch(nsbcode) case SB_LINELEFT: m_ngvalue--; // 单击滚动条左边箭头 break; case SB_LINERIGHT: m_ngvalue++; // 单击滚动条右边箭头 break; case SB_PAGELEFT: m_ngvalue -= 10; break; case SB_PAGERIGHT: m_ngvalue += 10; break; case SB_THUMBTRACK: m_ngvalue = npos; break; if (m_ngvalue<0) m_ngvalue = 0; if (m_ngvalue>255) m_ngvalue = 255;
18 70 Visual C++ 实训 ( 第 3 版 ) m_sbgvalue.setscrollpos(m_ngvalue); DrawHatch(); CDialog::OnHScroll(nSBCode, npos, pscrollbar); (6) 编译运行并测试, 结果如图 3.6(a) 所示 3.3 管理学生的个人信息 设计一个学生个人信息管理对话框应用程序 Ex_Person, 如图 3.8(a) 所示 单击按钮, 弹出 学生个人信息 对话框, 如图 3.8(b) 所示, 从中可以填写姓名 学号 性别 出生 ( 日期 ) 电话 地址等信息, 填完后, 单击按钮, 信息添加到列表控件中 单击按钮, 则仍弹出图 3.8(b) 的对话框, 单击按钮, 当前信息被修改 单击按钮, 则删除该记录 需要说明的是, 当列表框没有记录或没有选定的记录项, 则和按钮是灰显的 (a) (b) 图 3.8 Ex_Person 运行结果具体的实验 ( 实训 ) 过程如下 : 设计主对话框 添加并设计个人信息对话框 完善个人信息操作 设计主对话框具体步骤如下 : (1) 选择 文件 关闭工作区 菜单命令, 将弹出一个提示对话框, 询问是否真的关闭所有文档窗口 单击按钮, 关闭原来的项目 (2) 选择 文件 新建 菜单命令, 弹出 新建 对话框, 在 工程 页面的列表框中选定 MFC AppWizard(exe) 项, 在 工程名称 编辑框中输入项目名 Ex_Person
19 实验 3 常用控件 71 (3) 单击按钮进入下一步, 出现向导的步骤 1( 共 1 步 ) 对话框, 选定 基本对话框 (Dialog Based, 基于对话框的应用程序, 简称对话框 ) 类型, 单击按钮, 出现一个信息对话框, 单击按钮, 系统开始创建, 并又回到了 Visual C 的主界面, 同时还自动打开对话框模板编辑器以及控件工具栏 控件布局工具栏等 (4) 删除对话框模板中的 TODO:xx 静态控件和 确定 按钮 ; 将对话框标题设为 学生个人信息管理 ; 将 取消 按钮标题改为 退出 (5) 单击布局工具栏上的按钮, 打开对话框模板的网格 调整对话框的大小, 并将 退出 按钮移至对话框的右下角 参看图 3.8(a) 控件布局添加如表 3.5 所示的一些控件 表 3.5 主对话框添加的控件 添加的控件 ID 号标题其他属性 列表控件 IDC_LIST1 报告 (Report), 其余默认 按钮 IDC_BUTTON_ADD 添加 默认 按钮 IDC_BUTTON_CHAN 修改 默认 按钮 IDC_BUTTON_DEL 删除 默认 (6) 按 Ctrl+W 快捷键, 弹出 MFC ClassWizard 对话框, 切换到 Member Variables 页面, 查看 Class name 是否是 CEx_PersonDlg, 然后选中 IDC_LIST1, 双击鼠标或单击 Add Variables 按钮, 为对话框添加 Control 类别的 CListCtrl 类型的控件变量 m_datalist 单击 按钮, 退出 MFC ClassWizard 对话框, 回到 Visual C 的主界面, 编译并运行 添加并设计个人信息对话框 具体步骤如下 : (1) 选择 插入 资源 菜单, 或按快捷键 Ctrl+R 打开 插入资源 对话框, 在 对话框中可以看到资源列表中存在 Dialog 项 选中 Dialog, 单击 按钮, 系统就会 自动为当前应用程序添加一个对话框资源 (2) 保留默认的对话框资源 ID 号, 在对话框资源模板的空白区域 ( 没有其他元素或 控件 ) 内双击鼠标, 将弹出 Adding a Class 对话框, 询问是否为对话框资源创建一个新类 单击 按钮, 出现 New Class( 新类 ) 对话框 在 Name 框中输入类名 COneDlg, 单 击 按钮 这样, 一个基于对话框资源模板 IDD_DIALOG1 的用户对话框类 COneDlg 就创建好了 然后, 回到 MFC ClassWizard(MFC 类向导 ) 对话框界面 单击 按 钮, 退出 MFC ClassWizard 对话框 (3) 将添加的对话框的标题设为 学生个人信息, 将对话框字体改为 宋体,9 号 将 OK 和 Cancel 按钮标题分别改为 确定 和 取消 单击布局工具栏上的 按钮, 打 开对话框模板的网格 调整对话框的大小, 将 和 按钮移至对话框的下方, 参看图 3.8(b) 控件布局添加如表 3.6 所示的一些控件 表 3.6 个人信息对话框添加的控件 添加的控件 ID 号标题其他属性 编辑框 ( 姓名 ) IDC EDIT NAME 默认 编辑框 ( 学号 ) IDC_EDIT_NO 默认
20 72 Visual C++ 实训 ( 第 3 版 ) 续表 添加的控件 ID 号标题其他属性 单选按钮 ( 男 ) IDC RADIO MALE 男 默认 单选按钮 ( 女 ) IDC_RADIO_FEMALE 女 默认 日期时间控件 IDC_DATETIMEPICKER1 默认 编辑框 ( 电话 ) IDC_EDIT_PHONE 默认 编辑框 ( 地址 ) IDC_EDIT_ADDRESS 多行, 其余默认 (4) 按 Ctrl+W 快捷键, 弹出 MFC ClassWizard 对话框, 切换到 Member Variables 页面, 查看 Class name 是否是 COneDlg, 然后选中所需的控件 ID 号, 双击鼠标或单击 Add Variables 按钮, 依次为表 3.7 中的控件增加成员相应的控件变量 表 3.7 控件变量 控件 ID 号 变量类别 变量类型 变量名 范围和大小 IDC_EDIT_NAME Value CString m_strname 20 IDC_EDIT_NO Value CString m_strno 20 IDC_DATETIMEPICKER1 Value CTime m_tbirth IDC_EDIT_PHONE Value CString m_strphone 25 IDC_EDIT_ADDRESS Value CString m_straddress 150 (5) 为 COneDlg 类添加一个 BOOL 型成员变量 m_bmale, 并在 COneDlg 类构造函数处设置该变量的初始值 : COneDlg::COneDlg(CWnd* pparent /*=NULL*/) : CDialog(COneDlg::IDD, pparent) //AFX_DATA_INIT(COneDlg) //AFX_DATA_INIT m_bmale = TRUE; (6) 用 MFC ClassWizard 为 COneDlg 添加 WM_INITDIALOG 消息映射, 并添加下列初始化代码 : BOOL COneDlg::OnInitDialog() CDialog::OnInitDialog(); // TODO: Add extra initialization here // 设置单选按钮初始选中状态 if (!m_bmale) CheckRadioButton(IDC_RADIO_MALE, IDC_RADIO_FEMALE, IDC_RADIO_ FEMALE); else CheckRadioButton(IDC_RADIO_MALE, IDC_RADIO_FEMALE, IDC_RADIO_
21 实验 3 常用控件 73 MALE); UpdateData( FALSE ); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE ( 7 ) 用 MFC ClassWizard 为 COneDlg 的单选按钮 IDC_RADIO_MALE 和 IDC_RADIO_FEMALE 分别添加 BN_CLICKED 消息的映射, 保留默认的映射函数名, 并添加下列代码 : void COneDlg::OnRadioMale() // TODO: Add your control notification handler code here m_bmale = TRUE; void COneDlg::OnRadioFemale() // TODO: Add your control notification handler code here m_bmale = FALSE; (8) 用 MFC ClassWizard 为 COneDlg 的按钮添加 BN_CLICKED 的消息映射, 保留默认的映射函数名, 并添加下列代码 : void COneDlg::OnOK() // TODO: Add extra validation here UpdateData(); m_strname.trimleft(); m_strno.trimleft(); if (m_strname.isempty()) MessageBox(" 必须要有姓名!"); else if (m_strno.isempty()) MessageBox(" 必须要有学号!"); else CDialog::OnOK(); (9) 编译并运行 完善个人信息操作具体步骤如下 : (1) 在 CEx_PersonDlg::OnInitDialog 函数中添加设置列表控件标题头代码以及按钮的初始状态 : BOOL CEx_PersonDlg::OnInitDialog()
22 74 Visual C++ 实训 ( 第 3 版 ) // TODO: Add extra initialization here // 创建列表控件的标题头 CString strheader[]= " 姓名 ", " 学号 ", " 性别 ", " 出生日期 ", " 联系电话 ", " 联系地址 "; int nheaderwidth[]= 80, 80, 40, 100, 100, 200 ; for (int ncol=0; ncol<6; ncol++) m_datalist.insertcolumn(ncol,strheader[ncol], LVCFMT_LEFT, nheaderwidth[ncol]); GetDlgItem( IDC_BUTTON_CHANGE )->EnableWindow(FALSE); GetDlgItem( IDC_BUTTON_DEL )->EnableWindow(FALSE); return TRUE; // return TRUE unless you set the focus to a control ( 2 ) 用 MFC ClassWizard 为 CEx_PersonDlg 的按钮 IDC_BUTTON_ADD 添加 BN_CLICKED 的消息映射, 保留默认的映射函数名, 并添加下列代码 : void CEx_PersonDlg::OnButtonAdd() // TODO: Add your control notification handler code here COneDlg dlg; if (IDOK!= dlg.domodal()) return; // 根据学号来判断学生基本信息是不是已经添加过 LVFINDINFO info; info.flags = LVFI_PARTIAL LVFI_STRING; info.psz = dlg.m_strno; if (m_datalist.finditem( &info )!= -1) // 若找到 CString str; str.format(" 学号为 %s 的学生个人信息已添加过!", dlg.m_strno); MessageBox(str); return; // 添加学生基本信息 int nindex = m_datalist.insertitem(m_datalist.getitemcount(), dlg. m_strname); m_datalist.setitemtext( nindex, 1, dlg.m_strno ); if (dlg.m_bmale) m_datalist.setitemtext( nindex, 2, " 男 " ); else m_datalist.setitemtext( nindex, 2, " 女 " ); m_datalist.setitemtext( nindex, 3, dlg.m_tbirth.format("%y-%m-%d") ); m_datalist.setitemtext( nindex, 4, dlg.m_strphone );
23 实验 3 常用控件 75 m_datalist.setitemtext( nindex, 5, dlg.m_straddress ); (3) 用 MFC ClassWizard 为 CEx_PersonDlg 的按钮 IDC_BUTTON_CHANGE 添加 BN_CLICKED 的消息映射, 保留默认的映射函数名, 并添加下列代码 : void CEx_PersonDlg::OnButtonChange() // TODO: Add your control notification handler code here // 获取被选择的列表项索引号 POSITION pos; pos = m_datalist.getfirstselecteditemposition(); if (pos == NULL) MessageBox(" 还没有选中列表项!"); return; int nitem = m_datalist.getnextselecteditem( pos ); COneDlg dlg; dlg.m_strname = m_datalist.getitemtext( nitem, 0 ); dlg.m_strno = m_datalist.getitemtext( nitem, 1 ); CString strmale = m_datalist.getitemtext( nitem, 2 ); strmale.trimleft(); strmale.trimright(); if ( strmale == " 男 " ) dlg.m_bmale = TRUE; else dlg.m_bmale = FALSE; CString strdate = m_datalist.getitemtext( nitem, 3 ); // 将文本转换成日期 COleDateTime odtdata; odtdata.parsedatetime( strdate, VAR_DATEVALUEONLY ); SYSTEMTIME systime; odtdata.getassystemtime( systime ); dlg.m_tbirth = CTime( systime ); dlg.m_strphone = m_datalist.getitemtext( nitem, 4 ); dlg.m_straddress= m_datalist.getitemtext( nitem, 5 ); if (IDOK!= dlg.domodal()) return; m_datalist.setitemtext( nitem, 0, dlg.m_strname); m_datalist.setitemtext( nitem, 1, dlg.m_strno ); if (dlg.m_bmale) m_datalist.setitemtext( nitem, 2, " 男 " ); else
24 76 Visual C++ 实训 ( 第 3 版 ) m_datalist.setitemtext( nitem, 2, " 女 " ); m_datalist.setitemtext( nitem, 3, dlg.m_tbirth.format("%y-%m-%d") ); m_datalist.setitemtext( nitem, 4, dlg.m_strphone ); m_datalist.setitemtext( nitem, 5, dlg.m_straddress ); ( 4 ) 用 MFC ClassWizard 为 CEx_PersonDlg 的按钮 IDC_BUTTON_DEL 添加 BN_CLICKED 的消息映射, 保留默认的映射函数名, 并添加下列代码 : void CEx_PersonDlg::OnButtonDel() // TODO: Add your control notification handler code here // 获取被选择的列表项索引号 POSITION pos; pos = m_datalist.getfirstselecteditemposition(); if (pos == NULL) MessageBox(" 还没有选中列表项!"); return; int nitem = m_datalist.getnextselecteditem( pos ); if ( IDYES == MessageBox( " 确实要删除吗?", " 警告 ", MB_ICONWARNING MB_YESNO ) ) m_datalist.deleteitem( nitem ); (5) 用 MFC ClassWizard 为 CEx_PersonDlg 的列表控件 IDC_LIST1 添加 LVN_ TEMCHANGED 的消息映射, 保留默认的映射函数名, 并添加下列代码 : void CEx_PersonDlg::OnItemchangedList1(NMHDR* pnmhdr, LRESULT* presult) NM_LISTVIEW * pnmlistview = (NM_LISTVIEW*)pNMHDR; // TODO: Add your control notification handler code here POSITION pos; pos = m_datalist.getfirstselecteditemposition(); if (pos == NULL) GetDlgItem( IDC_BUTTON_CHANGE )->EnableWindow(FALSE); GetDlgItem( IDC_BUTTON_DEL )->EnableWindow(FALSE); else GetDlgItem( IDC_BUTTON_CHANGE )->EnableWindow(TRUE); GetDlgItem( IDC_BUTTON_DEL )->EnableWindow(TRUE); *presult = 0;
25 实验 3 常用控件 77 (6) 在文件 Ex_PersonDlg.cpp 的前面添加 COneDlg 类的头文件包含命令 : #include "stdafx.h" #include "Ex_Person.h" #include "Ex_PersonDlg.h" #include "OneDlg.h" (7) 编译运行并测试 3.4 常见问题处理 (1) 如何将在项目工作区中消失的类找出来? 或者是有 类, 但双击成员函数节点却打不开其实现文件 (.cpp), 怎么办? 解答 : 打开该类对应的头文件, 然后将其类名随便改一下, 这个时候工作区就会出现新的类, 再将这个类改回原来的名字就可以了 或者, 关闭当前项目, 删除当前项目文件夹中的 *.ncb 文件, 然后再重新打开项目 或者, 删除当前项目文件夹中的 *.clw 文件, 然后按 Ctrl+W 快捷键, 会提示添加类, 添加全部 或者, 用 MFC ClassWizard 为这个类生成一个消息映射函数, 就可以在项目工作区的 ClassView 页面中看到了, 最后再删除添加的映射函数 (2) 数值与字符串如何相互转换? 解答 : 使用 atof atoi 和 atol 可将字符串转换成 double int 和 long 型数值 使用 CString 类的 Format 格式函数, 可使用 stdio.h 中的 sprintf 类的格式进行转换 (3) 如何遍历对话框中的某些控件? 解答 : 用 CWnd::GetWindow 和 CWnd::GetNextWindow 来完成, 如下面的代码是用来遍历所有编辑框控件 : void CSimParDlg::OnButton1() CWnd *pwnd; pwnd=getwindow(gw_child); while (pwnd!=null) if (pwnd-> IsKindOf(RUNTIME_CLASS(CEdit))) pwnd-> EnableWindow(false); pwnd=pwnd-> GetNextWindow();
26 78 Visual C++ 实训 ( 第 3 版 ) 3.5 思考与练习 (1) 在 简单计算器 对话框中若添加左括号 ( 和右括号 ) 按钮, 则如何实现? 对话框代码应如何修改? (2) 若在 学生个人信息 对话框中添加一个静态图片控件, 当单击性别 男 时, 图片呈现一个 男 图片 ( 可用其他图片代替 ), 而当单击性别 女 时, 图片是另一个内容 看看如何实现? (3) 如何使列表控件的报表视图带有网格, 且选择时是选定整个一行?
INTRODUCTION TO COM.DOC
How About COM & ActiveX Control With Visual C++ 6.0 Author: Curtis CHOU [email protected] This document can be freely release and distribute without modify. ACTIVEX CONTROLS... 3 ACTIVEX... 3 MFC ACTIVEX
概述
OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3
VC访问VB的ActiveX.dll.doc
如何从 VisualC++6.0 可执行文件访问 VisualBasicActiveXDLL 本文介绍三种方法可以从 VisualC++6.0 访 VisualBasicActiveXDLL 执行 1. 创建 VisualBasicActiveXDLL 项目 默认情况下创建 Class 1 2. 以下代码添加到 Class 1: Public Function MyVBFunction(x As Integer)
Microsoft Word - 第3章.doc
CHAPTER 3 第章 常用控件 控件是在系统内部定义的用于和用户交互的基本单元 在所有的控件中, 根据它们的使用及 Visual C++ 6.0 对其支持的情况, 可以把控件分为 Windows 普通控件 ( 如编辑框 列表框 组合框等 ) MFC 扩展控件和 ActiveX 控件 ActiveX 控件可以理解成是一个 OLE (Object Linking and Embedding, 对象连接与嵌入
无类继承.key
无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo [email protected] https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255
PowerPoint 演示文稿
按钮对象 (button) 当 JavaScript 读到 标记中的 type 属性值为 button 时, 自动建立一个按钮对象, 并将该对象放到表单对象的 elements 数组当中 按钮对象包括 : 普通按钮 (button) 提交按钮 (submit) 重置按钮 (reset) 1. 使用按钮对象的格式 document.forms[ 索引值 ].elements[ 索引值
FY.DOC
高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主
Microsoft Word - ch04三校.doc
4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear
ebook50-11
11 Wi n d o w s C A D 53 M F C 54 55 56 57 58 M F C 11.1 53 11-1 11-1 MFC M F C C D C Wi n d o w s Wi n d o w s 4 11 199 1. 1) W M _ PA I N T p W n d C W n d C D C * p D C = p W n d GetDC( ); 2) p W n
C 1
C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=
Microsoft PowerPoint - string_kruse [兼容模式]
Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.
chap07.key
#include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,
新・明解C言語入門編『索引』
!... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177
untitled
1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override
<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>
第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop
CC213
: (Ken-Yi Lee), E-mail: [email protected] 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,
概述
OPC Version 1.8 build 0925 KOCRDK Knight OPC Client Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOC_Init...5 2.2.2 KOC_Uninit...5 2.3...5
1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F
1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET 2.0 2.0.NET Framework.NET Framework 2.0 ( 3).NET Framework 2.0.NET Framework ( System ) o o o o o o Boxing UnBoxing() o
新版 明解C++入門編
511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,
BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2
PowerBuilder 9 PowerBuilder Native Interface(PBNI) PowerBuilder 9 PowerBuilder C++ Java PowerBuilder 9 PBNI PowerBuilder Java C++ PowerBuilder NVO / PowerBuilder C/C++ PowerBuilder 9.0 PowerBuilder Native
一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页
第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共
Microsoft Word - 01.DOC
第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的
OOP with Java 通知 Project 4: 4 月 19 日晚 9 点
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d
Microsoft Word - CX1000-HMI_程序开发_PLC通讯
用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll
C/C++语言 - C/C++数据
C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;
帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)
untitled
Visual C++ Microsoft Windows C++ MFC(Microsoft Foundation Class) Microsoft Visual C++ Visual C++ Visual C++ 6.0 Visual C++ 6.0 Visual C++ 6.0 (MSDN) Visual C++ 6.0 Visual C++ 6.0 Visual Studio 6.0 MFC
Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx
运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;
1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->
目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController
Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]
Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];
C/C++ 语言 - 循环
C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf
OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class
手册 doc
1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106
int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;
Memory & Pointer [email protected] 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,
Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc
References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2
C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1
C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 CRECT 类 1 CRect 类 设计矩形类, 包含 长度和宽度信息 基本构造函数 基础属性的访问接口 ( 读 / 写, Read/Write, Get/Set) 计算周长和面积 ( 注 : 基本构造函数, 一个无参数的默认构造函数, 以及一个初始化数据成员的构造函数如果数据成员的初始化有多种形式, 就提供多个构造函数
Microsoft Word - CIN-DLL.doc
6.3. 调 用 动 态 链 接 库 (DLL) 相 对 于 CIN 来 讲,NI 更 推 荐 用 户 使 用 DLL 来 共 享 基 于 文 本 编 程 语 言 开 发 的 代 码 除 了 共 享 或 重 复 利 用 代 码, 开 发 人 员 还 能 利 用 DLL 封 装 软 件 的 功 能 模 块, 以 便 这 些 模 块 能 被 不 同 开 发 工 具 利 用 在 LabVIEW 中 使 用
提问袁小兵:
C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.
SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基
开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些
1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File
51 C 51 51 C C C C C C * 2003-3-30 [email protected] C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test
res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml
拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,
1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10
Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1
untitled
1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 [email protected] www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立
《C语言程序设计》教材习题参考答案
教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,
Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3
浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.
Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc
2 5 8 11 0 1. 13 2. 15 3. 18 1 1. 22 2. 25 3. 27 2 1. 35 2. 38 3. 41 4. 43 5. 48 6. 50 3 1. 56 2. 59 3. 63 4. 65 5. 69 13 22 35 56 6. 74 7. 82 8. 84 9. 87 10. 97 11. 102 12. 107 13. 111 4 114 1. 114 2.
Microsoft Word - 实验3.doc
实验 3 C# 和 ASP.NET 4.5 一 实验目的 (1) 了解 C# 语言规范 (2) 掌握 C# 基础语法 流程控制和异常处理等 (3) 掌握创建 C# 类并应用于 ASP.NET 4.5 页面中的方法 (4) 掌握 ASP.NET 4.5 页面的调试方法 二 实验内容及要求 1. 转换输入的成绩到相应的等级要求如下 : (1) 页面浏览效果如图 3-1 所示 (2) 成绩输入使用 TextBox
文档 3
1 2 3 4 5 6 / A B A B B A 7 8 9 10 11 12 OO A B A B 13 14 15 16 17 18 19 20 21 22 OOA OOA 23 24 25 OOA OOA 26 27 28 29 30 31 32 use case 33 use case 34 35 36 37 OOD OOA OOD 38 OOA 39 OOD 40 41 / 42 OOD
// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple
halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,
EJB-Programming-4-cn.doc
EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session
《C语言程序设计》第2版教材习题参考答案
教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =
<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>
程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 [email protected] 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学
任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class
踩地雷遊戲 高慧君南港高中 開啟專案 MineSweep 任務一 : 產生 30X20 個磚塊編輯 Table 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.util.arraylist; Write a description of class MyWorld
计算机网络实验说明
计算机网络实验说明 龚旭东 电三楼 420 lzgxd@mailustceducn 2011 年 11 月 1 日 龚旭东 (TA) 计算机网络实验说明 2011 年 11 月 1 日 1 / 20 Outline 1 实验系统介绍 实验环境实验流程 2 实验内容编程实验交互实验观察实验 3 一些控制台命令 4 实验报告说明 龚旭东 (TA) 计算机网络实验说明 2011 年 11 月 1 日 2
ebook14-4
4 TINY LL(1) First F o l l o w t o p - d o w n 3 3. 3 backtracking parser predictive parser recursive-descent parsing L L ( 1 ) LL(1) parsing L L ( 1 ) L L ( 1 ) 1 L 2 L 1 L L ( k ) k L L ( 1 ) F i r s
Guava学习之Resources
Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于
F515_CS_Book.book
/USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (
OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: [email protected] 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP
C
C 2017 4 1 1. 2. while 3. 4. 5. for 6. 2/161 C 7. 8. (do while) 9. 10. (nested loop) 11. 12. 3/161 C 1. I 1 // summing.c: 2 #include 3 int main(void) 4 { 5 long num; 6 long sum = 0L; 7 int status;
Microsoft Word - PHP7Ch01.docx
PHP 01 1-6 PHP PHP HTML HTML PHP CSSJavaScript PHP PHP 1-6-1 PHP HTML PHP HTML 1. Notepad++ \ch01\hello.php 01: 02: 03: 04: 05: PHP 06:
软件工程文档编制
实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,
《大话设计模式》第一章
第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜
06 01 action JavaScript action jquery jquery AJAX CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS b
06 01 action JavaScript action jquery jquery AJAX 04 4-1 CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS background-color camel-cased DOM backgroundcolor.css()
C++ 程式設計
C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004
epub 94-3
3 A u t o C A D L AY E R L I N E T Y P E O S N A P S T Y L E X R E F - AutoLISP Object ARX A u t o C A D D C L A u t o C A D A u t o d e s k P D B D C L P D B D C L D C L 3.1 Wi n d o w s A u t o C A D
6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM
CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986
User’s Manual
V7 用 户 手 册 亿 图 为 您 专 业 图 表 设 计 提 供 最 佳 解 决 方 案 2004-2014 EdrawSoft. All right reserved. Edraw and Edraw logo are registered trademarks of EdrawSoft. 目 录 亿 图 怎 样 优 越 于 其 他 软 件... 5 亿 图 7 个 新 功 能... 6 为
Microsoft Word - CPE考生使用手冊160524.docx
大 學 程 式 能 力 檢 定 (CPE) 考 生 使 用 手 冊 2016 年 5 月 24 日 這 份 手 冊 提 供 給 參 加 CPE 檢 定 考 試 的 考 生 內 容 包 含 考 試 環 境 的 使 用, 以 及 解 題 時 所 使 用 I/O 的 基 本 知 識 1. 如 欲 報 名 參 加 CPE 考 試, 請 先 於 CPE 網 站 完 成 帳 號 註 冊, 然 後 再 報 名 該
第3章.doc
3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo
OOP with Java 通知 Project 4: 5 月 2 日晚 9 点
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =
,, 1 ( ) 1 / CurrentSeries Int ConnectionString CString Style3D BOOL IsContinue Graph BOOL LegendType Int SeriesName CString SeriesColor OL E
2007 9 12 5 JOURNAL OF XI AN UN IV ERSITY OF POST AND TEL ECOMMUN ICA TIONS Sep12007 Vol112 No15 TeeChart (, 710121) : ActiveX TeeChart, Visual C + +,,,, :ActiveX ;;Visual C + + : TP311. 1 :A :1007-3264
C/C++语言 - 分支结构
C/C++ Table of contents 1. if 2. if else 3. 4. 5. 6. continue break 7. switch 1 if if i // colddays.c: # include int main ( void ) { const int FREEZING = 0; float temperature ; int cold_ days
2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF
Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific
全国计算机技术与软件专业技术资格(水平)考试
全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明
ebook39-5
5 3 last-in-first-out, LIFO 3-1 L i n e a r L i s t 3-8 C h a i n 3 3. 8. 3 C + + 5.1 [ ] s t a c k t o p b o t t o m 5-1a 5-1a E D 5-1b 5-1b E E 5-1a 5-1b 5-1c E t o p D t o p D C C B B B t o p A b o
epub83-1
C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C
( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)
( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.
建模与图形思考
C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性
ebook39-6
6 first-in-first-out, FIFO L i n e a r L i s t 3-1 C h a i n 3-8 5. 5. 3 F I F O L I F O 5. 5. 6 5. 5. 6.1 [ ] q u e n e ( r e a r ) ( f r o n t 6-1a A 6-1b 6-1b D C D 6-1c a) b) c) 6-1 F I F O L I F ADT
Strings
Inheritance Cheng-Chin Chiang Relationships among Classes A 類 別 使 用 B 類 別 學 生 使 用 手 機 傳 遞 訊 息 公 司 使 用 金 庫 儲 存 重 要 文 件 人 類 使 用 交 通 工 具 旅 行 A 類 別 中 有 B 類 別 汽 車 有 輪 子 三 角 形 有 三 個 頂 點 電 腦 內 有 中 央 處 理 單 元 A
untitled
A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (
吉林大学学报 工学版 244 第 4 卷 复杂 鉴于本文篇幅所限 具体公式可详见参考文 献 7 每帧的动力学方程建立及其解算方法如图 3 所示 图4 滚转角速度与输入量 η 随时间的变化波形 Fig 4 Waveform of roll rate and input η with time changing 图5 Fig 5 滚转角随时间的变化波形 Waveform of roll angle with
