对学生基本信息,包括学号、姓名、至少三门课成绩。学生基本信息录入;学生基本信息的输出;按学号查询学生信息(学号、姓名、成绩);按学号修改某学生信息并输出;计算平均成绩(找出最大值、最小值);删除某学生信息;添加某学生信息输出平均分大于80分的同学信息;根据总成绩或平均成绩综合排名;2、实验要求a、用数组存储学生信息;b、基本功能用函数实现; c、选做实验内容中6项功能,多者不限; d、程序能正确执行、输入与输出有必要的提示信息、界面美观;e、用菜单调用。3、最后结果输出。要求:输出格式要界面直观、清晰大方、格式规范。四、实验结果及分析1、实验运行过程及分析叙述每个函数的功能及实现过程,如:函数名称、返回类型、形式参数说明、定义的什么变量,主要使用什么语句或函数,可以粘贴重要语句行(不要全部粘贴),并加以解释说明。
3条回答 默认 最新
CSDN专家-赖老师(软件之家) 2021-06-04 10:29关注#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> typedef struct _Student { char name[20]; int age; int stuNum; int Cscore; int Mscore; int Escore; int Gscore; double AvgScore; }Student; //定义链表的结点 typedef struct _Node { Student stu;//学生-数据域 struct _Node* pNext;//指向下一个结点的指针 }Node; //定义头结点 Node* g_pHead = NULL; void modifyStudent(){ } void printStudent(){ } void saveStudent(){ } void readStudent(){ } int countStudent(){ } Node* findStudent(){ } void deleteStudent(){ } //录入学生信息 void inputStudent() { //创建一个结点-动态开辟 Node* pNewNode = (Node*)malloc(sizeof(Node)); pNewNode->pNext = NULL; //头插法 if (g_pHead == NULL)//原来什么也没有 { g_pHead = pNewNode; } else { pNewNode->pNext = g_pHead; g_pHead = pNewNode; } printf("请输入学生姓名:\n"); scanf("%s", pNewNode->stu.name);//name是数组名,不用加& printf("请输入学生年龄:\n"); scanf("%d", &pNewNode->stu.age); printf("请输入学生的学号:\n"); scanf("%d", &pNewNode->stu.stuNum); printf("请输入学生的C成绩:\n"); scanf("%d", &pNewNode->stu.Cscore); printf("请输入学生的数学成绩:\n"); scanf("%d", &pNewNode->stu.Mscore); printf("请输入学生的英语成绩:\n"); scanf("%d", &pNewNode->stu.Escore); pNewNode->stu.Gscore = pNewNode->stu.Cscore + pNewNode->stu.Mscore + pNewNode->stu.Escore; pNewNode->stu.AvgScore = pNewNode->stu.Gscore / 3.0; printf("录入完成!\n"); system("pause"); system("cls");//清屏 } //主菜单 void mainMenu() { printf("*\t学生成绩管理系统\t*\n"); printf("——————————————------\n"); printf("*\t1.输入学生信息\t\t*\n"); printf("*\t2.显示学生信息\t\t*\n"); printf("*\t3.保存学生信息\t\t*\n"); printf("*\t4.读取学生信息\t\t*\n"); printf("*\t5.统计记录\t\t*\n"); printf("*\t6.查找学生信息\t\t*\n"); printf("*\t7.更新学生信息\t\t*\n"); printf("*\t8.删除学生信息\t\t*\n"); printf("*\t9.学生成绩排序\t\t*\n"); printf("*\t0.退出系统\t\t*\n"); printf("——————————————------\n"); } //键盘输入 void keyDown() { char ch = _getch(); switch (ch) { case '1'://录入 inputStudent(); break; case '2'://打印 printStudent(); break; case '3'://保存 saveStudent(); break; case '4'://读取 readStudent(); break; case '5'://统计 printf("学生总人数为:%d\n", countStudent()); system("pause"); system("cls"); break; case '6'://查找 { Node* p = findStudent(); if (p != NULL) { printf("学号:%d\t姓名:%s\t年龄:%d\tC成绩:%d\t数学成绩:%d\t英语成绩:%d\n", p->stu.stuNum, p->stu.name, p->stu.age, p->stu.Cscore, p->stu.Mscore, p->stu.Escore); } else { printf("没有找到该学生。\n"); } system("pause"); system("cls"); break; } case '7'://修改 modifyStudent(); break; case '8'://删除 deleteStudent(); break; case '9'://排序 case '0'://退出 exit(0); break; default: printf("输入错误,请重新输入。\n"); system("pause"); system("cls"); break; } } int main(void) { while (1) { mainMenu(); keyDown(); } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 2无用