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

C语言课程设计学生成绩管理系统在当今数字化的时代,学生成绩管理系统对于学校和教育机构来说至关重要。
它不仅能够提高教学管理的效率,还能为教学决策提供有力的数据支持。
本次 C 语言课程设计的目标就是创建一个功能齐全、操作便捷的学生成绩管理系统。
一、系统需求分析首先,明确系统需要实现的基本功能。
包括学生信息的录入,如姓名、学号等;课程信息的设置,如课程名称、学分等;成绩的录入、修改和查询;以及成绩的统计分析,如计算平均分、排名等。
同时,系统应具备良好的用户界面,操作简单易懂,方便教师和管理人员使用。
对于数据的存储和管理,要保证数据的安全性和完整性,防止数据丢失或被篡改。
二、系统设计(一)数据结构设计选择合适的数据结构来存储学生、课程和成绩信息。
可以使用结构体来定义学生和课程的数据类型,使用数组或链表来存储多个学生和课程的信息。
例如,定义学生结构体如下:```ctypedef struct student {int id;char name50;float scores10; //假设最多 10 门课程} Student;```(二)功能模块设计将系统划分为多个功能模块,如录入模块、查询模块、修改模块、统计模块等。
每个模块负责完成特定的功能,模块之间相互独立,便于代码的维护和扩展。
录入模块负责接收用户输入的学生、课程和成绩信息,并进行合法性检查。
查询模块可以根据用户输入的条件,如学号、姓名、课程名称等,查询相应的学生成绩信息。
修改模块允许用户对已录入的成绩进行修改,但需要进行权限验证。
统计模块用于计算学生的平均分、总分,并进行排名。
(三)界面设计设计简洁明了的用户界面,使用菜单选项让用户选择不同的功能。
可以使用控制台输入输出的方式,也可以考虑使用图形界面库来实现更友好的界面。
三、系统实现(一)数据输入与存储使用文件来存储学生成绩数据,便于数据的持久化。
在程序启动时,读取文件中的数据;在程序结束时,将修改后的数据保存回文件。
原创c语言课程设计学生成绩管理系统

原创C语言课程设计——学生成绩管理系统引言学生成绩管理系统是一种用于管理学生课程成绩的软件工具。
该系统通过对学生课程成绩进行录入、查询和统计分析,帮助教师和学生更好地了解学习情况和成绩进展。
本文将详细介绍一个原创的C语言课程设计,实现学生成绩管理系统的开发过程与功能。
程序设计目标学生成绩管理系统的设计目标是实现以下功能:1.学生信息的录入和管理;2.课程信息的录入和管理;3.学生成绩的录入和管理;4.学生成绩的查询和统计分析;5.成绩报告的生成与导出。
需求分析1.学生信息管理:包括学号、姓名、性别、年龄等基本信息的录入和管理;2.课程信息管理:包括课程名称、教师名称、学分等信息的录入和管理;3.学生成绩管理:包括学生成绩的录入和管理,可以根据学号和课程查询具体成绩;4.成绩统计分析:可以统计学生成绩的平均分、最高分、最低分等信息;5.成绩报告生成与导出:可以根据学生或课程生成成绩报告,并将报告导出为文本文件。
设计思路1.数据结构设计:设计合适的数据结构来存储学生信息、课程信息和成绩信息;2.模块化设计:将不同功能的代码进行模块划分,方便代码的维护和管理;3.用户界面设计:采用简洁明了的用户界面,方便用户操作和交互;4.数据输入与输出:实现数据的输入、保存和读取功能,方便信息的录入和查询;5.统计与分析算法:设计相应的算法来实现成绩的统计和分析功能;6.报告生成与导出:根据成绩信息生成报告,并将报告导出为文本文件。
实现步骤与功能1.学生信息管理–录入学生信息:包括学号、姓名、性别、年龄等信息;–修改学生信息:根据学号修改学生的基本信息;–删除学生信息:根据学号删除学生记录;–显示学生信息:显示当前已录入的学生信息。
2.课程信息管理–录入课程信息:包括课程名称、教师名称、学分等信息;–修改课程信息:根据课程名称修改课程的基本信息;–删除课程信息:根据课程名称删除课程记录;–显示课程信息:显示当前已录入的课程信息。
C语言课程设计--学生成绩管理系统

*题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作源代码:#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<string.h>struct Student{int cls;char nam[10];char num[10];int chinese;int english;int computer;int math;}stud1[100],stud2[100];{char a;while(a>'7'||a<'0'){system("cls");printf(" 欢迎使用学生成绩管理系统\n");printf(" 制作人:章建\n");printf("********************** 学生成绩管理系统************************\n");printf(" 1.输入学生成绩\n");printf(" 2.输出学生成绩\n");printf(" 3.查找并显示学生成绩\n");printf(" 4.按姓名查找,修改学生资料\n");printf(" 5.显示所有学生名单\n");printf(" 6.查找并删除学生信息\n");printf(" 7.从文件读取数据\n");printf(" 0.储存学生资料并退出系统\n");printf("********************************************************************* *\n");printf("请选择(0-7)\n");a=getchar();}return(a-'0');}/******************************************************************************int Input(Student stud[],int n) //输入数据(第一学期)。
c语言学生成绩管理系统课程设计

c语言学生成绩管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在开发学生成绩管理系统中的应用,掌握基本的程序结构和语法。
2. 学生能运用C语言实现对学生成绩的录入、查询、修改、删除和排序等功能。
3. 学生了解并掌握数组、结构体、文件操作等C语言核心知识在学生成绩管理系统中的运用。
技能目标:1. 学生能够独立设计并编写简单的C语言程序,实现学生成绩管理系统的基本功能。
2. 学生能够运用调试工具对程序进行调试,找出并修正程序中的错误。
3. 学生能够通过分析实际需求,提出合理的解决方案,提高编程解决问题的能力。
情感态度价值观目标:1. 学生通过学习C语言学生成绩管理系统,培养对计算机编程的兴趣和热情。
2. 学生在团队协作中,学会沟通、分享、合作,培养良好的团队精神和编程习惯。
3. 学生通过解决实际问题,体会编程带来的成就感,增强自信心,培养积极向上的学习态度。
课程性质:本课程属于实践性较强的课程,旨在让学生通过动手实践,掌握C 语言编程技能,并能够应用于实际问题的解决。
学生特点:学生已经具备一定的C语言基础,对编程有一定的了解,但对复杂程序的设计和开发尚处于起步阶段。
教学要求:结合学生特点和课程性质,本课程要求教师注重实践操作,引导学生通过动手实践掌握编程技能,并在实践中提高解决问题的能力。
同时,注重培养学生的团队协作和沟通能力,提高学生的综合素质。
通过本课程的学习,使学生能够达到上述课程目标,并为后续相关课程的学习打下坚实基础。
二、教学内容1. C语言基础知识回顾:包括数据类型、运算符、控制结构等,为后续课程打下基础。
(对应教材章节:1-3章)- 数据类型、变量定义- 运算符、表达式- 顺序结构、分支结构、循环结构2. 数组与函数:介绍数组的使用以及函数的定义与调用,为成绩管理系统提供数据存储和处理方法。
(对应教材章节:4-5章)- 一维数组、二维数组- 函数的定义、调用、参数传递- 递归函数3. 结构体与文件操作:讲解结构体的定义和使用,以及文件操作的基本方法,为成绩管理系统提供数据存储和读取功能。
C语言课程设计_学生成绩管理系统

部署步骤:安装 操作系统、安装 数据库、安装应 用软件等
维护方案:定期 备份数据、定期 检查系统、定期 更新软件等
系统维护方案
定期备份数据: 确保数据安全, 防止数据丢失
定期更新系统: 确保系统安全, 防止病毒和恶意 软件攻击
定期检查硬件: 确保硬件正常运 行,防止硬件故 障
定期培训员工: 确保员工熟悉系 统操作,提高工 作效率
06 系统测试与优化
单元测试
目的:验证单个模块或功能的正确 性
测试内容:功能测试、性能测试、 兼容性测试、安全性测试
添加标题
添加标题
添加标题
添加标题
测试方法:白盒测试、黑盒测试、 灰盒测试
测 试 工 具 : JU n it 、 Te s t NG 、 Selenium等
集成测试
目的:验证系统各模块间的接口和交互是否正常 测试方法:黑盒测试、白盒测试、灰盒测试 测试内容:功能测试、性能测试、安全测试、兼容性测试 测试工具:JMeter、Selenium、Appium等
系统性能优化
性能测试:使用自 动化工具进行性能 测试,如JMeter、 LoadRunner等
性能瓶颈分析:分 析性能测试结果, 找出性能瓶颈,如 数据库查询、网络 延迟等
性能优化:针对性 能瓶颈进行优化, 如优化数据库查询 、减少网络延迟等
性能监控:建立性 能监控体系,实时 监控系统性能,及 时发现和解决性能 问题
学生成绩管理系统是一个用 于管理学生成绩的软件系统
Байду номын сангаас
系统采用模块化设计,易于 维护和扩展
系统支持多种数据格式,如 Excel、CSV等,方便数据
导入和导出
系统目标
提高学生成绩管理效率 方便教师查询、统计和分析学生成绩 提供个性化学习建议和指导 促进家校沟通,提高家长对学生成绩的了解
学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计1. 介绍学生成绩管理系统是一种可以帮助学校或教育机构管理学生的成绩信息的软件系统。
它能够记录和管理学生的各门课程的成绩,提供成绩查询、统计分析以及生成报表的功能。
在这个项目中,我们将使用C语言来设计和实现一个简单的学生成绩管理系统。
2. 功能需求2.1 学生信息管理•添加学生信息:输入学生的学号、姓名、性别、年龄等基本信息,并将其保存到系统中。
•修改学生信息:根据学生的学号或姓名,找到对应的学生信息,并允许修改其基本信息。
•删除学生信息:根据学生的学号或姓名,找到对应的学生信息,并从系统中删除。
2.2 成绩管理•录入学生成绩:输入学生的学号或姓名,根据学号或姓名找到对应的学生信息,并记录其各门课程的成绩。
•查询学生成绩:根据学生的学号或姓名,找到对应的学生信息,并显示其各门课程的成绩。
•统计学生成绩:计算学生的总分、平均分等统计信息,并按照成绩排名进行排序并显示。
•生成成绩报表:将学生的成绩信息按照一定的格式输出到文件中,以方便查阅和打印。
2.3 界面设计•主菜单:显示系统的功能选项,包括学生信息管理、成绩管理、退出等选项。
•学生信息管理菜单:显示学生信息管理的功能选项,包括添加学生信息、修改学生信息、删除学生信息等选项。
•成绩管理菜单:显示成绩管理的功能选项,包括录入学生成绩、查询学生成绩、统计学生成绩、生成成绩报表等选项。
•输入提示:在功能选项中,根据需要给出相应的输入提示,以引导用户正确地操作系统。
3. 设计思路3.1 数据结构设计为了实现学生成绩管理系统,我们需要设计合适的数据结构来存储学生信息和成绩。
在这个项目中,我们可以使用结构体来表示学生信息,如下所示:struct Student {int id; // 学号char name[20]; // 姓名char gender[10]; // 性别int age; // 年龄float grades[5]; // 各门课程成绩};3.2 模块设计为了实现功能需求中的各项功能,我们需要设计相应的模块来实现。
c语言学生成绩管理系统课程设计

c语言学生成绩管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在开发学生成绩管理系统中的应用和重要性。
2. 学生掌握C语言中的基本数据类型、运算符、控制结构等基础知识,并能运用到成绩管理系统的设计与实现中。
3. 学生能掌握文件操作、数组、结构体等C语言高级特性,用以存储、查询和管理学生成绩。
技能目标:1. 学生能够运用所学知识,设计并编写一个简单的学生成绩管理系统。
2. 学生通过实际操作,培养解决问题的能力,包括分析需求、设计算法、编写程序和测试代码。
3. 学生通过小组合作,提升团队协作能力和项目管理的实践技能。
情感态度价值观目标:1. 学生在学习过程中培养对编程的兴趣和热情,增强对信息技术的认同感。
2. 学生通过解决实际问题,体会编程带来的成就感,激发进一步学习的动力。
3. 学生在团队合作中学会相互尊重、倾听和沟通,培养积极向上的情感态度。
课程性质:本课程是计算机科学与技术学科的一门实践性课程,强调理论与实践相结合,注重培养学生的实际操作能力和创新思维。
学生特点:高年级学生对C语言有一定的基础知识,具备一定的编程能力和问题解决能力。
教学要求:课程要求学生在理解基本概念的基础上,通过项目驱动的教学方式,动手实践,将理论知识转化为实际应用。
通过课程学习,学生应达到以上设定的知识、技能和情感态度价值观目标,为后续的深入学习打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. C语言基础知识回顾:数据类型、变量、运算符、控制结构等,确保学生具备扎实的编程基础。
2. 文件操作:文件打开、关闭、读写等操作,为成绩管理系统中的数据持久化提供支持。
3. 数组与字符串:数组的使用、字符串处理,用于存储和管理学生成绩信息。
4. 结构体:自定义结构体类型,用于表示学生信息和成绩。
5. 函数:模块化编程,提高代码可读性和可维护性。
6. 项目实践:设计并实现一个学生成绩管理系统,涵盖以下功能:- 录入学生信息- 修改学生信息- 删除学生信息- 查询学生信息- 成绩排名- 成绩统计分析7. 教学大纲:- 第一周:C语言基础知识回顾,数组与字符串操作- 第二周:结构体、函数,文件操作- 第三周:项目需求分析,设计系统框架- 第四周:编写代码,实现各功能模块- 第五周:系统测试,优化代码,撰写项目报告教学内容与教材关联性:本课程教学内容紧密结合教材中的相关章节,如数据类型、控制结构、文件操作等,确保学生所学知识的系统性和科学性。
c语言学生成绩管理系统课程设计

c语言学生成绩管理系统课程设计一、教学目标本课程的教学目标是使学生掌握C语言学生成绩管理系统的开发方法,培养学生的编程能力和实际应用能力。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据结构、函数、文件操作等编程知识,了解学生成绩管理系统的需求分析和系统设计方法。
2.技能目标:学生能够运用C语言独立完成一个学生成绩管理系统的设计和实现,具备一定的编程实践能力和问题解决能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,增强学生对技术改变生活的认识,培养学生的创新精神和团队合作意识。
二、教学内容教学内容以教材《C语言程序设计》为主线,结合实际应用需求,安排如下:1.C语言基础知识:数据类型、运算符、控制结构、数组、字符串等。
2.函数与模块化编程:函数定义与调用、局部变量与全局变量、递归、文件操作等。
3.数据结构:链表、栈、队列、树等。
4.学生成绩管理系统设计:需求分析、系统设计、模块划分、编程实现等。
5.调试与优化:调试方法、性能分析、代码优化等。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。
1.讲授法:用于传授C语言基本语法和编程原理,帮助学生建立扎实的理论基础。
2.案例分析法:通过分析实际案例,让学生了解学生成绩管理系统的需求分析和设计方法,提高学生的实际应用能力。
3.实验法:安排实验课,让学生动手编写代码,培养学生的编程实践能力和问题解决能力。
四、教学资源教学资源包括教材、多媒体资料、实验设备等,以支持教学内容和教学方法的实施,丰富学生的学习体验。
1.教材:《C语言程序设计》。
2.多媒体资料:教学PPT、视频教程、在线编程练习等。
3.实验设备:计算机、网络设备、编程环境等。
五、教学评估教学评估是检验学生学习成果的重要手段,主要包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
青岛农业大学课程设计报告题目:学生成绩管理系统姓名:田世强元成张斌学院:工程系专业:电子信息工程技术班级:2班学号:200806013 200806015 200806023指导教师:曹红波2010年9月16日六详细设计(各功能模块的具体实现算法——流程图) (3)一设计目的进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。
掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。
二课程设计的内容对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。
假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。
学习相关开发工具和应用软件,熟悉系统建设过程。
三课程设计的要求与数据1、用C语言实现系统;2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1) 每一条记录包括一个学生的学号、姓名、3门课成绩(2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。
)(3)、成绩信息显示浏览功能:完成全部学生记录的显示。
(4)、查询功能:完成按姓名查找学生记录,并显示。
(5)成绩信息的删除:按学号进行删除某学生的成绩.(6)、排序功能:按学生平均成绩进行排序。
(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!四课程设计应完成的工作(1)编写算法;(2)算法测试,并有具体的测试结果和结果分析;(3)撰写课程设计报告。
内容包括:1)封面扉页2)设计任务书3)目录4)总体设计方案(包括流程图)5)使用说明及运行实例(包括界面)6)成员设计内容简介7)项目源程序代码(注意注释的使用)8)指导教师评语五总体设计(包含几大功能模块)1、成绩录入功能2、成绩输出功能3、成绩查询功能4、删除模块5、排序功能6、统计功能7、退出系统六详细设计(各功能模块的具体实现算法——流程图)6.1各函数的功能和实现1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数void input(STUDENT *data, int *len)来实现此操作。
2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len):通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出成绩的平均分数、最高和最低分数。
3、成绩查询模块:可用void find(STUDENT *data, int len) 来实现。
找到就输出此学生全部信息。
4、删除模块:用函数void delete_item(STUDENT *data, int *len)来实现5、排序模块:用函数void sort(STUDENT *data, int len)来实现6、统计功能能:用函数void stat(STUDENT *data, int len) 来实现7、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
如图6.1图 6.1七调试分析(包含各模块的测试用例,及测试结果)7.1源程序#include <stdlib.h>#include <stdio.h>#include <string.h>#define MAXN 35#define MAX_NAME 256typedef struct student //学生信息{int no;char name[MAX_NAME];double Chinese;double math;double English;double mark_ave;double mark_tot;} STUDENT;/*-----------输入信息子程序---------*/void input(STUDENT *data, int *len){int no;putchar('\n');printf("%s\n", "请输入新的记录,如果需要退出当前菜单请输入-1.");printf("%s\n", "格式:\n学号\n");printf("%s\n", "姓名语文数学英语");putchar('\n');printf("如:\n");printf("1\n");printf("杨江彬93 95 89\n");scanf("%d", &no);while(no != -1) {data[*len].no = no;scanf("%s %lf %lf %lf", data[*len].name, &data[*len].Chinese, &data[*len].math,&data[*len].English);data[*len].mark_ave=(data[*len].Chinese+data[*len].math+data[*len].English)/3.0;data[*len].mark_tot=data[*len].Chinese+data[*len].math+data[*len].English;(*len)++;scanf("%d", &no);}/*---------------输出信息子程序---------------*/ void output(STUDENT *data, int len){int i;system("cls");printf("%8s", "学号");printf("%8s", "姓名");printf("%8s", "语文");printf("%8s", "数学");printf("%10s", "英语");printf("%12s", "平均分");printf("%10s", "总分");putchar('\n');for (i =0; i < 80; i++)putchar('=');putchar('\n');for (i = 0; i< len; i++){printf("%8d", data[i].no);printf("%8s", data[i].name);printf("%8.1lf", data[i].Chinese);printf("%8.1lf", data[i].math);printf("%10.1lf", data[i].English);printf("%12.1lf", data[i].mark_ave);printf("%10.1lf", data[i].mark_tot);putchar('\n');}for (i =0; i < 80; i++)putchar('=');putchar('\n');printf("按回车键继续.");getchar();getchar();}/*--------------排序子程序------------*/ void sort(STUDENT *data, int len){int i,j,k;STUDENT temp;for (i=0; i<len-1; i++) {for (k=i, j=i+1; j<len; j++)if (data[k].mark_ave > data[j].mark_ave) k=j;if (k != i) {temp = data[i];data[i] = data[k];data[k] = temp;}}}/*--------------------搜索子程序-----------------------*/void find(STUDENT *data, int len){int find_no, result ;int i;lab: result=0;printf("%s\n", "请输入需要查找的学生的学号,退出当前菜单请输入-1.");scanf("%d", &find_no);if (find_no == -1) return; /*exit the fine sub program*/while( data[result].no != find_no && result < len) result ++;if (result >= len ) {printf("%s\n", "未查询到相关信息");goto lab;}else {system("cls");printf("%s\n", "查询信息如下:");for (i =0; i < 80; i++)putchar('=');putchar('\n');printf("%8s", "学号");printf("%8s", "姓名");printf("%8s", "语文");printf("%8s", "数学");printf("%10s", "英语");printf("%12s", "平均分");printf("%10s", "总分");putchar('\n');printf("%8d", data[result].no);printf("%8s", data[result].name); printf("%8.1lf", data[result].Chinese); printf("%8.1lf", data[result].math); printf("%10.1lf", data[result].English); printf("%12.1lf", data[result].mark_ave); printf("%10.1lf", data[result].mark_tot); putchar('\n');for (i =0; i < 80; i++)putchar('=');putchar('\n');goto lab;}}/*-----------------插入子程序-------------*/void insert(STUDENT *data, int *len){int no, pos;double Chinese, math, English, mark_ave, mark_tot;int i;char name[MAX_NAME];lab: printf("%s\n", "输入新的记录,退出当前菜单请输入-1.");printf("%s\n", "格式:学号");printf("%s\n", " 姓名语文数学英语");scanf("%d", &no);if (no == -1) return;data[*len].no = no;scanf("%s %lf %lf %lf", name, &Chinese, &math, &English);mark_ave=(Chinese+math+English)/3.0;mark_tot=Chinese+math+English;pos = 0;while ((data[pos].mark_ave < mark_ave) && (pos < *len) )pos ++;for (i = *len-1; i >= pos; i--)data[i+1] = data[i];data[pos].no = no;strcpy(data[pos].name, name);data[pos].Chinese = Chinese;data[pos].math = math;data[pos].English = English;data[pos].mark_ave = mark_ave;data[pos].mark_tot = mark_tot;(*len)++;goto lab;}/*-------------删除子程序--------------*/void delete_item(STUDENT *data, int *len){int no, i, pos;lab: pos=0;printf("%s\n", "输入需要删除的学生的学号,退出当前菜单请输入-1.")scanf("%d", &no);if (no == -1) return;while( (data[pos].no != no) && (pos < *len) ) pos = pos +1;if (pos >= *len) {printf("%s\n", "未找到需要删除的学生");goto lab;}else {for (i = pos+1;i < *len; i++)data[i-1] = data[i];*len = *len -1;if (*len == 0) {printf("%s\n", "没有任何记录,请按回车键返回.");getchar();getchar();return;}goto lab;}}/*---------------统计子程序------------*/void stat(STUDENT *data, int len){int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0;int i;for (i = 0;i < len; i++) {if (data[i].mark_ave <=59) no_59++;else if (data[i].mark_ave <=69) no_69++;else if (data[i].mark_ave <=79) no_79++;else if (data[i].mark_ave <= 89) no_89++;else no_100++;}system("cls");for (i =0; i < 80; i++) putchar('='); putchar('\n');printf("%10s", "分数"); printf("%10s", "0--59"); printf("%10s", "60--69"); printf("%10s", "70--79"); printf("%10s", "80--89"); printf("%10s", "90--100");putchar('\n');putchar('\n');printf("%10s", "学生");printf("%10d", no_59);printf("%10d", no_69);printf("%10d", no_79);printf("%10d", no_89);printf("%10d", no_100);putchar('\n');for (i =0; i < 80; i++)putchar('=');putchar('\n');printf("按回车键返回");getchar();getchar();}/*---------------显示信息子程序------------*/void paint(){int i;system("cls");printf("%55s\n", "海都学院学生成绩管理系统\n");printf(" 制作者: \n");for (i = 0; i < 80; i++)putchar('=');putchar('\n');printf(" 1 输入信息 2 输出信息\n"); printf(" 3 按平均分排序 4 按学号查找\n"); printf(" 5 插入 6 按学号删除\n"); printf(" 7 按平均分输出统计信息8 保存到文件\n"); printf(" 0 退出\n");for (i = 0; i<= 79; i++)putchar('=');putchar('\n');printf("%s\n", "请输入各操作对应的序号:");}void save(STUDENT *data, int len)//将数据保存到文件{int i;FILE *fp;fp=fopen("成绩统计表.txt","w");fprintf(fp,"%8s", "学号");fprintf(fp,"%8s", "姓名");fprintf(fp,"%8s", "语文");fprintf(fp,"%8s", "数学");fprintf(fp,"%10s", "英语");fprintf(fp,"%12s", "平均分");fprintf(fp,"%10s\n", "总分");fprintf(fp,"===================================================== ===================\n");putchar('\n');for (i = 0; i< len; i++){fprintf(fp,"%8d", data[i].no);fprintf(fp,"%8s", data[i].name);fprintf(fp,"%8.1lf", data[i].Chinese);fprintf(fp,"%8.1lf", data[i].math);fprintf(fp,"%10.1lf", data[i].English);fprintf(fp,"%12.1lf", data[i].mark_ave);fprintf(fp,"%10.1lf\n", data[i].mark_tot);}fprintf(fp,"===================================================== ===================\n");fclose(fp);printf("文件已保存到\"成绩统计表.txt\"");getchar();getchar();}/*-----------主程序--------------*/ void main(){STUDENT data[MAXN];int len = 0;char ctrl_ch;paint();scanf("%c", &ctrl_ch);while (ctrl_ch != '0') {; case '1':input(data, &len);break;case '2':output(data, len);break;case '3':sort(data, len);break;case '4':find(data, len);break;case '5':insert(data, &len);break;case '6':delete_item(data, &len);break;case '7':stat(data, len);break;case '8':save(data, len);break;default:if (ctrl_ch != '\n') printf("%s\n", "输入错误!");break;}if (ctrl_ch != '\n') paint();scanf("%c", &ctrl_ch);}}7.2调试与测试7.2.1算法调试过程中出现的问题及解决方法(以下为其中一例)--------------------Configuration: Cpp1 - Win32 Debug--------------------Compiling...Cpp1.cppC:\Documents and Settings\Administrator\桌面\Cpp1.cpp(9) : error C2065: 'MAX_MAME' : undeclared identifierC:\Documents and Settings\Administrator\桌面\Cpp1.cpp(9) : error C2057: expected constant expressionC:\Documents and Settings\Administrator\桌面\Cpp1.cpp(10) : error C2229: struct 'student' has an illegal zero-sized array执行cl.exe 时出错.Cpp1.obj - 1 error(s), 0 warning(s)解决方法:把“MANE”改成“NAME”---拼写错误。