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

下载本文档

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

文档简介

1、课程设计报告课程名称:计算机组成原理与汇编语言报告题目:学生成绩管理系统学生姓名:所在学院:信息科学与工程学院专业班级:指导教师:2013年 6月26 日摘要随着计算机在教育系统中的应用得到了巨大的发展,教务管理自动化已成为学校信息化管理的一个重要标识。该课程设计采用汇编语言的基本指令结合子程序、宏、系统功能调用等多种技术分层、分模块实现了学生档案的建立、存储,学生成绩的录入、显示、查询、编辑等功能的一个完整的学生成绩管理系统。该系统由一个主程序完成系统的菜单显示,通过选择菜单调用相应的子程序,实现相应的功能。该课程设计的完成不仅有助于我们对汇编语言的程序设计技术的掌握和综合知识的运用能力的提

2、高,也利于对程序开发过程的了解,为将来系统开发打下好的基础。关键词:汇编语言;成绩管理;添加;查询目录一、课题分析1二、需求分析22.1 功能描述22.2 功能模块分析2学生信息输入功能2学生信息修改功能:2学生信息删除功能2学生信息查找功能2显示排名信息功能3文件写入及退出功能3三、设计方案43.1系统流程图43.2子程序模块设计53.3 详细设计73.4 程序调试结果及分析10四、结论与心得144.1自我评价144.2缺点和不足144.3开发感悟14五、参考文献15一、课题分析题目:学生成绩管理分析:首先需要建立学生成绩文档;然后依据学号输入学生各门功课成绩(假设3门功课);功能上要求修改

3、指定学号的学生成绩;统计指定学号的学生的平均成绩、总成绩,并在屏幕上显示;统计指定学号课程的平均成绩,并在屏幕上显示;每门课程成绩分析在屏幕上显示3门课程的各个分数段的学生人数(分数段为:>=90;80-89;70-79;60-69;<=59)此处可以以表格的形式给出数据,或者以坐标曲线的形式给出。对学生成绩记录进行检索(按学号、姓名), 成绩排序(按总成绩降序排列), 退出,最好用到文件处理。二、需求分析2.1 功能描述学生成绩管理,最基本能实现的的功能是输入学号,同时显示该学生的基本的信息,我设计的成绩管理系统功能还包括了显示该生的语文,英语,数学三门学科的成绩,求出了该生的总

4、分,以及该生的平均分,动态输入学生的成绩,而且成绩是按照三位数显示的,可以输入任意多的学生人数,每个学生都是三门课程,最后统计输入所有学生的各科各个分数段的人数,最后显示出所有学生的成绩排名情况。为了使系统更实际一些,我设计的系统包括建立了文件,方便学生的信息一次录入之后可以保存该数据,将该数据保存在名为score的txt文件中,而且文件的路径与该软件默认的安装路径一致;为了使系统更方便用户使用,我设计了菜单,菜单中设计了六个功能,包括插入,删除,查询,修改,查看,退出等。2.2 功能模块分析2.2.1 学生信息输入功能这是必不缺少的功能,学号的输入,成绩的输入都离不了这个功能,在输入成绩时,

5、特地加了一个判断功能,在输入不合理的成绩时,程序将提示出错,并要求重新输入。在输入学生学号的时候,程序首先会判断此学生的成绩是否存在,如果存在,则程序提示需重新输入。插入一条学生记录子模块,搜索可用单元,接收输入的记录,并写入文件。建立成绩表子模块,控制输入界面,并多次调用插入记录子模块,完成成绩的建立。2.2.2 学生信息修改功能考虑到会存在在输入成绩时,容易输入错误,或者发生个别学生的试卷被误判需修改成绩等情况,所以加了此功能,在发生以上情况时可以调用此功能,修改指定学生的成绩。2.2.3 学生信息删除功能如果输入的学生信息根本不存在,或者发生其它情况需删除一个无意义的学生信息时,可以调用

6、此功能。此功能将实现将指定学号学生的信息删除。2.2.4 学生信息查找功能当需要查询某个学生的成绩或者检查输入是否有误时,可以调用此功能,此功能实现将指定学号学生的成绩显示出来。实际上在调用此功能的同时,程序会首先求的总成绩,平均成绩,然后产生排名结果,最后将数据信息显示。2.2.5 显示排名信息功能此功能会将学生成绩自动相加,得到每位学生的总成绩及平均成绩,然后进行排名,得到每个学生的名词,最后按照输入顺序将所有学生的学号,语文成绩,英语成绩,数学成绩,平均成绩,总成绩,名次依次输出。模块中排名处理、学科平均成绩计算均需取出某一学科的所有学生成绩,因而此操作作为公用子程序以供调用。个人总分及

7、平均分处理较为简单,根据索引逐条处理记录。排名处理。排名结果为一维数组,与学科成绩存在对应关系。查询学生记录,先进行学号匹配,再输出一条记录;查询该生的所有信息。2.2.6 文件写入及退出功能此功能实现将学生的信息保存在一个文件里。此程序默认将文件放在C盘下,名称为:score,属性为txt格式的文本文档。该文档能够保存数据,以便数据不需要重复录入,是系统更能满足用户需求。写入文件完毕后,关闭文件,并退出程序。三、设计方案开始开始3.1系统流程图打开文件显示菜单置文件指针到文件尾输入一个字符Y是i?从终端接收用户的输入记录调用Insert子程序N记录写入文件Y是m?N调用Modify子程序关闭

8、文件并返回是f?Y图2 Inset子程序调用Find子程序NY开始是s?N打开文件调用Rank子程序Y是c?N读一个记录调用Count子程序是esc?是否为要修改记录NY结束程序文件指针后退一个记录图1 主程序写入修改记录并关闭文件返回图3 modify子程序开始开始打开文件打开文件接收删除记录接收删除记录读一条记录读一条记录YN对数学成绩分段并统计N学号相同?指针到文件尾Y删除该记录Y显示统计结果关闭文件关闭文件返回返回图4 delete子程序图5count子程序3.2子程序模块设计(1)INSERT 子程序INSERT 子程序的功能是录入一条记录。首先保留现场入栈,然后DOS中断3D号功能

9、打开FNAME指定的文件,然后宏GETIN清除屏幕右半部分的记录输入区域。在记录的第一项处置光标,用INTPUT获取记录内容,用DOS中断42H号功能将指针移到文件末尾。再用DOS中断40H号功能将放在BUFFER缓冲区的23个字节的内容写到文件中,接着关闭文件,重新设置光标位置在显示记录位置。最后弹栈恢复现场。(2)MODIFY子程序MODIFY子程序的功能是修改记录。先保护现场,然后清除右上部分的记录输入区域,接着打开文件。用input子程序获取输入的记录信息,并存入BUFFER1中。从打开的文件中读取一个记录的内容(23个字节)放在BUFFER2中。比较记录前面的15个字节(姓名),如果

10、不同,则读取下一个记录;如果相同,则回移一个记录的指针,回到刚才这条记录的位置(因为读取一个记录后,指针已移到下一条记录上)。将放在BUFFER1中的输入的记录写到刚才这条记录在文件中的位置上,从而实现此记录的修改。最后关闭程序,恢复现场。(3)DELETE子程序DELETE子程序的功能是删除一条记录。首先保留现场,清除屏幕。然后打开文件,保留文件句柄。用宏GETIN获取15个字节的姓名字符,放在BUFFER1中。读取一条记录(23个字节),放在BUFFER2中,然后和BUFFER1中内容比较,如果不同,读取下一条记录。如果姓名相同,则把指针后移6个字符(3门功课所占空间),写入6个“0”字符

11、。关闭文件,恢复现场并退出。(4)FIND子程序FIND子程序的功能是打印文件中的记录。用OPENF子程序打开文件。读取一条记录,汇编语言提供了自定义数据结构的结构定义语句,可将不同的数据类型放在一个数据结构中,便于处理,在本程序中的记录就采用了结构定义语句。这里读取记录也用了结构的方法。接着用DOS中断21H的5号功能,逐字打印存放在BUFFER1中的所以字符。一条记录打完后,打印回车符换行。然后用同样方法继续读取下一条记录并打印,直到文件结束为止。最后关闭文件退出。(5)COUNT子程序COUNT子程序的作用是统计各分数段小说人数,并简化程序,作为示例,本程序只统计记录数学各分数段的人数。

12、首先显示统计结果的标题:maths<60<70<80<90<100。然后打开文件。读取记录,将记录的第16个字符(数学分数的高位)取出比较。统计结果依次放在以BUFFER3开头的内存单元中,如果小于60,则将小于60的记录单元BUFFER3加一;若小于70,则将小于70的记录单元BUFFER3加一,即BUFFER3下一个地址单元内容加一,依次类推。处理完后再读取下个记录,作同样处理,直到文件结束为止。接着显示放在BUFFER3中的各分数段的人数的统计结果,最后关闭文件结束。从程序中可以看出,统计时程序有个限制,本例每个分数段最多不能超过9个人。3.3 详细设计(1

13、)INSERT 子程序insert proc near call input add n,1 retinsert endpinput 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,xhbxe7: cmp al,xhsi je e5 add si,1 loop e7 jmp qq1e5: output ts4 jmp e6 qq1:output mess2 output mess4 mov si,0 mov cx,3qq3:sh

14、uruu cmp dx,78h jbe qq2 output ts3 jmp qq1qq2:mov bufsi,dl output bg add si,1loop qq3 mov bl,n cbw mov al,buf0 mov chibx,al mov al,buf1 mov engbx,al mov al,buf2 mov matbx,al retinput endp(2)MODIFY子程序modify proc near md1:output mess1 shuru mov bl,n mov bh,0 mov al,dl mov si,0md: cmp al,xhsi je qq1_1

15、add si,1 cmp si,bx jbe md output mess jmp md1 qq1_1: mov di,si output mess2 output mess4 mov si,0 mov cx,3 qq3_1:shuruu cmp dx,78h jbe qq2_1 output ts3 jmp qq1_1qq2_1:mov bufsi,dl output bg add si,1loop qq3_1 mov al,buf0 mov chidi,al mov al,buf1 mov engdi,al mov al,buf2 mov matdi,al ret modify endp(

16、3)DELETE子程序delete proc near sc1:output mess1shuru mov bl,n mov bh,0 mov al,dl mov si,0sc: 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,bxsc4: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

17、 xhsi,dl add si,1 loop sc4 sub n,1 sc3: retdelete endp (4)FIND子程序find proc near call sum call pingbj1: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 m

18、ov al,engsi cbw shuzii ax output bg mov al,matsi 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 retfind endp(5)COUNT子程序count proc near mov cx,5 mov si,0zl: mov gs0si,0 add si,1 loop zl mov cl,n mov ch,0 mov si,0c11:mov

19、 al,chisi cmp al,90 jl cc1 add gs00,1 jmp cc8 cc1:cmp al,80 jl cc2 add gs01,1 jmp cc8cc2:cmp al,70 jl cc3 add gs02,1 jmp cc8cc3: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 m

20、ov cl,n mov ch,0 mov si,0 mov cl,n mov ch,0 mov si,0c111:mov al,engsi cmp al,90 jl cc15 add gs00,1 jmp cc88 cc15:cmp al,80 jl cc22 add gs01,1 jmp cc88cc22:cmp al,70 jl cc33 add gs02,1 jmp cc88cc33:cmp al,60 jl cc44 add gs03,1 jmp cc88cc44:add gs04,1 cc88:add si,1 loop c111 lea si,gs0 lea di,gs2 mov

21、cx,5 cld rep movsb mov cx,5 mov si,0ct: mov gs0si,0 add si,1 loop ct mov cl,n mov ch,0 mov si,0c13:mov al,matsi cmp al,90 jl cc1_2 add gs00,1 jmp cc8_2cc1_2:cmp al,80 jl cc2_2 add gs01,1 jmp cc8_2cc2_2:cmp al,70 jl cc3_2 add gs02,1 jmp cc8_2cc3_2:cmp al,60 jl cc4_2 add gs03,1 jmp cc8_2cc4_2:add gs04,1 cc8_2: add si,1 loop c13retcount endp 3.4 程序调试结果及分析主界面:录入学生信息界面:修改学生信息界面:删除学生信息界面查找学生信息界面:显示分数

温馨提示

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

评论

0/150

提交评论