1、 课程设计报告课程设计报告 ( 20132014 年度第一学期) 名 称: 微机原理及应用 题 目:纯软件设计出题程序 院 系: 控计学院 班 级: 学 号: 学生姓名: 指导教师: 设计周数: 同组人: 成 绩: 日期:2014 年 1 月 9 日 1 一、课程一、课程设计设计的目的与要求的目的与要求 1 通过纯软件编程实现随机抽取 10 道简单的加减乘除运算题 2 要求给出开始答题时间、答题结束时间以及总用时 3 要求对题目结果进行判断并给出得分 二、设计正文二、设计正文 1 需求分析 1 . 1 MASM 编程软件 2. 总体设计 2 . 1 产生两个随机运算数及随机运算符 2 . 2
2、将运算数 A 和 B以十进制方式输入 2 . 3 产生一个随机运算式 2 . 4 在屏幕上显示开始时间、结束时间及时间差 2 . 5 判断结果的正确与否并给出最终得分 三、课程设计总结三、课程设计总结 1 个人总结 本次课程设计我们做的课题是利用 MASM 编程软件设计一个自动出题程序,两人一组。整体设计构 想由我们两人共同完成,我负责主程序框架以及随机数、屏幕背景、系统时间读取这些部分。对于 主 程序框架,它是整个程序的骨架,通过组内商量,我们最终确定了程序的流程:在进行初始化后,要 对屏幕背景进行设置,接着确定题目数量、生成随机运算式,然后根据系统算出的正确结果对输入的 结果进行判断并给出
3、得分。在程序编写过程中,我也遇到了许多问题,其中包含有许多的调用,如屏 幕背景设置、时间的调用等以及随机数的获得。经过反复的修改、查阅资料、百度,我们的程序最终 能够完成预期的基本功能。我还负责了程序调试的部分,由于程序是由两个人分开来写的,所以整合 在一起后遇到了许多问题,寄存器的使用错乱是最严重的,之后经过一次次的调试,我们的程序最终 总算是基本完成了。 通过本次课程设计,我总算学会了编程,学会了使用 MASM,也终于体会到了什么叫学以致用。这让 我获得了很大的满足感。不过我们的程序还存在不少缺点,对于除法运算,当结果不是整数时,做题 时它的结果该怎么书写尚未找到方法,因此我们的程序中只涉
4、及了加减乘这三种运算。 2. 团体总结 本次课程设计,我们是两人一组,由于人数的原因,我们没有做太难的课题,只是受网上模拟 考试的启发想到了这个课题。两人合作中,互相配合显得尤为重要,在课程设计过程中,我们明确分 工又彼此配合,遇到问题积极讨论,或是查阅书籍,或是上网搜索,或是找人询问。在我们的通力合 2 作下,我们解决了许多问题。 对于本次课程设计的结果我们还是比较满意的,我们在此收获了很多。不过,我们的程序还有 不足的地方,那就是其中没有除法运算。为了解决问题,我们也进行过积极的讨论,遗憾的是仍然没 有解决这一问题。 四、参考文献四、参考文献 1李继灿.新编 16/32 位微型计算机原理及
5、应用.清华大学出版社.第 4 版.2008.7 2马力妮.80x86 汇编语言程序设计.机械工程出版社.第 2 版.2009.6(2012.1 重印) 3 附录(附录(设计流程图、程序、表格、数据等设计流程图、程序、表格、数据等) 1、程序流程图 开始 初始化 做题? Y 产生随机数值 产生运算符 “+”? “-”? “*”? “/”? N N N 加 减 乘 除 Y Y Y Y 题目数量 T=0 T=10? Y N 存储 判断,计分 T=T+1 结束 N 4 2、程序代码 HUICHE MACRO ;回车换行 MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MO
6、V AH,2 INT 21H ENDM DISP1 MACRO X ;将数字A,B十进制输出 AL LOCAL SHI LOCAL GEE PUSHA MOV AL,X MOV AH,0 CMP AX,10 JAE SHI CMP AX,0 JAE GEE SHI: MOV BX,10 DIV BL MOV CH,AH MOV DL,AL ADD DL,30H MOV AH,2 ;屏幕显示 INT 21H MOV AL,CH MOV AH,0 GEE: MOV DL,AL ADD DL,30H MOV AH,2 INT 21H POPA ENDM DISP3 MACRO X ;时间的输出 AL LOCAL SHI2 LOCAL GEE2 PUSHA MOV AL,X MOV AH,0 SHI2: 5 MOV BX,10 DIV BL MOV CH,AH MOV