首页 用栈来设置密码

用栈来设置密码

举报
开通vip

用栈来设置密码 二○○六 ~二○○七 学年第 二 学期 自动化学院 课程设计报告书 课程名称:      C语言程序设计    班    级:      学    号:                        姓    名:                  指导教师:                        题目名称 用栈来设置密码 学生学院 自动化学院 专业班级 自动化06级( 2)班 姓 名 卢智健 学 号 3106000873     一、课程设计的内容 课题十...

用栈来设置密码
二○○六 ~二○○七 学年第 二 学期 自动化学院 课程设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 书 课程名称:      C语言程序设计    班    级:      学    号:                        姓    名:                  指导教师:                        题目名称 用栈来设置密码 学生学院 自动化学院 专业班级 自动化06级( 2)班 姓 名 卢智健 学 号 3106000873     一、课程设计的内容 课题十四:用栈来设置密码 用栈来做一个密码验证程序,密码认证只有三次机会 二、课程设计的要求与数据 1、进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程序设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图或N-S图表示算法; 6、掌握书写程序设计开发文档的能力。 三、课程设计应完成的工作 1、编写完成相应题目的程序; 2、编写课程设计报告,课程设计报告的内容应包括以下6个部分: 1) 需求分析:包括设计题目、设计要求以及系统功能需求分析; 2) 总体设计:包括系统总体设计框架和系统功能模块图; 3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图; 4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图); 5) 总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容; 6) 附录:主要源程序代码,含必要的注释。 3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解 决问题、运行程序和回答教师提出的问题。 四、课程设计进程安排 序号 设计各阶段内容 地点 起止日期 1 下达任务书,说明设计要求;收集资料 实验3#517 6.18 2 总体 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计、详细设计 实验3#517 6.19 3 编写程序,调试分析 实验3#517 6.20 4 撰写报告并上交,答辩 实验3#517 6.21         五、应收集的资料及主要参考文献 [1] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9 [2] 谭浩强. C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,2005.7 发出任务书日期: 2007年 6 月 18 日    指导教师签名: 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 完成日期:  2007年 6 月 22 日    基层教学单位 责任 安全质量包保责任状安全管理目标责任状8安全事故责任追究制幼儿园安全责任状占有损害赔偿请求权 人签章: 主管院长签章: 目  录 1需求分析………………………………………………………………………………5 2 概要设计………………………………………………………………………………5 3 主要原程序代码………………………………………………………………………6 4 详细设计 ………………………………………………………………………………6 5.调试分析过程调试……………………………………………………………………10 6 总结……………………………………………………………………………………10 7 附录……………………………………………………………………………………11 8 答辩记录(正文处请留出适当空白) ………………………………………………12 9 指导教师意见(正文处请留出十行空白) …………………………………………12 课题十四:用栈设置密码 运行环境:Dev-C++ 4.9.9.2 一. 需求分析 1. 系统主要功能 ① 设置一组密码 ② 要求输入密码,且输入时不被看到输入的字符,以*号代替 ③ 输入密码时可以退格 ④ 输入密码正确则显示正确 ⑤ 输入密码错误则要求重新输入 ⑥ 三次错误后退出 2. 设计要求: 1 根据以上功能需求,参考我们实际常用的图书管理系统,定义图书信息结构,是显像管功能; 2 为了保证所有的数据可以长期被使用,要求程序能将录入数据存储在外部数据文件password.db中,具体数据格式自定; 3 提供良好的拥护界面,方便拥护操作。 二. 概要设计 系统总体设计框架和系统功能模块图: 三. 主要源程序代码 函数原型                               功能          char password="abcdef";            密码,全局变量 stef struct tackyped               定义栈类型 void initstack(stack *s)               初始化栈 status destroystack(stack *s)              销毁栈 void clearstack(stack *s)               把栈置为空 status stackempty(sqstack s)             判断栈空否 void push(stack *s,selemtype e)           把数据压入栈 void change(sqstack s,char *a)        将栈中的元素按反序付给 a void control(stack *s)              运行输入密码程序 main()                       清屏 四. 详细设计(主要功能模块函数) #include #include #include #include #define stack_init_size 10 #define ok 1 #define true 1 #define false  0 #define error 0 char password="abcdef"; /*密码,全局变量*/ typedef char selemtype; stef struct tackyped /*定义栈类型*/ { selemtype *base; selemtype *top; int stacksize; int length; }sqstack,*stack; typedef int status; void initstack(stack *s) /*初始化栈*/ { *s=(sqstack *)malloc(sizeof(sqstack)); (*s)->base=(selemtype *)malloc(stack_init_size*sizeof(selemtype)); if(!(*s)->base)exit(-1); (*s)->top=(*s)->base; (*s)->stacksize=stack_init_size; (*s)->length=0; } status destroystack(stack *s) /* 销毁栈*/ { free((*s)->base); free((*s)); return ok; } void clearstack(stack *s)  /*把栈置为空*/ { (*s)->top=(*s)->base; (*s)->length=0; } status stackempty(sqstack s) /*判断栈空否*/ { if(s.top==s.base) return true; else return false; } void push(stack *s,selemtype e)  /*把数据压入栈 if((*s)->top - (*s)->base>=(*s)->stac*/ {ksize) { (*s)->base=(selemtype *) realloc((*s)->base, ((*s)->stacksize + 2) * sizeof(selemtype)); if(!(*s)->base)exit(-1); (*s)->top=(*s)->base+(*s)->stacksize; (*s)->stacksize += 2; } *((*s)->top++)=e; ++(*s)->length; } status pop(stack *s) /*删除栈顶元素*/ { if((*s)->top==(*s)->base) return error; (*s)->top--; --(*s)->length; return ok; } status gettop(stack s,selemtype *e)/*返回栈顶元素*/ { if(s->top==s->base) return error; *e=*(s->top-1); s->top--; } void change(sqstack s,char *a) /*将栈中的元素按反序付给 a */ { int n=s.length-1 ; while (!stackempty(s)) gettop(&s,&a); } void control(stack *s) {int i=0,k,j=0; selemtype ch,*a; k=strlen(password); printf("输入一个 %d 个数的密码,你只有 3 次机会:\n",k); printf("c:\\>"); for(;;) { if(i>=3) {  i++; clrscr(); gotoxy(1,1); /*定位黑屏光标位置*/ break; } else if(i>0&&i<3) {  gotoxy(5,2); for(j=1;j<=(*s)->length;j++)printf(" "); gotoxy(5,2);clearstack(s);} for(;;)  /* 密码输入,可退格 */ {ch=getch();  /* 退格 的ascii 是8 */ if(ch!=13) /* 判断是否为回车,不是则把它付给下面*/ {if(ch==8) {pop(s);gotoxy(4+j,2);printf(" ");gotoxy(4+j,2);} else {printf("*");push(s,ch);}
本文档为【用栈来设置密码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_215732
暂无简介~
格式:doc
大小:38KB
软件:Word
页数:0
分类:工学
上传时间:2019-08-24
浏览量:14