linux编程,C语言基础,基于链表的成绩管理系统
2020-07-20 04:23
1051 查看
基于链表的成绩管理系统
#include<stdio.h> #include<stdlib.h> typedef struct student { char *name; int chinese; int math; int english; struct student *temp; }STU,*STCU; typedef struct class { STCU stu1; struct class *next; }STC,*STCC; void lianStudent(STCC head); void lianClass(STCC head) { STCC p=head; int h; for(h=0;h<4;h++) { STCC new=(STCC)malloc(sizeof(STC)+5*sizeof(STU)); p->next=new; p=new; p->next=NULL; } lianStudent(head); } void lianStudent(STCC head) { int i,j; STCC q=head; head->stu1=(STCU)malloc(sizeof(STU)); STCU w=head->stu1; for(i=0;i<5;i++) { if(i!=0) { w=(STCU)malloc(sizeof(STU)); } for(j=0;j<4;j++) { STCU new=(STCU)malloc(sizeof(STU)); w->temp=new; w=new; w->temp=NULL; } if(i!=4) { q=q->next; w=q->stu1; } } } void shuRuChengJi(STCC head) { int i,j; STCC p=head; STCU q=p->stu1; for(i=0;i<5;i++) { printf("The %d class\n",i+1); for(j=0;j<5;j++) { q->name=(char *)malloc(128); printf("please input %d student's score\n",j+1); printf("please input his name\n"); scanf("%s",q->name); printf("please input his Chinese score\n"); scanf("%d",&q->chinese); printf("please input his Math score\n"); scanf("%d",&q->math); printf("please input his English score\n"); scanf("%d",&q->english); if(j!=4) { q=q->temp; } } if(i!=4) { p=p->next; q=p->stu1; } } } void jiSuanZongFen(STCC head) { STCC p=head; STCU q=p->stu1; int i,j; int sum[5]={0}; int max=sum[0],min=sum[0]; int maxnum,minnum; float ava=0; for(j=0;j<5;j++) { sum[0]=0; sum[1]=0; sum[2]=0; sum[3]=0; sum[4]=0; ava=0; for(i=0;i<5;i++) { sum[i]=sum[i]+q->chinese+q->math+q->english; if(i!=4) { q=q->temp; } } max=sum[0]; min=sum[0]; for(i=0;i<5;i++) { ava+=sum[i]; } ava=(float)ava/5; q=p->stu1; for(i=0;i<5;i++) { if(sum[i]>max) { max=sum[i]; maxnum=i+1; } if(sum[i]<min) { min=sum[i]; minnum=i+1; } } for(i=0;i<maxnum-1;i++) { q=q->temp; } printf("%d class:\n",j+1); printf("average total score:%f\n",ava); printf("%s is the best,his score is %d\n",q->name,max); q=p->stu1; for(i=0;i<minnum-1;i++) { q=q->temp; } printf("%s is the lowest,his score is %d\n",q->name,min); if(j!=4) { p=p->next; q=p->stu1; } } } int main() { STCC head=(STCC)malloc(sizeof(STC)+5*sizeof(STU)); lianClass(head); // int i,j; // STCC p=head; // STCU q=p->stu1; /* for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("input\n"); scanf("%d",&q->chinese); printf("%d",q->chinese); q=q->temp; } p=p->next; q=p->stu1; }*/ shuRuChengJi(head); jiSuanZongFen(head); return 0; }
相关文章推荐
- 基于链表的学生成绩管理系统
- Linux基础入门及系统管理01-bash脚本编程之四文件测试及特殊变量19
- C语言基于单链表得学生成绩管理系统
- Java基础编程小练习---(数组)学生成绩管理系统
- Linux系统下C语言编程基础知识介绍
- 基于汇编语言的学生成绩管理系统
- Liunx 命令行与shell脚本编程大全 第八章学习笔记(Linux系统的包管理基础)
- V4L2基础编程基于Linux系统
- Linux基础入门及系统管理01-bash脚本编程之三整数测试及算术运算18
- Linux基础入门及系统管理01-bash脚本编程之五字符串测试及for循环21
- 基于链表的学生成绩管理系统——C++二进制文件读写string对象时出现的错误
- Linux基础入门及系统管理01-bash脚本编程之一变量、变量类型等16
- Linux系统下C语言编程基础知识介绍
- (无代码)基于动态结构体链表的学生成绩管理系统设计
- Linux系统基础知识(二)基于linux系统下的用户管理操作以及文件操作补充
- Linux系统下C语言编程基础知识介绍
- 【C语言基础】学生成绩管理系统(方法:数组)
- 基于C++、链表以及泛型编程的学生成绩管理系统
- Linux基础入门及系统管理01-bash脚本编程之二if等条件判断脚本知识17
- 【C语言基础】C语言静态学生成绩管理系统