1 / 25
文档名称:

用户登录系统.doc

格式:doc   大小:285KB   页数:25
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用户登录系统.doc

上传人:xiang1982071 2019/9/26 文件大小:285 KB

下载得到文件列表

用户登录系统.doc

文档介绍

文档介绍::.. 数据结构大型实验2015/2016(1)实验题目用户登录系统学生姓名____学生学号主要工作树的结构、框架编写负责人学生班级任课教师提交日期 计算机科学与技术学院矮化砧嫁接的苹果树树冠体积小于乔化砧嫁接的苹果树树冠体积,矮化砧苹果树单株产量低于乔化砧苹果树,所以,:【问题描述】在登录服务器系统时,都需要验证用户名和密码,远程登录服务器。用户输入用户名和密码后,服务器程序会首先验证用户信息的合法性。由于用户信息的验证频率很高,系统有必要有效地组织这些用户信息,从而快速查找和验证用户。另外,系统也会经常会添加新用户、删除老用户和更新用户密码等操作,因此,系统必须采用动态结构,在添加、删除或更新后,依然能保证验证过程的快速。请采用相应的数据结构模拟用户登录系统,其功能要求包括用户登录、用户密码更新、用户添加和用户删除等。【基本要求】,以存储用户信息,不允许使用标准模板类的二叉树结构和函数。同时要求根据二叉树的变化情况,进行相应的平衡操作,即AVL平衡树操作,四种平衡操作都必须考虑。测试时,各种情况都需要测试,并附上测试截图;,不允许出现类以外的函数定义,但允许友元函数。主函数中只能出现类的成员函数的调用,不允许出现对其它函数的调用。:.h文件存储类的声明,.cpp文件存储类的实现,主函数main存储在另外一个单独的cpp文件中。如果采用类模板,。;,也不要求采用可视化窗口;,各种极限情况也要考虑到,测试的输出信息要详细易懂,表明各个功能的执行正确;++;::采用平衡二叉查找树(AVL),以用户名(IP)作为比较的关键词进行插入。平衡二叉查找树是在二叉搜索树(BST)的基础上进行了优化,使得树基本达到平衡。定义内部类userNode来存储AVL树的节点信息。:要创建一颗包含用户名和用户密码的二叉树,要能适应频繁的查找,因为每个用户名是唯一的,将用户名(string类型)作为AVL树的比较参数,这样就可以实现快速的插入、删除和查找,重定义userNode类的比较函数。AVL树是用模板类实现的,这样就可以直接比较两个用户类,方便了很多。://节点的类classuserNode{private: stringname; stringpassword; shortintheight;public: userNode*left; userNode*right; userNode(conststring&name,conststring&password); userNode(constuserNode&temp); voidsetName(conststring&name); voidsetPassword(conststring&password); stringgetName(); stringgetPassword(); intgetHeight(); voidchangeHeight(constintheight);//改变树的高度 boolcheckName(conststring&name);};//树的类classtree{private: userNode*root; public: tree(); ~tree(); voidinsert_node(userNode*&t,userNode&temp); voidinsert_node(userNode&temp);//新建一个节点 voidremove(userNode*&r,userNode*&temp); voidremove(userNode*&temp);//删除一个节点 voidclear(userNode*t); voidclear(); voidprint(); voidprint(intindex,userNode*r);//输出一棵树 voidPrint(); voidPrint(ofstream&ofile,userNode*&r);//写入文件 voidrotateL(userNode*&r);//左旋 voidrotateR(u