auttakaas

Siis voisitteko auttaa mua tän kaa tai jos jollain ois samankaltainen ohjelma valmiina, tai tekisittekö sellaisen, vai löytyiskö netistä esimerkkiä tällaiseen:

Tarkoituksena olisi tehdä yksinkertainen kalenteriohjelma, joka lukee aluksi sisäiseen tietorakenteeseensa kalenteritietokannan, lajittelee sitten kalenterin sopivaan järjestykseen ja tulostaa lopulta em. järjestyksessä kaikki kalenterin tapahtumat näytölle.

Ohjelma lukema kalenteritiedosto koostuu seuraavan muotoisista riveistä:

päivä.kuukausi.vuosi tapahtuma

jossa päivä, kuukausi ja vuosi ovat kokonaislukuja, jotka voivat sisältää etunollan.

Jos vuosi on esitetty lukuna joka on pienempi kuin 100, se tulkitaan 2000-luvulla olevaksi vuodeksi. Siis esimerkiksi vuosiluvut 9 ja 09 tulkitaan vuodeksi 2009.

Välilyöntejä tietokannassa saa olla vapaasti kaikkien pisteiden (.) molemmin puolin. Vuosiluvun jälkeen pitää olla yksi välilyönti, mutta voi olla enemmänkin. Kaikissa em. kohdissa välilyönnit ovat lopputuloksen kannalta merkityksettömiä.

Seuraavassa esimerkkitietokanta kalenteri.dat, jonka kaikki rivit ovat laillisia:

1.1.19 Uusivuosi!
07.05.2004 Ohjelmointi I:n tentti todennäköisesti klo 17.00.
01.09.2004 Lukukausi alkaa
19.4.2004 Ohjelmointi I viikkopalautuksen 5 eräpäivä klo 8.00.
01.09.2004 Syyskuun ensimmäinen päivä!
1.9.2004 Kesäloma loppuu
28.3.2004 Kesäaika alkaa
1.1.05 Uusivuosi!
1. 1. 2003 Uusivuosi!
1. 1.2004 Uusivuosi!
1 . 1 . 2007 Vielä yksi uusivuosi.
09.09.2004 Torstai
1.1.9 Uusivuosi!

Ohjelman toiminta näyttää em. kalenteritiedostolla seuraavalta:

> ./kalenteri
Anna luettavan kalenteritiedoston nimi: kalenteri.dat
01.01.2003 Uusivuosi!
01.01.2004 Uusivuosi!
28.03.2004 Kesäaika alkaa
19.04.2004 Ohjelmointi I viikkopalautuksen 5 eräpäivä klo 8.00.
07.05.2004 Ohjelmointi I:n tentti todennäköisesti klo 17.00.
01.09.2004 Kesäloma loppuu
01.09.2004 Lukukausi alkaa
01.09.2004 Syyskuun ensimmäinen päivä!
09.09.2004 Torstai
01.01.2005 Uusivuosi!
01.01.2007 Vielä yksi uusivuosi.
01.01.2009 Uusivuosi!
01.01.2019 Uusivuosi!
>


Luettavan kalenteritietokannan nimi kysytään käyttäjältä.

Ohjelman tulostuksessa siis kaikki päivät ja kuukaudet tulostetaan kahdella numerolla tarvittaessa etunollalla täydennetynä.

Kalenterin tapahtumarivit on lajiteltu päivämäärän mukaiseen kasvavaan järjestykseen. Jos samalle päivämäärälle on useampia taphtumia, tulostetaan ne tapahtuman mukaisessa kasvavassa aakkosjärjestyksessä.

Jos tietokannan lukemisessa tapahtuu jokin seuraavista virheistä:

* Tietokantaa ei saa jostain syystä avattualuettavaksi.
* Taulukosta, johon tapahtumia ollaan lukemassa, loppuu tila.
* Tietokannan rivit eivät noudata yllä esitettyä yksinkertaista syntaksia.

ohjelma tulostaa virheilmoituksen

Kalenterin lukeminen epäonnistui!

ja suoritus päättyy.
4637
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

p.s. C :lla kiitos!

Äänestä
  • Ei tota jaksa ruveta kyllä ajattelemaan, ihan sama ku sanois, että kirjoitelkaa mulla koodi OpenGL pelistä joka vastaa Quakea!

    Ei sillä onnistus tuo, mutta mä jatkan nyt kaljan kittaamista ;)

    Opettele kunnolla C :aa tai käytä vaikka Borland C Builderin valmista Calendar juttuja, öööh!

    Hyvää pääsiäistä!.......

    Äänestä

tuottaa ongelmia. Oletko jo kirjoittanut void main(void) siitä on hyvä jatkaa :-o

P.S joudut lukemaan merkki kerrallaan tiedostoa, jolloin välilyöntien ignorointi on lasten leikkiä.

P.P.S Itse tekisin listarakenteen, joka sorttataan käyttäen apuna itse kirjoitettua metodia. Sinne listaan roiskitaan eventit (tapahtumat) siinä järjestyksessä kuin ne tulevat tiedostosta ja listarakenne sorttaa ne päivämäärän mukaan.

P.P.P.S Aloita nyt vaikka sen STL:n opiskelulla.

Äänestä

itselle muiden tekemästä työstä! Yritähän ensin itse saada jotain tuon koulutehtäväsi kanssa aikaan ja kysy sitten tarkennettuja kysymyksiä ongelmakohtiin. Muuten on ohjelmoitsijan urasi oleva lyhyt ja kivinen taival.

Äänestä

Kommentoi aloitusta


apua kirjoitti:

Siis voisitteko auttaa mua tän kaa tai jos jollain ois samankaltainen ohjelma valmiina, tai tekisittekö sellaisen, vai löytyiskö netistä esimerkkiä tällaiseen:

Tarkoituksena olisi tehdä yksinkertainen kalenteriohjelma, joka lukee aluksi sisäiseen tietorakenteeseensa kalenteritietokannan, lajittelee sitten kalenterin sopivaan järjestykseen ja tulostaa lopulta em. järjestyksessä kaikki kalenterin tapahtumat näytölle.

Ohjelma lukema kalenteritiedosto koostuu seuraavan muotoisista riveistä:

päivä.kuukausi.vuosi tapahtuma

jossa päivä, kuukausi ja vuosi ovat kokonaislukuja, jotka voivat sisältää etunollan.

Jos vuosi on esitetty lukuna joka on pienempi kuin 100, se tulkitaan 2000-luvulla olevaksi vuodeksi. Siis esimerkiksi vuosiluvut 9 ja 09 tulkitaan vuodeksi 2009.

Välilyöntejä tietokannassa saa olla vapaasti kaikkien pisteiden (.) molemmin puolin. Vuosiluvun jälkeen pitää olla yksi välilyönti, mutta voi olla enemmänkin. Kaikissa em. kohdissa välilyönnit ovat lopputuloksen kannalta merkityksettömiä.

Seuraavassa esimerkkitietokanta kalenteri.dat, jonka kaikki rivit ovat laillisia:

1.1.19 Uusivuosi!
07.05.2004 Ohjelmointi I:n tentti todennäköisesti klo 17.00.
01.09.2004 Lukukausi alkaa
19.4.2004 Ohjelmointi I viikkopalautuksen 5 eräpäivä klo 8.00.
01.09.2004 Syyskuun ensimmäinen päivä!
1.9.2004 Kesäloma loppuu
28.3.2004 Kesäaika alkaa
1.1.05 Uusivuosi!
1. 1. 2003 Uusivuosi!
1. 1.2004 Uusivuosi!
1 . 1 . 2007 Vielä yksi uusivuosi.
09.09.2004 Torstai
1.1.9 Uusivuosi!

Ohjelman toiminta näyttää em. kalenteritiedostolla seuraavalta:

> ./kalenteri
Anna luettavan kalenteritiedoston nimi: kalenteri.dat
01.01.2003 Uusivuosi!
01.01.2004 Uusivuosi!
28.03.2004 Kesäaika alkaa
19.04.2004 Ohjelmointi I viikkopalautuksen 5 eräpäivä klo 8.00.
07.05.2004 Ohjelmointi I:n tentti todennäköisesti klo 17.00.
01.09.2004 Kesäloma loppuu
01.09.2004 Lukukausi alkaa
01.09.2004 Syyskuun ensimmäinen päivä!
09.09.2004 Torstai
01.01.2005 Uusivuosi!
01.01.2007 Vielä yksi uusivuosi.
01.01.2009 Uusivuosi!
01.01.2019 Uusivuosi!
>


Luettavan kalenteritietokannan nimi kysytään käyttäjältä.

Ohjelman tulostuksessa siis kaikki päivät ja kuukaudet tulostetaan kahdella numerolla tarvittaessa etunollalla täydennetynä.

Kalenterin tapahtumarivit on lajiteltu päivämäärän mukaiseen kasvavaan järjestykseen. Jos samalle päivämäärälle on useampia taphtumia, tulostetaan ne tapahtuman mukaisessa kasvavassa aakkosjärjestyksessä.

Jos tietokannan lukemisessa tapahtuu jokin seuraavista virheistä:

* Tietokantaa ei saa jostain syystä avattualuettavaksi.
* Taulukosta, johon tapahtumia ollaan lukemassa, loppuu tila.
* Tietokannan rivit eivät noudata yllä esitettyä yksinkertaista syntaksia.

ohjelma tulostaa virheilmoituksen

Kalenterin lukeminen epäonnistui!

ja suoritus päättyy.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu