第17周项目6 阅读文件,多文件
2023-09-27 14:27:02 时间
要求:
score.txt一些在校学生数、全名、C++、、英语成绩,利用前面定义的结构体数组,读取文件score.txt中的数据,完毕以下的应用:
在这个程序採用多文件处理:
main.cpp
#include <iostream> #include <iomanip> #include <fstream> using namespace std; struct Student //同项目1 { char num[13]; char name[10]; int cpp; int math; int english; int grade; double average; }; void in_line_grade(Student [],int); //按总分降序排序 void output(Student [],int); //输出成绩单 void in_line_award(Student [],int); // void cpp(Student [],int); void name(Student [],int); int main( ) { int i ,stuNum=0; //定义结构体数组 Student stu[200]; //从文件里读出数据,存放到你定义的结构体数组中; ifstream infile("score.txt",ios::in); //以输入的方式打开文件 if(!infile) //測试是否成功打开 { cerr<<"open error!"<<endl; } i=0; while(infile>>stu[i].num>>stu[i].name>>stu[i].cpp>>stu[i].math>>stu[i].english) { ++stuNum; ++i; } infile.close(); for(i=0; i<stuNum; i++) { stu[i].grade=stu[i].cpp+stu[i].math+stu[i].english; stu[i].average=stu[i].grade/3.0; } cout<<"数据读取完成"<<endl; int x; do { cout<<"请选择以下的功能:"<<endl; cout<<"1.输出成绩单"<<endl; cout<<"2.按总分排序并输出成绩单"<<endl; cout<<"3.输出获奖学金的同学的名单"<<endl; cout<<"4.输出C++不及格的姓名和c++成绩"<<endl; cout<<"5.输出您要查找人的成绩"<<endl; cout<<"0.结束"<<endl; cout<<"请输入您的选择:"; cin>>x; switch(x) { case 0:break; case 1:output(stu,stuNum);break; case 2:in_line_grade(stu,stuNum);break; case 3:in_line_award(stu,stuNum);break; case 4:cpp(stu,stuNum);break; case 5:name(stu,stuNum);break; default : cout<<"你的输入有误,请从新输入"<<endl; } }while(x!=0); return 0; }
c++.cpp
#include <iomanip> #include <iostream> using namespace std; struct Student //同项目1 { char num[13]; char name[10]; int cpp; int math; int english; int grade; double average; }; void cpp(Student s[],int n) //输出优秀者:总分超285。单科不低于90 { int a[200]; for(int i=0; i<n; i++) a[i]=s[i].cpp; int k=0; cout<<setiosflags(ios::left); for(int i=0; i<n; i++) if(a[i]<60) { k++; if(k%4==0) cout<<setw(8)<<s[i].name<<setw(8)<<s[i].cpp<<endl; else cout<<setw(8)<<s[i].name<<setw(8)<<s[i].cpp; } cout<<endl; }
in_line_award.cpp
#include <iomanip> #include <iostream> using namespace std; struct Student //同项目1 { char num[13]; char name[10]; int cpp; int math; int english; int grade; double average; }; void in_line_award(Student s[],int n) //输出优秀者:总分超285,单科不低于90 { int a[200],i; for( i=0; i<n; i++) a[i]=s[i].grade; for(int i=n-1; i>=0; i--) for(int j=n-i-2; j>=0; j--) if(a[j]<a[j+1]) { int k; k=a[j]; a[j]=a[j+1]; a[j+1]=k; Student t; t=s[j]; s[j]=s[j+1]; s[j+1]=t; } int k=0; cout<<setiosflags(ios::right); for( i=0; k<30; i++) if(s[i].cpp<60||s[i].math<60||s[i].english<60) k--; else { k++; if(k%5==0) cout<<setw(12)<<s[i].name<<endl; else cout<<setw(12)<<s[i].name; } int t; t=s[i].grade; for(; s[i].grade==t; i++) { if(s[i].cpp<60||s[i].math<60||s[i].english<60) continue; else { k++; if(k%5==0) cout<<setw(12)<<s[i].name<<endl; else cout<<setw(12)<<s[i].name; } } cout<<endl; }
in_line_grade.cpp
struct Student //同项目1 { char num[13]; char name[10]; int cpp; int math; int english; int grade; double average; }; void output(Student [],int); //输出成绩单 void in_line_grade(Student s[],int n) //°´×Ü·Ö½µÐòÅÅÐò { int a[200]; for(int i=0; i<n; i++) a[i]=s[i].grade; for(int i=n-1; i>=0; i--) for(int j=n-i-2; j>=0; j--) if(a[j]<a[j+1]) { int k; k=a[j]; a[j]=a[j+1]; a[j+1]=k; Student t; t=s[j]; s[j]=s[j+1]; s[j+1]=t; } output(s,n) ; }
name.cpp
#include <iostream> #include <iomanip> using namespace std; struct Student //同项目1 { char num[13]; char name[10]; int cpp; int math; int english; int grade; double average; }; void name(Student s[],int n) { string a[200]; for(int i=0; i<n; i++) a[i]=s[i].num; char Cin[20]; cout<<"请输入您要查找人的学号:"; cin>>Cin; int i; for(i=0; i<n; i++) { if(a[i]==Cin) break; } if(i==n) cout<<"抱歉,查无此人"<<endl; else { cout<<"学号"<<setw(20)<<"名字"<<setw(8)<<"C++"<<setw(8)<<"数学"<<setw(8)<<"英语"<<setw(8); cout<<"总分"<<setw(16)<<"平均成绩"<<endl; cout<<s[i].num<<setw(12)<<s[i].name<<setw(8); cout<<s[i].cpp<<setw(8)<<s[i].math<<setw(8)<<s[i].english<<setw(8); cout<<s[i].grade<<setw(16)<<s[i].average<<endl; } }
output.cpp
#include <iomanip> #include <iostream> using namespace std; struct Student //同项目1 { char num[13]; char name[10]; int cpp; int math; int english; int grade; double average; }; void output(Student s[],int n) //输出成绩单 { cout<<"学号"<<setw(20)<<"名字"<<setw(8)<<"C++"<<setw(8)<<"数学"<<setw(8)<<"英语"<<setw(8); cout<<"总分"<<setw(16)<<"平均成绩"<<endl; for(int i=0; i<n; i++) { cout<<s[i].num<<setw(12)<<s[i].name<<setw(8); cout<<s[i].cpp<<setw(8)<<s[i].math<<setw(8)<<s[i].english<<setw(8); cout<<s[i].grade<<setw(16)<<s[i].average<<endl; } }执行结果:
版权声明:本文博客原创文章,博客,未经同意,不得转载。
相关文章
- QT(2)项目文件介绍
- python 判断文件夹或文件是否存在
- 能源项目xml文件标签释义--DataSource
- VS Code比较不同版本项目的两个代码文件差异 添加到加入工作区很有用
- 【Asp.Net】vs中没有Sln项目文件的解决办法
- Node+TS+Koa+vue 商城全栈(三) sequelize 创建种子文件
- 第4周-任务2-一个项目,多个文件
- vc++ 项目里External dependencies 的文件存放内容和各个文件的存放内容
- C# 文件内容的操作
- Androlid入门之文件系统操作(三)文件读写
- IntelliJ IDEA编辑文件的时候CPU飙高问题的解决
- 软件项目技术点(19)——文件的保存和打开(解压缩)
- 从项目中删除.idea目录,并设置git忽略.idea文件
- Python Excel自动化之 如何根据某一列快速对比两excel文件不同并输出不同内容
- .md 文件编辑
- Git_忽略特殊文件
- GeoTools介绍、环境安装、读取shp文件并显示
- weex创建项目npm报错 : 无法加载文件 D:Program Filesnodejsnode_globalweex.ps1,因为在此系统上禁止运行脚本。
- 项目笔记:创建XML文件和导出功能
- 5.配置globals文件(目标端)
- Python对文件的读写操作
- Mysql报Too many connections,不要乱用ulimit了,看看如何正确修改进程的最大文件数
- 如何在jenkins的maven项目中,用mvn命令行指定findbugs的黑名单规则文件
- Java笔记13:统计文件中每个字符出现的次数
- openstack对象存储系统之swift项目实战自动化压缩和上传文件(三)
- Windows下pipenv将虚环境文件的位置设置在项目根目录下
- 功能/项目 js json转csv json格式的数据生成为csv文件
- scp上传文件、下载文件命令