计算机组成原理与汇编语言课程设计(学生成绩管理).doc_第1页
计算机组成原理与汇编语言课程设计(学生成绩管理).doc_第2页
计算机组成原理与汇编语言课程设计(学生成绩管理).doc_第3页
计算机组成原理与汇编语言课程设计(学生成绩管理).doc_第4页
计算机组成原理与汇编语言课程设计(学生成绩管理).doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告 课程名称:计算机组成原理与汇编语言 报告题目:学生成绩管理系统 学生姓名: 所在学院:信息科学与工程学院 专业班级: 指导教师: 20132013 年年 6 6 月月 2626 日日 摘摘 要要 随着计算机在教育系统中的应用得到了巨大的发展,教务管理自动化已成 为学校信息化管理的一个重要标识。该课程设计采用汇编语言的基本指令结合 子程序、宏、系统功能调用等多种技术分层、分模块实现了学生档案的建立、 存储,学生成绩的录入、显示、查询、编辑等功能的一个完整的学生成绩管理 系统。该系统由一个主程序完成系统的菜单显示,通过选择菜单调用相应的子 程序,实现相应的功能。该课程设计的完成不仅有助于我们对汇编语言的程序 设计技术的掌握和综合知识的运用能力的提高,也利于对程序开发过程的了解, 为将来系统开发打下好的基础。 关键词关键词:汇编语言;成绩管理; 添加;查询 目 录 一一、课题分析课题分析-1 二二、需求分析需求分析-2 2.1 功能描述 -2 2.2 功能模块分析 -2 2.2.1 学生信息输入功能 -2 2.2.2 学生信息修改功能: -2 2.2.3 学生信息删除功能 -2 2.2.4 学生信息查找功能 -2 2.2.5 显示排名信息功能 -3 2.2.6 文件写入及退出功能 -3 三、设计方案三、设计方案-4 3.1 系统流程图-4 3.2 子程序模块设计-5 3.3 详细设计 -7 3.4 程序调试结果及分析 -10 四、结论与心得四、结论与心得-14 4.1 自我评价-14 4.2 缺点和不足-14 4.3 开发感悟-14 五、参考文献五、参考文献-15 1 一、课题分析一、课题分析 题目:学生成绩管理 分析:首先需要建立学生成绩文档;然后依据学号输入学生各门功课成绩 (假设 3 门功课) ;功能上要求修改指定学号的学生成绩;统计指定学号的学生 的平均成绩、总成绩,并在屏幕上显示;统计指定学号课程的平均成绩,并在 屏幕上显示;每门课程成绩分析在屏幕上显示 3 门课程的各个分数段的学生人 数(分数段为:=90;80-89;70-79;60-69;=59)此处可以以表格的形式给出数据, 或者以坐标曲线的形式给出。对学生成绩记录进行检索(按学号、姓名), 成 绩排序(按总成绩降序排列), 退出,最好用到文件处理。 2 二、需求分析二、需求分析 2.12.1 功能描述功能描述 学生成绩管理,最基本能实现的的功能是输入学号,同时显示该学生的基 本的信息,我设计的成绩管理系统功能还包括了显示该生的语文,英语,数学 三门学科的成绩,求出了该生的总分,以及该生的平均分,动态输入学生的成 绩,而且成绩是按照三位数显示的,可以输入任意多的学生人数,每个学生都 是三门课程,最后统计输入所有学生的各科各个分数段的人数,最后显示出所 有学生的成绩排名情况。为了使系统更实际一些,我设计的系统包括建立了文 件,方便学生的信息一次录入之后可以保存该数据,将该数据保存在名为 score 的 txt 文件中,而且文件的路径与该软件默认的安装路径一致;为了使系 统更方便用户使用,我设计了菜单,菜单中设计了六个功能,包括插入,删除, 查询,修改,查看,退出等。 2.22.2 功能模块分析功能模块分析 2.2.1学生信息输入功能学生信息输入功能 这是必不缺少的功能,学号的输入,成绩的输入都离不了这个功能,在 输入成绩时,特地加了一个判断功能,在输入不合理的成绩时,程序将提 示出错,并要求重新输入。在输入学生学号的时候,程序首先会判断此学 生的成绩是否存在,如果存在,则程序提示需重新输入。插入一条学生记 录子模块,搜索可用单元,接收输入的记录,并写入文件。建立成绩表子 模块,控制输入界面,并多次调用插入记录子模块,完成成绩的建立。 2.2.2学生信息修改功能学生信息修改功能 考虑到会存在在输入成绩时,容易输入错误,或者发生个别学生的试卷 被误判需修改成绩等情况,所以加了此功能,在发生以上情况时可以调用 此功能,修改指定学生的成绩。 2.2.3学生信息删除功能学生信息删除功能 如果输入的学生信息根本不存在,或者发生其它情况需删除一个无意义 的学生信息时,可以调用此功能。此功能将实现将指定学号学生的信息删 除。 2.2.4学生信息查找功能学生信息查找功能 3 当需要查询某个学生的成绩或者检查输入是否有误时,可以调用此功能, 此功能实现将指定学号学生的成绩显示出来。实际上在调用此功能的同时, 程序会首先求的总成绩,平均成绩,然后产生排名结果,最后将数据信息 显示。 2.2.5显示排名信息功能显示排名信息功能 此功能会将学生成绩自动相加,得到每位学生的总成绩及平均成绩,然 后进行排名,得到每个学生的名词,最后按照输入顺序将所有学生的学号, 语文成绩,英语成绩,数学成绩,平均成绩,总成绩,名次依次输出。模 块中排名处理、学科平均成绩计算均需取出某一学科的所有学生成绩,因 而此操作作为公用子程序以供调用。个人总分及平均分处理较为简单,根 据索引逐条处理记录。排名处理。排名结果为一维数组,与学科成绩存在 对应关系。查询学生记录,先进行学号匹配,再输出一条记录;查询该生 的所有信息。 2.2.6文件写入及退出功能文件写入及退出功能 此功能实现将学生的信息保存在一个文件里。此程序默认将文件放在 C 盘下,名称为:SCORE,属性为TXT格式的文本文档。该文档能够保存数据, 以便数据不需要重复录入,是系统更能满足用户需求。写入文件完毕后, 关闭文件,并退出程序。 4 N 三、设计方案三、设计方案 3.13.1 系统流程图系统流程图 图 2 Inset 子程序 图 1 主程序 Y Y Y Y Y Y N N N N N 开始 显示菜单 输入一个字符 是 i? 是 m? 是 f? 是 esc? 调用 Insert 子程序 调用 Find 子程序 调用 Rank 子程序 调用 Count 子程序 调用 Modify 子程 序 开始 打开文件 置文件指针到文件尾 从终端接收用户的输入记录 记录写入文件 关闭文件并返回 开始 打开文件 读一个记录 是否为要修改记录 是 s? 是 c? 文件指针后退一个记录 写入修改记录并关闭文件 结束程序 返回 5 图 3 modify 子程序 图 4 delete 子程序 图 5 count 子程序 3.23.2 子程序模块设计子程序模块设计 (1 1) INSERTINSERT 子程序子程序 INSERT 子程序的功能是录入一条记录。 首先保留现场入栈,然后 DOS 中断 3D 号功能打开 FNAME 指定的文件,然后 宏 GETIN 清除屏幕右半部分的记录输入区域。在记录的第一项处置光标,用 INTPUT 获取记录内容,用 DOS 中断 42H 号功能将指针移到文件末尾。 再用 DOS 中断 40H 号功能将放在 BUFFER 缓冲区的 23 个字节的内容写到文 件中,接着关闭文件,重新设置光标位置在显示记录位置。 最后弹栈恢复现场。 (2 2) MODIFYMODIFY 子程序子程序 MODIFY 子程序的功能是修改记录。 Y Y N N Y 开始 打开文件 接收删除记录 读一条记录 学号相同? 删除该记录 关闭文件 返回 开始 打开文件 接收删除记录 读一条记录 对数学成绩分段并统计 指针到文件尾 显示统计结果 关闭文件 返回 6 先保护现场,然后清除右上部分的记录输入区域,接着打开文件。 用 input 子程序获取输入的记录信息,并存入 BUFFER1 中。从打开的文件 中读取一个记录的内容(23 个字节)放在 BUFFER2 中。 比较记录前面的 15 个字节(姓名) ,如果不同,则读取下一个记录;如果 相同,则回移一个记录的指针,回到刚才这条记录的位置(因为读取一个记录 后,指针已移到下一条记录上) 。将放在 BUFFER1 中的输入的记录写到刚才这条 记录在文件中的位置上,从而实现此记录的修改。最后关闭程序,恢复现场。 (3 3)DELETEDELETE 子程序子程序 DELETE 子程序的功能是删除一条记录。 首先保留现场,清除屏幕。然后打开文件,保留文件句柄。用宏 GETIN 获 取 15 个字节的姓名字符,放在 BUFFER1 中。 读取一条记录(23 个字节) ,放在 BUFFER2 中,然后和 BUFFER1 中内容比较, 如果不同,读取下一条记录。如果姓名相同,则把指针后移 6 个字符(3 门功 课所占空间) ,写入 6 个“0”字符。关闭文件,恢复现场并退出。 (4 4)FINDFIND 子程序子程序 FIND 子程序的功能是打印文件中的记录。 用 OPENF 子程序打开文件。读取一条记录,汇编语言提供了自定义数据结 构的结构定义语句,可将不同的数据类型放在一个数据结构中,便于处理,在 本程序中的记录就采用了结构定义语句。这里读取记录也用了结构的方法。 接着用 DOS 中断 21H 的 5 号功能,逐字打印存放在 BUFFER1 中的所以字 符。 一条记录打完后,打印回车符换行。然后用同样方法继续读取下一条记 录并打印,直到文件结束为止。最后关闭文件退出。 (5 5)COUNTCOUNT 子程序子程序 COUNT 子程序的作用是统计各分数段小说人数,并简化程序,作为示例, 本程序只统计记录数学各分数段的人数。 首先显示统计结果的标题:maths60708090100。 然后打开文件。读取记录,将记录的第 16 个字符(数学分数的高位)取 出比较。统计结果依次放在以 BUFFER3 开头的内存单元中,如果小于 60,则将 小于 60 的记录单元 BUFFER3 加一;若小于 70,则将小于 70 的记录单元 BUFFER3 加一,即 BUFFER3 下一个地址单元内容加一,依次类推。处理完后再 7 读取下个记录,作同样处理,直到文件结束为止。 接着显示放在 BUFFER3 中的各分数段的人数的统计结果,最后关闭文件结 束。从程序中可以看出,统计时程序有个限制,本例每个分数段最多不能超过 9 个人。 3.33.3 详细设计详细设计 (1) INSERTINSERT 子程序子程序 insert proc near call input add n,1 ret insert endp input proc near e6: output mess1 shuru mov bl,n mov bh,0 mov xhbx,dl cmp bx,0 je qq1 mov cl,n cbw mov si,0 mov al,xhbx e7: cmp al,xhsi je e5 add si,1 loop e7 jmp qq1 e5: output ts4 jmp e6 qq1:output mess2 output mess4 mov si,0 mov cx,3 qq3:shuruu cmp dx,78h jbe qq2 output ts3 jmp qq1 qq2:mov bufsi,dl output bg add si,1 loop qq3 mov bl,n cbw mov al,buf0 mov chibx,al mov al,buf1 mov engbx,al mov al,buf2 mov matbx,al ret input endp (2) MODIFYMODIFY 子程序子程序 modify proc near md1:output mess1 shuru mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xhsi je qq1_1 add si,1 cmp si,bx jbe md output mess jmp md1 qq1_1: mov di,si output mess2 output mess4 8 mov si,0 mov cx,3 qq3_1:shuruu cmp dx,78h jbe qq2_1 output ts3 jmp qq1_1 qq2_1:mov bufsi,dl output bg add si,1 loop qq3_1 mov al,buf0 mov chidi,al mov al,buf1 mov engdi,al mov al,buf2 mov matdi,al ret modify endp (3)DELETEDELETE 子程序子程序 delete proc near sc1:output mess1 shuru mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xhsi je sc2 add si,1 cmp si,bx jbe sc output mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3 mov cx,bx sc4:mov dl,chisi+1 mov chisi,dl mov dl,engsi+1 mov engsi,dl mov dl,matsi+1 mov matsi,dl mov dl,xhsi+1 mov xhsi,dl add si,1 loop sc4 sub n,1 sc3: ret delete endp (4)FINDFIND 子程序子程序 find proc near call sum call ping bj1:output mess1 shuru mov bl,n mov bh,0 mov al,dl mov si,0 bj: cmp al,xhsi je i add si,1 cmp si,bx jbe bj output mess jmp bj1 i: output strr2 shuzi xhsi output bg mov al,chisi cbw shuzii ax output bg mov al,engsi cbw shuzii ax output bg mov al,matsi 9 cbw shuzii ax output bg mov al,pjsi cbw shuzii ax output bg mov ax,si mov bl,2 mul bl mov bx,ax shuzii zcbx output bg shuzi mcsi ret find endp (5)COUNTCOUNT 子程序子程序 count proc near mov cx,5 mov si,0 zl: mov gs0si,0 add si,1 loop zl mov cl,n mov ch,0 mov si,0 c11:mov al,chisi cmp al,90 jl cc1 add gs00,1 jmp cc8 cc1:cmp al,80 jl cc2 add gs01,1 jmp cc8 cc2:cmp al,70 jl cc3 add gs02,1 jmp cc8 cc3:cmp al,60 jl cc4 add gs03,1 jmp cc8 cc4:add gs04,1 cc8:add si,1 loop c11 lea si,gs0 lea di,gs1 mov cx,5 cld rep movsb mov cx,5 mov si,0 cc9: mov gs0si,0 add si,1 loop cc9 mov cl,n mov ch,0 mov si,0 mov cl,n mov ch,0 mov si,0 c111:mov al,engsi cmp al,90 jl cc15 add gs00,1 jmp cc88 cc15:cmp al,80 jl cc22 add gs01,1 jmp cc88 cc22:cmp al,70 jl cc33 add gs02,1 jmp cc88 cc33:cmp al,60 jl cc44 add gs03,1 jmp cc88 cc44:add gs04,1 cc88:add si,1 loop c111 lea si,gs0 lea di,gs2 mov cx,5 10 cld rep movsb mov cx,5 mov si,0 ct: mov gs0si,0 add si,1 loop ct mov cl,n mov ch,0 mov si,0 c13:mov al,matsi cmp al,90 jl cc1_2 add gs00,1 jmp cc8_2 cc1_2:cmp al,80 jl cc2_2 add gs01,1 jmp cc8_2 cc2_2:cmp al,70 jl cc3_2 add gs02,1 jmp cc8_2 cc3_2:cmp al,60 jl cc4_2 add gs03,1 jmp cc8_2 cc4_2:add gs04,1 cc8_2: add si,1 loop c13 ret count endp 3.43.4 程序调试结果及分析程序调试结果及分析 3.4.1 主界面: 11 3.4.2 录入学生信息界面: 3.4.3 修改学生信息界面: 12 3.4.4 删除学生信息界面 3.4.5 查找学生信息界

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论