实验报告
2011 – 2012 学年第 2 学期 任课老师 课程名称 实验题目 实验目的、要求 班级 网络1002 座号 姓名 日记管理系统应用 实验时间 实验开始日期: 2012.4.20 报告提交日期: 2012.4.30
2.程序完成后应该完成如下基本功能: 1)用自定义日记的存储结构,每篇日记至少包含日期,内容等字段; 2)使用者必须输入密码; 3)写日记与保存功能; 4)日记查阅:按日期查看,按关键字查看,按顺序查看功能(从某一篇开始) 3.在完成上述基本功能的前提下,有能力的同学可以完成如下加强功能: 1)实现日记的永久存储。 2)对保存的密码进行变换,以免泄密。 3)允许多人使用。 4)在程序的提示语言清晰明确,界面美观并且适用。 实验步骤与内容 (1)实验设计的数据结构 typedef struct DIARY { char date[20]; char weather[10]; char info[2000]; struct DIARY *next; }DIY; typedef struct use { char user[20]; char password[20]; struct DIARY *DIARY; struct use*next; }US; (2)层次图 1
日志管理系统主界面新用户注册老用户登录退出系统写日记查阅日记修改用户密码返回上级菜单根据写日记日期查阅根据内容的关键字查阅按写日记的顺序查阅返回上级菜单 (3)各个函数分析 1.主函数 Int main() { Char choice=’1’; US*head; 申请空间 head->next=NULL; head->DIARY=NULL; 把内容从文件中读出; Do{ printflist(); 选择操作; }while(choice!=’0’); Return 0; } 2. 新用户注册 new_user( )
2
{ 定义变量*p,*q; 给P申请空间; p->next=NULL; 给P用户的日记文件申请空间; p->DIARY->next=NULL; q=head; while(判断q是否为空) { 输入新用户的注册名; 判断该用户名是否已存在; 若已存在,则注册失败,退出注册; } 否则,用户输入密码; q=head; 把新注册的用户插入到链表末端; 写入文件wusefile(); } 3.老用户登录old_user ( { 定义变量*p,choice,user,password; q=head->next; 输入老用户的用户名和密码; 读取用户文件 for(;q!=NULL;q=q->next) { 判断是否找到该用户; } If(q==null) 该用户还未注册 Else{ 进入日记系统; 修改密码功能; } } 4.写日记 w_diary() { 定义变量*p,*q; q=head; 给P申请空间; p->next=NULL; 写日记;
3
While() { } 把刚写的这篇日记放到日记链表的末端; 把日记写入文件wdiaryfile(); } 5.查阅已写的日记 r_diary() { 定义变量*p,*q,day,information,choice,i; 从文件中读出日记内容; Do{ p=head->next; 进入选择界面; 选择要实现的功能; switch(choice) { Case1:根据日期查阅; Break; Case2:根据关键字眼查阅; Break; Case3:按写日记的顺序查阅; Break; }while(choice!=’0’); } 试验过程记录 在实验中错误还是有很多的,但在后来的一步一步排错,还是慢慢的吧实验做出来了。 实验结果记录以及与预期结果比较以及分析 4
首先就是进入日记管理系统,会有登入,注册等选项。 当登入后就有写日记,查看日记选择。 查看日记也有好几种查看的方式。 总结以及心得体会 这个实验是所有实验中最难的,需要掌握的知识多,运行很久也会出错,最后是在同学的帮助下才完成的。虽然比较难,但在另一方面也更好锻炼了我们对c语言的操作能力,提高了自己的水平。 指导老师评阅意见
5
指导老师: 年 月 日 填写内容时,可把表格扩大。实验的源程序代码(要有注释)附在表后。
6
因篇幅问题不能全部显示,请点此查看更多更全内容