用栈来设置密码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二○○六~二○○七学年第二学期
自动化学院
课程设计报告书
课程名称:C语言程序设计
班级:
学号:
姓名:
指导教师:
题目名称用栈来设置密码
学生学院自动化学院
专业班级自动化06级( 2)班
姓名卢智健
学号3106000873
一、课程设计的内容
课题十四:用栈来设置密码
用栈来做一个密码验证程序,密码认证只有三次机会
二、课程设计的要求与数据
1、进一步掌握和利用C语言进行程设计的能力;
2、进一步理解和运用结构化程序设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程序设计开发文档的能力。
三、课程设计应完成的工作
1、编写完成相应题目的程序;
2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:
1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;
2) 总体设计:包括系统总体设计框架和系统功能模块图;
3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;
4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存
在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图);
5) 总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改
进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;
6) 附录:主要源程序代码,含必要的注释。
3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解
决问题、运行程序和回答教师提出的问题。
四、课程设计进程安排
五、应收集的资料及主要参考文献
[1] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9
[2] 谭浩强. C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,
2005.7
发出任务书日期: 2007年 6 月 18 日指导教师签名:
计划完成日期: 2007年 6 月 22 日基层教学单位责任人签章:
主管院长签章:
目录
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.设计要求:
①根据以上功能需求,参考我们实际常用的图书管理系统,定义图书信息结构,是显像管功能;
②为了保证所有的数据可以长期被使用,要求程序能将录入数据存储在外部数据文件
password.db中,具体数据格式自定;
③提供良好的拥护界面,方便拥护操作。
二.概要设计
系统总体设计框架和系统功能模块图:
三.主要源程序代码
函数原型功能
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<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#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;