文档详情

数据结构课程设计报告4.doc

发布:2019-07-06约2.9万字共39页下载文档
文本预览下载声明
. . 数 据 结 构 课程设计报告书 学校 青岛科技大学 学号 姓名 指导老师 刘勇 课程设计的名称:学生成绩管理 问题描述: 学生成绩管理是学校教务管理的重要组成部分,其处理信息量很大,该题目是对学生的成绩管理作一个简单的模拟,其中学生信息包括:学号、姓名与成绩。成绩分为课程1成绩、课程2成绩、课程3成绩和总成绩。要求设计一个简易的成绩管理系统,输入各门功课的成绩后能自动求出总成绩,并通过菜单选择操作方式完成下列功能: 登记学生成绩; ②查询学生成绩; 插入学生成绩; ④删除学生成绩; 按总成绩降序排序。 基本要求: 该题目涉及到单链表的各种操作,包括单链表的建立、结点的查找、插入、删除等基本运算。首先建立学生成绩单链表,链表中每个结点由4个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域。然后将要求完成的四项功能写成四个函数,登记学生成绩对应建立学生单链表的功能,后三个功能分别对应单链表的查询、插入与删除三大基本操作。 算法思想: Creat()函数算法思想:从0至n循环输入n个同学的三科成绩,并且计算总成绩。 Inquiry()函数算法思想:将学号与已输入的所有学号做比较,一旦相同则输出该学号信息,否则显示没有该学生信息。 Insert ()函数算法思想:生成一个新节点,然后将其接到原有链表尾部。 Delete()函数算法思想:通过ID找到该节点,并删去该节点。 Sort(函数算法思想:利用排序算法对每一个节点作比较并更换其在链表中的位置顺序。 模块划分 (1)LinkList Creat(LinkList T,int n)其功能是创造节点,录入成绩。 (2)void Inquiry(LinkList T)其功能是查询与已知ID一致的学生信息并展示出来。 (3)void Insert(LinkList T,int n) 其功能是添加若干个学生的成绩信息。 (4)void Delete(LinkList T) 其功能是删除若干个学生的成绩信息。 (5)void Sort(LNode *p) 其功能是排序并展示若干个学生的成绩信息。 数据结构: 数据类型LNode定义如下: typedef struct LNode { int ID; char name[20]; int score1; int score2; int score3; int total; struct LNode *next; }LNode,*LinkList; 源程序: 源代码 //main.c #include stdio.h #include stdlib.h typedef struct LNode { int ID; char name[20]; int score1; int score2; int score3; int total; struct LNode *next; }LNode,*LinkList; LinkList Creat(LinkList T,int n); void Delete(LinkList T); void Inquiry(LinkList T); void Insert(LinkList T,int n); void Sort(LNode *p); void Insert(LinkList T,int n) { int i; LNode *r=T,*p; while((r-next)!=NULL) { r=r-next; } for(i=0;in;i++) { p=(LNode *)malloc(sizeof(LNode)); printf(Please enter the students student ID:); scanf(%d,p-ID); printf(Please enter the students name: ); scanf(%s,p-name); printf(Please enter the students score 1: ); scanf(%d,p-score1); printf(Please enter the students score 2: ); scanf(%
显示全部
相似文档