怎么做自己的网站赚钱网站怎么做彩页
news/
2025/10/1 23:51:02/
文章来源:
怎么做自己的网站赚钱,网站怎么做彩页,给网站做优化刷活跃要收费吗,民用网络架构问题描述
首先#xff0c;说明一下这个问题是研究生期间c课的综合作业#xff0c;本来有好多选择但最后还是选择了约瑟夫环问题。下面是约瑟夫环的问题描述以及设计要求#xff1a; 约瑟夫环#xff08;约瑟夫问题#xff09;是一个数学的应用问题#xff1a;已知n个人说明一下这个问题是研究生期间c课的综合作业本来有好多选择但最后还是选择了约瑟夫环问题。下面是约瑟夫环的问题描述以及设计要求 约瑟夫环约瑟夫问题是一个数学的应用问题已知n个人以编号123…n分别表示围坐在一张圆桌周围。从编号为k的人开始报数数到m的那个人出列他的下一个人又从1开始报数数到m的那个人又出列依此规律重复下去直到圆桌周围的人全部出列。 要求实现下面功能
1.要求在实现约瑟夫环的同时应该满足以下要求
2.完整的图形用户界面可以配置程序的运行参数如n的值k的值、m的值、执行动画的速度等
3.算法支持多线程
4.执行过程可以暂停/继续
5.算法执行的结果包括中间结果可以持久化以自定义数据格式保存到文件中
6.可从文件中读取数据并在此基础上继续执行
7.实时图形化显示执行结果
8.可在执行完成后或暂停时打印执行的当前结果。设计思路
在不考虑实现上面8个功能的前提下我们应该实现下面一个简单的约瑟夫环问题 在基于控制台程序情况下对给定的nkm输出报数的序列。然后将程序移植到基于mfc的程序当中将功能分为几大块最后组合到一起。具体源代码已经上传。
约瑟夫问题
约瑟夫环问题看做一个不断变小的环的数据提取 以n4k1m2为例 这样我们将每次取下来的数存放在一个容器中[2,4,3,1]然后在显示程序中逐个放进去 这样就完成了约瑟夫环问题。程序流程如下 用户界面设计
通过创建MFC AppWizard 基于对话框工程HOMEWORK2自动生成HOMEWORK2App以及HOMEWORK2Dlg两类在资源视图中手动画出下面两个界面 一个用于初始化用户可以配置程序的运行参数如n的值k的值、m的值、执行动画的速度。另一个用于显示算法执行的过程。 并修改它们的属性ID值分别为IDD_HOMEWORK2_DIALOGIDD_DIALOGSHOW。 通过类向导将对话框IDD_DIALOGSHOW与类CDialogShow关联。接下来将两个界面上的所有组件修改属性ID以及添加相应的消息映射函数。
自定义控件
执行的结果不是直接画在IDD_DIALOGSHOW上的而是在IDD_DIALOGSHOW添加一个静态文本IDC_STATICTU并添加变量变量类型为CMystatic类这里需要自己在类视图中自己添加基类选择CStatic并重载OnPaint函数 其中OnPaint用于初始化显示界面即是在IDC_STATICTU中画一个圆桌用圆表示m个人用空白方框表示并创建线程用于算法执行。
创建线程函数
将约瑟夫环算法嵌入到线程函数中可以实现在点击开始按钮后创建IDD_DIALOGSHOW对话框的同时初始化IDC_STATICTU然后创建一个线程因为在OnPaint中添加了创建线程m_ThreadSpeed的语句这样就开始了约瑟夫环算法。最后通过线程的挂起、唤醒、终结实现执行过程的暂停/继续以及终结。对于控制动画的显示速度则是通过Sleep函数来控制。为了方便将线程函数显示程序定义为CMystatic的成员函数。
实现打印
通过mfc里面已有的打印对话框类CPringDialog类实现对当前执行结果的打印功能。通过在类视图中添加类CMyPrintDialog类基类为CPringDialog类。最后在IDD_DIALOGSHOW中终结按钮的消息映射函数中写入打印程序。
// 创建一个打印机设备句柄
if((hdcprintCreateDC(szDriver,szDevice,szOutput,NULL))!0) {if(StartDoc(hdcprint,di)0) {//开始执行一个打印作业StartPage(hdcprint); //打印机走纸,开始打印SaveDC(hdcprint); //保存打印机设备句柄// 打印当前的结果将list1里面的结果以字符串的形式打印出来TextOut(hdcprint,1000,800,约瑟夫环打印结果为,20);CString str;for(vectorint::iterator it list1.begin();it!list1.end();it){CString temp;temp.Format(%d,*it);str --str temp;}}TextOut(hdcprint,1000,1000,str,str.GetLength()); RestoreDC(hdcprint,-1); //恢复打印机设备句柄EndPage(hdcprint); //打印机停纸,停止打印EndDoc(hdcprint); //结束一个打印作业MessageBox(打印完毕!,提示,MB_ICONINFORMATION);
}实现结果
由于时间紧迫以及个人能力有限所以做的界面比较ugly。只实现了老师要求的一些功能 默认n16, k1, m3, s1000ms, 数据读入在data.txt结果保存在result.txt。
总结
由于是第一次写所以排版什么的比较丑陋。约瑟夫环问题也是自己做的第一个关于用户界面的问题了由于自己的能力有限所以只能做到这种程度中间会有福多错误希望大家批评指正以后会努力学习。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924412.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!