学生成绩(链表)
2017-10-12 01:40
120 查看
#include<iostream> #include<string> using namespace std; struct Student{ string name; string score; Student *next;//定义了指向Candidate类型变量的指针 }; Student * Create(Student * head){ Student *p=NULL; Student *node=NULL; int n;// cout<<"请输入学生的总数:"; cin>>n; for(int i=1;i<=n;i++){ node=new Student; cout<<"请输入第"<<i<<"个同学的姓名:"; cin>>node->name; cout<<"请输入第"<<i<<"个同学的成绩:"; cin>>node->score; if(head==NULL) head=node; else p->next=node; p=node; if(i==n){ p->next=NULL; } } return head; } void Print(Student * head){ Student *p=NULL; p=head; cout<<"链表已经建立!"<<endl; cout<<"\n==========下面输入刚才的数据=============\n"<<endl; int i=1; while(p!=NULL){ cout<<"第"<<i<<"个同学==="<<p->name<<"==成绩===="<<p->score<<endl; p=p->next; i++; } cout<<"\n"<<endl; } void Insert(Student * head,int k){ Student *p=NULL; Student *node=NULL; p=head; if(k==1){ node=new Student; cout<<"第1位同学的名字:"; cin>>node->name; cout<<"第1位同学的成绩:"; cin>>node->score; node->next=head->next; head=node; } int i=1; while(p!=NULL){ if(i+1==k){ node=new Student; cout<<"第"<<k<<"位同学的名字:"; cin>>node->name; cout<<"第"<<k<<"位同学的成绩:"; cin>>node->score; node->next=p->next; p->next=node; } p=p->next; i++; } } void Destory(Student * head){ Student *d; Student *p=NULL; p=head; while(p!=NULL){ d=p; p=p->next; delete d; } } void Alter(Student * head,int k){ int i=1; Student *p=head; while(p!=NULL){ if(i==k){ cout<<"第"<<k<<"位同学的名字:"; cin>>p->name; cout<<"第"<<k<<"位同学的成绩:"; cin>>p->score; } p=p->next; i++; } } Student * Delete(Student * head,int k){ int i=1; Student *p=head; Student *d=head; if(k==1){ head=head->next; }else{ while(p!=NULL){ if(i+1==k){ p->next=p->next->next; } p=p->next; i++; } } return head; } int main(){ Student *head=NULL; //创建链表 head=Create(head); //输出链表 Print(head); //插入数据 int k; cout<<"请输入你要插入的同学的序号:"; cin>>k; Insert(head,k); //输出链表 Print(head); //修改链表 cout<<"请输入你要修改的同学的序号:"; cin>>k; Alter(head,k); //输出链表 Print(head); //删除其中的一个项 cout<<"请输入你要删除的同学的序号:"; cin>>k; head=Delete(head,k); //输出链表 Print(head); //销毁链表 Destory(head); return 0; }
相关文章推荐
- 数据结构实验二 链式存储结构----单向链表的有关操作(学生成绩信息C语言)
- 用单链表对学生成绩插入删除查找
- C语言 链表 求某班20名学生的最高成绩
- 使用C++结合文件操作和链表实现学生成绩管理系统
- c链表 学生成绩管理系统
- 数据结构:单链表:学生成绩管理系统
- 链表实现学生成绩管理系统
- 基于链表的学生成绩管理系统——C++二进制文件读写string对象时出现的错误
- 实验二 双链表实现学生成绩
- c++链表实现学生成绩管理系统(简易版)
- 链表《5》使用链表实现学生成绩管理系统
- 双链表--学生成绩表
- c用链表实现学生成绩管理系统 MIS
- 链表-简易学生成绩管理
- 【C语言】学生成绩链表的录入
- N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。 请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。c语言编程【22题】
- 学生成绩管理系统链表实现
- 链表-简易学生成绩管理
- 数据结构实验 第一单元 学生成绩管理系统(链表版)
- 创建学生成绩的单链表