学生成绩信息管理系统(c++)

该博客介绍了一个使用C++编写的学生成绩信息管理系统,系统实现了合并两个成绩文件、学生成绩的增删改查、按总分排序、生成补考名单、统计各科成绩分布等功能。在开发过程中,博主克服了文件读写、数据结构处理等挑战,加深了对C++和文件操作的理解。
摘要由CSDN通过智能技术生成

现有学生成绩信息文件1(1.txt),内容如下:

姓名    学号   语文  数学   英语    

张明明  01     67     78      82

李成友  02     78     91      88

张辉灿  03     68     82      56

王露     04     56     45      77

陈东明  05     67     38      47

…… ……

学生成绩信息文件2(2.txt),内容如下:

姓名    学号   语文  数学   英语    

陈果     31     57     68      82

李华明  32     88     90      68

张明东  33     48     42      56

李明国  34     50     45      87

陈道亮  35     47     58      77

…… ……

试编写一个管理系统,要求如下:

1) 要求使用链表或数组等实现上述要求

2) 实现对两个文件数据进行合并,生成新文件3.txt

3) 可实现学生成绩信息的输入、修改、删除功能

4) 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt

5) 对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)

6)输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)

7)统计输出各门课程的平均分,最高分、最低分

8)统计各门课程优秀、良好、中等、及格、不及格的人数及百分比

 

 

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
string str[5] ; //定义一个str字符串来吸收文件2.txt中重复的标题
int aNum=0;   //使用全局变量定义学生的人数
struct adent   //构建结构体
{
	char name[10];   //姓名
	int  id;
	int  chinese;
	int  math;
	int  english;
	int  sum;
}a[50],temp;

//实现对文件1.txt和文件2.txt数据的合并,生成文件3.txt
void Merge()      
{
char* f1 = "d:\\1.txt"; 
char* f2 = "d:\\2.txt";
char* f3 = "d:\\3.txt";
ifstream inFile1( f1 );   //从磁盘读取文件1.txt
ifstream inFile2( f2 );   //从磁盘读取文件2.txt
ofstream outFile( f3 );   //写入信息到文件3.xtx
outFile << inFile1.rdbuf();  //把文件1.txt中的数据写入到outfile

for(int i=0;!inFile2.eof()==true;i++) //遍历文件2.txt的所有数据
{
	string str;    
	getline(inFile2,str);  //读取第一行信息放到str中
	if(i==0)continue;      //跳过第一行
	outFile<<str<<endl;    //把后面的信息放入到文件3.txt
}

inFile1.close();  //关闭文件f1
inFile2.close();
outFile.close();
ifstream f ( f3 );
cout <<"**文件已生成,合并后数据如下**"<<endl;
cout << f.rdbuf();     //输出文件3.txt

};

//把文件3.txt中的数据读出到结构体中,便于对数据的操作
void FillStruct(adent *p)  
{

int i=aNum, j=0; //这里让i = aNum,假如先添加数据,后合并,则结构体下标中人数i不是从0开始计,而是从先输入的数据的个数aNum开始的
ifstream infile("D:\\3.txt",ios::in);  //以读的方式打开文件3.txt

   if(!infile
  • 6
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
好的,我可以帮你解答关于学生成绩信息管理系统的问题,不过需要你具体说明需要哪些功能和要求,这样才能更好地回答你的问题。以下是一些常见的学生成绩信息管理系统的功能和实现方法,你可以参考一下。 1. 学生信息管理 学生成绩信息管理系统需要能够对学生信息进行管理,包括学生姓名学号、性别、年龄等基本信息。可以使用结构体或类来存储学生信息,使用数组或链表等数据结构来进行存储和管理。 2. 成绩信息管理 学生成绩信息管理系统需要能够对成绩信息进行管理,包括课程名称、成绩、学分等信息。可以使用结构体或类来存储成绩信息,使用数组或链表等数据结构来进行存储和管理。 3. 数据保存与读取 学生成绩信息管理系统需要能够将数据保存到文件中,以便下次启动程序时能够读取数据。可以使用文件流来进行数据的读写操作。 4. 成绩统计与分析 学生成绩信息管理系统需要能够对成绩进行统计和分析,包括总分、平均分、最高分、最低分等信息。可以使用循环和条件语句来进行统计和分析。 5. 数据查询与修改 学生成绩信息管理系统需要提供数据查询和修改功能,可以根据学生姓名学号进行查询和修改操作。可以使用循环和条件语句来进行数据查询和修改。 6. 用户界面设计 学生成绩信息管理系统需要提供友好的用户界面,可以使用图形界面或命令行界面来进行设计。可以使用相关的GUI库来进行设计。 以上是一些常见的学生成绩信息管理系统的功能和实现方法,你可以根据具体需求进行选择和实现。如果你有具体的问题或需求,可以继续和我进行交流。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值