I郑重声明:本篇文档为从百度文库中下载的经过原文修改后的!目录第一章设计课题概述..........................................................................................................21.1课程设计目的.........................................................................................................21.2设计内容及要求......................................................................................................2第二章总体设计................................................................................................................32.1总体设计思路.........................................................................................................32.2各版块功能描述.....................................................................................................3第三章详细设计................................................................................................................53.1程序功能设计.........................................................................................................53.2各模块程序详细流程...............................................................................................53.3源代码及注释.........................................................................................................8第四章调试过程及结果.....................................................................................................324.1显示所有成绩.......................................................................................................324.2插入成绩.............................................................................................................324.3查询学生成绩.......................................................................................................334.4删除学生成绩.......................................................................................................344.5修改学生成绩.......................................................................................................354.6输出数学成绩.......................................................................................................36第五章总结.....................................................................................................................37参考资料.........................................................................................................................382第一章设计课题概述1.1课程设计目的当今社会是一个信息时代的社会,计算机的使用也是越来越普遍了,各行业在管理职员都采用了一些管理软件,不管是银行、学校,大大小小的各种企业,都是使用的相应的管理软件管理企业的各种信息,我选择的这个汇编语言课程设计题就是一个简单学生信息管理程序,虽然只能处理一些简单操作,但是其意义却是非凡,同过此课程设计,让我了解了一些简单的管理软件的基本原理,更深刻的理解了汇编语言的特点,对汇编语言有了一个跟深层次的理解。利用汇编程序编写一个小型学生成绩管理程序,实现学生信息成绩的插入、修改、显示所有学生的各科成绩,并且可根据输入学生姓名插询该生的各科成绩,可统计所有成绩个各分数段的人数。1.2设计内容及要求设计一个学生管理程序,主要实现以下功能(1)各科成绩的录入、修改、和删除。(2)按姓名查询每个学生哥们成绩。(3)显示查询结果(4)统计各分数段的成绩的人数个分数段的人数。程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后,将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。3第二章总体设计2.1总体设计思路(1)各科成绩的录入、修改、和删除。(2)按姓名查询每个学生各科成绩。(3)显示查询结果(4)统计各分数段的成绩的人数个分数段的人数。程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。2.2各版块功能描述main主程序模块用于对各种操作的调用,如插入、删除、显示所有学生的各科成绩等。Insert子程序插入模块用于实现对新增学生的插入,插入至学生文本中,使用时需要调用get_rec子程序实现从键盘输入一个学生的信息。get_rec子程序模块主要被Insert子程序调用,用于从键盘输入一个学生的信息query子程序模块根据学生姓名查询学生的各科成绩,学生姓名由键盘输入,再从文件中一次比较找出要查询学生的信息。modify子程序模块首先从键盘输入要修改的学生信息,在从学生文件中寻找要修改的学生姓名,并将要修改后的信息写入文件。delete子程序模块由用户输入要修改学生的姓名,从学生文件中找出要删除的学生信息,将该学生的各项信息置为0,实现删除的操作。4list子程序模块用于显示学生文件中所有学生的各科成绩的信息,每次从文件读取一个学生的信息并显示。count子程序模块用于对学生各科成绩的各分数段的统计。5第三章详细设计3.1程序功能设计程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后,将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。以上功能单独运行可以实现,(即在进入菜单后选择其中一项功能运行可以成功运行,在关闭后选择另一项功能可以成功运行),但是在整体运行时得不到想要的结果。所以如果输入有误,按退格键后将会出错,但是此程序没有处理错误的功能,因此再输入时要特别注意。注:此程序除了源程序外还需要一个学生文件,该程序命名为score.txt,该文件用于存放学生信息,在源程序中程序数据段中fname的值应与文件的存放位置一致。3.2各模块程序详细流程打开文件读一个记录读错?文件显示记录显示错误信息返回关闭文件打开文件置文件指针到文件末尾从终端接收用户输入记录记录写入文件关闭文件返回YN6Query流程图打开文件读一个记录是否为所寻找记录?显示记录关闭文件返回NYModify流程图打开文件读一个记录文件指针后退一个记录写入修改记录并关闭文件是否为修改的记录返回YN7Count流程图打开文件读一个记录对所有成绩的分数段统计显示统计结果关闭文件指针到文件尾返回Y主程序流程图显示菜单输入一个字符callcouncallinsertcalllistcallquerycalldeletecallmodify开始是l?是q?是d?是m?是C是i?结束是e?YYYYYYYNNNNNNN83.3源代码及注释datasegmentmess1db'studentgrademanagementsystem',0ah,0dh,'$'mess2db'thisismainmenu',0ah,0dh,'$'mess3db'insert(i)name:',0ah,0dh,'$'mess4db'modify(m)maths(a):',0ah,0dh,'$'mess5db'delete(d)English(b):',0ah,0dh,'$'mess6db'query(q)computer(c):',0ah,0dh,'$'mess7db'count(c)Chinese(d):',0ah,0dh,'$’mess8db'exit(e)’,0ah,0dh,'$'mess9db'**********************************************************$'mess10db'**********************************************************$'mess11db'nameMaEnCoCh',0ah,0dh,'$'mess13db'list(l)pleaseinput:',0ah,0dh,'$'''mess12db'maths60708090100',0ah,0dh,'$'err1db'thereisnotthisstudent$'err2db'fileclosewrong$'fnamedbe:\masm5\score.txtbuffer1db23dup(?)buffeerdb0ah,0dh,'$'buffer2db30dup(?)buffer3db8dup('0')countdb5handledw?9deldb8dup('0')xdb?dataendsshowmacroaddrsleadx,addrsmovah,9int21hendmset_p1macroamovah,2movdh,amovdl,36movbh,0int10hendmset_p2macromo