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

合集下载

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;}}。

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

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

《可视化程序设计》课程设计专业:班级:指导老师:姓名:目录一、需求分析 (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.主界面:包含菜单、工具栏以及状态栏。

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

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

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

学生成绩管理系统数据库课题: 雇员信息管理系统姓名:学号:同组姓名:专业班级:指导教师:设计时间:2012年6月4号----2012年6月10日一、需求分析阶段1.信息需求对学校而言,学生成绩管理系统是所有工作的首要之选,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。

因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。

2.功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。

具体功能应包括:系统应该提供课程安排数据的添加、插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。

3. 安全性与完整性要求对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及所教老师及教务处知道,因此做好数据安全性是重中之重。

另外,要求所有在校学生的信息都要录入其中,并且要设计好个别情况。

二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。

设计成绩管理数据库包括学生、成绩、课程、教师四个关系。

E-R图如下三、详细设计阶段详细结构是独立于任何一种数据模型的信息结构。

详细结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。

E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。

设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)学生信息表Student1:(学号,姓名,性别,年龄,专业,系别)成绩表Score:(学号号,课程名,成绩)教师表Teacher1:(教师号,教师名,教师性别,教师系别)2、学生信息表(student1)四、数据库实现数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

学生成绩管理数据库系统设计(数据库实验大作业)

学生成绩管理数据库系统设计(数据库实验大作业)

学生成绩管理数据库系统设计课程:数据库安全实验姓名:***学院:计算机学院专业:信息安全学号: *************一、需求分析1.1 编写目的本产品实现了一个基于mySQL数据库下的学生信息查询管理系统,而本需求分析报告的编写目的是为了提供一个由用户(学生、教师)和开发者双方共同确定的开发系统的业务需求目标,并对本系统所要实现的软件功能做一个全面的规格描述。

同时,在用户业务需求的基础上,经过需求分析和数据整理,以向整个开发期提供关于软件系统的业务和数据的技术信息和整体描述,做为软件开发的技术基础,也作为系统设计、实现的目标和测试以及维护阶段的依据。

本软件需求分析报告的适用读者为:软件用户(学生、教师)、软件需求分析人员、软件设计及开发者和相关的测试人员。

1.2 信息需求随着科学技术的不断提高,计算机科学飞速发展,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用,在学籍管理方面,各种学生信息管理系统也在不断的涌现出来,然而目前在我国仍有部分学校在应用一些旧的、功能单一而且效率低下的系统,甚至还有一些偏远学校的学生信息管理还在依靠人工进行管理和操作,这些管理方式存在着许多缺点,如:效率低,密保性差,另外时间一长,将产生大量的文件和数据,其中有些是冗余或者针对同一目的的数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少困难,同时也跟不上信息时代高速、快捷的要求,严重影响了消息的传播速度。

然而现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长,人工管理信息的缺点日渐突出,面对庞大的学生信息量,如何利用现代信息技术使其拥有快捷、高效的适应能力已成为当务之急。

正因为如此,学生信息管理系统成为了教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。

作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。

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

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

综合应用所学的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、算法设计学籍管理系统程序采用了结构化程序设计的思想,将程序分解成许多模块,再由主函数调用这些模块,实现不同的功能。

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

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

HUNAN UNIVERSITY程序设计训练报告题目学生成绩管理系统学生姓名学生学号专业班级指导老师湖南大学程序设计训练报告目录一程序功能简介…………………………………………………………………………….。

.。

.3二本人完成的主要工作……………………………………………………………………..。

3三设计方案……………………………………………………………………………。

...。

.。

3 1)设计分析……………………………………………………………………………。

.。

.。

.。

32)模块的功能及程序分析…………………………………………………………....。

43)核心算法流程图……………………………………………………………………。

...。

74) 核心源程序模块………………………………………………………………………。

.85)操作方法简介………………………………………………………………………….。

86)实验结果……………………………………………………………………………。

.。

.。

.。

.98)设计体会…………………………………………………………………………….。

11四附录……………………………………………………………………………。

..。

.。

12 一、程序功能简介;本程序作为一个学生成绩管理系统,用户可以首先使用管理员模式初始化该系统.初始化完成之后,用户可以选择使用成绩记录人模式进入系统,对学生成绩进行记录。

系统自动储存所记录的学生成绩,然后用户可根据不同需要来选择不同的功能来使用程序,其中包括成绩查询与增减,成绩排序,成绩分析等功能. 二、本人完成的主要工作;程序设计分析,绘制程序流程图,写出大体结构算法以及各个核心算法模块,写出核心源程序,对源程序进行算法优化,对源代码进行多次试验验证其正确性,完成源代码的测试以及代码书写规范检测。

三、设计方案;1)设计分析;首先拿到这个题目,我就开始思考如何将这个看似简单的系统做的较为完善,而不是简简单单的学生成绩管理系统,学生管理系统自然是这个题目的核心,从中发散思维,我想到了几个比较细小的地方。

学生成绩管理系统需求分析实验

学生成绩管理系统需求分析实验

学生成绩管理系统需求分析实验一:实验目的为了更好的建设校园,提高学校的执行效率,满足广大师生的需求,为此借助需求分析的实验,去分析学生成绩管理系统的需求性以及可实施性。

二:主要仪器设备一台PC机,Windows 8系统以上,Visio 2013等。

三:总目标1.对学校的学生成绩管理系统中的用户登录,成绩上传,成绩修改,成绩查看等提供全面管理。

2.对学生成绩管理提供全面,一致,快速的处理。

3.系统安全,友好,可靠。

四:需求结构因为本系统开发的主题是,学生成绩管理系统,其基本功能应具有对成绩进行不同操作的功能,以及不同的用户权限不同等。

进行如下的结构分析;五:功能目标(1)学生操作①身份验证通过,进行成绩查看。

②若是对成绩有疑问,可以给管理员提出请求。

(2) 教师操作①身份验证通过,进行上传成绩,查看成绩。

②若操作过程中发现某些成绩需要改动,可以进行修改。

③给系统提交成绩,若提交后发现有错误,则教师无法修改,只有管理员有权操作。

(3)管理员操作①身份验证通过,查看成绩。

②若系统提示有请求,可以进行查看处理。

③若有教师或者学生的数目改变,或者信息发生变化,则需对数据库进行更新。

六:性能目标(1)系统处理效率要比手工处理效率提高50%。

(2)用户可以通过简单培训就可以使用系统。

(3)具有较高的可靠性,不会丢失信息。

(4)因为具有注册,登录功能,因此非法用户不能使用该系统。

七:遗留问题就学生成绩管理问题而言,本系统完全可以满足需求,但在整个系统中,若是可以提高上传成绩环节的效率,便可很大程度地提高用户的便捷性,使得用户体验更好。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件工程实验报告学校:渤海大学班级:11-6学号:*********姓名:***一.需求分析1 系统需求成绩管理成为学校教学管理中十分重要又相当复杂的管理工作之一,单纯的采用传统的手工处理已经不符合教育和管理的要求,而计算机具有运算速度快,处理能力强等特点,很自然地进入到这一应用领域中。

因此为了保证学校的信息流畅,工作高效,有必要设计一个学生成绩管理系统。

这不但能使教务人员从复杂的成绩管理中解脱出来,而且对于推动教学的发展也起到非常重要的作用。

学校学生成绩管理工作都是采用传统的手工管理,这各传统人工的管理方式存在着许多缺点,如:效率低,保密性差,一方面导致教师,学生成绩情况不了解,教师对成绩管理工作倍感头痛,因为时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难,耗费大量劳动力,难于避免错误的产生。

选择Eclipse来开发学生成绩管理系统,由于以上的优点,帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化,所以选择Eclipse来开发学生成绩管理系统。

需求的收集及分析:学生成绩管理系统应该完成以下两个方面的内容:学生档案资料的管理、学生成绩的管理(包括必修课和选修课),每个内容均需要提供添加、修改和查询的功能。

学生成绩管理系统在开发过程中收集到的客户需求文档记录的关键部分可概括为以下几个部分:1、可能会使用到该系统的用户:系统管理员、教师、学生;2、各类用户的权限不一样。

例如系统管理员可以添加、修改、查询学生档案资料和学生的成绩,学生只能查询自己的档案、成绩以及一些公共的信息,教师可以发布学生的成绩信息,而且只能查询自己所授课程的信息以及一些公共信息。

3、要有系统备份功能,系统出故障时,因该有相应的应急措施或者系统恢复功能。

由此可见,学生成绩管理系统需要满足3个方面的需求:管理员使用系统对全部数据进行维护操作;教师对于自己相关的部分数据实体进行操作;学生作为查询者对数据实体进行查询操作。

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

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

洛阳理工学院课程设计报告课程名称数据库课程设计设计题目学生成绩查询系统专业计算机科学与技术班级 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语言

学生成绩管理系统一,实验目的用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•将链表中的学生信息保存在文件中七,模块功能 在结构流程图中已经给出。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

学生成绩管理系统 综合程序设计【范本模板】

学生成绩管理系统 综合程序设计【范本模板】

实验16 综合程序设计1。

实验学时2学时2.实验目的(1)熟练掌握函数的定义和使用;(2)熟练掌握结构体类型数据的概念和使用;(3)熟练掌握文件的操作方式以及常用函数;(4)掌握用模块化分析与设计方法解决实际问题。

3.实验设备PC计算机,配置Win7操作系统,Word2010,Eclipse+minGW4。

实验内容及步骤设计一个学生成绩管理系统,实现添加记录、显示记录、修改记录、删除记录、查找记录、排序记录及退出系统等功能。

添加记录显示记录修改记录删除记录查找记录排序记录退出系统学生成绩管理系统菜单选择图16-14。

1需求分析根据题目要求,学生管理系统需要实现添加记录、显示记录、修改记录、删除记录、查找记录、排序记录及退出系统等7项功能。

图16—1显示学生成绩管理系统的所有需实现的功能模块及彼此之间的关联关系,该图的每一个功能都会对应一个界面。

该系统首先会向用户展现一个菜单选择界面,用户可以根据菜单界面的提示,选择不同功能进入子界面。

4。

1.1添加记录本功能用于添加学生的信息,当用户在功能菜单中选择数字1时,会进入添加记录模块,提示用户输入学生的学号、姓名、数学成绩、语文成绩。

当用户输入完毕后,会提示用户是否继续添加,Y表示继续,N表示返回.需要注意:在添加学号时不能重复,如果输入重复的学号就会提示此学号存在。

4.1.2显示记录本功能用于显示已存入的学生信息,当用户在功能菜单中选择数字2时,会进入显示记录模块,并向控制台输出录入的所有学生的学号、姓名、数学成绩、语文成绩和成绩总和。

4.1.3修改记录本功能用于修改学生信息,当用户在功能菜单中选择数字3时,会进入修改记录模块。

输入要修改的学生姓名,当用户输入了已录入的学生姓名后,如果学生信息存在即可修改除学号以外的其他信息,否则输出该学生不存在.4。

1。

4删除记录本功能用于删除已录入的学生信息,当用户在功能菜单中选择数字4时,会进入删除记录模块。

对学生学号进行判断,如果学号存在即可删除该生的所有信息,否则输出没有找到该生的记录。

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

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

学生成绩管理系统实验报告一、问题描述这是一个基于学生管理考试成绩管理而做的系统,具体有以下几种功能: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.系统设计基于需求分析的结果,我们设计了一个学生成绩管理系统的原型。

系统采用了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 。

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

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

C语言集中上机实习报告院系:光电工程学院班级: 02111507姓名:指导教师:***题目:学生成绩管理系统2016年 12月8日完成实验报告的正文有七部分,分别是:•题目名称:•设计思路:包括总体设计和每个模块的算法•最初程序代码:•调试过程(写明调试过程中出现的所有语法错误和逻辑错误,这是评定成绩的主要依据)•最终程序代码:•测试结果:(截图)•心得体会:下面以一个简单的题目为例:一、题目:学生成绩管理系统二、思路:先定义学生人数和学号和学生姓名和各科成绩变量,再调用函数,最后再输出,系统基本完善。

三、最初程序代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#define NUMOFSTU 10 /* 定义学生人数 */#define NUMOFCOURSE 2 /* 定义考试科目 */struct student{int n umber; /* 每个学生的学号 */char name[10]; /* 每个学生的姓名 */int s core[NUMOFCOURSE]; /* 每个学生M门功课的成绩 */ float sum; /* 每个学生的总成绩 */float average; /* 每个学生的平均成绩 */};typedef struct student STU;void PrintScore(STU pt[], int n);void InputStudent(STU pt[],int n);void Total(STU pt[],int n);void Sort(STU pt[],int n);int SearchByNumber(STU pt[], int n,int number_to_search);int SearchByName(STU pt[], int n,char name_to_search[]);char Menu(void);四、调试过程:出现的提示如下:1.执行 cl.exe 时出错.执行结果:经过对整个程序的排错,发现在过程中,缺少一个结束语。

  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: ”下建立一个指定名称的文件 2009doc.dat;3、编写成绩录入子程序append,实现在指定文件尾部插入一个学生的成绩记录;4、编写显示子程序display,实现按指定学号显示一个学生的记录;5、编写修改子程序modify,实现按指定学号修改一个学生的记录字段(不需修改直接回车);6、编写删除子程序,实现按指定学号、姓名删除一个学生的记录;7、编译、链接、调试,产生可执行文件main.exe。

2、程序流程图2 / 163、程序代码程序代码如下:DATAS SEGMENTMSG1 DB '1. Appe nd a record$'MSG2 DB 2 Display a record$' MSG3DB '3. Modify a record$' MSG4 DB4 Delete a record$' MSG5 DB '5.Create file$' MSG6 DB '6. Return DOS$' MSGC DB 'Please in put1--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:\che ngji\2009\\',23 DUP(?)PATH DB 'D:\che ngji\2009\2009doc.dat',00 MSGA1 DB 'Please in put XH:$'MSGA2 DB 'Please in put XM:$'MSGA3 DB 'Please input SX:$'MSGA4 DB 'Please in put YW:$'MSGA5 DB 'Please input WY:$'HANDLE DW ?MSGXH DB 'Xuehao: $'MSGXM DB 'Xi ngmi ng: $'MSGSX DB 'Shuxue:$'MSGYW DB 'Yuwe n: $'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.******************************** J;主程序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.********************************J;CREATE 程序CREATE PROC NEARPUSH AXPUSH CXPUSH DXPUSH SI PUSH DI;清屏CALL CLSPUSH AX PUSH BX PUSH CX PUSH DX PUSH SIPUSH DI;清屏 CALL CLS;打开文件(只写)MOV AH,3DH MOV AL,01H LEA DX,PATH INT 21HMOV HANDLE,AX;提示输入学号MOV AH,02H MOV DH,10 MOV DL,30 INT 10HMOV AH,9LEA DX,MSGA1 INT 21H;从键盘读入字符串MOV AH,0AH LEA DX,MAXLEN INT 21H;在字符串末尾补足空格MOV DX,4 CALL FILL;将文件指针定位至文件末尾MOV AH,42H MOV AL,2MOV BX,HANDLE MOV CX,0 MOV DX,0INT 21H;写入文件 MOV AH,40HMOV BX,HANDLE MOV CX,0MOV CL,ACTLEN LEA DX,STRINGINT 21H;提示输入姓名 MOV AH,02H;提示输入文件名MOV AH,2MOV DH,12MOV DL,20 INT 10H MOV AH,9LEA DX,MSGC1 INT 21H;从键盘读入文件名字符串MOV AH,0AHLEA DX,MAXLEN INT 21H;将文件名字符串加到 ASCIZ 字符串 末尾MOV CX,0 MOV CL,ACTLEN LEA SI,STRING LEA DI,PATHNM ADD DI,16 LCREATE:MOV AL,BYTE PTR [SI] MOV [DI],AL INC DI INC SI LOOP LCREATE ;在ASCIZ 字符串末尾加00MOV BYTE PTR [DI],0 ;按ASCIZ 字符串创建文件MOV AH,3CHLEA DX,PATHNM MOV CX,0 INT 21H POP DI POP SI POP DX POP CX POP AX RET CREATE ENDP・ ********************************J;APPEND 程序APPEND PROC NEARMOV 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・ ********************************JDISPLAY PROC NEARPUSH AXPUSH DX;清屏CALL CLS;提示输入学号MOV AH,02HMOV DH,10MOV DL,28INT 10HMOV AH,9 LEA 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,02HMOV DH,12MOV DL,28INT 10HMOV AH,9LEA DX,MSGYWINT 21HADD SI,16MOV AH,9MOV DX,SIINT 21HMOV AH,02HMOV DH,13MOV DL,28INT 10HMOV AH,9LEA DX,MSGSXINT 21HADD SI,4MOV AH,9MOV DX,SIINT 21HMOV AH,02HMOV DH,14MOV DL,28INT 10HMOV AH,9LEA DX,MSGWYINT 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.********************************JMODIFY 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,28 INT 10HMOV AH,9LEA DX,MSGXMINT 21HMOV AH,0AHLEA DX,MAXLEN INT 21HCMP BYTE PTR [STRING],0DH ; 若为回车,则将指针指向下一字段JNZXMCONTADD 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],ODHJNZ 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 21H MEND:;关闭文件MOV AH,3EHMOV BX,HANDLEINT 21HPOP DXPOP AXRETMODIFY ENDP・ ********************************J**********************************************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,28 INT 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。

相关文档
最新文档