数据生成器模板

0AND1STORY

2020-01-17 15:01:22

Personal

```cpp #include <cstdio> #include <cstdlib> #include <ctime> #include <climits> #include <windows.h> using namespace std; #define infile(name) fopen(name, "w"); #define outfile(name) fopen(name, "r"); #define For(x, l, r) for(int x = l; x <= r; x ++) #define DATA_NUM 20 #define PROGRAM_NAME "book" #define SHOW_CONTENT FALSE typedef FILE* LPFILE; inline int rand(register int l, register int r) { return rand() % (r-l+1) + l; } inline double rand_double() { return (double)rand() / RAND_MAX; } inline long long rand_long() { return (long long)rand() * RAND_MAX * RAND_MAX + (long long)rand() * RAND_MAX + (long long)rand(); } inline long long rand_long(register long long l, register long long r) { return rand_long() % (r-l+1) + l; } int main() { srand(time(NULL)); printf("Begin Make Data of \""PROGRAM_NAME"\":\n"); printf("=============================\n"); system("mkdir "PROGRAM_NAME); for (int data_num = 0; data_num < DATA_NUM; data_num ++) { char* file_name = new char[MAX_PATH]; sprintf(file_name, PROGRAM_NAME"/"PROGRAM_NAME"%d.in", data_num); LPFILE fin = infile(file_name); delete[] file_name; /* Begin Make Data */ int R = 10000, C = 10000, N; while (R * C > 50) { R = rand_long(1, 10); C = rand_long(1, 10); } N = rand_long(R * C, 50); fprintf(fin, "%d %d %d\n", N, R, C); for (int i = 1; i <= N; i ++) { fprintf(fin, "%d\n", (int)rand_long(1, 100)); } /* End Make Data */ fclose(fin); printf("Data [%d]:\n", data_num); char* cmd_line = new char[MAX_PATH]; sprintf(cmd_line, PROGRAM_NAME".exe < \""PROGRAM_NAME"/"PROGRAM_NAME"%d.in\" > \""PROGRAM_NAME"/"PROGRAM_NAME"%d.out\"", data_num, data_num); clock_t t = clock(); system(cmd_line); printf("Time: %d ms\n", clock()-t); #if SHOW_CONTENT printf("Input File [%d]:\n", data_num); sprintf(cmd_line, "type \""PROGRAM_NAME"%d.in\"", data_num); system(cmd_line); printf("Output File [%d]:\n", data_num); sprintf(cmd_line, "type \""PROGRAM_NAME"%d.out\"", data_num); system(cmd_line); #endif // SHOW_CONTENT` delete[] cmd_line; printf("=============================\n"); } printf("Make Data Successfully.\n"); return 0; } ```