问题描述及代码:
/*
* 烟台大学计算机与控制工程学院
*文件名称:student
*作 者:张晓彤
*完成日期:2016年12月28日
*版 本 号:v1.0
*
*问题描述:学生成绩管理系统及开发
*
*输入描述:无
*程序输出:无
*/
Find.cpp
#include<stdio.h>
#include<windows.h>//清屏
#include<iostream>
#include<malloc.h>
#include<string.h>
#include"student.h"
using namespace std;
/*******************************************************
功能描述:调用输出函数,将输入的学生成绩信息一一遍历输出
输入参数:1
输出参数:学生姓名、学号、科目、成绩
*******************************************************/
void StuFindErg(Student *L)
{
Student *p=(Student *)malloc(sizeof(Student));
p=L->next;
int i=1;
while(p!=NULL)
{
cout<<"第"<<i<<"位学生的信息:"<<endl;
cout<<"学生姓名:";
cout<<p->name;
cout<<"学生学号:";
cout<<p->num;
cout<<"考试科目:";
cout<<p->subject;
cout<<"科目成绩";
cout<<p->score<<endl;
p=p->next;
i++;
}
}
/*************************************************
功能描述:通过学生学号,调用输出函数,输出该生信息
输入函数:学号
输出函数:学生姓名、学号、科目、成绩
*************************************************/
void StuFindNum(Student *L)//按学号查找
{
int num;
cout<<"请输入要查找的学生的学号:";
cin>>num;
Student *p=(Student *)malloc(sizeof(Student));
p=L->next;
int i=1;
while(p!=NULL)
{
if(num==p->num)
{
StuOut(p); //调用输出函数
i++;
}
p=p->next;
}
if(i==1)
cout<<"没有该学生的信息,请检查输入是否正确!";
}
/*******************************************************
功能描述:调用输出函数,采用选择排序,按成绩由高到低输出
输入参数:无
输出参数:学生成绩信息
********************************************************/
void Stupaixu(Student *L) //总成绩排名输出
{
Student exchange,*r,*p,*q;
r=L->next;
if(r==NULL)
{
printf("暂无学生成绩信息!\n");
return;
}
while(r)
{
p=r;
q=r->next;
while(q)
{
if(q->score>p->score)
{
exchange.num=q->num; //先复制q结点信息到exchange
strcpy(exchange.name,q->name);
exchange.score=q->score;
q->num=p->num; //再复制p结点信息到q
strcpy(q->name,p->name);
q->score=p->score;
p->num=exchange.num; //最后复制exchange结点信息到p
strcpy(p->name,exchange.name);
p->score=exchange.score;
}
q=q->next;
}
r=r->next;
}
StuOut(L);
}
In_Out.cpp
#include<stdio.h>
#include<iostream>
#include<malloc.h>
#include<string.h>
#include"student.h"
#include<stdlib.h>
using namespace std;
/************************************
功能描述:输出学生成绩信息
输入函数:无
输出函数:学生姓名、学号、科目、成绩
************************************/
void StuOut(Stu