数据结构之学生成绩管理系统.docx43594.pdf
《数据结构之学生成绩管理系统.docx43594.pdf》由会员分享,可在线阅读,更多相关《数据结构之学生成绩管理系统.docx43594.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.学生成绩管理系统 一、实验目的 1.通过此次课程设计中学生成绩管理系统的题目 ,掌握链表等数据结构的 基本操作方面的知识 ,并能灵活的解决一些基本的问题,加深对其性质及各项操 作的理解;2.将所学数据结构方面的知识与一门具体的语言 C 语言来进行实现,感受数据结构的强大作用,加深理解。二、试验要求 管理系统中有五个要求:输入 查找 修改 插入 删除 存储 (1)输入要求:能够通过键盘输入和文件输入两种 (2)查找要求:能够根据学生号查找单个学生的信息,也可以遍历所有学生信息 (3)修改要求:能够根据学生号修改单个学生所有信息 (4)插入要求:能够实现头插和尾插 (5)删除要求:能够根据学生号
2、删除单个学生信息 (6)存储要求:通过链表存储所有信息 三、算法的思想与算法实现步骤 1.基本思想 通过链表数据类型进行基本操作,主要有三个模块:分别是主函数模块、主要操作函数及基本操作函数。其中,主函数负责其他子函数的调用实现以及基本界面的操作 主要函数包括:void StuInput(Student*);/学生成绩管理系统的输入函数,由主函数调用 void StuSelect(Student*);/学生成绩管理系统的查找函数,由主函数调用 void StuAlter(Student*);/学生成绩管理系统的修改函数,由主函数调用 void StuInsert(Student*);/学生成绩
3、管理系统的插入函数,由主函数调用 void StuDelect(Student*);/学生成绩管理系统的删除函数,由主函数调用 Word 范文.void StuSave(Student*);/学生成绩管理系统的存储函数,由主函数调用 基本操作函数:void StuOutput(Student*p);/输出函数 int StuImport(Student*head,Student*p);/输入函数 void StuInputHand(Student*head);/学生成绩管理系统的手动输入函数,由输入函 数调用 void StuInputFile(Student*head);/学生成绩管理系统的
4、文件输入函数,由输入函 数调用 void StuSelectErg(Student*head);/学生成绩管理系统的遍历函数,由查找函数调 用 void StuSelectNumFind(Student*head);/学生成绩管理系统的按学号查找函数,由查 找函数调用 void StuSelectSubFind(Student*head);/学生成绩管理系统的按科目查找函数,由查 找函数调用 2.实现步骤 首先,分析题目要求划分实现模块,定义基本数据类型,诸如结构体、链表等;其次,针对上述的基本操作实现具体需要进行的操作,具体实现每个环节需要进行的基本操作,即具体编写每个小函数实现功能;最后,
5、编写主函数对每个实现进行按需调用,实现操作。3.流程图 Word 范文.main StuMain StuInput StuSelect StuAlter StuInsert StuDelect StuSave StuInput StuInput StuSelectE StuSelectN StuSelectSub Hand File rg umFind Find 四代码:#include#include#include struct Student char name10;char subject10;int num;int grade;Student*next;void StuMain();
6、/学生成绩管理系统的主函数,由 main 函数调用 void StuInput(Student*);/学生成绩管理系统的输入函数,由主函数调用 void StuSelect(Student*);/学生成绩管理系统的查找函数,由主函数调用 void StuAlter(Student*);/学生成绩管理系统的修改函数,由主函数调用 void StuInsert(Student*);/学生成绩管理系统的插入函数,由主函数调用 void StuDelect(Student*);/学生成绩管理系统的删除函数,由主函数调用 void StuSave(Student*);/学生成绩管理系统的存储函数,由主函
7、数调用 void StuOutput(Student*p);/输出函数 int StuImport(Student*head,Student*p);/输入函数 Word 范文.void StuOutput(Student*p)/打印函数,将链表的该节点信息输出 printf(学生姓名:);printf(%s,p-name);printf(学生号:);printf(%d,p-num);printf(科目:);printf(%s,p-subject);printf(学生成绩:);printf(%d n,p-grade);int StuImport(Student*head,Student*p)St
8、udent*Opinion=(Student*)malloc(sizeof(Student);/用来判断 输入节点中学生号是否有重复 Opinion=head-next;printf(学生姓名:n);scanf(%s,p-name);printf(学生号:n);scanf(%d,&p-num);printf(科目:n);scanf(%s,p-subject);if(Opinion!=NULL)if(Opinion-num=p-num&!strcmp(Opinion-subject,p-subject)printf(该学生这门科目已有成绩,请重新输入 n);return 1;Opinion=Op
9、inion-next;printf(学生成绩:n);scanf(%d,&p-grade);return 0;void main()StuMain();void StuMain()char decide=y;/定义 while 变量,函数是否继续进行 int num=1;/定义 switch 变量,函数跳转到哪 Word 范文.个子函数 Student*head;/定义链表的头指针 head=(Student*)malloc(sizeof(Student);/给头指针开辟空间 head-next=NULL;/初始化头指针 while(decide!=n)printf(*n);printf(*1
10、输入 2 查找 3 修改 4 插入*n);printf(*5 删除 6 存储 7 退出*n);printf(*n);scanf(%d,&num);switch(num)case 1:StuInput(head);break;case 2:StuSelect(head);break;case 3:StuAlter(head);break;case 4:StuInsert(head);break;case 5:StuDelect(head);break;case 6:StuSave(head);break;default:decide=n;break;void StuInputHand(Stude
11、nt*head);/学生成绩管理系统的手动输入函数,由输入函 数调用 void StuInputFile(Student*head);/学生成绩管理系统的文件输入函数,由输入函 数调用 Word 范文.void StuInput(Student*head)/学生成绩管理系统的输入函数,由主函数调用 char decide=y;/定义 while 变量,函数是否继续进行 int num;/定义 switch 变量,函数跳转到哪个 子函数 while(decide!=n)printf(*n);printf(*1 手动输入 2 文件输入 3 退出*n);printf(*n);scanf(%d,&nu
12、m);switch(num)case 1:StuInputHand(head);break;case 2:StuInputFile(head);default:decide=n;break;void StuInputHand(Student*head)/学生成绩管理系统的手动输入函数,由输入函数 调用 if(head-next=NULL)Student*point=(Student*)malloc(sizeof(Student);/链表中 最后一个节点,只在该函数中存在 point-next=NULL;int decide=1;while(decide!=0)Student*p=(Studen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 学生 成绩管理系统 docx43594
限制150内