汇编课程设计成绩管理系统+源代码复习过程

汇编课程设计成绩管理系统+源代码复习过程
汇编课程设计成绩管理系统+源代码复习过程

XXXXX

课程设计说明书

汇编语言课程设计

班级: 网络B101 姓名: XXX

学号XXX

设计题目: 学生成绩管理

设计时间: 2012.12.09 至2012.12.21

指导教师: XXX

评语:_______________________________

_______________________________________

_______________________________________

_______________________________________

_______________________________________

评阅成绩:___________评阅教师:____________ 一、课程设计的目的

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

PC兼容机、Windows操作系统、汇编程序masm for windows 2010

三、课程设计要求

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

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

3.要求程序必须正确。

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

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

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

四、课程设计的课题和分析

题目:学生成绩管理

分析:建立学生成绩文档;输入学生各门功课成绩;(假设3门功课);修改指定学号的学生成绩;统计指定学号的学生的平均成绩、总成绩,并在屏幕上显示;统计指定学号课程的平均成绩,并在屏幕上显示;每门课程成绩分析在屏幕上显示3门课程的各个分数段的学生人数;(分数段为:>=90;80~89;70~79;60~69;<=59)此处可以以表格的形式给出数据,或者以坐标曲线的形式给出。对学生成绩记录进行检索(按学号、姓名), 成绩排序(按总成绩降序排列), 退出,最好用到文件处理。

五、流程图、总体设计、详细设计

学生成绩管理,最基本能实现的的功能是输入学号,同时显示该学生的基本的信息,我设计的成绩管理系统功能还包括了显示该生的语文,英语,数学三门学科的成绩,求出了该生的总分,以及该生的平均分,动态输入学生的成绩,而且成绩是按照三位数显示的,可以输入任意多的学生人数,每个学生都是三门课程,最后统计输入所有学生的各科各个分数段的人数,最后显示出所有学生的成绩排名情况。为了使系统更实际一些,我设计的系统包括建立了文件,方便学生

的信息一次录入之后可以保存该数据,将该数据保存在score.txt文件中,而且文件的路径与该软件默认的安装路径一致;为了使系统更方便用户使用,我设计了菜单,菜单中设计了六个功能,包括插入,删除,查询,修改,查看,退出等。以下是对程序中常用的六个个功能进行解析:

1、数据输入功能:这是必不缺少的功能,学号的输入,成绩的输入都离不了这

个功能,在输入成绩时,特地加了一个判断功能,在输入不合理的成绩时,程序将提示出错,并要求重新输入。在输入学生学号的时候,程序首先会判断此学生的成绩是否存在,如果存在,则程序提示需重新输入。插入一条学生记录子模块,搜索可用单元,接收输入的记录,并写入文件。建立成绩表子模块,控制输入界面,并多次调用插入记录子模块,完成成绩的建立。2、修改功能:考虑到会存在在输入成绩时,容易输入错误,或者发生个别学生

的试卷被误判需修改成绩等情况,所以加了此功能,在发生以上情况时可以调用此功能,修改指定学生的成绩。

3、删除学生信息的功能。如果输入的学生信息根本不存在,或者发生其它情况

需删除一个无意义的学生信息时,可以调用此功能。此功能将实现将指定学号学生的信息删除。

4、信息查找功能:当需要查询某个学生的成绩或者检查输入是否有误时,可以

调用此功能,此功能实现将指定学号学生的成绩显示出来。实际上在调用此功能的同时,程序会首先求的总成绩,平均成绩,然后产生排名结果,最后将数据信息显示。

5、显示排名信息功能:此功能会将学生成绩自动相加,得到每位学生的总成绩

及平均成绩,然后进行排名,得到每个学生的名词,最后按照输入顺序将所有学生的学号,语文成绩,英语成绩,数学成绩,平均成绩,总成绩,名次依次输出。模块中排名处理、学科平均成绩计算、均需取出某一学科的所有学生成绩,因而此操作作为公用子程序以供调用。个人总分及平均分处理较为简单,根据索引逐条处理记录。排名处理。排名结果为一维数组,与学科成绩存在对应关系。查询学生记录,先进行学号匹配,再输出一条记录;查询该生的所有信息。

6、文件写入及退出功能。此功能实现将学生的信息保存在一个文件里。此程序

默认将文件放在C盘下,名称为:score,属性为txt格式的文本文档。该文档能够保存数据,以便数据不需要重复录入,是系统更能满足用户需求。写入文件完毕后,关闭文件,并退出程序。

该程序的流程图:

文件创建和菜单显示:

在创建文件时使用命令请求创建文件,以下是菜单显示,首先显示菜单的界面,1号功能接收功能,程序先和菜单中所有的功能都进行比较,假如都不是功能菜单,则提示输入错误,重新输入,假如输入正确,则调用相对应的子程序。

文件内容显示:

在文件查找的子程序会显示该生的学号,三门的成绩,该生的总分,平均分和该生成绩的排名情况,则在显示学生信息之前先处理数据,成绩和总分是按照三位数的处理,学号和名次是按照两位数处理的,总分是字类型,其他的是字节类型,所以必须要转换基址才能找到该生相对应的总分。文件的删除则是先找到该学生的信息,然后显示该生的成绩缓存区的地址的下一位,则显示的是空白。

总分和名次

定义子程序sum proc near,先是从存放各科的缓存区移出数据,然后相加,采用循环,对用户输入的数据都是按照这个规则求出该生的总分;ping proc near 是求出该生的平均分,把之前存放在zc[bx]的总分数据取出来,然后除以3;

六、遇到的问题及解决办法

问题:在编写程序时,不知道删除的程序应该如何实现,以及在创建文件时不知道如何下手,然后老师提示是采用中断,我们需要自学中断,在设置光标和屏幕显示也是采用中断,我自能自学课本的第九章内容,然后再写程序,在文件的删除那里我卡住了研究好久也不知道怎么实现,最后我问了我同学,我们一起讨论出的结果就是让屏幕不显示当前指针指向的内容,显示指针指向的一个内容即可,这样就可以实现删除功能,删除功能就是删除该学号学生的成绩数据,使这些数据全部清空则达到了删除文件的功能;

关键代码:此段代码时是实现数据段插入功能首先提示输入学号的语句,然后调用shuru的宏定义,这个宏定义是接收键盘输入的两位数,然后处理成十进制输出,比较符合实际,然后把n学生个数给bl,将输入的学生学号保存在xh[bx]数组中,方便使用,然后判断该学号是否为第一次输入,是则跳转,假如不是第一次输入,则提示用户该学号已经存在,需要重新输入,跳转到输入成绩的子程序,在调用shuruu宏,此功能是处理三位数,使成绩是按照三位数显示的,而且必须是在合理的范围内的,假如输入的数据是不合理的则又跳转到重新输入的界面,要求用户输入有效数据,数据输入完成之后则存入相对应的缓存区。

;*********************************************

input proc near ;输入学生学号,成绩

e6: output mess1

shuru

mov bl,n ;统计输入学生个数

mov bh,0

mov xh[bx],dl ;输入的个数同时以地址指针形式显示

cmp bx,0 ;判断是不是第一次输入,如果是,则跳过比较程序

je qq1 ;继续输入成绩

mov cl,n ;如果不是第一次输入则要将输入的学号与以前输入的比较

cbw

mov si,0

mov al,xh[bx]

e7: cmp al,xh[si]

je e5

add si,1

loop e7

jmp qq1

e5: output ts4

jmp e6

qq1:output mess2 ;如果不是重复的学号则可以继续输入成绩和其他信息

output mess4

mov si,0

mov cx,3

qq3:shuruu

cmp dx,78h ;比较输入的成绩是否大于120,如果大于120的话,那么重新输入成绩

jbe qq2

output ts3 ;提示输入错误

jmp qq1

qq2:mov buf[si],dl ;把输入的学生信息保存在缓存区

output bg

add si,1

loop qq3

mov bl,n

cbw

mov al,buf[0] ;以下是把之前的成绩数据保存到相对应的缓存区

mov chi[bx],al

mov al,buf[1]

mov eng[bx],al

mov al,buf[2]

mov mat[bx],al

ret

input endp

;**********************************************

该关键代码是实现该学号学生的总分和名次的交换以及显示,首先是先把即将要用到的存储器全部清零,将名次mc[si]初值为1,si依次+1,因为存放名次的数组是字节类型的,然后把n学生的个数赋给cl,接下来就是处理查找总分的地址指针,因为总分数组是字型所以需要使bl*2,然后cx清零,按照学号找到相对应该生的总分,两个总分相比较此时大的则暂时为第一名,然后再继续接受总分,接受的总分又要和之前暂时的第一比较然后和暂时的第二名比较,循环找出第一名,继续循环,显示总分和名次。

;**********************************************

rank proc near ;排名

mov cl,n

mov ch,0 ;将用到的存储器清零

mov si,0

rrc:mov mc[si],1 ;将存储名次的存储器给予的初值是1

add si,1 ;

loop rrc

mov al,n ;此处2n最后放到al中,是为了下面总分的输出

mov bl,2

mul bl

mov cl,n

mov ch,0

mov si,0

mov bx,0

mov di,0

rrb: mov dx,zc[di]

rra: cmp dx,zc[bx] ;总分之间的比较

jge continue ;大于等于的那个分数则为第一名add mc[si],1

continue:

add bx,2

loop rra ;余下的继续比较依次排出名次mov cl,n

cbw

add si,1 ;名次是字节类型的

add di,2 ;总分是字类型的

mov bx,0

cmp si,ax ;ax里面是2n为了找到总分输出

jbe rrb

ret

rank endp

;************************************************** 七、结果显示

菜单显示界面图:

首次输入学生信息界面;修改学生信息界面;查看学生各个分数段的界面;

删除学生信息界面:

查看学生成绩排名情况界面:

八、感想、收获及体会

终于完成了一门课程设计,比起之前完成的综合实验我觉得自己又上升了一个台阶,学到的东西更多了,虽然自己付出了两周的时间,但是一个好的程序员就需要舍得花时间去创建更加完美的程序,完成更多的功能,满足用户更多的要

求。这次的课程设计和自己上课学到的东西有很多不同,需要自己去查看中断的代码,因为此次课程设计老师要求我们必须有文件的创建和文件存储和文件关闭,给课程设计增加了难度,课设正是这样,所以在完成这门课设之后,我真心觉得自己的编程水平又上升,同时也说明了好多东西是可以靠自己领悟和自学得来的;课程设计完成了,但是我设计的成绩管理系统还是存在不足:成绩都是用整数表示的,没有实现浮点运算;平均成绩也是按照整型的,查询功能中只能通过学号查询,没有实现学号或者通过姓名查询的选择;主菜单界面设计不够人性化,不够简单明了,缺少美观,没有使用彩色的界面。虽然我的程序中出现那么多的不完美,但是只有我有一颗追求完美的心,则我就会有一个继续学下去的心。

此次的课程设计,我还是和以前的综合实验的感触有些类似,在此之前,大多数时候都在用高级语言编写程序,已经习惯了高级语言的方便灵活的语法形式。一下子突然转为用汇编语言进行程序设计,总是要经过一个很不习惯的适应过程。但是我们学习编语言,可以让我们更好地理解程序设计的本质和原理。对以后的学习和工作都带好很多好处。这次在编写和调式汇编程序过程中体会最深的就是,没有好的工具,汇编程序的调式工作太困难了!这次使用的是微软的masm5.0编译工具,是DOS底下的编译工具,但是没有其它可视化的调式工具,只能利用DOS底下的debug命令进行调式。程序稍微长一点的时候,调试起来就不是那么方便了,主要问题是在debug中虽然可以反汇编,但是反汇编后的源程序与自己写的不太一样了(符号常量和标号都变成了数字地址),不方便辨认当前调式程序对应于源代码中的哪一行。这些疑问都是我完成课设的难点,自己学的不是很透彻,在完成报告之前,我花了一天的时间和同学讨论我的程序,通过对这学生成绩管理的的设计,使我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查阅资料也学到了一些课本上没有的东西,有幸接触到中断这个功能,同时更是让我明白了即使是低级的汇编语言也可以完成高级语言可以完成的程序,历时两周终于完成,这次课程设计中有很多源程序的子程序的源代码可以从资料中或获得,但有很多都需要我们仔细琢磨才能明白其中的原理,同时程序中需要调用大量的BIOS和DOS系统功能调用,如显示字符串的功能调用、光标设置的功能的调用、清屏的功能调用等,这些问题如不查询资料就

无法理解,因为上汇编语言基础时对这些DOS和BIOS的系统功能了解很少,所以我们需要查询DOS和BIOS功能的系统调用的基本信息。还有在一些循环结构设计上也有许多不能理解的地方,都需要加以深刻的理解才能将问题顺利的解决,多整个程序的理解也有了更进一步的了解。有时候遇到自己查资料和不能理解的地方时,自己不能解决时,先找同学讨论一下,会有意想不到的收获,有些问题就会迎刃而解。即使是花了两个周的时间完成一个程序,但是我可以骄傲的告诉别人我完成一个程序了,完成了一个设计,将来我更有底气的告诉别人这个是我的成品,就如老师说的,我们可以骄傲的告诉面试老师我曾经完成的作品。

目前已是大三的我们,我们完成的课程设计已经很多了,但是我对此次的课设感慨真的很多,因为这次完成真的太不容易,因为我自己本人觉得我真的一点都学不会,居然也可以完成如此浩大的程序编写,真的是我想不到的,虽然此程序我参考了资料,咨询了同学,但是那些收获是我都很惊叹的,进一步的拓宽了我的汇编知识,同时最重要的一点是要学的精通可以靠自己自学,很多知识是我们自己就可以领悟的。虽然本程序仍然存在不少缺点和不足,但是只要我有心,只要我舍得花时间去自学,看看视频,一定能使我的编程能力提升,克服所以的不足,设计出更出色的作品。

九参考文献

[1]郑晓薇编著,《汇编语言》机械工业出版

[2]《IBM—PC汇编语言程序设计实验教程》

[3]《IBM—PC汇编语言程序设计(第2版)》

十附录。

①用户手册使用说明:可以根据我上面粘贴的运行界面进行使用,选择自己需要的功能

②源程序清单:

huancun macro j,t ;将三位数的数据转换成为三个对应的字符,并将其存入缓冲区zs中j,t是两个哑元

push bx ;入栈是对存储器里面的值进行保护

mov si,t ;对两个哑元进行说明

mov ax,j

mov bl,100 ;对输出的数据进行处理,显示出百位十位个位

div bl

add al,30h

mov zs[si],al ;把处理好的百位进行缓存区

add si,1

mov al,ah

cbw

mov bl,10 ;对十位的处理

div bl

add al,30h

add ah,30h

mov zs[si],al

add si,1

mov zs[si],ah ;对个位的处理,

add si,1 ;对输入的数据反复处理,指针下移

pop bx ;存储器出栈

endm

clear MACRO ;清屏的宏定义

MOV AH,2 ;设置光标位置

MOV DH,0 ;行号

MOV DL,0 ;列号

INT 10H ;屏幕及光标控制int 10h

MOV AH,6 ;屏幕开窗口

MOV AL,0

MOV BH,7 ;颜色属性是正常显示,黑底白字

MOV CH,0 ;左上角的行号

MOV CL,0 ;左上角的列号

MOV DH,24 ;右上角的行号

MOV DL,79 ;右上角的列号

INT 10H ;调用10号功能,设置屏幕的坐标是(0,0)(24,79)ENDM

kong macro ;回车换行的宏定义

mov ah,2 ;2号功能输出回车换行

mov dl,0ah

int 21h

mov ah,2

mov dl,0dh

int 21h

endm

output macro p ;字符串输出

mov dx,offset p

mov ah,9

int 21h

endm

shuru macro ;二位数数据输入

mov ah,01 ;1号功能的输入,输入的值放在dl中int 21h

sub al,30h ;对输入的数据先减掉30h

cbw ;字节扩展成字类型

mov bl,10 ;对输入的数据进行乘以10

mul bl

mov dl,al ;把al中的乘积取出来,放在dl中

mov ah,01h

int 21h

sub al,30h ;处理完了要加上30h再用一号功能输出

add dl,al

endm

zhuane macro e,b ;将二位数转换成对应两个字符,并将其存入缓冲区zs

push bx

mov si,b ;以下是对两个哑元的说明

mov al,e

cbw

mov bl,10 ;对二位数据的处理就是先显示出十位然后显示出个位

div bl

add ah,30h

add al,30h

mov zs[si],al ;处理好的数据存放在zs存储区

add si,1

mov zs[si],ah

add si,1 ;指针再下移,继续处理下一个

pop bx

endm

zhuans macro f,s ; 将三位数成绩转换成为对应的三个字符,并存入缓冲区zs中

push bx

mov si,s

mov al,f

cbw ;需要扩展,字节扩展成字

mov bl,100

div bl

add al,30h

mov zs[si],al ;百位存放在存储区

add si,1

mov al,ah ;把余数取出来

cbw ;字节扩展成字

mov bl,10

div bl

add al,30h ;把ah中的余数取出来再进行除以10,最后的余数还是存放在ah中,此次的商放在存储区zs中

add ah,30h

mov zs[si],al

add si,1

mov zs[si],ah ;最后的余数在ah中,其实就是三位数的个位

add si,1 ;指针下移

pop bx

endm

shuzi macro r ;二位数据输出,以下是对数据输出的处理

mov al,r

cbw

mov bl,10 ;对数据的输出和输入一样也需要进行处理,以十进制显示出来 div bl

mov bl,ah

mov dl,al

add dl, 30h

mov ah,2 ;2号功能显示十位

int 21h

mov dl,bl

add dl,30h

mov ah,2 ;2号功能显示个位

int 21h

endm

shuruu macro ;三位数数据输入

shuru

mov al,dl ;用1号功能的输入值存放在dl中,首先把dl中的值存放在al中

mov dl,10

mul dl

mov dx,ax ;乘以10以后的值存放在ax中;需要取出放在dx中

mov ah,1

int 21h

sub al,30h

cbw ;加完30h再把字节扩展成字

add dx,ax

endm

shuzii macro u ;三位数数据输出

mov ax,u

mov bl,100 ;对百位的处理,把100赋给bl

div bl

mov bl,ah ;商在al中,余数在ah中

mov dl,al ;把商从al中取出来

add dl,30h ;在显示百位之前加30h,再放到dl中

mov ah,2 ;2号功能显示

int 21h

shuzi bl

endm

DATAS SEGMENT

m dw 0 ;移动文件指针时,选择绝对移动方式,则m代表指针偏移量

zs db 18 dup (?) ;缓冲区用来存放单个学生信息的字符

pathnam db 'C:\score.txt',00h ;建立目录项

handle dw ? ;文件句柄

buf db 3 dup(?) ;输入缓冲区

zc dw 100 dup(?) ;存放总成绩的数组

pj db 100 dup(?) ;存放平均成绩数组

n db 0 ;存放输入的学生信息的个数

gs0 db 5 dup (0) ;记录所查询科目分数段的

gs1 db 5 dup(0)

gs2 db 5 dup(0)

mc db 100 dup (1) ;存放学生的名次的数组

chi db 100 dup (?) ;存放学生成绩的数组

eng db 100 dup (?)

mat db 100 dup (?)

xh db 100 dup (?) ;存放学生学号的数组

cour0 db 'chinese','$';语文

cour1 db 'english','$';英语

cour2 db 'maths ','$';数学

ts db 13,10,'You are successful,press anykey to continue!',13,10,'$';以下是提示语句 ts1 db 13,10,'You are wrong , Try again!',13,10,'$'

ts3 db 13,10,'The score you input is bigger than 127,input agian!',13,10,'$'

ts4 db 13,10,'The school number you input is exist,please try again!',13,10,'$'

cai0 db '* The Student Grade Management System *',0ah,0dh,'$'

cai00 db '* made by wei qiao yuan *',0ah,0dh,'$'

cai db '* Insert a data ',13,10,'$';菜单的格式 cai1 db '* Modify a data ',13,10,'$'

cai2 db '* Delete a data ',13,10,'$'

cai3 db '* Find a data ',13,10,'$'

cai4 db '* Show the rank ',13,10,'$'

cai6 db '* Show the count ',13,10,'$'

cai5 db '* Exit with the keyboard of ESC ',13,10,'$'

ts2 db 'Please choose the Function',13,10,'$'

mess db 13,10,'The data you input is not exist,input again',13,10,'$' mess1 db 13,10,'Please input the school number(2) ',13,10,'$'

mess2 db 13,10, 'Please input three scores(0-120)',13,10,'$'

mess4 db 'chinese english maths ',13,10,'$'

mess3 db ' Thank you ',13,10,'$'

strr1 DB '********************score and rank*******************',13,10,'$' strr2 DB 13,10,'number wen eng math average sum rank ',13,10,'$' strr3 db 13,10,'course >=90 >=80 >=70 >=60 <60 ',13,10,'$'

bg db ' ','$'

DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

mov es,ax

mov ah,3ch ;请求创建文件

mov cx,00 ;默认属性

lea dx,pathnam ;装入pathnam的地址

int 21h

mov handle,ax ;保存文件句柄

main: ; 主菜单显示

output cai0

output cai00

output cai

output cai1

output cai2

output cai3

output cai4

output cai6

output cai5

output ts2

mov ah,1 ;输入字符,选择功能键

int 21h

cmp al,'i'

jne n1

call insert ;调用insert子程序,输入学生学号,成绩

jmp rk

n1: cmp al,'m'

jne n2

call modify ;调用modify子程序,修改指定学生的成绩

jmp rk

n2: cmp al,'d' ;调用de子程序,删除制定学生的成绩

jne n3

call de

jmp rk

n3: cmp al,'f' ;调用find子程序,显示指定学生的成绩及名次

jne n4

call find

jmp rk

n4: cmp al,'s' ;调用show子程序,显示所有学生的各科成绩,平均成绩,总成绩及名次 jne n5

call show

jmp rk

n5: cmp al,'c' ;调用showw子程序,显示各科各分数段的学生数量

jne n6

call showw

jmp rk

n6: cmp al,1bh ;调用exit子程序,将数据保存到score.txt文件中,并退出程序

jne n7

call exit

n7: clear ;清屏

output ts1 ;以上都不选择则说明出错

jmp main ;再次跳转到菜单

rk:

output ts

mov ah,1

int 21h

clear

jmp main

;****************************************

exit proc near ;退出

mov cl,n ;写入文件的次数

cbw

mov bx,0

mov di,0

zh: push di ;保存di,cx,bx中的内容

push bx

push cx

mov si,0 ;对si进行赋初值

zhuane xh[bx],si ;调用宏zhuane将两位数的学号转换为对应的二个字符,并存放到zs缓冲区中

zhuans chi[bx],si ;调用宏zhuans将三位数的语文成绩转换为对应的三个字符,并存放到zs缓冲区中 zhuans eng[bx],si ;调用宏zhuans将三位数的英语成绩转换为对应的三个字符,并存放到zs缓冲区中 zhuans mat[bx],si ;调用宏zhuans将三位数的数学成绩转换为对应的三个字符,并存放到zs缓冲区中 zhuans pj[bx],si ;调用宏zhuans将三位数的平均成绩转换为对应的三个字符,并存放到zs缓冲区中 huancun zc[di],si ;调用宏zhuanss将三位数的总成绩成绩转换为对应的三个字符,并存放到zs缓冲区中

zhuane mc[bx],si ;调用宏zhuane,将两位数的名词,转换为对应的二个字符,并存放到zs缓冲区中 mov ah,42h ;移动读写指针

mov al,00 ;移动方式为绝对移动方式

mov bx,handle

mov cx,00

mov dx,m ;指针偏移量

int 21h

add m,20

mov ah,40h ;调用40h功能,请求写文件

mov bx,handle ;获取文件句柄

mov cx,19 ;写入长度为19个字节

lea dx,zs ;将缓冲区zs中的内容写入文件score.txt

int 21h

pop cx

pop bx

pop di

add di,2 ;目的指针加2

add bx,1

sub cx,1 ;输入一个之后cx统计的个数就依次减1

cmp cx,0 ;判断写入是否完毕

jg zh

mov bx,handle ;写入完毕,关闭文件

mov ah,3eh

int 21h

clear

output mess3 ;关闭文件之后就显示提示语句

MOV AH,4CH ;退出程序

INT 21H

ret

exit endp ;子程序结束

;********************** ******************

sum proc near ;求学生的总成绩

mov cl,n ;对运用到的存取器进行清零

mov ch,0

mov si,0

mov bx,0

sss:mov al,chi[si] ;将三科成绩相加,将总成绩传给数组zc

mov ah,0 ;高位清零

mov dl,mat[si] ;存放数学的数组

mov dh,0

add ax,dx ;数学和语文相加

mov dl,eng[si]

mov dh,0

add ax,dx

mov zc[bx],ax ;最后把语文数学和英语的三门成绩总分存放在zc总分的缓存区 add bx,2

add si,1

loop sss ;运用循环对输入的三门成绩求总分

ret

sum endp

;***************************************

ping proc near ;求学生的平均成绩

mov cl,n ;n是统计输入学生信息的个数

cbw

mov si,0

mov bx,0

p_p:

#数据结构课程设计-学生成绩管理系统

淮阴工学院 数据结构课程设计报告 选题名称:学生成绩管理系统 系(院):数理学院 专业:信息和计算科学 班级:计科1102班 姓名:徐连喜学号: 1104101233 指导教师:周海岩 学年学期:2011 ~ 2012 学年第 1 学期 2012 年06 月06 日 【摘要】

21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速发展和广泛使用,对社会的政治,经济,军事,文化等领域产生越来越深刻。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。本论文叙述到的学生成绩管理系统是用IIS+ASP网页编程+ACCESS数据库+DREAMWEAVER MX 2004+SQL查询语言实现的。重点介绍了学生成绩管理系统的实现过程:包括系统分析,系统调查,功能设计,数据库设计,系统实现,系统测试和调试等。本系统主要功能有查询学生成绩、单个添加学生成绩、批量添加学生成绩、删除学生成绩、管理页面和修改管理员密码等内容。 【关键词】 成绩管理;成绩查询;C++

目录 中文摘要。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 1 1绪论。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 4 1.1 选题背景。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 5 1.2 需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 6 2总体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7 2.1程序设计组成框图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 2.2 模块功能说明。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9 2.3 程序流程图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 2.4 主要函数之间相互调用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 3 在设计过程中的感受。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 致谢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。13 参考文献。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14附录:源程序清单。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 1.绪论 1.1 选题背景 为了提高高校学生信息的管理效率,方便对学生信息进行管理、学校里面的学生和管理员方便去管理和查询学生信息,如再要进行查询,就得在众多的学生信息中查找自己的成绩信息,面对学院大量的学生信息,怎么可以即时而方便的管理,学生只要登录本系统就可以查找到自己的成绩信息,而管理员也方便去管理每学期的学生的成绩信息。建立一个学生信息管理系统,使学生信息管理工作规范化,系统化,程序化,避免学生管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。 2.1 需求分析

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

C 语言程序设计作业 一设计项目:学生成绩管理系统 二总体设计: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩。 2 查看功能:输出姓名学号及各科成绩。 3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。 5 修改功能:通过输入学号修改指定学生的错误信息。 6添加功能:添加学生信息。 7删除功能:通过输入学号输入指定学生信息。 8保存功能:将学生信息保存。 9 退出系统。 3:主要函数之间的调用关系及各自功能: 主要函数的函数原型 void inputscore(void); void savescore(void); void avergescore(void); void modifyscore(void); void lookscore(void); void searchscore(void); void statistic(void); void add(void); void modify(void);

void delscore(void); void menu(void); i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。 出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计 算。 iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。 iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。 v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。 vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。 viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。 ix.在菜单界面输入9,退出成绩管理系统。

简单计算器c++课程设计

简单计算器 1 基本功能描述 简单计算器包括双目运算符和单目运算符。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。 2 设计思路 如图1,是输入数据子函数的流程图。打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。 如图2,是整个计算器的流程图。对于输入的算式,判断运算符是双目运算符还是单目运算符。如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。结束程序。

输入一个数字 在之前输入的数字字符后面加上现在的数字字符。 Eg :m_str+=”9”。 直接使编辑框显示所输入的数字字符。 Eg :m_str=”9”。 pass3=1表示已有数字输入 开始 之前是否有数字输入? pass3==1? 继续键入数字? 用UpdateData(FALSE)刷新显示 图1 输入数据子函数流程图 Y N Y N

输入开始 双目运算符 是否每一个操作数都存入a[]数组? 把操作数存入a[z+2],把运算符存入b[z+1]。 单目运算符 将字符串转换 为可计算的数进行运算 运算是否合法? 将结果存入a[0] 弹出对话框提示错误 结束Y Y N N 图2 简单计算器总流程图

教学管理系统的设计与实现(数据库原理课程设计)

1 引言 为方便对学校日常工作进行高效的管理,设计此数据库以提高学校的管理效率。随着现代科技的高速发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。而建立教学管理信息系统是一个很好的解决办法。 1.1课题背景 随着信息技术的飞速发展,信息化的大环境给各成人高校提出了实现校际互联,国际互联,实现静态资源共享,动态信息发布的要求[1];信息化对学生个人提出了驾驭和掌握最新信息技术的素质要求;信息技术提供了对教学进行重大革新的新手段;信息化也为提高教学质量,提高管理水平,工作效率创造了有效途径. 校园网信息系统建设的重要性越来越为成人高校所重视。 1.2课题意义 利用计算机支持教学高效率,完成教学管理的日常事务,是适应现代教学制度要求、推动教学管理走向科学化、规范化的必要条件;而教学管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,不允许出错,如果实行手工操作,每月须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行教学管理工作,不仅能够保证各项准确无误、快速输出,而且还可以利用计算机对有关教学的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点。[2] 例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工工资管理的效率,也是教学的科学化、正规化管理,与世界接轨的软件。[3] 在软件开发的过程中,随着面向对象程序设计和数据库系统的成熟,数计成为软件开发的核心,程序的设计要服从数据,因此教学管理系统的数据库设计尤其重要。本文主要介绍教学管理系统的数据库方面的设计,从需求分析到数据库的运行与维护都进行详细

数据库学生成绩管理系统课程设计

河南理工大学 计算机科学与技术学院 课程设计报告 200 7 — 200 8 学年第二学期 课程名称数据库课程设计 设计题目学生成绩管理系统 学生姓名 ^0^ 学号 专业班级 指导教师申自浩 2008 年 7 月 1 日

? 1 问题描述 1.1 背景 1)某大学有学生若干万名,每个学生每学期必须学习若干门课程。 2)每个学生有学号、姓名、性别、班级、出生日期等基本信息。 3)每门课程有课程号,课程名称、任课教师、学分等信息。 4)学校需要对每个学生的基本信息、所学课程、成绩进行统一管理,以便于对信息进行查询、浏览和修改。 1.2 数据需求 学生成绩管理系统主要用于学生成绩信息管理,据分析学生成绩管理系统的数据表可浓缩为:学生基本信息表、课程基本信息表和学生成绩信息表。根据学校的情况,可按下面的步骤来分析: (1) 确定学生所在的院系、所学的专业以及所在的班级。 (2) 确定学生所在班级的课程以及该课程学生的成绩;另外还需要知道学生所在 班级、学号和学期。 (3) 分析学生的基本信息,如姓名、性别、出生年月、家庭住址、联系电话。 (4) 用户信息分析,通常包括用户名和密码。 ? 2 解决方案 ( 或数据库系统设计 ) 2.1 E-R 模型设计 课程 学生 班级 学号 出生日期 姓名 查询成绩 任课教师 课程号 课程名称 学分 成绩 性别

根据E—R图,将其转化为如下数据实体,数据库:学生成绩管理系统.dbc,包括如下的表和视图: 1)学生登记表——学生表.dbf。 字段名称字段类型字段宽度 xh 字符型 10 xm 字符型 6 xb 字符型 2 csrq 日期型 8 bj 字符型 4 2)课程登记表——课程表.dbf。 字段名称字段类型字段宽度 kch 字符型 2 kcm 字符型 10 js 字符型 10 xf 字符型 10 3)成绩登记表——成绩表.dbf 字段名称字段类型字段宽度 xh 字符型 10 kch 字符型 2 cj 数值型 3 4) 借书视图(lyxview)。 为了进行浏览总表的需要,需要设计了一个总表浏览视图,该视图从学生表.dbf等3个表中提取了10个字段的数据: 学生表.xh 学生表.xm 学生表.xb 学生表.csrq 学生表.bj 课程表.kch 课程表.kcm 课程表.js 课程表.xf 成绩表.cj 其视图关系可由以下SQL语句定义: SELECT 学生表.*, 课程表.*, 成绩表.cj;

学生成绩管理系统源代码

学生成绩管理系统源代码-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

#include #include #include #include #include #include #include #include #define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单 \n\r");textcolor(10); getch();clrscr(); break; int shoudsave=0; struct student /* 学生信息结构体定义*/ { char num[10],name[20],cla[4]; int score1,score2,score3,total,ave; }; typedef struct node { struct student data; struct node *next; }Node,*L; void print1() { cprintf("\r============================================================= ==================="); } void print2() { cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n"); cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n"); cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n"); cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩."); cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n"); cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信 息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存 中.\n");

教务管理系统课程设计

《软件工程》 课程设计说明书 教务管理系统 学生姓名 学号 所在专业计算机科学与技术所在班级 指导教师 提交时间

目录 第一章绪言 (4) 1.1系统及需求分析 (4) 1.1.1 系统需求 (4) 1.1.2可行性分析 (4) 1.2系统功能简介 (4) 1.2.1 项目规划 (5) 1.2.2 教师管理 (5) 1.2.3 学生管理 (5) 1.2.4 成绩管理 (5) 1.2.5 课程管理 (6) 1.2.6 用户管理 (6) 1.2.7 系统开发的目标 (6) 第二章系统分析 (6) 2.1业务流程分析 (6) 2.1.1教师管理业务流程图 (6) 2.1.2学生管理业务流程图 (7) 2.1.3课程管理业务流程图 (7) 2.1.4成绩管理业务流程图 (7) 2.2数据流程分析 (8) 2.2.1数据流程图 (8) 2.3数据存储分析:实体联系图 (8) 第三章系统设计 (10) 3.1软件模块结构设计 (10) 3.1.1 系统方案确定 (10) 3.1.2 软件结构设计 (10) 3.2数据库设计 (11) 3.2.1 数据库表 (11) 第四章系统的功能 (15) 4.1系统界面 (15) 4.1.1 系统登录界面 (15) 4.1.2 系统主界面 (15) 4.1.3 系统用户管理界面 (16) 4.1.4 系统教师资料管理界面 (16) 4.1.5 系统课程界面 (17) 4.1.6 系统成绩界面 (18) 4.1.7 系统学生界面 (18) 4.2代码部分 (19) 4.2.1 login.aspx (19) 4.2.2 class.aspx (20)

学生成绩管理系统(数据结构C语言版源代码)54843943

天天都是一个出发点,每天都有一点提高,每天都有一点收成! #include #include #include struct students{ char Sex[3]; /*字符型学生性别*/ double English; /*双精度实型英语成绩*/ double Java; /*双精度实型Java成绩*/ double Sjjg; /*双精度实数据结构*/ double Szdl; /*双精度实型数字电路*/ double Jsj; /*计算机组成原理*/ struct students *next; /*用与构建连表指向下一结点*/ }; FILE *fp; /*定义全局变量fp*/ void Revisemenu();/*修改菜单*/ void Sortmenu();/*排序菜单*/ void menu();/*主菜单*/ void secret();/*安全验证*/ struct students * Input();/*新建学生信息*/ void fprint(struct students *head);/*将信息导入文件可追加*/ void fprint_(struct students *head);/*将信息导入文件并覆盖*/ void Browse(struct students *head);/*浏览全部学生信息*/ struct students * create(struct students *head int *n);/*从tushu_list中读取数据构建链表*/ void SortEnglish(struct students * head);/*按英语成绩排序*/ void SortJava(struct students * head);/*按Java成绩排序*/ void SortSjjg(struct students * head);/*按数据结构成绩排序*/ void SortSzdl(struct students * head);/*按数字逻辑电路成绩排序*/ void SortJsj(struct students * head);/*按计算机组成原理成绩排序*/ struct students * Delete(struct students * head struct students * Revise();/*修改学生信息(按编号修改)*/ /*主菜单*/ void menu() { printf("\n\n"); printf("***************************************************\n"); printf(" 学生成绩管理系统 \n"); printf(" 1-添加新同学 2-浏览学生信息 \n"); printf(" 5-按成绩排序 6-修改学生信息 \n"); printf(" 7-删除学生信息 0-退出系统 \n"); printf("___________________________________________________\n");

android简单计算器课程设计.

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

数据库课程设计教学管理系统

《数据库原理与应用》 课程设计 课程名称 设计题目 专业班级 学生姓名 指导教师 前言 数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。 随着信息技术的飞速发展,信息化的大环境给各成人高校提出了实现校际互联,国际互联,实现静态资源共享,动态信息发布的要求; 信息化对学生个人提出了驾驭和掌握最新信息技术的素质要求;信息技术提供了对教学进行重大革新的新手段;信息化也为提高教学质量,提高管理水平,工作效率创造了有效途径. 校园网信息系统建设的重要性越来越为成人高校所重视. 利用计算机支持教学高效率,完成教学管理的日常事务,是适应现代教学制度要求、推动教学管理走向科学化、规范化的必要条件;而教学管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,不允许出错,如果实行手工操作,每月须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行教学管理工作,不仅能够保证各项准确无误、快速输出,而且还可以利用计算机对有关教学的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点. 例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工工资管理的效率,也是教学的科学化、正规化管理,与世界接轨的件。 在软件开发的过程中,随着面向对象程序设计和数据库系统的成熟,数计成

为软件开发的核心,程序的设计要服从数据,因此教学管理系统的数据库设计尤其重要。本文主要介绍教学管理系统的数据库方面的设计,从需求分析到数据库的运行与维护都进行详细的叙述。本文的分为5 章: 第1章主要是课题简介及设计的内容与目的。 第2章是需求分析,此阶段是数据库设计的起点。 第3章是概念设计,它是将需求分析的用户需求抽象为信息结构。第4章是逻辑结构设计,它将概念模型转换为某个DBMS 所支持的数据模型。 第5章是数据库的实施与运行,它包括数据的载入及数据库的运行。 关键词:SQL 语言;数据库设计;教学管理系统 目录 第一部分:基本情况与内容 (3) 第二部分:课程设计内容 (3) 第一章绪论 (3) 1课题简介 (3) 2设计目的 (4) 3设计内容 (4) 第二章需求分析 (4) 1需求分析的任务 (4) 2需求分析的过程 (5) 3数据字典 (5) 第三章概念结构设计 (8) 1概念结构设计的方法与步骤 (8) 2概念结构设计的方法 (8) 2.1概念结构设计的步骤 (9) 2.2数据抽象与局部视图设计 (9) 2.3视图的集成 (9) 第四章逻辑结构设计 (9) 1E-R图向关系模型的转换 (9) 2数据模型的优化 (10) 3数据库的结构 (11) 第五章物理设计阶段 (12) 1数据存储方面 (12) 2系统功能模块 (12) 3物理设计阶段结果 (13) 4数据库实施阶段 (13) 4.1数据库实施阶段目标 (13) 4.2数据库实施阶段任务 (13) 4.3建立视图 (15) 5存储过程定义 (16)

数据结构课程设计学生成绩管理系统

2020/3/27 淮阴工学院 数据结构课程设计报告 选题名称: 学生成绩管理系统 系(院): 数理学院 专业:信息与计算科学 班级: 计科1102班 姓名: 徐连喜学号: 33 指导教师: 周海岩 学年学期: 2011 ~ 2012 学年第 1 学期 2012 年 06 月 06 日 1 2020/3/27 【摘要】 21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速发展和广泛应用,对社会的政治,经济,军事,文化等领域产生越来越深刻。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对

于学校的决策者和管理者来说都至关重要。本论文叙述到的学生成绩管理系统是用IIS+ASP网页编程+ACCESS数据库+DREAMWEAVER MX 2004+SQL查询语言实现的。重点介绍了学生成绩管理系统的实现过程:包括系统分析,系统调查,功能设计,数据库设计,系统实现,系统测试和调试等。本系统主要功能有查询学生成绩、单个添加学生成绩、批量添加学生成绩、删除学生成绩、管理页面和修改管理员密码等内容。 【关键词】 成绩管理;成绩查询; C++ 2 2020/3/27 目录 中文摘要。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 1。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1绪论。。。。。。。。。。。 4。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 5选题背景。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 6需求分析2总体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 7。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 8程序设计组成框图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9模块功能说明。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10程序流程图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 11主要函数之间相互调用3 在设计过程中的感受。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 致谢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 13参考文献 14。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。附录:源程序清单。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 15

简易计算器课程设计

评阅教师评语:课程设计成绩 考勤成绩 实做成绩 报告成绩 总评成绩指导教师签名: 课程设计报告 论文题目基于ARM的简易计算器设计 学院(系):电子信息与自动化学院 班级:测控技术与仪器 学生姓名:同组同学: 学号:学号: 指导教师:杨泽林王先全杨继森鲁进时间:从2013年 6 月10 日到2013年 6 月28 日 1

目录 1、封面—————————————————————P1 2、目录—————————————————————P2 3、前言—————————————————————P3 4、关键字————————————————————P3 5、原理与总体方案————————————————P3 6、硬件设计———————————————————P6 7、调试—————————————————————P10 8、测试与分析——————————————————P11 9、总结—————————————————————P13

10、附件—————————————————————P14 前言 近几年,随着大规模集成电路的发展,各种便携式嵌入式设备,具有十分广阔的市场前景。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。在嵌入式系统中,数据和命令通过网络接口或串行口经过ARM程序处理后,或显示在LCD上,或传输到远端PC上。 本文通过周立功的LPC2106芯片完成的简易计算器,正是对嵌入式应用的学习和探索。 一、摘要: 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 关键字:中断,扫描,仿真,计算 二、原理与总体方案: 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。 而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而

数据结构课程设计-学生成绩管理系统

任务书

摘要 管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。 本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化。达到提高学生成绩管理效率的目的。与传统管理方法相比有明显的优点:查找方便,可靠性高,保密性好,成本低。彻底改变了以前繁杂的管理模式,实现全面的、相对集中的、职能化的信息综合管理。 计算机被用到信息管理系统的环境正是适应了当今时代飞速发展的信息时代。人们深刻的认识到了计算机功能的强大,对于复杂的信息管理,计算机充分发挥着它的优越性。检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低,这些优点极大地减轻了学院教学人员的工作量,缩小开支,提高了学生档案管理的效率和准确性,能够合理的安排时间,学生能够尽快的知道自己的考试成绩。同时,学生管理系统的应用也为今天的教育在未来市场的竞争力有所提高。

目录 1.引言 数据结构在界至今没有标准的定义。个人根据各自的理解的不同而有不同的表述方法: 在他的《数据结构、算法与应用》一书中称:“数据结构是,以及存在于该对象的和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的来给出。”他将数据对象()定义为“一个数据对象是实例或值的集合”。在《》一书中的定义是:“数据结构是()的物理实现。” 在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。 1.1. 重要意义 一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数

c语言课程设计报告+学生成绩信息管理系统+源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r);

最新单片机简易计算器课程设计

单片机简易计算器课 程设计

引言 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本任务是个简易的两位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的锻炼。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS –51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。 事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台

学生成绩管理系统课程设计

辽宁工业大学 数据库原理与应用课程设计(论文)题目:东北大学学生成绩管理系统 院(系):软件学院 专业班级:软件技术083班 学号:081404090 学生姓名:王晓君 指导教师:张莉莉 教师职称:助教 起止时间:2009.11.23至2009.12.4

课程设计(论文)任务及评语院(系):软件学院教研室:软件教研窒

目录 第1章课程设计目的与要求 (1) 1.1 课程设计目的 (1) 1.2 课程设计的实验环境 (1) 1.3 课程设计的预备知识 (1) 1.4 课程设计要求 (1) 第2章课程设计内容 (2) 2.1 系统设计 (2) 2.2 数据库模型 (3) 2.3 设计窗体和报表 (7) 2.4 窗体和报表模块主要代码 (1) 第3章课程设计总结 (1) 3 参考文献 (1) 4

第1章课程设计目的与要求 本课程的课程设计实际是电子商务和计算机信息管理专业学生学习完《数据库原理及应用(ACCESS 2002)》课程后,进行的一次全面的综合训练,其目的在于加深对数据库基础理论和基本知识的理解,掌握运用数据库应用系统开发软件的基本方法。1.1课程设计的实验环境 硬件要求能运行Windows 9.X操作系统的微机系统。数据库应用系统开发软件可以选用Microsoft Access,或其他数据库管理系统。 1.2 课程设计的预备知识 熟悉数据库的基本知识及一种以上数据库系统开发软件。 1.3 课程设计要求 按课程设计指导书提供的课题,应根据下一节给出的基本需求独立完成八个方面的

设计,标有“可选”的部分可根据设计时间的安排及工作量的大小适当选择。选用其他课题或不同的数据库管理系统,可以组成设计小组,分模块进行,共同协作完成一个应用系统的开发任务。要求书写详细的设计说明书,对复杂的代码段和程序段,应画出程序流程图。在界面设计中,画出每个窗口的布局,有多个窗口时,按模块调用的方式画出窗口调用图,用手工画好报表和标签样式,严禁相互抄袭。

学生成绩管理系统源代码

#include #include #include #include #include #include #include #include #define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单\n\r");textcolor(10); getch();clrscr(); break; int shoudsave=0; struct student /* 学生信息结构体定义*/ { char num[10],name[20],cla[4]; int score1,score2,score3,total,ave; }; typedef struct node { struct student data; struct node *next; }Node,*L; void print1() { cprintf("\r======================================================================= ========="); } void print2() { cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n"); cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n"); cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n"); cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩."); cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n"); cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存中.\n"); cprintf("\n\r 9.帮助学生成绩信息在这里你可以获得帮助信息.\n");

UML课程设计—教学管理系统.doc

《UML 课程设计》报告 题目——网络教学管理系统 学号:08103230 姓名:王越 指导老师:罗新,王怡 时间:2011 年7 月15 日 一、中教学管理系统需求分析 1.系统功能需求 (1)学生注册登录之后,可以下载课件、查询搜索课程信息、浏览教学、可以在留言板留言; (2)教师注册登录之后,可以上传课件、发布更改课程信息、发布教学信息; (3)管理员登录之后,可以进行对网站数据的管理,如:可以修改删除用户信息、审核添加用户、页面维护、删除留言; 2.系统模块分析 图1-1 系统整体模块 满足上述功能需求,将系统分为以下三个模块: (1)基本功能模块:教师可以上传文件、发布课程信息、修改删除课程信息; 学生可以下载课件、查询课程信息; (2)数据管理模块:为管理员提供管理信息功能; (3)扩展功能模块:、教师可以发布新消息(考试信息、课程变动);学生可以浏览各种教师发布的消息;该系统用户还可以发表评论,评论课程; 3.数据库管理模块:

学生信息管理:负责学生信息的管理 教师信息管理:负责教师信息的管理 评论管理:负责评论的管理 图1-2 数据管理模块 4.基本功能模块: 下载课件:学生可以使用此模块从网站上下载课件及其他资料。 上传课件:教师可以使用此模块将课程的数据上传到网站服务器。 发布课程信息:教师可以通过此模块公布自己的课程情况,以便同学对该 课程有一定的了解,方便今后的选课; 查询课程信息:学生可以查询自己专业或者是感兴趣专业的课程的具体信息; 页面维护:网站管理员可以使用此模块对网站的页面进行维护。 图1-3基本功能模块 5.扩展功能模块: 发表评论:用户登录之后,可以对学生和教师可以对其中一门课程进行评论,发表自己的看法; 发布消息:教师可以在该功能模块中发布自己课程的及时消息:例如课程变动、考试安排、课程作业、通知等; 浏览消息:学生可以及时的浏览到最新的课程通知;

相关文档
最新文档