Avatar billede tumel Nybegynder
06. december 2009 - 18:51 Der er 1 løsning

Programmerings aflevering

Jeg er lige lidt desperart, jeg læser IT har lige opdaget for 5 min siden at jeg har en aflevering i programmering som skal sendes inden kl. 00 i nat.. så kunne virkelig godt bruge noget hjælp her..

i får lige opgaven og grund koden...

Opgavest 10
PROB (BAIT1/E2009)
Opgave 1. (myTunes (version 5.0)) Med udgangspunkt i version 4.0 skal
myTunes omstruktureres ved hjlp af records.
1. De ner og implementer en record for sange.
2. De ner og implementer en record for albums. Den skal bl.a. indeholde
ovenstaende record for sange.

grund koden er:

//
// PROB (BAIT1/E2009)
//
// myTunes v4.0
//
// /rrh-20091130
//

using System;

class myTunes {

  public static int      antal;
  public static int[]    spilletid;
  public static int[]    sangantal;
  public static int[,]    sangrating;
  public static String[]  titel, kunstner;
  public static String[,] sangtitel;

  static void Main() {
    string cmd;

    // Initialisering af albums
    init();

    //
    Console.WriteLine("Velkommen til myTunes (v4.0)");
    Console.WriteLine("============================");
    do {
      Console.WriteLine("\nIndtast kommando (h = hjaelp, slut = stop program)");
      cmd = Console.ReadLine();

      switch(cmd) {

      case "vis":        // vis album
    udskriv_album(get_album() - 1,true);
    break;
   
      case "opd":        // opdater album
    opdater_album(get_album() - 1);
    break;

      case "ny" :        // opret nyt album
    nyt_album();
    break;

      case "a":                // Udskriv alle albums
    for(int i = 0; i < antal; i++) {
      udskriv_album(i,false);
    }
    break;
   
      case "g":                // Udskriv gennemsnitsspilletid
    Console.WriteLine("\nGennemsnitslig spilletid (sek.): {0,0:F2}",
              gns_spilletid());

    break;

      case "h":
    udskriv_hjaelp();
    break;

      case "slut":
    Console.WriteLine("FOO!");
    break;

      default:
    Console.WriteLine("Ukendt kommando: '" + cmd + "' brug 'h' for hjaelp");
    break;
      }
    } while (cmd != "slut");
  }


  // Initialisering af globale variable
  static public void init() {

    //
    antal = 0;
    spilletid = new int[10];
    sangantal = new int[10];
    sangrating = new int[10,15];
    titel = new String[10];
    kunstner = new String[10];
    sangtitel = new String[10,15];

    // Album 1
    titel[0]    = "Smoelfesangen";
    kunstner[0]  = "Johnny Reimar";
    spilletid[0] = 42;
    sangantal[0] = 3;
    sangtitel[0,0] = "Smoelfen smoelf der smoelfer";
    sangrating[0,0] = 2;
    sangtitel[0,1] = "Highway to Smoelf";
    sangrating[0,1] = 9;
    sangtitel[0,2] = "For those about to smoelf!";
    sangrating[0,2] = 9;
    antal++;

    // Album 2
    titel[1]    = "Tju bang chokolademand";
    kunstner[1]  = "Alberte";
    spilletid[1] = 117;
    sangantal[1] = 4;
    sangtitel[1,0] = "Tju bang vingummimand";
    sangrating[1,0] = 2;
    sangtitel[1,1] = "Tju bang badeandmand";
    sangrating[1,1] = 5;
    sangtitel[1,2] = "Tju bang lakridsmand";
    sangrating[1,2] = 2;
    sangtitel[1,3] = "Tju bang vagtmestermand";
    sangrating[1,3] = 2;
    antal++;

    // Album 3
    titel[2]    = "Spidsnaeserne";
    kunstner[2]  = "Sigurd Barret";
    spilletid[2] = 370;
    sangantal[2] = 2;
    sangtitel[2,0] = "Pilfingrene i spidsnaeseland";
    sangrating[2,0] = 6;
    sangtitel[2,1] = "Spidsnaeserne i pilfingerland";
    sangrating[2,1] = 8;
    antal++;
  }

  //
  public static void udskriv_hjaelp() {
    Console.WriteLine("HJAELP\n======\n");
    Console.WriteLine("Tast 'a' for at udskrive alle albums");
    Console.WriteLine("Tast 'vis' for at udskrive album");
    Console.WriteLine("Tast 'opd' for at opdatere album");
    Console.WriteLine("Tast 'ny' for at oprette nyt album");
    Console.WriteLine("Tast 'g' for at udskrive gennemsnitsspilletid");
    Console.WriteLine("Tast 'slut' for at afslutte programmet\n\n");
  }

  //
  public static int get_album() {
    Console.Write("Albumnummer? ");
    return (int.Parse(Console.ReadLine()));
  }

  // Konverter sekunder til min, sek
  public static string minsek(int sekunder) {
    int min = (int) sekunder / 60;
    int sek = sekunder % 60;

    return (String.Format("{0}:{1,0:D2}", min, sek));
  }

  // Udskriv album 'alb'
  public static void udskriv_album(int alb, bool sange) {
    Console.WriteLine("Album " + (alb + 1) + "\n=======");
    Console.WriteLine("Titel    : " + titel[alb]);
    Console.WriteLine("Kunstner  : " + kunstner[alb]);   
    Console.WriteLine("Spilletid : {0}", minsek(spilletid[alb]));

    if(sange) {
      udskriv_sange(alb);
    }
  }

  // Udskriv sange (og rating) på album 'alb'
  public static void udskriv_sange(int alb) {
    for(int i = 0; i < sangantal[alb]; i++) {
      Console.Write("Sang {0}: {1,-30} (", i + 1, sangtitel[alb,i]);
      for(int j = 0; j < sangrating[alb,i]; j++) {
    Console.Write("*");
      }
      Console.WriteLine(")");
    }
  }

  // Beregn gennemsnitsspilletid
  public static double gns_spilletid() {
    int sum = 0;
    for(int i = 0; i < antal; i++) {
      sum += spilletid[i];
    }
    return ( (double) sum / antal );
  }

  // Opret nyt album
  public static void nyt_album() {
    opdater_album(antal);
    antal++;
  }

  // Opdater album 'alb'
  public static void opdater_album(int alb) {

    Console.Write("Indtast titel: ");
    titel[alb] = Console.ReadLine();
   
    Console.Write("Indtast kunstner: ");
    kunstner[alb] = Console.ReadLine();
   
    Console.Write("Indtast spilletid (i sekunder): ");
    spilletid[alb] = int.Parse(Console.ReadLine());
   
    Console.Write("Hvor mange sange? ");
    sangantal[alb] = int.Parse(Console.ReadLine());
   
    for(int i = 0; i < sangantal[alb]; i++) {
      Console.Write("Indtast sangtitel {0}: ", i + 1);
      sangtitel[alb,i] = Console.ReadLine();
      Console.Write("Indtast rating for sang {0}: ", i + 1);
      sangrating[alb,i] = int.Parse(Console.ReadLine());
    }
  }
}

ved ikke om det er svært, men er desperat...
Avatar billede tumel Nybegynder
20. februar 2012 - 21:22 #1
ingen svar så tager den selv
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester