資源簡介
用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??????{
??????????infectNumber[T]?=?0;
??????}
??????/*?initiate?pointer?and?other?*/
??????for(int?i=0;?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?????????{
????????????????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?????{
????????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語言寫遠程屏幕監視程序 源代碼
評論
共有 條評論