下载源代码


一、问题的提出


编写一个耗时的单线程程序:


  新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: 

void CSingleThreadDlg::OnSleepSixSecond()  { Sleep(6000); //延时6秒 }

  编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种耗时的操作,我们有必要学习——多线程编程。
 

 
例题:
 
(1)有如下DFD图,其中竖虚线输入、变换、输出之间的间隔,请将其转换成SC图:

 解:由图我们可以看出第一竖虚线左边是输入部分,中间是变换部分,又边则是输出部分。从而我们可以知道一级sc图除主模块外有四大模块,即输入模块、输出模块、变换模块。对于输入模块我们是通过获取c,b然后变换后得来的d,对于变换模块我们是通过将d转换成i和将d转换成h两个变换,而输出模块则可以分别对i和h进行输出。对接下来的我就不详细将了,大家可以看下面的SC图:
 
(2).有如下DFD图转,其中竖虚线表示输入、变换、输出之间的间隔;变换部分为一个事务型数据流图,请将DFD转换成SC图

呵呵……相信大家看懂例题(1)后看到这个图时并不会感到很棘手了,但是这个图与上面那个DFD图还是有很大的区别的。从题目上我们就可以看出来,上面那个是属于数据流图,而这个是属于事务型数据流图。其实在我看来数据型和事务型根本的差别就是一个有事务中心,对数据进行了分情况处理;而对于变换型就是不关你 是什么输入他都会进行一样的处理。只要大家理解了事务型和变换型的区别,相信画图对大家来说已经不是难事了。下面是我给出的SC图::
下面告诉大家怎么画这个带箭头圆圈的线吧,呵呵……其实我自己也是找了很久才找到的。下面分享给大家,也希望有更好方法的也介绍下 对于画直线我们需要在常用工具栏找到(绘图工具按钮)-->点击他就会出现一个绘图工具栏;;找到这里相信很多人都会着手画了,但是我想给大家一点建议,就是同意从上往下画,这样的画我们在描述数据流信息的时候就会稍微好看些。而对于线的方向大家可以在格式工具栏里面去转换(一般是最后面那个),点击这上面的向下小三角形,然后选择“更多线条端点”我们可以在弹出的对话框里选择我们需要的线型。。

 
 

单词统计

http://www.weebly.com/link/Pcox5k

程序采用的是自顶而下的过程式编程,用动态数组来存储单词。对于字符串的读取则是采用一个一个的从文件中读取出来,并且同时对他们进行判断,看是否是字母、‘-’、‘'‘;如果是则存储在字符串中,如果遇到不是,则加入字符串结束符并且对整个字符串进行处理。对于字符串的查找和插入,则采用的是二分查找和顺序插入的算法;最后利用选择排序,选出最多的15个,并输出到文件中去。


 

求绝对矩阵的最小值 

给定一个N*N(N<=7)整数矩阵,定义对第i行的SHIFT操作(0<=i<N),是将第i行所有元素都右移一位,最右边的元素移到最左边。可以对任意行进行任意次SHIFT操作,使得所有列的元素的和的最大值最小。即MAX{Cj}最小,Cj是第j列元素的和。

 

迷宫求解

//广度优先搜索..搜索到的第一条路径就是迷宫的最短路径
#include <stdio.h>
struct
PointMaze
{
int  x;   //X坐标
int  y;  //Y坐标
};
//队列的节点
struct
Queue
{
PointMaze Coordinate; //坐标
int     prev;   //记录前一步的坐标
};

 

我的个人Blog终于开通啦!!欢迎大家多来逛逛哦!!!!

        这是我的第一个个人网站,虽然做的不是很好,但是首次做成这样感觉也还是挺满意的。
Picture
这勉强算是我首页Logo,呵呵……虽然不是我自己做的,但还是感觉这个挺好的,他们的配色和字体搭配都挺符合我的口味的

Picture
这是网站中的一个核心部分,也是我琢磨了很就,也在同学的大力支持下才做出来的————那就是我的博客。这个才刚刚做所以可能很多方面还有不足希望大家给予一些意见。

Picture
自我感觉这张图片还是不错的,虽然有时候为了网速想把他给Cut,但是最终我还是舍不得他,如果没有他总感觉少了什么一样。他既带给我们视觉的美感,同时又是激励我向前的一个动力。


Alexa排名查询