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

📄 bank.cpp

📁 数据结构是编程的基础
💻 CPP
字号:
// bank.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
//#include "bank.c"
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#define LEN sizeof(struct queue)
#define ERRORW printf("file write error\n")
#define ERRORR printf("file read error\n")

struct queue
{	
	int reachtime;
	int finishtime;
	int ifquantity;
	int number;
	struct queue *next;
};

int readfile(FILE *file)
{
	char save[20],c;
	int count,i,flag=0,value=0,x,y;
	
	for(i=0;i<20;i++)
	{
		if(!feof(file))	
		{
			if((c=fgetc(file))==EOF) ERRORR;
		}
		else  c=13;	
		if(c>47&&c<58||c==45)  save[i]=c;
		else  
		{
			save[i]='\0';
			if(c!=32)
			fgetc(file);
			break;
		}
	}
	if(save[0]!=45)	count=i-1;
	else count=i-2,flag=1;
	for(i=0;count>=0;count--)
	{
		x=(int)save[count]-48;
		y=(int)pow(10,i++);
		value=value+(x*y);	
	}

	if(flag==0) return value;
	else return -1*value;
}

void writefile(int value,FILE *file)
{
	char save[20];
	int i;
	itoa(value,save,10);
	for(i=0;i<20;i++)
	{
		if(save[i]!=0) fputc(save[i],file);
		else break;
	}

	//if(fputs(save,file)==NULL) ERRORW;
}




int _tmain(int argc, _TCHAR* argv[])
{

	int total,closetime,n,average=0,i;
    struct queue *event,*head;
	FILE *file;
	char enter=13,bf=10;
	float wait;
	if((file=fopen("input.txt","rb"))==NULL)
	{
		printf("cannot open this file\n");
		exit(0);
	}
 	total=readfile(file);
    closetime=readfile(file);
	n=readfile(file);			
    head=(struct queue *)malloc(LEN);
	event=head;
	
	event->reachtime=readfile(file);
	event->finishtime=readfile(file);
	event->ifquantity=readfile(file);
	event->number=0;
	event->finishtime=event->reachtime+event->finishtime;
	if(event->finishtime<=closetime) event->ifquantity='Y';
	else event->ifquantity='N';
		wait=event->finishtime-event->reachtime;
	for(i=1;i<(n+1);i++)
	{
		event->next=(struct queue *)malloc(LEN);
		event->next->reachtime=readfile(file);
	    event->next->finishtime=readfile(file);
	    event->next->ifquantity=readfile(file);
			
			event->next->number=i;
			if(event->next->reachtime>event->finishtime)
				event->next->finishtime=event->next->reachtime+event->next->finishtime;
			else
				event->next->finishtime=event->finishtime+event->next->finishtime;			
			if(event->next->finishtime<=closetime)event->next->ifquantity='Y';
			else 
			{
				event->next->finishtime=closetime;
				event->next->ifquantity='N';
				average=average/i;
				event=event->next;
		        event->next=NULL;
				break;
			}
			wait=event->finishtime-event->reachtime;
			average=average+wait;
		
		event=event->next;
		event->next=NULL;
	//	if(feof(file)) break;
	}

	fclose(file);
	event=head;

	if((file=fopen("output.txt","w"))==NULL)
	{
		printf("cannot open this file\n");
		exit(0);
	}
	
	while(event!=NULL)
	{
        i=event->reachtime;
		i=event->finishtime;
		writefile(event->number,file);
        fputc(32,file);
		writefile(event->reachtime,file);
        fputc(32,file);
		writefile(event->finishtime,file);
		fputc(32,file);
		fputc(event->ifquantity,file);
		fputc(enter,file);
        fputc(bf,file);

		event=event->next;
					

	}
	 writefile(average,file);

		fclose(file); 
	
	return 0;
}

⌨️ 快捷键说明

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