一、课程设计题目:学生成绩管理 二、需求分析 给出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("------------------------------------------...