学生成绩管理系统用C编程.docx

上传人:b****8 文档编号:12698687 上传时间:2023-06-07 格式:DOCX 页数:18 大小:17.77KB
下载 相关 举报
学生成绩管理系统用C编程.docx_第1页
第1页 / 共18页
学生成绩管理系统用C编程.docx_第2页
第2页 / 共18页
学生成绩管理系统用C编程.docx_第3页
第3页 / 共18页
学生成绩管理系统用C编程.docx_第4页
第4页 / 共18页
学生成绩管理系统用C编程.docx_第5页
第5页 / 共18页
学生成绩管理系统用C编程.docx_第6页
第6页 / 共18页
学生成绩管理系统用C编程.docx_第7页
第7页 / 共18页
学生成绩管理系统用C编程.docx_第8页
第8页 / 共18页
学生成绩管理系统用C编程.docx_第9页
第9页 / 共18页
学生成绩管理系统用C编程.docx_第10页
第10页 / 共18页
学生成绩管理系统用C编程.docx_第11页
第11页 / 共18页
学生成绩管理系统用C编程.docx_第12页
第12页 / 共18页
学生成绩管理系统用C编程.docx_第13页
第13页 / 共18页
学生成绩管理系统用C编程.docx_第14页
第14页 / 共18页
学生成绩管理系统用C编程.docx_第15页
第15页 / 共18页
学生成绩管理系统用C编程.docx_第16页
第16页 / 共18页
学生成绩管理系统用C编程.docx_第17页
第17页 / 共18页
学生成绩管理系统用C编程.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统用C编程.docx

《学生成绩管理系统用C编程.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统用C编程.docx(18页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统用C编程.docx

学生成绩管理系统用C编程

学生成绩管理系统

要求:

1.学生的信息用结构体来表示。

structstu{

intsno;//学号

charname[8];//姓名

charsex[3];//性别

charinclass[8];//班级

floatmath;//数学成绩

floatEnglish;//英语成绩

floatcomputer;//计算机成绩

}

2.能够按学号、按性别、按班级查询。

查询方式可以自己补充。

3.能够统计每个学生的平均成绩、总成绩、并可以按平均成绩和总成绩进行排序(排序的方法很多,大家应该上网多查查排序的方法,并比较各个排序方式的好坏),并在屏幕上打印排序结果。

4.能够修改、删除、添加学生的信息。

5.系统的各个功能模块要求用函数的形式实现。

6.在主函数里通过菜单来调用各个函数。

7.用链表或数组来存储班级学生。

8.学生的信息能够保存在文件里(思考用二进制文件和文本文件的异同)。

如果用文本文件存储,则文件格式如下:

学号姓名性别班级数学英语计算机

0601王鹏男一班68.55896

0602李云女二班68.58898

0603赵亚男女一班58.54896

0604刘飞男三班68.57858

9.能够对文件进行读写、修改、删除。

#include

#include

#include

#include

#include

FILE*fp;

structstudent{

intsno;//学号

charname[8];//姓名

charsex[4];//性别

charClass[4];//班级

floatmath;//数学成绩

floatEnglish;//英语成绩

floatcomputer;//计算机成绩

floatzong;//总成绩

floatping;//平均成绩

}stu[100],change;

voidprint()//定义界面函数

{

cout<<"*********************************************************"<

cout<

cout<<"*********************************************************"<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<<"*********************************************************"<

}

voidcjxscj()//定义创建学生成绩文件函数

{

inti;chara;

for(i=0;i<100;i++)//输入学生信息

{

cout<<"请输入第"<

"<

cout<<"学号:

";

cin>>stu[i].sno;

cout<<"姓名:

";

cin>>stu[i].name;

cout<<"性别:

";

cin>>stu[i].sex;

cout<<"班级:

";

cin>>stu[i].Class;

cout<<"数学成绩:

";

cin>>stu[i].math;

cout<<"英语成绩:

";

cin>>stu[i].English;

cout<<"计算机成绩:

";

cin>>stu[i].computer;

stu[i].zong=stu[i].math+stu[i].English+stu[i].computer;

stu[i].ping=stu[i].zong/3;

cout<<"继续输入请按@"<

cout<<"退出输入,返回主菜单请按#"<

cin>>a;

if(a=='#')

i=100;

}

fp=fopen("fh.dat","wb");//打开fh.dat文件

for(i=0;i<100;i++)//把结构体的信息存入fh.dat文件

if(fwrite(&stu[i],sizeof(student),1,fp)!

=1)

cout<<"文件写入出错"<

fclose(fp);//关闭文件

print();//打印出主菜单

}

voidzjxsxx()//定义增加学生信息函数

{

inti;chary;

if((fp=fopen("fh.dat","rb+"))==NULL)//打开fh.dat文件

{

cout<<"不能打开此文件"<

exit(0);

}

for(i=0;i<100;i++)//把文件中数据付给结构体

fread(&stu[i],sizeof(student),1,fp);

for(i=98;i>=0;i--)

if(stu[i].math==0)

break;

cout<<"请输入需要添加的学生信息"<

while(i>0)//输入需要添加的学生信息

{

cout<<"学号:

";cin>>stu[i].sno;

cout<<"姓名:

";cin>>stu[i].name;

cout<<"性别:

";cin>>stu[i].sex;

cout<<"班级:

";cin>>stu[i].Class;

cout<<"数学:

";cin>>stu[i].math;

cout<<"英语:

";cin>>stu[i].English;

cout<<"计算机:

";cin>>stu[i].computer;

stu[i].zong=stu[i].math+stu[i].English+stu[i].computer;

stu[i].ping=stu[i].zong/3;

cout<<"继续添加请按@"<

cout<<"返回主菜单请按#"<

cin>>y;

if(y=='#')//控制使其停止输入

i=0;

i--;

}

rewind(fp);//移动文件内部位置指针到文件首

for(i=0;i<100;i++)//把结构体的信息存入fh.dat文件

fwrite(&stu[i],sizeof(student),1,fp);

fclose(fp);//关闭文件

print();//打印出主菜单

}

voidscxsxx()//定义删除学生信息函数

{

inti,p,k,j;charw;charx[8];

if((fp=fopen("fh.dat","rb+"))==NULL)//打开fh.dat文件

{

cout<<"不能打开此文件"<

exit(0);

}

for(i=0;i<100;i++)//把文件中数据付给结构体

fread(&stu[i],sizeof(student),1,fp);

loop:

cout<<"请输入你要删除学生信息的姓名或学号"<

cout<<"输入姓名请按1"<

cout<<"输入学号请按2"<

cin>>p;

if(p==1)//通过输入名字查找要删除的信息

{

cout<<"请输入姓名:

";

cin>>x;

}

else//通过输入学号查找要删除的信息

{

cout<<"请输入学号:

";

cin>>k;

}

i=0,j=0;

while(i<100)

{

if(strcmp(x,stu[i].name)==0||k==stu[i].sno)//找出要删除的学生信息,将其输出

{

cout<<"学生信息情况:

"<

cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"

<<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"

<<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩";

cout<

<

stu[i].math<<"\t"<

stu[i].computer<<"\t"<

stu[i].ping<

cout<<"确定删除请按#"<

cout<<"取消删除请按@"<

cin>>w;

if(w=='#')//控制是否删除

i=100;

}

i++;j++;

}

if(i==100)//控制是否找到要删除学生的信息

cout<<"没有找到你要删除的学生信息"<

else

for(i=j-1;i<100;i++)//从要删除的学生信息开始,将后一个结构体的

stu[i]=stu[i+1];//信息赋值给前一个

cout<<"继续删除请按#"<

cout<<"返回主菜单请按@"<

cin>>w;

if(w=='#')//控制是否继续删除

gotoloop;

rewind(fp);//移动文件内部位置指针到文件首

for(i=0;i<100;i++)//把结构体的信息存入fh.dat文件

fwrite(&stu[i],sizeof(student),1,fp);

fclose(fp);//关闭文件

print();//打印出主菜单

}

voidxgxsxx()//定义修改学生信息函数

{

inti,p,k,j=0;charu,v[8];

if((fp=fopen("fh.dat","rb+"))==NULL)//打开fh.dat文件

{

cout<<"不能打开此文件"<

exit(0);

}

for(i=0;i<100;i++)//把文件中数据付给结构体

fread(&stu[i],sizeof(student),1,fp);

hoop:

cout<<"请输入你要修改学生信息的姓名或学号"<

cout<<"输入姓名请按1"<

cout<<"输入学号请按2"<

cin>>p;

if(p==1)//通过输入姓名查找要修改的学生信息

{

cout<<"请输入姓名:

";

cin>>v;

}

else//通过输入学号查找要修改的学生信息

{

cout<<"请输入学号:

";

cin>>k;

}

i=0;

while(i<100)

{

if(strcmp(v,stu[i].name)==0||k==stu[i].sno)//找出要修改的学生信息,将其输出

{

cout<

"<

cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"

<<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"

<<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩";

cout<

<

stu[i].math<<"\t"<

stu[i].computer<<"\t"<

stu[i].ping<

i=100;

}

i++;j++;

}

if(i==100)//控制是否找到要修改学生的信息

cout<<"没有找到你要修改的学生的信息"<

else

{

cout<<"下面请开始修改"<

cout<<"学号:

";

cin>>change.sno;

cout<<"姓名:

";

cin>>change.name;

cout<<"性别:

";

cin>>change.sex;

cout<<"班级:

";

cin>>change.Class;

cout<<"数学成绩:

";

cin>>change.math;

cout<<"英语成绩:

";

cin>>change.English;

cout<<"计算机成绩:

";

cin>>puter;

change.zong=change.math+change.English+puter;

change.ping=change.zong/3;

stu[j-1]=change;

}

cout<<"继续修改请按@"<

cout<<"返回主菜单请按#"<

cin>>u;

if(u=='@')//控制是否继续修改

gotohoop;

rewind(fp);//移动文件内部位置指针到文件首

for(i=0;i<100;i++)//把结构体的信息存入fh.dat文件

fwrite(&stu[i],sizeof(student),1,fp);

fclose(fp);//关闭文件

print();//打印出主菜单

}

voidcxxsxx()//定义查询学生信息函数

{

intb,d,f;booltf;

charz[8],x[4],g[4];

if((fp=fopen("fh.dat","rb"))==NULL)//打开fh.dat文件

{

cout<<"不能打开该文件"<

exit(0);

}

cout<<"选择1姓名查询"<

cout<<"选择2学号查询"<

cout<<"选择3性别查询"<

cout<<"选择4班级查询"<

cout<<"选择5退出查询系统,返回主菜单"<

cin>>d;

for(b=0;b<100;b++)//把文件中数据付给结构体

fread(&stu[b],sizeof(student),1,fp);

while(d<5)

{

tf=false;

if(d==1)//按姓名查询

{

cout<<"请输入姓名:

";

cin>>z;b=0;

while(b<100)

{

if(strcmp(z,stu[b].name)==0)//找到要查询学生的信息,将其输出

{

cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"

<<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"

<<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩";

cout<

<

stu[b].math<<"\t"<

stu[b].computer<<"\t"<

stu[b].ping;

tf=true;

}

b++;

}

if(tf=false)//控制是否找到要查询的学生信息

cout<<"没有你要查询的信息"<

}

elseif(d==2)//按学号查询

{

cout<<"请输入学号:

";

cin>>f;b=0;

while(b<100)

{

if(f==stu[b].sno)//找到要查询学生的信息,将其输出

{

cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"

<<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"

<<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩";

cout<

<

stu[b].math<<"\t"<

stu[b].computer<<"\t"<

stu[b].ping;

b=100;

}

b++;

}

if(b==100)//控制是否找到要查询的学生信息

cout<<"没有你要查询的信息"<

}

elseif(d==3)//按性别查询

{

cout<<"请输入性别:

";

cin>>x;b=0;

while(b<100)

{

if(strcmp(x,stu[b].sex)==0)//找到要查询学生的信息,将其输出

{

cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"

<<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"

<<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩";

cout<

<

stu[b].math<<"\t"<

stu[b].computer<<"\t"<

stu[b].ping;

tf=true;

}

b++;

}

if(tf==false)//控制是否找到要查询的学生信息

cout<<"没有你要查询的信息"<

}

else//按班级查询

{

cout<<"请输入班级:

";

cin>>g;b=0;

while(b<100)

{

if(strcmp(g,stu[b].Class)==0)//找到要查询学生的信息,将其输出

{

cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"

<<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"

<<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩";

cout<

<

stu[b].math<<"\t"<

stu[b].computer<<"\t"<

stu[b].ping;

tf=true;

}

b++;

}

if(tf==false)//控制是否找到要查询的学生信息

cout<<"没有你要查询的信息"<

}

cout<

cout<<"选择1姓名查询"<

cout<<"选择2学号查询"<

cout<<"选择3性别查询"<

cout<<"选择4班级查询"<

cout<<"选择5退出查询系统,返回主菜单"<

cin>>d;//控制while循环语句

}

print();//打印出主菜单

}

voidpx()//定义排序函数

{

inti,j;

if((fp=fopen("fh.dat","r"))==NULL)//打开fh.dat文件

{

cout<<"不能打开此文件"<

exit(0);

}

for(i=0;i<100;i++)//把文件中数据付给结构体

fread(&stu[i],sizeof(student),1,fp);

for(i=0;i<100;i++)//采用降序法排序

for(j=i+1;j<100;j++)

if(stu[i].zong

{

change=stu[i];

stu[i]=stu[j];

stu[j]=change;

}

cout<

"<

cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"

<<"班级"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"

<<"计算机"<<"\t"<<"总成绩"<<"\t"<<"平均成绩";

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

if(stu[i].math!

=0)//控制输出排序后的学生信息

cout<

<

stu[i].math<<"\t"<

stu[i].computer<<"\t"<

stu[i].ping<

fclose(fp);//关闭文件

print();//打印出主菜单

}

voidmain()

{

intj;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2