* @file Ödev
* @description Programınızın açıklaması ne yaptığına dair.
*program çalıştıgında 100 adet karakter nesnesi oluşturuluyor oluşturulan nesneler baglı listeye istenildiği gibi ekleniyor
*sağa ilerle komutu, listenin ilk düğümündeki karakteri okuyup ve ekrana yazdıyor. Karakter nesnesi
ekrana yazıldıktan sonra listedeki ilk düğüm listeden çıkarılmalıdır.
Sola ilerle komutu ekrana yazılmış olan karakter nesnelerinden en son yazılanı yığıta ekleyip
ekrandan çıkartılıyor
*Dolayısıyla sağa ilerle komutunda ilk bakılacak yer yığıttır. Eğer yığıtta eleman var ise bağıl listeden
eleman alınmayacak, yığıttan alınacaktır. Yığıttan pop yapılan karakter ekrana yazılacaktır
Her sağa veya sola ilerle komutundan sonra şimdiye kadar ekranda oluşan karakterlerin son hali
ekrana yazdırılmaktadır
* @course 2.öğretim A GRUBU
* @assignment 2.ÖDEV
* @date Kodu 26.11.2015-30.11.2015
* @author Gruptakilerin AHMET YENEN B130910031 yenenahmet@hotmail.com
*/
------------------------------------------------------------
Header Dosyaları
-----------------------
#ifndef Karakter_H
#define Karakter_H
class Karakter{
private:
char karakter;
public:
Karakter(){}
Karakter(char karakter);
char yolla();
};
#endif
----------------------------------
#ifndef stack_H
#define stack_H
#include
#include
#include
#include
#include
#define boyut 100
using namespace std;
class stack{
private:
char elemanlar[boyut];
int tepe;
public:
stack(){
tepe=0;
}
char pop(){
if(tepe==0){
cout<<"stack boş";
return false;
}
else{
tepe--;
return elemanlar[tepe+1];
}
}
bool dolu(){
if(tepe==boyut){
return true;
}
return false;
}
bool bos(){
if(tepe==0){
return true;
}
return false;
}
void push(char ch){
if(tepe==boyut){
cout<<"stack dolu..";
return;
}
elemanlar[tepe]=ch;
tepe++;
}
};
#endif
----------------------------------------------------------------
#ifndef LIST_H
#define LIST_H
#include
#include
#include
#include
#include
#define boyut 100
using namespace std;
class list
{
private:
char data;
list *next;
public:
list(){};
void ekle(char);
void sil(char);
void listele();
void goster(char* x, int sayac);
};
#endif
----------------------------------------------------------------------
Kaynak Dosyalar
----------------------------------------------
#include "Karakter.h"
Karakter::Karakter(char karakter)
{
this->karakter=karakter;
}
char Karakter::yolla()
{
return karakter;
}
---------------------------------------------
#include "List.h"
list *head;
void list::sil(char x){
list *p=head;
list *temp=p;
if(p==0)
cout<<"listede eleman yok"<
else if(p->next==0 && p->data==x) // bir tane eleman var ve onun silindiÄŸi yer.
{
delete p; head=0;
}
else if(p==head && p->data==x) // birçok eleman var ve baştakinin silindiği.
{
head=p->next;
delete p;
}
}
void list::ekle(char karakter)
{
list *newlist=new list; // eklenecek nense için yer açılır.
newlist->data=karakter; // data ve next pointer lar atanır.
newlist->next=0;
list *p=head; // listede dolaşıcak bir pointer tanımlanır.
if(p==0)
head=newlist;
else
{
while(p->next!=0)
p=p->next;
p->next=newlist; // en sona gelindiÄŸinde eleman eklenmiÅŸ olur.
}
}
void list::listele()
{
list *p=head;
int i=1;
if(p==0)
cout<<"liste boss."<
{
while(p) // NULL elemana kadar gidip ekrana yazdırılıyor.
{
cout<data<
i++;
}
}
}
void list::goster(char* x, int sayac){
list a;
list *p=head;
if(p==0)
cout<<"liste boss."<
cout<<"islem yapıdıktan sonraki hal (ekran son durum) =>";
for(int k=0; k<=sayac;k++)
cout<
a.sil(p->data);
}
------------------------------------------------------------
#include "Stack.h" Kaynak son
--------------------------------------------------------------
_-_-_-_-
Main dosyası
#include
#include
#include
#include
#include
#include "List.h"
#include "Karakter.h"
#include "Stack.h"
#define boyut 100
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
char ekrandakileritut[boyut];
int sayac=0;
int main(int argc, char** argv) {
setlocale(LC_ALL,"Turkish");
srand(time(NULL));
int cevir;
char karakter;
int i ;
list *a = new list;
stack *b = new stack;
for(i=0;i
cevir=rand()%25+65;
karakter=cevir;
a->ekle(karakter);
karaterN = new Karakter(karakter);
}
int giris;
char bas;
//while(1)
do
{
cout<<"********************************"<
switch(giris)
{
case 1:
{
cout<<"Sağa kaydırma işlemi yapılıyor :"<
a->goster(ekrandakileritut,sayac); cout<
}
else if(b->bos()==false){
b->pop();
cout<<"Yıgıtta eleman var !(yıgıttan alınan eleman) =>"<
cout<<"Yıgıt işleminden sone ekran son hali=>";
for(int k=0; k
break;
}
case 2:
{
cout<<"Sola Kaydırma işlemi yapılıyor : "<
b->push(ekrandakileritut[sayac]);
sayac--;
cout<<"ekrandan silinen deger =>"<
for(int k=0; k
}
case 3:
return 0;
case 4:
{//baglı liste görülmek istenirse .....
a->listele();
break;
}
default:
{
cout<<"lutfen menudeki secenekleri seciniz."<
}
}while(giris=3);
system("pause");
return 0;
}
---------------------------------------------------------------------------------
Hiç yorum yok:
Yorum Gönder