首页 > 编程语言 >C++-练习-42

C++-练习-42

时间:2024-09-19 08:52:05浏览次数:11  
标签:程序 people int 捐献者 练习 42 C++ num fin

题目:

编写一个程序,记录捐献给"维护合法权利团队"的资金。该程序要求用户输入捐献者数目,然后要求用户输入每一个捐献者的姓名和款项。这些信息被存在一个动态分配的结构数组中。每个结构有两个成员:用来存储姓名的字符数组和用力啊存储款项的double成员。读取所有的数据后,程序将显示所有狷狂超过1000的捐款者的姓名及捐款数额。该列表前应包含一个标题,指出下面的捐款者是重要捐款者。然后,程序将列出其他捐款人,该列表要以Patrons开头。如果某类没有捐献者,则程序将打印单词"none",该程序值显示着两种类型,而不用进行排序。

要求从文件中读取所需的信息。该文件的第一项为捐款人数,余下的内容应为成对的行。在每一对中,第一行为捐款人姓名,第二行为捐款数额

文件格式

4

sam stone

2000

freida flass

100500

tammy tubbs

5000

rich raptor

55000

源代码:

#include <iostream>
#include <fstream>

struct donate {
	char name[20];
	int money;
	bool important;	//表示重要捐献者
};

int main()
{
	using namespace std;
	int people_num = 0;
	int sig = 0; //表示当前捐献列表没有人

	ifstream fin;
	fin.open("people.txt"); //people.txt在我当前的文件夹中

	(fin >> people_num).get();
	donate* people = new donate[people_num];
	for (int i = 0; i < people_num; i++)
	{
		fin.getline(people[i].name, 20);
		(fin >> people[i].money).get();
		people[i].important = 0;
	}

	cout << "重要捐献者: " << endl;
	for (int i = 0; i < people_num; i++)
	{
		if (people[i].money > 1000)
		{
			cout << "姓名: " << people[i].name << " 金额: " << people[i].money << endl;
			people[i].important = 1; //表示为重要捐献者
			sig = 1;	//当前类非空
		}

	if (!sig && i == people_num - 1)
	{
		cout << "none" << endl;
	}
	}

	sig = 0;
	cout << "其他捐献者: " << endl;
	for (int i = 0; i < people_num; i++)
	{
		if (!people[i].important)
		{
			cout << "姓名: " << people[i].name << " 金额: " << people[i].money << endl;
			sig = 1;	//当前类非空
		}

	if (!sig && i == people_num - 1)
	{
		cout << "none" << endl;
	}
	}

	return 0; 

}

演示效果: 


如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

标签:程序,people,int,捐献者,练习,42,C++,num,fin
From: https://blog.csdn.net/little_startoo/article/details/142298461

相关文章

  • C++之move函数的使用
    在C++中,std::move 是一个标准库函数,用于实现“移动语义”(MoveSemantics),这是C++11引入的一个重要特性。std::move 允许你将对象的资源“转移”到另一个对象,从而避免不必要的复制操作,提高效率。什么是 std::move?std::move 是一个类型转换函数,它将其参数转换为右值引......
  • C++学习笔记(28)
    十四、实现strchr()和strrchr()函数示例:#define_CRT_SECURE_NO_WARNINGS//使用C风格字符串操作的函数需要定义这个宏#include<iostream>usingnamespacestd;//返回在字符串s中第一次出现c的位置,如果找不到,返回0。//babcddefaeaconstchar*mystrchr(co......
  • C++学习笔记(一、预备知识)
    C++简介C++融合了三种不同的编程方式:-C语言代表的过程性语言-C++在C语言基础上添加的类代表的面向对象语言-C++模板支持的泛型编程。值得一提的是,不要把C语言与C++混为一谈,他们可以说是两个不同的语言。C++简史2.1C语言20世纪70年代,贝尔实验室的DennisRi......
  • C/C++语言基础--C++面向对象、类、对象概念讲解
    本专栏目的更新C/C++的基础语法,包括C++的一些新特性前言今天更新的比较晚了,主要一直用是谷歌Colab训练模型,访问国内csdn反而不好使了,请大家见谅;C++是面向对象的语言,本文将介绍什么是面向对象、什么是类、什么是对象、类和对象的关系是什么?欢迎大家点赞+收藏+关注;C语......
  • C++基于select和epoll的TCP服务器
    select版本服务器#include<arpa/inet.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#include<unistd.h>#include<sys/socket.h>#include<string>#include<pthread.h>#include<sys/select.h>......
  • C++入门基础知识75(高级)——【关于C++ Web 编程】
    成长路上不孤单......
  • 前端——JavaScript练习 做一个todoList
    用前端制作一个todoList的表格,实现更新、删除、修改等功能。涉及几个知识点:设置最小高度(宽度):.container{min-width:350px;/*最小宽度最小不会小于210px*/} 去掉外轮廓outline:none;去除字符串两端的空白字符(包括空格、制表符、......
  • P2710 数列/P2042 [NOI2005] 维护数列
    题意(以P2710为例)思路使用FHQ-Treap进行求解,清晰明了。对于insert,先将要插入的数建成一棵树,然后将这棵树放入FHQ-Treap中。对于delete,将要删除的树分离出来,然后把剩下的部分合并即可,将删除的树的树根丢到废弃节点的栈中以备以后使用(节约空间,不然MLE)。对于reverse,......
  • c++运算符
    #include<iostream>//运算符usingnamespacestd;intmain(){inta=9;intb=6;cout<<"这是加法:"<<a+b<<endl;cout<<"这是减法:"<<a-b<<endl;cout<<"这是乘法:"<<......
  • C/C++中哪些数据存放于栈区、堆区、静态区、常量区的详细说明
    文章目录1.栈区(Stack)2.堆区(Heap)3.静态区(Static)4.常量区(Read-OnlyorConstantSection)总结:栈(Stack)的生长:堆(Heap)的生长:测试一答案二答案1.栈区(Stack)栈区用于存放局部变量和函数调用信息,它的内存由编译器自动分配和释放,具有自动管理的特点。栈区的内存分配遵循先......