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

合集下载

VFP实验--学生成绩管理系统

VFP实验--学生成绩管理系统

实验一建立项目管理器、建立数据库和表、输入部分数据一、实验目的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 菜单中文件→退出。

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

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

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

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

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

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

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

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

VB学生成绩查询统计系统实验报告

VB学生成绩查询统计系统实验报告

学生成绩查询系统一、实习任务 (2)二、系统分析 (3)三、系统设计 (4)四、调试、排错、测试、试运行过程 (7)五、源程序完整或主要代码 (10)六、总结与体会 (17)七、参考文献 (18)一、实习任务1实习任务介绍:熟悉软件工程学的基本思想进行软件开发的原则和方法;结构化分析方法和步骤;结构化编程方法;面向对象的思想和程序设计方法。

按照软件开发的一般方法和步骤动手设计一个《学生成绩查询统计系统》。

2基本要求:①登录界面:密码最多尝试3次,连续3次均输入错误系统自动退出。

②具有录入成绩、添加记录、删除记录、修改记录功能。

③具有成绩查询功能,可以按照学号、课程号、课程名、分数段进行查询。

为便于查询,所有的学号和课程号可考虑以下拉列表的形式给出。

④具有全部成绩浏览功能,且能与数据库表最新数据同步。

⑤具有统计功能,能以直方图、饼图、折线图、散点图、立体直方图直观表示各成绩段的分布情况。

⑥具有打印学生成绩报表的功能。

⑦具有菜单和工具条的双重操作功能。

3 实习目的:掌握常用控件的使用,学会使用通用对话框控件进行编程,掌握创建多重窗体程序的有关技术,了解鼠标和键盘事件及事件过程的编写,综合应用了所学知识,加深对VB的理解。

4 选题的背景及意义:VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。

它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。

在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。

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

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

一、实验目的1. 熟悉学生信息管理系统的基本功能和操作流程。

2. 掌握数据库设计的基本方法,能够根据需求设计合理的数据库结构。

3. 熟悉编程语言和开发工具,能够编写简单的数据库应用程序。

4. 提高团队合作能力和沟通能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 数据库:MySQL 5.74. 编程语言:C#三、实验内容1. 需求分析学生信息管理系统主要用于对学生信息进行管理,包括学生基本信息、成绩、课程、班级等。

系统应具备以下功能:(1)学生信息管理:增加、删除、修改、查询学生信息。

(2)成绩管理:录入、修改、查询学生成绩。

(3)课程管理:增加、删除、修改、查询课程信息。

(4)班级管理:增加、删除、修改、查询班级信息。

(5)统计分析:对学生成绩、课程等进行统计分析。

2. 数据库设计根据需求分析,设计如下数据库表:(1)学生信息表(student)字段名 | 数据类型 | 说明--- | --- | ---id | int | 学生编号(主键)name | varchar(50) | 学生姓名gender | varchar(10) | 性别age | int | 年龄class_id | int | 班级编号(外键)(2)成绩表(score)字段名 | 数据类型 | 说明--- | --- | ---id | int | 成绩编号(主键)student_id | int | 学生编号(外键)course_id | int | 课程编号(外键)score | float | 成绩(3)课程表(course)字段名 | 数据类型 | 说明--- | --- | ---id | int | 课程编号(主键)name | varchar(50) | 课程名称credit | int | 学分(4)班级表(class)字段名 | 数据类型 | 说明--- | --- | ---id | int | 班级编号(主键)name | varchar(50) | 班级名称3. 系统设计(1)界面设计采用Windows窗体应用程序,界面包括以下部分:- 主界面:展示系统功能菜单。

学校管理系统实验报告(3篇)

学校管理系统实验报告(3篇)

第1篇一、实验目的本次实验旨在通过设计和实现一个学校管理系统,提高学校管理工作的效率和质量。

通过本实验,学生能够掌握数据库的基本操作、编程语言的使用以及系统设计的流程,从而培养学生的实际操作能力和综合应用能力。

二、实验内容1. 需求分析- 确定系统功能:包括学生信息管理、教师信息管理、课程信息管理、成绩管理、教务管理等。

- 确定系统用户:包括学生、教师、教务管理员等。

2. 系统设计- 数据库设计:设计学生表、教师表、课程表、成绩表等。

- 界面设计:设计用户登录界面、学生信息管理界面、教师信息管理界面等。

3. 系统实现- 数据库实现:使用MySQL数据库创建数据库和表。

- 编程实现:使用Java或Python等编程语言编写系统代码。

- 界面实现:使用Swing或Tkinter等图形界面库设计用户界面。

4. 系统测试- 功能测试:测试各个功能的正确性和稳定性。

- 性能测试:测试系统在高并发情况下的性能表现。

- 安全测试:测试系统的安全性,防止非法用户访问。

三、实验步骤1. 需求分析阶段- 通过查阅相关资料,了解学校管理的基本流程和需求。

- 与学校管理人员沟通,确定系统需要实现的功能。

2. 系统设计阶段- 使用E-R图或数据库设计工具设计数据库结构。

- 设计系统界面原型,确定用户界面布局。

3. 系统实现阶段- 使用数据库设计工具创建数据库和表。

- 使用编程语言编写系统代码,实现各个功能模块。

- 使用图形界面库设计用户界面。

4. 系统测试阶段- 编写测试用例,对系统进行功能测试、性能测试和安全测试。

- 根据测试结果,对系统进行修改和完善。

四、实验结果1. 系统功能实现- 学生信息管理:包括学生信息的增删改查、成绩查询、班级管理等。

- 教师信息管理:包括教师信息的增删改查、课程安排等。

- 课程信息管理:包括课程信息的增删改查、选课管理等。

- 成绩管理:包括成绩的录入、查询、统计等。

- 教务管理:包括教务工作的安排、通知发布等。

学生成绩管理实训报告小结范文

学生成绩管理实训报告小结范文

以下是一份学生成绩管理实训报告小结的范例,你可以根据实际情况进行修改和完善。

《学生成绩管理实训报告小结》
通过本次学生成绩管理的实训,我对学生成绩管理系统的操作和功能有了更深入的了解。

在实训过程中,我不仅学习了如何使用该系统来管理学生的成绩,还掌握了一些关键的技能和知识点。

首先,我了解了学生成绩管理系统的基本架构和各个模块的功能。

我学会了如何录入学生的成绩信息、查询学生的成绩记录以及生成成绩报表等操作。

通过实际操作,我熟悉了系统的界面和操作流程,能够高效地完成各项任务。

其次,我掌握了数据处理和分析的技能。

通过使用系统提供的统计功能,我能够对学生的成绩进行汇总、计算平均值和百分比等指标,并根据这些数据进行分析和评估。

这有助于我更好地了解学生的学习情况,为教学改进提供参考。

另外,我还学习了如何保护学生成绩的隐私和安全性。

系统提供了权限设置和数据加密等功能,以确保学生的成绩信息不被泄露或滥用。

我明白了在处理学生成绩时要严格遵守相关的法律法规和道德规范。

通过这次实训,我不仅在技术上得到了提升,更重要的是培养了自己的责任意识和团队合作精神。

我认识到学生成绩管理对于教育教学的重要性,以及作为管理员所承担的责任。

我将继续努力,不断提升自己的能力,为学生的成长和发展提供更好的服务。

感谢这次实训机会,让我收获颇丰,也为我今后的学习和工作打下了坚实的基础。

谢谢大家!。

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

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

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

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

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

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

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

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

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

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

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

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

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

matlab GUI 学生成绩管理系统

西安邮电大学MATLAB及其EDA仿真课内实验报告院(系)名称:电子工程学院姓名:生学李豪名专业称:集成电路设计与集成系统:级班班1202:时间日月2013年1220一、实验内容建立基于图形用户界面GUI的学生成绩管理系统,该系统能够实现学生成绩信息的增加、删除、查询(查询某门课所有学生的成绩并显示排名,查询某个学生的各科成绩并显示排名)、课程成绩统计最高分、最低分、平均分、方差、并显示相应的排名;绘制柱状图、条形图、饼状图、正太分布曲线等功能。

二、实验目的通过本实验使学生掌握图形用户界面GUI的操作和设计流程,并通过编写回调函数巩固前期的知识。

三、报告正文(一)设计思路功绘统单能图计科菜菜成成单单绩绩显示模块成排姓学名绩名号设计步骤与设计内容(二)guideGUI1.启动,命令窗口中输入颜色设置为灰色,edit14,,2.放置控件。

先放置一个Edit Texttag名称设为GUI的功能;设置为‘学生成绩管理系统'String,该控件的功能是显示该,edit4tag再放置五个Edit Text,名称分别设为edit1、edit2、edit3、、edit13、颜色均设置为淡蓝色,String分别设置为‘姓名'其他'、‘成绩\、‘学号'的标题;再放置四‘成绩类型',这些控件的功能作为下面listbox、‘排名',颜色均paiming、xuehao 、grade、名称分别设为个listbox, tagxingming,这些该控件的功能是分别显示对应学生String'设置为‘设置淡蓝色,、名称分别设为再放置五个的姓名、学号、成绩、排名;Edit Text,tagedit7专'String,颜色均设置为淡蓝色,、edit9、edit10edit11 分别设置为、edit8,该控件的功能是显示个人对应的科‘物理',,,业‘‘数学'‘英语'‘体育',颜色设置为灰色,该控件的功axes1名称设为tag,目;再放置一个Axes 能是显示绘制的图; 3.4.保存.fig文件5.编写.m文件,这部分要详细叙述每个子函数的编写思路,每条语句后面要给出注释说明该语句的功能;只需要附上自己编写的回调函数部分,其他系统自动生成的不需要放入报告中。

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

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

.。

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

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

...。

.。

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

.。

.。

.。

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

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

...。

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

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

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

.。

.。

.。

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

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

..。

.。

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

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

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

最新用labview制作学生成绩管理系统

虚拟仪器与网络实验技术
实验报告
一、实训目的
制作学生成绩管理系统
二、实训内容
设计学生成绩管理系统,需满足以下条件:
1、能够添加和删除用户,并且录入课程分数(至少三门课程以上的成绩)。

2、能够按照科目和总成绩,显示平均分、最高分、最低分和方差。

3、计算学分绩点。

4、用图形显示数据分布情况。

三、实训步骤
1、程序框图一
利用三个一维数组作为数据输入,对这三个一维数组操作
2、程序框图二
第一个结构模块实现学生总成绩的各项指标,第二个结构模块实现学生单科成绩的各项指标,第三个模块实现学生总成绩与单科成绩的整合。

3、前置面板。

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

《程序类课程设计》报告书题目:学生成绩管理程序系别:学号:学生姓名:指导教师:完成日期:学生成绩管理程序 (3)一、需求分析 (3)二、课程设计的内容及简介 (3)1、系统设计分析 (3)2、系统功能分析 (3)3、设计说明 (4)4、程序流图 (5)5、部分程序及其说明: (5)三:可执行代码: (6)四:部分正确输入输出实例: (17)1、录入学生信息 (17)3、删除学生信息: (18)4,学生信息排序: (18)5、修改学生信息: (19)五、课程设计总结 (19)六、参考文献 (20)指导教师评语: (21)学生成绩管理程序一、需求分析本系统设计者力求根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。

开发目的如:1、能对成绩进行录入和修改;2、能对成绩进行录入和修改;3、能计算每个学生的平均成绩以及各门功课的平均成绩;4、能根据学生的学号来查询该学生的成绩;5、能删除该学生的记录;;6、能根据每个学生的总成绩来他们进行排序。

二、课程设计的内容及简介1、系统设计分析本系统适用于中小学校,其功能主要分为五大类:用户管理:用于对用户的添加,赋于不同权限及对用户的修改及查询。

成绩管理:用于对成绩的输入、修改、汇总及排名。

学生信息管理:添加,删除,修改学生信息等。

学生信息查询: 对学生成绩等信息的查询,查询方式为模糊,且具有多条件组合查询功能。

学生成绩统计: 统计本科的总分,平均分等信息。

本系统性能力求易于使用,具体有较高的扩展性和可维护性。

2、系统功能分析录入功能:为一般用户提供相应的录入功能,为用户提供对所有信息的录入功能。

查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。

维护功能:为一般用户提供查询及相应的修改,删除功能,为用户提供对所有信息的修改删除功能。

退出功能:结束并关闭系统。

3、设计说明(1)定义一个结构体,其中的成员如下:成员名(字段名)数据类型长度字段含义序号1 num int 学号2 name char 8 姓名3 c_prog float C++ 程序设计4 eng float 大学英语5 math float 高等数学6 ave float 平均成绩(2)定义多个函数以实现各个功能:1)主函数main():定义学生结构体数组,调用录入、统计等函数对成绩表进行处理;2)录入函数Input():输入学号到数学课成绩;3)统计函数Statistic():计算平均成绩;4)查询函数Lookup():查询指定学号学生成绩记录;5)修改函数Modify():修改指定学号学生成绩记录;6)删除函数Delete():删除指定学号学生记录;7)输出函数Output():输出所有学生成绩记录;8) 排序函数Sort():按要求对学生成绩记录项进行升序或降序排序;9)插入函数Insert():按平均分顺序插入新记录。

(3)预先录入的数据如下表:num name c_prog eng math sum aver3033101阿强7070703033102张振 80 70 753033103邓莲 70 60 604、程序流图Main主函数Menu函数Output Input Lookup Delete Statistics Sort5、部分程序及其说明:Main():此函数主要是调用录入、统计等函数对成绩表进行处理;通过使用switch函数判断用户所选择的序号,再进入相应的函数。

Input():用于建立一个链表,用来保存数据,具体的录入及插入代码在switch中当case=2时实现。

Statistic():统计平均成绩:按各个学生进行平均分统计、按各个课程进行平均分统计。

Lookup():按学号进行查询,当无法找到与输入的学号相匹配的记录时显示出错信息。

Delete():按学号进行删除操作,当输入的学号不匹配时就显示出错信息。

Output():此函数用于输出班级所有学生成绩记录。

Sort():用于对各个学生的平均成绩进行名次排序。

Menu():一个显示函数,通过键入数字来运行各个功能函数。

三:可执行代码:#include<iostream.h>#include <string>#include<stdlib.h>#include<stdio.h>#include<malloc.h>#define Null 0#define LEN sizeof (struct student)/* 定义了一个学生的结构体*/ int n;struct student{char name[8];/* 姓名*/long num;/* 学号*/float c_prog,Eng,Math;/*学科*/float sum,aver;int index;struct student *next;/*定义一个结构体的指针*/};struct student *creat(){struct student *head;struct student *p,*r;p=(struct student*)malloc(LEN);head=p;p->next=Null;r=p;p=(struct student*)malloc(LEN);p->num=3033101;strcpy(p->name,"阿强");p->c_prog=70;p->Eng=70;p->Math=70;p->sum=0;p->sum=p->c_prog+p->Eng+p->Math; p->aver=(float)p->sum/3.0;p->next=Null;r->next=p;r=r->next;p=(struct student*)malloc(LEN);p->num=3033102;strcpy(p->name,"张振");p->c_prog=80;p->Eng=70;p->Math=75;p->sum=0;p->sum=p->c_prog+p->Eng+p->Math; p->aver=(float)p->sum/3.0;p->next=Null;r->next=p;r=r->next;p=(struct student*)malloc(LEN);p->num=3033103;strcpy(p->name,"邓莲");p->c_prog=70;p->Eng=60;p->Math=60;p->sum=0;p->sum=p->c_prog+p->Eng+p->Math; p->aver=(float)p->sum/3.0;p->next=Null;r->next=p;r=r->next;return(head);}void Output(struct student *head){struct student *p;cout<<" "<<endl;cout<<"学号"<<" "<<"姓名"<<" "<<"C++程序设计"<<" "<<"英语"<<" "<<"数学"<<" "<<"总分"<<" "<<"平均分"<<endl;cout<<" "<<endl;p=head;p=p->next;if(head!=Null)do{cout<<p->num<<" "<<p->name<<" "<<p->c_prog<<" "<<p->Eng<<" "<<p->Math<<" "<<p->sum<<" "<<p->aver<<endl;p=p->next;}while(p!=Null);}struct student *Input(struct student *head,struct student *k){struct student *p,*q;q=head;p=head->next;while(p!=Null){q=p;p=p->next;}q->next=k;return (head);}struct student *Lookup(struct student *head,int num){struct student *p;p=head->next;while(p!=Null){if(p->num==num)break;elsep=p->next;}if(p==Null){cout<<"您要求查找的对象不存在!请检查输入的正确性!"; cout<<"要继续查找,请重新输入:"<<endl;cout<<"请输入学生学号:";cin>>num;Lookup(head,num);}else{cout<<"姓名:"<<p->name<<endl;cout<<"C++程序设计:"<<p->c_prog<<endl; cout<<"英语:"<<p->Eng<<endl;cout<<"数学:"<<p->Math<<endl;}return (head);}struct student *Delete(struct student *head,int num) {struct student *p,*q;q=head;p=q->next;while(p!=Null){if(p->num==num)break;else{q=p;p=p->next;}}if(p==Null){cout<<"无此人,请重新输入:"<<endl;cout<<"请输入学生学号:";cin>>num;Delete(head,num);}else{q->next=p->next;free(p); }return (head);}struct student *sort(struct student *head) {struct student *s,*p,*q,*r;r=head;s=head->next;q=s;p=q->next;while(s!=Null){while(p!=Null){ while(s->num>p->num){ q->next=p->next;r->next=p;p->next=s;s=p;p=q->next;if(p==Null)break; }if(p==Null)break;q=p;p=p->next;}r=s;s=s->next;q=s;p=q->next;if(p==Null)break;}return(head);}void Modify(struct student *head){student *p=NULL;if(head==NULL){cout<<"文档中无记录!";return;}int num;cout<<"请输入学生的学号:\t";cin>>num;for(p=head->next;p!=NULL;p=p->next){if(p->num==num) //验证信息是否正确{cout<<"\t\t学生学号:"<<p->num<<endl;cout<<"\t\t学生姓名:"<<p->name<<endl;cout<<"\t\tC++程序设计成绩:"<<p->c_prog<<endl;cout<<"\t\t英语成绩:"<<p->Eng<<endl;cout<<"\t\t数学成绩:"<<p->Math<<endl;cout<<"\n"<<endl; //输出要修改信息p->num=num;cout<<"\t\t输入修改学生姓名:\t";cin>>p->name;cout<<"\t\t输入修改C++成绩:\t";cin>>p->c_prog;cout<<"\t\t输入修改英语成绩:\t";cin>>p->Eng;cout<<"\t\t输入修改数学成绩:\t";cin>>p->Math;cout<<"\n"<<endl; //输入修改信息}}if(p){cout<<"无该生信息!请查证:"<<endl;} /*没找到信息时的处理*/ }void menu(){ cout<<" "<<endl;cout<<"******************************************"<<endl; cout<<"******欢迎进入学生成绩管理系统C++版******"<<endl; cout<<"******************************************"<<endl; cout<<" (输出数据请按1 !)\n";cout<<" (插入数据请按2 !)\n";cout<<" (查询数据请按3 !)\n";cout<<" (删除数据请按4 !)\n";cout<<" (排序数据请按5 !)\n";cout<<" (修改数据请按6 !)\n";cout<<" (退出系统请按其他键!)\n\n";cout<<endl; }/* 程序入口*/void main(){ struct student *head,*s,*p,*q,*k;int m,num;char name[8];p=creat();char ch='y';while(ch=='y'){ menu();cout<<"请选择功能键:";cin>>m;switch(m){case 1:head=creat();Output(head);break;case 2:k = (struct student *)malloc(LEN); cout<<"请输入录入学生学号!"<<endl; cin>>k->num;cout<<"请输入学生姓名:"<<endl; cin >> name;strcpy(k->name, name);cout<<"C++程序设计成绩:"; cin>>k->c_prog;cout<<"英语成绩:";cin>>k->Eng;cout<<"数学成绩:";cin>>k->Math;k->sum=0;k->sum=k->c_prog+k->Eng+k->Math; k->aver=(float)k->sum/3.0;k->next=Null;p=sort(p);p=Input(p,k);cout<<"按插入的结果:"<<endl;q=p->next;cout<<"学号"<<" "<<"姓名"<<" "<<"C++程序设计"<<" "<<"英语"<<" "<<"数学"<<" "<<"总分"<<" "<<"平均分"<<endl;while(q!=Null){ cout<<q->num<<" "<<q->name<<" "<<q->c_prog<<" "<<q->Eng<<" "<<q->Math<<" "<<q->sum<<" "<<q->aver<<endl;q=q->next; }break;case 3:cout<<"学生学号:";cin>>num;s=Lookup(p,num);break;case 4:cout<<"学生学号:";cin>>num;p=Delete(p,num);cout<<"删除后的结果:"<<endl;q=p->next;cout<<"学号"<<" "<<"姓名"<<" "<<"C++程序设计"<<" "<<"英语"<<" "<<"数学"<<" "<<"总分"<<" "<<"平均分"<<endl;while(q!=Null){ cout<<q->num<<" "<<q->name<<" "<<q->c_prog<<" "<<q->Eng<<" "<<q->Math<<" "<<q->sum<<" "<<q->aver<<endl;q=q->next; }break;case 5:p=sort(p);cout<<"按学号排序的结果:"<<endl;q=p->next;cout<<"学号"<<" "<<"姓名"<<" "<<"C++程序设计"<<" "<<"英语"<<" "<<"数学"<<" "<<"总分"<<" "<<"平均分"<<endl;while(q!=Null){ cout<<q->num<<" "<<q->name<<" "<<q->c_prog<<" "<<q->Eng<<" "<<q->Math<<" "<<q->sum<<" "<<q->aver<<endl;q=q->next; }break;case 6:Modify(p);break;default :cout<<"输入有误!"<<endl;}cout<<" "<<endl;cout<<"继续请按y ,按其他任意键退出!"<<endl;cin>>ch;if(ch!='y')break; } }四:部分正确输入输出实例:1、录入学生信息2,查询学生信息:4,学生信息排序:五、课程设计总结通过此次学生成绩管理系统的设计,使我对C++程序设计有了深一步的了解,对系统设计及开发有了比较全面的思路。

相关文档
最新文档