所以我根据任务制作了一个程序。该计划主要是立陶宛语,但我知道你会理解。 所以我需要的是找到杂志的名称(字符串pav)并寻找订阅它的人。所以我基本上输入了Pavadinimas1,它应该给我两个结果,因为有两个人订阅了名为Pavadinimas1的杂志,但它只给了我一个结果。我认为这是因为if语句或for语句..我不知道。我知道代码有点混乱,但我只是一个乞丐。
这是:
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
const int CMax=100;
struct Prenumerata{
string zurnalas;
string vardas;
string pavarde;
int men;
double kaina;
};
string pav;
//---------------------------------------------------------
void Duomenys(Prenumerata A[], int &n);
void Isvedimas(Prenumerata A[], int n, double pren[], string pav);
void Kaina(Prenumerata A[], int n, double pren[]);
//----------------------------------------------------------
int main(){
setlocale(LC_ALL, "Lithuanian");
Prenumerata A[CMax];
int n=0;
double pren[CMax];
cout << "Áveskite þurnalo pavadinimà: ";
cin >> pav;
Duomenys(A, n);
Kaina(A, n, pren);
Isvedimas(A, n, pren, pav);
return 0;
}
void Duomenys(Prenumerata A[], int &n){
ifstream duom("U5.txt");
while (!duom.eof()){
getline(duom, A[n].zurnalas, ',');
getline(duom, A[n].pavarde, ' ');
getline(duom, A[n].vardas, ',');
duom >> A[n].men >> A[n].kaina;
n++;
}
duom.close();
}
void Isvedimas(Prenumerata A[], int n, double pren[], string pav){
ofstream ras("Rezultatai.txt");
ras << "Pradiniai duomenys:" << endl;
ras << endl;
ras << setfill ('-') << setw(80) << "-" << endl;
ras << setfill (' ');
ras << endl;
ras << setw(2) << "Pavadinimas" << setw(10) << "Pavardë" << setw(10) << "Vardas" << setw(20) << "Mënesiø skaièius" << setw(20) << "Mënesio kaina" << endl;
ras << endl;
ras << setfill ('-') << setw(80) << "-" << endl;
ras << setfill (' ');
ras << endl;
for (int i=0;i<n;i++){
ras << setw(2) << A[i].zurnalas << setw(10) << A[i].pavarde << setw(10) << A[i].vardas << setw(10) << A[i].men << setw(25) << A[i].kaina;
}
ras << endl;
ras << endl;
ras << setfill ('-') << setw(80) << "-" << endl;
ras << setfill (' ');
ras << endl;
ras << "Nurodytas þurnalas: " << pav << endl;
ras << endl;
ras << setfill ('-') << setw(40) << "-" << endl;
ras << setfill (' ');
ras << setw(9) << "Pavardë" << setw(9) << "Vardas" << setw(22) << "Prenumeratos kaina" << endl;
ras << setfill ('-') << setw(40) << "-" << endl;
ras << setfill (' ');
ras << endl;
for (int i=0;i<n;i++){
if (A[i].zurnalas==pav){
ras << setw(9) << A[i].pavarde << setw(9) << A[i].vardas << setw(22) << pren[i] << endl;
}
}
ras << endl;
ras << setfill ('-') << setw(40) << "-" << endl;
ras << setfill (' ');
ras.close();
}
void Kaina(Prenumerata A[], int n, double pren[]){
for (int i=0;i<n;i++){
pren[i]=A[i].kaina*A[i].men;
}
}
输入文件:
Pavadinimas1,Pavarde1 Vardas1, 3 2.99
Pavadinimas2,Pavarde2 Vardas2, 6 3.99
Pavadinimas3,Pavarde3 Vardas3, 8 12.99
Pavadinimas1,Pavarde3 Vardas3, 4 2.99