您现在的位置是: 首页 > 教育政策 教育政策

高考成绩_高考成绩管理系统c

tamoadmin 2024-07-20 人已围观

简介1.关于C++ 编写一个简单的学生成绩管理系统.通过本系统能实现对学生成绩记录的显示,查询,修改添加和删除2.C语言编程—学生成绩查询系统!紧急!!!3.c语言课程设计之学生成绩管理系统设计的程序4.C语言学生管理系统5.c语言编写查询学生成绩管理程序。6.C++简单编程题目 求大神教育 学生成绩管理系统这是我刚改过的代码,还添加了求平均分的功能#include<iostream.h>

1.关于C++ 编写一个简单的学生成绩管理系统.通过本系统能实现对学生成绩记录的显示,查询,修改添加和删除

2.C语言编程—学生成绩查询系统!紧急!!!

3.c语言课程设计之学生成绩管理系统设计的程序

4.C语言学生管理系统

5.c语言编写查询学生成绩管理程序。

6.C++简单编程题目 求大神教育 学生成绩管理系统

高考成绩_高考成绩管理系统c

这是我刚改过的代码,还添加了求平均分的功能

#include<iostream.h>

#include<string.h>

#include<fstream.h>

class stu

{

char name[20];

int ba;

double math,number,chinese,english,erage,sum;

public:

stu()

{

}

stu(char n[20],int ban,double nu,double ma,double chin,double eng)

{

strcpy(name,n);

ba=ban;

number=nu;

math=ma;

chinese=chin;

english=eng;

}

double getsum()

{

sum=chinese+english+math;

return sum;

}

double geter()

{

erage=getsum()/3;

return erage;

}

friend void main();

};

void main()

{

cout<<"(0)数据录入 (1)增加人员"<<endl;

cout<<"(2)删除人员 (3)修改数据"<<endl;

cout<<"(4)按学号查询 (5)按姓名查询"<<endl;

cout<<"(6)输出所有学生的数据 (7)按总分查询排名"<<endl;

cout<<"(8)按语文查询排名 (9)按数学查询排名"<<endl;

cout<<"(y)按英语查询排名 "<<endl;

cout<<"选择相关操作请输入相对的括号里的阿拉伯数字或字母!"<<endl;

char p;char w;

stu *s[50];

ofstream *file[50];

int i=0;

int j=0;

bool flag2=0;

do

{

cin>>p;

if((p>='0'&&p<='9'))

flag2=1;

else

cout<<"指令错误!请重新输入:"<<endl;

}while(flag2==0);

do{

switch(p)

{

case '0':

{

char c;

char name[20];int ba ;double number, math,chinese,english;

do{

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

cin>>name;

cout<<"请输入班级:"<<endl;

cin>>ba;

cout<<"请输入您要增加的学生的学号:"<<endl;

cin>>number;

cout<<"请输入数学成绩:"<<endl;

cin>>math;

cout<<"请输入语文成绩:"<<endl;

cin>>chinese;

cout<<"请输入外语成绩:"<<endl;

cin>>english;

file[j]=new ofstream("d:\\document",ios::ate);

*file[j]<<"姓名"<<name<<"班级"<<ba<<"学号"<<number<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;

j++;

s[i]=new stu(name,ba,number, math, chinese, english);

i++;

cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;

cin>>c;

do

{

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

else

flag2=1;

}while(flag2==0);

}while(c=='y');

break;

}

case '1':

{

char name[20];int ba;double number,math,chinese,english;

char c;

do

{

cout<<"请输入您要增加的学生的姓名:"<<endl;

cin>>name;

cout<<"请输入要增加的学生的班级:"<<endl;

cin>>ba;

cout<<"请输入您要增加的学生的学号:"<<endl;

cin>>number;

cout<<"请输入数学成绩:"<<endl;

cin>>math;

cout<<"请输入语文成绩:"<<endl;

cin>>chinese;

cout<<"请输入外语成绩:"<<endl;

cin>>english;

file[j]=new ofstream("d:\\document",ios::ate);

*file[j]<<"姓名"<<name<<"班级"<<ba<<"学号"<<number<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;

j++;

s[i]=new stu(name, ba,number,math, chinese, english);

i++;

cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}while(c=='y');

break;

}

case '2':

{

char name[20];bool flag3=0;char c;

do{

cout<<"请输入您要删除的学生姓名:"<<endl;

cin>>name;

for(int h=0;h<i;h++)

{

if(strcmp(name,s[h]->name)==0)

{

flag3=1;

i--;

do{

s[h]=s[h+1];

h++;

}while(h<=i);

}

}

if(flag3==0)

cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";

cout<<"要继续删除吗?(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}while(c=='y');

break;

}

case '3':

{

char name[20];double mat,chin,eng;flag2=0;

char c;

do

{

cout<<"请输入您要修改的学生的姓名:"<<endl;

cin>>name;

for(int h=0;h<i;h++)

{

if(strcmp(name,s[h]->name)==0)

{

flag2=1;

cout<<"请输入新的数学成绩:"<<endl;

cin>>mat;

cout<<"请输入新的语文成绩:"<<endl;

cin>>chin;

cout<<"请输入新的外语成绩:"<<endl;

cin>>eng;

s[h]->chinese=chin;

s[h]->math=mat;

s[h]->english=eng;

cout<<"数据修改成功!";

}

}

if(flag2==0)

{

cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;

}

cout<<"想继续修改吗(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}while(c=='y');

break;

}

case '4':

{

double t;char c;

do

{

int flag1=0;

cout<<"请输入你要查询学生的学号"<<endl;

cin>>t;

for(int q=0;q<i;q++)

{

if(s[q]->number==t)

{

flag1=1;

cout<<"您要查询的学生是:"<<(*s[q]).name

<<"数学成绩为:"<<s[q]->math

<<"语文成绩为:"<<s[q]->chinese

<<"英语成绩为:"<<s[q]->english

<<"总分为:"<<s[q]->getsum()

<<endl;

}

}

if(flag1==0)

cout<<"对不起!您要查询的学生不存在!"<<endl;

cout<<"您想继续查询吗?(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}

while(c=='y');

break;

}

case '5':

{

char n[20];int j=0;char c;

do{

int flag=0;

cout<<"请输入你要查询的学生姓名"<<endl;

cin>>n;

for(int j=0;j<i;j++)

{

if(strcmp(n,(*s[j]).name)==0)

{

flag=1;

cout<<"您要查询的学生是:"<<(*s[j]).name

<<endl;

cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()

<<"班级:"<<" "<<s[j]->ba

<<"语文:"<<" "<<s[j]->chinese

<<"数学:"<<" "<<s[j]->math

<<"外语:"<<" "<<s[j]->english

<<"平均成绩是:"<<(*s[j]).geter()

<<endl;

}

}

if(flag==0)

cout<<"对不起!您要查询的学生不存在!"<<endl;

cout<<"您想继续查询吗?(y/n)"<<endl;

cin>>c;

if(c!='y'&&c!='n')

{

cout<<"指令错误!请重新输入!"<<endl;

cin>>c;

}

}

while(c=='y');

break;

}

case '6':

{

cout<<"本系统所有学生数据如下:"<<endl;

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;

for(int k=0;k<i;k++)

{

cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name

<<"班级"<<s[k]->ba

<<"学号"<<s[k]->number

<<"语文:"<<" "<<s[k]->chinese<<"数学:"

<<" "<<s[k]->math

<<"外语:"<<" "<<s[k]->english

<<"总分:"<<" "<<(*s[k]).getsum()

<<"平均分:"<<" "<<(*s[k]).geter()

<<endl;

}

break;

}

case '7':

{

int t;stu b;

cout<<"本系统所有学生总分排名如下:"<<endl;

for(int x=0;x<i-1;x++)

{

t=x;

for(int y=x+1;y<i;y++)

{

if((s[t]->getsum())<(s[y]->getsum()))

t=y;

if(t!=x)

{

b=*s[x];

*s[x]=*s[t];

*s[t]=b;

}

}

}

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!";

double o1,o2;

for(int k=0;k<i;k++)

{

cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name

<<"班级"<<s[k]->ba

<<"学号"<<s[k]->number

<<"语文:"<<" "<<s[k]->chinese

<<"数学:"<<" "<<s[k]->math

<<"外语:"<<" "<<s[k]->english

<<"总分:"<<" "<<s[k]->getsum()

<<"平均分:"<<" "<<s[k]->geter()

<<endl;

o1=s[k]->sum;

o2=s[0]->sum;

}

cout<<"总分最高分"<<o2<<endl

<<"总分最低分"<<o1<<endl

<<endl;

break;

}

case '8':

{

int t;stu b;

cout<<"本系统所有学生语文排名如下:"<<endl;

for(int x=0;x<i-1;x++)

{

t=x;

for(int y=x+1;y<i;y++)

{

if((s[t]->chinese)<(s[y]->chinese))

t=y;

if(t!=x)

{

b=*s[t];

*s[t]=*s[x];

*s[x]=b;

}

}

}

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!";

double o1 ,o2;

for(int k=0;k<i;k++)

{

cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name

<<"班级"<<s[k]->ba

<<"学号"<<s[k]->number

<<"语文:"<<" "<<s[k]->chinese

<<"数学:"<<" "<<s[k]->math

<<"外语:"<<" "<<s[k]->english

<<"总分:"<<" "<<s[k]->getsum()

<<"平均分:"<<" "<<s[k]->geter()

<<endl;

o1=s[k]->chinese;

o2=s[0]->chinese;

}

int v1=0,v2=0;double v3;

for(v2=0;v2<=i-1;v2++)

{

if(s[v2]->english>=60)

v1++;

}

v3=(v1*100)/v2;

cout<<"语文最高分"<<o2<<endl

<<"语文最低分"<<o1<<endl

<<"语文及格率"<<v3<<"%"

<<endl;

break;

}

case '9':

{

int t;stu b;

cout<<"本系统所有学生数学排名如下:"<<endl;

for(int x=0;x<i-1;x++)

{

t=x;

for(int y=x+1;y<i;y++)

{

if((s[t]->math)<(s[y]->math))

t=y;

if(t!=x)

{

b=*s[t];

*s[t]=*s[x];

*s[x]=b;

}

}

}

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!";

double o1,o2;

for(int k=0;k<i;k++)

{

cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name

<<"班级"<<s[k]->ba

<<"学号"<<s[k]->number

<<"语文:"<<" "<<s[k]->chinese

<<"数学:"<<" "<<s[k]->math

<<"外语:"<<" "<<s[k]->english

<<"总分:"<<" "<<s[k]->getsum()

<<"平均分:"<<" "<<s[k]->geter()

<<endl;

o1=s[k]->math;

o2=s[0]->math;

}

int v1=0,v2=0;double v3;

for(v2=0;v2<=i-1;v2++)

{

if(s[v2]->english>=60)

v1++;

}

v3=(v1*100)/v2;

cout<<"数学最高分"<<o2<<endl

<<"数学最低分"<<o1<<endl

<<"数学及格率"<<v3<<"%"

<<endl;

break;

}

case 'y':

{

int t;stu b;

cout<<"本系统所有学生英语排名如下:"<<endl;

for(int x=0;x<i-1;x++)

{

t=x;

for(int y=x+1;y<i;y++)

{

if((s[t]->english)<(s[y]->english))

t=y;

if(t!=x)

{

b=*s[t];

*s[t]=*s[x];

*s[x]=b;

}

}

}

if(i==0)

cout<<"管理系统中没有录入数据或者数据已经被删除!";

double o1,o2;

for(int k=0;k<i;k++)

{

cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name

<<"班级"<<s[k]->ba

<<"学号"<<s[k]->number

<< "语文:"<<" "<<s[k]->chinese

<<"数学:"<<" "<<s[k]->math

<<"外语:"<<" "<<s[k]->english

<<"总分:"<<" "<<s[k]->getsum()

<<"平均分:"<<" "<<s[k]->geter()

<<endl;

o1=s[k]->english;

o2=s[0]->english;

}

int v1=0,v2=0;double v3;

for(v2=0;v2<=i-1;v2++)

{

if(s[v2]->english>=60)

v1++;

}

v3=(v1*100)/v2;

cout<<"英语最高分"<<o2<<endl

<<"英语最低分"<<o1<<endl

<<"英语及格率"<<v3<<"%"

<<endl;

}

break;

}

cout<<"您想继续进行其他操作吗?(y/n)"<<endl;

bool flag4=0;

do

{

cin>>w;

if(w!='y'&&w!='n')

cout<<"指令错误!请重新输入!"<<endl;

else

flag4=1;

}while(flag4==0);

if(w=='y')

cout<<" 请输入操作代码: "<<endl;

cout<<"0 录入 1 增加人员 2 删除人员"<<endl;

cout<<"3 修改数据 4 按学号查询 5 按姓名查询"<<endl;

cout<<"6 显示所有成员数据 7 按总分排名 8 按语文排名"<<endl;

cout<<"9 按数学排名 y按英语排名"<<endl;

cin>>p;

}while(w=='y');

}

关于C++ 编写一个简单的学生成绩管理系统.通过本系统能实现对学生成绩记录的显示,查询,修改添加和删除

呵呵,刚好我们有一个c++大型作业,学生成绩管理系统,就把我的代码帖给你,可以运行。

#include<iostream.h>

#include<fstream.h>

#include<stdlib.h>

#include<string.h>

#include<stdio.h>

class?Stu//构建学生类

{

public:

friend?void?Input(Stu?stud[])?;

friend?void?Statistic(Stu?stud[]);

friend?void?Lookup(Stu?stud[])?;

friend?void?Modify(Stu?stud[])?;

friend?void?Delete(Stu?stud[])?;

friend?void?Output(Stu?stud[])?;

friend?void?Sort(Stu?stud[])?;

friend?void?Insert(Stu?stud[])?;

friend?void?Write(Stu?stud[],int?n);

friend?int?Read(Stu?stud[]);

private:

char?class_0[20];

int?num;

char?name[8];

float?elec;

float?c_program;

float?media;

float?english;

float?math;

float?sport;

float?polity;

float?erage;

int?order;

}stud[100];

void?Write(Stu?stud[],int?n)?//向文件中写入数据

{

fstream?myFile;

myFile.open("student.dat",ios::out|ios::binary);

if(!myFile)

{

cout<<"student.dat?can't?open!"<<endl;

abort();

}

int?count=n;

myFile<<count<<endl<<endl;

for(int?i=0;i<=count;i++)

{

myFile<<stud[i].class_0<<"?"<<stud[i].num<<"?"<<stud[i].name<<"?"<<stud[i].elec<<"?"<<stud[i].c_program<<"?"<<stud[i].media<<"?"<<stud[i].english

<<"?"<<stud[i].math<<"?"<<stud[i].sport<<"?"<<stud[i].polity<<"?"<<stud[i].erage<<endl;

}

myFile.close();

}

int?Read(Stu?stud[])?//从文件中读数据

{

fstream?myFile;

myFile.open("student.dat",ios::in|ios::binary);

if(!myFile)

{

cout<<"student.dat?can't?open!"<<endl;

abort();

}

int?count;

myFile.seekg(0);

myFile>>count;

for(int?i=0;i<=count;i++)

{

myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].elec>>stud[i].c_program>>stud[i].media>>stud[i].english>>stud[i].math>>stud[i].sport>>stud[i].polity>>stud[i].erage;

}

myFile.close();

return?count?;

}

void?Input(Stu?stud[])?//---------------输入学生成绩

{

system("cls");?/*运行前清屏*/

int?i=0;

int?flag;

char?sign;

cout<<endl<<"====>>?请输入学生成绩?<<===="<<endl;

while(sign!='n'&&sign!='N')?/*判断*/?

{?

cout<<"?班级:";?/*交互输入*/?

cin>>stud[i].class_0;?

loop:

cout<<"?学号:";?

cin>>stud[i].num;

int?c=0;

while(c<i)

{

c++;

if(stud[i].num==stud[i-c].num)

{

cout<<"?你输入的学号已经存在!请重新输入。"<<endl;

goto?loop;

}?

}

cout<<"?姓名:?";?

cin>>stud[i].name;?

do{

flag=0;

cout<<"?模拟电路:";?

cin>>stud[i].elec;?

if(stud[i].elec>100?||stud[i].elec<1)?

cout<<"对不起,请输入1-100之间的数字!!\n";?

else?

flag=1;

}while(flag==0);?

do{?

flag=0;

cout<<"?C++程序设计成绩:";?

cin>>stud[i].c_program;?

if(stud[i].c_program>100?||stud[i].c_program<1)?

cout<<"对不起,请输入1-100之间的数字!!\n";?

else?

flag=1;

}while(flag==0);?

do{?

flag=0;

cout<<"?软件工程成绩:";?

cin>>stud[i].media;?

if(stud[i].media>100?||stud[i].media<1)?

cout<<"对不起,请输入1-100之间的数字!!\n";?

else?

flag=1;

}while(flag==0);?

do{?

flag=0;

cout<<"?大学英语成绩:";?

cin>>stud[i].english;?

if(stud[i].english>100?||stud[i].english<1)?

cout<<"对不起,请输入1-100之间的数字!!\n";?

else?

flag=1;

}while(flag==0);?

do{?

flag=0;

cout<<"?大学物理成绩:";?

cin>>stud[i].math;

if(stud[i].math>100?||stud[i].math<1)?

cout<<"对不起,请输入1-100之间的数字!!\n";?

else?

flag=1;

}while(flag==0);?

do{?

flag=0;

cout<<"?大学体育成绩:";?

cin>>stud[i].sport;?

if(stud[i].sport>100?||stud[i].sport<1)?

cout<<"对不起,请输入1-100之间的数字!!\n";?

else?

flag=1;

}while(flag==0);?

do{?

flag=0;

cout<<"?民族理论:";?

cin>>stud[i].polity;?

if(stud[i].polity>100?||stud[i].polity<1)?

cout<<"对不起,请输入1-100之间的数字!!\n";?

else?

flag=1;

}while(flag==0);?

stud[i].erage=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7;?

cout<<"?平均分为:"<<stud[i].erage<<endl;?

cout<<"====>提示:是否继续写入学生成绩?(Y/N)";?

cin>>sign;?/*输入判断*/?

i++;?

}?

Write(stud,i);

}

void?Statistic(Stu?stud[])?//---------------统计学生数据

{

system("cls");?/*运行前清屏*/

int?n=Read(stud);

cout<<endl<<"====>>?输出学生统计数据?<<===="<<endl;

cout<<"班级"<<"\t"<<"学号"<<"\t"<<"?姓名"<<"\t"<<"?平均分"<<endl;

for(int?i=0;i<n;i++)

cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].erage<<endl;

system("pause");?

}

void?Lookup(Stu?stud[])?//---------------查找学生成绩?

{?

system("cls");?/*运行前清屏*/

int?n=Read(stud);

int?s;?

int?i=0;

cout<<endl<<"====>>?查找学生成绩?<<===="<<endl;

cout<<"请输入需要查找学生的学号:"<<endl;?

cin>>s;?

while((stud[i].num-s)!=0&&i<n)?i++;?/*查找判断*/?

if(i==n)?

{?

cout<<"=====>提示:对不起,无法找到该学生的信息!"<<endl;?/*输入失败信息*/?

}?

else

{

cout<<"---------------------------"<<endl;?

cout<<"班级:"<<stud[i].class_0<<endl;?/*输出该学生信息*/?

cout<<"学号:"<<stud[i].num<<endl;?

cout<<"姓名:"<<stud[i].name<<endl;?

cout<<"模拟电路:"<<stud[i].elec<<endl;?

cout<<"C++程序设计:"<<stud[i].c_program<<endl;?

cout<<"软件工程:"<<stud[i].media<<endl;?

cout<<"大学英语:"<<stud[i].english<<endl;?

cout<<"大学物理:"<<stud[i].math<<endl;?

cout<<"大学体育:"<<stud[i].sport<<endl;?

cout<<"民族理论:"<<stud[i].polity<<endl;?

cout<<"平均分:"<<stud[i].erage<<endl;

}

}

void?Modify(Stu?stud[])//---------------修改学生成绩

{?

system("cls");?/*运行前清屏*/

int?n=Read(stud);

int?s;?

int?i=0;

cout<<endl<<"====>>?修改学生成绩?<<===="<<endl;

cout<<"请输入需要修改成绩学生的学号:"<<endl;?

cin>>s;?

while((stud[i].num-s)!=0&&i<n)?i++;?/*查找判断*/?

if(i==n)?

{?

cout<<"=====>提示:对不起,无该学生的成绩……"<<endl;?/*输入失败信息*/

}?

else

{

cout<<"----------该学生的信息----------"<<endl;?/*格式头*/?

cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"c++"<<"\t"<<"?多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<endl;

cout<<"---------------------------------"<<endl;?

cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].elec<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[i].erage<<endl;

cout<<"请重新输入该学生的信息"<<endl;

cout<<"班级:"<<endl;?/*交互输入*/?

cin>>stud[i].class_0;?

cout<<"学号:"<<endl;?

cin>>stud[i].num;?

cout<<"姓名:"<<endl;?

cin>>stud[i].name;?

cout<<"模拟电路成绩:"<<endl;?

cin>>stud[i].elec;

cout<<"C++程序设计成绩:"<<endl;?

cin>>stud[i].c_program;?

cout<<"软件工程成绩:"<<endl;?

cin>>stud[i].media;?

cout<<"大学英语成绩:"<<endl;?

cin>>stud[i].english;?

cout<<"大学物理成绩:"<<endl;?

cin>>stud[i].math;

cout<<"大学体育成绩:"<<endl;?

cin>>stud[i].sport;?

cout<<"民族理论成绩:"<<endl;?

cin>>stud[i].polity;?

stud[i].erage=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7;?

cout<<"平均分为:"<<stud[i].erage<<endl;

char?c;

cout<<"是否保存数据?(y/n)"<<endl;

cin>>c;

if(c!='n'&&c!='N')

Write(stud,n);

}

}

void?Delete(Stu?stud[])?//---------------按学号查找,删除学生信息?

{

system("cls");?/*运行前清屏*/?

int?n=Read(stud);

int?s;?

int?i=0,j;

cout<<endl<<"====>>?删除学生成绩?<<===="<<endl;

cout<<"请输入需要删除学生的学号:"<<endl;?/*交互式问寻*/?

cin>>s;?

while((stud[i].num-s)!=0&&i<n)?i++;?/*查找判断*/?

if(i==n)?

{?

cout<<"====>提示:对不起,无法找到该学生……"<<endl;?/*返回失败信息*/?

}?

else

{

for(j=i;j<n-1;j++)?/*删除操作*/?

{?

strcpy(stud[j].class_0,stud[j+1].class_0);?

stud[j].num=stud[j+1].num;?

strcpy(stud[j].name,stud[j+1].name);?

stud[j].elec=stud[j+1].elec;?

stud[j].c_program=stud[j+1].c_program;?

stud[j].media=stud[j+1].media;?

stud[j].english=stud[j+1].english;?

stud[j].math=stud[j+1].math;?

stud[j].sport=stud[j+1].sport;?

stud[j].polity=stud[j+1].polity;

stud[j].erage=stud[j+1].erage;

}

cout<<"====>提示:已成功删除!"<<endl;?/*返回成功信息*/

}?

Write(stud,n-1);

}?

void?Insert(Stu?stud[])?//---------------增加学生成绩?

{?

system("cls");?/*运行前清屏*/

int?n=Read(stud);

char?s;

cout<<endl<<"====>>?增加学生成绩<<===="<<endl;

while(s!='n'&&s!='N')

{

cout<<"班级:"<<endl;?/*交互输入*/?

cin>>stud[n].class_0;?

cout<<"学号:";?

cin>>stud[n].num;?

cout<<"姓名:";?

cin>>stud[n].name;?

cout<<"模拟电路成绩:";?

cin>>stud[n].elec;?

cout<<"C++程序设计成绩:";?

cin>>stud[n].c_program;?

cout<<"软件工程成绩:";?

cin>>stud[n].media;?

cout<<"大学英语成绩:";?

cin>>stud[n].english;?

cout<<"大学物理成绩:";?

cin>>stud[n].math;?

cout<<"大学体育成绩:";?

cin>>stud[n].sport;?

cout<<"民族理论成绩:";?

cin>>stud[n].polity;?

stud[n].erage=(stud[n].elec+stud[n].c_program+stud[n].media+stud[n].english+?stud[n].math+stud[n].sport+stud[n].polity)/7;?

cout<<"平均分"<<stud[n].erage;

n++;?

cout<<"=====>提示:插入成功!"<<endl;?/*返回成功信息*/

cout<<"是否继续输入(y/n)"<<endl;

cin>>s;

}

Write(stud,n);?

}

void?Sort(Stu?stud[])?//---------------按平均分对学生成绩记录项进行降序排序?

{

system("cls");?/*运行前清屏*/?

int?i,j,k;?

float?s;?

char?t[20];

cout<<endl<<"====>>?降序排序成绩?<<===="<<endl;

int?n=Read(stud);

for(i=0;i<n-1;i++)?/*冒泡法排序*/?

for(j=0;j<n-1-i;j++)?

if(stud[j].erage<stud[j+1].erage)?

{?

strcpy(t,stud[j+1].class_0);?

strcpy(stud[j+1].class_0,stud[j].class_0);?

strcpy(stud[j].class_0,t);?

k=stud[j+1].num;?

stud[j+1].num=stud[j].num;?

stud[j].num=k;?

strcpy(t,stud[j+1].name);?

strcpy(stud[j+1].name,stud[j].name);?

strcpy(stud[j].name,t);?

s=stud[j+1].elec;?

stud[j+1].elec=stud[j].elec;?

stud[j].elec=s;?

s=stud[j+1].c_program;?

stud[j+1].c_program=stud[j].c_program;?

stud[j].c_program=s;?

s=stud[j+1].media;?

stud[j+1].media=stud[j].media;?

stud[j].media=s;?

s=stud[j+1].english;?

stud[j+1].english=stud[j].english;?

stud[j].english=s;?

s=stud[j+1].math;?

stud[j+1].math=stud[j].math;?

stud[j].math=s;?

s=stud[j+1].sport;?

stud[j+1].sport=stud[j].sport;?

stud[j].sport=s;?

s=stud[j+1].polity;?

stud[j+1].polity=stud[j].polity;?

stud[j].polity=s;?

s=stud[j+1].erage;?

stud[j+1].erage=stud[j].erage;?

stud[j].erage=s;?

}?

cout<<"----------------------------------------------------"<<endl;?/*格式头*/?

cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"C++"<<"\t"<<"多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<"\t"<<"名次"<<endl;?

cout<<"----------------------------------------------------"<<endl;?

for(i=0;i<n;i++)?/*循环输入*/?

{?stud[i].order=i+1;

cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].elec<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t?"<<stud[i].english<<"?\t"<<?stud[i].math<<"\t"<<stud[i].sport<<"\t?"<<stud[i].polity<<"\t"<<stud[i].erage<<"\t"<<stud[i].order<<endl;?

}?

Write(stud,n);

}

void?Output(Stu?stud[])?//---------------显示全部学生成绩?

{?

system("cls");?/*运行前清屏*/

int?n=Read(stud);

cout<<endl<<"====>>?显示全部学生成绩?<<===="<<endl;

if(!stud)

cout<<"没有记录";?

else

{

cout<<"----------------------------------------------------"<<endl;?/*格式头*/?

cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"c++"<<"\t"<<"多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<endl;

cout<<"------------------------------------------------"<<endl;?

for(int?i=0;i<n;i++)?/*循环输入*/?

{?

cout<<stud[i].class_0<<"\t?"<<stud[i].num<<"\t?"<<stud[i].name<<"\t?"<<stud[i].elec<<"?\t"<<stud[i].c_program<<"\t?"<<stud[i].media<<"\t?"<<stud[i].english<<"\t?"<<?stud[i].math<<"?\t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[i].erage<<endl;?

}?

cout<<"--------------------------------------------------------"<<endl;

}?

}

int?menu()?/*菜单函数*/?

{

char?c;?

do?

{?

system("cls");?/*运行前清屏*/?

cout<<"?-----------------<<欢迎您使用学生成绩管理系统--------------\n"<<endl;?

cout<<"?*******************************************\n\n"<<endl;/*菜单选择*/?

cout<<"1、输入学生成绩"<<endl;?

cout<<"2、显示统计数据"<<endl;?

cout<<"3、查找学生成绩"<<endl;?

cout<<"4、修改学生成绩"<<endl;?

cout<<"5、删除学生成绩"<<endl;?

cout<<"6、插入学生成绩"<<endl;?

cout<<"7、按平均分降序排列"<<endl;?

cout<<"8、显示全部学生成绩"<<endl;?

cout<<"0、退出本系统"<<endl<<endl;?

cout<<"*********************************************"<<endl;?

cout<<"请你选择操作(0-8):"<<endl;?

c=getchar();?/*读入选择*/?

}?

while(c<'0'||c>'8');?

return(c-'0');?/*返回选择*/?

}?

void?main()?/*主函数*/?

{?

for(;;)?

{?

switch(menu())?/*选择判断*/?

{?

case?1:?

Input(stud);/*输入学生成绩*/

break;?

case?2:?

Statistic(stud);?/*输出学生统计数据*/?

break;

case?3:

Lookup(stud);?/*查找学生成绩*/

cout<<"\t\t\t";?

system("pause");?

break;?

case?4:?

Modify(stud);?/*修改学生成绩*/

cout<<"\t\t\t";?

system("pause");?

break;?

case?5:?

Delete(stud);?/*按学号查找,删除学生信息*/?

cout<<"\t\t\t";?

system("pause");?

break;?

case?6:?

Insert(stud);/*增加学生成绩*/?

cout<<"\t\t\t";?

system("pause");?

break;?

case?7:?

Sort(stud);?/*按平均分对成绩记录项进行降序排序*/?

cout<<"\t\t\t";?

system("pause");?

break;?

case?8:?

Output(stud);?/*显示全部学生成绩*/

cout<<"\t\t\t";?

system("pause");?

break;?

case?0:?

cout<<endl<<"?================================<<感谢您使用学生成绩管理系统>>===============================\n"<<endl;?/*结束程序*/?

cout<<"\t\t\t";?

system("pause");?

exit(0);?

}?

}?

}

C语言编程—学生成绩查询系统!紧急!!!

#include <iostream>

#include<fstream>

using namespace std;

const int N=5

class student

{

char n_name[10];

char n_numble[5];

char n_[3];

float score[4];//score[0]英语成绩,score[1]数学成绩,score[2]语文成绩,score[3]平均分

public:

student();

student(char name[],char numble[],char [],float a,float b,float c);

student(student &s);

void input();//输入学生信息:姓名,学号,性别,英语,数学,语文

float pj();//获取平均分

void stu_delete(student stu[]);//删除

void stu_find(student stu[]);

void dispaly();//显示学生信息:姓名,学号,性别,英语,数学,语文,平均分

};

student::student()

{

strcpy(n_numble,"000");

strcpy(n_name,"noname");

strcpy(n_,"male");

score[0]=88;

score[1]=99;

score[2]=95;

score[3]=94;

}

student::student(char name[],char numble[],char [],float a,float b,float c)

{

strcpy(n_name,name);

strcpy(n_numble,numble);

strcpy(n_,);

score[0]=a;

score[1]=b;

score[2]=c;

score[3]=(score[0]+score[1]+score[2])/3.0;

}

student::student(student &s)

{

strcpy(n_name,s.n_name);

strcpy(n_numble,s.n_numble);

strcpy(n_,s.n_);

score[0]=s.score[0];

score[1]=s.score[1];

score[2]=s.score[2];

score[3]=(score[0]+score[1]+score[2])/3.0;

}

void student::input()

{

cout<<"输入学生信息:"<<endl;

cout<<"请依次输入姓名,学号,性别,英语,数学,语文"<<endl;

cin>>n_name>>n_numble>>n_>>score[0]>>score[1]>>score[2];

score[3]=(score[0]+score[1]+score[2])/3.0;

}

float student::pj()

{

return score[3];

}

void student::stu_delete(student stu[])

{

student t;

int i,k,j;

char d_numble[5];

cout<<"请输入要删除的学生学号:";

cin>>d_numble;

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

{

j=i;

k=strcmp(stu[i].n_numble,d_numble);

if(k==0&&i!=N)

{

for(;j<N;j++)

stu[j]=stu[j+1];

}

if(k==0&&i==N)

{

strcpy(stu[N].n_numble,"0000");

strcpy(stu[N].n_name,"noname");

strcpy(stu[N].n_,"男");

stu[N].score[0]=0;

stu[N].score[1]=0;

stu[N].score[2]=0;

stu[N].score[3]=0;

}

}

}

void student::stu_find(student stu[])

{

int i,k;

char d_numble[5];

cout<<"请输入要查询学生的学号:";

cin>>d_numble;

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

{

k=strcmp(stu[i].n_numble,d_numble);

if(k==0)

{

stu[i].dispaly();

}

}

}

void student::dispaly()

{

cout<<"姓名:"<<n_name<<" "<<"学号:"<<n_numble<<" "<<"性别:"<<n_<<" "<<"英语:"<<score[0]<<" "<<"数学:"<<score[1]<<" "<<"语文:"<<score[2]<<" "<<"平均分:"<<score[3]<<endl;

}

class manage_stu

{

//private:

student stu[N+1];//定义N+1名学生空间

public:

void input_stu();//输入N名学生信息

void delete_stu();//删除指定学号的学生信息

void find_stu();//查找指定学号的学生并显示

void total_stu();//分别求每个人的总分

void sort_stu();//按总分高低排序,排序后的结果显示并生成文件sortstu.txt

void display_stu();//显示N名学生信息

};

void manage_stu::input_stu()//输入N名学生信息

{

int i;

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

stu[i].input();

}

void manage_stu::delete_stu()//删除指定学号的学生信息

{

student r;

r.stu_delete(stu);

}

void manage_stu::find_stu()//查找指定学号的学生并显示

{

student t;

t.stu_find(stu);

}

void manage_stu::total_stu()//分别求每个人的总分

{

int i;

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

stu[i].pj();

}

void manage_stu::sort_stu()

{

int i,j;

student a;

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

{

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

{

if(stu[i].pj()<stu[j].pj())

{

a=stu[i];

stu[i]=stu[j];

stu[j]=a;

}

}

}

}

void manage_stu::display_stu()//显示N名学生信息

{

student t;

int i;

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

stu[i].dispaly();

}

void main()

{

int i=1,c;

manage_stu s;

while(i)

{

cout<<"学生管理系统:"<<endl;

cout<<"1、录入学生信息"<<N<<"名学生信息"<<endl;

cout<<"2、查找"<<endl;

cout<<"3、排序"<<endl;

cout<<"4、删除"<<endl;

cout<<"5、显示几名学生信息"<<endl;

cout<<"6、退出系统"<<endl;

cout<<"请选择(1--6):";

cin>>c;

switch(c)

{

case 1:s.input_stu();break;

case 2:s.find_stu();break;

case 3:s.sort_stu();break;

case 4:s.delete_stu();break;

case 5:s.display_stu();break;

case 6:i=0;

}

}

}

c语言课程设计之学生成绩管理系统设计的程序

这个是我自己做的类式的,你可以按自己的要求改下·不难的和你的差不多,给分哦

#include<stdlib.h>

#include<stdio.h>

#include<string.h>

#include<conio.h>

#define N 10

/*****定义结构体*****/

typedef struct students /*标记为students*/

{

char num[10]; /*学生学号*/

char name[10]; /*学生姓名*/

int age; /*年龄*/

char [10]; /*性别*/

float cyy; /*C语言成绩*/

float computer; /*计算机成绩*/

float english; /*英语成绩*/

float pj; /*平均成绩*/

}STU;

STU temp;

void sort(STU students[],int n); //排序

void se(STU students[] ,int n);//导出

int Locate(STU students[],int n);//查询

/*--------------显示菜单--------------------*/

char displaymenu()

{

char k;

system("cls");

printf(" 学生成绩管理 \n");

printf("-----------------------------------应用菜单-------------------------------------\n");

printf(" 1 输入学生成绩\n\n");

printf(" 2 输出学生成绩\n\n");

printf(" 3 查询学生成绩\n\n");

printf(" 4 修改学生成绩\n\n");

printf(" 5 查看成绩排序\n\n");

printf(" 6 查看成绩统计\n\n");

printf(" 7 保存数据\n\n");

printf(" 8 读取数据\n\n");

printf(" 9 退出系统\n\n");

printf(" 请选择你想进行的操作:");

k=getchar();

return k;

}

/*****定义输出函数*****/

void printheader() /*格式化输出表头*/

{

printf("\n\n************************学生成绩管理系统****************************\n\n\n");

printf("| 学号 | 姓名 | 年龄 | 性别 | C语言成绩 |计算机成绩 | 英语成绩| 平均成绩 | \n");

}

void printdata(STU pp) /*格式化输出表中数据*/

{

STU* p;

p=&pp;

printf("| %-5s| %-5s | %-4d| %-4s| %-6.0f| %-6.0f| %-5.0f| %-6.0f|\n",p->num,p->name,p->age,p->,p->cyy,p->computer,p->english,p->pj);

}

/*****添加学生信息*****/

int add(STU students[] ,int *n)

{

int i=0;

system("cls");

printf(" \n");

printf(" 请输入学生信息 \n");

printf(" 退出请在学生号处输入:0 \n");

printf("请输入学生学号:\n ");

scanf("%s",students[i].num);

while(strcmp(students[i].num,"0") )//当输入的学号为0时结束输入

{

printf("请输入学生姓名:\n ");

scanf("%s",students[i].name);

printf("****************\n\n\n");

printf("请输入学生年龄:\n ");

scanf("%d",&students[i].age);

printf("****************\n\n\n");

printf("请输入学生性别:\n");

scanf("%s",students[i].);

printf("****************\n\n\n");

printf("请输入C语言成绩:\n ");

scanf("%f",&students[i].cyy);

printf("****************\n\n\n");

printf("请输入计算机成绩:\n ");

scanf("%f",&students[i]puter);

printf("****************\n\n\n");

printf("请输入英语成绩:\n ");

scanf("%f",&students[i].english);

printf("****************\n\n\n");

students[i].pj=(students[i].cyy+students[i]puter+students[i].english)/3;

printf("学生平均成绩: %-8.0f\n",students[i].pj);

i++;

printf("****************\n\n\n");

printf("请输入学生学号:\n ");

scanf("%s",students[i].num);

}

*n=i;

se(students ,i);

return i;

}

/*****查询学生信息函数*****/

int Locate(STU students[],int n)

{

int k,m=-1;

char num[10],name[20];

int i=0;

system("cls");

printf(" 退出请输入:0 \n");

printf("请选择以什么方式查询:1).按学生学号查询 2).按学生姓名查询 \n");

scanf("%d",&k);

if(k==1)

{

printf("请输入你要查询的学生学号:\n");

scanf("%s",num);

while(i<n)

{

if(strcmp(students[i].num,num)==0) /*若找到学号*/

{

printf(">>学生学号:%s\n*学生姓名:%s\n*学生年龄:%d\n*学生性别:%s\n>C语言成绩:%-8.0f\n>计算机成绩:%-8.0f\n>>英语成绩:%-8.0f\n>>平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].,students[i].cyy,students[i]puter,students[i].english,students[i].pj);

m=i;

getchar();

break;

}

i++;

}

if(i>=n)

printf("没有所找学生信息\n");

getchar();

}

else if(k==2)

{

printf("请输入你要查询的学生姓名:\n");

scanf("%s",name);

while(i<n)

{

if(strcmp(students[i].name,name)==0) /*若找到姓名*/

{ printf("学生学号:%s\n学生姓名:%s\n学生年龄:%d\n学生性别:%s\n学生C语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].,students[i].cyy,students[i]puter,students[i].english,students[i].pj);

m=i;

getchar();

break;

}

i++;

}

if(i>=n)

printf("没有所找学生信息\n");

}

return m;/*返回一个根m便于修改学生信息*/

getchar();

}

/*****显示函数*****/

void input(STU students[],int n)

{

int i;

system("cls"); //清屏

if(n==0) /*表示没有学生信息记录*/

{

printf("\n没有学生记录!\n");

}

printf("\n\n");

printheader(); /*输出表格头部*/

i=0;

while(i<n) /*逐条输出数组中存储的学生信息*/

{

printdata(students[i]);

i++;

}

getchar();

}

/*****修改子程序*****/

void Modify(STU students[],int n)

{

int i;

if(n<=0)

{

system("cls");

printf(" \n退出请输入:0 \n");

printf("\n----------not found!----------\n");

getchar();

return ;

}

system("cls");

printf("修改学生信息");

input(students,n);

i=Locate(students,n); /*查询到该数组元素,并返回下标值*/

if(i!=-1) /*若i!=-1,表明已经找到该数组元素*/

{

printf("请输入新的学生信息: \n");

printf(" 学号: ");

scanf("%s",students[i].num);

printf(" 姓名: ");

scanf("%s",students[i].name);

printf(" 年龄: ");

scanf("%d",&students[i].age);

printf(" 性别: ");

scanf("%s",students[i].);

printf(" C语言: ");

scanf("%f",&students[i].cyy);

printf(" 英语: ");

scanf("%f",&students[i].english);

printf(" 计算机: ");

scanf("%f",&students[i]puter);

students[i].pj=(students[i].cyy+students[i].english+students[i]puter)/3;

printf("平均成绩: %-9.0f\n",students[i].pj);

se(students ,n);

printf("\n-------------修改成功!-------------\n");

}

else

printf("not found!\n");

getchar();

}

/*****学生成绩排序子程序*****/

void sort(STU students[],int n)

{

int i,j,a,b,c,d,e,f,k;

float p;

printf(" \n退出请输入:0 \n");

printf("成绩排序方式选择: 1.按C语言 2.按英语 3.按平均 \n ");

scanf("%d",&k);

if(k==1) /*用选择法对C语言排序*/

{

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

for(j=0;j<n-1;j++)

{

if(students[i].english<students[j+1].english)

{

temp=students[i];

students[i]=students[j+1];

students[j+1]=temp;

}

}

}

else if(k==2)/*英语用冒泡法*/

{

for(a=0; a<n-1; a++)

{

c=a;

for(b=a+1; b<n; b++)

if(students[b].cyy>students[c].cyy)

c=b;

if (c!=a)

{

temp=students[a];

students[a]=students[c];

students[c]=temp;

}

}

}

if(k==3) /*平均成绩用插入法*/

{

for(d=1;d<n;d++)

{

p=students[d].pj;

for(e=0;e<d;e++)

if(students[e].pj<p)

break;

if(e==d)

continue;

for(f=d;f>e;f--)

students[f]=students[f-1];

students[e]=temp;

}

}

input(students,n); /*显示排序后的所有记录*/

se(students ,n);

printf("\n 排序完成!\n");

}

/*****统计学生分数在各等级的人数子程序*****/

void Tongji(STU students[],int n)

{

int count6085=0,count85=0,count60=0;

int i=0;

system("cls");

printf(" \n退出请输入:0 \n");

input(students,n);

i=0;

while(i<n)

{

if(students[i].pj>85) {count85++;i=i+1;continue;} /*平均成绩=>85*/

if(students[i].pj>=60&&students[i].pj<=85) {count6085++;i=i+1;continue;} /*60<平均成绩<85*/

if(students[i].pj<60) {count60++;i=i+1;continue;} /*平均成绩<60*/

}

printf("\n************统计结果************\n\n");

printf("平均成绩高于85分的人数:%d \n",count85);

printf(" \n");

printf("平均成绩在65分和80分之间的人数:%d \n",count6085);

printf(" \n");

printf("平均成绩低于60分的人数:%d \n",count60);

printf(" \n");

printf("\n\n**********统计结束**********");

getchar();

}

/*****导出或保存数据*****/

void se(STU students[],int n)

{

FILE* fp;

int i=0;

fp=fopen("students","wb+");/*以读写方式打开创建一个二进制文件*/

if(fp==NULL) /*打开文件失败*/

{

printf("\n*******打开文件错误!*******\n");

return ;

}

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

{

if(fwrite(&students[i],sizeof(STU),1,fp)==1)/*每次写一条记录或一个结构数组元素至文件*/

{

continue;

}

else

{

break;

}

}

if(i>0)

{

getchar();

printf("\n\n*共导出%d个学生信息*\n",i);

getchar();

}

else

{

system("cls");

printf("**没有信息导出*\n");

getchar();

}

fclose(fp); /*关闭此文件*/

}

/*****导入数据*****/

void Read(STU students[],int * n)

{

FILE* fp;

int i=0;

fp=fopen("students","rb");/*以只读方式打开一个已有的二进制文件*/

if(fp==NULL) /*打开文件失败*/

{

printf("\n********打开文件错误!********\n");

exit(0);

}

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

{

if(fread(&students[i],sizeof(STU),1,fp)==1)/*每次读一条记录或一个结构数组元素至文件*/

continue;

else

break;

}

*n=i;

if(i>0)

{

printf("\n\n************共导入:%d 个学生信息 ************\n",i);

getchar();

}

else

{ system("cls");

printf("************没有信息导入!************\n");

getchar();

}

getchar();

fclose(fp); /*关闭此文件*/

}

/*****主函数*****/

void main()

{

STU students[N];

int n;

char s1[3],s2[3]={"1"};

int i,k;

printf("\n\n");

printf("******************************************************\n");

printf("^ < 欢迎使用本软件> ^\n\n");

printf("^ <版本 : oooo> ^\n\n\n");

printf("^ <姓名>:卢景光 <班级>: 09623 <学号>:34 ^\n");

printf("^ ^\n");

printf("******************************************************\n");

printf("\n\n");

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

{

printf("\n请输入密码:");

gets(s1);

if(strcmp(s1,s2)==0)

break;

else

printf("\n>密码错误,请重新输入");

}

if(i>2)

{

printf("\n您已连续3次输错,系统将退出!\n");

exit(0);

}

else

{

while(1)

{

k=displaymenu();

switch(k)

{

case '1' : add(students,&n); break;

case '2' : Read(students,&n);input(students,n) ;break;

case '3' : Read(students,&n);Locate(students,n);break;

case '4' : Read(students,&n);Modify(students,n);;break;

case '5' : Read(students,&n);sort(students,n);break;

case '6' : Read(students,&n);Tongji(students,n); break;

case '7' : se(students,n) ;break;

case '8' : Read(students,&n);break;

case '9' : system("cls");

printf("\n **********谢谢您的使用**********\n");exit(0);break;

default : printf("\n\n输入错误,输入必须是0~9之间的一个数字!请重新输入\n");getchar();getchar();

}

}

}

}

C语言学生管理系统

#include<stdio.h>

#include<conio.h>

#include <stdlib.h>

#include<string.h>

#define MAX 80

#define max 3

int nu=0;

struct classname

{

char name[20];

float score;

};

struct student

{

char no[20];

char std_name[20];

struct classname km[max];

float e;

float sum;

int se;

};

struct student stu[MAX],*p;

void chushi()

{

int i,j;

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

{

for(j=0;j<20;j++)

{

stu[i].no[j]=NULL;

stu[i].std_name[j]=NULL;

stu[i].km[j].name[j]=NULL;

stu[i].km[j].score=0;

}

stu[i].e=0;

stu[i].sum=0;

stu[i].se=0;

}

}

void ()/*求平均值*/

{

int i;

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

{

stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;

stu[i].e=stu[i].sum/3;

}

}

void first_check()

{

FILE *p;

int i,j;

struct classname frist[max];

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

{

for(j=0;j<20;j++)

frist[i].name[j]=NULL;

frist[i].score=0;

}

if ((p=fopen("c:\\kemu.txt","r"))==NULL)

{

printf("您好,欢迎使用学生成绩管理系统\n\n因为您是第一次使用,请输入科目名称(三科)\n\n");

p=fopen("c:\\kemu.txt","w");

printf("输入课程1名称:");

scanf("%s",frist[0].name);

fprintf(p,"%s\n",frist[0].name);

printf("输入课程2名称:");

scanf("%s",frist[1].name);

fprintf(p,"%s\n",frist[1].name);

printf("输入课程3名称:");

scanf("%s",frist[2].name);

fprintf(p,"%s\n",frist[2].name);

}

system("cls");

fclose(p);

}

void se_nu()

{

FILE *p;

p=fopen("c:\\renshu.txt","w");

fprintf(p,"%d\n",nu);

fclose(p);

}

void Se_add(int n)

{

FILE * p;

int i;

p= fopen("c:\\cheji.txt","at");

if (p == NULL)

{

printf("文件不存在!!\n");

exit(0);

}

se_nu();

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

if(stu[i].se==1)

{

stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;

stu[i].e=stu[i].sum/3;

fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].e,stu[i].sum);

}

fclose(p);

}

void Se()

{

FILE * p;

int i;

p= fopen("c:\\cheji.txt","w");

if (p == NULL)

{

printf("文件不存在!!\n");

exit(0);

}

se_nu();

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

if(stu[i].se==1)

{

();

fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].e,stu[i].sum);

}

fclose(p);

}

int read_nu()

{

FILE *p;

char ch,s[10]={'\0'};

int i=0;

p=fopen("c:\\renshu.txt","r");

if(p==NULL)

{

se_nu();

return 0;

}

ch=fgetc(p);

while(ch!='\n')

{

s[i]=ch;

ch=fgetc(p);

i++;

}

nu=atoi(s);

fclose(p);

return 0;

}

int read_km()

{

FILE *p;

int i,j=0;

char s[20]={'\0'};

chushi();

p=fopen("c:\\kemu.txt","r");

if(p==NULL)

{

printf("ERROR read_km");

return 0;

}

fgets(s,20,p);

while(strlen(s)!=0)

{

for(i=0;i<strlen(s);i++)

if(s[i]==10)

{

s[i]='\0';

break;

}

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

strcpy(stu[i].km[j].name,s);

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

s[i]='\0';

j++;

fgets(s,20,p);

}

}

void read()

{

FILE *p;

int i,j,n,k,z=0;

char s[50]={'\0'};

char o[10]={'\0'};

p=fopen("c:\\cheji.txt","r");

if(p==NULL)

printf("ERROR_read");

chushi();

read_km();

fgets(s,50,p);

while(strlen(s)!=0)

{

j=0;

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

{

if(s[i]!='\n')

{

n=0;

while(j==0)

{

if(s[i]!=' ')

{

stu[z].no[n]=s[i];

n++;i++;

}

else

break;

}

while(j==1)

{

if(s[i]!=' ')

{

stu[z].std_name[n]=s[i];

n++;i++;

}

else

break;

}

while(j==2)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].km[0].score=atoi(o);

break;

}

}

while(j==3)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].km[1].score=atoi(o);

break;

}

}

while(j==4)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].km[2].score=atoi(o);

break;

}

}

while(j==5)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].e=atoi(o);

break;

}

}

while(j==6)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].sum=atoi(o);

break;

}

}

for(k=0;k<10;k++)

o[k]='\0';

}

else

break;

j++;

}

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

s[i]='\0';

fgets(s,50,p);

z++;

}

}

void putin()

{

int n,i=0;

char ch;

read_km();

do

{

printf("\t\t\t\t录入学员信息\n输入第%d个学员的信息\n",i+1);

printf("\n输入学生编号:");

scanf("%s",stu[i].no);

printf("\n输入学员姓名:");

scanf("%s",stu[i].std_name);

printf("\n输入课程%s的分数:",stu[0].km[0].name);

scanf("%f",&stu[i].km[0].score);

printf("\n输入课程%s的分数:",stu[0].km[1].name);

scanf("%f",&stu[i].km[1].score);

printf("\n输入课程%s的分数:",stu[0].km[2].name);

scanf("%f",&stu[i].km[2].score);

stu[i].se=1;

printf("\n\n");

i++;

n=i;

printf("是否继续输入?(Y/N)");

fflush(stdin);

ch=getch();

system("cls");

}

while(ch!='n'&&ch!='N');

system("cls");

if(nu==0)

{

nu=n;

Se();

}

else

{

nu=n+nu;

Se_add(n);

}

}

int putout()

{

int i;char s;

if(nu==0)

{

printf("学生信息为零!请录入...");

return 0;

}

read();

do

{

printf("学生成绩信息:\n\n");

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

printf("学号:%s 姓名:%s\n%s分数:%2.1f\t%s分数:%2.1f\t%s分数:%2.1f\n平均分数:%2.1f\t总成绩:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].km[0].name,stu[i].km[0].score,stu[i].km[1].name,stu[i].km[1].score,stu[i].km[2].name,stu[i].km[2].score,stu[i].e,stu[i].sum);

printf("\t\t按任意键返回主菜单");

fflush(stdin);

s=getch();

}

while(!s);

system("cls");

}

int sort()/*排序数据函数*/

{

struct student temp;

int i,j;

char s;

if(nu==0)

{

printf("学生信息为零!请录入...");

return 0;

}

chushi();

read();

for(i=1;i<nu;i++)

{

for(j=1;j<=nu-i;j++)

{

if(stu[j-1].e<stu[j].e)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

do

{

printf("学生成绩信息:\n\n");

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

printf("学号:%s 姓名:%s 平均成绩:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].e);

printf("\t\t按任意键返回主菜单");

fflush(stdin);

s=getch();

}

while(!s);

system("cls");

}

void find()/*查询函数*/

{

int j,i=0;

int c=0;

char search[10]={'\0'};

char as;

if(nu==0)

{

printf("学生信息为零!请录入...");

return 0;

}

chushi();

read();

do

{

printf("输入要查询课程名称:");

scanf("%s",search);

for(j=0;j<max;j++)

if(!strcmp(stu[i].km[j].name,search))

{

c=1;

printf("\n该课程不及格学生姓名:\n");

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

if(stu[i].km[j].score<60)

printf("%s\n",stu[i].std_name);

}

if(c==0)

printf("无此课程!");

printf("\n\t\t按任意键返回主菜单");

fflush(stdin);

as=getch();

}

while(!as);

system("cls");

}

void tongji()

{

int j,m,z,i=0;

char s;

if(nu==0)

{

printf("学生信息为零!请录入...");

return 0;

}

chushi();

read();

for(z=0;z<max;z++)

{

m=stu[i].km[z].score;j=0;

printf("%s 最高分: ",stu[i].km[z].name);

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

if(m<stu[i].km[z].score)

{

m=stu[i].km[z].score;

j=i;

}

printf("%s\t",stu[j].std_name);

j=0;i=0;m=stu[i].km[z].score;

printf("%s 最低分: ",stu[i].km[z].name);

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

if(m>stu[i].km[z].score)

{

m=stu[i].km[z].score;

j=i;

}

printf("%s\t",stu[j].std_name);

m=0;j=0;i=0;

printf("%s 平均分: ",stu[i].km[z].name);

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

m=m+stu[i].km[z].score;

printf("%d\n",m/nu);

m=0;i=0;

printf("%s 分数低于的60人数: ",stu[i].km[z].name);

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

if(stu[i].km[z].score<60)

m++;

printf("%d\t",m);

m=0;j=0;i=0;

printf("%s 分数高于60的人数: ",stu[i].km[z].name);

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

if(stu[i].km[z].score>60)

m++;

printf("%d\n\n",m);

}

do

{

printf("\t\t按任意键返回主菜单");

fflush(stdin);

s=getch();

}

while(!s);

system("cls");

}

void main()/*主函数*/

{

int as;

first_check();

start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");

/*一下为功能选择模块*/

do

{

printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.查询不及格学生\n\t\t\t\t5.统计信息\n\t\t\t\t6.退出\n");

printf("\t\t\t\t选择功能选项:");

fflush(stdin);

read_nu();

scanf("%d",&as);

switch(as)

{

case 1:system("cls");putin();break;

case 2:system("cls");putout();break;

case 3:system("cls");sort();break;

case 4:system("cls");find();break;

case 5:system("cls");tongji();break;

case 6:system("exit");exit(0);

default:system("cls");goto start;

}

}

while(1);

/*至此功能选择结束*/

}

c语言编写查询学生成绩管理程序。

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#define max 20

typedef struct student //学生

{

char sno[max]; // 学号

char sname[max]; //姓名

char [max]; //性别

char age[max]; //年龄

char depart[max]; //系

char classs[max]; //班

char grade[max]; //年级

struct student* next;

} student;

student* head;

int LogOn() //登录模块,已实现输入密码不回显,如果中途发现输错某几位,可退格键重输

{

char username[max],password[max];

printf("\n请输入用户名:");

scanf("%s",username);

printf("\n请输入密码(最多15位):");

//开始以不回显且支持退格方式获取输入密码

int i=0;

while((i>=0)&&(password[i++]=getch())!=13)//条件i>=0是用于限制退格的范围

{

if(password[i-1]=='\b')//对退格键的处理

{

printf("%c%c%c",'\b','\0','\b');

i=i-2;

}

else

printf("*");

}

password[--i]='\0';

//已获取密码。验证用户身份

if(!strcmp(username,"zhang")&&!strcmp(password,"8147086"))

{

printf("\n登录成功!");

return 1;

}

else

return 0;

}

void regist()

{

char ch;

student *s,*ptr; //s用来建新结点,ptr用来暂存头结点

do

{

s=(student*)malloc(sizeof(student)); // 新建一个学生结点

printf("\n开始注册..."); //开始注册

printf("\n请输入该学生的学号:");

scanf("%s",s->sno);

printf("\n请输入该学生的姓名:");

scanf("%s",s->sname);

printf("\n请输入该学生的性别:");

scanf("%s",s->);

printf("\n请输入该学生的年龄:");

scanf("%s",s->age);

printf("\n请输入该学生的系:");

scanf("%s",s->depart);

printf("\n请输入该学生所在的班:");

scanf("%s",s->classs);

printf("\n请输入该学生所在的年级");

scanf("%s",s->grade);

ptr=head;

head=s;//将新结点插入队头

s->next=ptr;

fflush(stdin);

printf("\n请问是否继续注册?(Y/N)");

scanf("%c",&ch);

}while(ch=='Y'||ch=='y');

return;

}

void ElePrint(char str[]) //输出单个元素

{

if(str==NULL) exit(0);

printf("%s",str);

for(unsigned int i=0;i<12-strlen(str);i++) printf(" ");//为了对齐输出,需插入一些空格

return;

}

int LinePrint(student *ptr) //输出一行

{

if(ptr==NULL) //检查传进来的指针

return 0;

printf("\n");

ElePrint(ptr->sno);

ElePrint(ptr->sname);

ElePrint(ptr->age);

ElePrint(ptr->);

ElePrint(ptr->depart);

ElePrint(ptr->classs);

ElePrint(ptr->grade);

return 1;

}

void print() //输出全部学生信息

{

student *ptr=head;

printf("\n学号 姓名 年龄 性别 系 班 年级 ");

while(ptr)

{

LinePrint(ptr);

ptr=ptr->next;

}

printf("\n");

return;

}

void search()//查询模块

{

int method;//查询方式

char no[max],name[max],departm[max],clss[max],grades[max]; //用来接收查询关键字

while(1)

{

printf("\n请选择查询方式");

printf("\n1.按学号查询");

printf("\n2.按姓名查询");

printf("\n3.按所在系查询");

printf("\n4.按所在班级查询");

printf("\n5.按所在年级查询");

printf("\n6.打印全部学生信息");

printf("\n7.返回主菜单\n");

scanf("%d",&method);

student *p=head,*temp;

switch(method)

{

case 1:

printf("\n请输入要查询的学号:");

scanf("%s",no);

while(p)

{

if(!strcmp(p->sno,no))

break;

else

{

temp=p;

p=p->next;

}

}

printf("\n学号 姓名 年龄 性别 系 班 年级 ");

LinePrint(p);

break;

case 2:

printf("\n请输入要查询的姓名:");

scanf("%s",name);

printf("\n学号 姓名 年龄 性别 系 班 年级 ");

while(p)

{

if(!strcmp(p->sname,name))

LinePrint(p);

p=p->next;

}

break;

case 3:

printf("\n请输入学生所在的系:");

scanf("%s",departm);

printf("\n学号 姓名 年龄 性别 系 班 年级 ");

while(p)

{

if(!strcmp(p->depart,departm))

LinePrint(p);

p=p->next;

}

break;

case 4:

printf("\n请输入学生所在的班:");

scanf("%s",clss);

printf("\n请输入学生所在的年级:");

scanf("%s",grades);

printf("\n学号 姓名 年龄 性别 系 班 年级 ");

while(p)

{

if(!strcmp(p->classs,clss)&&!strcmp(p->grade,grades))

LinePrint(p);

p=p->next;

}

break;

case 5:

printf("\n请输入学生所在的年级:");

scanf("%s",grades);

printf("\n学号 姓名 年龄 性别 系 班 年级 ");

while(p)

{

if(!strcmp(p->grade,grades))

LinePrint(p);

p=p->next;

}

break;

case 6:

print();

break;

case 7:

return;

default:

printf("很抱歉,暂无此查询方式!");

break;

}

}

}

void modify()//修改学生信息

{

char num[max];

student *p=head;

printf("\n请输入要修改的学生的学号:");

scanf("%s",num);

while(p)

{

if(!strcmp(p->sno,num))

break;

else

p=p->next;

}

if(p==NULL)

{

printf("\n错误:没有此学生的信息!\n");

return;

}

LinePrint(p);

printf("\n请输入要修改的该学生的信息:");

printf("\n1.姓名");

printf("\n2.性别");

printf("\n3.年龄");

printf("\n4.所在的系");

printf("\n5.所在的班");

printf("\n6.所在的年级");

char name1[max],1[max],age1[max],depart1[max],class1[max],grade1[max];

int select;

fflush(stdin);

scanf("%d",&select);

printf("\n请输入新的信息:");

switch(select)

{

case 1:

scanf("%s",name1);

strcpy(p->sname,name1);

break;

case 2:

scanf("%s",1);

strcpy(p->,1);

break;

case 3:

scanf("%s",age1);

strcpy(p->age,age1);

break;

case 4:

scanf("%s",depart1);

strcpy(p->depart,depart1);

break;

case 5:

scanf("%s",class1);

strcpy(p->classs,class1);

break;

case 6:

scanf("%s",grade1);

strcpy(p->grade,grade1);

break;

default:

printf("\nError!");

break;

}

LinePrint(p);

return;

}

void del()// 删除某学生的信息

{

student *p=head,*temp=head,*s;

char num1[max];

printf("\n请输入要删除的学生的学号:");

scanf("%s",num1);

while(p)//查找该学生所在的结点

{

if(!strcmp(p->sno,num1))

break;

else

{

temp=p;

p=p->next;

}

}//while

if(!p)

{

printf("\n不存在此学生的信息.");

return;

}

LinePrint(p);//输出该学生的信息

printf("\n请问真的要删除该学生的信息吗?(Y/N)");

char ch;

fflush(stdin);

scanf("%c",&ch);

if(ch=='Y'||ch=='y')

{

s=p->next;

temp->next=s;

free(p);

printf("\n已经删除该学生的信息.");

}

return;

}

void sort() //排序模块。将学生记录按学号从小到大排列。用起泡排序算法实现

{

student *ptr,*s=head,*p;

int count=0,count1;

while(s)//统计链表结点个数

{

count++;

s=s->next;

}

for(int i=1;i<count;i++)

{

ptr=head;

p=NULL;

count1=count-i; //用来控制每轮起泡排序的终点,即每次把学号最小的结点移到倒数第i个结点

while(ptr&&ptr->next&&(count1--))

{

if(strcmp(ptr->sno,ptr->next->sno)>0)

{

s=ptr->next;

ptr->next=s->next;

if(p==NULL) //ptr处于队头时

head=s;

else

p->next=s;

s->next=ptr;

p=s;

}

else

{

ptr=ptr->next;

if(p==NULL) //ptr处于队头时

p=head;

else

p=p->next;

}

}

}

return;

}

void quit()

{

char ch;

printf("\n真的要退出?(Y/N)");

fflush(stdin);

scanf("%c",&ch);

if(ch=='Y'||ch=='y')

exit(0);

return;

}

int main()

{

int option;

printf("\nCopyright@2005 KongXinCai All rights reserved.");

printf("\n欢迎使用学生信息管理系统!\n");

//登录模块

int icheck=0;

while(icheck<3)

{

if(LogOn()==0)

icheck++;

else

break;

}

if(icheck==3)

{

printf("\n连续登录三次不成功,退出!");

exit(0);

}

//系统界面

while(1)

{

printf("\n\n请选择需要的服务:");

printf("\n1.注册");

printf("\n2.查询");

printf("\n3.修改");

printf("\n4.删除");

printf("\n5.排序");

printf("\n7.求平均");

printf("\n6.退出\n");

scanf("%d",&option);

switch(option)

{

case 1:

regist();

break;

case 2:

search();

break;

case 3:

modify();

break;

case 4:

del();

break;

case 5:

sort();

break;

case 6:

quit();

break;

}

}

return 0;

}

C++简单编程题目 求大神教育 学生成绩管理系统

#include<stdio.h>

#include<stdlib.h>

#include<string.h>struct record

{

char xuehao[10];//学号

char name[20]; //姓名

char [3];//性别

int ke1;//数学

int ke2 ;//语文

int ke3;//英语

int pin;

}stu[50];

int k=1,n,m;void readfile();

void seek();

void insert();

void del();

void se();

void menu();

void seek()

{int i,j,item,flag;<br>char s1[20];<br>printf("------------------\n");<br>printf("1.按学号查询\n");<br>printf("2.退出本菜单\n");<br>printf("------------------\n");<br>while(1)<br>{ printf("请选择子菜单编号:");<br>scanf("%d",&item);<br>flag=0;<br>switch(item)<br>{<br>case 1:<br>printf("请输入要查询的学生的学号:\n");<br>scanf("%s",s1);<br>for(i=0;i<n;i++)<br>if(strcmp(stu[i].xuehao,s1)==0)<br>{ flag=1;<br>printf("该学生学号,姓名,性别,数学,语文,英语 分别为:\n");<br>printf(" %s %s %s %d %d %d",stu[i].xuehao,stu[i].name,<br>stu[i].,stu[i].ke1,stu[i].ke2,stu[i].ke3);<br>}

if(flag==0)

printf("该学号不存在!\n"); break;

case 2:return;

default:printf("请在1-2之间选择\n");

}

}

}

void insert()

{ int i=n,j,flag;

printf("请输入待增加的学生数:\n");

scanf("%d",&m);

do

{ flag=1;

while(flag)

{ flag=0;

printf("请输入第 %d 个学生的学号:\n",i+1);

scanf("%s",stu[i].xuehao);

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

if(strcmp(stu[i].xuehao,stu[j].xuehao)==0)

{ printf("已有该学号,请检查后重新录入!\n");

flag=1;

break;

}

}

printf("请输入第 %d 个学生的姓名:",i+1);

scanf("%s",stu[i].name);

printf("\n请输入第 %d 个学生的性别:",i+1);

scanf("%s",stu[i].);

printf("\n请输入第 %d 个学生的数学成绩:",i+1);

scanf("%d",&stu[i].ke1);

printf("\n请输入第 %d 个学生的语文成绩:",i+1);

scanf("%d",&stu[i].ke2);

printf("\n请输入第 %d 个学生的英语成绩:",i+1);

scanf("%d",&stu[i].ke3);if(flag==0)

{ i=i;

i++;

}

}while(i<n+m);

n+=m;

printf("录入完毕!\n\n");

}void del()

{ int i,j,flag=0;

char s1[20];

printf("请输入要删除学生的学号:\n");

scanf("%s",s1);

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

if(strcmp(stu[i].xuehao,s1)==0)

{ flag=1;

for(j=i;j<n-1;j++)

stu[j]=stu[j+1];

}

if(flag==0)

printf("该学号不存在!\n");

if(flag==1)

{ printf("删除成功,显示结果请选择菜单6\n");

n--;

}

}

void readfile()

{

char buf[80],*p="student.dat";

FILE *fp;

int i=0;

if ((fp=fopen("student.dat","r"))==NULL)

{ printf("Open file %s error! Strike any key to exit!",p);

system("pause");

exit(0);

}

while(fscanf(fp,"%s%s%s%d%d%d",stu[i].xuehao,stu[i].name,

stu[i].,&stu[i].ke1,&stu[i].ke2,&stu[i].ke3)==6)

{ i++;

i=i;

}

fclose(fp);

n=i;

printf("录入完毕!\n");

}void se()

{ int i,j,k,flag=0;

FILE *fp;

fp=fopen("student.dat","w");

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

{

fprintf(fp,"%s%s%d%d%d",stu[i].xuehao,stu[i].name,stu[i].,&stu[i].ke1,

&stu[i].ke2,&stu[i].ke3);

fclose(fp);

printf("已储存");

}

}

void paixu()

{

int i,j,k,t;

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

{

stu[i].pin=(stu[i].ke1+stu[i].ke2+stu[i].ke3)/3;

}

for(i=0;i<=m-2;i++)

{

k=i;

for(j=i+1;j<=m-1;j++)

if(stu[j].pin<stu[k].pin)

k=j;

if(k!=i)

{

t=stu[k].pin;

stu[k].pin=stu[i].pin;

stu[i].pin=t;

}

}

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

{printf("第 %d 个学生的姓名%s:",i+1,stu[i].name);<br> printf("\n第 %d 个学生的性别:%s",i+1,stu[i].);<br> printf("\n第 %d 个学生的数学成绩:%d",i+1,stu[i].ke1);<br> printf("\n第 %d 个学生的语文成绩:%d",i+1,stu[i].ke2);<br> printf("\n第 %d 个学生的英语成绩:%d",i+1,stu[i].ke3);<br> printf("\n第 %d 个学生的平均成绩:%d",i+1,stu[i].pin);<br> }

}

void menu()

{ int nub;

printf(" \n\n学生成绩管理系统\n\n");

printf("*****系统功能菜单*****\n");

printf("----------------------\n");

printf("1.输入学生信息\n");

printf("2.查询学生信息\n");

printf("3.按学号删除信息\n");

printf("4.读入学生信息\n");

printf("5.保存信息(要把修改保存到文件,退出程序前必须执行本项)\n");

printf("6.查询学生平均成绩信息\n");

printf("0.退出系统\n");

printf("----------------------\n");

printf("请选择菜单编号:");

scanf("%d",&nub);

switch(nub)

{

case 1:insert();break;

case 2:seek();break;

case 3:del();break;

case 4:readfile();break;

case 5:se();break;

case 6:paixu();break;

case 0:k=0;break;

default:printf("请在0-6之间选择\n");

}}

void main()

{

while(k)

menu();

}

//平均数是排序后,输出的,如果你不想直接输入,那就不要对每个学生进行选择排序了

#include<stdio.h>

#include<windows.h>

#include<stdlib.h>

#include<string.h>

/*作者:北京交通大输10级?lenhal

功能:成绩管理系统

时间:2012年7月

*/

int?n=2;?//全局变量,要输入的学生数,自行改变其值

struct?student

{

char?num[10];

char?name[10];

float?score[3];

float?g;

}stu[200];

/**********************************************************************************************/

void?enter(struct?student?t[])//输入数据

{

int?i,j,k,a;

system("cls");

printf("输入数据之前,请确定输入的人数\n你是否已经确定了人数\n");

printf("是输入1回车继续\n否输入0回车退出程序,改变全局变量的值\n");

scanf("%d",&a);

if(a!=1)

exit(0);

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

{

system("cls");?//清屏

printf("请输入第%d个学生的学号:\n",i+1);

scanf("%s",t[i].num);

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

if(strcmp(t[i].num,t[j].num)==0)?//避免有相同的学号

{

i--;

printf("此学号的学生已存在,请重新输入:");

Sleep(3000);

break;

}

}

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

{

system("cls");

printf("请输入学号为%s学生的:(用空格隔开)?\n名字?第一门成绩?第二门成绩?第三门成绩\n",t[i].num);

//t[i].score[0]=0;t[i].score[1]=0;t[i].score[2]=0;

scanf("%s%f%f%f",t[i].name,&t[i].score[0],&t[i].score[1],&t[i].score[2]);

t[i].g=(t[i].score[0]+t[i].score[1]+t[i].score[2])/3.0;

}

}

/**********************************************************************************************/

int?list(struct?student?t[])//显示所有信息

{

int?i;

system("cls");

printf("所有%d个学生信息如下:\n\n",n);

printf("学号?名字第一门成绩第二门成绩第三门成绩平均分\n");

for(i=0;?;i++)

{

if(strlen(t[i].num)!=0)?//判断是否结束

printf("%s\t%s\t?%5.2f\t%5.2f\t%5.2f\t?%5.2f\t\n",

t[i].num,t[i].name,t[i].score[0],t[i].score[1],t[i].score[2],t[i].g);

else?

break;

}

putchar(10);

}

/**********************************************************************************************/

void?research(struct?student?t[])//按学号查找某个信息

{

int?i,a,y;

char?s[10];

while(1)

{

system("cls");

printf("请输入要查询的学号:");

scanf("%s",&s);

for(i=0;?;i++)

{

system("cls");

if?(!(strcmp(s,t[i].num)))?//如果找到该学号,则输出

{

printf("学号为%s的学生成绩如下:\n\n",t[i].num);

printf("学号名字第一门成绩第二门成绩第三门成绩平均分\n");

printf("%s\t%s\t?%5.2f\t%5.2f\t%5.2f\t?%5.2f\t\n",

t[i].num,t[i].name,t[i].score[0],t[i].score[1],t[i].score[2],t[i].g);

putchar(10);

break;

}

else?if((strcmp(s,t[i].num))!=0?&&?strlen(t[i].num)==0)//查找完毕后找不到该学号,结束

{

printf("\n没有此学号的信息:\n\n");

break;

}

}

printf("************************************\n");

printf("继续查询,输入1回车\n");

printf("返回主菜单,输入2回车\n");

printf("退出程序,输入任意回车\n");

printf("************************************\n");

scanf("%d",&a);

if(a==1)

research(stu,n);

else?if(a==2)

break;

else

{

system("cls");

printf("是否退出?直接退出输入1回车,保存数据退出输入2回车,输入22回主菜单\n建议退出前先保存数,否则数据将丢失");

scanf("%d",&y);

if(y==1)

exit(0);

else?if(y==2)

se(stu);

else

main();

}

}

main();

}

/**********************************************************************************************/

void?del(struct?student?t[])?//删除某一学生的信息

{

int?i,j,a,z,y;

char?b[10];

system("cls");

printf("请输入要删除的学号:");

scanf("%s",b);

for(i=0;?;i++)

if(strcmp(b,t[i].num)==0)

break;

else?if((strcmp(b,t[i].num))!=0?&&?strlen(t[i].num)==0)

{

printf("没有此学号的信息:\n\n");

Sleep(3000);

break;

}

if(strlen(t[i].num)!=0)

{

system("cls");

printf("确认删除?是输入1回车\n");

scanf("%d",&z);

if(z==1)

for(j=i;?;j++)

{

if(strlen(t[j].num)==0)

break;

else

{

t[j]=t[j+1];

n=n-1;

}

}

}

system("cls");

printf("************************************\n");

printf("继续删除,输入1回车\n");

printf("返回主菜单,输入2回车\n");

printf("退出程序,输入任意回车\n");

printf("************************************\n");

scanf("%d",&a);

if(a==1)

del(stu);

else?if(a==2)

main();

else

{

system("cls");

printf("是否退出?直接退出输入1回车,保存数据退出输入2回车,输入22回主菜单\n建议退出前先保存数,否则数据将丢失");

scanf("%d",&y);

if(y==1)

exit(0);

else?if(y==2)

se(stu);

else

main();

}

}

/**********************************************************************************************/

void?add(struct?student?t[])//增加学生数据

{

int?i,j,m,a,y;

system("cls");

printf("请输入要增加的记录数:\nm=");

scanf("%d",&m);

for(i=n;i<n+m;i++)

{

system("cls");

printf("请输入第%d个新增学生的学号:",i-n+1);

scanf("%s",t[i].num);

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

if(strcmp(t[i].num,t[j].num)==0)//避免学号重复

{

i--;

printf("此学号的学生已存在,请重新输入:");

Sleep(3000);

break;

}

}

for(i=n;i<n+m;i++)

{

system("cls");

printf("请输入增加学号为%s学生的:(用空格隔开)?\n名字?第一门成绩?第二门成绩?第三门成绩\n",t[i].num);

//t[i].score[0]=0;t[i].score[1]=0;t[i].score[2]=0;

scanf("%s%f%f%f",t[i].name,&t[i].score[0],&t[i].score[1],&t[i].score[2]);

t[i].g=(t[i].score[0]+t[i].score[1]+t[i].score[2])/3.0;

}

n=n+m;?//学生数等于本来学生数加新加的学生数

printf("************************************\n");

printf("继续添加,输入1回车\n");

printf("返回主菜单,输入2回车\n");

printf("退出程序,输入任意回车\n");

printf("************************************\n");

scanf("%d",&a);

if(a==1)

add(stu);

else?if(a==2)

main();

else

{

system("cls");

printf("是否退出?直接退出输入1回车,保存数据退出输入2回车,输入22回主菜单\n建议退出前先保存数,否则数据将丢失");

scanf("%d",&y);

if(y==1)

exit(0);

else?if(y==2)

se(stu);

else

main();

}

}

/**********************************************************************************************/

int?se(struct?student?t[])//保存数据到文件中

{

FILE?*fp;

char?s[20],ch;

int?i,a,y;

system("cls");

printf("保存到新的文件输入1回车\n保存到已有文件输入2回车\n");

scanf("%d",&a);

ch=getchar();//接收回车字符,否则gets()函数将空格赋给s,出错

if(a==1)

{

printf("请输入新的文件名:\n(包括其拓展名,20个字符以下)\n");

gets(s);

if((fp=fopen(s,"w+"))==NULL)?//使fp指向文件

{

printf("没有此文件\n");

exit(0);

}

}

else?if(a==2)

{

printf("请输入已有文件名:\n(包括其拓展名,20个字符以下)\n");

gets(s);

if((fp=fopen(s,"w+"))==NULL)

{

system("cls");

printf("没有此文件\n");

exit(0);

}

}

fprintf(fp,"%d\n",n);//将学生数写的文件中

for(i=0;?;i++)

if(strlen(t[i].num)!=0)?//如果学号不为空,将数据写到指定文件中

{

fprintf(fp,"%s\t%s\t%-5.2f\t%-5.2f\t%-5.2f\t%-5.2f",

t[i].num,t[i].name,t[i].score[0],t[i].score[1],t[i].score[2],t[i].g);

fprintf(fp,"\n");

}

else

break;

fclose(fp);

system("cls");

printf("\n保存完成!\n");

}

/**********************************************************************************************/

void?read(struct?student?t[])//读取文件中的数据

{

FILE?*fp;

int?y,m,i,x;

char?s[20],ch;

ch=getchar();?//接收回车字符,否则gets()函数将空格赋给s,出错

system("cls");

printf("请输入要读取数据的文件名:\n(包括其拓展名,20个字符以下)\n");

gets(s);

if((fp=fopen(s,"r"))==NULL)

{

system("cls");

printf("没有此文件\n");

Sleep(3000);

system("cls");

printf("是否退出?直接退出输入1回车,保存数据退出输入2回车,输入22回主菜单\n建议退出前先保存数,否则数据将丢失");

scanf("%d",&y);

if(y==1)

exit(0);

else?if(y==2)

se(stu);

else

main();

}

fscanf(fp,"%d",&x);//读取学生数

for(i=0;i<x;i++)?//读取所有数据

fscanf(fp,"%s%s%f%f%f%f",t[i].num,t[i].name,&t[i].score[0],

&t[i].score[1],&t[i].score[2],&t[i].g);

fclose(fp);

system("cls");

n-=n;?//将n置0

n=x;

printf("\n读取完成!\n");

}

/**********************************************************************************************/

menu()?//选择菜单

{

int?x;

printf("请选择相应的菜单:\n");

printf("************************************\n");

printf("输入新记录,输入0回车\n");

printf("显示全部学生成绩,输入1回车\n");

printf("查询相应的记录,输入2回车\n");

printf("删除相应的记录,输入3回车\n");

printf("增加新的记录,输入4回车\n");

printf("从文件中读入记录,输入5回车\n");

printf("按平均分从高到低排序并输出,输入6回车\n");

printf("按学号从低到高排序并输出,输入7回车\n");

printf("查找每门成绩的最高分,输入8回车\n");

printf("保存成绩到文本中,输入9回车\n");

printf("退出程序,输入11回车\n");

printf("************************************\n");

scanf("%d",&x);

return?x;

}

/**********************************************************************************************/

void?to_exit()?//退出

{

int?y;

system("cls");

printf("是否退出?直接退出输入1回车,保存数据退出输入2回车,输入22回主菜单\n建议退出前先保存数,否则数据将丢失");

scanf("%d",&y);

if(y==1)

exit(0);

else?if(y==2)

se(stu);

else

main();

}

/**********************************************************************************************/

void?g_arrange(struct?student?t[])//按平均分从高到低排序

{

int?i,j;

struct?student?temp[1];

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(t[i].g?<?t[j].g)

{

temp[0]=t[i];

t[i]=t[j];

t[j]=temp[0];

}

list(stu);

}

/**********************************************************************************************/

void?num_arrange(struct?student?t[])//按学号从小到大排序

{

int?i,j;

struct?student?temp[1];

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

for(j=0;j<n-1;j++)

if(strcmp(t[j].num,t[j+1].num)>0)

{

temp[0]=t[j];

t[j]=t[j+1];

t[j+1]=temp[0];

}

list(t);

}

/**********************************************************************************************/

void?high(struct?student?t[])//查找某门科目的最高成绩

{

int?i,j,k;

struct?student?max[1];

max[0]=t[0];

system("cls");

printf("请输入要查找的科目:?1?or?2?or?3\n");

scanf("%d",&k);

for(i=1;i<n;i++)

max[0]=max[0].score[k-1]?>?t[i].score[k-1]max[0]:t[i];

system("cls");

printf("第?%d?科目:?最分为:%-5.2f?学号为%s\n",k,max[0].score[k-1],max[0].num);

}

/**********************************************************************************************/

main()

{

int?a;

while(1)

{

a=menu();

switch(a)//根据选择菜单做相应的操作

{

case?0?:?enter(stu);break;

case?1:?list(stu);break;

case?2:?research(stu);break;

case?3:?del(stu);break;

case?4:?add(stu);break;

case?5:?read(stu);break;

case?6:?g_arrange(stu);break;

case?7:?num_arrange(stu);break;

case?8:?high(stu);break;

case?9:?se(stu);break;

default?:?to_exit();break;

}

}

}

/**********************************************************************************************/

文章标签: # lt # gt # printf