C语言学生成绩管理系统课程设计心得体会
在这次的课程设计中,我通过实践运用了C语言的基础知识,巩固了语言的理论知识,并且学习了链表的基本操作。在设计过程中,我也发现了自己的不足,例如对指针的理解还不够深入,需要多加练习和学习。
通过这次课程设计,我也更加深刻地认识到了软件开发的流程,包括需求分析、设计、编写、测试等各个环节的重要性。在编写代码的过程中,我也意识到了代码的规范化与可维护性的重要性,尽量避免出现重复、冗余的代码。
总的来说,这次课程设计让我收获颇丰,不仅提升了自己的编程能力,也增加了自己对软件开发的认识和理解。希望在之后的学习中,能够继续努力,提高自己的编程水平。
二、课程设计内容与要求:
用C语言实现该学生成绩管理系统; 显示学生信息包括:学号,姓名,性别,'××课成绩','××课成绩','××课成绩',……平均分等; 具有学生成绩录入功能——输入数据功能; 具有学生成绩浏览功能——输出数据功能; 其它(功能扩展):查询功能、排序功能、修改、删除功能、统计功能、退出功能等。
设计思路:
- 定义学生结构体类型struct Student,包括Name(姓名)、Num(学号)、Computer(计算机成绩)、Math(数学成绩)、English(英语成绩)、Total(总分)、Ave(平均分)。
- 定义一个结点类型node,包括数据域struct Student st和指针域struct node *pnext。
- 在node类型的基础上,定义一个指向node类型的指针类型pnode,简化书写。
- 编写录入学生信息函数Input(),先定义一个头结点phead,并为头结点分配内存。然后根据输入的学生人数,利用for循环遍历学生信息,录入每个学生的姓名、学号、计算机成绩、数学成绩和英语成绩,并计算总分和平均分。然后为新结点分配内存,并将新结点挂到老结点后面,最后返回头结点phead。
- 在显示学生信息函数Show()中,先定义一个指针p,用于遍历学生信息。然后输出学生的姓名、学号、计算机成绩、数学成绩、英语成绩、总分和平均分。
- 在增加学生信息函数Add()中,先输入插入结点的位置,然后利用while循环找到需要插入的位置。然后输入需要插入的学生的姓名、学号、计算机成绩、数学成绩和英语成绩,并计算总分和平均分。最后为新结点分配内存,并将新结点挂到老结点后面。
- 在删除学生信息函数Delete()中,先输入需要删除的学生编号,然后利用while循环找到需要删除的位置。然后将需要删除的结点从链表中摘除,并释放内存。
- 在修改学生信息函数Change()中,先输入需要修改的学生的姓名,然后利用while循环找到需要修改的学生。然后输出修改前的学生信息,提示输入新的学生信息,输入后计算总分和平均分。最后修改学生信息。
- 在查找学生信息函数Search()中,先输入需要查找的学生的姓名,然后利用while循环找到需要查找的学生,并输出该学生的信息。
- 在按总分排序函数Sort()中,利用两个指针p和q,遍历链表并比较相邻两个学生的总分大小,如果前一个学生的总分小于后一个学生的总分,则交换两个学生的位置,直到排序完成。
- 主函数中的while循环不断循环,直到用户选择退出程序。
原文地址: https://www.cveoy.top/t/topic/osri 著作权归作者所有。请勿转载和采集!