备忘录(C语言)

#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);
}
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值