#include
#include
struct Date
{
int year;
int month;
int day;
int hour;
int minute;
char a[100];
}stu[10];
int main()
{
int n;
int m;
FILE fp,*fp1;
void input();
void deletes();
void check();
void change();
void point();
printf("注;如果您是第一次运行此程序,请直接添加行程即可.\n");
fp=fopen("a.txt","w");
fclose(fp);
fp1=fopen("b.txt","w");
fclose(fp1);
while(1)
{
printf("**日程表管理***\n");
printf("1. 添加日程信息\n");
printf("2. 删除日程信息\n");
printf("3. 查询\n");
printf("4. 设置\n");
printf("0. 退出\n");
scanf("%d",&n);
switch(n)
{
case 1: input();system("cls");break;
case 2: deletes();system("cls");break;
case 3: check();system("cls");break;
case 4: point();system("cls");break;
case 0: exit(0);
}
}
return 0;
}
void input()
{
int n,m;
int i;
FILE *fp,*fp1;
struct Date date1;
printf("请问您是第一次运行改程序吗?如果是,请输入1,如果不是,请输入2;\n");
scanf("%d",&n);
if(n==1)
{
printf("请输入您要录入的事件的时间,以及事件,格式为年,月,日,小时,分钟,事件\n");
scanf("%d,%d,%d,%d,%d,%s",&date1.year,&date1.month,&date1.day,&date1.hour,&date1.minute,date1.a);
fp=fopen("a.txt","w");
fprintf(fp,"%d,%d,%d,%d,%d,%s\n",date1.year,date1.month,date1.day,date1.hour,date1.minute,date1.a);
fclose(fp);
}
else if(n==2)
{
printf("请输入您要录入的事件的时间,以及事件,格式为年,月,日,小时,分钟,事件,\n");
scanf("%d,%d,%d,%d,%d,%s",&date1.year,&date1.month,&date1.day,&date1.hour,&date1.minute,date1.a);
fp=fopen("a.txt","a");
for(i=0;!feof(fp);i++)
{
fread(&stu[i],sizeof(struct Date),1,fp);
}
m=i;
for(i=0;i<m;i++)
{
if(date1.year==stu[i].year&&date1.month==stu[i].month&&date1.day==stu[i].day&&date1.hour==stu[i].hour&&date1.minute==stu[i].minute)
printf("您录入的时间和已存在的日期存在冲突\n");
else
fprintf(fp,"%d,%d,%d,%d,%d,%s\n",date1.year,date1.month,date1.day,date1.hour,date1.minute,date1.a);
printf("ds");
}
fclose(fp);
}
}
void deletes()
{
int p,m,i;
struct Date date1;
FILE *fp,*fp1;
printf("请输入相应的时间\n");
scanf("%d,%d,%d,%d,%d",&date1.year,&date1.month,&date1.day,&date1.hour,&date1.minute);
fp=fopen("a.txt","r");
for(i=0;!feof(fp);i++)
{
fread(&stu[i],sizeof(struct Date),1,fp);
}
m=i;
for(i=0;i {
if(date1.year==stu[i].year&&date1.month==stu[i].month&&date1.day==stu[i].day&&date1.hour==stu[i].hour&&date1.minute==stu[i].minute)
printf("您在该时间的时间安排为:%s",stu[i].a);
}
p=i;
stu[p].year=0;
stu[p].month=0;
stu[p].day=0;
stu[p].hour=0;
stu[p].minute=0;
for(i=0;i fwrite(&stu[i],sizeof(struct Date),1,fp);
fclose(fp);
}
void check()
{
int i,n,p,m,a;
struct Date date1;
FILE *fp,*fp1;
fp1=fopen("b.txt","r");
fread(&p,sizeof(int),1,fp1);
fclose(fp1);
printf("您好,您进入了查询功能,该程序的功能为查询将要发生的事件\n");
printf("请输入您提前提醒的单位,1;天,2;小时,3;分钟\n");
scanf("%d",&n);
if(n==1)
{
printf("请输入年,月,日,小时,分钟\n");
scanf("%d,%d,%d,%d,%d",&date1.year,&date1.month,&date1.day,&date1.hour,&date1.minute);
fp=fopen("a.txt","r");
while(!feof(fp))
{
fread(&stu[i],sizeof(struct Date),1,fp);
i++;
}
m=i;
for(i=0;i {
if((date1.day-stu[i].day) {
p=i;
printf("您有将要发生的事件:%d,%d,%d,%d,%d%s\n",stu[p].year,stu[p].month,stu[p].day,stu[p].hour,stu[p].minute,stu[p].a);
if((stu[i].day-date1.day) {
a=i;
printf("已经发生的事件:%d,%d,%d,%d,%d%s\n",stu[a].year,stu[a].month,stu[a].day,stu[a].hour,stu[a].minute,stu[a].a);
}
}
}
fclose(fp);
}
if(n==2)
{
printf("请输入年,月,日,小时,分钟\n");
scanf("%d,%d,%d,%d,%d",&date1.year,&date1.month,&date1.day,&date1.hour,&date1.minute);
fp=fopen("a.txt","r");
while(!feof(fp))
{
fread(&stu[i],sizeof(struct Date),1,fp);
i++;
}
m=i;
for(i=0;i {
if((date1.hour-stu[i].hour) {
p=i;
printf("您有将要发生的事件:%d,%d,%d,%d,%d%s\n",stu[p].year,stu[p].month,stu[p].day,stu[p].hour,stu[p].minute,stu[p].a);
if((stu[i].hour-date1.hour) {
a=i;
printf("已经发生的事件:%d,%d,%d,%d,%d%s\n",stu[a].year,stu[a].month,stu[a].day,stu[a].hour,stu[a].minute,stu[a].a);
}
}
}
fclose(fp);
}
if(n==3)
{
printf("请输入年,月,日,小时,分钟\n");
scanf("%d,%d,%d,%d,%d",&date1.year,&date1.month,&date1.day,&date1.hour,&date1.minute);
fp=fopen("a.txt","r");
while(!feof(fp))
{
fread(&stu[i],sizeof(struct Date),1,fp);
i++;
}
m=i;
for(i=0;i {
if((date1.minute-stu[i].minute) {
p=i;
printf("您有将要发生的事件:%d,%d,%d,%d,%d%s\n",stu[p].year,stu[p].month,stu[p].day,stu[p].hour,stu[p].minute,stu[p].a);
if((stu[i].minute-date1.minute) {
a=i;
printf("已经发生的事件:%d,%d,%d,%d,%d%s\n",stu[a].year,stu[a].month,stu[a].day,stu[a].hour,stu[a].minute,stu[a].a);
}
}
}
fclose(fp);
}
}
void point()
{
int n;
void tixing();
void jiancha1();
void jianhca2();
printf("您已经进入了本程序的设置功能,在这里,您可以:\n");
printf("1.设置提前提醒的时间\n");
printf("2.对已经录入的时间进行合理性检查\n");
printf("3.对输入的提醒时间进行合理性检查\n");
printf("0.退出设置");
scanf("%d",&n);
while(n!=0&&n!=1&&n!=2&&n!=3)
{
switch(n)
{
case 1: tixing();break;
case 2: jiancha1();break;
// case 3: jiancha();break;
case 0: break;
default: printf("您输入的数字有误,请重新输入");
}
}
}
void tixing()
{
int n,m;
FILE *fp,*fp1;
printf("请输入提前提醒的时间,注意:如果您以天为单位,请输入1,如果以小时为单位,请输入2,如果以分钟为单位,请输入3\n");
scanf("%d",&n);
if(n==1)
{
printf("您好,请输入提前提醒的天数\n");
scanf("%d",&m);
fp1=fopen("b.txt","w");
fprintf(fp,"%d");
fclose(fp);
}
else if(n==2)
{
printf("您好,请输入提前提醒的小时\n");
scanf("%d",&m);
fp1=fopen("b.txt","w");
fprintf(fp1,"%d");
fclose(fp1);
}
else
{
printf("您好,请输入提前提醒的分钟\n");
scanf("%d",&m);
fp1=fopen("b.txt","w");
fprintf(fp1,"%d");
fclose(fp1);
}
}
void jiancha1()
{
int n,m,p;
int i=0;
FILE *fp,*fp1;
printf("您好,你进入了检查模块,此模块旨在对您已录入的时间进行合理性检查\n");
fp=fopen("a.txt","w");
while(!feof(fp))
{
fread(&stu[i],sizeof(struct Date),1,fp);
i++;
}
m=i;
for(i=0;i {
if(((0==stu[i].year%4)&&(0!=stu[i].year%100))||(0==stu[i].year%400))
{
p=i;
if(stu[p].month==2)
{
if(stu[p].year=12||stu[p].day<=0&&stu[p].day>=28||stu[p].minute<=0&&stu[p].minute>=60||stu[p].hour<=0&&stu[p].hour>=24)
printf("您的录入的信息有误,这条信息为:%d,%d,%d,%d,%d,%s\n",stu[p].year,stu[p].month,stu[i].day,stu[p].hour,stu[p].minute,stu[p].a);
}
else if(stu[p].month {
if(stu[p].year=12||stu[p].day<=0&&stu[p].day>=30||stu[p].minute<=0&&stu[p].minute>=60||stu[p].hour<=0&&stu[p].hour>=24)
printf("您的录入的信息有误,这条信息为:%d,%d,%d,%d,%d,%s\n",stu[p].year,stu[p].month,stu[p].day,stu[p].hour,stu[p].minute,stu[p].a);
else
{
if(stu[p].year<=0||stu[p].month<=0&&stu[p].month>=12||stu[p].day<=0&&stu[p].day>=31||stu[p].minute<=0&&stu[p].minute>=60||stu[p].hour<=0&&stu[p].hour>=24)
printf("您的录入的信息有误,这条信息为:%d,%d,%d,%d,%d,%s\n",stu[p].year,stu[p].month,stu[p].day,stu[p].hour,stu[p].minute,stu[p].a);
}
}
}
else
{
p=i;
if(stu[p].month==2)
{
if(stu[p].year<=0||stu[p].month<=0&&stu[p].month>=12||stu[p].day<=0&&stu[p].day>=28||stu[p].minute<=0&&stu[p].minute>=60||stu[p].hour<=0&&stu[p].hour>=24)
printf("您的录入的信息有误,这条信息为:%d,%d,%d,%d,%d,%s\n",stu[p].year,stu[p].month,stu[i].day,stu[i].hour,stu[i].minute,stu[i].a);
}
else if(stu[p].month {
if(stu[i].year=12||stu[p].day<=0&&stu[p].day>=30||stu[p].minute<=0&&stu[p].minute>=60||stu[p].hour<=0&&stu[i].hour>=24)
printf("您的录入的信息有误,这条信息为:%d,%d,%d,%d,%d,%s\n",stu[p].year,stu[p].month,stu[p].day,stu[p].hour,stu[p].minute,stu[p].a);
else
{
if(stu[i].year<=0||stu[i].month<=0&&stu[p].month>=12||stu[i].day<=0&&stu[i].day>=30||stu[i].minute<=0&&stu[p].minute>=60||stu[i].hour<=0&&stu[i].hour>=24)
printf("您的录入的信息有误,这条信息为:%d,%d,%d,%d,%d,%s\n",stu[p].year,stu[p].month,stu[p].day,stu[p].hour,stu[p].minute,stu[p].a);
}
}
}
}
fclose(fp);
}
//void jiancha()
//{
// int i,n,p;
// FILE *fp,*fp1;
// printf("您好,您进入了检查模块,此模块的作用为检查录入提醒时间是否格式正确,\n");
// printf("请输入您录入时间的单位,1;天,2;小时;3;分钟\n");
// scanf("%d",&n);
// if(n==1)
// {
// fp1=fopen("b.txt","r");
// fscanf(fp1,"%d",&p);
// if(p // printf("您输入的时间有误,请重新输入");
// fclose(fp1);
// }
// else if(n==2)
// {
// fp1=fopen("b.txt","r");
// fread(&p,sizeof(int),1,fp1);
// if(p24)
// printf("您输入的时间有误,请重新输入");
// fclose(fp1);
// }
// else if(n==3)
// {
// fp1=fopen("b.txt","r");
// fread(&p,sizeof(int),1,fp1);
// if(p<=0&&p>60)
// printf("您输入的时间有误,请重新输入");
// fclose(fp1);
// }
// else
// printf("您录入的时间无误");
//}
这个程序用CF跑过,但是没有语法错误,就是功能有问题,每次选择一后,再第二次录入的时候,输入完就卡在地方不动了,不知道咋回事,请各位大神解答,谢谢
不知道你说的是在哪里选择的1,什么叫卡着不动了,是不是死循环或者是scanf格式不对,还在等你输入