版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.学生成绩管理系统一、实验题目设计学生成绩管理程序 (3 门课程 ),实现以下功能:1.各科成绩的录入、修改和删除(10 个学生,每人 3 门成绩,分别按学生存放。即学生编号 * ,语文成绩 * ,语文成绩名次,数学成绩* ,数学成绩名次,英语成绩 * ,英语成绩名次,后面的三个单元存放该生总成绩、名次、平均成绩)带 * 号的为录入值2.排序:(1) 单科课程成绩排序 (分数从高到低 ):结果放到每门成绩之后的名次单元中(2) 总成绩排序 (分数从高到低 ) :结果放到每个学生后面的名次单元中3 查找:(1) 查询某位同学某课程成绩及名次 ;总成绩及名次 .(2) 查询单科课程不及格同学4.
2、统计:(1) 单科平均分(2) 总成绩平均分(3) 单科各分数段人数 (60 以下, 6070 , 7080 ,8090 , 90100)二、设计思路1. 数据定义。每个学生记录由学生编号,语文成绩,语文成绩名次,数学成绩,数学成Word 专业资料.绩名次,英语成绩,英语成绩名次,总成绩、名次、平均成绩组成。其它数据,单科平均成绩,总成绩平均分,单科各分数段人数。学生编号 0 数字字符串 5成绩 0 数字字符串 3名次 1 数字字符串 2分数段人数 5 数字字符串 5索引表元素无符号双字节数所有成绩数据,语文成绩、数字成绩、英语成绩、总成绩、平均成绩,均采用上述成绩的定义;所有名次数据,均采用
3、上述名次定义。2. 数据存储。所有数据存储于文件中。每条学生记录占用70 个字节,实际有效字节为24 字节,记录最后两个字节是回车换行符,其余字节为空字符,学生记录从第0 个字节开始存储。第1000 个字节开始用以存储索引表。单科平均成绩,总成绩平均分,单科各分数段人数存储在所有学生记录之后的单元中。成绩数据,占用三个字节, 排名数据占用两个字节, 学号数据占用五个字节, 各科分数段人数占用五个字节,有效字节不足时,在其后补上空字符,即,如,成绩100 存储为 31, 30 , 30 ; 90 存为 39 , 30, 00 。3. 系统结构系统分为四部分:插入记录、删除记录、数据处理和查询。结
4、构图如下:Word 专业资料.学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学学3.1.插入模块,包括建立成绩表、插入一条学生记录两个子模块。插入一条学生记录子模块,搜索可用单元,接收输入的记录,并写入文件。建立成绩表子模块,控制输入界面,并多次调用插入记录子模块,完成成绩的建立。3.2.删除模块,包括学号查询匹配、删除处理子模块。学号设计为定长,长度为 2 字节,搜索以完全匹配的方式进行。删除处理,完成对索引表的修改。3.3.数据处理模块,包括计算个人总分、平均分,计算单科平均分,成绩排名
5、处理, 统计各科分数段人数子模块,各子模块完成相应的功能, 并把结果写入文件。3.4.查询模块,完成数据的显示功能,包括查询某个学生个人记录,查询不及格,查询各科分数段人数及输出所有记录三、算法设计。Word 专业资料.1. 所有数据在文件中的修改以覆盖的方式进行,因此将为每个数据分配固定长度的存储空间。根据以上数据的定义,数据写入文件前必须“规格化”,使其符合定义。从键盘输入学号、成绩数据到缓冲区,最后一个字符是0DH ,且长度不等,需去掉回车符,补上空字符。总分、平均分的计算。 从文件中读出数据, 需先转换成二进制数再进行计算,结果必须转换成符合格式的字符串写入文件。从字符串到数字的转换算
6、法流程图如下:开始STR 表示从文件读出的符合格SI 指向 STR式的字符串。AX清零是第一个循环用以算出有效数字循环结束?SI SI+1位数,作为第二个循环的循环次数。否第二个循环, AX 作累加器,循否SI 为为 0?AX AX+环体是“乘 10、加上数字”,循环结是束算出其值CXAXAX 乘10AX AX+SIAXAX-30H否循环结束?是结束从数字转换成字符串,算法程序图:Word 专业资料开始是百位为?否FLAG 1STR+BX百位数字BX BX+1否十位为?是否FLAG为 1?是STR+BX十位数字BX BX+1.STR+BX个位数字BX BX+1SI0是SI SI+1SI>
7、BX?否STR+SI+30h是STR+BX 0 BX>3?否BX BX+1结束2. 程序采用索引表的方式,完成记录的删除、插入与查询;由于不要求学号有序,因而可以采用索引表, 对记录和文件空间进行管理。 其优点是管理较为简单,可以进行随机访问, 能够满足插入删除的需求; 缺点是难以实现学号有序。索引表设计如下:记录最大容量设计为 MAX, 链表长度为 2*MAX+2 个字节,即 MAX+1 个字长。最后一个字存放尾指针目前学生记录数目;空闲的位置值为 0 ,否则为 1.学生的记录从第 0 个字节的位置开始存放,每70 个字节为一条记录。程序Word 专业资料.初始化时,将索引表读取到缓冲
8、区INDEX ; 索引位置表LP 与相应文件空间的指针 FP 换算方式是:FP= (LP/2) * 70例如, WORD PTR INDEX+4值为 1, 它所表示文件中开始指针值为140,长度为 70 字节的空间已经使用,即已经存有记录;否则表示空间可用。遍历索引表,搜索全部记录:从索引表第一个字开始,顺序扫描索引表。找到非0,将索引表位置 LP 转换成文件指针 FP,读取数据,直到遇到0 结束。转换成文件指针的宏定义是:LOCATEMACROBXREGMULBXPUSHAXMOVDX,AXPUSHBXPOPBXMOVAX,BXREGPOPAXMOVBX,2ENDMDIVBLMOVBX,70
9、LOCATE 宏参数是目前索引表位置BX,结果得到对应记录的文件指针送BX。3. 插入模块插入学生记录操作流程:()比较目前记录数NUM 与设计最大容量MAX ,相等操作结束;()接收数据()搜索可用文件单元()修改索引表、写入文件。搜索可用文件单元,顺序扫描INDEX ,直到INDEX+BX为 0,根据BX 可转换成可用的文件单元指针。4. 删除模块:删除学生记录操作流程: ()接收搜索条件,程序设计学号长度为最大为5(2 )根据索引表,搜索匹配学号。 ( 3)修改索引表。数据处理模块。修改索引表只需要将相应记录的在表中索引值改为0.Word 专业资料.5. 数据处理模块。模块中排名处理、
10、学科平均成绩计算、 分数段人数统计操作, 均需取出某一学科的所有学生成绩, 因而此操作作为公用子程序以供调用。个人总分及平均分处理较为简单,根据索引逐条处理记录。学科平均成绩计算、 分数段人数计算, 取出学科成绩到数据缓冲区,再进行相应操作,并将结果写入文件相应位置。结果在文件中的位置相对固定,直接写入文件。排名处理。排名结果为一维数组, 与学科成绩存在对应关系。排名结果写入文件操作需多次进行,所以设计成子程序。程序段如下:DATA_INPROCWRITEDX,CXPUSHREGADDSI,2MOVBX,NUMPJMPDIN_NEXT2MOVCX,INDEX+BXDIN_NEXT1:MOVBX
11、,0INCCXDATA_LP1:DIN_NEXT2:PUSHCXPOPBXPUSHBXPOPCXMOVDX,INDEX+BXADDBX,2CMPDX,0LOOPDATA_LP1JZDIN_NEXT1LOCATEBXDATA_EXIT:ADDDX,DIPOPREGMOVEDXRETMOVCX,CXTEMDATA_IN ENDPMOVDX,SIWord 专业资料排名处理算法流程图:NUM 是数据个数,作为循环计数。 每次循环,找出最大的数,并将其改为CX。除最后一次循环外, CX 将是负数,由于成绩不存在负数,故不影响下一次循环找出最大数。如 NUM 为 10,第一次找到的最大数将改为-9。最后一
12、次将改成0.循环结束后,所有数据由CX,到 0组成,加上 NUM调整后,数据变成由1 到NUM 组成,即排名数据。.开始CXNUM是循环结束?否找出最大数 MAXMAX1-CXCXCX-1所有数据加 NUM结束6. 查询模块。模块由学生记录查询、 学科分数段人数查询、 学科不及格学号查询、 显示所有数据子模块组成。所有数据,除索引表外,均以定长字符的形式进行存储,方便输出。查询学科分数段人数、所有记录操作,可以直接将数据输出;查询学生记录,先进行学号匹配,再输出一条记录;查询学科不及格学号,根据索引表,读取有效记录的某学科成绩,符合成绩不及格者输出其学号记录。模块算法较为简单, 界面处理较为复杂。 界面总体背景在程序启动时进行初始化,此模块中各子模块关键在于控制结果输出显示。Word 专业资料.四、实验结果显示所有记录五、实验分析:程序在 emu8086 环境下进行编辑,采用MASM5.0 进行编译连接,并调试通过。程序采用文件进行数据存储, 并且以字符的方式进行存储。 这种方式存在诸多不足:数据的读取、写入需要进行转换, 使用不方便;文件的操作极容易出错,容易造成数据错误, 如指针移动出现问题, 文件中空字符被替换成空格字符;调试困难。为方便调试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 温故知新 2026年秋季初一历史部编版上学期期中测试卷(含答案)
- 超越自我 2026年秋季初二语文部编版10月月考试卷(含答案)
- 命题风向标 2027届广西壮族自治区历史初三沪教版查缺补漏专项训练(含答案)
- 2027年河北省语文中考苏教版高分冲刺模拟卷(含答案)
- 2027年山东省道德与法治九年级冲刺模拟卷(含答案)
- 快速提分 2026年秋季初二历史人教版上学期期末测试卷(含答案)
- 2027年陕西省道德与法治中考模拟演练卷(含答案)
- 2027年江苏省语文九年级真题变式卷(含答案)
- 2026 湖北事业编社会工作岗 高频考题试卷 含答案解析
- 2026 水利岗面试易错题集 含答案
- 2026年企业文化企业建设知识竞赛-中国电信知识竞赛历年参考题库含答案解析
- 2026高考议论文范文19篇(完整版含真题立意+考场高分作文)
- ESG管理制度手册
- 《演唱 郊游》课件2025-2026学年冀少版三年级下册音乐
- 2026年乡村医生真题【历年真题】附答案详解
- 2026年C1驾照三力测试模拟题库
- 早产儿母乳喂养知识培训
- 《计算机程序设计员》教学大纲-初中级
- 急性脑卒中静脉溶栓桥接动脉取栓方案
- 银座运营管理制度手册
- 500kV变压器保护及并联电抗器保护技术规范
评论
0/150
提交评论