精选问答
打印学生成绩表,每个学生的信息包括姓名、学号及高等数学、英语、线性代数、物理等几门课程的成绩。  要求:输入5个学生的相关信息,并在屏幕上输出。

2019-04-03

打印学生成绩表,每个学生的信息包括姓名、学号及高等数学、英语、线性代数、物理等几门课程的成绩。
  要求:输入5个学生的相关信息,并在屏幕上输出。
优质解答
//把课程名称替换下就OK了
#include
#include
#include
#include
#include
#define DELAYTIME 1000
typedef struct studentinfo //结构体定义
{
int num;//学号
char name[64];//姓名
int sex;//性别,1为男性,0为女性
float math;//数学
float english;//英语
float politic;//政治
float chinese;//语文
float total;//总成绩
struct studentinfo *next;
}STUDENT;
STUDENT * new_student()
//功能:创建学生信息(通过链表)
//返回值:头结点指针
{
STUDENT *pnew,*p,*head;
float *pfloat;
char ch;
head=NULL;
do
{
system("cls");
pnew=(STUDENT *)malloc(sizeof(STUDENT)*1);
cout<<"请输入学生的学号(0表示取消): ";
cin>>pnew->num;
if(0>=pnew->num)
{
break;
}
cout<<"请输入学生的姓名:";
cin>>pnew->name;

while(1)
{

cout<<"请输入学生的性别:0/1\t";
cin>>pnew->sex;
if(pnew->sex&&pnew->sex-1)
{
cout<<"性别输入错误,0表示女性,1表示男性,请重新输入"< }
else
{
break;
}
}



cout<<"请依次输入学生的数学、英语、政治、语文成绩:"<
for(pnew->total=0,pfloat=&pnew->math;pfloat<&pnew->math+4;)
{
cin>>*pfloat;
if(*pfloat<0||*pfloat>150)
{
cout<<"成绩输入错误,只能为0~150"< }
else
{
pnew->total+=*pfloat;
pfloat++;
}
}
if(head==NULL)
{
head=pnew;
}
else
{
p->next=pnew;
}
p=pnew;
pnew->next=NULL;
cout<<"##########################该学生信息已生成#########################";
cout<<"建立另一个学生的信息? Y/N\t";
cin>>ch;
}while(ch=='Y'||ch=='y');
return head;
}
int pri_whole_link(STUDENT *head)
//功能:显示整条链表的学生信息
//参数:head 头结点指针,如果head为空,返回空
{
system("cls");
STUDENT* p;
if (head==NULL)
{
cout<<"数据库未加载"< Sleep(DELAYTIME);
return 0;
}
cout<<"学号\t姓名\t性别\t数学\t英语\t政治\t语文\t总成绩";
for(p=head;p;p=p->next)
{
cout<num<<"\t"<name<<"\t"<sex<<"\t"<math<<"\t"<english<<"\t"<politic<<"\t"<chinese<<"\t"<total< }
return 1;
}
void main()
{
STUDENT *head;
head=new_student();
pri_whole_link(head);
}
//把课程名称替换下就OK了
#include
#include
#include
#include
#include
#define DELAYTIME 1000
typedef struct studentinfo //结构体定义
{
int num;//学号
char name[64];//姓名
int sex;//性别,1为男性,0为女性
float math;//数学
float english;//英语
float politic;//政治
float chinese;//语文
float total;//总成绩
struct studentinfo *next;
}STUDENT;
STUDENT * new_student()
//功能:创建学生信息(通过链表)
//返回值:头结点指针
{
STUDENT *pnew,*p,*head;
float *pfloat;
char ch;
head=NULL;
do
{
system("cls");
pnew=(STUDENT *)malloc(sizeof(STUDENT)*1);
cout<<"请输入学生的学号(0表示取消): ";
cin>>pnew->num;
if(0>=pnew->num)
{
break;
}
cout<<"请输入学生的姓名:";
cin>>pnew->name;

while(1)
{

cout<<"请输入学生的性别:0/1\t";
cin>>pnew->sex;
if(pnew->sex&&pnew->sex-1)
{
cout<<"性别输入错误,0表示女性,1表示男性,请重新输入"< }
else
{
break;
}
}



cout<<"请依次输入学生的数学、英语、政治、语文成绩:"<
for(pnew->total=0,pfloat=&pnew->math;pfloat<&pnew->math+4;)
{
cin>>*pfloat;
if(*pfloat<0||*pfloat>150)
{
cout<<"成绩输入错误,只能为0~150"< }
else
{
pnew->total+=*pfloat;
pfloat++;
}
}
if(head==NULL)
{
head=pnew;
}
else
{
p->next=pnew;
}
p=pnew;
pnew->next=NULL;
cout<<"##########################该学生信息已生成#########################";
cout<<"建立另一个学生的信息? Y/N\t";
cin>>ch;
}while(ch=='Y'||ch=='y');
return head;
}
int pri_whole_link(STUDENT *head)
//功能:显示整条链表的学生信息
//参数:head 头结点指针,如果head为空,返回空
{
system("cls");
STUDENT* p;
if (head==NULL)
{
cout<<"数据库未加载"< Sleep(DELAYTIME);
return 0;
}
cout<<"学号\t姓名\t性别\t数学\t英语\t政治\t语文\t总成绩";
for(p=head;p;p=p->next)
{
cout<num<<"\t"<name<<"\t"<sex<<"\t"<math<<"\t"<english<<"\t"<politic<<"\t"<chinese<<"\t"<total< }
return 1;
}
void main()
{
STUDENT *head;
head=new_student();
pri_whole_link(head);
}
相关问答