




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2018/2/12,办公助手软件 分析报告,2018/2/12,任务分配:,李烨: 计算器模块,PPT制作王耀武:数据库模块赵旭: 便利贴及日历模块涂玉帅:给出建议黄漫: 给出建议,2018/2/12,办公助手 功能演示说明:,运行程序后,单击“服务器设置”按钮,设置服务器信息,服务器名用大写英文字母,文件保存路径为服务器端数据库文件所在的文件夹,如图所示:,2018/2/12,服务器设置完成后,就可以使用本程序了,主窗体如图1.2所示。办公助手的主窗体由计算器和便利贴两个子窗体和6个办公助手,包括员工信息、加班信息、投票项目、投票管理和服务器设置等,还可以设置窗体的透明度。,2018/2/12,计算器模块,计算器模块如图1.3所示,该计算器支持键盘输入和鼠标输入两种方式,两种方式可以同时进行不发生冲突。还具有记忆功能,将用户的操作通过消息框显示出来,避免用户在检查时的重新输入,在计算器中还可以对数据进行二进制、八进制、十进制和十六进制的转换。,2018/2/12,便利贴,便利贴模块如图1.4所示,该便利贴可以记录30页的信息,当用户需要记录时可以方便的使用,并且可以自动保存,并为每一页的记录自动加入记录时间,用户也可以根据记录时间进行查询,如果查询的日期内有数据则跳转到当前页。,2018/2/12,员工信息,单击“员工信息”按钮,打开“员工信息”模块,如图1.5所示。这里可以添加、删除员信息。,2018/2/12,加班信息,单击“加班信息”按钮,打开“加班信使服务”模块,如图1.6所示。用户可以通过加班模块填写加班信息,在左侧的列表中选择加班人,单击“加班”按钮,可以填写加班信息,加班的人会显示在右侧的列表中,如果是服务器端用户,双击加班名单还可以删除加班人员。,2018/2/12,投票项目,单击“投票项目”按钮,打开“设置投票项目”模块,如图1.7所示。这里可以添加及删除投票项目,还可以清空票数。,2018/2/12,投票管理,单击“开始投票”按钮,打开“开始投票”模块,如图1.8所示。选择你喜欢的项目,单击“投票”按钮即可。单击“结果”按钮,可查看投票结果,如图1.9所示。,2018/2/12,2018/2/12,程序分析:,计算器模块:,按钮的实现是使用了 DDX_Control DDX_Control函数管理着在对话框、表格视或控件视中被子类化的控件与对话框、表格视或控件视的CWnd数据成员之间的数据交换。,2018/2/12,基本流程思想:,显示在编辑框,将数据存在 CString str,键盘或点击输入数据,GetWindowText(),把字符串转换成浮点数,num = atof(str),switch(m_Operator),根据运算符做运算,浮点数转换到字符串,运算结果显示在编辑框,SetWindowText,2018/2/12,数字 按钮1 的程序代码,void CCalculatorDlg:OnButton1() / TODO: Add your control notification handler code hereif(m_Time = TRUE)m_Edit.SetWindowText(0);CString str;m_Edit.GetWindowText(str);if(str != 0)str += 1;elsestr = 1;m_Edit.SetWindowText(str);m_Time = FALSE;,其他 数字键依此类推,2018/2/12,运算符 按钮 + 的程序代码,void CCalculatorDlg:OnAddtion() / TODO: Add your control notification handler code hereif(m_Time = FALSE)Count();else if(m_IsDown = TRUE)Count();m_Operator = +;m_MemoryNum += m_Operator;,其他 运算符键依此类推,2018/2/12,清除 和初始化 按钮程序,void CCalculatorDlg:OnClear() / TODO: Add your control notification handler code herem_Edit.SetWindowText(0);m_Num = 0;m_Time = TRUE;m_Operator = ;m_MemoryNum = ;BOOL CCalculatorDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_Num = 0;m_Time = TRUE;m_IsDown = FALSE;m_MemoryNum = ;m_Edit.SetWindowText(0);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE,2018/2/12,进制转换 程序,BOOL CCalculatorDlg:PreTranslateMessage(MSG* pMsg) / TODO: Add your specialized code here and/or call the base classCPoint point;if(pMsg-message = WM_LBUTTONDOWN)CRect rect,rc;GetDlgItem(IDC_EDIT1)-GetWindowRect(,2018/2/12,开方 记忆 按钮程序,void CCalculatorDlg:OnSqrt() / TODO: Add your control notification handler code herem_Operator = ;Count();CString str = sqrt( + m_MemoryNum + );m_MemoryNum = str;void CCalculatorDlg:OnMemory() / TODO: Add your control notification handler code hereMessageBox(m_MemoryNum);,2018/2/12,技术要点1: DDX_Control 函数,DDX_Control void AFXAPI DDX_Control( CDataExchange* pDX, int nIDC, CWnd 参数: pDX 指向CDataExchange对象的指针。这种结构为指定对象提供了建立数据交换的环境,也包括结构的指向。 nIDC 子控件类的资源ID继承控件的属性。 rControl 对对话框成员变量的一个引用,形成视图资源,或者控制数据被交换的视图对象。 说明: DDX_Control函数管理着在对话框、表格视或控件视中被子类化的控件与对话框、表格视或控件视的CWnd数据成员之间的数据交换。,2018/2/12,技术要点2:字符串类 CString类,CString类的对象由一个长度可变的字符序列组成,包含很多成员函数用来操作字符串,可以很方便地实现对字符串的各种操作。CString类中的字符是TCHAR类型的。(1) 构造函数CString();/产生一个空的CString对象CString(const CString/ 从一个ANSI字符串初始化对象,2018/2/12,输入信息,GetCurrentTime,+,-,更新日期,在ini文件中检索信息,显示信息和时间,Clear,保存到ini文件中,+、-操作,清空重新输入,组合框中显示日期,组合框下拉键,显示日历,便利贴模块:,2018/2/12,一.获得便利贴对话框在主窗口的位置left = m_Text.Left(n);right = m_Text.Right(m_Text.GetLength()-n-1) m_Text = left + rn + right;二.几个关键的函数1.GetPrivateProfileString()GetPrivateProfileString意思是为初始化文件中指定的条目取得字串 。它是编辑语言中的一种函数结构 。参数 类型及说明 lpApplicationName String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表,2018/2/12,lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表 lpDefault String,指定的条目没有找到时返回的默认值。可设为空() lpReturnedString String,指定一个字串缓冲区,长度至少为nSize nSize Long,指定装载到lpReturnedString缓冲区的最大字符数量 lpFileName String,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件 2. WritePrivateProfileString()lpApplicationName - String,要在其中写入新字串的小节名称。这个字串不区分大小写。 lpKeyName - Any,要设置的项名或条目名。这个字串不区分大小写。用vbNullString可删除这个小节的所有设置项。 lpString - String,指定为这个项写入的字串值。用vbNullString表示删除这个项现有的字串。,2018/2/12,lpFileName - String,初始化文件的名字。如果没有指定完整路径名,则windows会在windows目录查找文件。如果文件没有找到,则函数会创建它。 它是将一些信息写入ini文件的函数3. GetCurrentTime()获得当前系统时间的函数CTime t = CTime:GetCurrentTime(); /获取系统日期,2018/2/12,设置服务器,打开数据库,加班信息,员工信息,投票管理,开始投票,投票,结果,保存退出,整体设计思路:,数据库模块:,2018/2/12,类属关系流程图,ServerDlg,EmployersDlg,OvertimerDlg,ProjectDlg,BallotDlg,PieDlg,数据库在初始化中已打开,投票的完成只是单一的Dlg,程序的保存退出由相应的控件消息响应函数完成,2018/2/12,ServerDlg 该部分主要是WritePrivateProfileString函数和结构体browseinfo的应用 函数WritePrivateProfileString是将信息保存到ini文件中去第一个参数是要保存的ini文件中的一个字段名;第二参数是字段名下的键名,也就是变量名;第三个参数是变量的值,必须为LPCTSTR型或CString型的 ;第四个参数是ini文件名。要读取就是GetPrivateProfileString了。 结构体browseinfo中包含有用户选中目录的重要信息 。typedef struct_browseinfo HWND hwndOwner; /浏览文件夹对话框的父窗体句柄 LPCITEMIDLIST pidlRoot; /ITEMIDLIST结构的地址 LPSTR pszDisplayName; /保存用户选中的目录字符串的内存地址 LPCSTR lpszTitle; /浏览文件夹对话框对话框的显示文本 UINT ulFlags; /标志位描述了对话框的选项 BFFCALLBACK lpfn;/应用程序定义的浏览对话框回调函数的地址 LPARAM lParam; /对话框传递给回调函数的一个参数指针 int iImage; BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO;,2018/2/12,加班流程,初始化员工名单和加班名单,是否加班,否,男,女,是,将相关信息保存到加班名单中,2018/2/12,重要函数,int InsertItem( int nItem, LPCTSTR lps
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (正式版)DB15∕T 3665.1-2024 《玉米秸秆饲料化利用技术规程 第1部分:玉米秸秆膨化饲料加工》
- 动态中考试题及答案
- 公益捐赠透明使用承诺书8篇
- 电气工考试题及答案
- 电焊科目考试题及答案
- 地形测量考试题及答案
- 行政固定资产管理系统配置方案
- 销售团队激励与考核策略设计手册
- 导尿术考试题及答案
- 护理生专业实务考试题库及答案
- 2025至2030年中国猫砂行业发展监测及投资战略研究报告
- 2025年理赔人员上岗考试题库
- 2025-2026年秋季学期各周国旗下讲话安排表+2025-2026学年上学期升旗仪式演讲主题安排表
- 2025年公务员(国考)之公共基础知识考试题库(带答案解析)
- 初级医学影像技术师考试试卷及答案2025年
- 幼儿园一日生活指引培训
- 2025年护理核心制度试题及答案
- 宣传思想文化试题及答案
- 精神科木僵患者的护理
- 黄赌毒培训课件
- 肾动脉狭窄介入治疗讲课件
评论
0/150
提交评论