好文档 - 专业文书写作范文服务资料分享网站

数据结构课程设计 学生成绩管理系统

天下 分享 时间: 加入收藏 我要投稿 点赞

Creat_St

udentoutput_StudentInsert_StudentLocate_Student、Delete_StudentSeek_StudentQueue_StudentFilter_Studentexit1、添加2、输出3、插入4、删除5、查找6、排序7、筛选0、退出开始输入功能选项c结束三、详细设计

1、添加学生: 2、输出学生: 创建节点s LinkList *p=L->next;

输入学生信息,计算总分与加权分 for(m=1;m<=总人数&&p!=NULL;m++) r->next=s;r=s;(尾插法插入链表)

count=count+1;学生总数加1

6

输出学生信息,p=p->next

开始LinkList *p=L->next;m+1m<=n&&p!=NNULL?Y输出学生信息p=p->nextm++结束

3、插入学生 输入要插入的位置 scanf(\ 调用插入函数 Insert_Student(h,w); 的流程图如下:

Insert_Student 函数

开始创建节点s并输入学生信息将节点s用尾插法插入学生链表输入jYIf (j==1)N结束

4、删除学生

数字选择删除方式 按编号删除和学号删除 1编号 调用Delete_Student

2学号 调用Locate_Student找到

学生位置,在用Delete_Student

Delete_Student的函数流程图: 7

开始开始LinkList *p=L,*s;j=0;LinkList *p=L,*s;j=0;Njnext;j++;p=p->next;输出该学生信息删除该学生信息结束结束

Locate_Student函数的流程图与如下:Locate_Student1的流程图类似,不再重复了

开始LinkList *p=L;i=1;Np!=NULL&&strcmp(p->mun,mun)!=0?Yi++;p=p->next;return(i)

结束

8

5查找学生:调用Seek_Student函数,分为按学号查找和按姓名查找

1按编号 调用Locate_Student函数返回i在调用Out_one_Student输出第i个学生 2 按姓名调用Locate_Student1函数返回i在调用Out_one_Student输出第i个学生

6排序函数 调用Queue_Student函数:其中有按学号,总分,各科成绩排序 我这里采用的是冒泡排序法进行排序,分别定义了两个节点指针q指向头指针p指向q的下一个节点,在进入双重循环进行比较排序 流程图如下:

开始LinkList *q,*p,*t1,*t2;q=L,p=L->nextq->next!=NULL?Np->next!=NULL?NNq的数据>p的数据?Y交换位置YYq=q->next结束

排序的方法都类似,知识比较数据不同,所以就没有一一画出来了

9

7 筛选

创建另一个链表r用于存筛选出来的学生,并调用output_Student函数输出 筛选程序流程图如下:

开始输入筛选的数据L里的数据>输入的数据?YN将该学生存入新的学生节点s将节点s用尾插法插入到链表r中调用output_Student输出链表r结束

筛选程序又分为1 按总分选 2 全部及格的人 3 按各科成绩

1 而总分筛选主要是输入一个数值,判断数据是否大于输入数据,大于的都输出 2 去不几个的人通过比较每一科成绩是否都大于60分,大于的就选出插入新链表并输出

3 各科成绩的话是只比较其中一科来创建链表并输出

其比较流程图都如上图所示,这里便不再一一画出来了。

10

5dr3b2llfr6msok1o3yz
领取福利

微信扫码领取福利

微信扫码分享