链表的应用:计算每个作业的运行时间
来源:互联网 发布:python turtle有什么用 编辑:程序博客网 时间:2024/05/04 17:35
//链表的应用:计算每个作业的运行时间#include<stdio.h>#include<string.h>struct Task{char name[50];char sDate[15];char sTime[15];char eDate[15];char eTime[15];int cost;Task *next;};struct Resource{char ID[50];Task *fstTask;Task *lstTask;Resource *next;};int daysInMon[12]={31,28,31,30,31,30,31,31,30,31,30,31};void computeTimeCost(Task *task){int sYear,sMon,sDay,sHour,sMin,sSec;int eYear,eMon,eDay,eHour,eMin,eSec;int sDays=0,sSeconds;int eDays=0,eSeconds;int i;sscanf(task->sDate,"%d-%d-%d",&sYear,&sMon,&sDay);sscanf(task->sTime,"%d:%d:%d",&sHour,&sMin,&sSec);for(i=1;i<sMon;i++)sDays=sDays+daysInMon[i-1];sDays=sDay-1;sSeconds=((sDays*24+sHour)*60+sMin)*60+sSec;sscanf(task->eDate,"%d-%d-%d",&eYear,&eMon,&eDay);sscanf(task->eTime,"%d:%d:%d",&eHour,&eMin,&eSec);for(i=1;i<eMon;i++)eDays=eDays+daysInMon[i-1];eDays=eDays-1;eSeconds=((eDays*24+eHour)*60+eMin)*60+eSec;task->cost=(eYear-sYear)*365*24*3600-sSeconds+eSeconds;}Resource *processLog(char log[],Resource *resList){char date[30],time[30],taskName[30];Resource *curRes,*temp;Task *curTask;if(strstr(log,"created")){curRes=new Resource;curRes->fstTask=curRes->lstTask=NULL;sscanf(strstr(log,"created")+9,"%s",curRes->ID);curRes->next=NULL;if(resList==NULL)return curRes;temp=resList;while(temp->next!=NULL)temp=temp->next;temp->next=curRes;return resList;}sscanf(log,"%s%s%s",date,time,taskName);curRes=resList;while(strstr(log,curRes->ID)==NULL) curRes=curRes->next;if(strstr(log,"started")){curTask=new Task;strcpy(curTask->name,taskName);strcpy(curTask->sDate,date);strcpy(curTask->sTime,time);curTask->next=NULL;if(curRes->fstTask==NULL)curRes->fstTask=curTask;elsecurRes->lstTask->next=curTask;curRes->lstTask=curTask;}if(strstr(log,"finished")){curTask=curRes->fstTask;while(strcmp(curTask->name,taskName)!=0)curTask=curTask->next;strcpy(curTask->eDate,date);strcpy(curTask->eTime,time);computeTimeCost(curTask);}return resList;}int main(){FILE *fin,*fout;char log[80],logFile[30],resultFile[30];Resource *resList,*curRes;Task *task;printf("input log file's name:\n");scanf("%s",logFile);printf("input the file name for saving results\n");scanf("%s",resultFile);resList=NULL;fin=fopen(logFile,"r");fgets(log,80,fin);while(strlen(log)>1){resList=processLog(log,resList);fgets(log,80,fin);if(feof(fin)) break;}fclose(fin);fout=fopen(resultFile,"w");while(resList!=NULL){curRes=resList;resList=curRes->next;sprintf(log,"Tasks performed on resource %s \n",curRes->ID);fputs(log,fout);while(curRes->fstTask!=NULL){task=curRes->fstTask;curRes->fstTask=task->next;sprintf(log,"%s%10s%8d(s)%15s\n",task->sDate,task->sTime,task->cost,task->name);fputs(log,fout);delete task;}fputs("\n",fout);delete curRes;}fclose(fout);return 0;}
0 0
- 链表的应用:计算每个作业的运行时间
- 链表的应用:计算每个作业的运行时间
- PHP日期与时间的应用 计算脚本运行时间
- LogAOP计算每个接口的调用时间
- 计算程序运行的时间
- 计算代码的运行时间
- 计算函数的运行时间
- 计算程序运行的时间
- 计算程序的运行时间
- 计算程序运行的时间
- 计算程序的运行时间
- 计算程序运行的时间
- Go计算运行的时间
- vs运行时间的计算
- 计算程序的运行时间
- 计算程序的运行时间
- ArrayList类的代理,其内部实现和ArrayList中完全相同的功能并计算每个方法运行时间。
- 88、展示Tensorflow计算图上每个节点的基本信息以及运行时消耗的时间和空间
- 杭电 1061
- 杭电 1097
- SSDP 简单服务发现协议
- 杭电1098
- 杭电 1141
- 链表的应用:计算每个作业的运行时间
- 杭电1164
- 4.1进程间通信2015/7/25
- SSDP协议的Android实现以及使用
- 杭电 1197
- 杭电1212
- 杭电1323
- 杭电1303
- 杭电1492