rendered paste bodyInsändningsuppgift 2 – Programmering A (DTR1207)
I den här uppgiften ska du skapa ett program i C++ utifrån en beskrivning. Deadline för redovisningen av uppgiften hittar du i veckoplaneringen.
Observera! Den här uppgiften är obligatorisk och måste redovisas för att du ska få betyg i Programmering A.
Om du har funderingar kring uppgiften, tveka inte att höra av dig till din lärare.
Krav på redovisning
• Redovisa programmet genom att skicka in källkodsfilen via e-post.
• Programmet ska vara försett med utförliga kommentarer som förklarar de olika delarna i programmet.
• Programmet ska vara utan stilfel, dvs. med korrekta indrag och radbrytningar.
• Programmet får utökas med annan funktionalitet, utöver det som anges i beskrivningen, så länge detta inte strider mot den grundläggande beskrivningen, och uppfyller kraven.
• Uppgiften är individuell.
• Tillsammans med källkoden ska du skicka in en liten Projekt-rapport där du beskriver hur du gick till väga för att skapa programmet. Vilka avvägningar du gjort i programupplägget och motiveringar till dessa. Du kan också ge exempel på eventuella förbättringar. Rapporten bör fylla ungefär en A4 skrivet i till exempel Word eller WordPad. (Ett tips är att du skriver rapporten kontinuerligt under arbetet med uppgiften)
Blockfixarna
Företaget Blockfixarna AB tillverkar och säljer solida, sten- och träblock i olika storlekar.
Många kunder ringer och har frågor kring pris och vikt innan de beställer ett block. Detta har tidigare varit tidskrävande då de anställda endast haft tillgång till en enkel miniräknare för att göra de beräkningar som krävts
Därför vill Blockfixarna ha ett datorprogram som på ett enkelt sätt kan beräkna vikt, pris och volym utifrån angivna parametrar (höjd, bredd, längd och material). På så sätt kan Blockfixarna på nolltid meddela kunden hur mycket blocket kommer att kosta och väga. Volyminformationen behöver Blockfixarna själva, så att de vet om de har tillräckligt med råmaterial i lager för att tillverka blocket.
Blocken tillverkas i tre olika material: Marmor, sten och trä. Materialen skiljer sig till pris och vikt enligt följande:
Material Vikt (kg / dm3) Pris (kr / dm3)
Marmor 2,7 20
Sten 2,6 15
Trä 0,6 7
Programmets beräkningar ska baseras på fyra användarinmatningar: Höjd, bredd, längd och material. Sedan beräknas volym, vikt och pris och detta skrivs ut på ett översiktligt sätt.
Beskrivning
Ditt uppdrag blir att skapa ett program utifrån Blockfixarnas krav. Programmet ska fungera så här. (På nästa sida visas en skärmbild på hur programmet kan se ut vid körning.)
• En rubrik skrivs ut.
Specialtecknet ® ska vara med.
Blockkalkylatorn ®
• Inmatning av mått.
Ledtext berättar vad som ska matas in och användaren anger höjd i decimeter.
Ange höjd(dm): 4
• Ledtext berättar vad som ska matas in och användaren anger längd i decimeter. Ange längd(dm): 5
• Ledtext berättar vad som ska matas in och användaren anger bredd i decimeter. Ange bredd(dm): 5
• Val av material.
Ledtext skrivs ut som visar vilka material som finns att tillgå. Programmet väntar på en inmatning av användaren. Användaren anger sitt val. (1)Marmor
(2)Sten
(3)Trä
Ange nummer: 2
• Programmet beräknar och skriver ut resultatet i en översiktlig tabell. Måttangivelsen ”dm3” ska skrivas ut korrekt med upphöjd 3:a. Material Volym(dm3) Vikt(kg) Pris(kr)
-------- --------- -------- --------
Trä 100 260 1500
• Avslutningstext skrivs ut med copyrightinformation och skaparens namn. Tecknet © ska vara med. Blockfixarna AB © 2005
Skapat av Ulf Andersson
Exempel
Nedan visas ett exempel på hur Blockkalkylatorn kan se ut. Här beräknas ett stenblock med måtten; 4 dm hög, 5 dm lång och 5 dm bred.
Vägledning
Blockets volym räknar man ut genom att ta bredd*längd*höjd.
När du fått fram volymen är det enkelt att räkna ut pris och vikt.
Ex. Marmorblock
blockvikt = volym * marmorvikt
blockpris = volym * marmorpris
Då programmet ska generera olika utskrifter beroende på vilket material som efterfrågas måste en selektion göras. Väljer användaren ex. marmor ska dess vikt (2,7 kg/dm3) och pris (20 kr/dm3) användas. Detta gör man med hjälp av IF-satsen.
Försök att få utskriften så snygg och stilren som möjligt med hjälp av radbrytningar, tabbar etc.
”Specialtecknen” ligger på följande platser i teckentabellen
(i kommandotolken i den svenska versionen av Windows.)
Tecken Plats i ASCII-tabellen
® 169
© 184
³ 252
LYCKA TILL!
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CODE
-------------
#include <iostream>
#include <conio.h> //getch() funktionen kräver detta!
using namespace std;
int main()
{
cout << "\n************************************\n";
cout << "\n* Blockkalkylatorn *\n";
cout << "\n************************************\n";
cout << "\n INMATNING AV BLOCKETS DIMENSIONER\n";
int heltal1, heltal2, heltal3;
cout << "\nAnge h\x94jd(dm):"; //Det första måttet du skriver in
cin >> heltal1;
cout << "\nAnge l\x84ngd(dm):"; //Det andra måttet du skriver in
cin >> heltal2;
cout << "\nAnge bredd(dm):"; //Det tredje måttet du skriver in
cin >> heltal3;
cout << "\nVAL AV MATERIAL\n";
cout << "\n<1> Marmor\n";
cout << "<2> Sten\n";
cout << "<3> Tr\x84\n";
cout << "Ange nummer:";
int heltal4;
heltal4 = getch();
cin >> heltal4;
switch (heltal4)
{
case '1':
cout << "Marmor";
break;
case '2':
cout << "Sten";
break;
case '3':
cout << "Tr\x84";
break;
default:
cout << "Du har inte valt n\x86gon siffra!";
}
cout << '\n\n\n\n';
cout << "\nMaterial Volym(dm) Vikt(kg) Pris(kr)\n";
cout << "-------- --------- -------- ---------";
cout << "\n\n";
return 0;
}