
急求C语言期末大作业:学生成绩管理系统!!!(并附有详解)
实验要求:1)建立一个学生数据文件stu.txt,数据中包括学号、姓名、性别、年龄、五门课的成绩。要求学生人数每不少于16人。2)能根据学号或姓名查询任一学生某门课成绩或...
实验要求:1) 建立一个学生数据文件stu.txt,数据中包括学号、姓名 、性别、 年龄、五门课的成绩。要求学生人数每不少于16人。
2 )能根据学号或姓名查询任一学生某门课成绩或所有课程成绩。
3)系统界面自行设计。
4)能修改学生的任何一个数据,并设置相应的修改口令。
5)能按总成绩从高到低显示所有学生的数据(一屏输出8个学生数据),包括每个学生的平均分,并输出到文件out5.txt. 展开
2 )能根据学号或姓名查询任一学生某门课成绩或所有课程成绩。
3)系统界面自行设计。
4)能修改学生的任何一个数据,并设置相应的修改口令。
5)能按总成绩从高到低显示所有学生的数据(一屏输出8个学生数据),包括每个学生的平均分,并输出到文件out5.txt. 展开
2个回答
展开全部
1、题目:
学生成绩管理程序
2、要求:
1)编制一个统计学生考试分数的管理程序。
2)设学生成绩已以一个学生一个记录的形式存储在文件中,
3)每位学生记录包含的信息有:姓名,学号和各门功课的成绩。
4)程序具有以下几项功能:求出各门课程的总分,平均分,按姓名,
5)按学号寻找其记录并显示,浏览全部学生成绩和按总分由高到低显示学生信息等。
#include<iostream>
#include<string>
using namespace std;
struct record
{
char name[20]; /* 姓名 */
char code[20]; /* 学号 */
int mathmark; /* 数学课程成绩 */
int englishmark; /* 英语课程成绩 */
int compmark; /* 计算机课程成绩 */
}stu[20];
int total[20][3],avg[20][3];
int student_total[20],flag[20];
void input()//从键盘输入20个学生的各项信息
{
int i;
for(i=0;i<20;i++)
{
cout<<"输入第"<<i+1<<"个学生信息"<<endl;
cout<<"输入学生姓名:";
cin>>stu[i].name;
cout<<"输入学生学号:";
cin>>stu[i].code;
cout<<"输入数学成绩: ";
cin>>stu[i].mathmark;
cout<<"输入英语成绩: ";
cin>>stu[i].englishmark;
cout<<"输入计算机成绩: ";
cin>>stu[i].compmark;
cout<<endl;
}
}
void find_by_name(char *p)//按姓名寻找其记录并显示,如输入“张三”,即可输出该同学的学号和三门功课的成绩
{
int i;
for(i=0;i<20;i++)
if(strcmp(stu[i].name,p)==0)
{
cout<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
cout<<stu[i].code<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
break;
}
}
void find_by_code(char *p)//按学号寻找其记录并显示,如输入“09001”,即可输出该同学的姓名和三门功课的成绩
{
int i;
for(i=0;i<20;i++)
if(strcmp(stu[i].code,p)==0)
{
cout<<"姓名\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
cout<<stu[i].name<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
break;
}
}
void disp()//浏览全部学生的各项信息
{
int i;
cout<<"姓名\t"<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
for(i=0;i<20;i++)
{
cout<<stu[i].name<<"\t"<<stu[i].code<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
}
}
void dis_by_total()//按总分由高到低显示学生信息等
{
int i,j,n;
int temp1,temp2;
for(i=0;i<20;i++)flag[i]=i;
n=19;
while(n>0)
{
j=0;
for(i=0;i<n;i++)
if(student_total[i]<student_total[i+1])
{
temp1=student_total[i];
student_total[i]=student_total[i+1];
student_total[i+1]=temp1;
temp2=flag[i];
flag[i]=flag[i+1];
flag[i+1]=temp2;
j=i;
}
n=j;
}
cout<<"姓名\t"<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
for(i=0;i<20;i++)
{
cout<<stu[flag[i]].name<<"\t"<<stu[flag[i]].code<<"\t"<<stu[flag[i]].mathmark<<"\t"<<stu[flag[i]].englishmark<<"\t"<<stu[flag[i]].compmark<<endl;
}
}
int main()
{
char name[20];
char code[20];
cout<<"请输入学生信息!!"<<endl;
input();
cout<<"\n请输入您要查找的名字:";
cin>>name;
find_by_name(name);
cout<<"\n请输入您要查找的学号:";
cin>>code;
find_by_code(code);
cout<<"\n显示所有学生信息:"<<endl;
disp();
cout<<"\n按总分由高到低显示学生信息!!"<<endl;
dis_by_total();
return 0;
}
自己再根据需要改改,应该可以的
学生成绩管理程序
2、要求:
1)编制一个统计学生考试分数的管理程序。
2)设学生成绩已以一个学生一个记录的形式存储在文件中,
3)每位学生记录包含的信息有:姓名,学号和各门功课的成绩。
4)程序具有以下几项功能:求出各门课程的总分,平均分,按姓名,
5)按学号寻找其记录并显示,浏览全部学生成绩和按总分由高到低显示学生信息等。
#include<iostream>
#include<string>
using namespace std;
struct record
{
char name[20]; /* 姓名 */
char code[20]; /* 学号 */
int mathmark; /* 数学课程成绩 */
int englishmark; /* 英语课程成绩 */
int compmark; /* 计算机课程成绩 */
}stu[20];
int total[20][3],avg[20][3];
int student_total[20],flag[20];
void input()//从键盘输入20个学生的各项信息
{
int i;
for(i=0;i<20;i++)
{
cout<<"输入第"<<i+1<<"个学生信息"<<endl;
cout<<"输入学生姓名:";
cin>>stu[i].name;
cout<<"输入学生学号:";
cin>>stu[i].code;
cout<<"输入数学成绩: ";
cin>>stu[i].mathmark;
cout<<"输入英语成绩: ";
cin>>stu[i].englishmark;
cout<<"输入计算机成绩: ";
cin>>stu[i].compmark;
cout<<endl;
}
}
void find_by_name(char *p)//按姓名寻找其记录并显示,如输入“张三”,即可输出该同学的学号和三门功课的成绩
{
int i;
for(i=0;i<20;i++)
if(strcmp(stu[i].name,p)==0)
{
cout<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
cout<<stu[i].code<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
break;
}
}
void find_by_code(char *p)//按学号寻找其记录并显示,如输入“09001”,即可输出该同学的姓名和三门功课的成绩
{
int i;
for(i=0;i<20;i++)
if(strcmp(stu[i].code,p)==0)
{
cout<<"姓名\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
cout<<stu[i].name<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
break;
}
}
void disp()//浏览全部学生的各项信息
{
int i;
cout<<"姓名\t"<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
for(i=0;i<20;i++)
{
cout<<stu[i].name<<"\t"<<stu[i].code<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
}
}
void dis_by_total()//按总分由高到低显示学生信息等
{
int i,j,n;
int temp1,temp2;
for(i=0;i<20;i++)flag[i]=i;
n=19;
while(n>0)
{
j=0;
for(i=0;i<n;i++)
if(student_total[i]<student_total[i+1])
{
temp1=student_total[i];
student_total[i]=student_total[i+1];
student_total[i+1]=temp1;
temp2=flag[i];
flag[i]=flag[i+1];
flag[i+1]=temp2;
j=i;
}
n=j;
}
cout<<"姓名\t"<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
for(i=0;i<20;i++)
{
cout<<stu[flag[i]].name<<"\t"<<stu[flag[i]].code<<"\t"<<stu[flag[i]].mathmark<<"\t"<<stu[flag[i]].englishmark<<"\t"<<stu[flag[i]].compmark<<endl;
}
}
int main()
{
char name[20];
char code[20];
cout<<"请输入学生信息!!"<<endl;
input();
cout<<"\n请输入您要查找的名字:";
cin>>name;
find_by_name(name);
cout<<"\n请输入您要查找的学号:";
cin>>code;
find_by_code(code);
cout<<"\n显示所有学生信息:"<<endl;
disp();
cout<<"\n按总分由高到低显示学生信息!!"<<endl;
dis_by_total();
return 0;
}
自己再根据需要改改,应该可以的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询