資源簡介
c語言實現的tsv文件讀取程序,其中有兩個測試用例,可對測試用例進行分析

代碼片段和文件信息
/*?Sample?Solution?to?COMP20005?Assignment?1??2018s1.
*/
#include?
#include?
#include?
#define?NGRPS?3?/*?input?data?is?split?into?NGRPS*/
#define?MAXDAYS?10000?/*input?data?covre?max?days*/
const?int?MONTH[13]?=?{?0312831303130313130313031?};
/*struct?define*/
typedef?struct
{
int?yy;
int?mm;
int?dd;
int?day;
}Date;
typedef?struct
{
Date?date;
int??daycount;
}data;
/*?function?prototypes?*/
int?leapyear(int?year);
int?days_diff(Date?beg?Date?end);
int?print_date(Date?val);
void?print_data(data?d);
data?get_data(FILE?*?in);
int?mygetchar();
void?printf_month(int?yearint?monthint?nint?sum);
void?print_group(data?*g?int?size);
print_week(int?weeki?float*?ave?int?i);
void?ave_week(data?*g?int?sizefloat?*?ave);
/*?main?program?binds?it?all?together
*/
int?main()
{
/*?storage?for?all?of?the?input?data?*/
data?data_array[MAXDAYS];
int?data_size?=?0; /*the?size?of?data_array*/
FILE?*fin?=?fopen(“pedestrians-melbcent-full.tsv“?“r“);
/*skip?first?and?second?line*/
char?*s?=?(char*)malloc(1000);
fgets(s1000fin);
fgets(s?1000fin);
/*read?data*/
while?(1)
{
data?in;
in?=?get_data(fin);
if?(in.daycount?0)
break;
data_array[data_size++]?=?in;
}
/*Stage?1*/
printf(“S1:?total?data?lines?=?%d?days\n“?data_size?);
printf(“S1:?first?data?line??=?“);?print_data(data_array[0]);
printf(“S1:?first?data?line??=?“);?print_data(data_array[data_size-1]);
printf(“\n“);
/*Stage?2*/
int?days?=?days_diff(data_array[0].date?data_array[data_size?-?1].date);
printf(“S2:?range?spanned????=?%d?days\n“days?);
printf(“S2:?coverage?ratio???=?%2.1f%%\n“?(float)data_size/days*100);
printf(“\n“);
/*Stage?3*/
for?(int?year?=?data_array[0].date.yy?i=0;?year?<=?data_array[data_size?-?1].date.yy;++year)
{
for?(int?month?=?data_array[i].date.mm;?data_array[i].date.yy?==?year?&&?i? {
int?sum=0n=0;
for?(int?day?=?data_array[i].date.dd;?data_array[i].date.mm?==?month?&&i {
sum?+=?data_array[i].daycount;
++n;
}
printf_month(year?month?n?sum);
}
}
printf(“\n“);
/*Stage?4*/
int?group_size?=?data_size?/?NGRPS;
int?remainder?=?data_size%NGRPS;
/*split?into?NGRPS?near-equal?sized?*/
data?*group[NGRPS]; /*store?first?address?of?every?group*/
int?groupsize[NGRPS]; /*store?the?size?of?every?group*/
for?(int?i?=?0pos=0;?i? {
int?size?=?groupsize[i]?=?group_size?+?((NGRPS?-?remainder?<=?i)???1?:?0);
data?*group_i?=?(data*)malloc(sizeof(data)*(size)); //記得free!
for?(int?j=0;j group_i[j]?=?data_array[pos];
group[i]?=?group_i;
}
/*print?groups‘s?information*/
for?(int?i?=?0;?i? {
printf(“S4:?group?%d?data?“?i);
print_group(group[i]?groupsize[i]);
}
printf(“\n“);
/*calaulate?and?store?average?of?days*/
float?*group_days_ave[NGRPS];/*
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????6018??2018-04-25?22:13??main.c
?????文件?????????303??2018-04-25?22:20??readme.txt
- 上一篇:基于51的電子密碼鎖程序及仿真
- 下一篇:c++股票交易系統源代碼
評論
共有 條評論