编写一个c程序,对一个班(不多于35人)的学生成绩进行管理,其中:每个学生的数据包括学号,姓名,三

编写一个c程序,对一个班(不多于35人)的学生成绩进行管理,其中:每个学生的数据包括学号,姓名,三门课的成绩(英语,数学,计算机),平均成绩和总成绩。
程序功能要求:
1.数据输入。按一定格式输入若干名学生的数据(要求对输入格式有所提示)
2.数据输出。用比较美观的格式输出所有学生的数据。如果没有记录,输出提示信息。
3.数据排序。对输入的数据按学号进行由低到高的排序(冒泡法或选择法)
4.数据查找。查找指定学号的学生数据,并按照一定的格式输出查找结果,如果没有找到,输出提示信息。
5.数据插入。按学号插入一学生的数据,插入合适的位置,保证插入后的数据仍然按学号由大到小顺序排列,要求插入时发现已有该学号的数据,应提示拒绝插入信息,此外能够实现连续插入。
6.数据删除:删除指定学号的学生数据。(要求能够进行连续删除,如果没有找到该学生,输出提示信息)
7.数据统计。按平均分统计各个分数段的学生人数,输出统计结果。
0.退出:退出整个程序的运行

可能有些难,各位大神忙的话只要几个简单的功能也可的,很简陋也行的。

这个要求比较多,我先给你个我以前写的,只有一部分的功能,你参考下吧

运行界面如下:

//2.C++学生成绩管理系统

#include <iostream>

#include <string>

#include <fstream>

using namespace std;


#define F "e:\\a.txt"

#define N 5


/*本程序需要在E盘根目录下创建一个a.txt的文件,文件内容格式为:

姓名 学号 语文成绩 数学成绩 英语成绩 


以行为单位,比如第一行输入 张三 1 90 80 70 

本程序就能对数据进行处理 

*/ 


void caidan(); //菜单函数

void sum(); //(1)各门课程的总分﹑平均分

void find_name(); //(2)按姓名寻找记录并显示

void find_num(); //(3)按学号寻找记录并显示

void total_data(); //(4)查询全部学生成绩

void rank_display();//(5)按总分由高到低显示学生信息


typedef struct student

{

char name[10];

int num;

int chinese;

int math;

int english;

}S;


S s[10];


int main(void)

{

caidan();

return 0;

}


void caidan()

{

cout<<"\t\t\t"<<"《学生成绩管理系统》"<<endl;

cout<<"(1)各门课程的总分﹑平均分"<<endl;

cout<<"(2)按姓名寻找记录并显示"<<endl;

cout<<"(3)按学号寻找记录并显示"<<endl;

cout<<"(4)查询全部学生成绩"<<endl;

cout<<"(5)按总分由高到低显示学生信息"<<endl;

cout<<"(6)退出"<<endl;


while(1)

{

int i;

cout<<"请选择功能"<<endl;

cin>>i;

switch(i)

{

case 1: sum();  break;

case 2: find_name();  break;

case 3: find_num();  break;

case 4: total_data();  break;

case 5: rank_display();  break;

case 6: break;

default:cout<<"error"<<endl;break;

}

if(i==6)

{cout<<"退出"<<endl;break;}

}

}


//(1)各门课程的总分﹑平均分

void sum()

{

cout<<endl;

cout<<"各门课程的总分﹑平均分:"<<endl<<endl;


int i;

int sum_c=0,ave_c;

int sum_m=0,ave_m;

int sum_e=0,ave_e;

ifstream infile("e:\\a.txt");

cout<<"姓名"<<"\t"<<"学号"<<"\t"<<"语文成绩"<<"\t"<<"数学成绩"<<"\t"<<"英语成绩"<<endl;

for(i=0;i<N;i++)

{

infile>>s[i].name>>s[i].num>>s[i].chinese>>s[i].math>>s[i].english;

cout<<s[i].name<<"\t"<<s[i].num<<"\t"<<s[i].chinese<<"\t\t"<<s[i].math<<"\t\t"<<s[i].english<<endl;

sum_c += s[i].chinese; ave_c=sum_c/3;

sum_m += s[i].math; ave_m=sum_m/3;

sum_e += s[i].english; ave_e=sum_e/3;

}


cout<<"总分"<<"\t\t"<<"语文总分"<<"\t"<<"数学总分"<<"\t"<<"英语总分"<<endl;

cout<<"\t\t"<<sum_c<<"\t\t"<<sum_m<<"\t\t"<<sum_e<<endl;


cout<<"平均分"<<"\t\t"<<"语文平均分"<<"\t"<<"数学平均分"<<"\t"<<"英语平均分"<<endl;

cout<<"\t\t"<<ave_c<<"\t\t"<<ave_m<<"\t\t"<<ave_e<<endl;

infile.close();

}

//(2)按姓名寻找记录并显示

void find_name()

{

cout<<endl;

cout<<"按姓名寻找记录并显示:"<<endl<<endl;


int i;

char a[20];

cout<<"请输入学生姓名"<<endl;

cin>>a;


ifstream infile(F);


for(i=0;i<N;i++)

{


infile>>s[i].name>>s[i].num>>s[i].chinese>>s[i].math>>s[i].english;


if(strcmp(a,s[i].name)==0)

{

cout<<"该学生信息如下:"<<endl;

cout<<"姓名"<<"\t"<<"学号"<<"\t"<<"语文成绩"<<"\t"<<"数学成绩"<<"\t"<<"英语成绩"<<endl;

cout<<s[i].name<<"\t"<<s[i].num<<"\t"<<s[i].chinese<<"\t\t"<<s[i].math<<"\t\t"<<s[i].english<<endl;

break;

}


}


infile.close();

}


//(3)按学号寻找记录并显示

void find_num()

{

cout<<endl;

cout<<"按学号寻找记录并显示:"<<endl<<endl;


int i;

int a;

cout<<"请输入学生学号"<<endl;

cin>>a;


int b;


ifstream infile(F);


for(i=0;i<N;i++)

{


infile>>s[i].name>>s[i].num>>s[i].chinese>>s[i].math>>s[i].english;

b=s[i].num;


if(a==b)

{

cout<<"该学生信息如下:"<<endl;

cout<<"姓名"<<"\t"<<"学号"<<"\t"<<"语文成绩"<<"\t"<<"数学成绩"<<"\t"<<"英语成绩"<<endl;

cout<<s[i].name<<"\t"<<s[i].num<<"\t"<<s[i].chinese<<"\t\t"<<s[i].math<<"\t\t"<<s[i].english<<endl;

break;

}


}


infile.close();

}


//(4)查询全部学生成绩

void total_data()

{

cout<<endl;

cout<<"查询全部学生成绩:"<<endl<<endl;


int i;

ifstream infile(F);

cout<<"全部学生成绩如下:"<<endl;

cout<<"姓名"<<"\t"<<"学号"<<"\t"<<"语文成绩"<<"\t"<<"数学成绩"<<"\t"<<"英语成绩"<<endl;

for(i=0;i<N;i++)

{

infile>>s[i].name>>s[i].num>>s[i].chinese>>s[i].math>>s[i].english;

cout<<s[i].name<<"\t"<<s[i].num<<"\t"<<s[i].chinese<<"\t\t"<<s[i].math<<"\t\t"<<s[i].english<<endl;

}

infile.close();

}


//(5)按总分由高到低显示学生信息

void rank_display()

{

cout<<endl;

cout<<"按总分由高到低显示学生信息:"<<endl<<endl;


int i,j,k;

int temp;


char tem[20];


int sum[20];

ifstream infile(F);

//cout<<"姓名"<<"\t"<<"学号"<<"\t"<<"语文成绩"<<"\t"<<"数学成绩"<<"\t"<<"英语成绩"<<"\t"<<"总分"<<endl;

for(i=0;i<N;i++)

{

infile>>s[i].name>>s[i].num>>s[i].chinese>>s[i].math>>s[i].english;

sum[i]=s[i].chinese + s[i].math + s[i].english;

//cout<<s[i].name<<"\t"<<s[i].num<<"\t"<<s[i].chinese<<"\t\t"<<s[i].math<<"\t\t"<<s[i].english<<"\t\t"<<sum[i]<<endl;


for(k=0;k<N-1;k++)

for(j=k+1;j<N;j++)

{

if(sum[k]<sum[j])

{


temp=sum[k];

sum[k]=sum[j];

sum[j]=temp;


temp=s[k].num;

s[k].num=s[j].num;

s[j].num=temp;


temp=s[k].chinese;

s[k].chinese=s[j].chinese;

s[j].chinese=temp;


temp=s[k].math;

s[k].math=s[j].math;

s[j].math=temp;


temp=s[k].english;

s[k].english=s[j].english;

s[j].english=temp;


strcpy(tem,s[k].name);

strcpy(s[k].name,s[j].name);

strcpy(s[j].name,tem);

}

}


}


cout<<"排序"<<endl;


cout<<"姓名"<<"\t"<<"学号"<<"\t"<<"语文成绩"<<"\t"<<"数学成绩"<<"\t"<<"英语成绩"<<"\t"<<"总分"<<endl;

for(i=0;i<N;i++)

{

cout<<s[i].name<<"\t"<<s[i].num<<"\t"<<s[i].chinese<<"\t\t"<<s[i].math<<"\t\t"<<s[i].english<<"\t\t"<<sum[i]<<endl;

}


infile.close();

}

温馨提示:答案为网友推荐,仅供参考
相似回答