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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

参考优秀程序设计报告.docx

1、参考优秀程序设计报告程序设计报告(2013/2014学年 第 一 学期)题 目:数码闹钟的设计与实现 专 业 信息安全 组长 学号姓名 B12040611 丁宏 组员 学号姓名 B12040612 王亚聪 B12040630 葛聪聪 指 导 教 师 朱立华 指 导 单 位 计算机学院软件教学中心日 期 2013 年 10月 31日 成员分工组长(丁宏) 主要负责基于Windows下的界面设计、数码闹钟的拓展要求的程序设计与实现以及PPT制作和答辩陈述。组员(王亚聪) 主要负责数码闹钟中获取时间、闹钟功能的程序设计与实现,并致力于研究数码闹钟的语音功能的程序设计与实现。组员(葛聪聪) 主要负责程

2、序中的数据库管理代码的编写、数码闹钟多次闹铃的程序设计与实现、实验报告的归纳与编辑。评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度 简短评语 三位同学非常认真,拿到课题后就开始研究用图形化界面实现程序,丁宏同学主要负责学习MFC编程的相关知识,其余两位同学负责算法的设计与实现.所实现的功能好,一些扩展功能经多次尝试因时间所限未能完全成功.报告认真详尽,答辩时正确回答问题。 教师签名: 朱立华 2013 年 11月 6 日评分等级B120406

3、11 丁宏B12040612 王亚聪B12040630 葛聪聪优秀优秀优秀备注评分等级共五种:优秀、良好、中等、及格、不及格数码闹钟的设计与实现一、 课题内容和要求“数码闹钟”系统主要是通过MFC窗口化程序设计来绘制数码管以显示当前的系统时间,并且伴随有闹钟功能。课题的基本要求中要求1、用6个数码管显示当前系统的时、分、秒信息;2、可以满足同时进行多个时间的闹铃设置,时间到,在屏幕上以数码管形式实现屏闪,每秒一次,时长一秒,伴随蜂鸣;3、时间正常显示,以秒为计时单位;4、提供菜单功能,时间表控制以文件形式保存,便于修改闹钟时间。拓展要求中要求1、能够设置数码闹钟的闹铃次数;2、采用图形界面;3

4、、允许在闹铃响之前至少半个小时取消闹铃设置,半小时内不允许取消设置。二、 需求分析数码闹钟系统的功能框架图如图1所示。图1 功能框架图( 1 )提供一个基于Windows下的窗口界面,显示了当前日期,时间,已设定的闹钟信息,并提供三个按钮可以进行闹钟的添加与删除;( 2 )通过数据库文件对设定的闹钟与提示信息进行管理和输出;( 3 )提供一个窗口使得闹钟的提示信息可以由用户自己设定和更改;( 4 )关于闹钟的响铃功能,可以根据用户需求,通过一个选择框设置单次提醒还是多次提醒,若设置多次提醒每隔两分钟会弹出对话框提醒,并带有一次响铃。三、概要设计 1 主要的类内变量的定义和函数的声明:class

5、 CClock3Dlg : public CDialogpublic: int jc; /标志变量,控制多次响铃 int fdot; /标志变量,控制冒号的闪烁 int clockstop; /标志变量,和flash一起控制响铃时时间闪烁 int flash; /标志变量,控制响铃时时间闪烁 CRect rect; /绘制背景矩形 CRect rec26; /绘制带数字的数码管 char cflag; /标志变量,检测时间是否正常运行 CRect recd1,recd2; /绘制两个冒号 CRect rec6; /绘制无数字的数码管 int wz6; /保存时间各个位数,控制数码管显示 _Co

6、nnectionPtr m_pConnection; /数据库的连接指针 _RecordsetPtr m_pRecordset; /数据库的记录指针 int maxbianhao; /记录数据库内最后一条数据的编号 int first_h; /第一个响的闹钟的小时位 int first_m; /第一个响的闹钟的分钟位 int first_s; /第一个响的闹钟的秒数位 int first_bianhao; /第一个响的闹钟的编号 int m_nian; /当前时间的年 int m_yue; /当前时间的月 int m_ri; /当前时间的日 int m_h; /当前时间的小时 int m_m;

7、 /当前时间的分钟 int m_s; /当前时间的秒 int timer; /记录响铃次数 CTime ntime; /当前时间 CTime timerold; /用于对比当前时间,控制数码管的变化 bool sig_clocksound; /控制是否响铃 CDirectSound directSound; /声音类的变量,控制对象 LPDIRECTSOUNDBUFFER clockSound; /声音类变量,读取铃音CClock3Dlg(CWnd* pParent = NULL); /构造函数void test(); /测试函数 void CheckClockTime(); /对比闹钟时间和

8、当前时间 void GetFirstClock(); /获取第一个响的闹钟 void OnClock(); /闹钟实现函数protected:HICON m_hIcon; /图标句柄void GetCurrentTime(); /获取当前时间void PrintData(); /往列表中输入数据库数据class AddClock : public CDialogpublic: AddClock(CWnd* pParent = NULL); /构造函数 _ConnectionPtr m_pConnection; /连接数据库 _RecordsetPtr m_pRecordset; /连接数据库中

9、的表单clocklist _RecordsetPtr m_pRecordset2; /连接表单tishi int bianhao; /列表标号/ Dialog Data /AFX_DATA(AddClock) enum IDD = IDD_ADD ; CButton m_Check; CButton m_Check2; CComboBox m_ComBox; int m_h; int m_m; int m_s; /AFX_DATAprotected: void GetClientTime(bool sig); /获取当前时间 void SetComboBox(); /设定下拉框 bool Ad

10、dClockList(CString time); /添加闹钟函数 int m_nian; /当前时间的年 int m_yue; /当前时间的月 int m_ri; /当前时间的日class AddTiShiDlg : public CDialogpublic: AddTiShiDlg(CWnd* pParent = NULL); / 构造函数 int bianhao; /提示信息的编号/ Dialog Data /AFX_DATA(AddTiShiDlg) enum IDD = IDD_DIALOG1 ;protected: _ConnectionPtr m_pConnection; /连接

11、数据库的指针 _RecordsetPtr m_pRecordset; /记录指针,连接表单tishi bool InsertData(); /录入数据 CString str_tishi; /提示信息2 主要函数流程图(1)绘图函数:通过MFC绘图函数在对话框中绘制一个数码管,用于显示当前时间,并根据时间变化,流程图如图2所示; 图2 绘制函数(2)读取函数:通过读取数据库信息,填充到对话框的列表中,以便于用户管理和修改闹钟信息和提示信息,流程图如图3所示;图3 读取函数(3)添加函数:通过添加按钮可以向数据库中添加闹钟信息或提示信息并重新读取数据库内容添加到列表中,流程图如图4所示;图4 添

12、加函数(4)闹钟功能的实现函数:这个是本程序最基本的功能,通过拓展后,闹钟可以由用户自定义是否响铃和是否多次提醒,流程图如图5所示。图5 闹钟实现函数四、源程序代码 #include stdafx.h#include Clock3.h#include Clock3Dlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifCClock3Dlg:CClock3Dlg(CWnd* pParent /*=NULL*/) : CDialog(CClock3Dlg:IDD, pPa

13、rent) /AFX_DATA_INIT(CClock3Dlg) / NOTE: the ClassWizard will add member initialization here /AFX_DATA_INIT / Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); maxbianhao=0; first_h=0; first_m=0; first_s=0; first_bianhao=0; m_h=0; m_

14、m=0; m_s=0; timer=0; sig_clocksound=0; flash=1; clockstop=0; fdot=1; jc=0;BOOL CClock3Dlg:OnInitDialog() CDialog:OnInitDialog(); / Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF

15、_SEPARATOR); pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); / Set the icon for this dialog. The framework does this automatically / when the applications main window is not a dialog SetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small icon / TODO: Add extra initia

16、lization here m_list.ModifyStyle(0L,LVS_REPORT); m_list.ModifyStyle(0L,LVS_SINGLESEL); m_list.ModifyStyle(0L,LVS_SHOWSELALWAYS); m_list.ModifyStyle(0L,LVS_NOSORTHEADER); m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); m_list.InsertColumn(0,编号); m_list.InsertColumn(1,时间); m_list.Ins

17、ertColumn(2,提示信息); m_list.InsertColumn(3,闹铃); m_list.InsertColumn(4,多次); m_list.SetColumnWidth(0,40); m_list.SetColumnWidth(1,150); m_list.SetColumnWidth(2,162); m_list.SetColumnWidth(3,45); m_list.SetColumnWidth(4,45); PrintData(); GetCurrentTime(); for(int ii=0;ii6;ii+) InvalidateRect(recii,TRUE);

18、 InvalidateRect(rec2ii,TRUE); int j=8; for(ii=0;ii2;ii+) recii.SetRect(205+ii*45,50,245+ii*45,115); for(ii=2;ii4;ii+) recii.SetRect(205+ii*45+j,50,245+ii*45+j,115); j+=8; for(ii=4;ii6;ii+) recii.SetRect(205+ii*45+j,50,245+ii*45+j,115); SetTimer(1,1000,NULL); cflag=0; j=8; for(ii=0;ii2;ii+) rec2ii.Se

19、tRect(205+ii*45,50,245+ii*45,115); recd1.SetRect(293,50,300,115); for(ii=2;ii4;ii+) rec2ii.SetRect(205+ii*45+j,50,245+ii*45+j,115); recd2.SetRect(391,50,398,115); j+=8; for(ii=4;iiGetWindowRect(&rect); ScreenToClient(&rect); rect.InflateRect(-1,-7,-1,-1); dc.FillSolidRect(&rect,RGB(0, 0, 0); for(int

20、 ii=0;ii6;ii+) bBdii.LoadBitmap(IDB_BITMAP1); bBdii.GetBitmap(&bitMapii); pbmpOld=dcMem.SelectObject(&bBdii); if(!flash) dc.StretchBlt(recii.left,recii.top,recii.Width(),recii.Height(),&dcMem,0,0,ll-1,hh,SRCCOPY); else dc.StretchBlt(rec2ii.left,rec2ii.top,rec2ii.Width(),rec2ii.Height(),&dcMem,(wzii+

21、1)*ll,0,ll-1,hh,SRCCOPY); if(cflag&fdot) bBdii.LoadBitmap(IDB_BITMAP1); bBdii.GetBitmap(&bitMapii); pbmpOld=dcMem.SelectObject(&bBdii);dc.StretchBlt(recd1.left,recd1.top,recd1.Width(),recd1.Height(),&dcMem,ll*11,0,4,hh,SRCCOPY); dc.StretchBlt(recd2.left,recd2.top,recd2.Width(),recd2.Height(),&dcMem,

22、ll*11,0,4,hh,SRCCOPY); void CClock3Dlg:GetCurrentTime() ntime=CTime:GetCurrentTime(); int aa; aa=ntime.GetHour(); wz0=aa/10; wz1=aa%10; aa=ntime.GetMinute(); wz2=aa/10; wz3=aa%10; aa=ntime.GetSecond(); wz4=aa/10; wz5=aa%10; CString str_day; str_day=ntime.Format( %Y 年 %m 月 %d 日 %A %H:%M:%S); CString

23、str;str=ntime.Format(%Y); m_nian=atoi(str); str=ntime.Format(%m); m_yue=atoi(str); str=ntime.Format(%d); m_ri=atoi(str); str=ntime.Format(%H); m_h=atoi(str); str=ntime.Format(%M); m_m=atoi(str); str=ntime.Format(%S); m_s=atoi(str);图6 数码闹钟的主界面void CClock3Dlg:OnAdd() /此函数在单击主界面上的“添加闹钟”后被调用 / TODO: Add

24、 your control notification handler code here AddClock adddlg; adddlg.bianhao=maxbianhao+1; int id=adddlg.DoModal(); if(id=IDOK) /IDCANCEL for(int i=0;iConnectionString=uid=;pwd=;DRIVER=Microsoft Access Driver (*.mdb);DBQ=clock.mdb; m_pConnection-Open(L,L,L,adCmdUnspecified); m_pRecordset=NULL; CString str_SQL; str_SQL.Format(select * fr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1