用户登录系统的模拟课案.docx
- 文档编号:9992869
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:12
- 大小:327.42KB
用户登录系统的模拟课案.docx
《用户登录系统的模拟课案.docx》由会员分享,可在线阅读,更多相关《用户登录系统的模拟课案.docx(12页珍藏版)》请在冰豆网上搜索。
用户登录系统的模拟课案
大类基础课程大型实验
2015/2016
(1)
实验题目用户登录系统的模拟
学生姓名胡伟俊
学生学号************
学生班级计算机网工1401
任课教师张晖
提交日期2016-01-14
计算机科学与技术学院
用户登录系统的模拟实验报告
目录:
一、运行环境
二、实验内容分析
三、基本数据结构
四、实验基本概况
五、调试分析
六、测试结果
七、总结
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
一、运行环境
机房计费管理系统在VisualStudio2013平台下开发,操作系统:
Windows8.0。
硬件环境:
(备注:
可以查看“计算机”属性)
处理器:
Intel(R)Core(TM)i5-4200MCPU@2.80GHz2.80GHz
内存:
4.00GB
系统类型:
64位操作系统
二、实验内容分析
【问题描述】在登录服务器系统时,都需要验证用户名和密码,如telnet远程登录服务器。
用户输入用户名和密码后,服务器程序会首先验证用户信息的合法性。
由于用户信息的验证频率很高,系统有必要有效地组织这些用户信息,从而快速查找和验证用户。
另外,系统也会经常会添加新用户、删除老用户和更新用户密码等操作,因此,系统必须采用动态结构,在添加、删除或更新后,依然能保证验证过程的快速。
请采用相应的数据结构模拟用户登录系统,其功能要求包括用户登录、用户密码更新、用户添加和用户删除等。
【基本要求】
1.要求自己编程实现二叉树结构及其相关功能,以存储用户信息,不允许使用标准模板类的二叉树结构和函数。
同时要求根据二叉树的变化情况,进行相应的平衡操作,即AVL平衡树操作,四种平衡操作都必须考虑。
测试时,各种情况都需要测试,并附上测试截图;
2.要求采用类的设计思路,不允许出现类以外的函数定义,但允许友元函数。
主函数中只能出现类的成员函数的调用,不允许出现对其它函数的调用。
3.要求采用多文件方式:
.h文件存储类的声明,.cpp文件存储类的实现,主函数main存储在另外一个单独的cpp文件中。
如果采用类模板,则类的声明和实现都放在.h文件中。
4.不强制要求采用类模板,也不要求采用可视化窗口;要求源程序中有相应注释;
5.要求测试例子要比较详尽,各种极限情况也要考虑到,测试的输出信息要详细易懂,表明各个功能的执行正确;
6.要求采用VisualC++6.0及以上版本进行调试;
三、基本数据结构:
采用二叉平衡查找树(AVL),采用了模板类,以用户名(IP)作为比较的关键词进行插入。
二叉平衡查找树是在二叉搜索树(BST)的基础上进行了优化,使得树基本达到平衡。
定义内部类Node来存储AVL树的节点信息。
classTreeNode
{
public:
TreeNode():
lson(NULL),rson(NULL),freq
(1),hgt(0){}
Tdata;//值
inthgt;//以此节点为根的树的高度
unsignedintfreq;//频率
TreeNode*lson;//指向左儿子的地址
TreeNode*rson;//指向右儿子的地址
};
四、实验基本概况
五、
输入的形式与输入值的范围 :
用户名与密码均采用string形
输出的形式 :
界面输出选择框
程序所能达到的功能:
模拟用户登入系统实现用户注册、删除、修改密码以及信息的本地存储和读取。
五、调试分析
讨论分析调试过程中的技术问题以及具体的解决方法
① 问题:
AVL树元素的添加删除需要修改路径上的所有节点的平衡因子
方法:
引入一个栈类(Stack)用于将搜索目的节点路径上的节点依次压入栈中
② 问题:
用户名与密码可能是数字也可能是字母亦可能是数字与字母的组合
方法:
统一采用string
五、技术难点分析
技术难点:
实现二叉树的平衡,即树的旋转
二叉树的旋转共四种,分别为左旋、右旋、左右旋、右左旋转,对应情况如下:
左旋
右旋
左右旋
右左旋
六、测试结果
用户的注册、登录、删除、修改密码以及信息的本地存储和读取
已存入以下用户信息(用户信息储存在程序目录下user.txt文件中)。
① 添加用户
选择:
1
输入用户名:
jin
输入密码:
123456
② 删除用户
选择:
2
输入用户名:
jin
输入密码:
123456
是否确定删除:
Yes
③ 修改用户名
选择:
3
输入原有用户名:
huweijun
输入密码:
201314
输入新的用户名:
jindada
④ 修改 密码
选择:
4
输入用户名:
jindada
输入密码:
201314
输入新密码:
123456
⑤打印二叉树
选择:
5
用户删除时验证密码错误提示删除失败
修改用户名是用户不存在
修改密码时密码错误
七、总结:
与大一不同,这一次的大型实验是我一个人独立完成的。
中间也遇到了些许困难,但通过自己的钻研以及查阅了相关的资料成功的解决了问题。
这个实验中最难的部分在于平衡旋转,平衡旋转使用在新建用户和删除用户上,期中尤为困难的是删除,这个环节中还需引入栈用于存储搜索目的用户过程中路径上的节点指针,从而达到从删除节点开始往根节点进行调整的操作。
通过这次大型实验我的编码能力得到了训练,熟悉了平衡二叉树的建立,也锻炼了算法的分析能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用户 登录 系统 模拟