欢迎来到天天文库
浏览记录
ID:47518062
大小:1.65 MB
页数:41页
时间:2020-01-12
《数据结构大型实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构大型实验——用户登录系统数据结构大型实验——用户登录系统姓名:***学号:***班级:***浙江工业大学计算机学院完成时间:2014.12.3141数据结构大型实验——用户登录系统一、实验内容分析1.实验目的【问题描述】在登录服务器系统时,都需要验证用户名和密码,如telnet远程登录服务器。用户输入用户名和密码后,服务器程序会首先验证用户信息的合法性。由于用户信息的验证频率很高,系统有必要有效地组织这些用户信息,从而快速查找和验证用户。另外,系统也会经常会添加新用户、删除老用户和更新用户密码等操作,因此,系统必须采用动态
2、结构,在添加、删除或更新后,依然能保证验证过程的快速。请采用相应的数据结构模拟用户登录系统,其功能要求包括用户登录、用户密码更新、用户添加和用户删除等。【基本要求】1.要求自己编程实现二叉树结构及其相关功能,以存储用户信息,不允许使用标准模板类的二叉树结构和函数。同时要求根据二叉树的变化情况,进行相应的平衡操作,即AVL平衡树操作,四种平衡操作都必须考虑。测试时,各种情况都需要测试,并附上测试截图;2.要求采用类的设计思路,不允许出现类以外的函数定义,但允许友元函数。主函数中只能出现类的成员函数的调用,不允许出现对其它函数的调用。
3、3.要求采用多文件方式:.h文件存储类的声明,.cpp文件存储类的实现,主函数main存储在另外一个单独的cpp文件中。如果采用类模板,则类的声明和实现都放在.h文件中。4.要求源程序中有相应注释;5.不强制要求采用类模板,也不要求采用可视化窗口;6.要求测试例子要比较详尽,各种极限情况也要考虑到,测试的输出信息要详细易懂,表明各个功能的执行正确;7.要求采用VisualC++6.0及以上版本进行调试;2.实验中的基本数据结构使用了平衡树(AVL)来存储用户信息,通过在插入和删除节点时左平衡和右平衡操作能使树始终保持平衡。以下为实
4、验中涉及到的类。类名称成员变量及成员函数UserNode(用户信息类)private:stringname;//用户名stringpassword;//密码inth;//以该节点为根的子树高度intbf;//平衡因子:左树高度减去右树高度UserNode*left;//指向左子树的指针UserNode*right;//指向右子树的指针UserNode*parent;//指向父亲节点的指针public:friendclassAVL;UserNode();UserNode(stringn="",stringp="");41数据结构大型
5、实验——用户登录系统intLh();//左子树高度intRh();//右子树高度voidgeth();//更新以当前节点为根结点的子树高度voidgetbf();//更新当前节点的平衡因子stringgetpswd();//获取密码voidsetpswd(string);//修改密码friendvoidsave(UserNode*,ostream&);//输出数据AVL(功能类)private:UserNode*root;public:AVL():root(NULL){}//构造函数boolempty()const;//判空Use
6、rNode*find(stringitem);//查找节点voidLRotate(UserNode*,UserNode*);//左旋voidRRotate(UserNode*,UserNode*);//右旋voidLRRotate(UserNode*,UserNode*,UserNode*);//左右旋voidRLRotate(UserNode*,UserNode*,UserNode*);//右左旋voidupdate(UserNode*);//调整平衡voidinsert(string,string);//插入节点boolDel
7、ete(UserNode*);//删除节点voidprintNode(UserNode*,int);//打印一个节点voidprint();//打印树friendistream&operator>>(istream&,AVL&);//输入文件friendostream&operator<<(ostream&,AVL&);//输出文件Menu(界面菜单类)private:AVLuser;public:Menu();//构造函数voidmainmenu();//主菜单voidshow();//查看所有用户voidload();//登陆
8、voidregist();//注册voidChange(UserNode*);//修改密码voidDel(UserNode*);//删除用户voidclose();//将用户保存到txt中3.程序流程图41数据结构大型实验——用户登录系统主菜单登陆
此文档下载收益归作者所有