日记管理系统cWord文档格式.docx
- 文档编号:22323328
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:25
- 大小:19.81KB
日记管理系统cWord文档格式.docx
《日记管理系统cWord文档格式.docx》由会员分享,可在线阅读,更多相关《日记管理系统cWord文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
//日记管理菜单函数,temp记录是否为自己的日记
User*Diary_Create(User*u,inttemp);
//写日记
Diary*Xuanze_Sort(Diary*head,intnum);
//按日期选择排序
User*Diary_Delete(User*u,inttemp);
//删除日记
voidDiary_Search_Menu(Diary*head,intnum);
//查看日记菜单
voidDiary_Search_by_Orde(Diary*head,intnum);
//按顺序查找
voidDiary_Search_by_Keyword(Diary*head);
//按关键字查找
voidDiary_Search_by_Date(Diary*head);
//按日期查找
User*Read_File();
//读取文件
voidSave_File(User*head);
//保存文件
/*********************主函数*********************/
intmain()
User*head;
head=User_init();
User_Menu(head);
return0;
}
/*********************初始化函数*********************/
User*User_init()//初始化
returnNULL;
Diary*Diary_init()
/*********************用户菜单函数*********************/
voidUser_Menu(User*head)
intchioce=1;
printf("
\n欢迎进入日记管理系统\n"
);
\n按任一键进入主菜单......"
getch();
head=Read_File();
//读取文件
while(chioce)
{
system("
cls"
---------------------------------------------\n"
|用户信息管理|\n"
|1.添加用户信息|\n"
|2.用户登录|\n"
|3.更改用户信息|\n"
|4.删除用户|\n"
|5.保存用户信息|\n"
|0.退出该系统|\n"
输入你的选择(1~8):
\n"
scanf("
%d"
&
chioce);
switch(chioce)
case1:
head=User_Add(head);
break;
case2:
head=User_Login(head);
case3:
head=User_Change(head);
case4:
head=User_Delete(head);
case5:
Save_File(head);
case0:
exit(0);
default:
没有该选项!
}
/*********************添加用户*********************/
User*User_Add(User*head)
User*p,*q;
intflag;
chartemp_password[20];
do
p=(User*)malloc(U_LEN);
//申请内存
q=head;
A:
\n\t输入用户名:
\t"
%s"
p->
name);
while(q!
=NULL)//判断该用户是否存在
if(strcmp(p->
name,q->
name)==0)
\n\n该用户已存在,请重新输入。
。
"
gotoA;
q=q->
next;
B:
printf("
\n\t请输入密码:
//输入密码并密码加密
password);
\n\t请再次输入密码:
temp_password);
if(strcmp(temp_password,p->
password)!
=0)
\n\t密码不匹配!
\n\t\t\t请重新输入.....\n\n"
gotoB;
p->
elem=Diary_init();
num=0;
next=head;
//进行前插
head=p;
\n\t创建用户成功!
\n\t\t\t继续添加用户?
是
(1)/否(0)"
flag);
}while(flag!
=0);
return(head);
/*********************用户登录*********************/
User*User_Login(User*head)
User*p;
chartemp_name[20],temp_password[20];
temp_name);
\n\t输入密码:
p=head;
while(p!
=NULL)
if(strcmp(p->
name,temp_name)==0&
&
strcmp(p->
password,temp_password)==0)//寻找符合条件的用户
break;
p=p->
if(p!
=NULL)//存在符合条件的用户
\n\t\t\t登陆成功!
PAUSE"
B:
p->
elem=User_Chioce(head,p);
//进入用户选择菜单
printf("
\n\n\t是
(1)否(0)继续查看其他用户日记?
scanf("
if(flag==1)
gotoB;
else
return(head);
else//不存在符合条件的用户
\n\t该用户不存在或密码错误\n"
\t是
(1)否(0)继续登录?
if(flag==1)
else
return(head);
/*********************更改用户信息*********************/
User*User_Change(User*head)
charpassword[20],temp_password[20],temp_name[20],c;
\n\t输入要更改用户信息的用户名:
\n\t输入该用户密码:
while(p!
=NULL)//寻找符合条件的用户
name,temp_name)==0&
password,temp_password)==0)break;
\n\t输入新的用户名:
\n\t请输入新密码:
password);
\n\t请再次输入:
if(strcmp(password,temp_password)!
请重新输入.....\n\n"
\n是否要更改该用户信息,输入Y更改,N则退出?
//确认是否更改
for(;
;
)
%c"
c);
if(c=='
n'
||c=='
N'
)break;
y'
Y'
strcpy(p->
name,temp_name);
password,temp_password);
\n用户信息已被更改\n"
{//不存在符合条件的用户
\n用户%s不存在\n"
/*********************删除用户*********************/
User*User_Delete(User*head)
User*p1,*p2;
chartemp_password[20],temp_name[20],c;
\n\t输入要删除的用户名:
p1=p2=head;
while(p1!
if(strcmp(p1->
strcmp(p1->
password,temp_password)==0)
p2=p1;
p1=p1->
if(p1!
\n该用户为:
\t%s"
p1->
\n是否要删除,输入Y删除,N则退出?
//确认是否删除
if(p1==head)
head=p1->
p2->
next=p1->
\n用户%s以被删除\n"
别忘了保存.\n"
/*********************用户选择*********************/
Diary*User_Chioce(User*head,User*u)
inttemp;
系统用户有:
//列出系统的所有用户的用户名
%s\n"
q=head;
输入您要查看的日记所属的用户名:
=NULL)//寻找符合条件的用户
if(strcmp(temp_name,q->
if(q==NULL)//不存在符合条件的用户
不存在该用户,重新输入!
!
else//存在符合条件的用户
if(q->
name==u->
name)//查看自己日记时
temp=1;
else//查看他人日记时
temp=0;
q->
elem=Diary_Menu(q,temp);
return(q->
elem);
/*********************日记菜单函数*********************/
Diary*Diary_Menu(User*u,inttemp)
charflag='
0'
while
(1)
-----------------------------------------\n"
|日记管理|\n"
|1.写日记|\n"
|2.删除日记|\n"
|3.查看日记|\n"
输入你的选择(1~3):
flag=getche();
switch(flag)
case'
1'
:
u=Diary_Create(u,temp);
2'
u=Diary_Delete(u,temp);
3'
Diary_Search_Menu(u->
elem,u->
num);
getchar();
\n\n\t是否继续进行该用户日记操作?
(y/n)"
if(getchar()=='
||getchar()=='
return(u->
/*********************写新日记*********************/
User*Diary_Create(User*u,inttemp)
Diary*p=NULL;
if(temp==0)//日记为他人的时候,进行密码输入与确认
\n\n\t这是%s的日记,不属于您,请输入该用户的密码:
u->
if(strcmp(u->
password,temp_password)!
\n\t密码错误,无权写入!
是
(1)否(0)继续?
if(flag==0)
return(u);
p=(Diary*)malloc(D_LEN);
\n\t输入天气:
weather);
\n\t输入日期(如2010-01-01):
date);
\n\t输入标题:
title);
\n\t输入关键字:
keyword);
\n\t内容:
content);
next=u->
elem;
u->
elem=p;
num++;
//日记数记录
\n写下一篇日记?
是
(1)否(0)"
}while(flag);
elem=Xuanze_Sort(u->
/*********************按日期选择排序*********************/
Diary*Xuanze_Sort(Diary*head,intnum)
inti;
Diary*p,*p1,*p2,*temp,*flag;
p=p2=head;
//记录链表的头
for(i=0;
i<
num;
i++)
temp=p1=head;
//记录要查找链表的开始点
while(p1->
next!
=NULL)//找到要查找链表段的最小节点
if(strcmp(temp->
date,p1->
next->
date)>
0)
flag=p1;
temp=p1->
if(i==0)//记录第一次找到的最小节点
p=p2=temp;
if(temp==head)//找出的小数等于寻找开头的那个数时
p2=head;
head=head->
else//找出的小数不是寻找开头的那个数时
flag->
next=temp->
next=temp;
temp->
p2=p2->
return(p);
/*********************删除日记*********************/
User*Diary_Delete(User*u,inttemp)
chartemp_date[20],temp_password[20];
intflag,n;
Diary*p,*p1,*p2;
p=p1=p2=u->
if(u->
num==0)
\n\t该用户没有日记"
\n\t用户%s的日记有:
//列出所在用户的所有日记
%20s%20s\n\n\n"
"
关键字"
日期"
%20s%20s\n"
title,p->
输入你要删除的日记的日期:
temp_date);
while(strcmp(temp_date,p1->
date)&
p1!
=NULL)//查找符合条件的记录
if(strcmp(temp_date,p1->
date)==0)//存在符合条件的记录时
if(temp==0)//他人日记时,进行密码输入与确认
您要删的是%s的日记,不属于您,请输入该用户的密码:
password,temp_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 日记 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)