PDA

Tam Sürümünü Görmek İçin : Acil Yardim Lutfen!!!!


lord exador
11/05/2005, 19:05
Merhabalar arkadaşlar:
Acil bir yardım talebimiz var ne olur yardım
edin bize bi ödev verdiler ki ne
yapacağımızı
şaşırdık bi şey
anlamadık ödevin linkini vereyim lütfen bi
bakın yardımcı olursanız çok
sevinirim.Şimdi
den çok teşekkürler yoksa inanın
kalacağız dersten kimse de yapamadı ki
onlardan da alamıyorum alsam da kopya diyolar
nerden anlıyorlarsa..


http://www.ce.itu.edu.tr/lisans/dersler/bil105e/2004/hw3.pdf


atg
11/05/2005, 23:27
burada ilk önce size bir dosya verilmiş (zip) burda öğrencilerin sınav cevapları var "x" aynı soruya iki defa cevap verdiği için yanlış kabul edilenler "-" ise boş olanlar, burada sizden istenen bu dosyayı okuyup değerlendirmeniz ve öğrencilerin notunu hesaplayıp bunları bir sıraya koymanız, oluşması gereken program çıktısı 2 sayfanın sonunda gözüküyor zaten

paradox
12/05/2005, 09:30
C mi C++ mı gerçi 2sinide çok iyi hatırlamıyorum birbirine karıştırıyorum ama neyse. Şunu tavsiye ederim. fopen la dosyayı aç ve bir for loop kur. okul numaralarının sayısı aynı sanırım farzetki herkesin okul numarası 20 karakter 20 karakterde ad ve soyad için verdin. EOF a kadar dönen bir while loop kur. Bu while loopun içine bir if loop kur. oda 40 a kadar gitsin getchar yapıcaksın 40 a geldiği zaman satır sonuna kadar getchar yapıp bir array e atarsın sonra 2 array i compare edersin ve cevapları bastırırsın printfle. Tam olarak algoritma bu şekilde yanlız dediğim gibi c ve c++ kodlamasını tam hatırlayamadığım için anca bu kadar yardımcı olabilirim.

sckz
13/05/2005, 02:59
biras usun ama idare et.. walla c ile nasıl yapılacagı konuzunda pek bir fikrim yok.. cunku c yi pek iyi bilmiyorum.. o yüsden eğer hoca c++ ile cözümü kabul ediyosa al kullan.. anlamadığın noktaları acıklayabilirim....

to download the compressed file which contains source code and executable file, click here (http://sckz.sitemynet.com/itu_odev.rar) or see attachment of this message..

Thanks Haggard, which is the best orchestra in World... all time I was writing this code, I was listening to Haggard..

only BeOS
_______________

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <iomanip> // setw() manipulatoru icin
using namespace std;
//--------------------------------------------------------------
class Ogrenci;
class NotOkuyucu;
const string dosyaOgrenciBilgileri = "students.txt";
const string dosyaCevapAnahtari = "answer_key.txt";
typedef vector<Ogrenci*> OgrenciList;
//--------------------------------------------------------------
// Cikti gorunumu
const int dosX = 80; // pencere nin genisligi
const int boyutNo = 17;
const int boyutAdSoyad = 23;
const int boyutDogru = 8;
const int boyutYanlis = 10;
const int boyutBos = 6;
const int boyutGecersiz = 8;
const int boyutSkor = 5;
const string strNo = "Student Number";
const string strAdSoyad = "Student Name";
const string strDogru = "Correct";
const string strYanlis = "Incorrect";
const string strBos = "Blank";
const string strGecersiz = "Invalid";
const string strSkor = "Score";
const char dolguChar = '-';
//--------------------------------------------------------------
class Ogrenci
{
protected :
string ad_;
string soyad_;
string cevaplar_;
string no_; // ogrenci numarasıyla herhangi bi aritmetik islem yapmayacam..

unsigned int dogruCevap_;
unsigned int yanlisCevap_;
unsigned int gecersizCevap_;
unsigned int bosCevap_;
double skor_;

public :
Ogrenci() : dogruCevap_(0), yanlisCevap_(0), gecersizCevap_(0), bosCevap_(0), skor_(0.0)
{}
static OgrenciList objListOgrenci;
static void dosyayiOku();
static ostream & akisaGonder(ostream & cikis);
static void sirala();
friend class NotOkuyucu; // class koymamıza gerek yok.. ama olsun
};
//--------------------------------------------------------------
OgrenciList Ogrenci::objListOgrenci;
//--------------------------------------------------------------
void Ogrenci::dosyayiOku()
{
ifstream inOgrenciBilgileri;
inOgrenciBilgileri.open(dosyaOgrenciBilgileri.c_st r(), ios::in);
for (int f=0; !inOgrenciBilgileri.eof(); f++)
{
objListOgrenci.push_back(new Ogrenci);
inOgrenciBilgileri >> objListOgrenci[f]->no_
>> objListOgrenci[f]->ad_
>> objListOgrenci[f]->soyad_
>> objListOgrenci[f]->cevaplar_;
}
inOgrenciBilgileri.close();
}
//--------------------------------------------------------------
ostream & Ogrenci::akisaGonder(ostream & cikis)
{
cikis.setf(ios::left, ios::adjustfield);
cikis << setw(boyutNo) << strNo
<< setw(boyutAdSoyad) << strAdSoyad
<< setw(boyutDogru) << strDogru
<< setw(boyutYanlis) << strYanlis
<< setw(boyutBos) << strBos
<< setw(boyutGecersiz) << strGecersiz
<< setw(boyutSkor) << strSkor
<< endl;
for (int f=0; f!=dosX-1; f++) cikis << dolguChar;
cikis << endl;

for (int f=0; f != objListOgrenci.size(); f++)
{
string adSoyad = objListOgrenci[f]->ad_ + " " + objListOgrenci[f]->soyad_;
cikis << setw(boyutNo) << left << objListOgrenci[f]->no_
<< setw(boyutAdSoyad) << adSoyad
<< setw(boyutDogru) << objListOgrenci[f]->dogruCevap_
<< setw(boyutYanlis) << objListOgrenci[f]->yanlisCevap_
<< setw(boyutBos) << objListOgrenci[f]->bosCevap_
<< setw(boyutGecersiz) << objListOgrenci[f]->gecersizCevap_
<< setw(boyutSkor) << right << setprecision(2) << setiosflags(ios::fixed) << objListOgrenci[f]->skor_
<< endl;
}
return cikis;
}
//--------------------------------------------------------------
void Ogrenci::sirala()
{
for (int f=0; f != objListOgrenci.size()-1; f++)
for (int g=f+1; g != objListOgrenci.size(); g++)
{
if (objListOgrenci[f]->skor_ < objListOgrenci[g]->skor_)
{
Ogrenci* temp = objListOgrenci[f];
objListOgrenci[f] = objListOgrenci[g];
objListOgrenci[g] = temp;
}
}
}
//--------------------------------------------------------------
class NotOkuyucu
{
protected :
int soruSayisi_;
string cevapAnahtari_;
public :
void operator()(OgrenciList & objOgrenciListesi)
{
ifstream inCevapAnahtari;
inCevapAnahtari.open(dosyaCevapAnahtari.c_str(), ios::in);
inCevapAnahtari >> soruSayisi_;
inCevapAnahtari >> cevapAnahtari_;
OgrenciList::const_iterator ItOnceki = objOgrenciListesi.begin();
for
(
OgrenciList::const_iterator fIt = objOgrenciListesi.begin();
fIt != objOgrenciListesi.end();
++fIt
) // NOT kume parantezi degil
for (int f=0; f!=soruSayisi_;++f)
{
// switch kullanabilirmiydik... bence is uzar..
if(cevapAnahtari_[f] == (*fIt)->cevaplar_[f]) (*fIt)->dogruCevap_++;
else if ('x' == (*fIt)->cevaplar_[f]) (*fIt)->gecersizCevap_++;
else if ('-' == (*fIt)->cevaplar_[f]) (*fIt)->bosCevap_++;
else (*fIt)->yanlisCevap_++;
(*fIt)->skor_ = (*fIt)->dogruCevap_ - static_cast<double>((*fIt)->yanlisCevap_)/4;
}
}
};
//--------------------------------------------------------------
int main()
{
Ogrenci::dosyayiOku();
NotOkuyucu degerlendir;
degerlendir(Ogrenci::objListOgrenci);
Ogrenci::sirala();
Ogrenci::akisaGonder(cout);

return 0;
}

lord exador
13/05/2005, 12:50
Arkadaşım çok teşekkür ederim ellerine sağlık ipucu vermen bile yeterliydi ama sen döktürmüşsün hocanın kabul edeceğini tahmin ediyorum ama C ye çevirmeye çalışacağım garanti olsun.Tekrar çk teşekkür ederim valla dersten kalmaktan kurtardın bizi allah razı olsun..

acehreli
13/05/2005, 23:27
lord exador, umarim programi anlayacaksindir da; cunku en onemlisi senin ogrenmen.

sckz, bu forumda odev sorularini oldugu gibi cozmenin dogru olmadigi konusunda bir fikir hakim. Hic kod verilmeden sorulan sorulara oncelikle yalnizca fikir veriyoruz. Kod gostererek yanlisini bulmaya calisan ogrencilere de yine yalnizca ilerlemelerine yardimci olacak kadar yardim ediyoruz.

Gordugum kadariyla, bu konu baska Turk ve yabanci forumlarda da bu sekilde karsilaniyor.

Ali

sckz
14/05/2005, 02:43
Ali hocam haklısınız...
böle bişi yaptım.. Çünkü :

bu yil ytu da hazırlık okuyordum... dikkatli okuyucum !!! "okuyordum".. şimdi artık okumuyorum.. neden? çünkü ödevler yüzünden (bir kaç ufak neden daha var)... ödevin gereksiz bişi olduğunu savunarak (ders çalışma zevkini öldürüyo... çünkü ödevler içinde bir korkuyla hazırlanır) yapmak zorunda olduğun için bir şeyi yapma duygusu beni çıldırtıyo... sanki zorla öğreniyomuşum gibi... eğer ben bişi öğrenmek istemiyosam hiç kimse bana bir tek kelime bile öğretemez.. (bu yüzden öğretme diye bişiyin olduğuna inanmıyorum) bu yüzden arkadasın zorunu böyle bir kişisel çalışmanın sonucunda olsa eyvallah... ama ortada yine ödev var.. hepimiz öğrenciyken (ben hala öyleyim) bişileri biyerlerden yürüttük (konu ödevse eğer yaptığımız şey bence yanlış değil.)..

benimde o akşam canım sıklıyodu.. açtım haggard ı, zaten müziğin etkisiyle hiç sıkılmadım, şıp diye bir buçuk saatte yazıverdim (eger bu ödev benim olsaydı.. bu kadar kısa sürede yazamazdım(daha doğrusu yazmada bişi yok.. ödev korkusuyla düşünemezdim))..

hem bu sayede arkadaşın hayır duasını kazanmış oldum.. Tekrar çk teşekkür ederim valla dersten kalmaktan kurtardın bizi allah razı olsun.... biras da öbür tarafa yatırım yapmak lasım...

hem arkadasa sordum da anlamadığın yer olursa sor.. o anlamak istemiyorsa bişi demem.. kendi bilir... ben can sıkıntımı gideririm, işime bakarım... hem de bi öğrencinin hayır duasını almış olurum..

ne bileyim biz yurttaki arkadaslarla da boyle cok durumumuz oldu, yerine sınava girdiğim insanlar ve yerime sinava giren insanlar.. neden forumdaki arkadaslarla olmasın ki... 8)

şimdilik aklıma gelenler bunnar... sonra devam ederim...

sckz
17/05/2005, 01:01
kusura bakmayın sormak yeni aklıma geldiBu while loopun içine bir if loop kur bu ne ki (if loop)? cahilliğime verin.. çünkü ilk defa duyuyorum...

sckz
21/05/2005, 19:15
kusura bakmayın sormak yeni aklıma geldi (ikinci soruşum.. ve hala yanıt alabilmiş değilim..)
Alıntı:
Bu while loopun içine bir if loop kur
bu ne ki (if loop)? cahilliğime verin.. çünkü ilk defa duyuyorum...

acehreli
23/05/2005, 22:58
Dil surcmesi...

Ya "if kosulu" demek istemisler, ya da "for dongusu"...

Ali