资源简介
用C++ 写的 SIS疾病传播模型
直接读取路径下的 TXT文件
TXT文件中只要存储边就可以了
代码片段和文件信息
#include
#include
#include
using namespace std;
#define MAX 10000
#define SIZE 4194 // define the total number of edges
#define V 1000
#define infected 0 //different status
#define fine 1
#define InPro 250
#define RePro 10
#define T 1000 // how many wave of infection
#define Tmax 50000 // ten thousand random numbers
static int infectNumber[T]; // define the total number of infected people
int random[Tmax]; //the random number array
long int rcount;
/* now i need to define a class to run the whole program*/
struct node
{
int status; //infected or not infected
struct node* next; //next pointer
int nodeId; // illustrate the node‘s ID
};
typedef struct node N;
typedef N* nptr;
class Model
{
private:
int edge[SIZE];
node verticle[V]; //array of verticle
nptr work[V]; // working pointer add node or scan node
public:
Model(); //construction and release function
~Model();
int Iprobability(int k int s); //k means the probability needed return 1 or 0
int Fprobability(int k int s); //k means the probability to recover from disease
void update(int time); //update the network
void output(); //output the result
void Run(); // whole running function
};
Model::Model()
{
for(int i=0 ; i< T ; i++)
{
infectNumber[T] = 0;
}
/* initiate pointer and other */
for(int i=0; i < V ; i++)
{
verticle[i].status= fine ;
verticle[i].next= NULL; //pointer initiation
verticle[i].nodeId= i ;
work[i]= NULL;
}
/* this block has be verified to read data*/
/* data is stored in a[i] maybe i should split it into two part*/
ifstream fin(“edgeout.txt“);
int edge[SIZE]; // the total number of data is SIZE
for(int i = 0; i < SIZE ; i++)
{
fin>>edge[i]; //save the data
}
fin.close();
/* this block has be verified to read data*/
/* build the verticle table */
for(int i=0 ; i < SIZE ; i++)
{
if( i % 2== 0 ) //judge even or odd
{
if ( work[edge[i]] == NULL )
{
work[edge[i]] = &verticle[edge[i]]; // if hasn‘t been created create it
nptr s= new N;
s->nodeId = edge[i+1];
s->status=fine;
s->next=NULL;
work[edge[i]]->next= s ;
work[edge[i]] = s ;
}
else
{
nptr s= new N;
s->nodeId = edge[i+1];
s->stat
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 18882 2013-06-13 23:30 src\BAedge.txt
文件 7372 2013-06-14 00:27 src\main.cpp
文件 244495 2013-06-13 17:00 src\newRandom.txt
文件 58492 2013-06-13 21:16 src\NWedge.txt
文件 39018 2013-06-12 22:36 src\random.txt
文件 4997 2013-06-14 00:27 src\result.txt
文件 163 2013-06-14 15:46 src\说明.txt
目录 0 2013-06-22 21:09 src
----------- --------- ---------- ----- ----
373419 8
- 上一篇:高仿QQ截图
- 下一篇:socket应用二 用C语言写远程屏幕监视程序 源代码
相关资源
- C++实现的旅行商问题
- Oracle OCCI(C++) 连接程序
- C++ NORAD SGP4/SDP4 Implementation
- VC++操作MSChart表格控件,效果不错。
- C++屏幕录制
- 《C++程序设计》 美 Y.Daniel Liang (梁勇
- 自动生成算式的四则运算机器
- C++游戏编程快速入门视频教程 高清不
- C++游戏服务器开发从入门到掌握.txt
- C++入门学习资料
- 郁金香vc++辅助教程合集
- C++高斯白噪声程序
- 用new和delete运算符动态分配内存空间
- 吕鑫-VS2015之C.C++.MFC等完整视频链接
- 数字图像处理原理与实践 基于Visua
- 套接字编程Socketc++实现源码
- c++ socket编程服务端代码!!!
- UE4中文视频教程,全面解析UE4中C++代
- 排队论MM1模型的C++仿真程序
- win10下vs2015编译TensorFlow1.4 C++源码 CP
- VC++ MFC 的计算器的详细设计
- ftp客户端的C语言实现
- 银行账户管理系统c++)
- vc++ 和 openGL 做的 3D水波模拟 非常炫
- 分水岭图像分割算法 c++实现
- tcp udp 底层c++封装类windows和linux
- c++c#结构体转换工具
- 操作系统的模拟实现 C++编写
- VC++实现算数编码
- 贪吃蛇C++ graphics.h
评论
共有 条评论