当前位置:文档之家› 登陆注册系统模拟(源代码)

登陆注册系统模拟(源代码)

登陆注册系统模拟(源代码)
登陆注册系统模拟(源代码)

登陆注册系统模拟(源代码)

#include

#include

#include

#include

#define Max 71

typedef struct

{

char name[20];

char pw[20];

int flag;

}USER;

USER user[Max];

char Admin[20]="administrator";

int count;

int chance;

void menu();

void User_admin(char name[],char pw[]);

void User_common(char name[],char pw[]);

void Saved();

int flag;

void Inithtable()

{

for(int i=0;i

user[i].flag=0;

}

void password(char a[])//密码输入

{

int i=0;

char c;

while((c=getch())!=13)

{

if(c==8 && i==0);

else if(c==8 && i>0)

{

i--;

printf("%c%c%c",'\b','\0','\b');

else

{

a[i++]=c;

printf("*");

}

}

a[i]='\0';

printf("\n");

}

void jiami(char pw[],char a[])//加密

{

char c,*p;

p=pw;

c=*p;

int i=0;

while(c!='\0')

{

if(c>='0' && c<='9')//数字

{

c=c+5;

if(c>'9')

c=c-10;

}

else

{

c=c+5;

if(c>'Z' && c<='Z'+5 || c>'z')

c=c-26;

}

a[i++]=c;

p++;

c=*p;

}

a[i]='\0';

}

void jiemi(char pw[],char b[])//解密

{

char c,*p;

p=pw;

c=*p;

while(c!='\0')

{

if(c>='0' && c<='9')

{

c=c-5;

if(c<'0')

c=c+10;

}

else

{

c=c-5;

if(c<'A' || c<'a' && c>='a'-5)

c=c+26;

}

b[i++]=c;

p++;

c=*p;

}

b[i]='\0';

}

int hash(int key)//构造哈希表

{

int H=key%Max;

while(user[H].flag==1)

H=(H+1)%Max;

return H;

}

int hashsrch(char name[])//在哈希表中查找

{

int key=name[0]-'0';

int H=key%Max;

if(user[H].flag==0)

return -1;

else if(user[H].flag==1 && strcmp(user[H].name,name)==0)

return H;

else

{

while(user[H].flag==1 && strcmp(user[H].name,name)!=0 || user[H].flag==2) H=(H+1)%Max;

if(user[H].flag==0)

return -1;

else return H;

}

}

void Read()//将文件中的信息存入到哈希表中

{

Inithtable();

FILE *fp;

if((fp=fopen("info.txt","r"))==NULL)

{

printf("文件打开错误!\n");

exit(0);

}

while(!feof(fp))

{

char name[20],pwf[20],pw[20];

fscanf(fp,"%s%s",name,pwf);

jiemi(pwf,pw);

count++;

int key=name[0]-'0';

int H=hash(key);

strcpy(user[H].name,name);

strcpy(user[H].pw,pw);

user[H].flag=1;

}

fclose(fp);

}

void Search(char name[])//查找用户

{

int H=hashsrch(name);

if(user[H].flag==1)

{

if(H==-1)

printf("该用户不存在!\n");

else

printf("用户名:%s\t密码:%s\n",user[H].name,user[H].pw);

}

else

printf("该用户不存在!\n");

}

void Delete(char name[])//删除用户

{

if(strcmp(name,Admin)==0)

{

char name1[20];

printf("输入要删除的用户名:");

gets(name1);

int H=hashsrch(name1);

int a=hashsrch(Admin);

if(strcmp(name1,Admin)==0)

printf("不能删除管理员账号!\n");

else if(H!=-1)

{

char pw[20];

printf("请输入管理员密码:");

password(pw);

if(strcmp(user[a].pw,pw)==0)

{

user[H].flag=2;

count--;

Saved();

printf("用户信息删除成功!\n");

}

else

printf("密码错误,不能进行删除操作!\n");

}

else

printf("该用户不存在,不能进行删除操作!\n");

}

else

{

int H=hashsrch(name);

user[H].flag=2;

count--;

Saved();

printf("账户已注销!\n");

flag=0;

}

}

void Changepw(char name[],char pw[])//修改用户密码

{

char pw1[20],pw2[20],pw3[20];

int H=hashsrch(name);

printf("请输入当前用户的密码:");

password(pw1);

if(strcmp(pw1,pw)==0)

{

loop: printf("请输入新密码:");

password(pw2);

printf("再次输入新密码:");

password(pw3);

while(strcmp(pw2,pw3)!=0)

{

printf("两次输入的密码不一致!\n\n");

goto loop;

}

if(strcmp(pw,pw2)==0)

{

printf("新密码不能与旧密码一致!\n");

goto loop;

}

else

{

strcpy(user[H].pw,pw2);

Saved();

printf("密码修改成功,请重新登录!\n");

flag=0;

}

}

else printf("当前密码错误!\n");

}

void Saved()//保存到文件

{

FILE *fp;

char pw[20];

if((fp=fopen("info.txt","w"))==NULL)

{

printf("文件打开错误!\n");

exit(1);

}

for(int i=0;i

{

if(user[i].flag==1)

{

jiami(user[i].pw,pw);

fprintf(fp,"\n%s\t%s",user[i].name,pw);

}

}

if(fclose(fp))

{

printf("文件关闭错误!\n");

exit(1);

}

}

void Show()//显示所有用户

{

for(int i=0;i

{

if(user[i].flag==1)

printf("用户名:%s\t密码:%s\n",user[i].name,user[i].pw);

}

}

void User_admin(char name[],char pw[])//管理员操作界面

{

system("cls");

printf("********************************************\n");

printf("** 1-查找用户2-删除用户3-显示用户**\n** 4-修改密码5-用户数6-退出**");

printf("\n********************************************");

int choice;

loop:printf("\n请输入序号:");

scanf("%d",&choice);getchar();

switch(choice)

{

case 1:

{

char name[20];

printf("请输入要查找的用户名:");

gets(name);

Search(name);

}break;

case 2:Delete(name);break;

case 3:Show();break;

case 4:Changepw(name,pw);break;

case 5:printf("总共有%d个用户!\n",count);break;

case 6:flag=0;return;

default:

{

printf("请输入正确的序号!\n\n");

goto loop;

}

}

printf("回车键继续......");

getchar();

}

void User_common(char name[],char pw[])//普通用户操作界面{

system("cls");

int choice;

printf("%s,欢迎!\n",name);

printf("****************************************\n");

printf("** 1-修改密码2-注销账号3-退出**\n");

printf("****************************************"); loop:printf("\n请选择操作序号:");

scanf("%d",&choice);getchar();

switch(choice)

{

case 1:Changepw(name,pw);break;

case 2:Delete(name);break;

case 3:flag=0;return;

default:

{

printf("请输入正确的序号!\n\n");

goto loop;

}

}

printf("回车键继续......");

getchar();

}

void Landing()//登陆界面

{

chance=4;

char name[20],pw[20];

printf("用户名:");

gets(name);

loop:printf("密码:");

password(pw);

int H=hashsrch(name);

if(H!=-1)

{

if(strcmp(user[H].pw,pw)==0)

{

flag=1;

if(strcmp(name,Admin)==0)

while(flag)

User_admin(name,pw);

else

while(flag)

User_common(name,pw);

}

else

{

chance--;

if(chance)

{

printf("密码错误,还有%d次机会!\n",chance);

goto loop;

}

else

{

printf("登陆失败,请重新登录!\n");

printf("回车键继续......");

getchar();

}

}

}

else

{

printf("该用户不存在!\n");

printf("回车键继续......");

getchar();

}

}

void Register()//注册界面

{

if(count==Max)

{

printf("用户数已到最大值!\n\n");

menu();

return;

}

char name[20],pw1[20],pw2[20];

printf("用户名:");

gets(name);

loop:printf("请输入密码:");

password(pw1);

printf("再次输入密码:");

password(pw2);

while(strcmp(pw1,pw2)!=0)

{

printf("两次输入的密码不一致!\n\n");

goto loop;

}

if(hashsrch(name)!=-1)

printf("用户名已存在,请重新注册!");

else

{

int key=name[0]-'0';

int H=hash(key);

strcpy(user[H].name,name);

strcpy(user[H].pw,pw1);

user[H].flag=1;

count++;

Saved();

printf("注册成功,请从登陆界面登陆!");

}

printf("\n回车键继续......");

getchar();

}

void menu()//登陆注册菜单

{

system("cls");

printf("**********************************\n** 1-登陆2-注册3-退出**\n**********************************\n");

int choice;

printf("请选择操作序号:");

loop:scanf("%d",&choice);getchar();

switch(choice)

{

case 1:Landing();break;

case 2:Register();break;

case 3:exit(0);break;

default:

{

printf("请重新输入操作序号:");

goto loop;

}

}

}

void main()

{

Read();

while(1)

menu(); }

登录界面代码

在https://www.doczj.com/doc/af5041570.html,平台下用C#和Access实现用户登录界面的窗体应用程序 一直就想加个technology的类别,但却迟迟未能动笔.一来不得不承认直到现在,我在技术上还依然只是一个没怎么入门的菜鸟,二来技术本身也不是我的兴趣所在.但不管怎样,既然我现在还要攻读计算机专业的硕士学位,那么技术,总还是要学的. 需要说明的是,对于那些高手来说,这里的东西想必都是小菜一碟,不值一提.我写在这里,只是给自己的总结吧.另外我所写的东西,很多也是参考网络和书籍的,其实真正属于我自己的东西也不多.由于四处查找,具体的出处很多也已记不清了,而且在开源环境下也很难说某些代码就是谁的原创,所以这里虽然没有说明,但很多东西也都是参考他人的,在此先要对那些给了我帮助的书籍作者,网上的发贴人和回贴人表示感谢. 去年研一刚开学时,自己的实践能力还几乎为零.因为我心里清楚,自己本科的确是混过来的,计算机科学与技术的学士学位,我其实是不配去拿的.九月十号进实验室后,开始学习项目组里需要用到的C#,但单纯学习语言也没什么明确的目的性.实验室里和我同一导师本校保研的同学和我说起,他们大四下学期刚进实验室时,师兄就让他们先试着写一个类似QQ登录那样的一个用户登录程序.我自己没有任何经验,想也就像他们一样,从这里起步吧,于是在看C#的同时我就考虑怎么样去实现这样一个程序了. 我知道对于过来人来说,这样的一个程序实在是再简单不过了,但对于当时刚开始的我,着实费尽了不少周折.虽然后来基本实现了这样一个程序,但在数据库上还是有些问题.因此虽然当时也曾想过贴个technology类别的日志,但终究还是一直拖了下来. 前段时间通过同学的介绍,帮沈阳日报的一个朋友做了一个会员管理的软件.软件本身也极其简单,基本没有太多的技术含量,但在开发的过程中自己通过各种渠道去查找资料,也在各方面都学到了很多.所以这段经历对我还是很有意义的.而且自己在计算机专业学了四年有半后终于可以自己做出来一些可以应用到实际中的东西,也终于凭借自己的专业能力获得了一点回报,无论回报是多是少.嗯,是要鼓励一下自己的.也激励自己再接再厉! 此后我可能会把在这一软件中所学到的东西陆续总结一下到这里.而这一软件开发的第一个模块也就是用户登录模块.也就是我最初在尝试做的东西.好,说了这么多无关的话,现在言归正传,来看登录模块的具体实现. 由于用户登录模块的实现关键的一点就是要将用户的信息存储在数据库中,并在用户登录时到数据库中对信息进行查找和核对,所以首先要先建立一个数据库.实际上对于初学者来说,数据库的相关操作也正是实现本登录模块的难点所在.这也是当时我刚开始写这段程序时困扰我并困扰了我很久的地方.在数据量不是很大的情况下,可以就用微软Office组件里的Access数据库,比较方便.这里在D盘用Access建立一个数据库命名为db.mdb,并在数据库中建一个表,命名为users ,在表中建两个字段,命名为userName和userPassword,分别存储用户名和密码.然后在表中插入几条数据,用于登录界面的测试.下面是登录模块的开发. 在Visual Studio2005的C#开发环境下,新建一个Windows 应用程序的项目,将第一个窗体命名为Login,即作为用户登录窗体.在窗体上添加相应控件,设计效果如下:

登录界面代码(vs)

https://www.doczj.com/doc/af5041570.html,入门篇【项目实战】打造一个自己的相册(二)登录模块 2009年11月15日星期日 12:05 本文原创,转载请说明,本文地址: https://www.doczj.com/doc/af5041570.html,/44498/blog/item/59db5da17d24c28146106478.html 进行本次项目实战,需要有一定的C#基础知识,所以,在初期的几篇里面,我在文中尽可能的多贴图以进行示例,以后逐渐减少图片说明。 昨天已经介绍了流程和基本功能,今天简单的介绍一下用户登录模块的做法。 不要担心,非常简单。 打开Login.aspx页面,这是我们昨天设计的空白页面,用户登录,现在,我们来完善它的外观和功能。 简单的登录需要一个账号输入框,一个密码输入框,以及一个提交按钮;如图所示: 当然,喜欢用https://www.doczj.com/doc/af5041570.html,的标准控件库也行,喜欢用HTML组的控件也可以。 在输入密码的时候,都是以"*"号密文显示的,那么我们要调整一下密码框的属性,指定其类型是password类型。如图:

界面设计完毕,是个什么样子呢?大概的看一下吧,还算说得过去。 【如果要更好看,当然需要美工人员的帮助】 然后,该实现登录的功能了吧? 先谈谈我们的目标,也就是输入账号和密码以后,如果通过验证,则跳转到Default.aspx页面,提示登录成功,反之,则给予相应的提示。 账号和密码保存在哪里呢?当然是数据库里。 好,我们来创建一个数据库吧。【我这里使用的是SQL SERVER 2005,当然,你用其他的也行】 打开红圈选中的 SQL Server Management Studio ,其实也就等同于SQL SERVER

(完整版)JSP登陆页面代码

静态的登录界面的设计login.htm,代码如下: Html代码 1. 2. 3. 系统登录 4. 14. 15. 16.

17. 18. 19. 20. 22. 23. 24. 25.
26. 27.
28.
29.
33. 34. 35. 36. 37.
系统登录 21.
用户名
密  码
30.    31. 32.
38.

php用户登录页面代码源代码

//登入页面 $conn=mysql_connect('127.0.0.1','root','')or die("连接失败"); mysql_select_db('tujian',$conn)or die("未找到该数据库"); define(ALL_PS,"vivid");mysql_query("set names GBK"); if($_POST[submit]){ $postcode=strtolower($_POST["code"]); $postcode=strtoupper($_POST["code"]); $uid=str_replace(" ","",$_POST[uid]); $sql="select * from users where `uid`='$_POST[uid]'"; $query=mysql_query($sql); $user=is_array($row=mysql_fetch_array($query)); $mi=$user?md5($_POST[pass].ALL_PS)==$row[pass]:FALSE; if($mi){ $_SESSION[uid]=$row[uid]; $_SESSION[name]=$row[name]; $_SESSION[id]=$row[id]; $_SESSION[user_shell]=md5($row[uid].$row[pass].ALL_PS); if( $_SESSION["code"]==$postcode){ echo""; }else{ echo"

验证码输入错误,请重新输入!
"; } } else{ echo"
用户名或密码输入错误
"; session_destroy(); } } ?>

简单生活,从不简单,指尖舞蹈,时尚品味。


随心而定,我们可以让生活更美好。


用户名:

密  码:

确认密码:
管理员

登录页面HTML+CSS+JS代码

网页效果截图: 源码: HTML代码(login.html) 表单登录页面

欢迎您的到来

用户登录界面xcode代码

用户登录界面 打开Xcode后先删除左侧的 main.storybstoryboard和删除右侧的main interface里的main后再编写 ViewController.m和AppDelegate.m里的代码,Ctrl+R运行。ViewController.m // // ViewController.m // userlogin // // Created by qianfeng on 16/7/13. // Copyright ? 2016年zyy. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor =[UIColor whiteColor]; //创建标签用于页面的标题 [self createTitle]; //创建文本框 [self createTextFields]; //创建登录按钮 [self createButton]; } //标题标签 -(void)createTitle { UILabel *lbTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];

登录界面设计及代码设计

登录界面: using System; using System.Collections.Generic; using https://www.doczj.com/doc/af5041570.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace _123 { public partial class login : Form { public login() {

InitializeComponent(); } private void quxaio_Click(object sender, EventArgs e) { MessageBox.Show("确定退出吗?"); this.Close(); } private void denglu_Click(object sender, EventArgs e) { if (this.zhanghao.Text.Trim() == ""|this.mima.Text.Trim()=="") { if(this.zhanghao.Text.Trim()=="") { MessageBox.Show("帐号不能为空!请从洙新输入!"); } else if (this.mima.Text.Trim() == "") { MessageBox.Show("密码不能为空!请从新输入!"); } } else { string ConnStr = @"server=.;database=user_db;uid=sa;pwd=zhangrui;"; SqlConnection conn = new SqlConnection(ConnStr); conn.Open();

ASP用户登录注册代码

ASP用户登录注册代码 1,(index.asp 用户登陆页面) 会员

会员注册系统

用户名:
密码:
注册

实训四__设计用户系统的注册及登录

实训四设计用户系统的注册及登录 一、实训目的 1.能正确设计用户注册程序。 2.能正确设计用户登录程序。 3.能正确设计用户的管理程序。 二、工作任务 任务1:将静态注册页面转换成动态ASP文件页面,设置表单对象。 任务2:为网页设置引用文件。 任务3:为注册页面编程,实现对填写的注册信息进行判断的功能,并将注册信息写入数据库。 任务4:为登录页面编程,实现登录功能,并出现欢迎用户登录的界面。 三、实训步骤 (一)编程实现用户注册功能 首先创建注册界面 图1注册界面 任务1操作方法: 1)用dreamweaver打开前面我们所创建的动态网站,将项目三中所设计的静态注册页面reguser.html复制一份并改名为reguser.asp,其中注册部分页面如图2如所。

图2注册界面 3)选择标签

,将其属性按图3修改,将表单名称命名为fom1,动作右侧的文本框中输入reguser.asp?act=reg,其含义为此表单提交到本页处理,并附加参数act=reg,此参数含义为表单填写完成后提交表单进行注册的参数传递,方法右侧的列表中选择post,其它方面可以忽略。 图3表单属性 4)依照表1修改各个表单元素的名称,以方便程序的编写。 表1注册表单中各表单元素的名称 设计思想: 当用户输入注册信息时,如果用户名或密码没有填写时系统出现提示信息“用户名或密码不能为空!”,并将重新注册; 如果用户名在数据库中已经存在通过判断语句系统会有弹出提示信息“用户名已经存在,请重新注册!”,本教材的其他信息并不要求必须输入,读者可以自己设计; 将用户信息写入到数据库的tbl_user表中保存,注册成功时会有弹出信息“注册成功!”,单击“确定”按钮将跳转到登录页面可供用户登录,如果注册失败弹出提示信息,并说明注册失败的原因。 任务2操作方法: 1)先创建一个数据库连接文件db.asp,代码: <% dim conn,dbpath set conn=Server.CreateObject("adodb.connection") DBPath = Server.MapPath("db/tygasp.mdb") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& DBPath %>

登录注册页面设计

登录注册页面设计 一、表结构 二、页面设计 页面设计主要是采用css与javascript代码去美化与验证jsp页面和jsp页面上的操作。 登录页面

注册页面 修改信息页面 三、代码设计 本项目主要是实现了用户登录与注册这两个功能,是结合struts2+hibernate框架整合开发的,DAO作为实现了数据访问操作的所有细节的处理层。开发过程中,Struts2与hibernate主要是靠MyEclipse自动生成:struts2生成MVC模型的控制层的配置,hibernate生成MVC模型的持久层的类对象(PO);数据传值过程中,我主要是设计struts的action类与struts配置,还有DAO模式的设计,JS与css。 DAO设计: IUserDAO类是其DAO层里的CRUD 操作基础接口类,HibernateDAO类是那些持久化操作封

装一起的基础工具类,HibernateUtil类是责处理事务、会话或连接等等事务界定操作。UserDAOFactory类是生成DAO的工厂。 持久层接口 DAO工厂类 说明: UserDAOFacory是供外界进行CRUD 操作的一个接口,是通过声明UserDAO接口,实例化IUserDAO实现类,得到CRUD操作的实例。 HibernateUtil是个静态类型的工具类,主要是处理事务的界定,session,Configuration,Trasaction等等事务方面由此类负责。 HibernateDAO实现了IPersisitentDAO接口,在IUserDAO实现类里通过接口实例化具体类,将HibernateDAO组合在UserDAOimpl类里面。那些持久化操作封装到HibernateDAO 这个基础类里,通过这个基础类,DAO的实现类可以在很大程度上简化持久化操作的步骤,减少代码的重复量 Struts设计: 在struts.xml文档里共设置了三个action:login.action是用来登录的,register.action是用来

用户名和密码登陆界面的代码

- (void)viewDidLoad { [super viewDidLoad]; //加载窗口的时候把从文件里读出用户名。 NSString *filePath = [self documentsPath:@"user.txt"]; //读出文件存到数组username中 NSArray *username = [NSArray arrayWithContentsOfFile:filePath]; self.TXF1.text = [username objectAtIndex:0]; self.Txtpwd.text = [username objectAtIndex:1]; //文本显示设为安全。星号 self.Txtpwd.secureTextEntry = YES; } //登陆验证 - (IBAction)loginpage:(id)sender { NSLog(@"login...\n"); NSString *filePath = [self documentsPath:@"user.txt"]; //从user这个文件里读出用户名和密码是否与输入的相同 NSArray *username = [NSArray arrayWithContentsOfFile:filePath]; if([TXF1.text isEqualToString:[username objectAtIndex:0]] && [Txtpwd.text isEqualToString:[username objectAtIndex:1]]) { //如果验证正确,则重新打开一个窗口 if(self.loginhome ==nil) { NSLog(@"loginhome"); loginhome *homepage = [[loginhome alloc]initWithNibName:@"loginhome" bundle:nil]; self.loginhome = [homepage autorelease]; [self.view addSubview:self.loginhome.view]; } else { [self.view addSubview:self.loginhome.view]; } NSLog(@"登陆成功!\n"); } else { NSLog(@"用户名或密码错误!\n"); judgelogin = [[UIAlertView alloc]initWithTitle:@"提示"

文本预览
相关文档 最新文档