C语言学生成绩管理系统课程设计心得体会
通过学习和实践,我深刻体会到了课程设计的重要性。在设计过程中,需要先明确需求,然后根据需求来设计程序的框架和流程。在编写代码的过程中,需要注意变量和函数的命名规范,尽量使程序易读易懂,方便自己和他人理解和维护。同时,还需要注意错误处理和异常情况的处理,保证程序的稳定性和健壮性。
二、课程设计内容与要求: 用c语言实现该学生成绩管理系统; 显示学生信息包括:学号,姓名,性别,'××课成绩','××课成绩','××课成绩',……平均分等; 具有学生成绩录入功能——输入数据功能; 具有学生成绩浏览功能——输出数据功能; 其它(功能扩展):查询功能、排序功能、修改、删除功能、统计功能、退出功能等。
设计思路:
1.定义学生结构体类型struct Student,包括Name(姓名)、Num(学号)、Computer(计算机成绩)、Math(数学成绩)、English(英语成绩)、Total(总分)、Ave(平均分)。 2. 定义一个结点类型node,包括数据域struct Student st和指针域struct node *pnext。 3. 在node类型的基础上,定义一个指向node类型的指针类型pnode,简化书写。 4. 编写录入学生信息函数Input(),先定义一个头结点phead,并为头结点分配内存。然后 根据输入的学生人数,利用for循环遍历学生信息,录入每个学生的姓名、学号、计算机成绩、数学成绩和英语成绩,并计算总分和平均分。然后为新结点分配内存,并将新结点挂到老结点后面,最后返回头结点phead。 5.在显示学生信息函数Show()中,先定义一个指针p,用于遍历学生信息。然后输出学生的姓名、学号、计算机成绩、数学成绩、英语成绩、总分和平均分。 6. 在增加学生信息函数Add()中,先输入插入结点的位置,然后利用while循环找到需要插入的位置。然后输入需要插入的学生的姓名、学号、计算机成绩、数学成绩和英语成绩,并计算总分和平均分。最后为新结点分配内存,并将新结点挂到老结点后面。 7. 在删除学生信息函数Delete()中,先输入需要删除的学生编号,然后利用while循环找到需要删除的位置。然后将需要删除的结点从链表中摘除,并释放内存。 8. 在修改学生信息函数Change()中,先输入需要修改的学生的姓名,然后利用while循环找到需要修改的学生。然后输出修改前的学生信息,提示输入新的学生信息,输入后计算总分和平均分。最后修改学生信息。 9. 在查找学生信息函数Search()中,先输入需要查找的学生的姓名,然后利用while循环找到需要查找的学生,并输出该学生的信息。 10. 在按总分排序函数Sort()中,利用两个指针p和q,遍历链表并比较相邻两个学生的总分大小,如果前一个学生的总分小于后一个学生的总分,则交换两个学生的位置,直到排序完成。 11. 主函数中的while循环不断循环,直到用户选择退出程序。
通过这次课程设计,我不仅掌握了C语言的基础知识和编程技巧,还学会了如何进行需求分析和程序设计。同时,我也更加深刻地认识到了编程的重要性和应用的广泛性。我相信,这次课程设计对我的未来学习和工作都将有很大的帮助和促进。
原文地址: https://www.cveoy.top/t/topic/osru 著作权归作者所有。请勿转载和采集!