Borland C++ Builder 5.0

Pixel-AQ

Известный деятель города
#24
воооообщем отдельную тему не стал создавать из за детского вопроса.

Вообщем вопрос у меня по визуальному программированию на С++ борланд 6.0.
и фигня такая вообщем у меня есть класс который вычисляет средний бал студента
class NSTUDENT: public STUDENT
{
float sr;
public:
float sr_bal(){
sr=0;
for (int i=0;i<5;i++)
{sr+=SES;};
return sr/5; };
NSTUDENT():STUDENT(){sr=0;};
NSTUDENT(AnsiString NNAME, AnsiString NGROUP, int NSES[5]):STUDENT(NNAME,NGROUP,NSES){};
};


ну суть не в этом
далее я уже в проге заношу его в поле мемо

STUDENT ob(NAME1,GROUP1,SES1);
NSTUDENT ob2(NAME1,GROUP1,SES1);
Nsr=ob2.sr_bal(); то где бзается та функция
и вот он собственно вывод моего среднего бала в мемо
Memo4->Lines->Add(""+FloatToStr(Nsr);
но касяк, точнее не косяк а хз как исправить, но вот например
дано 5 оценок 4 4 5 5 5 средний бал =4.6 а в мемо отображается 4.5900003545 вот так как сделать чтобы строго 4.6 было
???
 

Canniballissimo

Житель центра
#25
Pixel_AQ, есть вариант с типами данных. У тебя Nsr какого типа? Можешь ещё попробовать изменить тип данных, возвращаемый функцией sr_bal на double.
Плюс - в отладке проследи, где конкретно изменяется возвращаемое значение, где оно становится не корректным.
 

Pixel-AQ

Известный деятель города
#26
о капать как все просто оказалось float поменял на doublе и все стало гуд =) спасибо
 

Pixel-AQ

Известный деятель города
#27
эх что то я немогу понять как сделать в ListBox если это еще возможно?
что то типа таблички

Фамилия | Группа | оценки | ср бал |

там у него есть свойство columns отвечающее за количество столбцов вроде как.
или может есть у кого по Визуальному программирования по С++ книжка в электронном виде,
у меня Архангельский там про лист бох не очень написанно
 

Pixel-AQ

Известный деятель города
#28
точнеее как я понял это делается с помощью CheckListBox а вот как я не догнал
 

Canniballissimo

Житель центра
#29
Pixel_AQ, а нафига табличку делать ListBox'ом? Для этого же есть спец. контрол, StringGrid вроде называется (давно не пользовался билдером, потому не помню :))
 

Pixel-AQ

Известный деятель города
#30
да просто я сижу строчу на курсовую прогу,
вот мне и надо вывести
|Фамилия | Группа | оценки | ср бал|
а вот чем выводить лучше я так хз
пробовал мемо все гуд, но мне по заданию надо сортировать по алфавиту , а потом еще и удалить студента на выбор.
а там еще мутить дофига,
в listbox я сделал но не таблице =) но зато с сортировкой нет проблем =)

вообщем сижу и туплю.....=(
 

CrossLive

Гость города
#31
Pixel_AQ, не мучайся - используй StringGrid, далее в нем просто работай с ячейками StringGrid->Cells[][] и если даже чего-то у тебя не будет - типа удаления или сортировки, то за 3-4 строчки кода это можно сделать.
 

Canniballissimo

Житель центра
#32
Pixel_AQ, да, сортировка - не такая уж и большая проблема, чтобы принебрегать подходящим для этого контролом.
 

Pixel-AQ

Известный деятель города
#33
Pixel_AQ, не мучайся - используй StringGrid,
спасибки =) сделал так, табличка получилась отпадная..=)
теперь сортировку добавлю =) и удаление
ну и конечно же надо еще и тех у кого 2-ки на экран вывести, ну с этим я справлюсь.
 

Pixel-AQ

Известный деятель города
#34
кто может помочь в уже почти готовую прогу добавить сортировку и удаление, студентов из табл СтрингГрид, не догоняю как сделать
 

Pixel-AQ

Известный деятель города
#35
Точнее я бы даже сказал что я не то чтобы не догоняю я не знаю как это организовать именно на С++ в паскале там полегче..было
там достаточно было бы сравнить 1-е символы строковой переменно отвечающей за имя и упорядочить.

а тут у меня все сложнее
чтобы было более понятно то вот задание
Создать класс STUDENT. Класс должен содержать поля для
хранения NAME – фамилия и инициалы; GROUP – номер группы;
SES – успеваемость ( массив из пяти элементов). Поля объектов
инициализировать конструктором по умолчанию и конструктором с
параметрами.
Класс-наследник должен вычислять средний бал успеваемости.
Клиенту (программ WinMain) доступны следующие основные
операции: создать объекты обоих классов, удалить объекты,
показать значение объектов. Предусмотреть ввод с клавиатуры
данных в массив STUD1 , состоящий из десяти структур типа STUDENT;
записи должны быть упорядочены по алфавиту; вывод на
дисплей фамилий и номеров групп для всех студентов, имеющих
хотя бы одну двойку; если таких студентов нет, вывести
соответствующее сообщение.

как понятно из задания то там помимо класса есть массив классов STUD1 в котором хранится вся информация о 10 студентах........
блин пока писал забыл че хотел =( щас вспомню допишу...
 

Pixel-AQ

Известный деятель города
#36
вообщем вспомнил что я хотел....
значит по заданию получается что дан масив состоящий из 10 классов, вот каждый клас под каждого студента....
в класее есть только функции возвращаюшие значения, имени, группы, и оценок...и как тогда сравнивать первые символы имен?
 

Ortodocs

Житель мегаполиса
#37
я не знаю как это организовать именно на С++ в паскале там полегче..было
там достаточно было бы сравнить 1-е символы строковой переменно отвечающей за имя и упорядочить
Сравнивай и в С, кто тебе не даёт либо функцией strcmp если в консоле писать, но покуда ты с vcl работаешь и с ansistring то AnsiCompare.
Но в тоже время мне не понятно что значит "Клиенту (программ WinMain)..."
 

Pixel-AQ

Известный деятель города
#38
Как сравнивать тоже научился =) точно также как в паскале, теперь как упорядочить.....