学生成绩管理系统实验报告
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",#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学生成绩查询统计系统实验报告

学生成绩查询系统一、实习任务 (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.进一步掌握调试程序的基本步骤和方法。
二.实验内容1.使学生、教师和课程表具有增加、修改、删除和查询数据的功能。
2.学生根据开设的课程进行选课.3.教师根据学生所选课程进行成绩登录。
4.各类统计分析,比如平均成绩。
系统说明:学生:可以进行选课、退课、查分、查看学生自己的信息、修改自己的密码。
教师:可以查询已选学生、登分、查看教师自己的信息、修改自己的密码。
管理员:可以增加和删除课程、学生、教师等信息,可以查看和修改学生、教师密码,可以注册和注消学生、教师,有所有学生的功能,能够查询教师信息。
部分窗口如下:部分代码如下:如查分代码如下:通过datawindow中通过学号可以查看自己成绩。
dw_1.reset()dw_1.settransobject(SQLCA)dw_1.retrieve(user)dw_1.object.datawindow.readonly="yes"三.上机体会。
进一步掌握了开发管理系统的基本方法;掌握了使用PowerBuilder开发环境提供的工具建立应用程序的步骤和方法;掌握应用PowerBuilder提供的调试程序进行应用程序的调试。
实验六SQL Server 2000高级技术的使用一.目的与要求1.练习存储过程的建立和使用。
2.学会触发器的使用。
二.实验内容1.存储过程的建立和使用。
(1)创建存储过程,使其具有如下功能:根据所提供的学号参数,返回该学生的学习情况信息。
(2)查看和修改存储过程;(3)使用存储过程;(4)删除存储过程。
2.触发器的建立和使用(1)创建两个触发器,分别具有如下功能:a.将删除的学生选课信息转移到存档学生选课表中;b.在修改学生成绩时,要求修改后的成绩一定要比原来的成绩高;(2)查看和修改触发器;(3)使用触发器;(4)删除触发器;3.为实验五设计存储过程和触发器,通过调试验证其正确性。
学生信息管理系统实验报告

一、实验目的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窗体应用程序,界面包括以下部分:- 主界面:展示系统功能菜单。
学生成绩管理实训报告小结范文

以下是一份学生成绩管理实训报告小结的范例,你可以根据实际情况进行修改和完善。
《学生成绩管理实训报告小结》
通过本次学生成绩管理的实训,我对学生成绩管理系统的操作和功能有了更深入的了解。
在实训过程中,我不仅学习了如何使用该系统来管理学生的成绩,还掌握了一些关键的技能和知识点。
首先,我了解了学生成绩管理系统的基本架构和各个模块的功能。
我学会了如何录入学生的成绩信息、查询学生的成绩记录以及生成成绩报表等操作。
通过实际操作,我熟悉了系统的界面和操作流程,能够高效地完成各项任务。
其次,我掌握了数据处理和分析的技能。
通过使用系统提供的统计功能,我能够对学生的成绩进行汇总、计算平均值和百分比等指标,并根据这些数据进行分析和评估。
这有助于我更好地了解学生的学习情况,为教学改进提供参考。
另外,我还学习了如何保护学生成绩的隐私和安全性。
系统提供了权限设置和数据加密等功能,以确保学生的成绩信息不被泄露或滥用。
我明白了在处理学生成绩时要严格遵守相关的法律法规和道德规范。
通过这次实训,我不仅在技术上得到了提升,更重要的是培养了自己的责任意识和团队合作精神。
我认识到学生成绩管理对于教育教学的重要性,以及作为管理员所承担的责任。
我将继续努力,不断提升自己的能力,为学生的成长和发展提供更好的服务。
感谢这次实训机会,让我收获颇丰,也为我今后的学习和工作打下了坚实的基础。
谢谢大家!。
Visual FoxPro 课程设计实验报告 范本

Visual FoxPro 课程设计实验报告范本课程名称:Visual FoxPro实验名称:设计一个简单的学生成绩管理系统实验目的:1.掌握Visual FoxPro的基本操作和编程语言;2.了解数据库的创建和使用;3.熟悉Visual FoxPro的界面设计和报表生成功能。
实验内容:本次实验设计一个简单的学生成绩管理系统,包括以下功能:1.学生信息的录入、修改和查询;2.成绩信息的录入、修改和查询;3.成绩统计分析功能;4.成绩报表生成功能。
实验步骤:1.创建数据库在Visual FoxPro中创建一个数据库,并创建两个表:学生表和成绩表。
学生表包括学生编号、姓名、性别、年龄、班级等字段;成绩表包括学生编号、科目、成绩等字段。
2.设计界面设计一个简单的界面,包括菜单栏、工具栏和状态栏。
菜单栏包括“学生管理”、“成绩管理”、“成绩统计”、“报表生成”等功能。
3.学生信息的录入、修改和查询在学生管理功能中,设计学生信息的录入、修改和查询功能。
录入学生信息时,可以通过表单的方式输入学生信息,并将信息保存到学生表中。
修改学生信息时,可以选择要修改的学生,并通过表单的方式修改学生信息。
查询学生信息时,可以根据学生编号、姓名、班级等条件进行查询,并将查询结果显示在表格中。
4.成绩信息的录入、修改和查询在成绩管理功能中,设计成绩信息的录入、修改和查询功能。
录入成绩信息时,可以选择学生和科目,并输入成绩信息,并将信息保存到成绩表中。
修改成绩信息时,可以选择要修改的成绩,并通过表单的方式修改成绩信息。
查询成绩信息时,可以根据学生编号、科目等条件进行查询,并将查询结果显示在表格中。
5.成绩统计分析功能在成绩统计功能中,设计成绩的平均分、最高分、最低分等统计分析功能,并将统计结果显示在界面上。
6.成绩报表生成功能在报表生成功能中,设计成绩报表的生成功能。
可以选择要生成的报表类型,如学生成绩单、科目成绩排名等,并将报表生成到指定位置。
学生成绩管理系统数据库设计实验报告

学生成绩管理系统数据库课题: 雇员信息管理系统姓名:学号:同组姓名:专业班级:指导教师:设计时间: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文件,这部分要详细叙述每个子函数的编写思路,每条语句后面要给出注释说明该语句的功能;只需要附上自己编写的回调函数部分,其他系统自动生成的不需要放入报告中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 时出错.执行结果:经过对整个程序的排错,发现在过程中,缺少一个结束语。
将输出那行改正为:在后面添加 }结果正确。
2.H:\C语言\学生成绩管理系统.cpp(135) : error C2143: syntax error : missing ';' before '{'执行 cl.exe 时出错.执行结果:经过排查,发现在if(pt[j].sum > pt[k].sum)k=j;(k!=i){temp = pt[k];pt[k] = pt[i];自定义变量时,缺少if条件语句,结果导致整个自定义变量发生改变在k=j;(k!=i)前面添加if条件语句结果正确3.调试过程中,在使用按姓名查询时,出现经排查,发现在int SearchByNumber(STU pt[], int n,int number_to_search){int i;for (i=0; i<n; i++)if (pt[i].number == number_to_search)return i;return i;} 返回按姓名查询时,返回值确定错误,误将返回-1写成i导致返回值全部为查询方式将i改为-1之后,调试正常五、最终程序为:#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);/* 函数功能:打印学生的信息,此子程序即可以打印全部学生成绩的信息,也可以打印个别几个学生的信息函数参数:结构体数组的指针pt,表示要打印的学生的起始地址整型参数n,表示要打印n个学生成绩函数返回值:无*/void PrintScore(STU pt[], int n){int i,j;char string[100]={'\0'},temp[NUMOFCOURSE];strcat(string, "Number "); /* 建立表头 */strcat(string, "Name ");for (i=1; i<=NUMOFCOURSE; i++){strcat(string, "Score");itoa(i,temp, 10);strcat(string, temp);strcat(string, " ");}strcat(string,"sum");strcat(string," average");printf("%s",string); /* 打印表头 */for (i=0; i<n; i++){ /* 打印n个学生的信息 */ printf("\nNo.%3d%8s",pt[i].number, pt[i].name);for(j=0;j<NUMOFCOURSE;j++)printf("%7d",pt[i].score[j]);printf("%8.2f%8.2f\n",pt[i].sum,pt[i].average); }}/* 函数功能:从键盘获得学生的信息子程序函数参数:结构体数组的指针pt,表示要输入的学生信息头整型变量n,表示要输入的元素的个数函数返回值:无*/void InputStudent(STU pt[],int n){int i,j;for(i=0; i<n; i++){printf("\n 输入学号:");scanf("%d",&pt[i].number);printf("\n 输入名字:");scanf("%s",pt[i].name);for(j=0; j<NUMOFCOURSE; j++){if (j){printf("\n 输入高数分数score2:");}else{printf("\n 输入英语分数score1:");}scanf("%d",&pt[i].score[j]);}}}/* 函数功能:计算每个学生的M门功课的总成绩和平均成绩子模块函数参数:结构体数组的指针pt,表示要输入的学生信息头整型变量n,表示要处理的元素的个数函数返回值:无*/void Total(STU pt[],int n){int i,j;for (i=0; i<n; i++){pt[i].sum = 0;for(j=0;j<NUMOFCOURSE;j++)pt[i].sum = pt[i].sum + pt[i].score[j];pt[i].average = pt[i].sum/NUMOFCOURSE;}}/* 函数功能:用选择法按总成绩由高到低排序函数参数:结构体数组的指针pt,表示要输入的学生信息头整型变量n,表示要处理的元素的个数函数返回值:无*/void Sort(STU pt[],int n){int i,j,k;STU temp;for(i=0; i<n-1; i++){k = i;for(j=i; j<n; j++)if(pt[j].sum > pt[k].sum)k=j;if(k!=i){temp = pt[k];pt[k] = pt[i];pt[i] = temp;}}}/* 函数功能:用顺序查找法按学号查找函数参数:结构体数组首地址pt,整型变量n,表示数组长度,整型变量 number_to_search,表示要查找的学号函数返回值:如果找到学号,则返回对应下标,否则返回-1 */int SearchByNumber(STU pt[], int n,int number_to_search) {int i;for (i=0; i<n; i++)if (pt[i].number == number_to_search)return i;return -1;}/* 函数功能:用顺序查找法按学号查找函数参数:结构体数组首地址pt,整型变量n,表示数组长度,字符数组首地址,name_to_search,用来指向要查找的姓名函数返回值:如果找到姓名,则返回对应下标,否则返回-1*/int SearchByName(STU pt[], int n,char name_to_search[]){int i;for (i=0; i<n; i++)if (strcmp(pt[i].name , name_to_search)==0)return i;return -1;}/* 函数功能:查找并显示查找结果子模块,可按姓名和学号分别查找,找到,显示该元素的信息,如果没查到,也有相应的提示函数参数:结构体数组的指针pt,表示要输入的学生信息头整型变量n,表示要处理的元素的个数函数返回值:无*/void Find(STU stu[],int n){int number,k,choose;char name[25];do{printf("请选择:1-按学号查询, 2-按姓名查询:");scanf("%d",&choose);}while(!(choose==1 ||choose ==2));if(choose == 1){printf("请输入学号:");scanf("%d",&number);k = SearchByNumber(stu,n,number);}else{printf("请输入姓名:");scanf("%s",name);k = SearchByName(stu,n, name);}if(k==-1)printf("\n没有找到对应学生,请重新输入 !\n");elsePrintScore(stu+k, 1);}/* 函数功能:菜单子模块,显示菜单功能并获得键盘选择函数参数:无函数返回值:输入的键盘ASCII码*/char Menu(void){printf("\n 1.输入学生信息\n");printf(" 2.列出成绩总表\n");printf(" 3.按平均分排序\n");printf(" 4.分类查找\n");printf(" 5.退出\n");return getchar();}int main() /* 主程序 */{printf("\n*******************************************欢迎使用学生成绩管理系统*****************************************************\n");char ch;STU stu[NUMOFSTU];int n;while(1){ch = Menu(); /* 显示菜单 */switch(ch){case'1':printf("请输入学生人数:");scanf("%d",&n);InputStudent(stu,n); /* 调用输入模块 */ Total( stu,n );break;case'2':PrintScore(stu, n); /* 调用列表模块 */break;case'3':Sort(stu,n); /* 调用排序模块 */ printf("\n 分类结果\n");PrintScore(stu, n); /* 显示排序结果 */break;case'4':Find(stu,n); /*调用查找模块*/break;case'5':exit(0); /* 退回到DOS */break;default:break;}printf("\n按任意键返回主菜单");getchar();}return 0;}六、测试结果:1.输入自定义变量之后,程序正常2.使用列出成绩总表,程序正常3.按平均分排序,程序使用正常4.分类查找,按学号按姓名查询均正常•心得体会:•C语言在实际生活中用处很大,可以利用基本的知识编写简单程序,提高我们的做事效率•注意函数应用,在适当的地方用不同的函数,得到的结果也会不同•注意输出函数的用法,注意数据类型的区别。