第14周项目2-用文件保存的学生名单

2023-12-08 14:08
文章标签 项目 保存 14 学生名单

本文主要是介绍第14周项目2-用文件保存的学生名单,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述:

文件score.dat中保存的是若干名学生的姓名和C++课、高数和英语成绩。
1)定义学生类,其中包含姓名、C++课、高数和英语成绩及总分数据成员。

[cpp] view plaincopyprint?

1.  //定义学生类  

2.  class Student{  

3.  public:  

4.      //声明必要的成员函数  

5.  private:  

6.      string name;  

7.      double cpp;  

8.      double math;  

9.      double english;  

10.     double total;  

11.     static int stu_num;  //学生人数,处理为类的静态成员合适  

12.     static double total_sum; //学生总分和  

13. };  

2)用对象数组进行存储学生的成绩,读入成绩并计算总分;将总分高于平均总分且没挂科的同学的信息保存到文件pass_score.dat中。

[cpp] view plaincopyprint?

1.  int main( )  

2.  {  

3.      Student stud[200],t; //stud[200]为保存数据的对象数组  

4.      string sname;  

5.      double total_avg;  

6.      int i=0;  

7.      //从文件score.dat中读入数据,保存到对象数组中  

8.    

9.    

10.     //总分高于平均总分且没挂科的同学的信息保存到文件pass_score.dat  

11.     return 0;  

12. }  


代码:

#include <iostream>
#include <fstream>
#include<cstdlib>
using namespace std;
//定义学生类
class Student
{
public://声明必要的成员函数Student() {}~Student();void input();friend ostream& operator<<(ostream &out,Student &s);friend istream& operator>>(istream &in,Student &s);double gettotal(){return total;}static int getnum(){return stu_num;}static double getsum(){return total_sum;}bool pass(){if(cpp>=60&&math>=60&&english>=60)return true;else return false;}
private:string name;double cpp;double math;double english;double total;static int stu_num;  //学生人数,处理为类的静态成员合适static double total_sum; //学生总分和
};
int Student::stu_num=0;
double Student::total_sum=0;
Student::~Student()
{stu_num-=1;total_sum-=total;
}
istream& operator>>(istream &in, Student &s)
{in>>s.name>>s.cpp>>s.math>>s.english;s.total=s.cpp+s.math+s.english;Student::stu_num++;Student::total_sum+=s.total;return in;
}ostream &operator<<(ostream &out, Student &s)
{out<<s.name<<"\t";out<<s.cpp<<"\t";out<<s.math<<"\t";out<<s.english<<"\t";out<<s.total;return out;
}int main( )
{Student stud[200],t; //stud[200]为保存数据的对象数组string sname;double total_avg;int i=0;//从文件score.dat中读入数据,保存到对象数组中ifstream input;input.open("score.dat",ios::in);if(input.eof()){cout<<"error:"<<endl;exit(1);}while(!input.eof())input>>stud[i++];input.close();//总分高于平均总分且没挂科的同学的信息保存到文件pass_score.dat中double ave=Student::getsum()/Student::getnum();ofstream outfile("pass_score.dat");if(!outfile){cout<<"error"<<endl;exit(0);}elsefor(i=0;i<Student::getnum();i++){if(stud[i].gettotal()>ave&&stud[i].pass())outfile<<stud[i]<<endl;}outfile.close();cout<<"ok"<<endl;return 0;
}


运行结果:


这篇关于第14周项目2-用文件保存的学生名单的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/470131

相关文章

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放