| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 248 人关注过本帖
标题:帮忙加一个学生保存
取消只看楼主 加入收藏
syl13140
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-14
结帖率:50%
收藏
 问题点数:0 回复次数:1 
帮忙加一个学生保存
#include <iostream.h>
#include<fstream.h>
#include <string.h>
const int MAX=100;//最大学生数
int num_stu=0; //实际学生数
struct student
{
char num[20];
char name[30];
char grade[30];
float c1,c2,c3,c4,c5;
float avg;
}stu[MAX];
//将学生信息写入文件中
void write_to_file()
{
int i,j;
ofstream fout("stu_info.txt");
if(!fout)
{
cout<<"文件打开失败!"<<endl;
return;
}

//求学生的平均成绩并排序
//求每个学生五门课程的平均值
for(i=0;i<num_stu;i++)
{
stu[i].avg=(stu[i].c1+stu[i].c2+stu[i].c3+stu[i].c4+stu[i].c5)/5;
}
//按平均分由大到小冒泡排序
for(i=0;i<num_stu-1;i++)
{
for(j=0;j<num_stu-i-1;j++)
{
if(stu[j].avg<=stu[j+1].avg)
{
struct student temp;
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}

//将所有学生信息写回stu_info.txt文件
fout<<num_stu<<endl;
for(i=0;i<num_stu;i++)
{
fout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].grade<<"\t"<<stu[i].c1<<"\t"<<stu[i].c2<<"\t"<<stu[i].c3<<"\t"<<stu[i].c4<<"\t"<<stu[i].c5<<"\t"<<stu[i].avg<<endl;
}
fout.close();
}

//从字符界面初始化学生信息
void init_from_cmd()
{
int i;
cout<<"请输入学生个数:";
cin>>num_stu;

cout<<"请按行输入每个学生的信息:"<<endl;
cout<<"学号\t"<<"姓名\t"<<"班级\t\t"<<"成绩1\t"<<"成绩2\t"<<"成绩3\t"<<"成绩4\t"<<"成绩5"<<endl;
for(i=0;i<num_stu;i++)
{
cin>>stu[i].num>>stu[i].name>>stu[i].grade>>stu[i].c1>>stu[i].c2>>stu[i].c3>>stu[i].c4>>stu[i].c5;
}
cout<<"从字符界面初始化学生信息成功!"<<endl;
//将学生信息保存至文件stu_info.txt中
write_to_file();
}


//从文件初始化学生信息
void init_from_file()
{
int i;
ifstream fin("init.txt");
if(!fin)
{
cout<<"文件打开失败"<<endl;
return;
}
fin>>num_stu;
for(i=0;i<num_stu;i++)
{
fin>>stu[i].num>>stu[i].name>>stu[i].grade>>stu[i].c1>>stu[i].c2>>stu[i].c3>>stu[i].c4>>stu[i].c5;
}
fin.close();

if(i==num_stu)cout<<"从文件初始化学生信息成功!"<<endl;

//将学生信息保存至文件stu_info.txt中
write_to_file();

}

//从stu_info.txt文件中读取学生信息
void read_stu_info()
{
int i;
ifstream fin("stu_info.txt");
if(!fin)
{
cout<<"文件打开失败"<<endl;
return;
}
//学生个数
fin>>num_stu;
for(i=0;i<num_stu;i++)
{
fin>>stu[i].num>>stu[i].name>>stu[i].grade>>stu[i].c1>>stu[i].c2>>stu[i].c3>>stu[i].c4>>stu[i].c5>>stu[i].avg;
}
fin.close();
}

//查看指定学生的信息
void lookup_single()
{
char temp[30];
int i;
read_stu_info(); //读取所有学生信息
cout<<"请输入要查询的学生的学号或姓名:";
cin>>temp;
for(i=0;i<num_stu;i++)
{
if(strcmp(temp,stu[i].num)==0||strcmp(temp,stu[i].name)==0)
{
cout<<"学号\t"<<"姓名\t"<<"班级\t\t"<<"成绩1\t"<<"成绩2\t"<<"成绩3\t"<<"成绩4\t"<<"成绩5\t"<<"平均分"<<endl;
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].grade<<"\t"<<stu[i].c1<<"\t"<<stu[i].c2<<"\t"<<stu[i].c3<<"\t"<<stu[i].c4<<"\t"<<stu[i].c5<<"\t"<<stu[i].avg<<endl;
}

}
if(i>num_stu)cout<<"该生不存在...请重试~!"<<endl;
}

//查看所有学生信息
void lookup_all()
{
int i;
read_stu_info();
if(stu[0].num==NULL)cout<<"暂时还没学生信息!"<<endl;
else
{
cout<<"所有学生信息如下:"<<endl;
cout<<"学号\t"<<"姓名\t"<<"班级\t\t"<<"成绩1\t"<<"成绩2\t"<<"成绩3\t"<<"成绩4\t"<<"成绩5\t"<<"平均分"<<endl;
for(i=0;i<num_stu;i++)
{
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].grade<<"\t"<<stu[i].c1<<"\t"<<stu[i].c2<<"\t"<<stu[i].c3<<"\t"<<stu[i].c4<<"\t"<<stu[i].c5<<"\t"<<stu[i].avg<<endl;
}
}
}

//增加学生信息
void add_stu()
{
read_stu_info();
int nums; //允许添加的学生个数
int i;
struct student temp;
cout<<"请输入要添加学生的个数:";
cin>>nums;
cout<<"学号\t"<<"姓名\t"<<"班级\t\t"<<"成绩1\t"<<"成绩2\t"<<"成绩3\t"<<"成绩4\t"<<"成绩5"<<endl;
for(i=num_stu;i<num_stu+nums;i++)
{
cin>>temp.num>>temp.name>>temp.grade>>temp.c1>>temp.c2>>temp.c3>>temp.c4>>temp.c5;
}
if(i=num_stu+nums)
{
cout<<"添加学生信息成功!"<<endl;
num_stu=i; //修改学生总数
}

//将学生信息保存至文件stu_info.txt中
write_to_file();
}

//修改指定学生信息
void modfy_stu()
{

char temp[30];
int i;

read_stu_info();
cout<<"请输入要修改信息的学生的学号或姓名:";
cin>>temp;
for(i=0;i<num_stu;i++)
{
if(strcmp(temp,stu[i].num)==0||strcmp(temp,stu[i].name)==0)
{
cout<<"请输入修改后的该生信息:"<<endl;
cout<<"学号\t"<<"姓名\t"<<"班级\t\t"<<"成绩1\t"<<"成绩2\t"<<"成绩3\t"<<"成绩4\t"<<"成绩5\t"<<endl;
cin>>stu[i].num>>stu[i].name>>stu[i].grade>>stu[i].c1>>stu[i].c2>>stu[i].c3>>stu[i].c4>>stu[i].c5;
}

}
if(i==num_stu)cout<<"该生不存在...请重试~!"<<endl;
//将学生信息保存至文件stu_info.txt中
write_to_file();
}

//删除指定学生信息
void delete_stu()
{
char temp[30];
int i,j;

read_stu_info();
cout<<"请输入要删除学生的学号或姓名:";
cin>>temp;
for(i=0;i<num_stu;i++)
{
if(strcmp(temp,stu[i].num)==0||strcmp(temp,stu[i].name)==0)break;
}
for(j=i;j<num_stu;j++)
{
stu[j]=stu[j+1];
}
num_stu=num_stu-1;
cout<<"删除成功!"<<endl;
//将学生信息保存至文件stu_info.txt中
write_to_file();
}


void init()
{
int choice=0;
cout<<"============欢迎使用学生成绩管理系统=============="<<endl<<endl;
cout<<"\t1、从字符界面初始化学生信息"<<endl
<<"\t2、从文件初始化学生信息"<<endl
<<"\t3、查看指定学生信息"<<endl
<<"\t4、查看所有学生信息"<<endl
<<"\t5、修改指定学生信息"<<endl
<<"\t6、删除指定学生信息"<<endl
<<"\t7、退出系统"<<endl
<<"请选择功能:";
cin>>choice;
while(choice!=7){
if(choice>7&&choice<1)cout<<"您的输入有误,请重试..."<<endl;

switch(choice)
{
case 1: init_from_cmd(); break;
case 2: init_from_file(); break;
case 3: lookup_single(); break;
case 4: lookup_all(); break;
case 5: modfy_stu(); break;
case 6: delete_stu();break;
}

cout<<"============欢迎使用学生成绩管理系统=============="<<endl<<endl;
cout<<"\t1、录入学生信息"<<endl
<<"\t2、从文件读取学生信息"<<endl
<<"\t3、查看指定学生信息"<<endl
<<"\t4、查看所有学生信息"<<endl
<<"\t5、修改学生信息"<<endl
<<"\t6、删除学生信息"<<endl
<<"\t7、退出系统"<<endl
<<"请选择功能:";
cin>>choice;
}
cout<<"============欢迎下次再来============="<<endl<<endl;


}

//主函数
main()
{
init();
}
搜索更多相关主题的帖子: include return 平均值 
2012-12-20 11:00
syl13140
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-14
收藏
得分:0 
请高手们指教,谢谢了
2012-12-20 11:02
快速回复:帮忙加一个学生保存
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016973 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved