![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.02.2011
Сообщений: 75
|
![]()
Здравствуйте всем.Я новичок в СИ++.Новичок в работе с классами,ну и,соотвественно,с контейнерами.В программе,которую пишу,необходимо организовать последовательность из строк и чисел,орг-ть удаление из начала(уже сделал),а так же сортировать слова по алфавиту.Не могли бы мне помочь организовать ввод строки?Я додумался только до ввода символа(скажете,что разницы особо нет,но я что-то заблудился).
Вот код #include "stdafx.h" #include "Num.h" #include <string.h> #include <stdlib.h> #include <conio.h> TSpisok N; int _tmain(int argc, _TCHAR* argv[]) { char str[10]; int k,i,key; TElement *p; puts("\nEnter: - 1 for Add Element"); puts(" - 2 to delete element"); puts(" - 3 for sort"); puts(" - 4 for close\n"); scanf("%d",&key); while (key!=4) {if (key==1) {while(printf("Input numbers, strings or <end>:"), scanf("%s",str),strcmp(str,"end")) {k=atoi(str); if (k) p=new TNum(k); else p=new TChar(str[0]); N.Add(p); } puts("\nInformation"); N.ForEach(Show); puts("\n________________\n"); p=N.First();k=0; while (p!=NULL) {if (TNum *q=dynamic_cast<TNum *>(p)) k+=q->num; p=N.Next(); } p=N.First();i=0; while (p!=NULL) {if (TChar *q=dynamic_cast<TChar *>(p)) str[i++]=q->ch; p=N.Next(); } str[i]='\0';} if (key==2) {N.Del(); N.ForEach(Show);} if (key==3) {} if (key==4) {} puts("\nEnter: - 1 for Add Element"); puts(" - 2 for delete element"); puts(" - 3 for sort"); puts(" - 4 for close\n"); scanf("%d",&key); } return 0; } Куда передаем заголовочный файл #include "Element.h" class TNum: public TElement {public:int num; TNum(int n):TElement(),num(n) {} ~TNum() {puts("Delete TNum");} void Print() {printf("%d",num);} }; class TChar: public TElement {public: char ch; TChar(char c):TElement(),ch(c) {} ~TChar() {puts("Delete TChar");} void Print() {printf("%c",ch);} }; void Show(TElement *e); Категорически не понимаю строку {if (TChar *q=dynamic_cast<TChar *>(p)) str[i++]=q->ch; Объясните,пожалуйста,как организовать для строки Вот до конца вся программы: заголовочный файл #include <stdio.h> class TElement { public: TElement *pre; TElement() {pre=NULL;} virtual ~TElement() {puts("Delete TElement");} virtual void Print()=0; }; class TSpisok {private:TElement *first,*last,*cur; public : TSpisok(){first=last=cur=NULL;} ~TSpisok(); void Add(TElement *e); TElement *Del(); void ForEach(void (*f)(TElement *e)); TElement *First(){return cur=first;} TElement *Next(){return cur=cur->pre;} TElement *Last(){return cur=last;} }; #include "stdafx.h" #include "Num.h" #include <string.h> #include <stdlib.h> void Show(TElement *e) { e->Print(); printf(" ");} #include "stdafx.h" #include "Element.h" TSpisok::~TSpisok() {puts("Delete TSpisok"); while ((cur=Del())!=NULL) {cur->Print(); delete(cur);} } void TSpisok::Add(TElement *e) {if (first==NULL) first=last=cur=e; else {last->pre=e; e->pre=NULL; last=e;} } TElement *TSpisok::Del(void) {TElement *temp=first; if (first!=NULL) first=first->pre; if (first==NULL) printf("Pusto"); return temp; } void TSpisok::ForEach(void(*f)(TElement *e)) {cur=first; while (cur!=NULL) {(*f)(cur); cur=cur->pre; } } |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 04.02.2011
Сообщений: 75
|
![]()
я организовал ввод строки.вот как терь список сортировать?он же уже введен!!!!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Описать класс-родитель и класс-потомок. Delphi 7 | Andrew_M | Помощь студентам | 0 | 15.01.2011 14:42 |
КЛАСС | 4ika | Общие вопросы C/C++ | 1 | 16.03.2010 21:32 |
реализовать контейнерный класс за $$$ | B1GBEN | Фриланс | 2 | 14.12.2009 00:46 |
реализовать контейнерный класс | B1GBEN | Помощь студентам | 0 | 13.12.2009 14:21 |
[за $$$] сделать лабораторную на С++ (контейнерный класс set) | velvetdust | Фриланс | 3 | 18.11.2009 16:27 |