#include <iostream>
#include <cmath>
#include <cstring>
#include <string.h>
#include <stdlib.h>
typedef long long ll;
typedef long long LL;
using namespace std;
typedef struct student
{int num;string name;int foxscore;int cscore;int englishscore;int sum_score;student *next;
}student,*linklist;void Create_linklist(linklist &h)
{linklist p,q;int numm;string na;int fox;int cc;int english;h = new student();p = h;cout<<"请输入学号,姓名,fox成绩,c语言成绩,英语成绩,-1结束."<<endl;while(cin>>numm && numm!=-1){cin>>na>>fox>>cc>>english;q=new student();q->num = numm;q->name = na;q->foxscore = fox;q->cscore = cc;q->englishscore = english;p->next = q;p = q;}p->sum_score=p->foxscore+p->cscore+p->englishscore;p->next = NULL;p = h->next;
}void Display(linklist h)
{linklist p;p = h->next;while(p){cout<<"学号:"<<p->num<<endl<<" 姓名:"<<p->name<<endl<<" fox成绩:"<<p->foxscore<<endl<<" c语言成绩:"<<p->cscore<<endl<<" english成绩:"<<p->englishscore<<endl;p = p->next;}
}void Tongji(linklist h)
{linklist p;p = h->next;int sum;while(p){sum = 0;sum = sum+p->cscore+p->englishscore+p->foxscore;p->sum_score = sum;cout<<p->name<<"的总分是:"<<sum<<endl;p = p->next;}
}void Score_sort(linklist &h)
{linklist p,q;int t;t=5;while(t--){p = h->next;while(p && p->next){if(p->sum_score<p->next->sum_score){q = new student();q->num = p->num;q->name = p->name;q->cscore = p->cscore;q->englishscore = p->englishscore;q->foxscore = p->foxscore;q->sum_score = p->sum_score;p->num = p->next->num;p->name = p->next->name;p->cscore = p->next->cscore;p->englishscore = p->next->englishscore;p->foxscore = p->next->foxscore;p->sum_score = p->next->sum_score;p->next->num = q->num;p->next->name = q->name;p->next->cscore = q->cscore;p->next->englishscore = q->englishscore;p->next->foxscore = q->foxscore;p->next->sum_score = q->sum_score;}p = p->next;}}cout<<"已排序,顺序为:"<<endl;p=h->next;while(p){cout<<"学号:"<<p->num<<" 姓名:"<<p->name<<" fox成绩:"<<p->foxscore<<" c语言成绩:"<<p->cscore<<" english成绩:"<<p->englishscore<<"总分为:"<<p->sum_score<<endl;p=p->next;}
}void Search(linklist h)
{int number;cout<<"请输入要查找的学号:";cin>>number;linklist p = h->next;while(p){if(p->num == number){cout<<"学号:"<<p->num<<endl<<" 姓名:"<<p->name<<endl<<" fox成绩:"<<p->foxscore<<endl<<" c语言成绩:"<<p->cscore<<endl<<" english成绩:"<<p->englishscore<<endl<<"总分为:"<<p->sum_score<<endl;return ;}p = p->next;}cout<<"没有此人信息。"<<endl;
}void Score_search(linklist h)
{int score;cout<<"请输入要查找的总分:";cin>>score;linklist p = h->next;while(p){if(p->sum_score == score){cout<<"学号:"<<p->num<<endl<<" 姓名:"<<p->name<<endl<<" fox成绩:"<<p->foxscore<<endl<<" c语言成绩:"<<p->cscore<<endl<<" english成绩:"<<p->englishscore<<endl<<"总分为:"<<p->sum_score<<endl;return ;}p = p->next;}cout<<"没有此人信息。"<<endl;
}void Copy(linklist &a,linklist h)
{a = h;
}void Name_search(linklist h)
{string str;cout<<"请输入要查找的名字:"<<endl;cin>>str;linklist p = h->next;while(p){if(p->name == str){cout<<"学号:"<<p->num<<endl<<" 姓名:"<<p->name<<endl<<" fox成绩:"<<p->foxscore<<endl<<" c语言成绩:"<<p->cscore<<endl<<" english成绩:"<<p->englishscore<<endl<<"总分为:"<<p->sum_score<<endl;return ;}p = p->next;}cout<<"没有此人的信息。"<<endl;
}void C_sum(linklist h)
{linklist p;int sum = 0;p = h->next;while(p){sum += p->cscore;p = p->next;}cout<<"所有人的C语言总分为:"<<sum<<endl;
}
void Fox_sum(linklist h)
{linklist p;int sum = 0;p = h->next;while(p){sum += p->foxscore;p = p->next;}cout<<"所有人的fox总分为:"<<sum<<endl;
}void English_sum(linklist h)
{linklist p;int sum = 0;p = h->next;while(p){sum += p->englishscore;p = p->next;}cout<<"所有人的英语总分为:"<<sum<<endl;
}void Add(linklist &h)
{linklist p,q;int numm;string na;int fox;int cc;int english;p = h;while(p->next){ p = p->next;}cout<<"请输入学号,姓名,fox成绩,c语言成绩,英语成绩."<<endl;cin>>numm>>na>>fox>>cc>>english;q=new student();q->num = numm;q->name = na;q->foxscore = fox;q->cscore = cc;q->englishscore = english;p->next = q;int sum = 0;p = p->next;sum = sum+p->cscore+p->englishscore+p->foxscore;p->sum_score = sum;p->next = NULL;cout<<numm<<"插入成功。"<<endl;
}void Delete(linklist &h)
{int number;cout<<"请输入要删除的人的学号:"<<endl;cin>>number;linklist p,q;p = h;while(p->next){if(p->next->num == number){q = p->next;p->next = p->next->next;free(q);cout<<number<<"已经删除"<<endl;}p = p->next;}
}void Error()
{cout<<"请输入正确的选项."<<endl;
}void menu()
{linklist head = NULL;cout<<"实验一:【学生成绩管理】"<<endl;int op;while(1){cout<<"(1):信息输入(INPUT)"<<endl;cout<<"(2): 插入一个人的信息(ADD_IN)"<<endl;cout<<"(3): 删除一个人的信息(DELETE)"<<endl;cout<<"(4):学号查询(QUERY)"<<endl;cout<<"(5): 姓名查询(NAME_SEARCH)"<<endl;cout<<"(6): 总分查询(SCORE_SEARCH)"<<endl;cout<<"(7): 英语成绩合计(ENGLISH_SUM)"<<endl;cout<<"(8): fox成绩合计(FOX_SUM)"<<endl;cout<<"(9): C语言成绩合计(C_SUM)"<<endl;cout<<"(10):总分统计(COUNT)"<<endl;cout<<"(11):总分排序(SORT)"<<endl;cout<<"(12): 拷贝(显示全部)(COPY)"<<endl;cout<<"(0): 退出(EXIT)"<<endl;cout<<"请输入您要进行的操作,0表示结束"<<endl;cin>>op;if(!op)break;if(op==1){Create_linklist(head);cout<<"链表创建完毕,您输入的学生信息是:"<<endl;Display(head);cout<<endl<<endl;continue;}if(op == 2){Add(head);cout<<endl<<endl;continue;}if(op==3){Delete(head);cout<<endl<<endl;continue;}if(op==4){Search(head);cout<<endl<<endl;continue;}if(op==5){Name_search(head);cout<<endl<<endl;continue;}if(op==6){Score_search(head);cout<<endl<<endl;continue;}if(op == 7){English_sum(head);cout<<endl<<endl;continue;}if(op == 8){Fox_sum(head);cout<<endl<<endl;continue;}if(op == 9){C_sum(head);cout<<endl<<endl;continue;}if(op==10){Tongji(head);cout<<endl<<endl;continue;}if(op==11){Score_sort(head);cout<<endl<<endl;continue;}if(op==12){linklist copier;Copy(copier,head);cout<<"拷贝完成!"<<endl<<"拷贝后的链表为:"<<endl;Display(copier);cout<<endl<<endl;continue;}else{Error();cout<<endl<<endl;continue;}}
}int main()
{menu();cout<<"实验完成!!!!!!!!!!!!!!!!"<<endl;return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!