Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Telefonbok

Postades av 2004-04-06 10:52:49 - Jaffar Aladdin, i forum c++, Tråden har 8 Kommentarer och lästs av 1312 personer

Hejsan! Jag är nybörjare i C++ och vill försöka göra en telefonbok eller liknande. Vill att jag ska kunna lägga in namn och telefonnummer. Vill att det sorteras i bokstavsordning, om det är möjligt? Vet inte riktigt hur jag ska börja. All hjälp uppskattas


MVH

/Jaffa


Svara

Sv: Telefonbok

Postades av 2004-04-06 19:14:40 - Raderat konto

Det beror på vad det är du vill lära dig. Vill du lära dig c++, objektorientering eller att programmera applikationer.

En telefonbok består ju i princip av en databas att lagra i, ett GUI att "jobba" i och lite kod däremellan.

Ett förslag är att använda ADO för databasen och MFC för GUI:t men inget av dem är ju särskilt objektorienterade och särskilt mycket c++ kod blir det ju inte heller.

Om det är språket c++ och STL du vill lära dig så kan du ju använda cin & cout som användarinterface och t.ex std::vector att lagra telefonnummer i. Lite mer avancerat är ju att använda std::map.

Här är ett kort exempel som du kan utgå ifrån:

struct telefon {
std::string namn, telefon;
};

main() {
std::vector<telefon> telefonbok;
while (true) {
cout << "1. mata in nya namn" << std::endl;
cout << "2. sök efter telefonnummer" << std::endl;
int val;
cin >> val;
if (val == 1) { // mata in ny post
telefon ny;
cout << "ange namn" << std::endl;
cin >> ny.namn;
cout << "ange telefonnummer" << std::endl;
cin >> ny.telefon;
telefonbok.push_back(ny); // lägg till i telefonboken
}
else if (val == 2) { // sök efter namn
std::string namn;
cout << "ange namn att söka efter" << std::endl;
cin >> namn;
// loopa igenom telefonboken och se om namn finns där
for (std::vector<telefon>::const_iterator ii = telefonbok.begin()
ii != telefonbok.end(); ++ii) {
if (ii->namn == namn) {
cout << "Telefonnummer=" << ii->telefon << std::endl;
break;
}
}
}
else
break; // avsluta
} // while
}


Svara

Sv: Telefonbok

Postades av 2004-04-06 19:15:45 - Martin Adrian

Det beror på vad det är du vill lära dig. Vill du lära dig c++, objektorientering eller att programmera applikationer.

En telefonbok består ju i princip av en databas att lagra i, ett GUI att "jobba" i och lite kod däremellan.

Ett förslag är att använda ADO för databasen och MFC för GUI:t men inget av dem är ju särskilt objektorienterade och särskilt mycket c++ kod blir det ju inte heller.

Om det är språket c++ och STL du vill lära dig så kan du ju använda cin & cout som användarinterface och t.ex std::vector att lagra telefonnummer i. Lite mer avancerat är ju att använda std::map.

Här är ett kort exempel som du kan utgå ifrån:

struct telefon {
std::string namn, telefon;
};

main() {
std::vector<telefon> telefonbok;
while (true) {
cout << "1. mata in nya namn" << std::endl;
cout << "2. sök efter telefonnummer" << std::endl;
int val;
cin >> val;
if (val == 1) { // mata in ny post
telefon ny;
cout << "ange namn" << std::endl;
cin >> ny.namn;
cout << "ange telefonnummer" << std::endl;
cin >> ny.telefon;
telefonbok.push_back(ny); // lägg till i telefonboken
}
else if (val == 2) { // sök efter namn
std::string namn;
cout << "ange namn att söka efter" << std::endl;
cin >> namn;
// loopa igenom telefonboken och se om namn finns där
for (std::vector<telefon>::const_iterator ii = telefonbok.begin()
ii != telefonbok.end(); ++ii) {
if (ii->namn == namn) {
cout << "Telefonnummer=" << ii->telefon << std::endl;
break;
}
}
}
else
break; // avsluta
} // while
}


Svara

Sv: Telefonbok

Postades av 2004-04-14 13:35:33 - Jaffar Aladdin

Jag har fått till det mesta. Jag har gjort en funktion där hela telefonboken visas. Problemet är att det visas i den ordningen dom sparats i... och inte i bokstavsordning. Hur ska ja få till detta?... Vart ska det ligga någonstans i koden? Ska det ligga bland funktionen för att ladda alla posterna? eller vid själva sparandet av poster.. dvs när man lägger till posterna? Säg till om jag ska lägga in koden för "Lägg till post" eller "Ladda alla poster" funktionerna... /Jaffa


Svara

Sv: Telefonbok

Postades av 2004-04-14 17:56:39 - Raderat konto

Enklast är nog om du lägger in sorteringen i den funktion eller metod som laddar in posterna från databasen eller filen även om det är klart att du kan sortera filen varje gång du sparat en ny post också.

Tipset är att ta en titt på biblioteket algorithm. Där finns det funktioner för sortering (ex. sort()) av objekt lagrade i ett objekt av klassen Vektor. Du kommer dock vara tvungen att skapa en funktion som sköter jämförelsen av två av objekt (dvs, du måste visa vilka av medlemmarna i din klass eller struct som ska jämföras).

Det är enklare än det låter... i princip kommer du att vara tvungen att skapa två funktioner som ser ut ungefär såhär:

<code>
void sortera(vector<LagradPost> poster)
{
sort(poster.begin(), (poster.end(), mindre_an);
}

int mindre_an(LagradPost p1, LagradPost p2)
{
return p1.kontoNr < p2.kontoNr;
}
</code>

Jaja, letade rätt på en gammal kodsnutt från ett av mina program så nu sorterar jag på kontonummer vilket kanske inte är så intressant i en telefonbok :) men du fattar principen.


Svara

Sv: Telefonbok

Postades av 2004-04-14 17:57:05 - Raderat konto

Enklast är nog om du lägger in sorteringen i den funktion eller metod som laddar in posterna från databasen eller filen även om det är klart att du kan sortera filen varje gång du sparat en ny post också.

Tipset är att ta en titt på biblioteket algorithm. Där finns det funktioner för sortering (ex. sort()) av objekt lagrade i ett objekt av klassen Vektor. Du kommer dock vara tvungen att skapa en funktion som sköter jämförelsen av två av objekt (dvs, du måste visa vilka av medlemmarna i din klass eller struct som ska jämföras).

Det är enklare än det låter... i princip kommer du att vara tvungen att skapa två funktioner som ser ut ungefär såhär:

<code>
void sortera(vector<LagradPost> poster)
{
sort(poster.begin(), (poster.end(), mindre_an);
}

int mindre_an(LagradPost p1, LagradPost p2)
{
return p1.kontoNr < p2.kontoNr;
}
</code>

Jaja, letade rätt på en gammal kodsnutt från ett av mina program så nu sorterar jag på kontonummer vilket kanske inte är så intressant i en telefonbok :) men du fattar principen.


Svara

Sv: Telefonbok

Postades av 2004-04-14 17:58:00 - David Andreasson

Enklast är nog om du lägger in sorteringen i den funktion eller metod som laddar in posterna från databasen eller filen även om det är klart att du kan sortera filen varje gång du sparat en ny post också.

Tipset är att ta en titt på biblioteket algorithm. Där finns det funktioner för sortering (ex. sort()) av objekt lagrade i ett objekt av klassen Vektor. Du kommer dock vara tvungen att skapa en funktion som sköter jämförelsen av två av objekt (dvs, du måste visa vilka av medlemmarna i din klass eller struct som ska jämföras).

Det är enklare än det låter... i princip kommer du att vara tvungen att skapa två funktioner som ser ut ungefär såhär:

<code>
void sortera(vector<LagradPost> poster)
{
sort(poster.begin(), (poster.end(), mindre_an);
}

int mindre_an(LagradPost p1, LagradPost p2)
{
return p1.kontoNr < p2.kontoNr;
}
</code>

Jaja, letade rätt på en gammal kodsnutt från ett av mina program så nu sorterar jag på kontonummer vilket kanske inte är så intressant i en telefonbok :) men du fattar principen.


Edit: Den första funktionen är naturligtvis inte nödvändig, då du naturligtvis kan anropa sort() direkt.


Svara

Sv: Telefonbok

Postades av 2004-04-14 19:19:22 - Mikael Jönsson

La till en telefonbok i filarean, du kanske kan lära dig något av den...
Programarkivet:Telefonbok C++

/Micke


Svara

Sv: Telefonbok

Postades av 2004-04-15 14:44:45 - Per Malmén

Observera att den telefonbok som lades i filarean INTE är ett exempel på ett bra C++ program. Det saknar totalt en objektorienterad struktur.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 616
27 953
271 709
5 509
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies