c语言学生成绩管理系统-数据结构课程设计报告|数据结构课程设计
要求是这样的1、用c语言编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。2、具体要求:建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。 程序运行时显示一个简单的菜单,例如: (1):信息输入(INPUT) (2):总分统计(COUNT) (3):总分排序(SORT) (4):查询(QUERY) 其中: (1):对4个学生的信息进行输入; (2):对每个学生的3门课程统计总分; (3):对4个学生的总分按降序排序并显示出来; (4):查询输入一个学号后,显示出该学生的有关信息;............偶先写了个...#i nclude
#i ncludestruct student{ int num; char name[20]; int foxscore; int cscore; int englishscore; struct student *next;};
void menu(){ cout<<" welecome to my student grade management system"<struct student *creat(struct student *head) // 函数返回的是与节点相同类型的指针{ struct student *p1,*p2; p1=p2=(struct student*) malloc(sizeof(struct student)); // 申请新节点 cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore; // 输入节点的值 p1-> next = NULL; // 将新节点的指针置为空 while(p1->num>0) { if (head==NULL) head=p1; //空表,接入表头 else p2->next=p1; // 非空表,接到表尾 p2 = p1; p1=(struct student *)malloc(sizeof(struct student)); //申请下一个新节点 cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore; //输入节点的值 } return head; //返回链表的头指针}
void count(struct student *head){ struct student *temp; temp=head; //取得链表的头指针 while(temp!==NULL) { int m; m=temp->foxscore+temp->cscore+temp->englishscore; cout<next; //跟踪链表增长 }
}void sort(struct student *head){ struct student *tp; tp=head; int a[4];//定义总分数组 int i,j,k; while(temp!==NULL) { a[i]=tp->foxscore+tp->cscore+tp->englishscore; tp=tp->next; i=i+1; } for(j=1;j<=3;j++)//冒泡法排序 for(k=1;k<=4-j;k++) if(a[k]}void query(struct student *head){ struct student *temper; temper=head; int number; cin>>number; for(int i=1;i<=4;i++) { if(number==temper->num) { cout<<" name is:"<name<foxscore<cscore<englishscore<next; }}void main(){ menu(); cout<<" firstly,please input information:"<#i ncludestruct student{ int num; char name[20]; int foxscore; int cscore; int englishscore; struct student *next;};
void menu(){ cout<<" welecome to my student grade management system"<struct student *creat(struct student *head) // 函数返回的是与节点相同类型的指针{ struct student *p1,*p2; p1=p2=(struct student*) malloc(sizeof(struct student)); // 申请新节点 cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore; // 输入节点的值 p1-> next = NULL; // 将新节点的指针置为空 for(int i=1;i<=4;i++) { if (head==NULL) head=p1; //空表,接入表头 else p2->next=p1; // 非空表,接到表尾 p2 = p1; p1=(struct student *)malloc(sizeof(struct student)); //申请下一个新节点 if(i<=3) { cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore; } //输入节点的值 } return head; //返回链表的头指针}
void count(struct student *head){ struct student *temp; temp=head; //取得链表的头指针 for(int i=1;i<=4;i++) { int m; m=temp->foxscore+temp->cscore+temp->englishscore; cout<next; //跟踪链表增长 }
}void sort(struct student *head){ struct student *tp; tp=head; int a[4];//定义总分数组 int i,j,k; a[1]=tp->foxscore+tp->cscore+tp->englishscore; tp=tp->next; a[2]=tp->foxscore+tp->cscore+tp->englishscore; tp=tp->next; a[3]=tp->foxscore+tp->cscore+tp->englishscore; tp=tp->next; a[4]=tp->foxscore+tp->cscore+tp->englishscore; for(j=1;j<=3;j++)//冒泡法排序 for(k=1;k<=4-j;k++) if(a[k]}void query(struct student *head){ struct student *temper; temper=head; int number; cin>>number; for(int i=1;i<=4;i++) { if(number==temper->num) { cout<<" name is:"<name<foxscore<cscore<englishscore<next; }}void main(){ menu(); cout<<" firstly,please input information:"<