ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:19.90KB ,
资源ID:12032055      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12032055.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言 日记管理系统.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言 日记管理系统.docx

1、C语言 日记管理系统/* 0 *日记管理系统*/#include#include#include #include /* 1*定义日记结构体*/typedef struct Link1 char date20; / 日期 char title40; / 标题 char content1000; / 日记内容 char keyword20; / 关键字,可用空格隔开 int tag; / 用来标记该日记是否满足查阅要求,是为0,否为-1,初始值为0; struct Link1 *nextd; Diary;/* 2 *定义用户结构体*/typedef struct Link2 char usern

2、ame10; / 用户名 char password10; / 登录密码 Diary *diarys_list; /该用户拥有的日记链表 struct Link2 *nextu;User;/* 3 *函数声明*/ int Create_NewUser(User *U1); int Delete_Diary(Diary *D); int Diary_Operation(User *U2,Diary *D1); int Enter_Password(char password); User *Find_User(User *U1,char username); Diary *Init_Diary(

3、Diary *D1); void Initial_Tag(Diary *D1,int tag); User *Init_User(User *U1); int Open_Diary(Diary *D1); Diary *Open_DiaryFile(Diary *D1,char FileName); int Open_File(char FileName); int Printf_DiaryList(Diary *D1); void Print_Menu1(int *choose1); void Print_Menu2(int *choose2); void Print_Menu3(int *

4、choose3); int Printf_users(User *U1); int Save_Diary(Diary *D1); int Save_Users_info(User *U1); int Search_Diary(Diary *D1); Diary *Search_order(Diary *D1); Diary *Filter_word(Diary *D1,char cmpword,int n); User *User_Login(User *U1); int Write_Diary(Diary *D1);/* 4 *创建用户链表*/int Create_NewUser(User

5、*U1) int flag=0; char password210; User *s,*temp; Diary *D2=NULL; D2=Init_Diary(D2); do s=(User *)malloc(sizeof(User); if(s=NULL) printf( 用户创建失败); return 0; printf(n 请输入用户名: ); scanf(%s,&s-username); temp=Find_User(U1,s-username); if(temp=NULL) do printf(n 请输入6位密码: ); Enter_Password(s-password); pri

6、ntf(n 请确认密码: ); Enter_Password(password2); if(strcmp(s-password,password2)!=0) printf(n 密码确认错误nn); while(strcmp(s-password,password2)!=0); s-diarys_list=D2; s-nextu=U1-nextu; U1-nextu=s; flag=0; Save_Users_info(U1); printf(n 用户创建成功!n); else printf(nn 对不起该用户名已存在n); printf(n 是否继续创建用户:1/0 ); scanf(%d,&

7、flag); while(flag); return 1;/* 5 *初始化用户表*/User *Init_User(User *U1) U1=(User *)malloc(sizeof(User); if(U1!=NULL) U1-nextu=NULL; return U1; else return NULL;/* 6 *初始化日记表*/Diary *Init_Diary(Diary *D1) D1=(Diary *)malloc(sizeof(Diary); if(D1!=NULL) D1-nextd=NULL; return D1; else return NULL;/* 7 *将所有日

8、记记录的标记tag值置为0或-1*/void Initial_Tag(Diary *D1,int tag) Diary *q; q=D1-nextd; while(q!=NULL) q-tag=tag; q=q-nextd; /* 8 *导入用户信息*/int Open_Users_info(User *U1) FILE *fp; User *U2=NULL,*U3=NULL; Diary *D1=NULL,*D2=NULL; char filepn20,tempstr80;/*用来存放文件保存路径以及文件名*/ strcpy(filepn,Users_info.txt); if(fp=fop

9、en(filepn,r)=NULL) /只读 printf(不能打开文件n); return 0; else fscanf(fp,%sn,tempstr); /文本文件格式化输入 while(strcmp(tempstr,User:)=0&(!feof(fp) /到了文件末尾,函数值为非真 U2=(User *)malloc(sizeof(User); if(U2=NULL) printf( 用户空间申请失败n); return 0; else fscanf(fp,用户名:%20sn,U2-username); fscanf(fp,密码:%20sn,U2-password); fscanf(f

10、p,%80s,tempstr); D1=(Diary *)malloc(sizeof(Diary); D1=Init_Diary(D1); U2-diarys_list=D1; while(strcmp(tempstr,Diary:)=0&(!feof(fp) D2=(Diary *)malloc(sizeof(Diary); if(D2=NULL) printf( 日记空间申请失败n); return 0; else fscanf(fp, 日期: %sn,D2-date); fscanf(fp, 关键字: %sn,D2-keyword); fscanf(fp, 标题: %sn,D2-titl

11、e); fscanf(fp, 日记内容: n%snn,D2-content); fscanf(fp,%sn,tempstr); D2-tag=0; D2-nextd=D1-nextd; D1-nextd=D2; U2-nextu=U1-nextu; /U1后插入 U1-nextu=U2; fscanf(fp,nn); fclose(fp); return 0; /* 9 *显示用户列表*/int Printf_users(User *U1) int count=0; User *p; p=U1; printf(nn 用户信息列表如下:nn); if(U1-nextu=NULL) printf(

12、n 没有用户信息n); else while(p-nextu!=NULL) p=p-nextu; count+; printf( 第%d个用户 用户名:%sn,count,p-username); return 1;/* 10 *登录个人用户*/User *User_Login(User *U1) / 登录成功返回改用户的日记链表指针 int i=0; User *s=NULL,*tempU=NULL; Printf_users(U1); s=Init_User(s); tempU=Init_User(tempU); printf(n 请输入用户名: ); scanf(%s,&s-userna

13、me); tempU=Find_User(U1,s-username); if(tempU=NULL) printf(n 该用户不存在n); getch(); else printf( 请输入密码: ); rewind(stdin); Enter_Password(s-password); if(strcmp(tempU-password,s-password)=0) return tempU; else printf(n 密码错误n); getch(); return NULL;/* 11 *获取登录口令*/int Enter_Password(char password) char pas

14、sword110; int i; for(i=0;inextu; while(q!=NULL&strcmp(q-username,username)!=0) q=q-nextu; if(q!=NULL) return q; else return NULL;/* 13 *保存用户信息*/int Save_Users_info(User *U1) FILE *fp; Diary *D1; char filepn20; /*用来存放文件保存路径以及文件名*/ strcpy(filepn,Users_info.txt); if(fp=fopen(filepn,w+)=NULL) printf(不能打

15、开文件!n); return 0; while(U1-nextu!=NULL) fprintf(fp,User:n); U1=U1-nextu; /*下移一个结点*/ fprintf(fp,用户名:%sn密码:%sn,U1-username,U1-password); D1=U1-diarys_list; while(D1-nextd!=NULL) D1=D1-nextd; fprintf(fp,Diary:n); fprintf(fp,日期:%sn关键字: %sn,D1-date,D1-keyword); fprintf(fp,标题:%sn,D1-title); fprintf(fp,日记内

16、容:n%sn,D1-content); fclose(fp); return 0; /* 14 *打开普通文本文件*/int Open_File(char FileName) FILE *fp; fp=fopen(FileName,r); / 以只读的方式打开文件,将文件指针赋给fp if(fp=NULL) printf (n 无法打开帮助文件); return 0; while(feof(fp)=0) / 将文件中的字符读入 printf(%c,fgetc(fp); fclose(fp); return 1; /* 15 *写新的日记*/int Write_Diary(Diary *D1)

17、int temp; Diary *p=NULL; p=Init_Diary(p); p=(Diary *)malloc(sizeof(Diary); printf(nn 请输入日期(2012-12-12): ); scanf(%s,&p-date); printf(n 请输入标题: ); scanf(%s,&p-title); printf(n 请开始写日记:nn ); scanf(%s,&p-content); printf(n 请为该日记写关键字: ); scanf(%s,&p-keyword); p-tag=0; p-nextd=D1-nextd; D1-nextd=p; printf(

18、n n); printf( 是否要以文件方式保存日记? 1是 0否 ); printf(n n); scanf(%d,&temp); if(temp=1) Save_Diary(p); return 1; /* 16 *日记保存*/int Save_Diary(Diary *D1) FILE *fp; char FileName40,postfix6=.txt0; printf( 请输入文件路径及文件名:); scanf(%s,FileName); if(fp=fopen(FileName,w+)=NULL) printf( 打开文件失败!); return 0; fprintf(fp, 日期

19、: %sn,D1-date); fprintf(fp, 标题: %sn,D1-title); fprintf(fp, 关键字: %sn,D1-keyword); fprintf(fp, 正文如下:n %sn,D1-content); fclose(fp); printf( 日记文件保存成功!); return 1;/* 17 *打开并导入日记文件*/Diary *Open_DiaryFile(Diary *D1,char FileName) FILE *fp; Diary *p=NULL; if(fp=fopen(FileName,r)=NULL) printf( 文件打开失败); retur

20、n NULL; else p=(Diary *)malloc(sizeof(Diary); if(p=NULL) printf( 日记创建失败); return NULL; fscanf(fp, 日期: %sn,p-date); fscanf(fp, 标题: %sn,p-title); fscanf(fp, 关键字: %sn,p-keyword); fscanf(fp, 正文如下:n %sn,p-content); p-tag=0; p-nextd=D1-nextd; D1-nextd=p; fclose(fp); return p; /* 18 *日记操作*/int Diary_Operat

21、ion(User *U2,Diary *D1) char tempch=y; int choose2; char FileName40; Diary *p=NULL; while(tempch=Y|tempch=y) system(cls); Print_Menu2(&choose2); switch(choose2) case 0: return 0; case 1: Write_Diary(D1); getch(); break; case 2: printf(n 请输入文件路径及文件名:); scanf(%s,FileName); p=Open_DiaryFile(D1,FileName

22、); if(p!=NULL) Open_Diary(p); getch(); break; case 3: if(Search_Diary(D1)=1) tempch=y; break; /打开帮助文件 case 4: tempch=n; break; return 1; /* 19 *进入菜单并选择操作*/ void Print_Menu1(int *choose1) printf(n 用户管理 n); printf(n); printf( 1.用户登录 2.注册用户 3.保存当前信息 4.退出程序 n); printf(n); printf(n 请选择操作: ); scanf(%d,cho

23、ose1); rewind(stdin); /*清空键盘缓冲区里的无用字符*/ /* 20*进入日记菜单并选择操作*/ void Print_Menu2(int *choose2) printf(n 日记操作 n); printf(n); printf( 1.写日记 2.导入日记 3.查阅与删除 4.返回上层 n); printf(n); printf(n 请选择操作: ); scanf(%d,choose2); rewind(stdin); /*清空键盘缓冲区里的无用字符*/* 21 *进入日记查阅菜单并选择操作*/ void Print_Menu3(int *choose3) printf(n 日记查阅与删除 n); printf(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1