• 回答数

    1

  • 浏览数

    99

真的啊1988
首页 > 英语培训 > displaylink英语

1个回答 默认排序
  • 默认排序
  • 按时间排序

福气少女毛毛酱

已采纳

#includeusing namespace std;typedef struct student{ char no[4]; char name[8]; int score[3]; 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) { printf("内存分配失败!\n"); exit(0); } printf("输入学生学号!\n"); scanf("%s",p->data.no); while(strcmp(p->data.no,"0000")) { printf("输入姓名:\n"); scanf("%s",p->data.name); printf("依次输入英语 语文 数学3门课程的成绩:\n"); for(i=0;i<3;i++) scanf("%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)); printf("输入学生学号:\n"); scanf("%s",p->data.no); }} void list::displayLink() //显示学生表信息{ int i; DLink *p; p=L->next; printf("学号 姓名 语文 数学 英语 总分\n"); while(p!=L) { printf(" %s ",p->data.no); printf(" %s ",p->data.name); for(i=0;i<3;i++) printf("%d",p->data.score[i]); printf("%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){ printf("内存分配失败!\n"); exit(0); } q=L; while(jnext!=L) { j++; q=q->next; } if(q!=L) { printf("现在进行插入操作!输入学号:\n"); scanf("%s",p->data.no); printf("输入姓名:\n"); scanf("%s",p->data.name); printf("依次输入英语 语文 数学3门课程的成绩:\n"); for(k=0;k<3;k++) scanf("%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; printf("输入要删除的学生的姓名:"); scanf("%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]; printf("输入需要修改成绩的学生学号:\n"); scanf("%s",a); while(p!=L) { if(strcmp(p->data.no,a)==0){ printf("依次输入修改后的英语 语文 数学3门课程的成绩:\n"); for(i=0;i<3;i++) scanf("%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) printf("!\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<<"*******************************"<>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<<"退出循环"<

displaylink英语

143 评论(14)

相关问答