学生成绩管理系统设计实验

合集下载

(2023)学生成绩管理系统数据库设计实验报告(一)

(2023)学生成绩管理系统数据库设计实验报告(一)

(2023)学生成绩管理系统数据库设计实验报告(一)学生成绩管理系统数据库设计实验报告实验背景随着信息技术的快速发展,学生成绩管理系统变得越来越重要。

一个好的学生成绩管理系统可以方便学生和教师查询成绩,促进教学和学习效果的提高。

实验目的本实验的目的是设计一个学生成绩管理系统的数据库,以方便学生和教师查询成绩。

数据库设计实体关系图我们先画出实体关系图,来帮助我们更好地理解数据库的关系。

学生 -- 选课 -- 课程|- 成绩|- 学期数据库表设计学生表字段名称类型约束条件说明id int primary key, auto_increment 学生ID name varchar(20) not null 学生姓名gender varchar(10) not null 学生性别age int not null 学生年龄字段名称类型约束条件说明grade int not null 学生年级major varchar(50) not null 学生专业phone varchar(20) not null 学生电话选课表字段名称类型约束条件说明id int primary key, auto_increment 选课ID student_id int not null 学生ID course_id int not null 课程ID semester varchar(20) not null 学期课程表字段名称类型约束条件说明id int primary key, auto_increment 课程ID name varchar(50) not null 课程名称credit int not null 学分成绩表字段名称类型约束条件说明id int primary key, auto_increment 成绩ID student_id int not null 学生ID course_id int not null 课程ID score int not null 成绩semester varchar(20) not null 学期实验结论通过本实验的设计,我们成功构建了一个学生成绩管理系统的数据库,包含学生、选课、课程和成绩四张表,满足了学生和教师查询成绩的需求。

C语言程序设计学生成绩管理系统实验报告

C语言程序设计学生成绩管理系统实验报告

移通学院C语言程序设计报告书设计名称:学生成绩管理系统专业:指导老师:班级:姓名:学号:座号:时间一、实验目的1.在编辑应用程序过程中,逐步加深对C语言编程的理解;2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;3.培养初步编程的能力,为以后的学习奠定基础;二、实验内容运用所学的C语言知识编辑一个应用程序:学习成绩管理系统三.系统软件环境:本程序主要运行在: Visual C++ 6.0Turbo C/C++ 3.0四.课程设计题目:学生成绩管理系统程序说明:有N个学生,每个学生的数据包含学号不重复、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:1主菜单2各菜单项功能①成绩录入:输入学生的学号、姓名及三门课的成绩;②成绩查询:按学号查询学生记录;③成绩统计:计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序后输出;④退出系统:退出整个系统即主菜单;五.数据结构设计描述:↓int num; /定义学号,变量为整型/char name; /定义姓名,变量为字符型/int score; /定义课程的成绩,变量为整型/float average; /定义平均分,变量为浮点型/七.系统各函数的功能,、相互调用关系1.函数实现功能说明:1menu函数是定义一个菜单函数,其功能在于输出菜单界面供使用者选择;2input函数是定义用于输入学生信息;3select 函数是定义用于查询学生信息;包括学号、姓名及各科成绩;4statistics 函数计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序输出;2.相互调用关系:Main函数调用menu函数;Menu 函数可以调用input 函数、select函数和statistics 函数八.心得体会C语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与C语言的广泛应用相比较还有很大的差距;我们对于C语言的理解和使用还处在一个初级的阶段,我们要想掌握它,要学习的还很多,同时要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以创造出更为完善的应用程序; 九.程序:include <stdio.h>include <stdlib.h>include <conio.h>define N 3 /学生人数/define M 3 /课程门数/struct student{int num; /学号/char name20; /姓名/int score3; /三门课成绩/float average;}stuN; /学生数/void input; /查询/void select; /统计/void menu;void input{int i,j;printf"\t\t①成绩录入\n\n";fori=0;i<N;i++{printf"请输入学号:";scanf"%d",&stui.num;printf"请输入姓名:";scanf"%s",&;forj=0;j<M;j++{printf"第%d门成绩的分数:",j+1;scanf"%d",&stui.scorej;}printf"\n\n";}printf"\n\n";printf"输入完毕按任意键返回主菜单";}/2.查询/void selectint no{int i;printf"学生%d号: \n",no; printf"学号: %d\n",stuno-1.num; printf"姓名: %s\n",;for i=0;i<M;i++{printf"第%d门课程的成绩为: ",i+1; printf"%d\n",stuno-1.scorei;}printf"\n按任意键返回主菜单";getch;}/3.统计/void statistics{float temp=0;int i=0;/学生成绩平均分/temp=0;printf"\t\t③成绩统计\n\n";forj=0;j<N;j++{fori=0;i<M;i++{temp=temp+stuj.scorei;}stuj.average=temp/N;printf"\n学生%s的成绩平均成绩为:",;printf"%0.2f分",stuj.average;temp=0;}/排序/for j=0;j<N;j++fori=0;i<N-j-1;i++ifstui.average<stui+1.average{ temp=stui.average;stui.average=stui+1.average;stui+1.average=temp;}printf"\n\n学生平均成绩前三名:";fori=0;i<3;i++{printf"\n第%d名:%0.2f分",i+1,stui.average;}printf"\n\n按任意键返回主菜单";getch;}void menu{ int num=0;int n=0;printf"\n\t\t\t学生成绩管理系统\n\n";printf"\n\t\t\t①成绩录入\n\t\t\t②成绩查询\n\t\t\t③成绩统计\n\t\t\t④退出系统\n";printf"\t\t\tchoose:";scanf"%d",&num;switchnum{case 1:system"cls";input;break;case 2:system"cls";printf"\t\t②成绩查询\n\n"; printf"请输入要查询的学生号1~3:";scanf"%d",&n;selectn;break;case 3:system"cls";statistics;break;case 4:exit0;default:;}}void main{while1{system"cls"; /清屏/menu;}}。

成绩管理系统实验报告

成绩管理系统实验报告

成绩管理系统实验报告成绩管理系统实验报告一、引言近年来,随着教育信息化的发展,成绩管理系统逐渐成为学校管理和教育教学的重要工具。

本实验旨在设计和实现一套成绩管理系统,以提高学校成绩管理的效率和准确性。

二、系统设计与实现1.需求分析在进行系统设计之前,我们首先进行了对学校成绩管理的需求分析。

通过与学校管理人员和教师的沟通,我们了解到他们对成绩管理系统的期望主要包括:成绩录入、查询、统计、分析等功能。

2.系统架构基于需求分析的结果,我们设计了一个分层架构的成绩管理系统。

系统包括三个主要模块:学生信息管理模块、成绩录入与查询模块、成绩统计与分析模块。

每个模块都有相应的功能和界面。

3.数据库设计为了存储和管理学生的成绩信息,我们设计了一个关系型数据库。

数据库中包含学生信息表、课程信息表、成绩信息表等。

通过合理的表结构和关联,实现了学生信息与成绩信息的关联和查询。

4.界面设计为了提高用户的使用体验,我们注重界面的友好性和简洁性。

通过使用合适的颜色、布局和图标,使得用户能够方便地进行成绩录入、查询和统计等操作。

5.系统实现我们使用了Java语言和MySQL数据库来实现成绩管理系统。

通过使用Java的面向对象特性和MySQL的数据库操作,我们成功地实现了系统的各个功能模块。

三、系统功能介绍1.学生信息管理模块该模块主要用于管理学生的基本信息,包括学号、姓名、性别、年龄等。

教师可以通过该模块进行学生信息的录入、修改和删除等操作。

2.成绩录入与查询模块该模块用于录入和查询学生的成绩信息。

教师可以通过该模块录入每个学生的课程成绩,并可以根据学号或姓名进行成绩的查询和修改。

3.成绩统计与分析模块该模块用于对学生的成绩进行统计和分析。

教师可以通过该模块查看某门课程的平均分、最高分、最低分等统计结果,并可以生成相应的报表。

四、实验结果与分析通过对成绩管理系统的实际使用和测试,我们得出了以下实验结果和分析:1.系统的功能完善性经过实验,我们发现成绩管理系统的各个功能模块都能够正常运行,并且能够满足学校管理人员和教师的需求。

学生成绩信息管理系统 课程设计实验报告

学生成绩信息管理系统 课程设计实验报告

《可视化程序设计》课程设计专业:班级:指导老师:姓名:目录一、需求分析 (3)1.1任务需求 (3)1.2功能需求 (3)1.3界面需求 (3)二、概要设计 (4)2.1流程图 (4)2.2数据库E-R图 (4)三、详细设计 (4)3.1模块分析 (5)3.2实现方法(相关代码及界面) (5)四、调试分析 (15)4.1稳定性测试 (15)4.2界面分析 (15)五、课设总结 (15)一、需求分析任务需求题目要求完成一个学生成绩的信息管理系统,要求能进行对学生成绩的录入、修改和删除,能查询学生的成绩,同时可以对学生的成绩进行排序。

在Visual C++环境下,使用MFC和DBCS进行开发。

系统必须是基于单文档的程序框架或者是基于对话框的应用程序,包含菜单控件,使用数据库进行数据的存储操作,可用Access数据库。

系统的使用,必须有权限的现在,即只有管理员才能登陆系统。

功能需求系统有以下几个功能性要求:1.学生成绩的录入:能够将学生的成绩信息进行录入,考虑到学生的添加问题,加入新学生的添加功能。

2.学生成绩的修改:满足老师对学生成绩的修改,包括对数学、英语、语文成绩的修改。

3.学生成绩的删除:能够删除指定学生的指定课程成绩信息的删除,将要删除的成绩的信息进行清零。

4.学生成绩的查询:输入学号,查询对应学生的全部信息。

5.学生成绩的排序:为了更好的了解学生的学习情况,要求可以对学生的成绩进行排序查询,直观了解班级学生的学习状态。

包含四种排序:根据数学成绩的排序,根据英语成绩的排序,根据语文成绩的排序,根据总分的排序。

6.权限验证:用户使用该系统,首先进行验证,使用管理员账号和密码,才能登入系统。

界面需求1.登陆界面:有登陆账号和密码的输入框,如果输入账号或密码,提醒用户输入相应的信息。

登陆失败,提醒用户登陆失败。

2.主界面:包含菜单、工具栏以及状态栏。

通过登陆,主界面可以直接显示学生信息,同时,通过使用工具栏的向后按钮,显示数据库后一个同学的信息。

学生成绩管理系统的设计与实现课程设计

学生成绩管理系统的设计与实现课程设计

学生成绩管理系统的设计与实现一、概述1.1 背景介绍随着教育信息化的发展,学生成绩管理系统成为学校教务工作中必不可少的一部分。

学生成绩管理系统的设计与实现,对于提高教学质量、加强学校管理、促进教学改革具有重要意义。

1.2 课题意义本课题旨在探讨学生成绩管理系统的设计与实现,为学校教务工作提供便利、高效的信息化管理手段。

通过对学生成绩进行科学、全面、及时的管理和分析,可以帮助学校实现优质教学和个性化教育的目标,促进学生成长和全面发展。

二、需求分析2.1 用户需求学生、教师、教务处、家长等用户对学生成绩管理系统的需求分别不同,需要根据不同用户的需求设计相应的功能模块。

2.2 功能需求学生成绩管理系统需要包括学生信息管理、课程管理、成绩管理、教师管理、家长管理、班级管理等基本功能模块。

三、系统设计3.1 系统架构设计通过对学生成绩管理系统的功能模块、数据流向、系统接口等方面进行分析,确定系统的整体架构,包括前端界面设计、后端数据库设计、逻辑处理模块设计等。

3.2 数据库设计设计学生成绩管理系统的数据库结构,包括学生信息表、教师信息表、课程信息表、成绩信息表等,确保数据存储及管理的合理性和完整性。

四、系统实现4.1 前端界面实现设计并实现学生成绩管理系统的前端界面,包括登入界面、主页、学生信息管理界面、成绩查询界面、教师评分界面等。

4.2 后端逻辑实现编写学生成绩管理系统的后端逻辑处理代码,包括用户认证、数据查询、数据更新、数据统计分析等功能的实现。

五、系统测试5.1 功能测试对学生成绩管理系统的各个功能模块进行测试,确保系统的稳定性和可靠性。

5.2 性能测试对系统的并发性能、响应速度等方面进行测试,评估系统的性能表现。

六、系统部署与维护6.1 系统部署将学生成绩管理系统部署到学校教务管理服务器上,确保系统能够正常运行。

6.2 系统维护定期对学生成绩管理系统进行维护,包括数据备份、系统更新、性能优化等,确保系统的稳定性和安全性。

学生成绩管理信息系统实验报告

学生成绩管理信息系统实验报告

学生成绩管理信息系统实验报告在如今数字化时代,信息系统已经被广泛运用在各行各业,在教育领域中也不例外。

学生成绩管理信息系统是一种管理学生成绩、帮助教师了解学生学习情况、为学生提供个性化学习方案等方面的软件工具。

本次实验的目的是在探究学生成绩管理信息系统的基础上,对该系统进行设计、实现和测试。

以下将从实验思路、设计、实现和测试四个方面来阐述本次实验。

实验思路在进行实验前,首先要确定实验目的和实验思路。

本次实验的重点在于学生选课,并且在选课后能够及时更新学生信息,以及对学生成绩进行统计、查询、打印,为教师提供了解学生学习情况和写作评价的依据,让学校和家长可以及时掌握学生的学习情况,从而有针对性地进行教育和指导。

因此,在确定实验目的和重点后,我们就可以开始进行系统的设计和实现了。

系统设计系统设计是本次实验的核心,也是整个实验过程的重点。

在系统设计阶段,首先需要建立系统数据库,涉及的数据有学生的基本信息、成绩和选课情况。

然后,需要对学生专业、班级和课程进行分类,建立相应的查询和统计模板,方便教师快速定位学生,及时进行反馈和评价。

同时,还需要建立学生和教师的账号登陆系统,保证系统的安全性和可靠性。

最后,需要对系统进行界面设计,使之简洁明了,方便使用。

系统实现在系统设计完成之后,我们需要进行系统的实现。

实现过程中,需要使用到多种编程语言、技术和工具,如HTML、CSS、Python、MySQL等。

其中,Python作为本次实验的主要编程语言,被广泛应用在后端开发和数据交互方面。

在实现过程中,需要将系统设计好的功能逐一实现,并进行模块测试和数据校验,确保系统的正确性和稳定性。

系统测试在系统实现完成之后,需要对系统进行测试,以确保系统的功能完善和容错性能。

系统测试分为两个阶段,第一阶段为单元测试,主要测试系统各个功能模块的正确性和稳定性。

第二阶段为集成测试,主要测试各个功能模块之间的协同性和兼容性。

在测试过程中,需要注意数据的完整性和正确性,并进行数据备份和恢复,以避免数据丢失和系统崩溃。

学生学籍成绩管理系统设计报告

学生学籍成绩管理系统设计报告

综合应用所学的C 语言程序设计知识,自行设计并实现一个较为完整的小型管理信息系统。

通过系统分析、系统设计、编程实现,写实验报告等环节,初步掌握软件系统的设计方法和步骤,提高灵便运用程序语言进行软件开辟的技能,提高程序设计水平和分析问题、解决问题的能力。

1):熟悉C 语言的开辟环境,按照给定的上机步骤练习完成;2):熟悉C 程序的编辑,编译,链接和运行的过程。

3):编译一个应用系统程序,形成一个软件系统。

三、学籍成绩管理系统功能设计要求:1. 输入记录:将每一个学生的姓名、学号以及数学、物理、化学、英语、网络课程的成绩作为一个记录。

该软件能建立一个新的数据文件或者给已建立好的数据文件增加记录。

2. 显示记录:根据用户提供的记录或者根据学生姓名显示一个或者几个学生的各门功课的成绩和平均成绩。

3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改先后对记录内容进行显示。

4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找先后对记录内容进行显示。

5. 删除记录:可删除数据文件中的任一记录。

6.恢复记录:能恢复被删除的任一记录。

7.添加记录:可以在数据文件中添加记录并添加记录后对记录内容进行显示。

8. 统计: (A)计算各门课程全班平均成绩及总成绩; (B) 统计其课程全班得:100 分、 90~99 分、80~89 分、 70~79 分、 60~69 分、 59 分以下学生人数及全班总人数的百分比; (C)按字符表格形式打印全部学生的平均成绩( 包括各课总的平均成绩)。

9.保存数据文件功能。

10.打开数据文件功能。

经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或者用工程文件的形式进行逐步联合调试。

程序运行结果如下表所示(记录个数至少 8 个)。

1、算法设计学籍管理系统程序采用了结构化程序设计的思想,将程序分解成许多模块,再由主函数调用这些模块,实现不同的功能。

实验3 简单的学生成绩管理系统

实验3 简单的学生成绩管理系统

简单的学生成绩管理系统(线性表链式结构的应用)实验目的1.了解线性表的逻辑结构特性,以及这种特性在计算机内的链式存储结构2.掌握线性表链式结构的定义,及其c语言的实现3.掌握线性表链式结构的各种基本操作,并实现简单的应用实验要求1.熟练掌握c语言的基本知识,认真理解课本相关内容的算法思想2.认真按照实验内容完成程序,保留实验结果,填写实验报告实验内容1.从键盘输入学生的基本信息(学号,姓名,英语成绩,数学成绩),计算每个学生的平均成绩,将数据保存到文件student.txt中2.按一定格式输出学生信息3.将两门课都不及格的学生信息抽取出来,另存入文件bat.txt中4.提供按学号进行查询的功能(文件保存部分选作)//说明姓名name最多输入两个英文字符、、、、、、、、、、、、、、、、、#include <stdlib.h>#include <stdio.h>#include <string.h>#define NEW (struct node*)malloc(sizeof (struct node))FILE *fp,*fh;int renshu=0;//计算人数struct node{long int num;char name[4];int maths;int english;float ave;char flag;struct node* next;};///////////////创建数据链表/////////////////////////////////struct node* creat(){static struct node *h;char i;struct node *p,*q;long int xuehao;h=NULL;printf("输入学号:");scanf("%ld",&xuehao);while(xuehao>0){renshu++;p=NEW;if(p==NULL){printf("\nAllocation Failure\n");exit(0);}p->num=xuehao;printf("\n输入姓名:");for(i=0;i<3;i++){scanf("%c",&p->name[i]);}p->name[3]='\0';printf("\n输入数学成绩:");scanf("%d",&p->maths);printf("\n输入英语成绩:");scanf("%d",&p->english);p->ave=(float)(p->maths+p->english)/2;fprintf(fp,"%ld %s %d %d %f\n\n",p->num,p->name,p->maths,p->english,p->ave);fprintf(fp,"\n");if(p->maths<60&&p->english<60)p->flag=1;elsep->flag=0;p->next=NULL;if(h==NULL)h=p;elseq->next=p;q=p;printf("--------------------------------------------\n");printf("\n输入学号:");scanf("%ld",&xuehao);}p->next=NULL;return h;}/////////////////////查找两门都不及格的同学//////////////////////////////////////////void research(struct node *head){static int i=0;struct node *p;p=head;if((fh=fopen("f:\\bat.txt","wb"))==NULL){printf("\ncan not open the file\n");exit(1);}while(p!=NULL){if(p->flag==1){i++;printf("\n学号");printf("%ld",p->num);printf("\n姓名\t高数\t英语\t平均分\n");printf(" %s\t%d\t%d\t%f\n",p->name,p->maths,p->english,p->ave);fprintf(fh,"%ld\t\t%s\t%d\t%d\t%f\n",p->num,p->name,p->maths,p->english,p->ave);}p=p->next;}fclose(fh);if(i==0)printf("\n没有找到不及格的学生\n");}///////////////////按学号查找////////////////////////////////////////////void lookfor(struct node* head,long int hao){struct node* q;char temp=0;q=head;while(q->num!=hao){q=q->next;if(q==NULL){temp=1;break;}}if(temp==0){printf("--------------------------------------------\n");printf("--------------------------------------------\n");printf("学号");printf("%ld",q->num);printf("\n姓名\t高数\t英语\t平均分\n");printf(" %s\t%d\t%d\t%f\n",q->name,q->maths,q->english,q->ave);printf("--------------------------------------------\n");}elseprintf("该学生不存在");}////////////////////////////////////////////////////void main(){struct node* head;struct node bus;char ch;int i;long int num1;printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\学号输入为0时结束录入学生成绩\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n");printf(" 注释:姓名必须是字符型数据,最多俩字符\n\n");if((fp=fopen("f:\\student.txt","wb"))==NULL){printf("\ncan not open the file\n");exit(1);}head=creat();fclose(fp);if((fp=fopen("f:\\student.txt","rb"))==NULL){printf("\ncan not open the file\n");exit(1);}printf("\n/----------------------------------------");printf(" \n 学生成绩");printf("\n----------------------------------------/");printf("\n学号\t姓名\t高数\t英语\t平均分\n");for(i=0;i<renshu;i++){fscanf(fp,"%ld %s %d %d %f",&bus.num,&,&bus.maths,&bus.english,&bu s.ave);printf("%ld\t%s\t%d\t%d\t%f\n",bus.num,,bus.maths,bus.english,bus.ave);}fclose(fp);printf("\n/--------------------------------------------\n");printf(" 两门都不及格的学生\n");printf("--------------------------------------------/");research(head);printf("是否查找:0/1");scanf("%d",&ch);while(ch==1){printf("\n\n查找学号:");scanf("%ld",&num1);lookfor(head,num1);printf("是否继续查找:0/1");scanf("%d",&ch);}}。

学生成绩管理系统的设计与实现

学生成绩管理系统的设计与实现

学生成绩管理系统的设计与实现【摘要】本文介绍了学生成绩管理系统的设计与实现过程。

在讨论了研究背景、研究意义和研究目的。

接着在正文部分分析了系统的总体设计、前端设计与实现、后端设计与实现、数据库设计与实现以及功能模块设计与实现。

在对系统性能进行评估,并总结了用户反馈及未来展望。

通过本文的分析,读者可以了解学生成绩管理系统的具体设计和实施过程,同时也可以了解系统的性能和用户满意度,为未来的系统改进提供参考。

【关键词】学生成绩管理系统、设计与实现、引言、研究背景、研究意义、研究目的、系统总体设计、前端设计与实现、后端设计与实现、数据库设计与实现、功能模块设计与实现、结论、系统性能评估、用户反馈、未来展望.1. 引言1.1 研究背景学生成绩管理系统是一种能够帮助学校和学生更好管理和监控学生学习情况的重要工具。

随着教育信息化的发展,学生成绩管理系统已经成为学校管理的重要组成部分。

通过学生成绩管理系统,学校可以实时监控学生的学习情况,了解学生的成绩分布和学习进度,及时发现问题并进行干预。

而学生也可以通过系统查看自己的学习情况,了解自己的成绩排名和学习进步情况,从而更好地调整学习方法和提升学习动力。

目前市面上的学生成绩管理系统存在一些问题,比如功能单一、界面复杂、操作繁琐等。

设计一款功能完善、操作简单、界面友好的学生成绩管理系统具有重要的现实意义和研究价值。

本研究旨在通过对学生成绩管理系统的设计与实现,探讨如何提高学生成绩管理系统的效率和易用性,从而更好地满足学校和学生的需求。

本文将从系统总体设计、前端设计与实现、后端设计与实现、数据库设计与实现、功能模块设计与实现等方面展开探讨,以期为学生成绩管理系统的进一步发展提供参考和借鉴。

1.2 研究意义学生成绩管理系统在现代教育管理中扮演着重要的角色,它可以帮助学校更加高效地管理学生成绩信息,为教育决策提供依据。

研究学生成绩管理系统的意义主要体现在以下几个方面:学生成绩管理系统可以提高教育教学质量,通过对学生成绩信息的实时监测和分析,教师可以更加全面地了解学生的学习情况和表现,及时发现问题并进行针对性的教学调整,从而提升教学效果。

学生成绩管理系统实验报告

学生成绩管理系统实验报告

洛阳理工学院课程设计报告课程名称数据库课程设计设计题目学生成绩查询系统专业计算机科学与技术班级 B100506 学号姓名孙帅杰完成日期2013年1月6号课程设计任务书设计题目:学生成绩管理系统设计内容与要求:设计内容:教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。

教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。

一个教师可以教授多个班的多门课程。

教师可以查看学习该课程的学生名单。

课程结束后,教师可以录入课程成绩。

课程分两类,必修课和选修课。

学生可以选修课程,每学期几门。

学生可以查看自己各门课程的成绩。

学生还可以进行评教,给老师打分。

系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。

设计要求:要求完成需求分析,写出功能需求和数据需求描述;在需求分析的基础上完成数据库的概念结构设计、逻辑结构设计、物理结构设计;用C#语言,完成管理系统的部分程序模块的界面设计。

指导教师:陶荣2012年12月28日课程设计评语成绩:指导教师:年月日目录1.绪论 (1)1.1 设计目的 (1)1.2 开发工具选择 (1)1.3 开发环境 (1)1.4 本报告的主要内容 (1)2.需求分析 (1)2.1 需求分析的任务 (2)2.2 功能需求 (2)2.3 数据需求 (3)3.总体设计 (3)3.1设计概述 (3)3.2系统总体结构及功能模块划分 (3)3.3系统数据库概念结构设计 (4)3.4 逻辑结构设计 (5)4.主程序设计 (7)4.1 登录模块 (7)4.2 学生信息查询、保存、及修改 (8)4.3 用户管理 (10)5.设计总结 (11)6.心得体会 (12)参考文献 (12)1.绪论1.1 设计目的随着学生的数量的日益增多,学校对学生成绩管理的要求也越来越高,因此学校对学生信息的管理也更系统化,数字化,为了提高学生的实际应用数据库的能力,使学生锻炼简单的数据库开发能力,因此决定设计一个简单的学生成绩管理系统,包括学生信息,课程信息,以及成绩信息和任课教师信息,能够存储相应学生评教信息,和课程安排提供的学生成绩管理各种功能分为面向学生,教师和教务员三部分,其中教务员可以录入学生,教师,班级,课程信息,每个专业、每个班级需要学习哪些课程,指定课程的任课教师,给每个班的每门课程安排指定的认课老师。

C 成绩管理系统实验报告(含源代码)

C  成绩管理系统实验报告(含源代码)

学生成绩管理系统设计报告一、需求分析:用数组或链表数据结构完成一个学生成绩管理系统,此系统的具体功能要求如下:(1)学生信息录入功能1)用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理五门课成绩。

2)可插入一个或多个学生信息到当前编辑的班级数据中。

3) 可删除一个或多个学生信息。

(2)文件保存功能1)学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。

2)用户输入学生信息可随时保存数据文件。

(3)文件打开功能1)程序只能对当前打开的数据文件进行编辑。

(4)查询功能1)浏览所有学生信息;2)按学号查询学生信息;3)按姓名查询学生信息;4) 查询一个班总成绩和平均成绩;5) 查询一个班某一门课总成绩和平均成绩;6)查询某一门课分数段(<60,60-69,70-79,80-89,>90)学生数。

(5)报表输出功能1) 按学号输出一个班学生信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理成绩和总成绩,到屏幕和文件。

2) 按总成绩输出从高到低输出学号、姓名信息。

注:以上功能以菜单形式供用户使用,并有一定的容错功能。

二、概要设计整体框架:整个学生成绩管理系统采用链表作为基本数据结构,创建一个类student用于保存学生的数据且是链表中的一个节点。

类list作为保存整个链表之用。

主函数通过switch语句来根据用户的需要连接各个模块,以实现用户的需要。

模块基本介绍:1.用户输入模块在此模块中,用户将根据菜单提示结合自己的需求输入一个0~11的值,来实现一定的功能。

2.学生信息录入模块此模块可以让用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理五门课成绩。

用户可插入一个或多个学生信息到当前编辑的班级数据中。

用户可删除一个或多个学生信息。

3.文件保存功能模块用户在确定以录入的成绩无误之后,可以将学生信息以每一班为单位存为一个数据文件。

学生成绩管理系统实验C语言

学生成绩管理系统实验C语言

学生成绩管理系统一,实验目的用C 语言实现基本的学生成绩管理系统的基本功能,完成既定要求。

二,需要处理的基础数据学生基本信息包括:①学号(如2010级14班6号写作20101406)②姓③名④性别⑤出生年月日⑤课程对应的考试成绩(外语SCORE[0]、高数SCORE[1]、C 语言SCORE[2]、马哲SCORE[3]) 平均成绩和总成绩三,系统功能1学生基本情况录入。

要求对输入的性别、出生年月日的合理性进行判断(如0代表“女”,1代表“男”,输入其他值非法,年龄不能为负,月份不能大于13等)。

2允许对已经录入的数据进行显示。

3允许进行数据的插入。

4删除基本数据的相关信息。

5基于姓名的查询。

如:姓张的所有同学。

6基于各种基本数据的统计计算。

如:①统计每个学生各门功课的平均成绩,并按平均成绩从高到低的次序排名输出每个学生各门功课的综合成绩和平均成绩(名次、学号、姓名、平均成绩、各门功课的考试成绩)。

②列出90分及以上、80分及以上、70分及以上、60分及以上、不及格学生清单(学号、姓名、不及格的课程和成绩)。

③统计并输出各门功课的平均成绩和总平均成绩。

④按班级统计并输出总成绩(需对学号进行解析)。

四,系统功能模块图五,数据结构设计 输入学生信息按学号删除学生信息显示链表中所有记录从文件中读入记录将链表中的记录保存到文件中按姓名查找计算学生成绩按班级查询退出struct St{char IDNumber[16]; //学号char FamilyName[16]; //姓char GivenName[16]; //名int sex; //性别(0女,1男)intBirthYear; //出生年intBirthMonth; //出生月intBirthDay; //出生日float score[4]; //成绩float sum; //总分float average; //平均分struct St *next;};六,程序结构流程图main•包含以下9个功能根据用户选择的功能实现input •录入学生基本信息,学号、姓名、性别出生日期以及各科成绩del•删除学生数据listprint•将链表中的学生信息输出searchname•按照姓名查找学生信息fsave•将链表中的学生信息保存在文件中七,模块功能 在结构流程图中已经给出。

VisualFoxPro学生成绩管理系统实验讲解学习

VisualFoxPro学生成绩管理系统实验讲解学习

实验一建立项目管理器、建立数据库和表、输入部分数据一、实验目的1.熟悉V isual Foxpro 项目管理器的使用;2.熟悉数据库的概念和V isual Foxpro 数据表的概念;3.掌握数据表的建立方法,数据直接输入的方法;4.熟练掌握表文件的打开、浏览、关闭。

二、实验内容;1.建立项目管理器“学生成绩管理系统”2.建立数据库“成绩库”,并创建4个与学生成绩管理系统工作密切相关的数据表“班级号名”、“学生”、“学生选课”、“课程”;3.直接为“班级号名”、“课程”两个数据表输入数据。

三、实验步骤(一)Visual Foxpro 基本操作1. Visual Foxpro 的启动开始→程序→ Visual Foxpro 6.0,或:双击桌面V isual Foxpro 6.0 快捷方式图标。

2. Visual Foxpro 的退出在V isual Foxpro 的命令窗口中键入q uit 或选V isual Foxpro 菜单中文件→退出。

3.工作目录及表单区域的设置·在机房的学生数据盘(例如D:盘)上建一目录,命名为“成绩管理”。

·进入V isual Foxpro,选菜单中的工具→选项→“文件位置”选项卡,找到“默认目录”,如图1-1。

图1-1 选择默认目录·点击“修改”按钮,进入图1-2,再单击按钮,按图1-2 设置后,单击“确定”按钮。

·单击“表单”选项卡,将“最大设计区”选为 1024×768。

·单击“设置为默认值”按钮,再单击“确定”按钮。

注意:如果学生机房安装了还原卡,则每次上机或重新启动后都要重新进行以上第 3 步 “工作目录及表单区域的设置。

”图 1-2 更改文件位置 (二)项目管理器和数据库的建立1.项目管理器(1)什么是项目管理器 项目管理器是 V isual Foxpro 开发应用系统的综合性平台,在这里可以建立数据库、表 单、菜单、程序、编译等。

c 学生成绩管理系统实验报告

c  学生成绩管理系统实验报告

c 学生成绩管理系统实验报告《C 学生成绩管理系统实验报告》摘要:本实验旨在设计并实现一款基于C语言的学生成绩管理系统,通过该系统可以实现学生信息的录入、查询、修改和删除等功能,并能够对学生成绩进行统计和分析。

通过实验结果表明,该系统具有良好的稳定性和高效性,可以满足学校对学生成绩管理的需求。

1. 引言学生成绩管理是学校教务管理工作中的重要组成部分,有效的成绩管理系统可以提高学校管理效率,为学生提供更好的学习环境。

因此,设计一款稳定高效的学生成绩管理系统对于学校教务管理工作具有重要意义。

2. 系统设计本实验设计了一个基于C语言的学生成绩管理系统,系统主要包括学生信息管理模块和成绩管理模块。

学生信息管理模块可以实现学生信息的录入、查询、修改和删除等功能;成绩管理模块可以对学生成绩进行统计和分析。

系统采用了文件存储学生信息和成绩数据,具有良好的数据持久性。

3. 实验方法本实验采用了自顶向下的模块化设计方法,将系统划分为多个模块,每个模块负责不同的功能。

通过模块化设计,可以提高系统的可维护性和可扩展性。

在实验过程中,我们使用了C语言进行编程,利用了C语言丰富的库函数和指针等特性,提高了系统的效率和性能。

4. 实验结果经过实验测试,我们发现该系统具有良好的稳定性和高效性,可以满足学校对学生成绩管理的需求。

学生信息的录入、查询、修改和删除等功能均能够正常运行,成绩的统计和分析功能也能够准确地反映学生成绩的情况。

5. 结论本实验成功设计并实现了一款基于C语言的学生成绩管理系统,系统具有良好的稳定性和高效性,可以满足学校对学生成绩管理的需求。

通过本实验,我们对C语言的应用有了更深入的了解,也对学生成绩管理系统的设计和实现有了更加深刻的认识。

综上所述,C 学生成绩管理系统实验报告得出了该系统具有良好的稳定性和高效性,可以满足学校对学生成绩管理的需求。

学生成绩管理系统开发实验报告

学生成绩管理系统开发实验报告

学生成绩管理系统实验报告一、问题描述这是一个基于学生管理考试成绩管理而做的系统,具体有以下几种功能:1 查找某个同学的信息2 修改某个同学的信息3 在输入某个分数段就输出并算出通过率4 整个班的各科的平均分5 各科成绩的具体情况6 一个猜谜语游戏7、输出最新的数据二、系统设计(一)采用的思想.1、是进入系统。

系统里我设计了一个默认密码,就是:123456。

2、把所有的数据存进去。

这里采用的是成员函数之间的调用来实现了数据的输入的。

3、输入你想进行的功能的代码进行功能的使用。

每个功能里面也会有好多的选择,这个为了方便,我直接用阿拉伯数据代替功能的接口了,在这些功能之中也面临着一些选择,就拿改分数来说,你还要选择改的科目,而且系统里设计的是一次只能改一科。

4、功能的选择我用了两种方式,一种是switch ,另一种就是用if 了。

5、系统里动用了搜索字字符串的方法进行识别要改的人,还用了冒泡排序法实现对整体的排序,实现的比较好。

算法主要用到的就是这两个了。

结构比较复杂。

6、这个系统里我设计了好多的人性化操作,比如说向导,每进行一次操作之前,都会对你进行提醒,而且可次在使用了某种功能以后,您还可以接着用其它的功能。

(二)类和函数的使用用的类有:people,school ,s_class ,english ,math ,it,chinese ,student总共加起来是八个类,其中有,people 是school ,以及要s_class 的基类,s_class 又是stuent 的基类,同时english ,math ,it,chinese也是student 的基类1、其用了:people ,school ,s_class ,english ,math ,it,chinese ,student总共加起来是八个类,其中有,people 是school ,以及要s_class 的基类,s_class 又是stuent 的基类,同时english ,math ,it,chinese也是student 的基类(1)People主要用来存储每个人的性别void getdata(char a,int i)//存放同学的性别int display(int i)//返回第i个同学的性别(2)School 主要用来存放学校的名字,school(char *a)//构造函数。

成绩管理系统实验报告

成绩管理系统实验报告

成绩管理系统实验报告一、引言在当今教育领域,成绩管理是学校教学管理工作的重要组成部分。

为了提高成绩管理的效率和准确性,开发一个功能完善的成绩管理系统具有重要的现实意义。

本实验旨在设计并实现一个成绩管理系统,以满足学校对学生成绩进行有效管理的需求。

二、系统需求分析(一)功能需求1、学生成绩录入:支持教师或管理员批量或单个录入学生的各科成绩。

2、成绩查询:学生和教师能够按照不同条件(如学号、课程名称、学期等)查询成绩。

3、成绩统计分析:能够对学生的成绩进行统计,如平均分、总分、排名等,并生成相应的报表。

4、成绩修改与删除:在特定条件下,允许教师或管理员对成绩进行修改和删除操作。

5、用户管理:对系统的用户(教师、学生、管理员)进行管理,包括用户的添加、删除、修改权限等。

(二)性能需求1、响应时间:系统在处理成绩录入、查询等操作时,响应时间应在可接受的范围内,一般不超过 5 秒。

2、稳定性:系统应能够稳定运行,在长时间的使用过程中不出现崩溃或数据丢失的情况。

3、安全性:确保系统中的成绩数据安全,对用户的操作进行权限控制,防止非法访问和数据篡改。

(三)数据需求1、学生信息:包括学号、姓名、班级等。

2、课程信息:课程名称、课程编号、学分等。

3、成绩信息:学号、课程编号、成绩、学期等。

三、系统设计(一)总体架构设计成绩管理系统采用 B/S 架构,即浏览器/服务器模式。

用户通过浏览器访问系统,服务器端负责处理业务逻辑和数据存储。

(二)数据库设计1、学生表(student):包含学号(student_id)、姓名(student_name)、班级(class)等字段。

2、课程表(course):包含课程编号(course_id)、课程名称(course_name)、学分(credit)等字段。

3、成绩表(score):包含学号(student_id)、课程编号(course_id)、成绩(grade)、学期(semester)等字段。

学生成绩管理系统实验报告

学生成绩管理系统实验报告

学生成绩管理系统实验报告学生成绩管理系统实验报告一、引言学生成绩管理系统是一种利用计算机技术来管理学生学业成绩的工具。

它的出现使得学校教务工作更加高效、便捷,为教师和学生提供了一个更好的学习和管理平台。

本实验旨在通过设计和实现一个学生成绩管理系统,探索其在学校教务管理中的应用。

二、设计与实现1.需求分析在设计学生成绩管理系统之前,我们首先进行了需求分析。

通过与学生、教师和教务人员的交流,我们了解到他们对学生成绩管理系统的需求主要包括以下几个方面:- 学生成绩录入与查询:教师可以录入学生的成绩,学生和家长可以查询学生成绩。

- 成绩分析与统计:系统能够对学生成绩进行分析和统计,提供给教师、学生和家长参考。

- 课程管理:系统能够管理学校的课程信息,包括课程名称、教师信息等。

- 学生信息管理:系统能够管理学生的基本信息,包括姓名、学号、班级等。

2.系统设计基于需求分析的结果,我们设计了一个学生成绩管理系统的原型。

系统采用了B/S架构,即浏览器/服务器架构,用户通过浏览器访问系统,服务器进行数据处理和存储。

前端采用了HTML、CSS和JavaScript等技术,后端采用了Java语言和MySQL数据库。

3.系统实现在系统实现过程中,我们按照需求分析和系统设计的结果,逐步完成了系统的各个功能模块。

首先,我们实现了学生信息管理模块,包括学生基本信息的录入、修改和查询功能。

然后,我们实现了课程管理模块,包括课程信息的录入、修改和查询功能。

接着,我们实现了成绩录入与查询模块,教师可以录入学生的成绩,学生和家长可以查询学生成绩。

最后,我们实现了成绩分析与统计模块,系统能够对学生成绩进行分析和统计,并生成相应的报表。

三、实验结果与讨论通过对学生成绩管理系统的设计与实现,我们得到了一个功能完善、操作简便的学生成绩管理工具。

在实验过程中,我们邀请了教师、学生和家长来测试系统,并收集了他们的反馈意见。

1.用户反馈教师们表示,学生成绩管理系统大大减轻了他们的工作负担,提高了工作效率。

学生成绩管理系统设计实验

学生成绩管理系统设计实验

实验六学生成绩管理系统设计实验一、实验目的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、程序流程图16/ 116/ 23、程序代码程序代码如下:ASSUMEDATAS SEGMENTCS:CODES,DS:DATAS,SS:STACKS DB '1. Append a record$' MSG1 START:MSG2 DB '2. Display a record$'MOV AX,DATAS MSG3 DB '3. Modify a record$'MOV DS,AXMSG4 DB '4. Delete a record$';******************************** DB '5. Create file$' MSG5 MSG6 DB '6. Return DOS$' 主程序;MAIN PROC FAR DB 'Please input 1--6:$' MSGCMSGE DB 'Error!$'清屏S:; 逐行输出提示信息; CALL CLS MSGC1 DB 'Please input :$' MOV AH,02H DB 25 MAXLENMOV DH,9 ACTLEN DB ?MOV DL,30 STRING DB 25 DUP(?)INT 10H DB 25 MAXLEN1DB ?ACTLEN1MOV AH,9 STRING1 DB 25 DUP(?)LEA DX,MSG1 PATHNM DBINT 21H 'D:\chengji\2009\\',23 DUP(?)DB PATHMOV AH,02H 'D:\chengji\2009\2009doc.dat',00MOV DH,10 MSGA1 DB 'Please input XH:$'MOV DL,30 DB 'Please input XM:$' MSGA2INT 10H MSGA3 DB 'Please input SX:$'MSGA4 DB 'Please input YW:$'MOV AH,9 DB 'Please input WY:$' MSGA5LEA DX,MSG2 HANDLE DW ?INT 21H 'Xuehao: $' DB MSGXH'Xingming: $' MSGXM DBMOV AH,02H 'Shuxue:$' DB MSGSXMOV DH,11 MSGYW DB 'Yuwen: $'MOV DL,30 'Waiyu: $' DB MSGWYINT 10H DB 2048 DUP(' ') BUFFERto key any DB MSGRT 'PressMOV AH,9 return!$'LEA DX,MSG3 DELSTR DB 33 DUP(' ')INT 21H DATAS ENDSSTACKS SEGMENT STACKMOV AH,02H DB 256 DUP(?)MOV DH,12 STACKS ENDSMOV DL,30INT 10HCODES SEGMENT16/ 3JZ CDELETEMOV AH,9 CMP AL,35HJZ CCREATE LEA DX,MSG4INT 21H CMP AL,36HJZ EMOV AH,02H ;若输入不是1-6数字,则提示错误MOV DH,13 MOV AH,02HMOV DH,16 MOV DL,30INT 10H MOV DL,30INT 10HMOV AH,9LEA DX,MSG5 MOV AH,9INT 21H LEA DX,MSGEINT 21HMOV AH,02HCCREATE: MOV DH,14CALL CREATE MOV DL,30INT 10H JMP SCDELETE:MOV AH,9 CALL DELETELEA DX,MSG6 JMP SCMODIFY: INT 21H;提示输入CALL MODIFY MOV AH,02HMOV DH,15 JMP SMOV DL,30 CDISPLAY:CALL DISPLAY INT 10HJMP SMOV AH,9 CAPPEND:LEA DX,MSGCCALL APPENDJMP S 从键盘读入一个数字INT 21H;MOV AH,02HMOV DH,15 E:MOV AH,4CH MOV DL,48INT 10H INT 21HMAIN ENDPMOV AH,1;********************************INT 21H;程序按数字对应子程序;CREATE CMP AL,31H CREATE PROC NEARJZ CAPPEND PUSH AXCMP AL,32H PUSH CXPUSH DX JZ CDISPLAYPUSH SI CMP AL,33H清屏PUSH DI;JZ CMODIFYCMP AL,34H CALL CLS16/ 4PUSH AX ;提示输入文件名PUSH BX MOV AH,2PUSH CX MOV DH,12PUSH DX MOV DL,20PUSH SI INT 10H清屏PUSH DI;CALL CLSMOV AH,9;LEA DX,MSGC1 打开文件(只写)MOV AH,3DH INT 21HMOV AL,01H 从键盘读入文件名字符串;LEA DX,PATH MOV AH,0AHINT 21H LEA DX,MAXLENMOV HANDLE,AX INT 21H字符串;将文件名字符串加到ASCIZ ;提示输入学号MOV AH,02H 末尾MOV DH,10 MOV CX,0MOV DL,30 MOV CL,ACTLENINT 10H LEA SI,STRINGLEA DI,PATHNMMOV AH,9 ADD DI,16LEA DX,MSGA1 LCREATE:INT 21HMOV AL,BYTE PTR [SI]从键盘读入字符串MOV [DI],AL ;MOV AH,0AH INC DILEA DX,MAXLEN INC SIINT 21HLOOP LCREATE;字符串末尾加在;ASCIZ00 在字符串末尾补足空格MOV DX,4 MOV BYTE PTR [DI],0CALL FILLASCIZ;按字符串创建文件; MOV AH,3CH 将文件指针定位至文件末尾MOV AH,42H LEA DX,PATHNMMOV AL,2 MOV CX,0MOV BX,HANDLE INT 21HMOV CX,0MOV DX,0 POP DIPOP SI INT 21H;写入文件MOV AH,40H POP DXMOV BX,HANDLE POP CXMOV CX,0 POP AXMOV CL,ACTLEN RETLEA DX,STRING CREATE ENDP;******************************** INT 21H; 提示输入姓名MOV AH,02H ;APPEND程序MOV DH,11APPEND PROC NEAR16/ 5MOV AH,40H MOV DL,30MOV BX,HANDLE INT 10HMOV CX,0MOV CL,ACTLEN MOV AH,9LEA DX,STRING LEA DX,MSGA2INT 21H;INT 21H; 从键盘读入字符串提示输入数学成绩MOV AH,02H MOV AH,0AHMOV DH,13 LEA DX,MAXLENMOV DL,30 INT 21H;在字符串末尾补足空格INT 10H MOV DX,15 CALL FILLMOV AH,9 将文件指针定位至文件末尾;LEA DX,MSGA4 MOV AH,42H从键盘读入字符串MOV AL,2INT 21H;MOV AH,0AH MOV BX,HANDLELEA DX,MAXLEN MOV CX,0在字符串末尾补足空格MOV DX,0INT 21H; MOV DX,3 INT 21H;写入文件CALL FILLMOV AH,40H将文件指针定位至文件末尾MOV BX,HANDLE ;MOV AH,42H MOV CX,0 MOV AL,2 MOV CL,ACTLENMOV BX,HANDLE LEA DX,STRINGMOV CX,0 INT 21H;提示输入语文成绩MOV DX,0 MOV AH,02H写入文件MOV DH,12 INT 21H;MOV AH,40H MOV DL,30MOV BX,HANDLE INT 10HMOV CX,0MOV CL,ACTLEN MOV AH,9LEA DX,STRING LEA DX,MSGA3从键盘读入字符串INT 21H; 提示输入外语成绩INT 21H;MOV AH,02H MOV AH,0AHMOV DH,14 LEA DX,MAXLENMOV DL,30 在字符串末尾补足空格INT 21H;INT 10H MOV DX,3CALL FILLMOV AH,9 将文件指针定位至文件末尾;LEA DX,MSGA5 MOV AH,42H从键盘读入字符串MOV AL,2INT 21H;MOV AH,0AH MOV BX,HANDLE LEA DX,MAXLEN MOV CX,0在字符串末尾补足空格MOV DX,0INT 21H; 写入文件INT 21H;MOV DX,316/ 6INT 21H;从键盘读入学号字符串CALL FILLMOV AH,0AH ;在字符串末尾加回车、换行LEA DX,MAXLEN INC SIMOV BYTE PTR [BX+SI],0DH 打开文件(只读)INT 21H; MOV AH,3DH INC SIMOV AL,00H MOV BYTE PTR [BX+SI],0AHLEA DX,PATH ADD ACTLEN,2INT 21H 将文件指针定位至文件末尾;MOV HANDLE,AX MOV AH,42HMOV AL,2;将文件指针定位至文件开头MOV AH,42H MOV BX,HANDLE MOV AL,0 MOV CX,0MOV BX,HANDLE MOV DX,0MOV CX,0 写入文件INT 21H;MOV DX,0 MOV AH,40H INT 21H;MOV BX,HANDLE 将文件载入缓存MOV AH,3FH MOV CX,0MOV BX,HANDLE MOV CL,ACTLENMOV CX,2048 LEA DX,STRINGLEA DX,BUFFER 关闭文件INT 21H;INT 21H;在缓存中找到对应记录MOV AH,3EHLEA SI,BUFFER MOV BX,HANDLELEA DI,STRING INT 21HMOV CX,AXCALL SEARCH POP DICMP DX,0 POP SIJZ OUTPUTPOP DX若未找到,则提示错误POP CX ;MOV AH,9 POP BXLEA DX,MSGE POP AXINT 21H RET显示对应信息APPEND ENDPJMP DEND;OUTPUT: ;******************************** MOV AH,02H DISPLAY PROC NEARMOV DH,11 PUSH AXMOV DL,28 清屏PUSH DX;INT 10H 提示输入学号CALL CLS;MOV AH,02HMOV AH,9 MOV DH,10LEA DX,MSGXM MOV DL,28 INT 21H INT 10HADD SI,5 MOV AH,9LEA DX,MSGXH16/ 7MOV AH,9MOV DX,SI MOV AH,9MOV DX,SI INT 21HINT 21HMOV AH,02HMOV DH,12 MOV AH,2MOV DH,15 MOV DL,28INT 10H MOV DL,28INT 10HMOV AH,9MOV AH,9 LEA DX,MSGYWLEA DX,MSGRT INT 21HINT 21HADD SI,16MOV AH,1INT 21H MOV AH,9MOV DX,SI关闭文件INT 21H DEND: ; MOV AH,3EHMOV AH,02H MOV BX,HANDLEMOV DH,13 INT 21HMOV DL,28POP DX INT 10HPOP AXMOV AH,9RETLEA DX,MSGSX DISPLAY ENDPINT 21H ;********************************MODIFY PROC NEARADD SI,4 PUSH AX清屏PUSH DX;提示输入学号MOV AH,9 CALL CLS; MOV AH,02H MOV DX,SI INT 21H MOV DH,10MOV DL,28MOV AH,02H INT 10HMOV DH,14MOV AH,9 MOV DL,28INT 10H LEA DX,MSGXH从键盘读入学号字符串INT 21H;MOV AH,0AH MOV AH,9LEA DX,MSGWY LEA DX,MAXLENINT 21H INT 21H; 打开文件(读写)MOV AH,3DHADD SI,4 MOV AL,10 16/ 8JMP REVISEYW LEA DX,PATHINT 21HXMCONT: MOV HANDLE,AXPUSH SI ;将文件指针定位至文件开头MOV DX,15 MOV AH,42HCALL FILL MOV AL,0POP SI MOV BX,HANDLEMOV CX,0ADD SI,5 MOV DX,0INT 21H; 将文件载入缓存LEA BX,BUFFER MOV AH,3FHMOV DX,SI MOV BX,HANDLESUB DX,BX MOV CX,2048MOV AH,42H LEA DX,BUFFERMOV AL,00 INT 21H;在缓存中找到对应记录MOV BX,HANDLE LEA SI,BUFFERMOV CX,00 LEA DI,STRINGINT 21H MOV CX,AXCALL SEARCHMOV AH,40H CMP DX,0MOV BX,HANDLE JZ REVISEXMMOV CX,0 ;若未找到,则提示错误MOV CL,ACTLEN MOV AH,9LEA DX,STRING LEA DX,MSGEINT 21H修改语文成绩INT 21H;REVISEYW: JMP MEND; 修改姓名MOV AH,02H REVISEXM:MOV DH,12 MOV AH,02HMOV DL,28 MOV DH,11INT 10H MOV DL,28INT 10HMOV AH,9LEA DX,MSGYW MOV AH,9INT 21H LEA DX,MSGXMINT 21HMOV AH,0AHLEA DX,MAXLEN MOV AH,0AHINT 21H LEA DX,MAXLENINT 21HCMP BYTE PTR [STRING],0DHJNZ YWCONT CMP BYTE PTR [STRING],0DH ; ADD SI,16 若为回车,则将指针指向下一字段JMP REVISESX JNZ XMCONTADD SI,516/ 9MOV DX,3 YWCONT:CALL FILL PUSH SIPOP SI MOV DX,3CALL FILLADD SI,4 POP SILEA BX,BUFFER ADD SI,16MOV DX,SISUB DX,BX LEA BX,BUFFERMOV AH,42H MOV DX,SIMOV AL,00 SUB DX,BXMOV BX,HANDLE MOV AH,42HMOV CX,00 MOV AL,00INT 21H MOV BX,HANDLEMOV CX,00MOV AH,40H INT 21HMOV BX,HANDLEMOV CX,0 MOV AH,40HMOV CL,ACTLEN MOV BX,HANDLELEA DX,STRING MOV CX,0INT 21H;MOV CL,ACTLEN 修改外语成绩REVISEWY: LEA DX,STRINGMOV AH,02H 修改数学成绩INT 21H; MOV DH,14 REVISESX:MOV DL,28 MOV AH,02HINT 10H MOV DH,13MOV DL,28MOV AH,9 INT 10HLEA DX,MSGWYINT 21H MOV AH,9LEA DX,MSGSXMOV AH,0AH INT 21HLEA DX,MAXLENINT 21H MOV AH,0AHLEA DX,MAXLENCMP BYTE PTR [STRING],0DH INT 21H JZ MENDCMP BYTE PTR [STRING],0DHPUSH SI JNZ SXCONTMOV DX,3 ADD SI,4CALL FILL JMP REVISEWY POP SISXCONT:ADD SI,4PUSH SI16/ 10MOV AH,02HMOV DH,12 LEA BX,BUFFERMOV DL,28 MOV DX,SIINT 10H SUB DX,BXMOV AH,42HMOV AH,9 MOV AL,00LEA DX,MSGA1 MOV BX,HANDLEMOV CX,00 INT 21H;读入学号字符串MOV AH,0AH INT 21HLEA DX,MAXLEN打开文件(读写)INT 21H; MOV AH,40HMOV AH,3DH MOV BX,HANDLEMOV AL,10 MOV CX,0LEA DX,PATH MOV CL,ACTLENINT 21H LEA DX,STRINGMOV HANDLE,AX INT 21H将文件指针指向开头;MOV AH,42H 关闭文件MEND: ;MOV AL,0 MOV AH,3EHMOV BX,HANDLE MOV BX,HANDLEMOV CX,0 INT 21HMOV DX,0INT 21H;POP DX 载入文件MOV AH,3FH POP AXMOV BX,HANDLE RETMOV CX,2048 MODIFY ENDPLEA DX,BUFFER ;********************************INT 21H**********************************************;在缓存中搜索学号对应记录LEA SI,BUFFER DELETE PROC NEARLEA DI,STRING PUSH AXMOV CX,AX PUSH DX; 清屏CALL SEARCH CALL CLS; 提示输入姓名CMP DX,0 MOV AH,02HJNZ DELENDMOV DH,11比较该记录对应姓名是否与输入的相; MOV DL,28INT 10H 同PUSH SIADD SI,5 MOV AH,9LEA DI,STRING1 LEA DX,MSGA2MOV CX,0 读入姓名字符串INT 21H; MOV CL,ACTLEN1 MOV AH,0AH MOV DX,0 LEA DX,MAXLEN1 LCHECK:提示输入学号INT 21H;16/ 11DELETE ENDPMOV AL,[SI];******************************** MOV AH,[DI];清屏程序CMP AL,AHCLS PROC NEAR JZ LCONTIPUSH AX MOV DX,1PUSH BX JMP DELERRPUSH CX LCONTI:PUSH DX; INC SI 屏幕初始化MOV AH,6 INC DIMOV AL,0 LOOP LCHECKMOV BH,7 POP SIMOV CX,0MOV DX,2479H CMP DX,0INT 10H;姓名不对应则提示错误JZ DEL; 重定位光标MOV DX,0 DELERR:MOV AH,2 MOV AH,9INT 10H LEA DX,MSGEINT 21HPOP DX JMP DELENDPOP CXPOP BX DEL:POP AX ;将文件指针定位至该记录开始处RET LEA BX,BUFFERCLS ENDPMOV DX,SI;******************************** SUB DX,BX搜索程序MOV AH,42H ;,0若找到对应记录,则将DX赋为MOV AL,00 ;DX指向该记录首地址;否则MOV BX,HANDLE 并将SI 。

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

实验六学生成绩管理系统设计实验一、实验目的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 :$'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 ENDSCODES 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 AXRET DELETE 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。

相关文档
最新文档