还剩5页未读,继续阅读
文本内容:
语言编程例题C题目编写一个程序,实现一个简单的学生成绩管理系统需求分析
1.程序需要能够添加学生信息,包括学号、姓名和成绩
2.程序需要能够根据学号或姓名查询学生信息,并输出学号、姓名和成绩
3.程序需要能够根据学号或姓名删除学生信息
4.程序需要能够计算并输出学生的平均成绩
5.程序需要能够按照成绩排序并输出学生信息程序设计
1.定义一个结构体类型Student,包含学号、姓名和成绩三个字段
2.定义一个链表类型List,用于保存学生信息
3.编写函数addStudent,用于添加学生信息到链表中
4.编写函数searchStudent,用于根据学号或姓名查询学生信息,并输出
5.编写函数deleteStudent,用于根据学号或姓名删除学生信息
6.编写函数calculateAverage,用于计算学生的平均成绩,并输出
7.编写函数sortStudent,用于按照成绩排序并输出学生信息代码实现如下cttinclude#include^include//定义学生结构体类型typedef struct{int id;char name
[20];float score;}Student;//定义链表节点结构体类型typedef struct Node{Student student;structNode*next;}Node;//定义链表类型typedef struct{Node*head;int length;}List;//初始化链表void initListList*list{list-head=NULL;list-length=0;}//添加学生信息void addStudentList*list,Student studentNode*newNode=Node*mallocsizeofNode;newNode-student=student;newNode-next=NULL;if list-head==NULL{list-head=newNode;}else{while p-next!=NULL{p=p-next;p-next=newNode;list-length++;}//根据学号或姓名查询学生信息void searchStudentList list,int id,char*name{Node*p=list.head;while p!=NULL{if p-student.id==id||strcmpp-student.name,name==0printf〃学号%d,姓名%s,成绩%.2f\n〃,p-student.id,p-student.name,p-student.score;p=p-next;}}//根据学号或姓名删除学生信息void deleteStudentList*list,int id,char*name{Node*p=list-head;Node*pre=NULL;while p!=NULL{if p-student.id-id||strcmpp-student.name,name二二0if pre==NULL{list-head=p-next;}else{pre-next=p-next;}freep;list-length一;break;}pre=p;p=p-next;}}//计算学生的平均成绩void calculateAverageListlist{float sum=0;Node*p=list,head;while p!=NULL{sum+=p-student.score;p=p-next;printf〃平均成绩%.2f\n〃,sum/list,length;}//按照成绩排序并输出学生信息void sortStudentListlist{Node*p=list.head;int i,j;for i=0;ilist.length-1;i++{p=list.head;for j=0;jlist.length-i-1;j++{if p-student.scorep-next-student.score{Student temp=p-student;p-student=p-next-student;p-next-student=temp;}p=p-next;}}p=list.head;while p!=NULL{printf〃学号:%d,姓名%s,成绩%.2f\n〃,p-student.id,p-student.name,p-student.score;p=p-next;}}int main{Listlist;initListlist;//添加学生信息Student studentl={1,〃张三〃,90};Student student2={2,〃李四〃,80};Student students={3,〃王五〃,85};addStudentlist,studentl;addStudentlist,student2;addStudentstudents;//查询学生信息searchStudent list,2,〃〃;//删除学生信息deleteStudentlist,2,〃〃;//计算平均成绩calculateAveragelist;//按照成绩排序并输出学生信息sortStudentlist;return0;。