Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2010, 22:36   #1
moron
Новичок
Джуниор
 
Регистрация: 03.04.2010
Сообщений: 3
По умолчанию С++ использование классов

В текстовом файле содержится информация о студентах факультета, включающая признак (староста группы "в моем файле старосту обазначил еденичкой"). Каждая строка файла содержит следующую информацию о студенте: Ф.И.О., номер зачетки, признак. Получить в файле Ф.И.О. и номер зачетки старост групп.

вот код написанный мною

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <conio.h>

typedef struct
{
char firstname[50];
char secondname[50];
char thridname[50];
int number;
int metka_starosta;
}student;

using namespace std;

int main(int argc, _TCHAR* argv[])
{
student student[100];
FILE *f;
int count=0;

f=fopen("in.txt","r");
while(!feof(f))
{
fscanf(f,"%s %s %s %d %d",
&student[count].firstname,
&student[count].secondname,
&student[count].thridname,
&student[count].number,
&student[count].starosta);
count++;
}
fclose(f);

f=fopen("out.txt.","w");
for(int i=0;i<count;i++)
{
if(student[i].starosta>0)
{
fprintf(f,"%s %s %s %d\n",
student[i].firstname,
student[i].secondname,
student[i].thridname,
student[i].number);
}
}
fclose(f);


system("PAUSE");
return 0;
}

мне сказали сделать такую задачу ток с таким условием
"Создать программу на языке Си++ с использованием не менее двух классов."
У меня полный абздец с классами...
Помогите плиз!
moron вне форума Ответить с цитированием
Старый 04.04.2010, 13:44   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

вместо структуры используй класс, почитай литературу
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 05.04.2010, 23:19   #3
moron
Новичок
Джуниор
 
Регистрация: 03.04.2010
Сообщений: 3
По умолчанию

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <cstring>

using namespace std;

class Stud{

private:
char firstname[50];
char secondname[50];
char thirdname[50];
int number;
int metka;

public:
bool Setfirstname(char *_firstname);
bool Setsecondname(char *_secondname);
bool Setthirdname(char *_thirdname);
bool Setnumber(int _number);
bool Setmetka(int _metka);
char* Getfirstname();
char* Getsecondname();
char* Getthirdname();
int Getnumber();
int Getmetka();

};

bool Stud::Setfirstname(char *_firstname)
{
int sl = (int)strlen(_firstname);
if(sl<=50){strncpy(firstname,_first name,sl); firstname[sl] = "\0"; return true;}

return false;
}

bool Stud::Setsecondname(char _secondname)
{
int sl = (int)strlen(_secondname);
if(sl<=50){strncpy(secondname,_seco ndname,sl); secondname[sl] = "\0"; return true;}

return false;
}

bool Stud::Setthirdname(char *_thirdname)
{
int sl = (int)strlen(_thirdname);
if(sl<=50){strncpy(thirdname,_third name,sl); thirdname[sl] = "\0"; return true;}

return false;
}

bool Stud::Setnumber(int _nuber)
{
if((_number<=999999) &&(_number>0)){number = _number; return true;}
return false;
}

bool Stud::Setmetka(int _metka)
{
if((_metka ==0)||(_metka==1)){metka = _metka; return true;}
return false;
}

char* Stud::Getfirstname()
{
return(char*) &firstname;
}

char* Stud::Getsecondname()
{
return(char*) &secondname;
}

char* Stud::Getthirdname()
{
return(char*) &thirdname;
}

int Stud::Getnumber()
{
return number;
}

int Stud::Getmetka()
{
return metka;
}

vector<Stud>Student;


void Load(char *path, vector<Stud>Student)
{
FILE *file = fopen(path, "r");
char buffer[51];
int buff_int;
while(!feof(file)){
fgets(buffer,51,file);
int tt_len= strlen(buffer);
buffer[tt_len-1] = "\0";
temp.Setfirsname(buffer);
fgets(buffer,51,file);
tt_len= strlen(buffer);
buffer[tt_len-1] = "\0";
temp.Setsecondname(buffer);
fgets(buffer,51,file);
tt_len= strlen(buffer);
buffer[tt_len-1] = "\0";
temp.Setthirdname(buffer);
scanf(file," %d",&buff_int);
temp.Setnumber(buff_int);
scanf(file," %d",&buff_int);
temp.Setmetka(buff_int);
Student.push_back(temp);
}fclose(file);
}


void Sort(char *path,vector<Stud>&Student)
{
int i=0;
char buffer[51];
int buff_int;
n = Student.size();
do{
if(Student[i].metka>0)
{
FILE *file = fopen(file,"w");
strcpy(buffer,Student[i].Getfirstname());
fprintf(file,"%s%c%c",buffer,13,10) ;
strcpy(buffer,Student[i].Getsecondname());
fprintf(file,"%s%c%c",buffer,13,10) ;
strcpy(buffer,Student[i].Getthirdname());
fprintf(file,"%s%c%c",buffer,13,10) ;
buff_int = Stud.Getnumber();
fprintf(file,"%d%c%c",buf_int,13,10 );
i++;
}
i++;
}while(f);

}
void main()
{
Student.clear();
Load("input.txt",Student);
Sort(Student);
char file_name[30];
char file_name_1[30];
strcpy(file_name_1,"Nikola ");
strcpy(file_name,strcat(file_name_1 ,file_name));
}


вот спользоал класс, но очень криво, помогите исправить ошибки......
moron вне форума Ответить с цитированием
Старый 06.04.2010, 00:30   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Если хотите, чтоб вам кто-то помог, вставляйте теги.
Carbon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с задачей на использование классов (С++) N1KeL Помощь студентам 4 25.07.2009 23:58
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18
использование множества классов studenth Общие вопросы C/C++ 5 08.11.2007 14:57
Использование C++ классов из native DLL в .NET C# lexluther Общие вопросы C/C++ 1 31.01.2007 22:00