求助:数据结构实验报告(c语言版)

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:58:54
实验题目:学生成绩管理
【实验内容与要求】

学生成绩管理是学校教务管理的重要组成部分,其处理信息量很大,本实验是对学生的成绩管理作一个简单的模拟,用菜单选择操作方式完成下列功能:

(1)学生成绩;

(2)查询学生成绩;

(3)插入学生成绩;

(4)删除学生成绩。

【知识要点】

本实验涉及单链表的各种操作,包括单链表的建立、结点的查找、插入、删除等基本运算。链表中插入结点的指针变化,删除p所指结点的指针变化。

【实现提示】

本题实质是建立学生成绩单链表,每条信息由学号、姓名与成绩组成,即链表中每个结点由4个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域。要求完成的四项功能可写成四个函数,登记学生成绩对应建立学生单链表的功能,后三个功能分别对应单链表的查询、插入与删除三大基本操作。

/* 标准文档模板 */

#include "Stdio.h"
#include "Conio.h"
#define SIZE 50
struct student
{
int ID;
char name[20];
int score[3];//三门课的成绩
float avg;
};
int count=4; //用来记录总条数 因为已有四条记录所以初始化为4,再录入记录时从第四条开始记录
void input(struct student stu[]) /*实现信息录入功能*/
{
int i;
int sum; //总分
char ch;
do
{
sum=0;
printf("请输入学生ID:\n");
scanf("%d",&stu[count].ID);
printf("请输入学生name:\n");
scanf("%s",&stu[count].name);
for(i=0;i<3;i++)
{
printf("请输入第%d门成绩",i+1);
scanf("%d",&stu[count].score[i]);
sum=sum+stu[count].score[i];//计算总分
}
stu[count].avg=sum/3.0f; //计算平均分
count++; //累计总记录条数
printf("是否继续录入信息?(y/n)");