个人档案管理课程设计

  • 格式:doc
  • 大小:61.50 KB
  • 文档页数:12

华 北 科 技 学 院

课程设计说明书

课程名称: 汇编语言

班级: 计算机B08-1 姓名: 胡诗招

学号: 200807014102

设计题目: 个人档案管理文件

设计时间: 2010年6月23号 _至 2010年7月2号 _

指导教师:______ 李冬艳_ ___________

评 语:_________________________________

_________________________________________

_________________________________________

_________________________________________

_________________________________________

评阅成绩:__ __评阅教师:__ ___

一、课程设计目的

进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。

二、课程设计要求

1.要求编写并调试通过一个小型软件,实现对软件或硬件的操作。

2.遵循模块化、结构化的程序设计方法。

3.要求程序必须正确。

4.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。

5.要求程序结构合理,语句使用得当。

6.适当追求编程技巧和程序运行效率。

三、课程设计题目:

个人档案管理文件

四、课题分析

程序开始时,先建立判断是否存在文件,如果不存在,就创立文件。然后随便输入i,l,q中任意一个字母,然后跳到相应的子程序,输入i诗,跳到输入的子程序,输入相应的数据,保存到文件里。当输入l时,保存在文件里的数据就会显示,每个学生的信息显示一行。当输入q时,直接关闭文件,程序结束

五、流程图:

开始

先建立一个文件

输入i,l,q中的

一个字母

输入i 输入l

输入学生的名字,年龄

性别,身高,体重,并把 打开文件

数据依次存到文件

显示学生名字,年领

,性别,身高,体重

输入q

关闭文件

结束

六、程序源代码:

vardata segment

filename db 'ffff.txt',00 ;定义文件

vardata ends

condata segment

names db 10 dup(?) ;名字定义

age db ?,? ;年龄定义

sex db 2 dup(?) ;性别定义

height db 3 dup(?) ;身高定义

weight db 3 dup(?) ;体重定义

mess_n db 0dh,0ah,' name:$'

mess_a db 0dh,0ah,' age:$'

mess_s db 0dh,0ah,' sex:$'

mess_h db 0dh,0ah,' height:$'

mess_w db 0dh,0ah,' weight:$'

s4 db 0dh,0ah

db

'***************************************',0dh,0ah

db '* -1: print list [L]-

*',0dh,0ah

db '* -2: insert new ele [I]-

*',0dh,0ah

db '* -3: quit [q]-

*',0dh,0ah

db

'***************************************',0dh,0ah

db 0dh,0ah

db '$'

s1 db ' name age sex height

weight',13,10,'$'

s2 db ' $'

s3 db ' $'

condata ends

code segment

assume cs:code,ds:vardata,es:condata

start:

mov ax, condata

mov es, ax

mov ax, vardata

mov ds, ax

push ds

;--------------print command hint-------------------

mov ax, es mov ds, ax

mov dx, offset s4

mov ah, 9h

int 21h

pop ds

;----------------intepret command------------------

cmp_l: mov ah, 01h

int 21h

cmp al, 'l'

jnz cmp_i

call list_all

jmp start

cmp_i:

cmp al, 'i'

jnz cmp_q

call insert

jmp start

cmp_q:

cmp al, 'q'

jnz closef

exit:

mov ax, 4c00h

int 21h

;-------------打开和创建文件

list_all proc near

call open_create ;open or create file

push ds

mov ax, es ;es里放的是文件

mov ds, ax

lea dx, s1

mov ah, 9

int 21h

mov dl, 0ah

mov ah,2

int 21h

loop_rd:

mov ah, 3fh ;read record from file to memory 读取文件

mov dx, offset names

mov cx, 20

mov bx, si int 21h

cmp ax, 0

je read_finish ;read to the end,then finish相等是结束

;--------------------名字

lea dx, s3

mov ah, 9

int 21h

mov bx, 0

go_on:

mov dl, names[bx]

mov ah, 2h

int 21h

inc bx

cmp bx, 10

jl go_on

;---------------------年龄

lea dx,s2

mov ah,9

int 21h

mov dl, age[0]

mov ah, 2