ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:108.05KB ,
资源ID:24333114      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24333114.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(班级成绩处理与时间显示程序.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

班级成绩处理与时间显示程序.docx

1、班级成绩处理与时间显示程序课 程 设 计 报 告课程名称 汇编语言程序设计 课题名称 班级成绩处理与时间显示程序 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 2013年 1 月 8 日湖南工程学院课 程 设 计 任 务 书课程名称 汇编语言程序设计 课 题 班级成绩处理与时间显示程序专业班级 学生姓名 学 号 指导老师 审 批 任务书下达日期 2013 年 1 月5 日任务完成日期 2013年 1 月 13日一、设计内容与设计要求1、课程设计目的通过本周的课程设计,学生能够巩固所学的基础知识,并能够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计

2、其它应用软件提供帮助,进而提高学生的软件设计能力。2、课程设计课题环境一台硬件配置为586以上电脑,在操作系统为WINDOWS 98/XP/2000等的环境下,使用汇编程序设计语言来完成该任务。3、 设计内容与设计要求(注:根据本人学号22号,加上学习的特点,本人做的课题有:课题二:班级成绩处理程序【必选】)、课题三: 时间显示程序【任选】、课题一:编制一计算比赛成绩的程序。要求完成以下功能: (1) 9名评委,每个评委给分范围为0100(整数); (2) 9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分(精确到小数点二位); (3) 将得分在光标位置处显示出来

3、。课题二:班级成绩处理程序。编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30字的grade数组中,各数据的格式为:学号,成绩1,成绩2,成绩5然后根据grade中的学生成绩,把学生名次填入rank数据组中,并显示出来,格式为:学号,名次课题三:时间显示程序。利用INT 1CH(大约每秒中断18.2次)编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为时:分:秒:1/100秒课题四:图形显示程序。输入一个菱形的两条对角线长,在屏幕上用*号画出一个彩色的菱形。课题五:显示模式设置程序。设置图形方式并显示彩条,要求:选择背景色为蓝色,调色板为0,然后每行显示一

4、种颜色,每四行重复一次,一直到整个屏幕都显示出彩条。设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。(1)、设计正确,方案合理。(2)、界面友好,使用方便。(3)、程序精炼,结构清晰。(4)、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。(5)、上机演示。(6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中; (7)、按本任务书的要求,按附录的要求编写课程设计报告(Word文档格式)。并用A4的复印纸打印并

5、装订; (8)、每个学生选两个课题(其一学号除以5的余数【必选】,其二根据自己实际情况任选其四道中的一题) 四、课程设计时间安排1、时间:18星期天上午(8:00-18:00)(1月6号) 19周星期二上午:(8:00-12:00)(1月8号) 2、指导老师:唐北平 二、课题的主要功能根据课程设计任务书要求,我选择了课题2和课题3进行设计。课题2本程序以microsoftvisual basic作为开发平台,根据课题要求,实现了学生基本情况录入,对学生成绩的查询,修改,删除功能。三、课题的功能模块 四、主要功能实现1、班级成绩管理程序模块图 学生成绩录入及查看 学 排 键 屏 排 号 名 盘

6、幕 序 初 出 输 功始 始 入 输 能化 化 出2、班级成绩管理程序模块图五、上机调试在程序的整个调试过程中我遇到了很多困难,有时候忘记使用DOS提供的INT 21H中断功能调用,引号打错或者忘记写了,在输入的过程中也会有错误,这样的错误是很难找的,还有就是在语句后面加的注释,应该要用英语里面的分号,我刚开始用的是汉语里面的分号,结果调试的时候就同时出现了五十几个错误等等,经常会犯一些这种小错误。在调试的时候遇到大问题是最麻烦的,因为第一个课题是计算比赛程序,其中最难实现的就是最后的结果要精确到小数点后两位,存储起来会比较麻烦,这个问题必须解决。不过最后这个程序的功能要求还是没有实现。1)B

7、IOS功能调用INT 10H 在BIOS功能调用INT 10H中,AH=02H(置光标位置)和AH=06H(当前显示页上滚)也许是我的程序中用得最多的两个功能号了。在进入了通讯录界面后怎样使光标到达指定的位置来完成操作呢?功能号AH=02H很好的解决了这个问题。DH=光标所在行,DL=光标所在列,BH=光标所在页,三个入口参数控制了光标的位置。功能号AH=06H有什么作用呢? AL=滚动的行数,CH=左上角行数,CL=左上角列数,DH=右下角行数,DL=右下角列数,BH=上滚时添补的空行的属性,07H为正常,70H为反显,这五个入口参数控制形成了一个矩形的信息窗口。2)DOS功能调用 文件知识

8、是以前没有接触过的,成绩管理系统中的信息是存放在文件中的,怎样调用文件中的内容和向文件中添加内容呢?又怎样关闭文件呢?成绩管理文件是事先存在的,所以只要用到3DH打开已存在的成绩文件,其中AH=3DH,AL=存取方式代码,DS:DX指向文件路径名的ASCLL码串。3EH则用以关闭用打开的文件,对文件添加学生信息则使用3FH,CX=所要读入字节数,DX为存放读入信息的内存地址。同样的40H对文件或设备进行写操作。3)宏定义和过程调用 在成绩管理系统源程序中我都使用了宏定义和过程使整个程序分成了若干个模块。为什么要使用宏定义和过程调用呢?使用宏定义和过程调用会使繁杂的程序容易读懂和理解,也使写程序

9、的思路清晰4) 班级成绩处理程序各界面:输入数据界面程序排序界面5)时间显示程序界面六、心得体会差不多一周的课程设计结束了,但我的心情却极其复杂,我高兴是因为通过一周的努力终于完成了课程设计的任务;但我又非常的伤感,那是因为这次的课程设计让我感觉到前所未有的吃力,这样的吃力不单单是在对基础知识理解得不全面,不系统所造成的。“汇编语言程序设计”是计算机专业的重要专业基础课,是从事计算机研究与应用的基础,是计算机专业必修的核心课程之一,为更好的培养学生综合能力的课程之一。其中课程设计是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,汇编语言已经成为当今计算机应用中空前活跃的领域

10、,是很多技术的基础在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握汇编语言是十分重要的。刚开始做课程设计的时候,看着任务书感到非常的茫然,不知道也不清楚该从何下手,查资料,看课本几乎用了我一半的课程设计时间。到真正上机调试的时候,问题又接二连三的出现。先是对应用软件使用的不了解,导致了上机很被动,在老师和同学的帮助下,才能勉强把自己的思路在软件上表述出来。其次,在课程设计出现问题时,不知道该如何快速的查找错误出处,导致了时间上的浪费。虽然在老师和同学的帮助下,最后被动,勉强的完成了课程设计任务,但在期间所体现出来的问题,却让我有一种“晴天霹雳”的感觉。在课程设计时,我也找到了一些问

11、题的所在,不单单是对平时的知识的学习,还有平时学习的方法。课程设计是为了我们把平时所学的知识运用到实际中去,但当课程实际刚开始时候,我们就出现了“无从下手”的问题,好像平时所学的知识根本用不上。这些问题的出现一方面是我平时知识的掌握不够牢固所造成的;另一方面,是因为在平时的学习中,课本与实践的结合过少所引起的。正是由于平时和实践联系得少,不了解所学知识运用到实践中的途径,当用到的时候又不知道该怎么用已经成为我们现在所面临的问题,如何解决这一问题,将成为我们以后学习和思考的另一问题。 通过这周的课程设计更让我感受到:一通过这次课设实践,让自己又温习了一遍汇编语言程序设计的知识,最重要的是实践中让

12、自己的能力比以前要有所提升。这次的课设让我明白了程序设计思路、主要数据结构、主要的流程实施图等对于一个程序来说是相当的重要。只要是方向弄正确了,会达到事半功倍的效果。我想说的是,在你有个明确的方向时,你应该坚持到最后,成功将是你的。不只生活是那样,做程序也是那样。二 上机操作实践,有助于书本知识的系统化,现实化,更有利于自己的察缺补漏。书本上的知识是死的,能够在现实中运用的知识才是活的。在平时的课本知识学习过程中,由于受很多其他因素的影响,同学们学着学着就丧失了学习的兴趣,学的是一塌糊涂,情况很不乐观。平时学习比较扎实的同学,通过上机操作完成一项完整的程序设计后,可以从实践中理解汇编语言这门课

13、的本质的东西,进而系统完善自己的知识体系,更能从中找到自己得缺陷与不足,并加以补足改正,而学习不太扎实一点的学生,由此也加深了对这一门课的认识,学习兴趣也瞬间大增。三 另外,就是我对这门课内容的学习感受。要学好这门课,以我愚见无非有以下三点:1) 课本上应该记住的东西一定要记住,记不住就没法做题,(例如指令,寻址方式等等)若记住你做题就会做,看程序也就能看懂,记不住见了它就会对它不知所措,一脸茫然。2)预习很重要,这一点不仅适用于这一科的学习,确切的说它适用于任何一科,有的同学这一点作的不好,上课只知道竖着两个耳朵傻傻的听老师讲课,也不注意动动脑子随时思考,延续以前填鸭式的学习方式,想让老师讲

14、给所有的东西,殊不知很多东西还要自己从书本获得。这就难免出现听不懂的情况,这好比让一个不懂外语的人听外语录音,在他的心里,听外语就像听天书一般,所以说你要学一点新东西,前提是你对它要有一点了解,不然的话你所作的一切只不过是在浪费时间,浪费金钱,浪费生命。3)理论与实践相结合,不懂的地方应勤问老师勤问同学,直到把它搞懂为止。课程设计是结束了,问题的所在也知道,但在以后的学习中该如何改进却成为了我们新的“课程设计课题”。课程设计不单单是检验我们平时所学的知识,更主要的是让我发现了我们身上所存在的问题,解决这些问题,不仅仅能帮组我们学习好一门知识,更能帮助我们在以后的生活和工作中进步。七、附录(原程

15、序)课题2(班级成绩管理程序);=以下是宏定义区PRINT_ENTERING MACRO;-定义回车换行宏 MOV AH ,02H MOV DL ,0AH INT 21H MOV DL ,0DH INT 21HENDM;THREE_SPACE MACRO;-三个空格 MOV DL ,20H MOV AH ,02H INT 21H INT 21H INT 21HENDM;=;=DATAS SEGMENT ;此处输入数据段代码 ;=以下是数据存储区 N EQU 5;-定义字符 NAME1 DB N DUP(14 DUP(0),$) GRADE DB N DUP(0) RANK DB N DUP(0

16、) NUMBER DB N DUP(0) BUF DB 0 ;-字符缓存去 BUFFER DB 14,?,14 DUP(0) ;-输入缓存区 BUFFER2 DB 15 DUP(0);-名字交换缓存 ;=以下是输入提示区 NAME_PROMPT_1 DB NAME: $ GRADE_PROMPT_1 DB GRADE: $ RANK_PROMPT_1 DB RANK: $ NUMBER_PROMPT_1 DB NUMBER: $;=以下是输出提示区 NAME_PROMPT_2 DB NAME$ GRADE_PROMPT_2 DB GRADE$ RANK_PROMPT_2 DB RANK$ NU

17、MBER_PROMPT_2 DB NUMBER$ OUT_NUMBER DB 10,13,Here is rank by the number of the students :,10,13,$ OUT_GRADE DB 10,13,10,13,Here is rank by the grade of the students: ,10,13,$;=以下是更改提示区 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS M

18、OV DS,AX MOV ES ,AX ;=主函数对各函数的调用 ;此处输入代码段代码 CALL KEY_GRADE ;LEA DX ,GRADE ;-成绩内存单元查看(调试检查) CALL NUMBER_RANK_INITIALIZE ;LEA DX ,NUMBER;-学号内存单元查看 ;LEA DX ,RANK ;-排名内存单元查看 MOV AX,0003H ;-清屏. INT 10H MOV DX ,OFFSET OUT_NUMBER MOV AH ,09H INT 21H CALL PRINT_OUT_NUMBER CALL RANK_GRADE LEA DX ,OUT_GRADE M

19、OV AH ,09H INT 21H CALL PRINT_OUT_RANK;=结束主函数 MOV AH,4CH INT 21H ;=获得键盘输入KEY_GRADE PROC NEAR MOV CX ,N MOV SI ,0GET_GRADE: PUSH CX PUSH SI MOV CX ,14 LEA DX ,NAME_PROMPT_1 MOV AH ,09H INT 21H LEA DX ,BUFFER MOV AH ,0AH INT 21H mov si,offset BUFFER mov al,si+1 xor ah,ah add si,2 add si,ax mov byte pt

20、r si,0 POP SI PUSH SI MOV AL ,15 MOV BX ,SI MUL BL MOV BX ,AX LEA DI ,NAME1BX LEA SI ,BUFFER2 CLD REP MOVSB MOV CX ,15 MOV AX ,0 LEA DI ,BUFFER1 REP STOSB POP SI POP CX PRINT_ENTERING LEA DX ,GRADE_PROMPT_1 MOV AH ,09H INT 21H MOV AH ,01H INT 21H SUB AL ,30H XOR AH ,AH MOV BL ,10 MUL BL MOV BUF,AL M

21、OV AH ,01H INT 21H SUB AL ,30H ADD BUF,AL MOV AL ,BUF MOV GRADESI,AL INC SI PRINT_ENTERING DEC CX CMP CX ,0 JNE GET_GRADE RET ;LEA DX ,GRADE ;-调试查看内存KEY_GRADE ENDP;=;=学号排名初始化 NUMBER_RANK_INITIALIZE PROC NEAR MOV CX ,N MOV SI ,0_NUMBER: MOV AL ,N+1 SUB AL ,CL MOV NUMBERSI,AL;-使学号递增即:1,2,3,4,5 MOV AL

22、,N XOR AH ,AH SUB AX ,SI MOV RANKSI,AL;-使名次递减即:5,4,3,2,1 INC SI LOOP _NUMBER RETNUMBER_RANK_INITIALIZE ENDP;=;=成绩排序函数RANK_GRADE PROC NEAR CLD MOV CX ,N-1FIRST: PUSH CX MOV SI ,0SECOND: MOV AL,GRADESI CMP AL,GRADESI+1;-分数比较 JNB GRATE INC SI LOOP SECOND POP CX LOOP FIRST RETGRATE: PUSH SI XCHG AL,GRAD

23、ESI+1 XCHG AL,GRADESI;-分数交换 MOV AL ,NUMBERSI XCHG AL ,NUMBERSI+1;-学号交换 XCHG AL ,NUMBERSI MOV AX ,15 MOV BX ,SI MUL BL MOV BX ,AX PUSH CX MOV CX ,15 LEA SI ,NAME1BX;-以下是名字的交换 LEA DI ,BUFFER2 REP MOVSB MOV AX ,0 MOV CX ,15 LEA DI ,NAME1BX REP STOSB;-将空间复位置零,毕竟名字输入有长短不一 MOV CX ,15 LEA DI ,NAME1BX LEA S

24、I ,NAME1BX+15 REP MOVSB MOV CX ,15 LEA DI ,NAME1BX+15 REP STOSB MOV CX ,15 LEA DI ,NAME1BX+15 LEA SI ,BUFFER2 REP MOVSB MOV CX ,15 LEA DI ,BUFFER2 REP STOSB POP CX POP SI INC SI LOOP SECOND POP CX DEC CX CMP CX ,0 JNE FIRST;-没办法,语句太长,总是差1byte,已经没有可以 ;再简化了.只好出此下策.呵呵 RETRANK_GRADE ENDP;=;=PRINT_OUT_RA

25、NK PROC NEAR PRINT_ENTERING PRINT_ENTERING LEA DX ,NUMBER_PROMPT_2 MOV AH ,09H INT 21H THREE_SPACE MOV AH ,09H LEA DX ,NAME_PROMPT_2 INT 21H THREE_SPACE THREE_SPACE MOV AH ,09H LEA DX ,GRADE_PROMPT_2 INT 21H THREE_SPACE MOV AH ,09H LEA DX ,RANK_PROMPT_2 INT 21H ;-标题栏-显示NUMBER NAME GRADE RANK MOV CX

26、,5 MOV SI ,4PRINT_NUMBER: PRINT_ENTERING THREE_SPACE MOV AH ,02H MOV DL ,NUMBERSI ADD DL ,30H INT 21H THREE_SPACE THREE_SPACE MOV AH ,02H MOV DL ,20H INT 21H MOV AX ,SI MOV BL ,15 MUL BL MOV BX ,AX MOV AH ,09H LEA DX ,NAME1BX INT 21H MOV AL ,GRADESI XOR AH ,AH MOV BL ,10 DIV BL MOV BL ,AL MOV BH ,AH MOV DL ,BL ADD DL ,30H MOV AH ,02H INT 21H MOV DL ,BH ADD DL ,30H MOV AH ,02H INT 21H THREE_SPACE THREE_SPACE MOV AH ,02H MOV DL ,20H INT 21H MOV DL ,RANKSI ADD DL ,30H INT 21H DEC SI DEC CX CMP CX ,0 JNE PRINT_NUMBER;-又超过了.什么情况?求解释. RETPRINT_OUT_RANK ENDP;=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1