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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理课程设计学生成绩系统.docx

1、微机原理课程设计学生成绩系统二一四二一五学年 第一学期信息科学与工程学院自动化系课程设计报告书姓 名: 学 号: 班 级: 课程名称: 指导教师: (一)课程设计内容及要求(二)课程设计所应用的基本知识点(三)实验原理(四)程序流程图(五)程序详细执行过程(六)程序清单(七)程序运行结果(八)收获与体会(九)参考文献一、课程设计内容及要求题目二 学生成绩管理 设计要求:建立学生成绩文档,实现学籍简单管理。设计内容:(1)建立学生成绩文档;(2)输入学生各门功课成绩;(假设3门功课);(3)修改指定学号的学生成绩;(4)统计指定学号的学生的平均成绩、总成绩,并在屏幕上显示;(5)统计指定学号课程

2、的平均成绩,并在屏幕上显示;每门课程成绩分析在屏幕上显示3门课程的各个分数段的学生人数(分数段为:=90;8089;7079;6069;=59),此处可以以表格的形式给出数据,或者以坐标曲线的形式给出。对学生成绩记录进行检索(按学号、姓名) 成绩排序(按总成绩降序排列) (6)退出;报告要求:(1)方案选择和分析;(2)主要设计思路及工作原理(流程图);(3)调试出现的问题及解决方法;(4)运行效果及改良措施;提交程序清单。二、课程设计所应用的基本知识点本系统的设计是按照主程序调用子程序的方法来实现的。其中主程序完成菜单的实现,子程序完成一个独立功能的实现。本程序使用了DOS系统功能调用(IN

3、T 21H),程序中用到的系统功能调用如下。AH功能调用参数返回参数02显示输出DL=输出字符09显示字符串DS:DX=串地址字符串以$符结束3C建立文件DS:DX=ASCIZ串地址CX=文件属性成功:AX=文件代号失败:AX=错误代码3D打开文件DS:DX=ASCIZ串地址AL=访问文件和共享方式0=读,1=写,2=读/写成功:AX=文件代号失败:AX=错误代码3E关闭文件BX=文件代号失败:AX=错误代码3F读文件或设备DS:DX=缓冲区首地址BX=文件代号CX=读取的字节数成功:AX=实际读取的字节数AX=0已到文件尾失败:AX=错误代码40写文件或设备DS:DX=缓冲区首地址BX=文件

4、代号CX=写入的字节数成功:AX=实际写入的字节数失败:AX=错误代码三、实验原理该程序按照要实现的功能一共分为七大模块:分别完成学生成绩的浏览、学生成绩的插入、学生成绩的查询、学生成绩的修改、学生成绩的删除、学生成绩各分数段的人数统计以及管理系统的退出。浏览模块设计List(浏览)子程序时,先打开文件,然后读一个记录,并通过过程化语言调用SHOW_STU将其显示到屏幕上,若文件指针没有到达文件尾,则继续读记录并显示,当文件指针到达文件尾时,若没有学生信息,在屏幕上进行提示并关闭文件返回主程序。插入模块设计Insert(插入)子程序时,先打开文件SCORE.TXT,并置文件指针到文件尾,然后过

5、程化语言调用子程序接受用户的输入,再把学生的输入写入文件,最后关闭文件返回主程序。查询模块子程序时,先打开文件,通过过程化调用,先判断学号是否合法,合法后再查找学生的学号,然后读文件记录,并同要查找的学生学号比较,若相同则输出,若不同则继续读文件记录,最后显示查询结果,关闭文件返回程序。修改模块设计Modify(修改)子程序时,先打开文件SCORE.TXT,通过过程化定义语言调用子程序得到要修改的记录,然后读文件中的记录,并与用户输入的记录作比较(只比较记录中的名字部分),若不同则读下一个记录,若相同则将文件指针后退20个字符(一个记录为20个字符的长度),然后把用户输入的记录写入文件,最后关

6、闭文件返回主程序。删除模块 设计Delete(删除)子程序时,先打开文件,再过程化定义语言得到要删除的学生的学号,然后读文件中的记录,直到其记录的学号与所输入的学号相同为止,把文件指针后退5个字符,关闭文件返回主程序。 分数段统计模块设计Count(统计)子程序,先打开文件,然后读记录,比较记录的第16个字符(数学成绩的高位)并统计,直到文件指针到达文件尾,最后关闭文件调用宏SHOW_EXIT显示统计结果,返回主程序。退出模块设计Exit(退出)子程序,先清屏,然后通过过程化定义语言调出初始源代码段中编写的人性化退出界面,借助DOS操作系统系统下的退出功能关闭成绩管系统。程序功能示意图四、程序

7、流程图五、程序详细执行过程显示列表功能list程序段,首先,为以防有前操作在下屏幕显示,所以要清下屏,设置光标位置后,输出提示语句,主要用下段程序实现浏览功能。查询功能查询功能实现是通过检验输入字符是否为“Q”,当输入正确时要在利用宏set_p2设置的光标处显示提示信息后,清下屏,以防有前操作占用界面空间。等待用户输入要查询学生的姓名,只有在输入正确后,才能显示其成绩,若输入姓名与文件中各姓名不符,则输出“错误”提示语句,不输出成绩。无论是在查询功能实现后,还是查询失败,光标返回到输入处,则此时可重新选择菜单中的功能。退出功能当在显示菜单中输入“E”时,选择退出程序功能,此时调用屏幕全清,宏c

8、lear,并输出友好语句bye退出。六、程序清单 DATA SEGMENT TIPS0 DB Tips:,0DH,0AH,$ ;插入提示信息 TIPS1 DB SEX: 1:male 0:female,0DH,0AH,$ TIPS3 DB Please input ID:$ ;查询提示信息 TIPS4 DB Please enter r to return$ TIPS5 DB Please enter r to return,c to continue$ ID DB ID: $ NAM DB NAME: $ SEX DB SEX: $ SCORE DB SCORE: $ FID DW ? ;文

9、件号 SEXM DB male $ SEXF DB female $ COUNT_A DB 9 0 100: $ ;统计提示信息 COUNT_B DB 8 0 8 9: $ COUNT_C DB 7 0 7 9: $ COUNT_D DB 6 0 6 9: $ COUNT_E DB 0 0 5 9: $ AB DB 5 DUP(0) ;统计结果 MESS1 DB * Wust Student Grade Management System *,0AH,0DH,$ MESS2 DB * 1201 zhengliming 2014.12.24 *, 0AH,0DH,$ MESS3 DB * shu

10、ru insert (i) *,0AH,0DH,$ MESS4 DB * xiugai modify (m) *,0AH,0DH,$ MESS5 DB * shanchu delete (d) *,0AH,0DH,$ MESS6 DB * chaxun query (q) *,0AH,0DH,$ MESS7 DB * tongji count (c) *,0AH,0DH,$ MESS8 DB * tuichu exit (e) *,0AH,0DH,$ MESS9 DB * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

11、 * $ MESS10 DB * list (l) *,0AH,0DH,$ MESS11 DB * please chose(l/i/m/d/q/c/e): *,0AH,0DH,$ ID_LENGTH EQU 4 ;配置信息 NAM_LENGTH EQU 20 SEX_LENGTH EQU 1 ;性别请勿更改位数 SCORE_LENGTH EQU 5 STU_LENGTH DW ? ;每条学生信息总长度 STU_LENGTH_ADD1 DW ? NAM_SEX_SCORE_LENGTH DW ? DEL DB 30 DUP ( ) ;清空信息用 DEL_DONE DB Delete succe

12、ss !$ ERR1 DB Data error,Please input again!$ ;错误提示信息 NOSTU DB Sorry,there is no this studnet!$ ERR_NO DB No student information!$ ERR_SAME DB There is the same ID,please input again!$ NEWF DB 0DH,0AH,0DH,0AH, Warning: this operation will empty all your data!,0DH,0AH,0DH,0AH, Will you continue? (y:e

13、mpty,other key:return):$ FPATH DB c:score.txt,0 ;数据库文本 STR1 DB 50 DUP (?) ;缓冲区str STR0 DB 50 DUP (?) ;缓冲区str0 ENTER1 DB $ ;空格 TMP DW 0 ;是否为空标志信息 SC DB 0 ;分数保护处用 BYE DB Thanks for use our program!,0DH,0AH,0DH,0AH, Bye Bye$ BY0 DB WUST$ BY1 DB zhengliming $ BY2 DB 201204134022 $ BY3 DB 2012.12.24 $ DA

14、TA ENDS SET_P1 MACRO ;设定光标位置A MOV AH,02H MOV DH,02 MOV DL,03 MOV BH,0 INT 10H ENDM SET_P3 MACRO MOV AH,02H ;设定光标的位置B MOV DH,14 MOV DL,43 MOV BH,0 ;当前这页 INT 10H ENDM TAB MACRO ;换行 MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ENDM CREATEF MACRO FILE_ID,FILE_PATH ;创建文件(传入文件号、传入文件路径) MOV AH,3CH MOV CX

15、,00H ;普通文件 LEA DX,FILE_PATH INT 21H MOV FILE_ID,AX ENDM OPENF MACRO FILE_ID,FILE_PATH ;打开文件(传入文件号、传入文件路径) MOV AL,2 ;读写文式打开 MOV AH,3DH LEA DX,FILE_PATH INT 21H MOV FILE_ID,AX ENDM CLOSEF MACRO FILE_ID ;关闭文件(传入文件号) MOV BX,FILE_ID MOV AH,3EH INT 21H ENDM READF MACRO FILE_ID,TEMP,NUM ;读文件(传入文件号、传入缓冲区、传入

16、字节数) MOV BX,FILE_ID LEA DX,TEMP MOV AX,NUM MOV CX,AX MOV AH,3FH INT 21H ENDM WRITEF MACRO FILE_ID,TEMP,NUM ;写文件(传入文件号、传入缓冲区、传入字节数) MOV BX,FILE_ID MOV CX,NUM LEA DX,TEMP2 MOV AH,40H INT 21H ENDM MOVEF MACRO FILE_ID,STYPE,HIGEC,LOWD ;移动文件指针(传入文件号、传入移动方式、传入偏移字节(高位)传入偏移字节(低位) MOV BX,FILE_ID MOV AH,42H M

17、OV AL,STYPE ;尾+偏移量方式 MOV CX,HIGEC ;偏移字节(高位) MOV DX,LOWD ;偏移字节(低位) INT 21H ENDM INPUT MACRO BUFFER,LENGTH ;输入字符串(传入字符串名、返回字符串长度) MOV AH,10 LEA DX,BUFFER INT 21H MOV AL,BUFFER1 MOV LENGTH,AL ENDM SHOW MACRO BUFFER ;显示字符串(传入字符串名) MOV AH,9 LEA DX,BUFFER INT 21H ENDM STAK SEGMENT STACK DB 200 DUP (?) STA

18、K ENDS;=; 代码段;= CODE SEGMENT ASSUME CS:CODE,DS:DATA SHOW_EXIT PROC NEAR ;提示按r退出 PUSH AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW TIPS4 EXIT_1: MOV AH,7 INT 21H CMP AL,r JNZ EXIT_1 POP DX POP CX POP BX POP AX RET SHOW_EXIT ENDP SHOW_EC PROC NEAR ;询问退出还是继续 PUSH AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW TIPS

19、5 EXIT_2: MOV AH,7 INT 21H CMP AL,r JZ EXIT_4 CMP AL,c JNZ EXIT_2 CALL INSERT EXIT_4: POP DX POP CX POP BX POP AX RET SHOW_EC ENDP SHOW_ERR PROC NEAR ;显示出错信息子程序 PUSH AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW ERR1 TAB TAB POP DX POP CX POP BX POP AX RET SHOW_ERR ENDP RE_TMP PROC NEAR ;用空格初始化缓冲区子程序 PUSH

20、 AX PUSH BX PUSH CX PUSH DX MOV CX,50 MOV BX,1 RE: INC BX MOV STR1BX, LOOP RE POP DX POP CX POP BX POP AX RET RE_TMP ENDP CLEAR PROC NEAR ;清屏 PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,0 ;上滚行数 MOV CL,0 ;上滚窗口左上角的列号为0 MOV CH,0 ;上滚窗口左上角的行号为0 MOV DH,24 ;上滚窗口右上角的行号为24 MOV DL,79 ;上滚窗口右上角的列号为79 MOV BH,14 ;空白行的

21、属性 MOV AH,6 ;入口参数 INT 10H SET_P1 POP DX POP CX POP BX POP AX RET CLEAR ENDP SHOW_STU PROC NEAR ;显示学生信息子程序 PUSH AX PUSH BX PUSH CX PUSH DX SHOW ID ;ID MOV CX,ID_LENGTH MOV BX,-1 SH_ID: INC BX MOV DL,STR0BX MOV AH,2 INT 21H LOOP SH_ID SHOW ENTER1 SHOW NAM ;NAME MOV CX,NAM_LENGTH MOV BX,ID_LENGTH DEC B

22、X SH_NAME: INC BX MOV DL,STR0BX MOV AH,2 INT 21H LOOP SH_NAME SHOW ENTER1 SHOW SEX ;SEX MOV BX,ID_LENGTH ADD BX,NAM_LENGTH MOV DL,STR0BX CMP DL,1 ; 1显示male, 0显示female JNZ SEX_F SHOW SEXM JMP NN SEX_F: SHOW SEXF NN: SHOW ENTER1 SHOW SCORE ;SCORE MOV CX,SCORE_LENGTH MOV BX,ID_LENGTH ADD BX,NAM_LENGTH

23、SH_SCORE: INC BX MOV DL,STR0BX MOV AH,2 INT 21H LOOP SH_SCORE POP DX POP CX POP BX POP AX RET SHOW_STU ENDP;=以下插入(insert)子程序= INSERT PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX TAB CALL CLEAR ;清屏 SHOW TIPS0 ;显示提示信息 SHOW TIPS1 TAB TAB OPENF FID,FPATH ;打开文件 IN_ID: SHOW ID ; 学号 INPUT STR1,BL ;向缓冲区输入ID CM

24、P BL,ID_LENGTH ;看ID是否合法 JZ L1 JNZ ERR_ID ERR_SA: ;错误处理 TAB TAB SHOW ERR_SAME TAB TAB JMP IN_ID ERR_ID: TAB TAB CALL SHOW_ERR TAB TAB JMP IN_ID L1: ;ID判断只能为数字 MOV CX,ID_LENGTH LEA SI,STR1+2 LN: MOV AL,BYTE PTRSI CMP AL,0 JB ERR_ID CMP AL,9 JA ERR_ID INC SI LOOP LN MOVEF FID,0,0,0 ;指针移到文件首 IA: MOVEF F

25、ID,1,0,5 IB: READF FID,STR0,STU_LENGTH ;读取学生信息 CMP AX,0 ;文件是否结束 JNZ IL1 JMP IC ;没有重复学号,可以插入 IL1: LEA SI,STR0 LEA DI,STR1 INC DI DEC SI MOV CX,ID_LENGTH IL2: INC SI INC DI MOV AL,BYTE PTR DI CMP AL,BYTE PTR SI JNZ IA ;不符合条件读取下一个同学信息 LOOPZ IL2 JMP ERR_SA ;有重复学号 IC: MOVEF FID,2,0,5 WRITEF FID,STR1,ID_L

26、ENGTH ;数据合法则写入数据 TAB IN_NAM: SHOW NAM ;姓名 CALL RE_TMP ;初始化缓冲区 INPUT STR1,BL ADD BL,2 ;去掉回车 MOV BH,0 MOV SI,BX MOV STR1SI, SUB BL,2 CMP BL,NAM_LENGTH JNA L2 ERR_NAM: CALL SHOW_ERR JMP IN_NAM L2: CMP STR12, ;姓名第一个字符不为空 JZ ERR_NAM CMP STR12,z JA ERR_NAM CMP STR12,A JB ERR_NAM CMP STR12,a JNB III CMP ST

27、R12,Z JA ERR_NAM CMP STR12,A JB ERR_NAM III: MOV CX,NAM_LENGTH MOV BX,2 II0: INC BX DEC CX CMP STR1BX,z JA ERR_NAM CMP STR1BX, JB ERR_NAM CMP STR1BX,a JNB II0 CMP STR1BX,Z JA ERR_NAM CMP STR1BX,A JNB II0 CMP STR1BX, JNZ ERR_NAM CMP CX,0 JNZ II0 WRITEF FID,STR1,NAM_LENGTH TAB IN_SEX: SHOW SEX ;性别 CAL

28、L RE_TMP INPUT STR1,BL ADD BL,2 ;去掉回车 MOV BH,0 MOV SI,BX MOV STR1SI, SUB BL,2 CMP BL,SEX_LENGTH JNZ ERR_SEX MOV BL,STR12 CMP BL,1 JZ L4 CMP BL,0 JZ L4 ERR_SEX: CALL SHOW_ERR JMP IN_SEX L4: WRITEF FID,STR1,SEX_LENGTH TAB IN_SCORE: SHOW SCORE CALL RE_TMP INPUT STR1,BL MOV SC,BL ;BL保护 ADD BL,2 ;去掉回车 MOV BH,0 MOV SI,BX MOV

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

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