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. Dener og implementer en record for sange.
2. Dener 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...