备忘录(C语言)

来源:互联网 发布:项目协同软件 编辑:程序博客网 时间:2024/05/22 01:37
#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");}elseprintf("/nNo result!");}loop:printf("Return to the top./n/n");fclose(fp);}
原创粉丝点击