|
|
|
|
#define _CRT_SECURE_NO_WARNINGS
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <time.h> //ʱ<><CAB1><EFBFBD>⺯<EFBFBD><E2BAAF>
|
|
|
|
|
|
|
|
|
|
int class_num = 0; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
|
|
|
|
|
typedef struct car
|
|
|
|
|
{
|
|
|
|
|
char number[10]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char hour[3]; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Сʱ
|
|
|
|
|
char min[3]; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char from[10]; //<2F><>ʼվ
|
|
|
|
|
char to[10]; //<2F>յ<EFBFBD>վ
|
|
|
|
|
float hours; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
int max; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int bought; //<2F><><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1>
|
|
|
|
|
} CLASS;
|
|
|
|
|
|
|
|
|
|
CLASS records[1000]; // <20>ɼ<EFBFBD>¼1000<30><30><EFBFBD><EFBFBD>
|
|
|
|
|
void Menu();
|
|
|
|
|
void Import();
|
|
|
|
|
void Exit();
|
|
|
|
|
void Buy();
|
|
|
|
|
void Refund();
|
|
|
|
|
void Query();
|
|
|
|
|
void Exploer();
|
|
|
|
|
void Insert();
|
|
|
|
|
void ShowTableHead();
|
|
|
|
|
void ShowTableFoot();
|
|
|
|
|
void Find(char s1[], char s2[]);
|
|
|
|
|
|
|
|
|
|
int main()
|
|
|
|
|
{
|
|
|
|
|
Menu();
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Menu()
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
time_t rawtime; //<2F><>ȡϵͳʱ<CDB3>亯<EFBFBD><E4BAAF>
|
|
|
|
|
struct tm *timeinfo;
|
|
|
|
|
time(&rawtime);
|
|
|
|
|
timeinfo = localtime(&rawtime);
|
|
|
|
|
printf(" ϵͳ<CFB5><CDB3>ǰʱ<C7B0>䣺%d<><64>%d\n", timeinfo->tm_hour, timeinfo->tm_min);
|
|
|
|
|
int InputNumber;
|
|
|
|
|
printf("/* 1<><31><EFBFBD><EFBFBD>Ʊ */\n");
|
|
|
|
|
printf("/* 2<><32><EFBFBD><EFBFBD>Ʊ */\n");
|
|
|
|
|
printf("/* 3<><33><EFBFBD><EFBFBD>ѯ·<D1AF><C2B7> */\n");
|
|
|
|
|
printf("/* 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD> */\n");
|
|
|
|
|
printf("/* 5<><35><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD>Ϣ */\n");
|
|
|
|
|
printf("/* 6<><36>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>״<EFBFBD>ʹ<EFBFBD>ã<EFBFBD> */\n");
|
|
|
|
|
printf("/* 0<><30><EFBFBD>˳<EFBFBD> */\n");
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>");
|
|
|
|
|
scanf("%d", &InputNumber);
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
switch (InputNumber)
|
|
|
|
|
{
|
|
|
|
|
default:
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
Menu();
|
|
|
|
|
break;
|
|
|
|
|
case 0:
|
|
|
|
|
Exit();
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
Buy();
|
|
|
|
|
Menu();
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
Refund();
|
|
|
|
|
Menu();
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
Query();
|
|
|
|
|
Menu();
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
Exploer();
|
|
|
|
|
Menu();
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
Insert();
|
|
|
|
|
Menu();
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
Import();
|
|
|
|
|
Menu();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} while (InputNumber != 0);
|
|
|
|
|
}
|
|
|
|
|
void Scanf(int i, int j) //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
for (;;)
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뷢<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>(xx xx)");
|
|
|
|
|
scanf("%s%s", records[i].hour, records[i].min);
|
|
|
|
|
if ((atoi(records[i].hour) < 24 && atoi(records[i].hour) >= 0) && (atoi(records[i].min) < 60 && atoi(records[i].min) >= 0))
|
|
|
|
|
break;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ:\n");
|
|
|
|
|
scanf("%s", records[i].from);
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>վ:\n");
|
|
|
|
|
scanf("%s", records[i].to);
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>ʱ<EFBFBD><EFBFBD>:\n");
|
|
|
|
|
scanf("%f", &records[i].hours);
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
|
|
|
|
|
scanf("%d", &records[i].max);
|
|
|
|
|
for (;;)
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD>:\n");
|
|
|
|
|
scanf("%d", &records[i].bought);
|
|
|
|
|
if (records[i].bought <= records[i].max)
|
|
|
|
|
break;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void Save() //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>溯<EFBFBD><E6BAAF>
|
|
|
|
|
{
|
|
|
|
|
FILE *fp1, *fp2;
|
|
|
|
|
if ((fp1 = fopen("sql.txt", "wb")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
Menu();
|
|
|
|
|
}
|
|
|
|
|
if ((fp2 = fopen("num.txt", "wb")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
Menu();
|
|
|
|
|
}
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD>\n");
|
|
|
|
|
fp2 = fopen("num.txt", "wb");
|
|
|
|
|
fp1 = fopen("sql.txt", "wb");
|
|
|
|
|
fwrite(&class_num, sizeof(int), 1, fp2); //д<><D0B4><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
|
|
|
|
|
fwrite(records, sizeof(CLASS), class_num, fp1);
|
|
|
|
|
fclose(fp1);
|
|
|
|
|
fclose(fp2); ///<2F>ر<EFBFBD><D8B1>ļ<EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
void Load() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
FILE *fp1, *fp2;
|
|
|
|
|
if ((fp1 = fopen("sql.txt", "rb")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
Menu();
|
|
|
|
|
}
|
|
|
|
|
if ((fp2 = fopen("num.txt", "rb")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
Menu();
|
|
|
|
|
}
|
|
|
|
|
fp1 = fopen("sql.txt", "rb");
|
|
|
|
|
fp2 = fopen("num.txt", "rb");
|
|
|
|
|
fread(&class_num, sizeof(int), 1, fp2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
if (sizeof(CLASS) > sizeof(class_num))
|
|
|
|
|
{
|
|
|
|
|
fread(records, sizeof(CLASS), class_num, fp1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
}
|
|
|
|
|
fclose(fp1);
|
|
|
|
|
fclose(fp2);
|
|
|
|
|
}
|
|
|
|
|
int Judge(int i) //<2F>ж<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<C7B7>
|
|
|
|
|
{
|
|
|
|
|
struct tm *local; //ʱ<><CAB1><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
time_t t;
|
|
|
|
|
time(&t);
|
|
|
|
|
local = localtime(&t); //<2F><>ȡ<EFBFBD><C8A1>ǰϵͳʱ<CDB3><CAB1>
|
|
|
|
|
if (local->tm_hour < atoi(records[i].hour) || local->tm_hour == atoi(records[i].hour) && local->tm_min < atoi(records[i].min))
|
|
|
|
|
//atoi<6F><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
return 1;
|
|
|
|
|
else
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
int FindCarByNum(char s1[]) //<2F><><EFBFBD>Ұ<EFBFBD><D2B0><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
int i, h = 0;
|
|
|
|
|
ShowTableHead();
|
|
|
|
|
for (i = 0; i < class_num; i++)
|
|
|
|
|
{
|
|
|
|
|
if (strcmp(s1, records[i].number) == 0) //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>еij<D0B5><C4B3>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>복<EFBFBD>κ<EFBFBD><CEBA>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
{
|
|
|
|
|
printf("|----------|----------|----------|----------|--------|--------|--------|\n");
|
|
|
|
|
printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|", records[i].number, records[i].hour,
|
|
|
|
|
records[i].min, records[i].from, records[i].to, records[i].hours, records[i].max, records[i].bought);
|
|
|
|
|
h += 2;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ShowTableFoot();
|
|
|
|
|
return i;
|
|
|
|
|
}
|
|
|
|
|
void Import()
|
|
|
|
|
{
|
|
|
|
|
int i = 0, j = 5, h;
|
|
|
|
|
FILE *fp;
|
|
|
|
|
system("cls");
|
|
|
|
|
if ((fp = fopen("num.txt", "rb")) != NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD>ι<EFBFBD><EFBFBD><EFBFBD>!\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
i = 1;
|
|
|
|
|
}
|
|
|
|
|
if (i == 0)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
|
|
|
|
|
scanf("%d", &class_num); //ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
system("cls");
|
|
|
|
|
for (i = 0; i < class_num; i++)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ:\n", i + 1);
|
|
|
|
|
h = -1;
|
|
|
|
|
for (; h != i;) ///ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
|
|
|
|
|
scanf("%s", records[i].number);
|
|
|
|
|
for (h = 0; h < i; h++)
|
|
|
|
|
if (strcmp(records[h].number, records[i].number) == 0)
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!<21>ð<EFBFBD><C3B0><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>!\n");
|
|
|
|
|
break; ///<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Scanf(i, j);
|
|
|
|
|
j = 5;
|
|
|
|
|
}
|
|
|
|
|
Save();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void Exit()
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
exit(0);
|
|
|
|
|
}
|
|
|
|
|
void Buy()
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
char num[10];
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("1. <20><>Ʊ\n");
|
|
|
|
|
printf("2. <20><><EFBFBD><EFBFBD>\n");
|
|
|
|
|
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>(1-2):\n");
|
|
|
|
|
scanf("%d", &i);
|
|
|
|
|
if (i == 1)
|
|
|
|
|
{
|
|
|
|
|
Load();
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>İ<EFBFBD><EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
Query();
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>Ʊ<EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0):\n");
|
|
|
|
|
num[0] = '\0';
|
|
|
|
|
scanf("%s", num);
|
|
|
|
|
for (i = 0; i < class_num; i++)
|
|
|
|
|
if (strcmp(num, records[i].number) == 0)
|
|
|
|
|
if (records[i].max > records[i].bought && Judge(i) == 1)
|
|
|
|
|
//<2F>ж<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<C7B7><F1B3ACB3><EFBFBD>ǰϵͳʱ<CDB3>䲢<EFBFBD><E4B2A2><EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD>Ʊû<C6B1><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
records[i].bought++;
|
|
|
|
|
printf("ͨ<EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD>Ϊ%s<><73>Ʊ<EFBFBD><C6B1>Ʊ<EFBFBD>ɹ<EFBFBD>!\n", records[i].to, records[i].number);
|
|
|
|
|
Save();
|
|
|
|
|
system("pause");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѷ<EFBFBD><EFBFBD><EFBFBD>!\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void Refund()
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
char num[10];
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("1. <20><>Ʊ\n");
|
|
|
|
|
printf("2. <20><><EFBFBD><EFBFBD>\n");
|
|
|
|
|
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>(1-2)\n:");
|
|
|
|
|
scanf("%d", &i);
|
|
|
|
|
if (i == 1)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
Load();
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>Ʊ<EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD>:\n");
|
|
|
|
|
scanf("%s", num);
|
|
|
|
|
i = FindCarByNum(num); //<2F><><EFBFBD>ð<EFBFBD><C3B0>β<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
|
|
|
|
if (strcmp(num, records[i].number) == 0)
|
|
|
|
|
if (Judge(i)) //<2F>ж<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<C7B7><F1B3ACB3><EFBFBD>ǰϵͳʱ<CDB3><CAB1>
|
|
|
|
|
{
|
|
|
|
|
printf("ȷ<EFBFBD><EFBFBD>(Y/N)?");
|
|
|
|
|
scanf("%s", num);
|
|
|
|
|
if (num[0] == 'y' || num[0] == 'Y')
|
|
|
|
|
{
|
|
|
|
|
records[i].bought--;
|
|
|
|
|
printf("<EFBFBD><EFBFBD>Ʊ<EFBFBD>ɹ<EFBFBD>!\n");
|
|
|
|
|
Save();
|
|
|
|
|
system("pause");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD>ð<EFBFBD>ѷ<EFBFBD><EFBFBD><EFBFBD>,<2C><EFBFBD><DEB7><EFBFBD>Ʊ!\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
}
|
|
|
|
|
if (i == class_num)
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void Query()
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
char s1[10] = { '\0' }, s2[10] = { '\0' };
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("1. <20><><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD>ѯ\n");
|
|
|
|
|
printf("2. <20><><EFBFBD>յ<EFBFBD>վ<EFBFBD><D5BE>ѯ\n");
|
|
|
|
|
printf("3. <20>˳<EFBFBD>\n");
|
|
|
|
|
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>(1-3):\n");
|
|
|
|
|
scanf("%d", &i);
|
|
|
|
|
Load();
|
|
|
|
|
switch (i)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ѯ<EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD>:\n"); //////s1Ϊ<31><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
scanf("%s", s1);
|
|
|
|
|
Find(s1, s2);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ѯ<EFBFBD>յ<EFBFBD>վ:\n"); /////s2Ϊ<32>յ<EFBFBD>վ
|
|
|
|
|
scanf("%s", s2);
|
|
|
|
|
Find(s1, s2);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
system("pause");
|
|
|
|
|
}
|
|
|
|
|
void Find(char s1[], char s2[])
|
|
|
|
|
{
|
|
|
|
|
int i, h = 0, m;
|
|
|
|
|
ShowTableHead();
|
|
|
|
|
if (s2[0] == '\0')
|
|
|
|
|
m = 1; //1Ϊ<31><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
|
|
|
|
else
|
|
|
|
|
m = 0;
|
|
|
|
|
for (i = 0; i < class_num; i++)
|
|
|
|
|
if (strcmp(s1, records[i].number) == 0 || strcmp(s2, records[i].to) == 0)
|
|
|
|
|
{
|
|
|
|
|
printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");
|
|
|
|
|
printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|", records[i].number, records[i].hour, records[i].min,
|
|
|
|
|
records[i].from, records[i].to, records[i].hours, records[i].max, records[i].bought);
|
|
|
|
|
h += 2;
|
|
|
|
|
if (m == 1)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
ShowTableFoot();
|
|
|
|
|
if (h == 0)
|
|
|
|
|
printf("Ҫ<EFBFBD><EFBFBD><EFBFBD>ҵİ<EFBFBD><EFBFBD>β<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n");
|
|
|
|
|
}
|
|
|
|
|
void Insert()
|
|
|
|
|
{
|
|
|
|
|
int i, j = 5;
|
|
|
|
|
Load();
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("1. <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD>\n");
|
|
|
|
|
printf("2. <20><><EFBFBD><EFBFBD>\n");
|
|
|
|
|
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>(1-2)\n");
|
|
|
|
|
scanf("%d", &i);
|
|
|
|
|
if (i == 1)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ӵİ<D3B5><C4B0><EFBFBD>:\n");
|
|
|
|
|
scanf("%s", records[class_num].number);
|
|
|
|
|
for (i = 0; i < class_num; i++)
|
|
|
|
|
if (strcmp(records[class_num].number, records[i].number) == 0)
|
|
|
|
|
//<2F>жϳ<D0B6><CFB3><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ظ<EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><EFBFBD><EFBFBD>!\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (i == class_num)
|
|
|
|
|
{
|
|
|
|
|
Scanf(i, j);
|
|
|
|
|
class_num++; ///ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
Save();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void Exploer() //<2F>г<EFBFBD><D0B3><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
int i, j;
|
|
|
|
|
system("cls");
|
|
|
|
|
Load();
|
|
|
|
|
ShowTableHead();
|
|
|
|
|
//ShowTableBody
|
|
|
|
|
for (i = 0, j = 0; i < class_num; i++, j += 2)
|
|
|
|
|
{
|
|
|
|
|
printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");
|
|
|
|
|
if (Judge(i))
|
|
|
|
|
printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|", records[i].number, records[i].hour,
|
|
|
|
|
records[i].min, records[i].from, records[i].to, records[i].hours,
|
|
|
|
|
records[i].max, records[i].bought);
|
|
|
|
|
else
|
|
|
|
|
printf("|%10s| <20>ѷ<EFBFBD><D1B7><EFBFBD> |%10s|%10s|%8.1f|%8d|%8d|", records[i].number,
|
|
|
|
|
records[i].from, records[i].to, records[i].hours, records[i].max, records[i].bought);
|
|
|
|
|
}
|
|
|
|
|
ShowTableFoot();
|
|
|
|
|
printf("\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
}
|
|
|
|
|
void ShowTableHead()
|
|
|
|
|
{
|
|
|
|
|
int i = 2;
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("**************************<2A><>ǰ<EFBFBD><C7B0><EFBFBD>г<EFBFBD><D0B3>α<EFBFBD>*********************************\n");
|
|
|
|
|
printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");
|
|
|
|
|
printf("\n| <20><><EFBFBD><EFBFBD> | <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> | <20><><EFBFBD><EFBFBD>վ | <20>յ<EFBFBD>վ |<7C>г<EFBFBD>ʱ<EFBFBD><CAB1>|<7C><EFBFBD><EEB6A8><EFBFBD><EFBFBD>| <20><><EFBFBD><EFBFBD>Ʊ |\n");
|
|
|
|
|
}
|
|
|
|
|
void ShowTableFoot()
|
|
|
|
|
{
|
|
|
|
|
printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");
|
|
|
|
|
}
|