精品文档---下载后可任意编辑实 验 报 告专 业 计算机科学与技术 班 级 计算机 1001 座 号 姓 名 日 期 2024/5/14 福建工程学院计算机与信息科学系实验报告2024–2024 学年第一 学期 任课老师:章静实验题目日记管理系统的开发实验时间实验开始日期:2024\05\03 报告提交日期:2024\05\14实验目的、要求一、实验题目:设计一个简单有用个人日记管理系统。二、实验要求1.该实验的课内学时是 4 个课时。2.程序完成后应该完成如下基本功能:1)用自定义日记的存储结构,每篇日记至少包含日期,内容等字段;2)使用者必须输入密码;3)写日记与保存功能;4)日记查阅:按日期查看,按关键字查看,按顺序查看功能(从某一篇开始)3.在完成上述基本功能的前提下,有能力的同学可以完成如下加强功能:1)实现日记的永久存储。2)对保存的密码进行变换,以免泄密。3)允许多人使用。4)在程序的提示语言清楚明确,界面美观并且适用。实验设计内容精品文档---下载后可任意编辑(1)实验设计的数据结构/*定义日记结点类型*/typedef struct Diary{ char date[15]; /*日期*/ char title[20]; /*日记标题*/ int flag; /*推断日记是否符合查阅要求,是为 0,否为-1*/ struct Diary *next;}Diary;/*定义用户结点类型*/typedef struct User{ char name[20]; /*用户名*/ char password[20];/*登录密码*/ int count; /*该用户拥有的日志的个数*/ Diary *first; /*指向用户拥有的日记链表的表头*/ struct User *next;}*Us,User;最后的用户信息以及在该用户目录下的日志信息以二进制的形式存在文件中。(2)总体函数模块结构图:日志管理系统用户登陆和注册写入日记日记查询日记删除用户、日记信息保存按顺序查询按日期查询根据关键字查询精品文档---下载后可任意编辑(3)重点函数分析1.初始化函数:程序运行会运行此函数,讲已有的用户信息和她们的日志信息读入链表中。Us Init(){ FILE *fp1,*fp2; Us L=NULL; User *p; Diary *s; if ((fp1=fopen("Userlist.txt","r+"))==NULL) return L; while(!feof(fp1)) { p=(User *)malloc(sizeof(User)); if(fread(p,sizeof(User),1,fp1)!=1) break; //从一个流中读取数据(接受数据的指针,单个元素的大小,元素个数,提供数据的文件指针) p->first=NULL; //读取系统已有的用户信息 p->next=L; L=p; chdir(p->name); //把相应用户目录作为...