⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataread.cpp

📁 2008年全国大学生数学建模大赛B题的解题程序。本程序不仅解决题目的要求
💻 CPP
字号:
#include "DataRead.h"
#include <stdio.h>

extern int   AllEStation[];
extern void* AllStation[];

void ReadFile(void* PData[],FILE *fp)
{
	int stationNum=0;
	int offset = 0;
	int tempNum = 0,lastNum = 0;
	
	while (fscanf(fp,"%d",&tempNum) != EOF)
	{
		if (tempNum < -1000)
		{
			if (0 != offset)
			{
				AllEStation[offset++] = 0;					//上一路公交结束标志
				int temp=((int)PData[stationNum-1]-(int)AllEStation)/4;
				*((int*)PData[stationNum-1]+3)=(int)(offset-5-((int)PData[stationNum-1]-(int)AllEStation)/4);//此路公交的站点个数
			}
			PData[stationNum++] = (void*)&(AllEStation[offset]);
			AllEStation[offset++]=tempNum;					//公交的路线
		}
		else if (tempNum <= -10)
		{
			if (tempNum == -10)
			{
				AllEStation[offset++]=tempNum;				//分段计价
			}
			else if (tempNum == -11)
			{
				AllEStation[offset++]=tempNum;				//单一票制1元。
			}
			else
			{
				AllEStation[offset++]=tempNum;				//单一票制3元。
			}
		}
		else if (tempNum < 0)
		{
			if (tempNum == -1)
			{
				AllEStation[offset++]=tempNum;				//上行
			}
			else if (tempNum == -2)
			{
				AllEStation[offset++] = 0;					//本路上行结束标志
				*((int*)PData[stationNum-1]+3)=(int)(offset-5-((int)PData[stationNum-1]-(int)AllEStation)/4);//此路公交的站点个数
				PData[stationNum] = (void*)&(AllEStation[offset]);
				*(int*)PData[stationNum]=*(int*)PData[stationNum-1];
				offset++;
				*(int*)((int*)PData[stationNum]+1)=*(int*)((int*)PData[stationNum-1]+1);
				offset++;
				stationNum++;
				AllEStation[offset++]=tempNum;					//公交的路线
			}
			else if (tempNum == -3)
			{
				AllEStation[offset++]=tempNum;				//环形:
			}
			else
			{
			}
			offset++;				//留给此路公交的站点数		
		}
		else
		{
			if (lastNum <= -10)
			{
				AllEStation[offset++] = -4;				//对称
				offset++;								//留给此路公交的站点数	
			}
			AllEStation[offset++]=tempNum;
		}
		lastNum = tempNum;
	}
	AllEStation[offset++]=0;
	*((int*)PData[stationNum-1]+3)=(int)(offset-5-((int)PData[stationNum-1]-(int)AllEStation)/4);//此路公交的站点个数
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -