⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 成绩数据库管理系统.txt

📁 成绩数据库管理系统 初步的汇编小程序 用到了汇编中绝大部分的知识 用Masmforwindows6.0 开发
💻 TXT
字号:
;********************************************   
  date   segment   
    jiben   struc                                   ;定义基本结构体   
      num                 db   8   dup(?)               
      ming               db   16   dup(?)   
      huibian         db   10   dup(?)   
      caozuo           db   10   dup(?)   
      bianyi           db   10   dup(?)   
      yingyu           db   10   dup(?)   
    jiben   ends   
  chengji             jiben   100   dup(<>)         ;开辟结构体类型空间   
  shurubiao         dw   100   dup(?)             ;建立输入表   
  many                   db   0   
  msg1                   db   '请输入学号     :     ','$'   
  msg2                   db   '请输入姓名     :     ','$'   
  msg3                   db   '请输入汇编语言成绩 :     ','$'   
  msg4                   db   '请输入操作系统成绩 :     ','$'   
  msg5                   db   '请输入编译原理成绩 :     ','$'   
  msg6                   db   '请输入专业英语成绩 :     ','$'   
  msg7                   db   '是否确定删除?(y/n) :     ','$'   
  msg8                   db   '是否继续输入?(y/n) :     ','$'   
  msg9                   db   '按班显示请按         1         ',13,10,'按人显示请按         2         ',13,10,'请选择                     :     ','$'   
  mss1                   db   '学号不存在!!',13,10,'$'   
  mss2                   db   '查询成绩请按         2         ','$'   
  mss3                   db   '插入成绩请按         3         ','$'   
  mss4                   db   '删除成绩请按         4         ','$'   
  mmad                   db   '显示成绩请按         1         ',13,10,'插入成绩请按         2         ',13,10,'删除成绩请按         3         ',13,10,'修改成绩请按         4         ',13,10,'退出系统请按         Q         ',13,10,'请选择                 :     ','$'   
  mmch                   db   '修改汇编语言成绩请按         1         ',13,10,'修改操作系统成绩请按         2         ',13,10,'修改编译原理成绩请按         3         ',13,10,'修改专业英语成绩请按         4         ',13,10,'请选择                 :     ','$'   
  mmgu                   db   '显示成绩请按         1         ',13,10,'退出系统请按         Q         ',13,10,'请选择                 :     ','$'   
  labr                   db   '班级学习成绩管理系统',13,10,'请输入管理密码     :     ','$'   
  xian                   db   '               学号     姓名                           汇编语言       操作系统       编译原理     专业英语             ',13,10,'             -----------------------------------------------------------',13,10,'$'   
  spac                   db   '             ','$'   
  password           db   '123',6   dup(0),'$'   
  chang                 db   10   DUP(?)   
  rete                   db   13,10,'$'   
  rate                   db   13,'$'   
  temp                   db   100   DUP(?)   
  nowdi                 dw   0   
  nowcx                 dw   0   
  ll                       dw   0   
  len                     dw   8   
  date   ends     
  ;********************************************   
  zonghe   macro   gongneng   
  local   chazhao,retian,tianjieshule,refind,zhaodaoend,bucunzai,chazhaoend   
  chazhao:   
  xor   cx,cx   
  lea   dx,msg1   
  call   output   
  lea   bx,temp   
  push   bx   
  call   getchar   
  pop   dx   
  push   dx   
  mov   cx,bx   
  sub   cx,dx   
  retian:   
  cmp   cx,len   
  jz   tianjieshule   
  mov   [bx],byte   ptr   0   
  inc   bx   
  inc   cx   
  jmp   retian   
  tianjieshule:   
  xor   cx,cx   
  dec   cx   
  dec   cx   
  refind:   
  inc   cx   
  inc   cx   
  mov   ax,cx   
  shr   ax,1   
  mov   nowcx,ax   
  cmp   al,many   
  jz   bucunzai   
  lea   si,shurubiao   
  add   si,cx   
  mov   si,[si]   
  mov   dx,len   
  push   dx   
  lea   dx,temp   
  push   dx   
  push   si   
  call   search   
  or   dx,dx   
  jz   refind   
  call   gongneng   
  jmp   chazhaoend   
  bucunzai:   
  lea   dx,mss1   
  call   output   
  chazhaoend:   
  lea   dx,msg8   
  call   output   
  lea   bx,temp   
  call   getchar   
  dec   bx   
  cmp   [bx],byte   ptr   'y'   
  jz   chazhao   
  endm   
  ;********************************************   
  stk   segment   
    dw   100   DUP(?)   
  stk   ends   
  ;********************************************   
  code   segment   
    assume   cs:code,ds:date,es:date,ss:stk   
  start:   
  mov   ax,date   
  mov   ds,ax   
  mov   es,ax   
  mov   ax,stk   
  mov   ss,ax   
  mov   sp,100   
  ;*********************************************   
  allstart:   
  lea   dx,labr   
  call   output   
  lea   bx,temp   
  push   bx   
  call   getchar   
  pop   bx   
  cmp   [bx],byte   ptr   '1'   
  jnz   guest   
  inc   bx   
  cmp   [bx],byte   ptr   '2'   
  jnz   guest   
  inc   bx   
  cmp   [bx],byte   ptr   '3'   
  jnz   guest   
  lea   dx,mmad   
  call   output   
  jmp   realstart   
  guest:   
  lea   dx,mmgu   
  call   output   
  realstart:   
  lea   bx,temp   
  push   bx   
  call   getchar   
  pop   bx   
  cmp   [bx],byte   ptr   '1'   
  jz   xianshi   
  cmp   [bx],byte   ptr   '2'   
  jz   charu   
  cmp   [bx],byte   ptr   '3'   
  jz   shanchu   
  cmp   [bx],byte   ptr   '4'   
  jz   xiugai   
  jmp   tuichu   
  xianshi:   
  mov   cl,many   
  or   cl,cl   
  jz   allstart   
  lea   dx,msg9   
  call   output   
  lea   bx,temp   
  push   bx   
  call   getchar   
  pop   bx   
  cmp   [bx],byte   ptr   '1'   
  jz   xianshi1   
  cmp   [bx],byte   ptr   '2'   
  jz   xianshi2   
  jmp   allstart   
    
  charu:   
  lea   si,shurubiao   
  jmp   charu1   
    
  shanchu:   
  jmp   shanchu1   
    
  xiugai:   
  jmp   xiugai1   
    
  tuichu:   
  jmp   tuichu1   
  ;*********************************************   
  xianshi1:   
  lea   dx,xian   
  call   output   
  lea   bx,shurubiao   
  xianshi3:   
  lea   dx,spac   
  call   output   
  mov   si,word   ptr[bx]   
  push   cx   
  call   ddplay   
  pop   cx   
  add   bx,2   
  dec   cl   
  or   cl,cl   
  jnz   xianshi3   
  jmp   allstart   
    
  xianshi2:   
  zonghe   xianshi4   
  jmp   allstart   
  ;*********************************************   
  charu1:   
  mov   di,nowdi   
  mov   [si],di   
  inc   si   
  inc   si   
  lea   dx,msg1   
  call   output   
  lea   bx,[di].num   
  call   getchar   
  lea   dx,msg2   
  call   output   
  lea   bx,[di].ming   
  call   getchar   
  lea   dx,msg3   
  call   output   
  lea   bx,[di].huibian   
  call   getchar   
  lea   dx,msg4   
  call   output   
  lea   bx,[di].caozuo   
  call   getchar   
  lea   dx,msg5   
  call   output   
  lea   bx,[di].bianyi   
  call   getchar   
  lea   dx,msg6   
  call   output   
  lea   bx,[di].yingyu   
  call   getchar   
  add   nowdi,64   
  inc   many   
  lea   dx,msg8   
  call   output   
  lea   bx,temp   
  push   bx   
  call   getchar   
  pop   bx   
  cmp   [bx],byte   ptr   'y'   
  jz   charu1   
  call   paixu   
  jmp   allstart   
  ;*********************************************   
  shanchu1:   
  zonghe   shanchuchengji   
  jmp   allstart   
  ;*********************************************   
  xiugai1:   
  zonghe   change   
  jmp   allstart   
  ;*********************************************   
  tuichu1:   
  ;   
  jmp   allend   
  ;*********************************************   
    
    
    
    
  ;*********************************************   
  allend:   
  mov   ax,4c00h   
  int   21h   
  ;*********************************************   
  output   proc   near               ;DX传参,输出DX中的内容   
  mov   ah,9   
  int   21h   
  ret   
  output   endp   
  ;*********************************************   
  getchar   proc   near             ;BX传参,将键盘输入存放   
  reget:                                   ;到[BX]中   
  mov   ah,1   
  int   21h   
  cmp   al,0dh   
  jz   quit   
  cmp   al,17h   
  jz   regets   
  cmp   al,08   
  jz     regets   
  mov   [bx],al   
  inc   bx   
  jmp   reget   
  regets:   
  dec   bx   
  jmp   reget   
  quit:   
  lea   dx,rete   
  call   output   
  ret   
  getchar   endp   
  ;*********************************************   
  shanchuchengji   proc   near   
  call   xianshi4   
  lea   dx,msg7   
  call   output   
  lea   bx,temp   
  call   getchar   
  dec   bx   
  cmp   [bx],byte   ptr   'y'   
  jnz   shanchuchengjiend   
  xor   cx,cx   
  mov   cl,many   
  sub   cx,nowcx   
  dec   cx   
  lea   di,shurubiao   
  add   di,nowcx   
  add   di,nowcx   
  mov   si,di   
  inc   si   
  inc   si   
  rep   movsw   
  dec   many   
  shanchuchengjiend:   
  ret     
  shanchuchengji   endp   
  ;*********************************************   
  paixu   proc   near   
  xor   si,si   
  xor   cx,cx   
  mov   cl,many   
  mov   ch,cl   
  daxunhuan:   
  lea   bx,shurubiao   
  mov   cl,ch   
  dec   ch   
  or   ch,ch   
  jz   xunhuanjieshu   
  xiaoxunhuan:   
  dec   cl   
  or   cl,cl   
  jz   daxunhuan   
  mov   di,[bx]   
  mov   si,[bx+2]   
  call   compare   
  or   dl,dl   
  jz   bubian   
  mov   ax,[bx]   
  mov   dx,[bx+2]   
  mov   [bx],dx   
  mov   [bx+2],ax   
  bubian:   
  add   bx,2   
  jmp   xiaoxunhuan   
  xunhuanjieshu:   
  ret   
  paixu   endp   
  ;*********************************************   
  compare   proc   near   
  xor   dx,dx   
  recomp:   
  cmp   dh,2   
  jz   compjieshu   
  mov   al,byte   ptr   [di]   
  cmp   al,byte   ptr   [si]   
  ja   dayu   
  jb   compjieshu   
  inc   di   
  inc   si   
  inc   dh   
  jmp   recomp   
  dayu:   
  mov   dl,1   
  compjieshu:   
  ret   
  compare   endp   
  ;********************************************   
  comp   proc   near   
  xor   dx,dx   
  dec   si   
  dec   bx   
  recompe:   
  inc   dh   
  inc   si   
  inc   bx   
  cmp   dh,5   
  jz   compjieshule   
  mov   al,byte   ptr   [si]   
  cmp   al,byte   ptr   [bx]   
  jz   recompe   
  mov   dl,1   
  compjieshule:   
  ret   
  comp   endp   
  ;********************************************   
  search   proc   near   
  push   bp   
  mov   bp,sp   
  push   ax   
  push   bx   
  push   cx   
  push   di   
  push   si   
  mov   cx,[bp+8]   
  mov   di,[bp+4]   
  mov   si,[bp+6]   
  rep   cmpsb   
  jz   findit   
  mov   dx,0   
  jmp   searchend   
  findit:   
  mov   dx,1   
  searchend:   
  pop   si   
  pop   di   
  pop   cx   
  pop   bx   
  pop   ax   
  pop   bp   
  ret   6   
  search   endp   
  ;********************************************   
  ddplay   proc   near   
  push   cx   
  lea   di,temp   
  mov   cx,63   
  cld     
  rep   movsb   
  inc   di   
  mov   [di],byte   ptr   '$'   
  mov   dx,di   
  sub   dx,64   
  call   output   
  lea   dx,rete   
  call   output   
  pop   cx   
  ret   
  ddplay   endp   
  ;*********************************************   
  xianshi4   proc   near   
  lea   dx,xian   
  call   output   
  lea   dx,spac   
  call   output   
  call   ddplay   
  ret   
  xianshi4   endp   
  ;*********************************************   
  change   proc   near   
  call   xianshi4   
  lea   dx,mmch   
  call   output   
  lea   si,shurubiao   
  add   si,nowcx   
  add   si,nowcx   
  mov   si,[si]   
  push   si   
  lea   bx,temp   
  call   getchar   
  dec   bx   
  add   si,14   
  mov   bx,[bx]   
  xor   bh,bh   
  sub   bx,30h   
  jiajia:   
  add   si,10   
  dec   bx   
  or   bx,bx   
  jnz   jiajia   
  mov   bx,si   
  push   bx   
  call   getchar   
  pop   dx   
  mov   cx,bx   
  sub   cx,dx   
  retian1:   
  cmp   cx,10   
  jz   tianjieshule1   
  mov   [bx],byte   ptr   0   
  inc   bx   
  inc   cx   
  jmp   retian1   
  tianjieshule1:   
  pop   si   
  call   xianshi4   
  changend:   
  ret   
  change   endp   
  ;*********************************************   
  code   ends   
  end   start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -