第0题 课程程序设计
来源:互联网 发布:人工智能机器 编辑:程序博客网 时间:2024/05/09 20:40
不是很会写,只能写一个班级的。4个班级排序不出来。
#include<iostream>using namespace std;typedef struct student{ char no[4]; char name[32]; int score[6]; int total;}stu;typedef struct node{ stu data; struct node *prior,*next;}DLink;class list{private: DLink *L;public : void createList(); void displayLink(); void insert(); void del(); void modify(); void order();};void list::createList() //创建链表{ int i; DLink *p,*q; q=L; p=(DLink *)malloc(sizeof(DLink)); if(!p) { cout<<"内存分配失败!\n"; exit(0); } cout<<"输入学生学号!\n"; cin>>"%s",p->data.no; while(strcmp(p->data.no,"0000")) { cout<<"输入姓名:\n"; cin>>"%s",p->data.name; cout<<"依次输入数电 模电 英语 C++ 毛概 体育6门课程的成绩:\n"; for(i=0;i<6;i++) cin>>"%d",&p->data.score[i]; p->data.total=p->data.score[0]+p->data.score[2]; q->next=p; p->prior=q; p->next=L; L->prior=p; q=p; p=(DLink *)malloc(sizeof(DLink)); cout<<"输入学生学号:\n"; cin>>"%s",p->data.no; }} void list::displayLink() //显示学生表信息{ int i; DLink *p; p=L->next; cout<<"学号 姓名 语文 数学 英语 总分\n"; while(p!=L) { cout<<" %s ",p->data.no; cout<<" %s ",p->data.name; for(i=0;i<3;i++) cout<<"%d",p->data.score[i]; cout<<"%d\n",p->data.total; p=p->next; }}void list::insert() //在第i个位置插入学生信息{ int i; int j=1,k; DLink *p,*q; p=(DLink *)malloc(sizeof(DLink)); if(!p){ cout<<"内存分配失败!\n"; exit(0); } q=L; while(j<i&&q->next!=L) { j++; q=q->next; } if(q!=L) { cout<<"现在进行插入操作!输入学号:\n"; cin>>"%s",p->data.no; cout<<"输入姓名:\n"; cin>>"%s",p->data.name; cout<<"依次输入数电 模电 英语 C++ 毛概 体育6门课程的成绩:\n"; for(k=0;k<3;k++) cout<<"%d",&p->data.score[k]; p->data.total=p->data.score[0]+p->data.score[2]; p->next=q->next; q->next->prior=p; q->next=p; p->prior=p; }}void list::del() //删除操作{ char a[8]; DLink *p,*q; p=L->next; cout<<"输入要删除的学生的姓名:"; cin>>"%s",a; while(p!=L) { if(strcmp(a,p->data.name)==0) { p->prior->next=p->next; p->next->prior=p->prior; q=p; p=p->next; free(q); } else p=p->next; }}void list::modify() //修改学生成绩{ int b[3],i; DLink *p; p=L->next; char a[4]; cout<<"输入需要修改成绩的学生学号:\n"; cin>>("%s",a); while(p!=L) { if(strcmp(p->data.no,a)==0){ cin>>("依次输入修改后的数电 模电 英语 C++ 毛概 体育6门课程的成绩:\n"); for(i=0;i<3;i++) cin>>"%d",&b[i]; p->data.score[0]=b[0]; p->data.score[1]=b[1]; p->data.score[2]=b[2]; p->data.total=b[0]+b[1]+b[2]; break; } p=p->next; } if(p=L) cout<<"!\n";}void list::order() //按学生总分降序排列{ DLink *p,*q,*r; p=L->next; if(p!=L) { r=p->next; p->next=L; p=r; while(p!=L) { r=p->next; q=L; while(q->next!=L&&q->next->data.total>p->data.total) q=q->next; p->next=q->next; if(q->next!=L)q->next->prior=p; q->next=p; p->prior=q; p=r; } }}void main(){ list l; int n; cout<<"*******************************"<<endl; cout<<"1.创建"<<endl; cout<<"2.插入"<<endl; cout<<"3.删除"<<endl; cout<<"4.更改"<<endl; cout<<"5.排序"<<endl; cout<<"退出"<<endl; cout<<"*******************************"<<endl; cout<<"请输入您要选择的功能:"; cin>>n; do{ switch(n) { case 1: { l.createList(); l.displayLink(); break; } case 2: { l.insert(); l.displayLink(); break; } case 3: { l.del(); l.displayLink(); break; } case 4: { l.modify(); l.displayLink(); break; } case 5: { l.order(); l.displayLink(); break; } default: break; } }while(n>0&&n<6); cout<<"退出循环"<<endl;}
0 0
- 第0题 课程程序设计
- 博览网c++面向对象程序设计 第一周课程
- C++ 程序设计课程介绍
- Java程序设计课程资源
- C++程序设计课程
- 《C#程序设计》课程考核
- C#程序设计课程总结
- 《ACM程序设计》课程总结
- ACM程序设计课程总结报告
- 课程 Java程序设计 - 怀旧版
- 面向对象程序设计课程主页
- 程序设计实践课程记录1
- 程序设计实践课程记录2
- 程序设计实践课程记录3
- 程序设计实践课程记录5
- 程序设计实践课程记录6
- 程序设计实践课程记录7
- 【c++应用程序设计】第0章 计算机系统及程序设计
- Linux命令二
- Ubuntu 12.04安装Java开发环境(jdk1.7 + Eclipse)
- 集合框架描述
- ubuntu12.04下安装java7
- Happy日记-20140620
- 第0题 课程程序设计
- Android SystemProperties设置/取得系统属性的用法总结
- [linux]ubuntu上卸载openjdk并安装sunjdk
- 安装各种python库,非官方,也健康
- poll作用
- 学校学生成绩管理
- 2008R2 中 dreamweaver cs6 kernelbase.dll异常
- Windows 7下硬盘安装Ubuntu 13.04图文教程
- hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活