#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语言)
最新推荐文章于 2023-12-18 18:08:17 发布