#include "stdio.h" #include "stdlib.h" #include "string.h" struct time { int year; int month; int day; }; struct note { char no[20]; char title[40]; char nr[200]; struct time rq; char file[20]; }kind[6]; char a=0,b=0,c=0,d=0,e=0,f=0; char m,k; int menu_main(void); //菜单函数 void deal_menu(void); //菜单处理函数 void file_read(void); //读文件函数 void add_file(void); //增加函数 void del_file(void); //删除记录函数 void edit_file(void); //编辑函数 //void search() //查寻,列出记录函数 //void count_order() //统计,排列函数
//菜单函数 int menu_main() { int nc; printf("提示:如果原来没有记录,请先增加记录\n\n"); printf("1.读取记事本文件\n"); printf("2.增加分类记事本的记录\n"); printf("3.删除分类记事本的记录\n"); printf("4.编辑分类记事本的记录\n"); printf("5.查询分类记事本的标题包含信息,并将所找到记录列出!\n"); printf("6.统计记录个分类总数,将序排列\n"); printf("7.请选择1-6:\n"); nc=getchar(); return nc ; } //菜单处理函数 void deal_menu(void) { for( ; ; ){ switch(menu_main()) { case 1: file_read(); //读文件函数 break; case 2: add_file(); //增加函数
break; case 3: del_file(); //删除函数 break; case 4: edit_file(); //编辑函数
break; // case 5: // search(); //查寻,列出记录函数 // break; // case 6: // count(); //统计函数 // order(); //排序函数 // break; } } }
//读文件函数11 void file_read(void) { char ch; char filename[80]; FILE *fp;
printf("请输入要打开的文件名:(如果不行,请输入文件的绝对路径)\n"); scanf("%s",filename);
if ((fp=fopen(filename,"r"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); }
while((ch=fgetc(fp))!=EOF) { putchar(ch); } fclose(fp); printf("\n"); ch=getchar(); }
//增加函数11 void add_file(void) { char filename[20],n[20]; int i; FILE *fp; printf("\n请输入第几种类记录的信息:\n"); scanf("%d",&i); printf("请为第%d个记录增加1\n",i); switch(i) { case 1: a++ ;break; case 2: b++ ;break; case 3: c++ ;break; case 4: d++ ;break; case 5: e++ ;break; case 6: f++ ;break; } //fflush(stdin);空stdin即标准输入流的缓冲区,防止它影响后面的数据输入 printf("输入序号:\n"); scanf("%s",kind[i].no); fflush(stdin);
printf("输入标题:\n"); gets(kind[i].title); fflush(stdin);
printf("输入内容:\n"); gets(kind[i].nr); fflush(stdin);
printf("输入日期\n"); scanf("%d%d%d",&(kind[i].rq.year),&(kind[i].rq.month), &(kind[i].rq.day)); fflush(stdin);
printf("输入增加的文件名字\n"); gets(filename); if ((fp=fopen(filename,"wb"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); } printf("\n恭喜您!!成功添加记录...\n"); fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } //删除函数11 void del_file(void) { char n ,filename[20]; char i; FILE *fp; printf("输入删除的文件名字\n"); gets(filename); if ((fp=fopen(filename,"wb"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); } printf("要删除的第几类文件:\n"); scanf("%d",&n); printf("您已经成功删除!\n"); strcpy(kind[i].no," "); fflush(stdin);
strcpy(kind[i].title," "); fflush(stdin);
strcpy(kind[i].nr," "); fflush(stdin); strcpy(kind[i].rq.year," "); strcpy(kind[i].rq.month," "); strcpy(kind[i].rq.day," "); fflush(stdin); strcpy(kind[i].file," "); fflush(stdin); fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } //编辑函数11 void edit_file(void) { char filename[20],c,i,j; char num,head,content,nian,yue,ri,wenjian; FILE *fp; printf("请输入想编辑的记事本文件名字:(如果不行,请输入文件的绝对路径)\n"); gets(filename); if((fp=fopen(filename,"r+"))==NULL) { printf("不能打开所输入的文件\n"); exit(0); } printf("修改什么类型的序号\n"); scanf("%d",&i); printf("输入序号:\n"); scanf("%s",num); strcpy(kind[i].no,num); fflush(stdin); printf("输入标题:\n"); gets(head); strcpy(kind[i].title,head); fflush(stdin);
printf("输入内容:\n"); gets(content); strcpy(kind[i].nr,content); fflush(stdin); printf("输入日期\n"); scanf("%d%d%d",nian,yue,ri); strcpy(kind[i].rq.year,nian); strcpy(kind[i].rq.month,yue); strcpy(kind[i].rq.day,ri); fflush(stdin); printf("输入文件名字:\n"); scanf("%s",wenjian); strcpy(kind[i].file[j],wenjian); fflush(stdin); fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } main() { menu_main(); //菜单函数 deal_menu(); //菜单处理函数 } 我在C-FREE里运行了,程序执行到菜单选择后,就干不下去了~~~~~~~