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

2019-01-26 16:57

学生成绩管理系统

要求:

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

int sno; //学号 char name[8]; //姓名 char sex[3]; //性别 char inclass[8]; //班级 float math; //数学成绩 float English; //英语成绩 float computer; //计算机成绩 }

2. 能够按学号、按性别、按班级查询。查询方式可以自己补充。

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

5. 系统的各个功能模块要求用函数的形式实现。 6. 在主函数里通过菜单来调用各个函数。 7. 用链表或数组来存储班级学生。

8. 学生的信息能够保存在文件里(思考用二进制文件和文本文件的异同)。 如果用文本文件存储,则文件格式如下:

学号 姓名 性别 班级 数学 英语 计算机 0601 王鹏 男 一班 68.5 58 96 0602 李云 女 二班 68.5 88 98 0603 赵亚男 女 一班 58.5 48 96 0604 刘飞 男 三班 68.5 78 58 9. 能够对文件进行读写、修改、删除。

#include #include #include #include

#include FILE *fp; struct student{

int sno; //学号 char name[8]; //姓名 char sex[4]; //性别 char Class[4]; //班级 float math; //数学成绩 float English; //英语成绩 float computer; //计算机成绩 float zong; //总成绩 float ping; //平均成绩 }stu[100],change;

void print() //定义界面函数 {

cout<<\ cout<

cout<<\}

void cjxscj() //定义 创建学生成绩文件 函数 {

int i;char a;

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文件

for(i=0;i<100;i++) //把结构体的信息存入fh.dat文件 if(fwrite(&stu[i],sizeof(student),1,fp)!=1) cout<<\文件写入出错\ fclose(fp); //关闭文件

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

void zjxsxx() //定义 增加学生信息 函数 {

int i;char y;

if((fp=fopen(\ //打开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<<\学号:\ cout<<\姓名:\ cout<<\性别:\ cout<<\班级:\ cout<<\数学:\ cout<<\英语:\ cout<<\计算机:\

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(); //打印出主菜单 }

void scxsxx() //定义删除学生信息 函数 {

int i,p,k,j;char w;char x[8];

if((fp=fopen(\ //打开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<<\学号\姓名\性别\ <<\班级\数学\英语\

<<\计算机\总成绩\平均成绩\ cout<

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=='#') //控制是否继续删除 goto loop;

rewind(fp); //移动文件内部位置指针到文件首 for(i=0;i<100;i++) //把结构体的信息存入fh.dat文件 fwrite(&stu[i],sizeof(student),1,fp); fclose(fp); //关闭文件 print(); //打印出主菜单 }

void xgxsxx() //定义 修改学生信息 函数 {

int i,p,k,j=0;char u,v[8];

if((fp=fopen(\ //打开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;


学生成绩管理系统用C++编程.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新金陵科技学院毕业实习周记原创

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: