汇编语言学生成绩管理系统程序

合集下载

学生成绩管理系统VB程序汇编

学生成绩管理系统VB程序汇编

登陆登陆Private Sub cmdLogin_Click()If txtUser.Text = "" ThenMsgBox ("请输入用户名!")txtUser.SetFocusElseCall openconnsql = "select * from login where username='" & Trim(txtUser.Text) & "' and password='" & Trim(txtPwd.Text) & "'"rs.Open sql, conn, adOpenDynamic, adLockOptimisticIf rs.EOF ThenMsgBox "用户不存在!"ElseUnload MefrmMain.ShowEnd IfEnd IfEnd Sub退出Private Sub cmdRegister_Click()Unload MeEnd Sub功能选择选课管理Private Sub cmdChoice_Click()frmChoice.ShowUnload MeEnd Sub退出Private Sub cmdExit_Click()EndEnd Sub查询Private Sub cmdFind_Click()frmFind.ShowUnload MeEnd Sub成绩管理Private Sub cmdGrade_Click()frmGrade.ShowUnload MeEnd Sub学生管理Private Sub cmdStu_Click()frmStu.ShowUnload MeEnd Sub学生管理添加Private Sub cmdAdd_Click()frmAddStu.ShowUnload MeEnd Sub删除Private Sub cmdDel_Click()rs.DeleteMsgBox ("删除成功!!")End Sub编辑Private Sub cmdEdit_Click()frmEditStu.ShowUnload MeEnd Sub查找Private Sub cmdFind_Click() '查询功能If cboFind.Text = "学号" ThenIf txtInput.Text = "" ThenMsgBox ("学号输入不能为空!")txtInput.SetFocusElseDim sql1 As StringSet rs1 = New ADODB.Recordsetsql1 = "select * from stuInfo where ID='" & txtInput.Text & "'"rs1.CursorLocation = adUseClientrs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdTextIf rs.EOF ThenMsgBox ("查不到相关信息")txtInput.SetFocusElseSet DataGrid1.DataSource = rs1DataGrid1.RefreshEnd IfEnd IfElseIf txtInput.Text = "" ThenMsgBox ("姓名输入不能为空!")txtInput.SetFocusElseDim sql2 As StringSet rs2 = New ADODB.Recordsetsql2 = "select * from stuInfo where name='" & txtInput.Text & "'"rs2.CursorLocation = adUseClientrs2.Open sql2, conn, adOpenDynamic, adLockOptimistic, adCmdTextIf rs.EOF ThenMsgBox ("查不到相关信息")txtInput.SetFocusElseSet DataGrid1.DataSource = rs2DataGrid1.RefreshEnd IfEnd IfEnd IfEnd Sub返回Private Sub cmdReturn_Click()frmMain.ShowUnload MeEnd Sub输出窗口Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) ' txtInput.Text = DataGrid1.Columns.Item(4) ''获取选中行的第5列数据End Sub窗体Private Sub Form_Load()Dim sql As StringSet conn = New ADODB.ConnectionSet rs = New ADODB.RecordsetCall openconnsql = "select * from stuInfo"rs.CursorLocation = adUseClientrs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdTextSet DataGrid1.DataSource = rs 'datagrid绑定数据源End Sub成绩查询返回Private Sub cmdReturn_Click()frmMain.ShowUnload MeEnd Sub确定Private Sub Command1_Click()lblGrade.Caption = Trim(cboCourse.Text) + "课程成绩"Dim sql1 As StringSet rs1 = New ADODB.Recordsetsql1 = "select score.ID,score.Num,score.score from score, course where name='" & cboCourse.Text & "' and score.Num=course.Num"'sql1 = "select * from course"rs1.CursorLocation = adUseClientrs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdTextSet DataGrid1.DataSource = rs1End Sub窗体Private Sub Form_Load()Dim sql As StringSet conn = New ADODB.ConnectionSet rs = New ADODB.RecordsetCall openconnsql = "select * from course"rs.Open sql, conn, adOpenDynamic, adLockOptimisticDo Until rs.EOFcboCourse.AddItem rs("name")rs.MoveNextLoopEnd Sub选课管理返回Private Sub cmdReturn_Click()frmMain.ShowUnload MeEnd Sub提交Private Sub cmdSubmit_Click()If txtID = "" ThenMsgBox ("请输入学号!!")txtID.SetFocusElseIf lstCourse.Text = "" ThenMsgBox ("请选择课程!!")ElseDim sql1 As StringDim sql2, name As StringSet rs2 = New ADODB.RecordsetSet rs1 = New ADODB.Recordsetsql1 = "select score.ID, score.Num from score , course where ID='" & txtID.Text & "' and name='" & lstCourse.Text & "' and score.Num=course.Num"name = lstCourse.Textsql2 = "select Num from course where name='" & name & " '"rs1.Open sql1, conn, adOpenDynamic, adLockOptimisticrs2.Open sql2, conn, adOpenDynamic, adLockOptimisticIf rs1.EOF Thenrs1.AddNewrs1("ID") = txtID.Textrs1("Num") = rs2("Num")rs1.UpdateMsgBox ("选课成功!!")rs1.CloseElseMsgBox ("已选过该课!!")End IfEnd IfEnd Sub窗体Private Sub Form_Load()Dim sql As StringSet conn = New ADODB.ConnectionSet rs = New ADODB.Recordsetsql = "select * from course"Call openconnrs.Open sql, conn, adOpenDynamic, adLockOptimisticDo Until rs.EOF 'listbox控件利用循环读取课程表中的课程名lstCourse.AddItem rs("name")rs.MoveNextLoopEnd Sub查询确定Private Sub cmdOK_Click()If txtID = "" ThenMsgBox ("学号不能为空!!")txtID.SetFocusElseDim sql As StringDim sum1, sum2 As SingleDim n As IntegerSet conn = New ADODB.ConnectionSet rs = New ADODB.RecordsetCall openconnsql = "select , score.score , course.credit from score , course where score.ID='" & txtID.Text & "' and score.Num=course.Num"rs.CursorLocation = adUseClientrs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdTextSet DataGrid1.DataSource = rssum1 = 0sum2 = 0n = 0Do While Not rs.EOFsum1 = sum1 + Val(rs("score"))sum2 = sum2 + Val(rs("credit"))n = n + 1rs.MoveNextLooplblAvg.Caption = Format(sum1 / n, "0.0")lblCredit.Caption = sum2End IfEnd Sub返回Private Sub cmdReturn_Click()frmMain.ShowUnload MeEnd Sub修改学生信息返回Private Sub cmdReturn_Click()frmStu.ShowUnload MeEnd Sub提交Private Sub cmdSubmit_Click()If txtID.Text = "" ThenMsgBox ("学号不能为空!")txtID.SetFocusElseIf txtName.Text = "" ThenMsgBox ("姓名不能为空!")txtName.SetFocusElseIf txtSex.Text = "" ThenMsgBox ("学分不能为空!")txtSex.SetFocusElseIf txtAge.Text = "" ThenMsgBox ("年龄不能为空!")txtAge.SetFocusElseDim sql As StringSet conn = New ADODB.ConnectionSet rs = New ADODB.RecordsetCall openconnsql = "select * from stuInfo where ID='" & txtID.Text & "'"rs.Open sql, conn, adOpenDynamic, adLockOptimisticIf Not rs.EOF Then '判断学号是否存在rs("name") = txtName.Textrs("sex") = txtSex.Textrs("age") = txtAge.Textrs("pro") = cboPro.Textrs.UpdateMsgBox ("修改成功!!")ElseMsgBox ("学号不存在!")End IfEnd IfEnd Sub窗体Private Sub Form_Load()txtID = rs("ID")txtName = rs("name")txtSex = rs("sex")txtAge = rs("age")cboPro.Text = rs("pro")End Sub添加学生返回Private Sub cmdReset_Click()frmStu.ShowUnload MeEnd Sub提交Private Sub cmdSubmit_Click()If txtID.Text = "" ThenMsgBox ("学号不能为空!")txtID.SetFocusElseIf txtName.Text = "" ThenMsgBox ("请输入姓名!")txtName.SetFocusElseIf txtSex.Text = "" ThenMsgBox ("请输入性别!")txtSex.SetFocusElseIf txtAge.Text = "" ThenMsgBox ("年龄不能为空!")txtAge.SetFocusElseDim sql As StringSet conn = New ADODB.ConnectionSet rs = New ADODB.RecordsetCall openconnsql = "select * from stuInfo where ID='" & txtID.Text & "'"rs.Open sql, conn, adOpenDynamic, adLockOptimisticIf rs.EOF Then '判断学号是否存在rs.AddNewrs("ID") = txtID.Textrs("name") = txtName.Textrs("sex") = txtSex.Textrs("age") = txtAge.Textrs("pro") = cboPro.Textrs.UpdateMsgBox ("添加成功!!")frmStu.ShowUnload MeElseMsgBox ("学号已存在!")End IfEnd IfEnd Sub。

最新-汇编语言程序设计课程设计报告-学生成绩管理系统程序设计 精品

最新-汇编语言程序设计课程设计报告-学生成绩管理系统程序设计 精品

学生成绩管理系统程序设1、需求说明用汇编语言编写一个学生成绩管理系统,实现基本学生成绩管理,功能包括添加学生信息、修改学生信息、删除学生信息、打印学生信息、浏览学生信息存储文件以及粗略的统计学生信息,程序界面友好,有输入界面提示,有菜单功能。

2、设计要求2.1设计说明该程序要求具备的功能:清晰且易于操作的用户界面,在文本编辑界面中输入学生成绩。

其中“I”表示插入,“L”表示浏览,“Q”表示查询,“E”表示退出,“D”表示删除,“M”表示修改,“c”表示统计各分数段人数,“P”表示打印.以上各功能应该能单独运行和连续运行。

2.2开发平台与开发工具该程序使用DOS操作系统32位实模式汇编语言编写,使用的编译器为微软的MASM5.0,调试工具为DOS下的debug.exe程序。

2.3数据结构程序采用静态链表的方式来存储学生信息,链表结点描述如下:Student strucm_sName db 6 dup(' ')m_sNum db 8 dup(' ')m_sScore db 3 dup(' ')Student ends3、设计思路3.1设计方案及基本流程3.11总体结构分析整个程序采用总程序调用子程序的方式。

主程序完成菜单的显示,子程序完成一个独立功能的方法实现。

各子程序的实现方法简要描述如下:1、设计Insert(录入)子程序时,先打开文件SCORE.TXT,并置文件指针到文件尾,然后调用GET_REC子程序接受用户的输入,再把用户的输入写入文件,最后关闭文件返回主程序。

2、设计Delete(删除)子程序时,先打开文件,再调用宏GETIN得到要删除的学生的姓名,然后读文件中的记录,直到其记录的名与所输入的名字相同为止,把文件指针后退8个字符(即4门课程所占的空间),写入8个“0”字符,关闭文件返回主程序。

3、设计List(浏览)子程序时,先打开文件,然后读一个记录,并通过调用宏SHOW_ITEM 将其显示到屏幕上,若文件指针没有到达文件尾,则继续读记录并显示,当文件指针到达文件尾时,则关闭文件返回主程序。

学生成绩管理系统设计实验(汇编语言)

学生成绩管理系统设计实验(汇编语言)

实验六学生成绩管理系统设计实验一、实验目的1、熟悉汇编语言程序结构;2、熟悉INT 21H的文件操作功能调用;3、熟悉INT 21H的1、9号功能和INT 10H常用功能的使用方法;4、掌握多子程序复杂问题程序设计方法;5、掌握利用汇编语言实现字符串的输入输出程序设计方法;6、了解多模块程序设计方法。

二、实验原理我们把可以多次调用、具有通用性、能完成特定功能的程序段编写成的独立程序模块称为子程序。

子程序是把一个程序划分成若干模块所用的主要手段,它便于独立设计、测试程序和编制程序文件。

三、实验内容1、实验要求设计一个学生成绩管理系统,要求完成文件建立、学生成绩录入、显示指定学号的学生记录、删除一个学生的记录、修改学生记录、返回等工作。

学生成绩包括学号(XH)、姓名(XM)、数学(SX)、语文(YW)、外语(WY)字段。

至少包括30名学生信息,每名学生学号字段为4个字符,姓名字段为15个字符(最大),每门成绩字段为3个字符(最大)。

程序设计步骤如下:1、编写主程序main.asm;2、编写文件创建子程序create,实现在指定盘指定文件夹“d:\chengji\2009\”下建立一个指定名称的文件2009doc.dat;3、编写成绩录入子程序append,实现在指定文件尾部插入一个学生的成绩记录;4、编写显示子程序display,实现按指定学号显示一个学生的记录;5、编写修改子程序modify,实现按指定学号修改一个学生的记录字段(不需修改直接回车);6、编写删除子程序,实现按指定学号、姓名删除一个学生的记录;7、编译、链接、调试,产生可执行文件main.exe。

2、程序流程图3、程序代码程序代码如下:DATAS SEGMENTMSG1 DB '1. Append a record$'MSG2 DB '2. Display a record$'MSG3 DB '3. Modify a record$'MSG4 DB '4. Delete a record$'MSG5 DB '5. Create file$'MSG6 DB '6. Return DOS$'MSGC DB 'Please input 1--6:$'MSGE DB 'Error!$'MSGC1 DB 'Please input filename:$'MAXLEN DB 25ACTLEN DB ?STRING DB 25 DUP(?)MAXLEN1 DB 25ACTLEN1 DB ?STRING1 DB 25 DUP(?)PATHNM DB 'D:\chengji\2009\\',23 DUP(?)PATH DB 'D:\chengji\2009\2009doc.dat',00MSGA1 DB 'Please input XH:$'MSGA2 DB 'Please input XM:$'MSGA3 DB 'Please input SX:$'MSGA4 DB 'Please input YW:$'MSGA5 DB 'Please input WY:$'HANDLE DW ?MSGXH DB 'Xuehao: $'MSGXM DB 'Xingming: $'MSGSX DB 'Shuxue:$'MSGYW DB 'Yuwen: $'MSGWY DB 'Waiyu: $'BUFFER DB 2048 DUP(' ')MSGRT DB 'Press any key to return!$'DELSTR DB 33 DUP(' ') DATAS ENDSSTACKS SEGMENT STACKDB 256 DUP(?)STACKS ENDS CODES SEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AX;******************************** ;主程序MAIN PROC FARS:;清屏CALL CLS ;逐行输出提示信息MOV AH,02HMOV DH,9MOV DL,30INT 10HMOV AH,9LEA DX,MSG1INT 21HMOV AH,02HMOV DH,10MOV DL,30INT 10HMOV AH,9LEA DX,MSG2INT 21HMOV AH,02HMOV DH,11MOV DL,30INT 10HMOV AH,9LEA DX,MSG3INT 21HMOV AH,02HMOV DH,12MOV DL,30INT 10HMOV AH,9LEA DX,MSG4INT 21HMOV AH,02HMOV DH,13MOV DL,30INT 10HMOV AH,9LEA DX,MSG5INT 21HMOV AH,02HMOV DH,14MOV DL,30INT 10HMOV AH,9LEA DX,MSG6INT 21H;提示输入MOV AH,02HMOV DH,15MOV DL,30INT 10HMOV AH,9LEA DX,MSGCINT 21H;从键盘读入一个数字MOV AH,02HMOV DH,15MOV DL,48INT 10HMOV AH,1INT 21H;按数字对应子程序CMP AL,31HJZ CAPPENDCMP AL,32HJZ CDISPLAYCMP AL,33HJZ CMODIFYCMP AL,34HJZ CDELETECMP AL,35HJZ CCREATECMP AL,36HJZ E;若输入不是1-6数字,则提示错误MOV AH,02HMOV DH,16MOV DL,30INT 10HMOV AH,9LEA DX,MSGEINT 21HCCREATE:CALL CREATEJMP SCDELETE:CALL DELETEJMP SCMODIFY:CALL MODIFYJMP SCDISPLAY:CALL DISPLAYJMP SCAPPEND:CALL APPENDJMP SE:MOV AH,4CHINT 21HMAIN ENDP;******************************** ;CREATE程序CREATE PROC NEARPUSH AXPUSH CXPUSH DXPUSH SIPUSH DI;清屏CALL CLS;提示输入文件名MOV AH,2MOV DH,12MOV DL,20INT 10HMOV AH,9LEA DX,MSGC1INT 21H;从键盘读入文件名字符串MOV AH,0AHLEA DX,MAXLENINT 21H;将文件名字符串加到ASCIZ字符串末尾MOV CX,0MOV CL,ACTLENLEA SI,STRINGLEA DI,PATHNMADD DI,16LCREATE:MOV AL,BYTE PTR [SI]MOV [DI],ALINC DIINC SILOOP LCREATE;在ASCIZ字符串末尾加00MOV BYTE PTR [DI],0;按ASCIZ字符串创建文件MOV AH,3CHLEA DX,PATHNMMOV CX,0INT 21HPOP DIPOP SIPOP DXPOP CXPOP AXRETCREATE ENDP;******************************** ;APPEND程序APPEND PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH SIPUSH DI;清屏CALL CLS;打开文件(只写)MOV AH,3DHMOV AL,01HLEA DX,PATHINT 21HMOV HANDLE,AX;提示输入学号MOV AH,02HMOV DH,10MOV DL,30INT 10HMOV AH,9LEA DX,MSGA1INT 21H;从键盘读入字符串MOV AH,0AHLEA DX,MAXLENINT 21H;在字符串末尾补足空格MOV DX,4CALL FILL;将文件指针定位至文件末尾MOV AH,42HMOV AL,2MOV BX,HANDLEMOV CX,0MOV DX,0INT 21H;写入文件MOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21H;提示输入姓名MOV AH,02HMOV DH,11MOV DL,30INT 10HMOV AH,9LEA DX,MSGA2INT 21H;从键盘读入字符串MOV AH,0AHLEA DX,MAXLENINT 21H;在字符串末尾补足空格MOV DX,15CALL FILL;将文件指针定位至文件末尾MOV AH,42HMOV AL,2MOV BX,HANDLEMOV CX,0MOV DX,0INT 21H;写入文件MOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21H;提示输入语文成绩MOV AH,02HMOV DH,12MOV DL,30INT 10HMOV AH,9LEA DX,MSGA3INT 21H;从键盘读入字符串MOV AH,0AHLEA DX,MAXLENINT 21H;在字符串末尾补足空格MOV DX,3CALL FILL;将文件指针定位至文件末尾MOV AH,42HMOV AL,2MOV BX,HANDLEMOV CX,0MOV DX,0INT 21H;写入文件MOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21H;提示输入数学成绩MOV AH,02HMOV DH,13MOV DL,30INT 10HMOV AH,9LEA DX,MSGA4INT 21H;从键盘读入字符串MOV AH,0AHLEA DX,MAXLENINT 21H;在字符串末尾补足空格MOV DX,3CALL FILL;将文件指针定位至文件末尾MOV AH,42HMOV AL,2MOV BX,HANDLEMOV CX,0MOV DX,0INT 21H;写入文件MOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21H;提示输入外语成绩MOV AH,02HMOV DH,14MOV DL,30INT 10HMOV AH,9LEA DX,MSGA5INT 21H;从键盘读入字符串MOV AH,0AHLEA DX,MAXLENINT 21H;在字符串末尾补足空格MOV DX,3CALL FILL;在字符串末尾加回车、换行INC SIMOV BYTE PTR [BX+SI],0DHINC SIMOV BYTE PTR [BX+SI],0AHADD ACTLEN,2;将文件指针定位至文件末尾MOV AH,42HMOV AL,2MOV BX,HANDLEMOV CX,0MOV DX,0INT 21H;写入文件MOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21H;关闭文件MOV AH,3EHMOV BX,HANDLEINT 21HPOP DIPOP SIPOP DXPOP CXPOP BXPOP AXRETAPPEND ENDP;******************************** DISPLAY PROC NEARPUSH AXPUSH DX;清屏CALL CLS;提示输入学号MOV AH,02HMOV DH,10MOV DL,28INT 10HMOV AH,9LEA DX,MSGXHINT 21H;从键盘读入学号字符串MOV AH,0AHLEA DX,MAXLENINT 21H;打开文件(只读)MOV AH,3DHMOV AL,00HLEA DX,PATHINT 21HMOV HANDLE,AX;将文件指针定位至文件开头MOV AH,42HMOV AL,0MOV BX,HANDLEMOV CX,0MOV DX,0INT 21H;将文件载入缓存MOV AH,3FHMOV BX,HANDLEMOV CX,2048LEA DX,BUFFERINT 21H;在缓存中找到对应记录LEA SI,BUFFERLEA DI,STRINGMOV CX,AXCALL SEARCHCMP DX,0JZ OUTPUT;若未找到,则提示错误MOV AH,9LEA DX,MSGEINT 21HJMP DEND;显示对应信息OUTPUT:MOV AH,02HMOV DH,11MOV DL,28INT 10HMOV AH,9LEA DX,MSGXMINT 21HADD SI,5MOV AH,9MOV DX,SIINT 21HMOV AH,02H MOV DH,12 MOV DL,28INT 10HMOV AH,9LEA DX,MSGYW INT 21HADD SI,16MOV AH,9MOV DX,SIINT 21HMOV AH,02H MOV DH,13 MOV DL,28INT 10HMOV AH,9LEA DX,MSGSX INT 21HADD SI,4MOV AH,9MOV DX,SIINT 21HMOV AH,02H MOV DH,14 MOV DL,28INT 10HMOV AH,9LEA DX,MSGWY INT 21HADD SI,4MOV AH,9MOV DX,SIINT 21HMOV AH,2MOV DH,15MOV DL,28INT 10HMOV AH,9LEA DX,MSGRTINT 21HMOV AH,1INT 21HDEND: ;关闭文件MOV AH,3EHMOV BX,HANDLEINT 21HPOP DXPOP AXRETDISPLAY ENDP;******************************** MODIFY PROC NEARPUSH AXPUSH DX;清屏CALL CLS;提示输入学号MOV AH,02HMOV DH,10MOV DL,28INT 10HMOV AH,9LEA DX,MSGXHINT 21H;从键盘读入学号字符串MOV AH,0AHLEA DX,MAXLENINT 21H;打开文件(读写)MOV AH,3DHMOV AL,10LEA DX,PATHINT 21HMOV HANDLE,AX;将文件指针定位至文件开头MOV AH,42HMOV AL,0MOV BX,HANDLEMOV CX,0MOV DX,0INT 21H;将文件载入缓存MOV AH,3FHMOV BX,HANDLEMOV CX,2048LEA DX,BUFFERINT 21H;在缓存中找到对应记录LEA SI,BUFFERLEA DI,STRINGMOV CX,AXCALL SEARCHCMP DX,0JZ REVISEXM;若未找到,则提示错误MOV AH,9LEA DX,MSGEINT 21HJMP MEND;修改姓名REVISEXM:MOV AH,02HMOV DH,11MOV DL,28INT 10HMOV AH,9LEA DX,MSGXMINT 21HMOV AH,0AHLEA DX,MAXLENINT 21HCMP BYTE PTR [STRING],0DH ;若为回车,则将指针指向下一字段JNZ XMCONTADD SI,5JMP REVISEYWXMCONT:PUSH SIMOV DX,15CALL FILLPOP SIADD SI,5LEA BX,BUFFERMOV DX,SISUB DX,BXMOV AH,42HMOV AL,00MOV BX,HANDLEMOV CX,00INT 21HMOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21H;修改语文成绩REVISEYW:MOV AH,02HMOV DH,12MOV DL,28INT 10HMOV AH,9LEA DX,MSGYWINT 21HMOV AH,0AHLEA DX,MAXLENINT 21HCMP BYTE PTR [STRING],0DHJNZ YWCONTADD SI,16JMP REVISESXYWCONT:PUSH SIMOV DX,3CALL FILLPOP SIADD SI,16LEA BX,BUFFERMOV DX,SISUB DX,BXMOV AH,42HMOV AL,00MOV BX,HANDLEMOV CX,00INT 21HMOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21H;修改数学成绩REVISESX:MOV AH,02HMOV DH,13MOV DL,28INT 10HMOV AH,9LEA DX,MSGSXINT 21HMOV AH,0AHLEA DX,MAXLENINT 21HCMP BYTE PTR [STRING],0DHJNZ SXCONTADD SI,4JMP REVISEWYSXCONT:PUSH SIMOV DX,3CALL FILLPOP SIADD SI,4LEA BX,BUFFERMOV DX,SISUB DX,BXMOV AH,42HMOV AL,00MOV BX,HANDLEMOV CX,00INT 21HMOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21H;修改外语成绩REVISEWY:MOV AH,02HMOV DH,14MOV DL,28INT 10HMOV AH,9LEA DX,MSGWYINT 21HMOV AH,0AHLEA DX,MAXLENINT 21HCMP BYTE PTR [STRING],0DHJZ MENDPUSH SIMOV DX,3CALL FILLPOP SIADD SI,4LEA BX,BUFFERMOV DX,SISUB DX,BXMOV AH,42HMOV AL,00MOV BX,HANDLEMOV CX,00INT 21HMOV AH,40HMOV BX,HANDLEMOV CX,0MOV CL,ACTLENLEA DX,STRINGINT 21HMEND: ;关闭文件MOV AH,3EHMOV BX,HANDLEINT 21HPOP DXPOP AXRETMODIFY ENDP;******************************** ******************************** **************DELETE PROC NEARPUSH AXPUSH DX;清屏CALL CLS;提示输入姓名MOV AH,02HMOV DH,11MOV DL,28INT 10HMOV AH,9LEA DX,MSGA2INT 21H;读入姓名字符串MOV AH,0AHLEA DX,MAXLEN1INT 21H;提示输入学号MOV AH,02HMOV DH,12MOV DL,28INT 10HMOV AH,9LEA DX,MSGA1INT 21H;读入学号字符串MOV AH,0AHLEA DX,MAXLENINT 21H;打开文件(读写)MOV AH,3DHMOV AL,10LEA DX,PATHINT 21HMOV HANDLE,AX;将文件指针指向开头MOV AH,42HMOV AL,0MOV BX,HANDLEMOV CX,0MOV DX,0INT 21H;载入文件MOV AH,3FHMOV BX,HANDLEMOV CX,2048LEA DX,BUFFERINT 21H;在缓存中搜索学号对应记录LEA SI,BUFFERLEA DI,STRINGMOV CX,AXCALL SEARCHCMP DX,0JNZ DELEND;比较该记录对应姓名是否与输入的相同PUSH SIADD SI,5LEA DI,STRING1MOV CX,0MOV CL,ACTLEN1MOV DX,0LCHECK:MOV AL,[SI]MOV AH,[DI]CMP AL,AHJZ LCONTIMOV DX,1JMP DELERRLCONTI:INC SIINC DILOOP LCHECKPOP SICMP DX,0JZ DEL;姓名不对应则提示错误DELERR:MOV AH,9LEA DX,MSGEINT 21HJMP DELENDDEL:;将文件指针定位至该记录开始处LEA BX,BUFFERMOV DX,SISUB DX,BXMOV AH,42HMOV AL,00MOV BX,HANDLEMOV CX,00INT 21H;将该记录覆盖为空格MOV AH,40HMOV BX,HANDLEMOV CX,33LEA DX,DELSTRINT 21HDELEND: ;关闭文件MOV AH,3EHMOV BX,HANDLEINT 21HPOP DXPOP AXRETDELETE ENDP;******************************** ;清屏程序CLS PROC NEARPUSH AXPUSH BXPUSH CXPUSH DX;屏幕初始化MOV AH,6MOV AL,0MOV BH,7MOV CX,0MOV DX,2479HINT 10H;重定位光标MOV DX,0MOV AH,2INT 10HPOP DXPOP CXPOP BXPOP AXRETCLS ENDP;******************************** ;搜索程序;若找到对应记录,则将DX赋为0,并将SI指向该记录首地址;否则DX 赋为1。

c语言学生成绩信息管理系统源代码

c语言学生成绩信息管理系统源代码

C语言学生成绩信息管理系统源代码一、概述在学校教学管理工作中,学生成绩信息管理是一个至关重要的环节。

为了方便高效地进行学生成绩信息的录入、查询和管理,我们可以利用C语言编写一个学生成绩信息管理系统。

本文将介绍该系统的源代码,并对其进行详细的解释和讲解。

二、系统功能需求1. 录入学生成绩信息2. 查询学生成绩信息3. 修改学生成绩信息4. 删除学生成绩信息5. 显示所有学生成绩信息三、系统源代码实现```c#include <stdio.h>#include <stdlib.h>#include <string.h>// 定义学生结构体typedef struct student {int id; // 学号char name[20]; // 尊称float score; // 成绩} Student;// 全局变量int count = 0; // 记录学生数量Student students[100]; // 学生数组// 录入学生成绩信息void inputStudentInfo() {printf("请输入学生学号:");scanf("d", students[count].id);printf("请输入学生尊称:");scanf("s", students[count].name); printf("请输入学生成绩:");scanf("f", students[count].score); count++;}// 查询学生成绩信息void queryStudentInfo(int id) {for (int i = 0; i < count; i++) {if (students[i].id == id) {printf("学生信息如下:\n");printf("学号:d\n", students[i].id);printf("尊称:s\n", students[i].name);printf("成绩:.2f\n", students[i].score);return;}}printf("未找到该学生信息!\n");}// 修改学生成绩信息void modifyStudentInfo(int id, char *name, float score) { for (int i = 0; i < count; i++) {if (students[i].id == id) {strcpy(students[i].name, name);students[i].score = score;printf("修改成功!\n");return;}}printf("未找到该学生信息!\n");}// 删除学生成绩信息void deleteStudentInfo(int id) {for (int i = 0; i < count; i++) {if (students[i].id == id) {for (int j = i; j < count - 1; j++) { students[j] = students[j + 1]; }count--;printf("删除成功!\n");return;}}printf("未找到该学生信息!\n");}// 显示所有学生成绩信息void displayAllStudentInfo() {if (count == 0) {printf("暂无学生信息!\n");return;}printf("学生成绩信息如下:\n");for (int i = 0; i < count; i++) {printf("学号:d,尊称:s,成绩:.2f\n", students[i].id, students[i].name, students[i].score);}}int m本人n() {int choice, id;char name[20];float score;while (1) {printf("欢迎使用学生成绩信息管理系统!\n");printf("1. 录入学生成绩信息\n");printf("2. 查询学生成绩信息\n");printf("3. 修改学生成绩信息\n");printf("4. 删除学生成绩信息\n");printf("5. 显示所有学生成绩信息\n");printf("6. 退出系统\n");printf("请选择操作:");scanf("d", choice);switch (choice) {case 1: // 录入学生成绩信息inputStudentInfo();break;case 2: // 查询学生成绩信息printf("请输入要查询的学生学号:"); scanf("d", id);queryStudentInfo(id);break;case 3: // 修改学生成绩信息printf("请输入要修改的学生学号:"); scanf("d", id);printf("请输入修改后的尊称:");scanf("s", name);printf("请输入修改后的成绩:");scanf("f", score);modifyStudentInfo(id, name, score); break;case 4: // 删除学生成绩信息printf("请输入要删除的学生学号:"); scanf("d", id);deleteStudentInfo(id);break;case 5: // 显示所有学生成绩信息displayAllStudentInfo();break;case 6: // 退出系统printf("感谢使用学生成绩信息管理系统!\n");exit(0);default:printf("请输入正确的操作!\n");}}return 0;}```四、系统运行效果1. 运行系统后,会出现一个菜单,根据需求选择相应的操作。

汇编语言——学生分数管理程序

汇编语言——学生分数管理程序

;编写程序,从键盘输入学生百分制的分数按<60,60~69,70~79,80~89,90~99和100共六档进行分类,统计出每档的个数及总数。

;分类后的结果需要转换成ASCⅡ码并在屏幕上显示,将ASCⅡ码的转换程序写成子程序供调用。

DATA SEGMENTMES1 DB 'SCORE[<60] :$'MES2 DB 'SCORE[<60-69] :$'MES3 DB 'SCORE[<70-79] :$'MES4 DB 'SCORE[<80-89] :$'MES5 DB 'SCORE[<90-99] :$'MES6 DB 'SCORE[=100] :$'MES7 DB 'TOTAL NUMBER :$'END_SIGN DB 0TOTAL DB 0S1 DB 0S2 DB 0S3 DB 0S4 DB 0S5 DB 0S6 DB 0DATA ENDSSTACK1 SEGMENT stackDB 50 DUP(0)STACK1 ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,SS:STACK1MOV AX,DATAMOV DS,AXMOV AX,STACK1MOV SS,AXRP:CALL INPUTCMP END_SIGN,'#' ;结束本次输入后,根据end_sign是否为#结束输入JZ QUITCALL CLASSIFYJMP RPQUIT:CALL PRINTMAIN ENDP;***********************************************************;出口参数为bxPUSH CXPUSH DXMOV BX,0NEWCHAR:MOV AH,01HINT 21HMOV END_SIGN,ALSUB AL,30HJL EXITCMP AL,09DJG EXITCBWXCHG AX,BXMOV CX,10DMUL CXXCHG AX,BXADD BX,AXJMP NEWCHAREXIT:POP DXPOP CXPOP AXRETINPUT ENDP;************************************************************* CLASSIFY PROC NEARPUSH AXCMP BL, 60JL FIVE ;<60转FIVE入口处理CMP BL, 70JL SIX ;<70转SIX入口处理CMP BL, 80JL SEVEN ;<80转ESVEN入口处理CMP BL, 90JL EIGHT ;<90转EIGHT入口处理CMP BL, 100JL NINE ;<100转NINE入口处理CMP BL, 100JE TEN ;=100转TEN入口处理JMP NEXTFIVE: MOV AL, [S1]ADD AL,01 ;S5存入<60的个数DAAMOV [S1], ALADD AL,01 ;S6存入60-69的个数DAAMOV [S2], ALJMP NEXTSEVEN: MOV AL, [S3]ADD AL,01 ;S7存入70-79的个数DAAMOV [S3], ALJMP NEXTEIGHT: MOV AL, [S4]ADD AL,01 ;S8存入80-89的个数DAAMOV [S4],ALJMP NEXTNINE: MOV AL,[S5]ADD AL,01 ;S9存入90-99的个数DAAMOV [S5],ALJMP NEXTTEN: MOV AL,[S6]ADD AL,01 ;S10存入=100的个数DAAMOV [S6],ALNEXT:MOV AL,[TOTAL]ADD AL,01DAAMOV [TOTAL],AL ;TOTAL保存分类数据的个数POP AXRETCLASSIFY ENDP;************************************************************** PRINT PROC NEARCALL CRLFMOV DX,OFFSET MES1 ;显示分类的结果MOV AH, 09HINT 21HMOV AL,[S1]CALL DISPCALL CRLFMOV DX, OFFSET MES2MOV AH,09HINT 21HMOV AL,[S2]MOV DX,OFFSET MES3MOV AH,09HINT 21HMOV AL,[S3]CALL DISPCALL CRLFMOV DX,OFFSET MES4MOV AH,09HINT 21HMOV AL,[S4]CALL DISPCALL CRLFMOV DX,OFFSET MES5MOV AH,09HINT 21HMOV AL,[S5]CALL DISPCALL CRLFMOV DX,OFFSET MES6MOV AH,09HINT 21HMOV AL,[S6]CALL DISPCALL CRLFMOV DX,OFFSET MES7MOV AH,09HINT 21HMOV AL,[TOTAL]CALL DISPMOV AH,4CHINT 21HRETPRINT ENDP;****************************************************DISP PROC NEAR ;入口参数为ax,假定人数不大,处理alPUSH BXPUSH CXPUSH DXMOV CL,4DMOV BL,ALMOV AL,BLSHR AL,CLAND AL,0FHMOV AH,02HINT 21HMOV AL,BLAND A L,0FHADD AL,30HMOV DL,ALMOV AH,02HINT 21HPOP DXPOP CXPOP BXRETDISP ENDP;********************************************************* CRLF PROC NEARPUSH AXPUSH DXMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HPOP DXPOP AXRETCRLF ENDP;******************************************************* CODE ENDSEND MAIN。

汇编语言课程设计---学生成绩管理程序

汇编语言课程设计---学生成绩管理程序

郑重声明:本篇文档为从百度文库中下载的经过原文修改后的!目录第一章设计课题概述 (2)1.1 课程设计目的 (2)1.2设计内容及要求 (2)第二章总体设计 (3)2.1总体设计思路 (3)2.2 各版块功能描述 (3)第三章详细设计 (5)3.1 程序功能设计 (5)3.2各模块程序详细流程 (5)3.3 源代码及注释 (8)第四章调试过程及结果 (32)4.1 显示所有成绩 (32)4.2 插入成绩 (32)4.3 查询学生成绩 (33)4.4 删除学生成绩 (34)4.5 修改学生成绩 (35)4.6输出数学成绩 (36)第五章总结 (37)参考资料 (38)第一章设计课题概述1.1 课程设计目的当今社会是一个信息时代的社会,计算机的使用也是越来越普遍了,各行业在管理职员都采用了一些管理软件,不管是银行、学校,大大小小的各种企业,都是使用的相应的管理软件管理企业的各种信息,我选择的这个汇编语言课程设计题就是一个简单学生信息管理程序,虽然只能处理一些简单操作,但是其意义却是非凡,同过此课程设计,让我了解了一些简单的管理软件的基本原理,更深刻的理解了汇编语言的特点,对汇编语言有了一个跟深层次的理解。

利用汇编程序编写一个小型学生成绩管理程序,实现学生信息成绩的插入、修改、显示所有学生的各科成绩,并且可根据输入学生姓名插询该生的各科成绩,可统计所有成绩个各分数段的人数。

1.2设计内容及要求设计一个学生管理程序,主要实现以下功能(1)各科成绩的录入、修改、和删除。

(2)按姓名查询每个学生哥们成绩。

(3)显示查询结果(4)统计各分数段的成绩的人数个分数段的人数。

程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后,将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。

学生成绩管理系统C语言版

学生成绩管理系统C语言版

1、2、编一程序,能计算每个学生的总分和平均分。

3、编一程序,能按输入要求打印各门课程的最高分和最低分的同学。

4、编一程序,能将五个学生的成绩按总分进行降序排序。

5、编一程序,能删除一个学生的记录;6、编一程序,能增加一个学生的记录;建立一个菜单模式的学生信息管理系统,完成功能如下:一、建立主菜单*****学生信息管理系统*****1、输入学生信息2、输出学生信息3、计算每个同学成绩的总分与平均分4、对学生成绩进行排序5、输出每门功课最高分的同学信息6、输出每门功课最低分的同学信息7、退出系统主菜单界面:二、将综合练习一中的程序改写为子程序并能通过主菜单进行调用。

先上图开发环境windows 7,vc 6.0 开始贴代码:/*************** 张海山* 10软件2班* 安庆职业技术学院* QQ:136533295******************/#include"stdio.h"#include"stdlib.h"#include"malloc.h"#include"string.h"typedef struct lode{int id;char name[20];char sex[10];int score[4];struct lode *next;}lode,*linklist;linklist input(linklist head)//输入学生信息{char cmd='y';int t,i,l;char name[10];char sex[2];int score[3]={0};//int sum;linklist p;while(cmd=='y'||cmd=='Y'){p=(linklist)malloc(sizeof(lode));printf("请输入学生的编号\n");fflush(stdin);scanf("%d",&t);p->id=t;printf("请输入学生的姓名:\n");fflush(stdin);scanf("%s",p->name);/* l=strlen(p->name);p->sex[l]='\0';/* for(i=0;i<l;i++){p->name[i]=name[i];}*/printf("请输入学生的性别:\n");fflush(stdin);scanf("%s",p->sex);/* l=strlen(p->sex);p->sex[l]='\0';/* for(i=0;i<l;i++){p->sex[i]=sex[i];}*/fflush(stdin);printf("请依次输入学生的三门课成绩:\n");scanf("%d",&score[0]);p->score[0]=score[0];fflush(stdin);scanf("%d",&score[1]);p->score[1]=score[1];fflush(stdin);scanf("%d",&score[2]);p->score[2]=score[2];fflush(stdin);p->next=head->next;head->next=p;printf("是否继续(y)&返回主菜单(n) y&n\n");fflush(stdin);scanf("%c",&cmd);}return head;}linklist print(linklist head){linklist p;int i=1;p=head->next;printf("\t序号\t姓名\t性别\t英语\t数学\t语文\n");while(p!=NULL){printf("\t%d\t%s\t%s\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->score[0],p->score[1],p->sco re[2]);p=p->next;/*if(p==NULL)break;printf("%d\n",i);*/}//printf("%d\n",i);//printf("i=%d\n",i);return 0;}void avg(linklist head){int sum=0;double avg=0;linklist p;p=head->next;while(p!=NULL){sum=0;sum=p->score[1]+p->score[2]+p->score[0];avg=sum/3;printf("%s的总分为:%d\t平均分为:%.2lf\n",p->name,sum,avg);p=p->next;}}void maxmin(linklist head){linklist p;intmax1=0,max1index,min1=head->next->score[0],min1index,max2=0,max2index,min2=head->nex t->score[1],min2index,max3=0,max3index,min3=head->next->score[2],min3index;p=head->next;while(p!=NULL){if(max1<(p->score[0])){max1=p->score[0];max1index=p->id;}if(min1>=(p->score[0])){min1=p->score[0];min1index=p->id;}if(max2<(p->score[1])){max2=p->score[1];max2index=p->id;}if(min2>=(p->score[1])){min2=p->score[1];min2index=p->id;}if(max3<(p->score[2])){max3=p->score[2];max3index=p->id;}if(min3>=(p->score[2])){min3=p->score[2];min3index=p->id;}p=p->next;}printf("英语:\n");p=head->next;while(p!=NULL){if((p->id)==max1index)printf("英语最高分为:%d\t姓名为:%s\n",p->score[0],p->name);if((p->id)==min1index)printf("英语最低分为:%d\t姓名为:%s\n",p->score[0],p->name);p=p->next;}printf("数学:\n");p=head->next;while(p!=NULL){if((p->id)==max2index)printf("数学最高分为:%d\t姓名为:%s\n",p->score[1],p->name);if((p->id)==min2index)printf("数学最低分为:%d\t姓名为:%s\n",p->score[1],p->name);p=p->next;}printf("语文:\n");p=head->next;while(p!=NULL){if((p->id)==max3index)printf("语文最高分为:%d\t姓名为:%s\n",p->score[2],p->name);if((p->id)==min3index)printf("语文最低分为:%d\t姓名为:%s\n",p->score[2],p->name);p=p->next;}}void rank(linklist head){linklist p;int i=0,j,k,n=0;int sum[100];p=head->next;while(p!=NULL){n++;sum[i]=p->score[1]+p->score[2]+p->score[0];i++;p=p->next;}printf("n=%d\n",n);for(i=1;i<6;i++){for(j=0;j<6-i;j++)if(sum[j]<sum[j+1]){k=sum[j];sum[j]=sum[j+1];sum[j+1]=k;}}printf("\t序号\t姓名\t性别\t英语\t数学\t语文\n");for(i=0;i<n;i++){p=head->next;while(p!=NULL){if(sum[i]==(p->score[1]+p->score[2]+p->score[0])){printf("\t%d\t%s\t%s\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->score[0],p->score[1],p->sco re[2]);break;}p=p->next;}}}void add(linklist head){linklist p,q;p=head;q=(linklist)malloc(sizeof(lode));printf("请输入要插入学生的序号:\n");fflush(stdin);scanf("%d",&q->id);fflush(stdin);printf("请输入学生的姓名:\n");scanf("%s",q->name);fflush(stdin);printf("请输入学生性别:\n");scanf("%s",q->sex);fflush(stdin);printf("请依次输入学生的三门课成绩:\n");scanf("%d",&q->score[0]);fflush(stdin);scanf("%d",&q->score[1]);fflush(stdin);scanf("%d",&q->score[2]);fflush(stdin);q->next=NULL;while(p->next!=NULL){p=p->next;}p->next=q;//p->next=NULL;}void del(linklist head){linklist p,temp;int j;p=head->next;temp=head;printf("请输入要删除学生记录的序号:\n");scanf("%d",&j);while(p!=NULL){if(p->id!=j){p=p->next;temp=temp->next;}else{temp->next=p->next;free(p);break;}}}void main(){int cmd;linklist head;head=(linklist)malloc(sizeof(lode));head->next=NULL;do{printf("\n\n |***************学生成绩管理程序***************|\n");printf(" |----------------------------------------------|\n");printf(" | |\n");printf(" | 主菜单|\n");printf(" | |\n");printf(" |----------------------------------------------|\n");printf(" | |\n");printf(" | 请输入选择项目:|\n");printf(" | |\n");printf(" | 1、输入学生成绩|\n");printf(" | |\n");printf(" | 2、输出学生成绩|\n");printf(" | |\n");printf(" | 3、计算总成绩、平均成绩|\n");printf(" | |\n");printf(" | 4、求最高分、最低分|\n");printf(" | |\n");printf(" | 5、排序|\n");printf(" | |\n");printf(" | 6、增加记录|\n");printf(" | |\n");printf(" | 7、删除记录|\n");printf(" | |\n");printf(" | 0、退出系统|\n");printf(" | |\n");printf(" |----------------------------------------------|\n");scanf("%d",&cmd);switch(cmd){case 0:break; //退出系统case 1: input(head);break; //输入学生信息case 2: print(head);break; //输出学生信息case 3: avg(head);break; //求总成绩、平均数case 4: maxmin(head);break; //最高分case 5: rank(head);break; //排序case 6: add(head);break; //增加记录case 7: del(head);break; //删除记录default :printf("您输入错误!\n");}}while(cmd!=0);}因为是C语言版的要严格按照样子输入哦要不然就会出现不可预料的结果。

汇编学生成绩程序设计报告

汇编学生成绩程序设计报告

《汇编语言程序设计》综合程序设计实验报告题目:学生成绩管理系统一、项目简介此学生成绩管理系统实现了对学生成绩的基本管理功能,可以完成学生的显示,分数段人数统计,成绩排名以及插入查找等基本功能,并且成功实现了将学生信息写入文件以及从文件中读取的功能。

该项目运用了多个主程序的分支以及多个子程序,还有宏的定义和使用,基本涵盖了本学期所学知识,还应用了很多课外拓展的知识。

此项目是我们小组三人共同努力的结晶。

二、小组成员具体分工闫立新完成部分:主要完成程序的显示所有学生,文件的写入、读出和代码段定义部分。

王伟光完成部分:主要完成程序的所有学生排名,学生的查找、添加和代码段定义部分。

宋景超完成部分:主要完成程序的分数段统计,屏幕清屏、子程序和代码段定义部分。

三、需求分析与设计学生成绩管理系统,最基本的功能是实现最学生的显示和以及成绩的排名,和分数段的统计,以便分析教学效果。

我们的系统可以说完全达到了这个要求。

在这个系统的第一个功能就实现了所有学生的显示和他们对应的成绩。

此分支采用了内存存储单元中读取数据的方法,通过地址的不断增加来实现对学生姓名和成绩存储和输出。

统计学生分数段人数部分采用了多个跳转指令来实现,符合条件则使相应的分数段人数加1,不符合该分数段人数则跳转到相应的分数段并使该分数段人数加1。

对学生的排名,我们则选择了经典的冒泡排序来实现。

运用三条循环指令,lopi,lopj,lopk。

对学生的添加,我们设置了一个全局变量n来记录多少个数据,增加几个数据n就加几,然后输入姓名到新的内存中,输入成绩时因为成绩初始化时是以ASICC保存的,而输入的是字符,所以使用0FH现将其变成真正的数字然后通过*10等运算将其转化为ASICC即可对学生的查找,我们通过使用字符串比较来进行查找,使用bp来进行地址的改变,同时使用n5进行判断是否已经完成了查找已经是否找到了数据,找到数据则输出,找不到则输出错误文件的写入部分首先用dos指令3CH来创建一个文件,然后用dos指令40H 写入内容,在BX中装入文件代号,要写入的字节数放在CX中,输入缓冲区的地址放在DX中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档