C语言+数据结构课程设计:日记管理系统实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
福建工程学院计算机与信息科学系实验报告
‘夏热’
日记删除操作:
/* 日记管理系统*/
#include
#include
#include
#include
#define ESC 27 //退出键
#define Enter 13 //回车键
#define BackSpace 8
/*定义日记结构体*/
typedef struct Link1
{ char date[10]; //日期格式2009-12-30
char title[40]; //标题
char content[1000]; //日记内容
char keyword[20]; //关键字,可用空格隔开
int tag; //用来标记该日记是否满足查阅要求,是为0,否为-1,初始值为0;
struct Link1 *nextd;
} Diary;
/*定义用户结构体*/
typedef struct Link2
{ char username[25]; //用户名
char password[16]; //登录密码
Diary *diarys_list; //该用户拥有的日记链表
struct Link2 *nextu;
} User;
/* 函数声明*/
int Change_Password(User *U2); /*更改用户密码*/
int Create_NewUser(User *U1); /*创建用户链表*/
int Delete_Diary(Diary *D); /*删除日记*/
int Diary_Operation(User *U2,Diary *D1); /*日记操作*/
int Encrypt_Password(char password[]);/* 将登录口令加密*/
int Enter_Password(char password[]);/* 获取登录口令*/
User *Find_User(User *U1,char username[]);/*查找用户*/
Diary *Init_Diary(Diary *D1);/*初始化日记表*/
void Initial_Tag(Diary *D1,int tag);
User *Init_User(User *U1);/*初始化用户表*/
int Input_Choose();
int Open_Diary(Diary *D1);
Diary *Open_DiaryFile(Diary *D1,char FileName[]);/* 打开并导入日记文件*/
int Printf_DiaryList(Diary *D1);/*显示日记列表*/
void Print_Menu1(int *choose1);/*进入菜单*/
void Print_Menu2(int *choose2);/*进入日记菜单*/
void Print_Menu3(int *choose3);/*进入日记查阅菜单*/
int Printf_users(User *U1);/*导入用户信息*/
int Save_Diary(Diary *D1);/*保存日记*/
int Save_Users_info(User *U1);/*保存用户信息*/
int Search_Diary(Diary *D1);/*日记查询*/
Diary *Filter_word(Diary *D1,char cmpword[],int n);/*按标题、日期、关键字查阅*/ User *User_Login(User *U1);/* 登录个人用户*/
int Write_Diary(Diary *D1);/* 写新日记*/
/* 更改用户密码*/
int Change_Password(User *U2)
{
char oldpw[16],newpw1[16],newpw2[16];
do
{
printf("\n\t请输入旧密码:\t");
Enter_Password(oldpw); //调用输入密码函数
Encrypt_Password(oldpw); //调用对密码加密函数
if(strcmp(U2->password,oldpw)!=0) //如果输入的密码与各个用户中的密码不相等
printf("\n\t旧密码输入错误!....\n\n");
}while(strcmp(U2->password,oldpw)!=0);//一直到输入的密码与用户密码相等的时候才退出循环
do
{
printf("\n\t请输入新密码:\t");
Enter_Password(newpw1);
printf("\n\t请确认新密码:\t");
Enter_Password(newpw2);
if(strcmp(newpw1,newpw2)!=0)
printf("\n\t密码确认错误!....\n\n");
}while(strcmp(newpw1,newpw2)!=0); //到输入的新密码与确认的新密码一样的时候退出循环
Encrypt_Password(newpw1); //对新密码进行加密
strcpy(U2->password,newpw1); //讲新密码复制给旧密码,就把旧密码覆盖掉了,密码就修改完毕
printf("\n\n\t密码修改成功!......");
return 1;
}
/* 创建用户链表*/