1、 1 学学 号:号: 课课 程程 设设 计计 题题 目目 打印水仙花数 学学 院院 计算机科学与技术 专专 业业 计算机科学与技术 班班 级级 姓姓 名名 指导教师指导教师 2012 年 6 月 28 日 2 课程设计任务书课程设计任务书 学生姓名:学生姓名: 专业班级:专业班级: 指导教师:指导教师: 工作单位:工作单位:计算机科学与技术学院 题目题目: : 打印水仙花数打印水仙花数 初始条件:初始条件: 理论:完成了汇编语言程序设计课程,对微机系统结构和 80 系列指令系统有了 较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。 实践:完成了汇编语言程序设计的 4 个实验,熟悉了汇编
2、语言程序的设计环境并 掌握了汇编语言程序的调试方法。 要求完成的主要任务要求完成的主要任务: : (包括课程设计工作量及其技术要求,以及说明书撰写等具(包括课程设计工作量及其技术要求,以及说明书撰写等具 体要求)体要求) 进一步理解和掌握较复杂程序的设计方法, 掌握子程序结构的设计和友好用户界面的 设计。具体的设计任务及要求: 1) 输入一个大整数 n; 2) 将小于 n 的水仙花数打印出来(各位数字的立方和等于该数本身) ; 3) 程序采用子程序结构,结构清晰; 4) 友好清晰的用户界面,能识别输入错误并控制错误的修改。 在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求
3、请见 课程设计指导书。 阅读资料: 1) IBMPC 汇编语言程序设计实验教程实验 2.4 2) IBMPC 汇编语言程序设计(第 2 版) 例 6.11 时间安排:时间安排: 设计安排一周:周 1、周 2:完成系统分析及设计。 周 3、周 4:完成程序调试,和验收。 周 5:撰写课程设计报告。 指导教师签名:指导教师签名: 20122012 年年 月月 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 20122012 年年 月月 日日 3 打印水仙花数打印水仙花数 1.1.需求说明需求说明 1.1.1 1 设计要求:设计要求: 进一步理解和掌握较复杂程序的设计方法, 掌握子程序结
4、构的设计和友好用 户界面的设计。具体的设计任务及要求: 1.输入一个三位整数 n; 2.将小于 n 的水仙花数打印出来(各位数字的立方和等于该数本身) ; 3.程序采用子程序结构,结构清晰; 4.友好清晰的用户界面,能识别输入错误并控制错误的修改。 1.21.2 设计说明设计说明 所谓“水仙花数”是指一个 3 位数,其个、十、百位数字的立方和等于其 本身。 1.31.3 功能简述功能简述 程序可以输入一个三位数,若输入有误则提示错误,并提示重新输入,若输 入正确,系统将显示出所有大于等于 100,并且小于等于输入数字的水仙花数。 然后提示是否继续,若用户输入 y 或 Y,则系统回到最开始的状态
5、,若输入 n 或 N,则退出系统,若为其他则提示错误,并重新输入。 2.2.设计说明(简要的分析与概要设计)设计说明(简要的分析与概要设计) 2.12.1 简要分析简要分析 2.1.12.1.1 原理说明原理说明 可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通 过实际输入位数可以直接进行一部分的异常处理。 将数存到标签后,因为是以 ASCII 码的形式存的,所以需要进行转换,将其 变成十六进制数,转换后将数字存到申请的内存字中。在转换成十六进制数的过 程中,可以对输入的数进行异常处理,判断是否输入有误。 4 在输出水仙花数时,设置一个计数器,从 100 开始循环判断,直到等于
6、用户 输入的数为止,依次判断是否为水仙花数,决定是否输出该数。 在输出时,分别取出水仙花数的个、十、百位数,转换成 ASCII 码再输出。 系统提示是否继续后,程序对用户输入的信息进行判断,若为 y 或 Y 则系统 回到初始状态,若为 n 或 N 则退出系统,若为其他则提示输入错误并重新输入。 2.1.22.1.2 程序流程图程序流程图 开始 输入一个三位数 n 是否继续 结束 输入错误 输入正确 输出100=X=n的水仙花数 输入 n或 N 输入其他 输入y或Y 5 2.2 2.2 数据段设计数据段设计 data segment mess1 db 0dh,0ah,Please input a nubmer (100=number=999):,$ mess2 db 0dh,0ah,Do you want to continue(y/n)? ,$ mess3 db 0dh,0ah,