BG Development


  Reply to this topicStart new topicStart Poll

> грешка при добавяне на елементи
mariq898
Публикувано на: 30-12-2022, 19:43
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 5
Регистриран на: 27.12.22



Здравейте, ще може ли да прегледате кода, защото при добавяне на елементи вместо да се визуализират само добавените, освен тях се извеждат и елементи с нулеви стойности до 100 това е кодът:
#include<iostream>
#include<iomanip>
#include<cstring>
#include<fstream>
using namespace std;

struct tenis {
int nTurnir = 0;
int nRanglista = 0;
char ime[50] = " ";
char familiq[50]=" ";
char durjava[50]=" ";
int tochki=0;
int kupi=0;
};
#define turnir 100
const string file = "students.dat";

void dobavqneSustezateli(tenis tour[], int br){


cout << "Vuvedete broq na igrachite, koito iskate da dobavite v turnira :" << endl;
cin >> br;

if (br>turnir)
{
cout << "Nadvishili ste broq na uchastnicite" << endl;
}
else{
for (int i = 0; i < br; i++)
{
cin.ignore();
cout << "Uchastnik " << endl << i + 1 << endl;
cout << "Vuvedete nomer v turnira:" << " ";
cin >> tour[i].nTurnir;
cout<<endl;
cout << " Vuvedete nomer v svetovnata ranglista:" << " ";
cin >> tour[i].nRanglista;
cout << endl;
cout << " Vuvedete ime na igracha:" << " ";
cin.ignore();
cin.getline(tour[i].ime,50);
cout << endl;
cout << " Vuvedete familiq na igracha:" << " ";
cin.ignore();
cin.getline(tour[i].familiq, 50);
cout << endl;
cout << " Vuvedete durjavata na igracha:" << " ";
cin.ignore();
cin.getline(tour[i].durjava, 50);
cout << endl;
cout << "Vuvedete broi tochki" << " ";
cin >> tour[i].tochki;
cout << endl;
cout << "Broi specheleni kupi:" << " ";
cin >> tour[i].kupi;
cout << endl;
}
}
}
void izvejdane(tenis tour[],int br) {
for (int i = 0; i < br; i++)
{
cout << "Uchastnik " << endl << i + 1 << endl;
cout << "Nomer v turnira:" << " " << tour[i].nTurnir << endl;
cout << " Nomer v svetovnata ranglista:" << " " << tour[i].nRanglista << endl;
cout << " Ime na igracha:" << " " << tour[i].ime << endl;
cout << " Familiq na igracha:" << " " << tour[i].familiq << endl;
cout << "Durjavata na igracha:" << " " << tour[i].durjava << endl;
cout << "Broi tochki" << "" << tour[i].tochki << endl;
cout << "Specheleni kupi:" << ""<<tour[i].kupi;
}
}
void sustNaiMalkoKupi(tenis tour[],int br) {
int min = tour[0].kupi;
for (int i = 0; i < br; i++)
{
if (tour[i].kupi < min)
{
min = tour[i].kupi;
}
}
for (int i = 0; i <br; i++)
{
if (min == tour[i].kupi)
{
cout << "Uchastnik " << endl << i + 1 << endl;
cout << "Nomer v turnira:" << " " << tour[i].nTurnir << endl;
cout << " Nomer v svetovnata ranglista:" << " " << tour[i].nRanglista << endl;
cout << " Ime na igracha:" << " " << tour[i].ime << endl;
cout << " Familiq na igracha:" << " " << tour[i].familiq << endl;
cout << "Durjavata na igracha:" << " " << tour[i].durjava << endl;
cout << "Broi tochki" << "" << tour[i].tochki << endl;
cout << "Specheleni kupi:" << "" << tour[i].kupi;
}
}
}
void durjava(tenis tour[],int br) {
cout << "Durjava: ";
char durjava[30];
cin.ignore();
cin.getline(durjava,30);
int sushtaDurjava = 0;
for (int i = 0; i <br; i++)
{
if (durjava == tour[i].durjava)
{
cout << "Uchastnik " << endl << i + 1 << endl;
cout << "Nomer v turnira:" << " " << tour[i].nTurnir << endl;
cout << " Nomer v svetovnata ranglista:" << " " << tour[i].nRanglista << endl;
cout << " Ime na igracha:" << " " << tour[i].ime << endl;
cout << " Familiq na igracha:" << " " << tour[i].familiq << endl;
cout << "Durjavata na igracha:" << " " << tour[i].durjava << endl;
cout << "Broi tochki" << "" << tour[i].tochki << endl;
cout << "Specheleni kupi:" << "" << tour[i].kupi;
sushtaDurjava++;
}

}
}
void naiVisokoRanglista(tenis tour[], int br) {
for (int i = 0; i < br - 1; i++)
{
for (int j = 0; j < br - i - 1; j++)
{
if (tour[j].nRanglista < tour[j + 1].nRanglista)
{
tenis temp = tour[j];
tour[j] = tour[j + 1];
tour[j + 1] = temp;
}
}
}
}
void izvejdaneVuvFail(tenis tour[],int br){
fstream fp;
fp.open(file, ios::binary | ios::out);
if (!fp) {
cout << "\nError opening file: " << file << endl;
return;
}
fp.write((char*)tour, sizeof(tenis) * br);
fp.close();
}
void vuvejdaneOtFail(tenis tour[], tenis filearr[],int br){
fstream fp;
fp.open(file, ios::binary | ios::in);
if (!fp)
{
cout << "\n This file does not exist";
}
fp.seekg(0l, ios::end);
long pos = fp.tellg() / (sizeof(tenis));
fp.close();
fp.open(file, ios::binary | ios::in);
if (!fp)
{
cout << "\n There is an error in the file";
exit(1);
}
fp.read((char*)filearr, sizeof(tenis) * pos);
if (br == 0) {
cout << "\nThere are no students in the file." << endl;
return;
}
for (int i = 0; i < br; i++)
{
cout << "Uchastnik " << endl << i + 1 << endl;
cout << "Nomer v turnira:" << " " << tour[i].nTurnir << endl;
cout << " Nomer v svetovnata ranglista:" << " " << tour[i].nRanglista << endl;
cout << " Ime na igracha:" << " " << tour[i].ime << endl;
cout << " Familiq na igracha:" << " " << tour[i].familiq << endl;
cout << "Durjavata na igracha:" << " " << tour[i].durjava << endl;
cout << "Broi tochki" << "" << tour[i].tochki << endl;
cout << "Specheleni kupi:" << "" << tour[i].kupi;
}
fp.close();
}

int main() {
tenis tour[turnir];
tenis file[turnir];
int choice = 0;
do
{

cout << "1.Dobavqne na sustezateli." << endl;
cout << "2.Izvejdane na ekrana." << endl;
cout << "3.Izvejdane na sustezateli s nai-malko specheleni kupi." << endl;
cout << "4.Izvejdane na sustezateli ot opredelena durjava." << endl;
cout << "5.Podrejdane na sustezatelite v narastvasht red na nomera v svetovnata ranglista" << endl;
cout << "6.Upravlenie na fail." << endl;
cout << "0.Exit." << endl;
cin >> choice;
switch (choice)

{
case 1:
{dobavqneSustezateli(tour,turnir);
}break;

case 2:{
izvejdane(tour, turnir);
}break;
case 3: {
sustNaiMalkoKupi(tour, turnir);
}break;
case 4: {
durjava(tour, turnir);
}break;
case 5: {
naiVisokoRanglista(tour, turnir);
}break;
case 6: {
izvejdaneVuvFail(tour, turnir);
vuvejdaneOtFail(tour,file,turnir);
}
break;
case 0: {
cout << "Bye!" << endl;
}break;
default:
cout << "Greshka" << endl;
break;
}
} while (choice != 0);
return 0;
}

а това е темата:
Турнир по тенис
Да се напише компютърна програма, реализираща информационна система за данни турнир
по тенис, с играчи (номер в турнира, номер в световната ранглистата, име, фамилия, държава, текущи
точки, брой спечелени купи (1ви места)). Максималният брой състезатели е 100.
Базова задача – сложност ниска
A. Меню с избор на функциите в програмата
Функции от програмата са:
B. Добавяне на състезатели в турнира.
a. Трябва да позволява въвеждането на различен брой нови състезатели, като не трябва
да се превишава максималния брой.
Пример: Въвежда се цяло число n, което позволява последователно да се въведат
n на брой състезатели. n не може да надвишава свободните елементи в масива със
състезатели.
C. Извеждане на екрана
a. Извеждане на всички състезатели на екрана
D. Търсене и извеждане на екрана:
a. Извеждане на състезатели с най-малко спечелени купи
b. Извеждане на състезатели от определена държава
E. Подреждане на основния масив със състезателите, без да се извежда на екрана:
a. Подреждане на състезателите в нарастващ ред на номера в световната ранглистата
F. Управление на файл:
a. Извеждане на масива със състезателите във файл (двоичен)
b. Въвеждане на масива със състезателите от файл (двоичен)
Допълнение първо (+ базова задача)
G. Създайте подменю, в което се влиза от основното, с нови функции за:
a. Извеждане на спортистите в намаляващ ред на спечелените титли, като ако имат
еднакъв брой то да се подредят по пореден номер в световната ранглистата.
b. Търсене и извеждане на състезателя по държава и първо име
Допълнение второ (+ базова задача)
H. Съставяне на двубои за турнира
a. Съставяне на турнирни двубои по схема до дадени финали (примерно се въвеждат
твърдо двубои за класиране за 8мина финали)
b. Добавяне на резултати за двубоите.
c. Ръчно съставяне на елиминационните двубои за 8мина,4върт,полуфаналите и финала,
като се има предвид кои са победителите.
Допълнение трето (+ базова задача)
I. Данните в програмата да се попълват автоматично от файл при стартиране и да се записват
автоматично във файл при затваряне на програмата
PMEmail Poster
Top
PxL
Публикувано на: 31-12-2022, 04:18
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 3561
Регистриран на: 26.04.05



Още е малко тъпичък, но дава насока icon_smile.gif


Прикачена картинка (Кликнете на картинката, за да я увеличите!)
Прикачена картинка


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
SuN
Публикувано на: 31-12-2022, 06:42
Quote Post


Group Icon
Име:
Група: Администратор
Ранг: Почетен член

Мнения: 12278
Регистриран на: 27.01.05



Ох, това ме притесни сериозно за бъдещето ми като програмист! Този бот може да ме замести вече на 100% в работата. Ще трябва да удвоя усилията си в посока подмазване от нова година...

Това мнение е било редактирано от SuN на 31-12-2022, 06:43


--------------------
Само аз не троля.
Всички коментари са плод на художествена измислица и нямат общо с действителни и недействителни лица, събития и факти.
PMEmail Poster
Top
dvader
Публикувано на: 31-12-2022, 11:44
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 5018
Регистриран на: 12.07.05



QUOTE (SuN @ 31-12-2022, 06:42)
Ох, това ме притесни сериозно за бъдещето ми като програмист! Този бот може да ме замести вече на 100% в работата. Ще трябва да удвоя усилията си в посока подмазване от нова година...

Дай задача на бота да се подмазва...


--------------------
I find your lack of faith disturbing
PM
Top
SuN
Публикувано на: 31-12-2022, 12:40
Quote Post


Group Icon
Име:
Група: Администратор
Ранг: Почетен член

Мнения: 12278
Регистриран на: 27.01.05



Мисля да увелича ирационалните харчове и заеми. Искам икономиката да усети заплахата от удара при мое уволнение. Нека бизнеса си помисли дали може да пропусне да оптимизира разходите по моята заплата или невидимата ръка ще го оптимизира при такава между-фирмена задлъжнялост.


--------------------
Само аз не троля.
Всички коментари са плод на художествена измислица и нямат общо с действителни и недействителни лица, събития и факти.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0