#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct memo
{
char name[50];
char event_date[20];
char content[500];
char remind_date[20];
};
void input_memo();
void look_over_memo();
void modify_by_name();
void remind_me();
void search_by_name();
void search_by_event_date();
void main()
{
FILE *fp;
char filename[20];
int ch;
/*
printf("Input a filename:");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("/nError creating the file!/n/n");
exit(1);
}
fclose(fp);
*/
loop:printf("/n/n****The memorandum.****/n");
printf("1 Input;/n2 Look over;/n3 Modify;/n4 Remind;/n5 Exit./n/n");
printf("Please input:");
scanf("%d",&ch);
switch(ch)
{
case 1:input_memo();
goto loop;
case 2:look_over_memo();
goto loop;
case 3:modify_by_name();
goto loop;
case 4:remind_me();
goto loop;
case 5:exit(0);
default:printf("Your choice is wrong!Please input again./n/n");
goto loop;
}
}
void input_memo()
{
struct memo m;
FILE *fp;
if((fp=fopen("memo","a"))==NULL)
{
printf("Cannot open the file!/n");
exit(1);
}
printf("/nInput please (If you want exit,input 0.):/n");
printf("name:");
scanf("%s",m.name);
while(strcmp(m.name,"0"))
{
printf("/nevent_date:");
scanf("%s",m.event_date);
printf("/ncontent:");
scanf("%s",m.content);
printf("/nremind_date:");
scanf("%s",m.remind_date);
fprintf(fp,"name:%s/nevent_date:%s/ncontent:%s/nremind_date:%s/n",
m.name,m.event_date,m.content,m.remind_date);
printf("/nname:");
scanf("%s",m.name);
}
fclose(fp);
}
void look_over_memo()
{
int ch;
loop:printf("/n1 Search by name;/n2 Search by event_date;/n3 Exit./n/n");
printf("/nPlease input:");
scanf("%d",&ch);
switch(ch)
{
case 1:search_by_name();
goto loop;
case 2:search_by_event_date();
goto loop;
case 3:break;
default:printf("/nYour choice is wrong!Please input again./n/n");
goto loop;
}
}
void search_by_name()
{
struct memo i;
FILE *fp;
int k=0,j=0,g=0;
char name[50]={'n','a','m','e',':'};
char new_name[50];
if((fp=fopen("memo","r"))==NULL)
{
printf("Cannot open the file!/n");
exit(1);
}
printf("/nPlease input name:/n");
scanf("%s",new_name);
for(j=0;j<sizeof(new_name);)
{
if(new_name[j]=='/n')
break;
else j++;
}
for(g=0;g<j;g++)
{
name[5+g]=new_name[g];
}
while(! feof(fp))
{
fscanf(fp,"%s%s%s%s/n",i.name,i.event_date,i.content,i.remind_date);
if(!strcmp(name,i.name))
{
printf("%s/n",i.name);
printf("%s/n",i.event_date);
printf("%s/n",i.content);
printf("%s/n",i.remind_date);
k=1;
break;
}
}
if(!k)
printf("No result!/n");
fclose(fp);
}
void search_by_event_date()
{
struct memo i;
FILE *fp;
char event_date[50]={'e','v','e','n','t','_','d','a','t','e',':'};
char new_event_date[50];
int k=0,j=0,g=0;
if((fp=fopen("memo","r"))==NULL)
{
printf("Cannot open the file!/n");
exit(1);
}
printf("Please input event_date:/n");
scanf("%s",new_event_date);
for(j=0;j<sizeof(new_event_date);)
{
if(new_event_date[j]=='/n')
break;
else j++;
}
for(g=0;g<j;g++)
{
event_date[11+g]=new_event_date[g];
}
while(! feof(fp))
{
fscanf(fp,"%s%s%s%s",i.name,i.event_date,i.content,i.remind_date);
if(strcmp(event_date,i.event_date))
{
printf("%s/n%s/n%s/n%s/n",i.name,i.event_date,i.content,i.remind_date);
k=1;
break;
}
}
if(!k)
printf("No result!/n");
fclose(fp);
}
void remind_me()
{
struct memo i;
FILE *fp;
int k=0,j=0,g=0;
char remind_date[50]={'r','e','m','i','n','d','_','d','a','t','e',':'};
char new_remind_date[50];
if((fp=fopen("memo","r"))==NULL)
{
printf("Cannot open the file!/n");
exit(1);
}
printf("Input remind_date:/n");
scanf("%s",new_remind_date);
for(j=0;j<sizeof(new_remind_date);)
{
if(new_remind_date[j]=='/n')
break;
else j++;
}
for(g=0;g<j;g++)
{
remind_date[13+g]=new_remind_date[g];
}
while(! feof(fp))
{
fscanf(fp,"%s%s%s%s",i.name,i.event_date,i.content,i.remind_date);
if(strcmp(remind_date,i.remind_date))
{
printf("%s/n",i.name);
printf("%s/n",i.event_date);
printf("%s/n",i.content);
k=1;
break;
}
}
if(!k)
printf("No result!/n");
fclose(fp);
}
void modify_by_name()
{
struct memo i;
FILE *fp;
int ch,k=0,j=0,g=0;
long offset;
char name[50]={'n','a','m','e',':'};
char new_name[50];
loop1:printf("1 Modify;/n2 Exit./n/nInput your choice:/n");
scanf("%d",&ch);
if(ch!=1 && ch!=2)
{
printf("Your choice is wrong!Please input agian./n");
goto loop1;
}
if(ch==2)
goto loop;
if(ch==1)
{
printf("/nPlease input the name you want to modify:");
scanf("%s",new_name);
for(j=0;j<sizeof(new_name);)
{
if(new_name[j]=='/n')
break;
else j++;
}
for(g=0;g<j;g++)
{
name[5+g]=new_name[g];
}
if((fp=fopen("memo","r+"))==NULL)
{
printf("/nCannot open the file!/n");
exit(1);
}
while(!feof(fp))
{
offset=ftell(fp);
fscanf(fp,"%s%s%s%s",i.name,i.event_date,i.content,i.remind_date);
if(!strcmp(name,i.name))
{
k=1;
break;
}
}
if(k)
{
printf("/nHave found,as follow:");
printf("/n%s/n%s/n%s/n%s/n",i.name,i.event_date,i.content,i.remind_date);
printf("/ninput new memo:/n");
printf("name:");
scanf("%s",i.name);
printf("/nevent_date:");
scanf("%s",i.event_date);
printf("/ncontent:");
scanf("%s",i.content);
printf("/nremind_date:");
scanf("%s",i.remind_date);
fseek(fp,offset,SEEK_SET);
printf("%ld",ftell(fp));
fprintf(fp,"/nname:%s/nevent_date:%s/ncontent:%s/nremind_date:%s/n",
i.name,i.event_date,i.content,i.remind_date);
printf("/nSuccessed!/n");
}
else
printf("/nNo result!");
}
loop:printf("Return to the top./n/n");
fclose(fp);
}
备忘录(C语言)
最新推荐文章于 2021-05-22 19:18:04 发布
本文介绍了一个简单的备忘录管理系统的设计与实现,该系统使用 C 语言编写,支持备忘录的输入、查看、修改和提醒等功能,并能通过姓名、事件日期进行搜索。
9772





