课题为学生成绩管理的C语言课程设计
C语言课程设计---班级成绩管理系统

课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业班级学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日目录一、引言 (1)二、总体设计 (2)三、详细设计 (4)四、问题分析及总结 (13)五、参考文献 (15)六、附件 (15)一、设计内容与设计要求1. 设计内容:班级成绩管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:1)用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。
2) 建立一个班级学生成绩数据库,文件名为bjcjk.txt,并从该文件中读取数据;3) 班级成绩管理系统应能提供以下功能:(1)主菜单界面设计。
通过提示用户输入一个数字选项,调用相应的功能函数。
(2)学生成绩显示:完成班级全部学生成绩的显示,显示时按表格的形式,且应有表头;(3)学生成绩追加:完成新增一个(或多个)学生的成绩记录,要求在追加过程中有相应的提示信息,完成追加后能重新计算学生平均成绩并显示;(4)学生成绩修改:要求能按学号和按姓名两种定位方式,且可以按用户要求修改记录中除学号和姓名以外的指定内容,并重新计算学生的平均成绩;(5)学生成绩信息的查询;要示系统能按学号、按姓名查询以及能查总分在某一指定范围内的学生信息,且能显示符合条件的所的记录,若所需查询的信息不存在时应有相应的提示信息。
C语言课程设计报告学生成绩管理系统(广工)

一、课程设计题目:学生成绩管理二、需求分析给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名、性别以及各科成绩组成。
对学生的考试成绩进行有关统计:按总数高低次序,打印出名次表,分数相同的为同一名次;按名次打印出每个学生的学号、姓名、总分以及各科成绩,并打印统计表。
三、概要设计程序要有的功能:1。
输入记录2。
用指定格式显示全部记录3。
根据姓名查找记录4。
根据姓名删除记录5. 保存记录到文件6。
按序号显示记录7。
按姓名由小到大的顺序排序程序运行当中,通过选择对应的功能序号来实现所需功能。
对输入的数据要有事先的分析,如果用户输入的数据与实际不相符如输入成绩的数值为负,则程序应输出相应的提示:“您输入的数据有误,请核实!”。
再者就是,当再输入完相应的数据后,程序作出相应的提示,询问用户是否要保存数据。
在排列学生成绩时候,如果出现成绩相同的情况,程序自动作出处理。
最后,在程序可以正确运行的基础上,再增加一些功能,如在排列的时候,自动输出最高分与最低分。
与及格成绩作比较,输出及格人数等相关信息。
流程图:四、详细设计源程序:#include ”stdio。
h”#include "stdlib.h”#include "string。
h”int shoudsave=0;/* */struct student{char num[10];/*学号*/char name[20];char sex[4];int cgrade;int mgrade;int egrade;int totle;int ave;char neartime[10];/*最近更新时间*/};typedef struct node{struct student data;struct node *next;}Node,*Link;void menu(){printf(”*********************************主菜单*****************************************”);printf(”\t1登记学生资料\t\t\t\t\t2删除学生资料\n”);printf(”\t3查询学生资料\t\t\t\t\t4修改学生资料\n”);printf(”\t5保存学生资料\t\t\t\t\t0退出系统\n”);printf(”********************************************************************************\n");}void printstart(){printf(”-————---—-——————--——----———-—-—-————--————--—--—--—-————---—-—————--———\n”);}void Wrong(){printf(”\n=====>提示:输入错误!\n”);}void Nofind(){printf("\n=====〉提示:没有找到该学生!\n");}void printc()/*本函数用于输出中文*/printf(”学号\t 姓名性别英语成绩数学成绩C语言成绩总分平均分\n”); }void printe(Node *p)/* 本函数用于输出英文*/{printf("%—12s%s\t%s\t%d\t%d\t%d\t %d\t %d\n",p—〉data。
c语言大作业学生成绩管理系统

学年论文(学生成绩管理系统)题目: 学生成绩管理系统作者:所在学院: 专业年级:指导教师:职称:2015 年 5 月27 日目录引言 (2)第1章程序说明和基本功能 (3)1.1程序说明 (3)1。
2整体功能 (3)1.3测试程序 (4)1。
4课程设计的总体设计(包含的功能模块) (4)1.5各模块(函数)的功能介绍,设计描述 (4)1.6数组设计描述 (5)第2章系统总体设计 (5)2.1概要设计 (6)2.2主函数 (6)2。
3输入成绩 (7)2。
4查询成绩 (8)2.5保存功能 (9)2。
6退出功能 (10)第3章实验结果 (10)3。
1录入成绩 (10)3.2查询成绩 (11)3。
3成绩保存 (11)第4章程序运行结果截图 (12)程序源代码 (14)总结 (19)参考文献………………………………………………………………………………………………………………………………….。
20基本信息引言管理信息系统正在向着网络化、智能化和集成化等趋势发展。
学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。
它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要.学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,查询,保存以及退出几方面的功能,是现实问题的迫切要求。
本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化。
达到提高学生成绩管理效率的目的。
与传统管理方法相比有明显的优点:查找方便,可靠性高,保密性好,成本低.彻底改变了以前繁杂的管理模式,实现全面的、相对集中的、职能化的信息综合管理。
提高了学生档案管理的效率和准确性,能够合理的安排时间,学生能够尽快的知道自己的考试成绩。
同时,学生管理系统的应用也为今天的教育在未来市场的竞争力有所提高。
学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件.它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。
github学生成绩管理系统c语言

Github学生成绩管理系统C语言设计与实现一、前言在当今信息技术飞速发展的时代,计算机技术已经渗透到了各行各业中,教育行业也不例外。
在学生成绩管理方面,传统的纸质成绩册已经无法满足管理和查询的需要,因此需要一个更加高效、便捷的学生成绩管理系统。
Github作为一个开源的代码托管评台,更是为该需求提供了一个很好的解决方案。
二、系统功能设计1. 学生信息管理(1) 录入学生信息:包括学生尊称、学号、性别、班级等基本信息。
(2) 修改学生信息:允许对学生的基本信息进行修改。
(3) 删除学生信息:可以将学生的信息从系统中删除。
2. 成绩管理(1) 录入成绩:输入学生的各科成绩,包括语文、数学、英语等。
(2) 修改成绩:对学生的成绩进行修改,确保数据的准确性。
(3) 查询成绩:可以根据学生的学号或尊称查询学生成绩。
3. 数据统计(1) 班级成绩统计:对某次考试的班级成绩进行统计,并进行图表展示。
(2) 学生成绩排名:根据学生成绩进行排名,并列出前几名和末几名学生。
4. 权限管理(1) 管理员权限:可以进行学生信息和成绩的增删改查操作。
(2) 教师权限:只能进行学生信息和成绩的查询操作。
三、系统架构设计1. 界面设计(1) 登入界面:管理员和教师输入用户名和密码进行登入。
(2) 主界面:管理员和教师登入后进入的主界面,可以选择相应的功能模块。
(3) 学生信息管理界面:管理员可以对学生信息进行增删改查操作。
(4) 成绩管理界面:管理员可以对学生成绩进行增删改查操作。
2. 数据存储(1) 学生信息数据:存储学生的尊称、学号、性别、班级等信息。
(2) 成绩数据:存储学生的各科成绩和考试日期。
3. 业务逻辑(1) 学生信息管理逻辑:包括录入、修改、删除和查询学生信息的操作逻辑。
(2) 成绩管理逻辑:包括录入、修改、删除和查询成绩的操作逻辑。
四、系统实现1. 开发环境(1) 操作系统:Windows、Linux等。
C语言项目案例分析

C语言项目案例分析C语言项目案例:学生成绩管理系统概述:学生成绩管理系统是一个用于管理学生信息和成绩的软件系统。
该系统可以实现添加、删除、修改学生信息和成绩的功能,并且可以按照学生的学号或者姓名进行查找和排序。
功能要求:1. 学生信息管理:可以添加、删除、修改学生的基本信息,包括学号、姓名、性别、年龄等。
2. 成绩管理:可以添加、删除、修改学生的各科成绩,包括语文、数学、英语等。
3. 查找功能:可以根据学生的学号或者姓名查找学生信息和成绩。
4. 排序功能:可以按照学号、总成绩等排序学生信息和成绩。
设计思路:1. 数据结构设计:采用结构体数组来存储学生信息和成绩,结构体中包含学号、姓名、性别、年龄和各科成绩等字段。
2. 功能模块划分:将学生信息管理、成绩管理、查找功能和排序功能分别实现为不同的函数模块,通过调用这些函数来完成相应的功能。
3. 用户界面设计:通过命令行界面来实现用户与系统的交互,可以通过输入数字来选择相应的功能菜单,并根据用户的输入来执行相应的功能。
代码实现:以下是一个简单的学生成绩管理系统的代码示例:#include <stdio.h>#include <string.h>// 学生结构体struct student {int id;char name[20];int age;float chinese;float math;float english;};// 添加学生信息void addStudent(struct student* stu) {printf("请输入学生的学号:");scanf("%d", &stu->id);printf("请输入学生的姓名:");scanf("%s", stu->name);printf("请输入学生的年龄:");scanf("%d", &stu->age);printf("请输入学生的语文成绩:");scanf("%f", &stu->chinese);printf("请输入学生的数学成绩:");scanf("%f", &stu->math);printf("请输入学生的英语成绩:");scanf("%f", &stu->english);}// 删除学生信息void deleteStudent(struct student* stu) { stu->id = 0;strcpy(stu->name, "");stu->age = 0;stu->chinese = 0.0;stu->math = 0.0;stu->english = 0.0;}// 修改学生信息void modifyStudent(struct student* stu) { printf("请输入学生的学号:");scanf("%d", &stu->id);printf("请输入学生的姓名:");scanf("%s", stu->name);printf("请输入学生的年龄:");scanf("%d", &stu->age);printf("请输入学生的语文成绩:"); scanf("%f", &stu->chinese);printf("请输入学生的数学成绩:"); scanf("%f", &stu->math);printf("请输入学生的英语成绩:"); scanf("%f", &stu->english);}// 查找学生信息void findStudent(struct student* stu, int id) {if (stu->id == id) {printf("学号:%d,姓名:%s,年龄:%d,语文成绩:%.1f,数学成绩:%.1f,英语成绩:%.1f\n", stu->id, stu->name, stu->age, stu->chinese, stu->math, stu->english);}}// 排序学生信息void sortStudents(struct student* stu, int count) {// 冒泡排序for (int i = 0; i < count - 1; i++) {for (int j = 0; j < count - i - 1; j++) {if (stu[j].id > stu[j + 1].id) {struct student temp = stu[j];stu[j] = stu[j + 1];stu[j + 1] = temp;}}}}int main() {int choice;int count = 0;struct student students[100];do {printf("学生成绩管理系统\n");printf("1. 添加学生信息\n");printf("2. 删除学生信息\n");printf("3. 修改学生信息\n");printf("4. 查找学生信息\n");printf("5. 排序学生信息\n");printf("0. 退出\n");printf("请选择操作:");scanf("%d", &choice);switch (choice) {case 1:addStudent(&students[count]);count++;break;case 2:deleteStudent(&students[count - 1]);count--;break;case 3:modifyStudent(&students[count - 1]); break;case 4: {int id;printf("请输入要查找的学生学号:"); scanf("%d", &id);for (int i = 0; i < count; i++) {findStudent(&students[i], id);}break;}case 5:sortStudents(students, count);break;case 0:break;default:printf("请输入正确的操作!\n");break;}} while (choice != 0);return 0;}总结:通过以上的案例分析,可以看出,C语言可以实现一些简单的项目,例如学生成绩管理系统。
C语言编程实验:学生成绩管理系统

计算机编程课程设计题目:学生成绩管理系统班级:2008级通信工程(1)班姓名:学号:指导教师完成时间:2009年7月1日一、设计目的进一步加深、巩固学生所学专业课程(《C语言》)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。
掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广大同学的潜力,使他们通过本次课程设计而得到全面的锻炼。
二、系统分析随着科学技术的不断发展,对人们的工作水平要求也越来越高,然而计算机就成了帮助人们解决这个问题的工具,熟练的运用计算机,它能为人们解决许多工作上的难题。
对与一个管理人员来说,快而迅速的了解各种信息是很关键的。
使用计算机在C 语言环境下编写相关的管理系统就能达到对相关信息的录入、显示;对记录的查询极其修改等目的。
同时,这个系统与*-*管理系统都有相似之处。
基于同样的C语言环境,对其提供的头文件*h (stdio.h ,stdlib.h,string.h,malloc.h,mem.h,ctype.h,conio.h等)的不同组合,能为我们解决许许多多的问题,因此,用它来编写成绩管理管理系统是可行的。
三、成绩管理系统主要功能1. 输入记录2. 用指定格式显示全部记录3. 根据姓名查找记录4. 根据姓名删除记录5. 保存记录到文件6. 按序号显示记录7. 按姓名由小到大的顺序排序四、系统框图五、系统流程图六、界面设计此系统界面采用图形和数字化菜单设计。
主界面设计如下:*********************************************************欢迎进入学生成绩管理系统*********************** *MENU* *********************1. 输入学生成绩记录2. 显示学生成绩3. 排序4. 删除记录5. 按姓名查询成绩6. 插入记录7. 保存8. 读取9. 退出六、用到的头文件及自定义的函数1、头文件#include <stdio.h>#include<dos.h>#include<stdlib.h> /*其它说明*/#include<string.h> /*字符串函数*/#include<mem.h> /*内存操作函数*/#include<ctype.h> /*字符操作函数*/#include<alloc.h> /*动态地址分配函数*/2、自定义的功能函数T UDENT *init(); /*初始化函数*/int menu_select(); /*菜单函数*/STUDENT *create(); /*创建链表*/void print(STUDENT *head); /* 显示全部记录函数*/ void search(STUDENT *head); /*查找记录函数*/STUDENT *delete(STUDENT *head); /*删除记录函数*/STUDENT *sort(STUDENT *head); /*排序函数*/STUDENT *insert(STUDENT *head,STUDENT *new);/*插入记录函数*/void save(STUDENT *head); /*保存文件函数*/STUDENT *load(); /*读文件函数*/有关函数的具体定义以及用法此处不再啰嗦,参看下面的程序代码。
c语言设计实验报告
c语言设计实验报告C语言设计实验报告引言:在计算机科学领域中,C语言是一种广泛使用的编程语言,被广泛应用于软件开发和系统编程。
本实验旨在通过设计一个简单的C语言程序,探索C语言的基本语法和编程概念,并加深对计算机编程的理解。
实验目标:通过设计一个简单的C语言程序,实践以下目标:1. 熟悉C语言的基本语法和数据类型;2. 掌握C语言的流程控制语句,如条件语句和循环语句;3. 理解C语言中的函数和变量的概念;4. 学会使用C语言的输入和输出函数。
实验过程:1. 设计程序功能在本次实验中,我们选择设计一个简单的学生成绩管理程序。
该程序能够根据输入的学生姓名和成绩,输出学生的姓名和对应的成绩,并计算平均成绩。
2. 编写程序代码我们使用C语言编写程序代码,首先定义一个结构体类型来表示学生的姓名和成绩。
然后,通过循环输入学生的姓名和成绩,并将其存储在一个数组中。
最后,计算平均成绩并输出结果。
```c#include <stdio.h>struct Student {char name[20];int score;};int main() {int num;printf("请输入学生人数:");scanf("%d", &num);struct Student students[num];int totalScore = 0;for (int i = 0; i < num; i++) {printf("请输入第%d个学生的姓名:", i + 1);scanf("%s", students[i].name);printf("请输入第%d个学生的成绩:", i + 1);scanf("%d", &students[i].score);totalScore += students[i].score;}float averageScore = (float)totalScore / num;printf("学生姓名\t成绩\n");for (int i = 0; i < num; i++) {printf("%s\t\t%d\n", students[i].name, students[i].score); }printf("平均成绩:%f\n", averageScore);return 0;}```3. 编译和运行程序使用C语言的编译器,如gcc,将程序代码编译成可执行文件,并运行该文件。
C语言 学生成绩管理系统实验报告
HUNAN UNIVERSITY程序设计训练报告题目学生成绩管理系统学生姓名学生学号专业班级指导老师湖南大学程序设计训练报告目录一程序功能简介…………………………………………………………………………….。
.。
.3二本人完成的主要工作……………………………………………………………………..。
3三设计方案……………………………………………………………………………。
...。
.。
3 1)设计分析……………………………………………………………………………。
.。
.。
.。
32)模块的功能及程序分析…………………………………………………………....。
43)核心算法流程图……………………………………………………………………。
...。
74) 核心源程序模块………………………………………………………………………。
.85)操作方法简介………………………………………………………………………….。
86)实验结果……………………………………………………………………………。
.。
.。
.。
.98)设计体会…………………………………………………………………………….。
11四附录……………………………………………………………………………。
..。
.。
12 一、程序功能简介;本程序作为一个学生成绩管理系统,用户可以首先使用管理员模式初始化该系统.初始化完成之后,用户可以选择使用成绩记录人模式进入系统,对学生成绩进行记录。
系统自动储存所记录的学生成绩,然后用户可根据不同需要来选择不同的功能来使用程序,其中包括成绩查询与增减,成绩排序,成绩分析等功能. 二、本人完成的主要工作;程序设计分析,绘制程序流程图,写出大体结构算法以及各个核心算法模块,写出核心源程序,对源程序进行算法优化,对源代码进行多次试验验证其正确性,完成源代码的测试以及代码书写规范检测。
三、设计方案;1)设计分析;首先拿到这个题目,我就开始思考如何将这个看似简单的系统做的较为完善,而不是简简单单的学生成绩管理系统,学生管理系统自然是这个题目的核心,从中发散思维,我想到了几个比较细小的地方。
学生成绩管理系统
学生成绩管理系统C语言课程设计(实训)报告信息科技学院学院_电子信息学院_ 专业电子信息工程班级_ _ 学号姓名课题_C语言课程设计_指导教师__ __ 报告成绩______________日期:2009年7月7日学生成绩管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。
本程序中涉及结构体、单链表、文件等方面的知识。
通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。
1、问题定义创建一个学生成绩管理系统。
假设系统中每个学生记录只包括学号、姓名、数学成绩、英语成绩、C语言成绩、总分、平均分、等信息。
程序的运行效果如下图所示,选择任意菜单后,实现相应功能。
=================主菜单==================== == 1 输入学生信息== == 2 删除学生信息== == 3 查询学生信息== == 4 修改学生信息== == 5 显示学生信息== == 6 统计学生信息== == 7 排序学生信息== == 8 保存学生信息== == 0 退出系统== ============================================ 图1.1 学生成绩管理系统功能需求在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。
2、系统设计2.1 总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。
需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。
可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
本成绩管理系统要求采用单链表实现,如图2.1所示,它由如下五大功能模块组成:输入记录模块。
学生成绩管理系统实验报告
学生成绩管理系统实验报告《高级语言程序设计》课程设计实验报告题目:学生成绩管理系统专业:班级:姓名:成绩:指导教师:完成日期:2008年06月24日一、目的1(进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或N-S图表示算法;6、掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想.(1)(系统功能与分析(填写你所设计的菜单及流程图)。
(2).数据结构(3)。
模块设计根据功能需要:源文件函数名功能(3)总体设计思想:(4)调试过程:测试数据及结果,出现了哪些问题,如何修改的(5)程序有待改进的地方及本次实习的收获和建议(7)源程序清单(主要代码)最佳答案C语言课程设计任务书一、题目: 学生成绩管理二、目的与要求1。
目的:(1)基本掌握面向过程程序设计的基本思路和方法;(2)达到熟练掌握C语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题 2. 要求基本要求:1。
要求利用C语言面向过程的编程思想来完成系统的设计; 2。
突出C语言的函数特征,以多个函数实现每一个子功能; 3。
画出功能模块图;4。
进行简单界面设计,能够实现友好的交互;5。
具有清晰的程序流程图和数据结构的详细定义;6。
熟练掌握C语言对文件的各种操作。
创新要求:在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同三、信息描述输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。
编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。
要求:1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。
3)按实验报告电子模板格式填写实验内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include "stdio.h"#include "string.h"#include "math.h"#include "stdlib.h"int size=0;struct STU{long int num;char name[20];int Chi;int Math;int Eng;int Hig;int sum;int ave;int mc;};struct STU s[100],t;struct STU tt[100];int i=0,m=0,j,k=0;void Read() /*读取数据*/{FILE *fp;fp=fopen("D:\\材料C语言课程设计\\x.txt","r");while( fscanf(fp,"%ld\n%s\n%d\n%d\n%d\n",&s[size].num,s[size].name,&s[size] .Chi,&s[size].Math,&s[size].Eng)!=EOF)size++;fclose(fp);}void Disp() /*显示数据*/{int i;printf("----学生成绩管理----\n");printf ("学号| 姓名| 语文| 数学| 英语\n");for(i=0;i<size;i++)printf("%-12ld%-10s%-9d%-9d%-9d\n\n",s[i].num,s[i].name,s[i].Chi,s[i].Math,s[i].E ng);printf("--------------------------------------\n");printf("%d",size);}void Count() /*数据求和*/{printf("---------学生成绩管理--------\n");printf ("学号| 姓名| 语文| 数学| 英语| 总分\n");for(i=0;i<size;i++){s[i].sum=s[i].Chi+s[i].Math+s[i].Eng;printf("%-12ld%-10s%-9d%-9d%-9d%-d\n\n",s[i].num,s[i].name,s[i].Chi,s[i].Math,s[ i].Eng,s[i].sum);}printf("----------------------------------------------- \n");printf("%d",size);}void Aver() /*平均成绩*/{printf("---------学生成绩管理--------\n");printf ("学号| 姓名| 语文| 数学| 英语| 平均分\n");for(i=0;i<size;i++){s[i].ave=(s[i].Chi+s[i].Math+s[i].Eng)/3;printf("%-12ld%-10s%-9d%-9d%-9d%-d\n\n",s[i].num,s[i].name,s[i].Chi,s[i].Ma th,s[i].Eng,s[i].ave);}printf("----------------------------------------------- \n");printf("%d",size);}void High() /*单科成绩*/{ int d;printf("\n\n请输入你的选择: ");printf("( 1:语文.... 2:数学....3:英语.... )\n");scanf("%d",&d);switch(d){case 1:for(j=0;j<=size-1;j++)for(k=0;k<=size-j-1;k++)if(s[k].Chi<s[k+1].Chi){ tt[0]=s[k];s[k]=s[k+1];s[k+1]=tt[0];}printf("---------学生成绩管理--------\n");printf ("学号| 姓名| 语文| 名次\n");for(k=0;k<size;k++)printf("%-12ld%-10s%-9d%-d\n\n",s[k].num,s[k].name,s[k].Chi,k+1); break;case 2:for(j=0;j<=size-1;j++)for(k=0;k<=size-j-1;k++)if(s[k].Math<s[k+1].Math){ tt[0]=s[k];s[k]=s[k+1];s[k+1]=tt[0];}printf("---------学生成绩管理--------\n");printf ("学号| 姓名| 数学| 名次\n");for(k=0;k<size;k++)printf("%-12ld%-10s%-9d%-d\n\n",s[k].num,s[k].name,s[k].Math,k+1);break;case 3:for(j=0;j<=size-1;j++)for(k=0;k<=size-j-1;k++)if(s[k].Math<s[k+1].Math){ tt[0]=s[k];s[k]=s[k+1];s[k+1]=tt[0];}printf("---------学生成绩管理--------\n");printf ("学号| 姓名| 英语| 名次\n");for(k=0;k<size;k++)printf("%-12ld%-10s%-9d%-d\n\n",s[k].num,s[k].name,s[k].Eng,k+1); break;}}void Sort() /*总分排名*/{for(j=0;j<=size-1;j++)for(k=0;k<=size-j-1;k++)if(s[k].sum<s[k+1].sum){ tt[0]=s[k];s[k]=s[k+1];s[k+1]=tt[0];}printf("------------学生成绩管理------------\n");printf ("学号| 姓名| 语文| 数学| 英语| 总分| 名次\n");for(k=0;k<size;k++)printf("%-12ld%-10s%-9d%-9d%-9d%-9d%-d\n\n",s[k].num,s[k].name,s[k].Chi,s[k]. Math,s[k].Eng,s[k].sum,k+1);printf("----------------------------------------------- \n");printf("%d",size);}void Append() /*追加数据*/{printf("请输入学生的信息\n学号:");scanf("%ld",&s[size].num);printf("姓名:");scanf("%s",&s[size].name);printf("语文:");scanf("%d",&s[size].Chi);printf("数学:");scanf("%d",&s[size].Math);printf("英语:");scanf("%d",&s[size].Eng);s[size].sum=s[size].Chi+s[size].Math+s[size].Eng;size++;for(j=0;j<size;j++)for(k=0;k<=size-j-1;k++)if(s[k].sum<s[k+1].sum){ tt[0]=s[k];s[k]=s[k+1];s[k+1]=tt[0];}}void Modify() /*修改数据*/{int j,i,d,h;long tm;{ printf("请输入学生的学号:\n");scanf("%d",&tm);for(i=0;i<size;i++)if(s[i].num==tm)j=i;}printf("\n\n请输入你的选择: ");printf("( 1:语文.... 2:数学....3:英语.... )\n");scanf("%d",&d);switch(d){case 1:printf("请输入语文成绩:");scanf("%d",&h);s[j].Chi=h;break;case 2:printf("请输入数学成绩:");scanf("%d",&h);s[j].Math=h;break;case 3:printf("请输入英语成绩:");scanf("%d",&h);s[j].Eng=h;break;}}void Query() /*查询数据*/{int t,i,n=0;printf("请输入学生的学号:\n");scanf("%d",&t);for(i=0;i<size;i++){{s[i].sum=s[i].Chi+s[i].Math+s[i].Eng;}if(s[i].num==t){printf("\n\n学号为%d的学生成绩信息为: ",t);printf ("\n学号| 姓名| 语文| 数学| 英语| 总分| 名次\n");printf("%-12ld%-10s%-9d%-9d%-9d%-9d%-d\n\n",s[i].num,s[i].name,s[i].Chi,s[i].M ath,s[i].Eng,s[i].sum,i+1);n++;}}if(!n)printf("\n 您输入的学号有误!\n");}void Save() /*保存修改*/{ FILE *fp;fp=fopen("x.txt","w");for(i=0;i<size;i++)fprintf(fp,"%ld\n%s\n%d\n%d\n%d\n",s[i].num,s[i].name,s[i].Chi,s[i].Math,s[i].E ng);fclose(fp);}void main(){int choice;menu:printf("\t\t\t*****欢迎登录学生成绩管理系统*****\n ");printf("\n\t\t\t 1.读取系统文件\n");printf("\t\t\t 2.显示学生成绩\n");printf("\t\t\t 3.学生成绩及总分\n");printf("\t\t\t 4.总分成绩及排名\n");printf("\t\t\t 5.单科成绩排名\n");printf("\t\t\t 6.学生平均成绩\n");printf("\t\t\t 7.增添学生成绩\n");printf("\t\t\t 8.查询学生成绩\n");printf("\t\t\t 9.修改成绩信息\n");printf("\t\t\t10.保存成绩信息\n");printf("\t\t\t 0.退出管理系统\n\n");printf("\t\t\t请输入数字选择(0~10)");scanf("%d",&choice);switch(choice){case 1:Read();break;case 2:Disp();break;case 3:Count();break;case 4:Sort();break;case 5:High();break;case 6:Aver();break;case 7:Append();break;case 8:Query();break;case 9:Modify();break;case 10:Save();break;case 0:exit(0);}if(choice<0||choice>10)printf("\n\n\n\t\t请再次选择!\n\n"); goto menu;}。