|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.04.2010, 22:36 | #1 |
Новичок
Джуниор
Регистрация: 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; } мне сказали сделать такую задачу ток с таким условием "Создать программу на языке Си++ с использованием не менее двух классов." У меня полный абздец с классами... Помогите плиз! |
04.04.2010, 13:44 | #2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
вместо структуры используй класс, почитай литературу
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
05.04.2010, 23:19 | #3 |
Новичок
Джуниор
Регистрация: 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)); } вот спользоал класс, но очень криво, помогите исправить ошибки...... |
06.04.2010, 00:30 | #4 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Если хотите, чтоб вам кто-то помог, вставляйте теги.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с задачей на использование классов (С++) | 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 |