是关于一个C++语言成绩记录簿,每个学生信息应该包括:学号、姓名、C语言成绩。具体功能:
(1)创建信息链表并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩并可存盘;
(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
大侠们看看这程序有问提吗,好想不是c++de ,谁帮我 改下
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <iomanip.h>
const int MAX=100;
//每位同学的数据包括以下内容:学号(长整型)、姓名(字符串)、
//数学成绩(整型)、程序设计成绩(整型)。
struct STUDENT
{
long id;
char name[20];
int math;
int prog;
};
STUDENT student[MAX];
int num=0;//实际人数
//初始化数据
void init()
{
for(int i=0;i<MAX;i++)
{
student[i].id=0;
//student[i].name="";
student[i].math=0;
student[i].prog=0;
}
}
void print()
{
cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"数学"<<setw(10)<<"程序"<<endl;
for(int i=0;i<num;i++)
{
cout<<setw(10)<<student[i].id;
cout<<setw(10)<<student[i].name;
cout<<setw(10)<<student[i].math;
cout<<setw(10)<<student[i].prog;
cout<<endl;
}
}
//新建学生档案
void newdata()
{
cout<<"请输入学生人数:";
cin>>num;
if(num<=MAX)
{
for(int i=0;i<num;i++)
{
cout<<"请输入第"<<i+1<<"个学生的资料"<<endl;
cout<<"学号:";
cin>>student[i].id;
cout<<"姓名:";
cin>>student[i].name;
cout<<"数学成绩:";
cin>>student[i].math;
cout<<"程序设计成绩:";
cin>>student[i].prog;
}
cout<<"输入完毕!!"<<endl;
print();
}
else
{
cout<<"人数过多,请加大空间!"<<endl;
exit(1);
}
}
//添加学生数据
void adddata()
{
if(num==0)
{
cout<<"尚未建立学生档案,请重新选择!"<<endl;
}
else
{
if(num<MAX)
{
cout<<"请输入第"<<num+1<<"个学生的资料"<<endl;
cout<<"学号:";
cin>>student[num].id;
cout<<"姓名:";
cin>>student[num].name;
cout<<"数学成绩:";
cin>>student[num].math;
cout<<"程序设计成绩:";
cin>>student[num].prog;
num++;
}
else
{
cout<<"空间已经爆满了!";
}
}
}
//删除学生数据
void deldata()
{
long del;
int founded=0;
cout<<"请输入要删除的学生id:";
cin>>del;
for(int i=0;i<num;i++)
{
if(del==student[i].id)
{
student[i].id=student[num-1].id;
strcpy(student[i].name,student[num-1].name);
student[i].math=student[num-1].math;
student[i].prog=student[num-1].prog;
num--;
founded=1;
}
if(founded==0)
{
cout<<"不存在该数据!"<<endl;
}
}
}
//排序
void sort()
{
//对数组a[0]~a[num-1]的id号进行冒泡排序,我就不写了。。
}
//查询
void find()
{
int i,sel;
int founded=0;//是否查到
int tol=0;//查询所得的人数
STUDENT temp;
cout<<"1.学号查询"<<endl;
cout<<"2.姓名查询"<<endl;
cout<<"3.按科目查询"<<endl;
cout<<"4.总分查询"<<endl;
cout<<"请输入进行查询的操作号:";
cin>>sel;
switch (sel)
{
case 1: cout<<"请输入学号:";
cin>>temp.id;
for(i=0;i<num;i++)
{
if(temp.id==student[i].id)
{
cout<<setw(5)<<student[i].id;
cout<<setw(5)<<student[i].name;
cout<<setw(5)<<student[i].math;
cout<<setw(5)<<student[i].prog;
founded=1;
cout<<endl;
}
}
if(founded==0) cout<<"找不到该学生数据"<<endl;
break;
case 2: cout<<"请输入姓名:";
cin>>temp.name;
for(i=0;i<num;i++)
{
if(strcmp(temp.name,student[i].name)==0)
{
cout<<setw(5)<<student[i].id;
cout<<setw(5)<<student[i].name;
cout<<setw(5)<<student[i].math;
cout<<setw(5)<<student[i].prog;
founded=1;
cout<<endl;
}
}
if(founded==0) cout<<"找不到该学生数据"<<endl;
break;
case 3:cout<<"请选择科目:1-数学 2-程序设计";
cin>>sel;
if(sel==1)
{
cout<<"请输入分数:";
cin>>temp.math;
for(i=0;i<num;i++)
{
if(temp.math<=student[i].math)
{
cout<<setw(5)<<student[i].id;
cout<<setw(5)<<student[i].name;
cout<<setw(5)<<student[i].math;
cout<<endl;
tol++;
}
}
cout<<"总人数:"<<tol;
}
else if(sel==2)
{
cout<<"请输入分数:";
cin>>temp.prog;
for(i=0;i<num;i++)
{
if(temp.prog<=student[i].prog)
{
cout<<setw(5)<<student[i].id;
cout<<setw(5)<<student[i].name;
cout<<setw(5)<<student[i].prog;
cout<<endl;
tol++;
}
}
cout<<"总人数:"<<tol;
}
else cout<<"输入错误!"<<endl;
break;
case 4:cout<<"请输入总分:";
//使用temp.math来存储总分
cin>>temp.math;
for(i=0;i<num;i++)
{
if(temp.math<=student[i].prog+student[i].math)
{
cout<<setw(5)<<student[i].id;
cout<<setw(5)<<student[i].name;
cout<<setw(5)<<student[i].math;
cout<<setw(5)<<student[i].prog;
cout<<endl;
tol++;
}
}
cout<<"总人数:"<<tol;
break;
default:cout<<"输入错误!"<<endl;
}
}
int main(void)
{
int sel;//选择的操作
init();
while(1)
{
cout<<"1.新建数据档案"<<endl;
cout<<"2.添加数据"<<endl;
cout<<"3.删除数据"<<endl;
cout<<"4.对输入的数据进行排序"<<endl;
cout<<"5.对输入的数据进行查询"<<endl;
cout<<"6.退出";
cout<<"请选择所需功能:(序号)";
cin>>sel;
switch(sel)
{
case 1:newdata();break;
case 2:adddata();break;
case 3:deldata();break;
case 4:sort();break;
case 5:find();break;
case 6: exit(1);
default:cout<<"输入错误,请重新输入:"<<endl;
}
}
return 0;
}