下载频道> 资源分类> 编程语言> C源码> 实例209 用栈设置密码

标题:实例209 用栈设置密码
分享到:

所属分类: C源码 资源类型:程序源码 文件大小: 2.5 KB 上传时间: 2017-07-15 22:40:53 下载次数: 5 资源积分:1分 提 供 者: admin 实例209 用栈设置密码
内容:
#include <stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
#define STACK_SIZE 100 /*假定预分配的栈空间最多为100个元素*/  
char PASSWORD[10]= "13579";
typedef char DataType;/*假定栈元素的数据类型为字符*/  
typedef struct{
DataType *base;
DataType *top;
int stacksize;
int length;
}SeqStack;   
/* 置栈空*/
 
void Initial(SeqStack *s)
{
s->base=(DataType *)malloc(STACK_SIZE * sizeof(DataType));
if(!s->base) exit (-1);
s->top=s->base;
s->stacksize=STACK_SIZE;
s->length=0;
/*判栈空*/
int IsEmpty(SeqStack *S)
{
return S->top==S->base;
}
/*判栈满*/
int IsFull(SeqStack *S)
{
return S->top-S->base==STACK_SIZE-1;
}
/*进栈*/
void Push(SeqStack *S,DataType x)
{
if (IsFull(S))
{
printf("栈上溢"); /*上溢,退出运行*/
exit(1);
}
*(S->top++) =x;/*栈顶指针加1后将x入栈*/
++S->length;
/* printf("%c",*S->top);*/
}
/*出栈*/
DataType Pop(SeqStack *S)
{
if(IsEmpty(S))
{
printf("栈为空"); /*下溢,退出运行*/
exit(1);
}
--(S->length);
 
return *--S->top;/*栈顶元素返回后将栈顶指针减1*/
}
/* 取栈顶元素*/
DataType GetTop(SeqStack *S,DataType *e)
{
if(IsEmpty(S))
{
printf("栈为空"); /*下溢,退出运行*/
exit(1);
}
*e= *(S->top-1);
S->top--;
}
void change(SeqStack *s,char *a)
{
int n=s->length-1;
while(!IsEmpty(s))
{
GetTop(s,&a[n--]);}
}
void clearstack(SeqStack *s)
{
s->top=s->base;
s->length=0;
}
 
void PwdSet(SeqStack *s)
{
int i=0,k,j=0;
DataType ch,*a;
k=strlen(PASSWORD);
printf("input password ");
for(;;)
{
if(i>=3)
{
i++;
break;
}
else if(i>0 && i<3)
{
 
for(j=1;j<=s->length;j++)printf(" ");
clearstack(s);
}
for(;;)
{
ch=getch();
if(ch!=13)
{
if(ch==8){
Pop(s);
gotoxy(4+j,2);
printf(" ");
gotoxy(4+j,2);
}
else{printf("*");Push(s,ch);}
j=s->length;
 
}
else 
{printf("\n");
break;}
}
i++;
if(k!=j)continue;
else
{
a=(DataType *)malloc(s->length * sizeof(DataType));
change(s,a);
 
for(j=1;j<=s->length;)
{
 
if(*(a+j-1)==PASSWORD[j-1]) j++;
else
{
 
j=s->length+2;
printf("\n passwrod wrong!\n");
break;
}
}
if(j==s->length+2)continue;
else break;
}
}
if(i==4)printf("\n Have no chance,It will quit!");
else printf("\n password right!\n");
free(a);
}
 
void main()
{
SeqStack *s;
clrscr();
Initial(s);
PwdSet(s);
 
getch();
 
}
 

文件列表(点击上边下载按钮,如果是垃圾文件请在下面评价差评或者投诉):

实例209 用栈设置密码
实例209 用栈设置密码\www.gusucode.com
实例209 用栈设置密码\文件说明.txt
实例209 用栈设置密码\www.gusucode.com.txt
实例209 用栈设置密码\www.gusucode.com\209.C
实例209 用栈设置密码\【谷速代码】-免费源码.url

关键词: 实例 密码

相关推荐

Top_arrow
回到顶部
联系方式| 版权声明| 招聘信息| 广告服务| 银行汇款| 法律顾问| 兼职技术| 付款方式| 关于我们|
网站客服网站客服 程序员兼职招聘 程序员兼职招聘
沪ICP备19040327号-3
公安备案号:沪公网安备 31011802003874号
库纳格流体控制系统(上海)有限公司 版权所有
Copyright © 1999-2014, GUSUCODE.COM, All Rights Reserved