超好的学生成绩管理系统实验报告顺序表链表(共10页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《超好的学生成绩管理系统实验报告顺序表链表(共10页).doc》由会员分享,可在线阅读,更多相关《超好的学生成绩管理系统实验报告顺序表链表(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据结构实验报告 一 具体设计顺序表存储结构定义采用了两个结构体,其中Student结构体用于存储学生的各项信息,包括学号int num;姓名char name20;英语成绩float english;数学成绩float math;数据结构成绩float database;总分float sum;平均分float average; 顺序表的结构体sqlist中包含的数据项是Student结构体,还有存储当前长度的int length;及当前分配的存储容量的int listsize;函数功能定义及具体功能介绍录入信息int Input(sqlist *L)每次输入学生的
2、所有信息,输入完后提示是否继续输入显示所有学生信息int Display(sqlist *L)插入一条记录到表尾void Insert(sqlist *L)删除一条记录int Delete(sqlist *L)包括1.按姓名删除2.按学号删除统计成绩int Statistic(sqlist *L)包括全班平均成绩,各科平均成绩,总分最高分,总分最低分,各科最高分,各科最低分以及各科及格率查找int Search(sqlist *L)查找方法包括1.顺序查找2.二分查找按查找内容又包括1.按学号查找2.按姓名查找,若查找成功则显示查找到的学生信息,若查找失败则提示“查找失败!”排序int Sor
3、t(sqlist *L)排序方法包括1.直接插入排序2.折半插入排序3.冒泡排序4.直接选择排序,排序内容包括1.按学号排序2.按英语成绩排序3.按高数成绩排序4.按数据结构成绩排序5.按总分排序(0) 退出程序void tuichu(sqlist *L)释放占用的内存空间,显示谢谢使用!,然后关闭所有文件,终止正在进行的程序(9) 主菜单int menu(),每次进行完一次功能实现后再次弹出,方便用户使用(10) 主函数int main(),用switch语句根据用户的选择进行相应的操作具体设计思路及过程录入信息int Input(sqlist *L),初始length为0,每录入一个学生l
4、ength加一,然后显示提示信息是否继续,若继续则要再录入,所以要把这个整体的外面再套一层while循环,但是在写的过程中也遇到了一个困难,还没有输入继续y,就让输入学生信息,通过百度,知道了C有一个输入的缓冲区,所以在每次输入前都请空了缓冲区,防止读入缓冲区余下的内容。运行截图如下:显示所有学生信息int Display(sqlist *L)把存储在顺序表中的内容全部读出即可,但是当用户还没有输入数据的时候就选择了显示所有学生信息,就显示一个提示信息请先输入数据!,然后回到主界面运行截图如下:插入一条记录到表尾void Insert(sqlist *L)即输入学生信息保存到数组下标为L-le
5、ngth,然后让L-length加一即可运行截图如下:删除一条记录int Delete(sqlist *L)包括1.按姓名删除2.按学号删除,所以要用一个int型变量存储学生的选项。当用户还没有输入数据的时候如果选择了删除一条记录,就显示一个提示信息请先输入数据!,然后回到主界面。若顺序表中存在数据就先用顺序查找法查找是否存在这个学生,如果存在那么把后面的学生信息前移一位,然后L-length-,如果没有找到这个学生的信息就显示要删除记录不存在!,然后返回主界面。运行截图如下:统计成绩int Statistic(sqlist *L),因为要统计的信息包含总分和3门课程,所以要设置多个计数器,而
6、且计算及格率的计数器应设为float,否则两个整数相除是整数,结果会有误。实现时从第一个学生信息开始依次加到最后一个即可,运行截图如下:查找int Search(sqlist *L) 当用户还没有输入数据的时候如果选择了查找,就显示一个提示信息请先输入数据!,然后回到主界面。如果顺序表中存在数据就开始查找,找方法包括1.顺序查找2.二分查找按查找内容又包括1.按学号查找2.按姓名查找,所以要设置两个int 型的变量ch1,ch2来读入选择的内容,然后再通过switch语句进入选择的查找方法或查找的内容。按学号查找的比较语句要用”=”,按姓名查找的比较语句就要用strcmp()函数,顺序查找法当
7、计数器大于等于L-length时,输出查找失败!,然后回到主界面,二分查找法当lowhigh时就输出查找失败!,然后回到主界面。运行截图如下:排序int Sort(sqlist *L)排序方法包括1.直接插入排序2.折半插入排序3.冒泡排序4.直接选择排序,排序内容包括1.按学号排序2.按英语成绩排序3.按高数成绩排序4.按数据结构成绩排序5.按总分排序,所以要设置两个int 型的变量ch1,ch2来读入选择的内容,然后再通过switch语句进入选择的排序方法然后进入要排序的内容再进行相应的排序。自己一开始写的时候复制记录是把结构体中的所有内容按照相应的复制方法依次复制过去,后来意识到结构体是
8、可以直接复制的,所以又进行了改进,而且把数组中的第一个空闲,当作监视哨。(0) 退出程序void tuichu(sqlist *L),最初自己只是显示出谢谢使用!,然后用exit(0)终止程序,后来意识到还应释放存储学生信息的结构体,所以又增加了if(!L-stu)free(L-stu);(9)主菜单int menu(),显示标题,和大致功能,用户根据功能前的编号选择进入相应的函数,执行相应的功能,所以用一个int型的变量来录入用户的选择,并且这个函数的返回值类型为int ,以供main函数使用,为了防止用户的输入错误,加了一个while语句,当输入错误时,提示输入错误!请重新输入:,直到用户
9、输入正确为止。(10)main函数,先定义顺序表,然后初始化,并且为了查找、排序方便将第一个当哨兵,所以LL-length初值为1,用一个while(1)和switch(menu()执行用户的选择操作,直到选择了退出。单链表存储结构定义采用了一个结构体表示单链表里面包含保存学生学号的int stuid,姓名的char name20,英语成绩的float english,数学成绩的float math,数据结构成绩的float database,总分的float sum,平均分的float average;指示结点地址的指针struct LNode *next 。函数功能定义及具体功能介绍录入信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 实验 报告 顺序 表链 10
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内