Tags:
c++
Hej alle
Jeg har fået til opgave at lave et, rent ud sagt, sindsygt program?
Jeg skal lave et program (hvor hovedfilen skal kaldes for ”visdata.c”) til at plotte et to-dimentionelt koordinat system på skærmen ved hjælp af ascii tegn. Programmet skal demonstreres til at kunne vise nedenstående output, hvor der (som eksempler) er tal værdier (x0,y0)= (5,10), (x1,y1) = (10,10), (x3,x4)=(15,20), etc. Koordiantsættene skal aflæses og bruges som data for programmet:
(man kan åbenbart ikke sætte koordinatsystemet ind på denne side, så hvis i ønsker at se koordinatsystemet skal i bare angive mail, så sender jeg den til jer.)
Der er følgende funktionelle krav til funktionerne i header filen:
a) Programmet skal kunne vise en string til hver af titlerne på de to akser. Ovenfor er der f.eks. brugt ”Temp (C)” til y-aksen.
b) Det skal kunne modtage en minimum værdi og en maksimum værdi for både x- og y-akserne. Ovenfor er der f.eks. brugt 0.0 og 100.0 til x-aksen.
c) Programmet skal selv kunne udregne og skrive intervalværdierne på akserne.
d) I programmet skal bruges følgende ting: const, extern, pointere, funktioner, headerfiler, #define, #ifndef, makefil, structs, switch, enumeration, typedef, den tertiere operator ”? :” og multidimensionelle arrays.
e) Der må ikke laves hardcoding i programmet. Mest muligt skal laves med ”#define”.
f) Programmet skal organiseres fornuftigt med header filer til forskellige formål, samt fornuftige funktioner til de ting programmet skal gøre.
Jeg synes altid det er lidt svært at komme igang med en opgave, og især når det er så svær en opagve. Jeg har startet med at lave et mini-program der indikerer hvordan man læser fra en fil og i dette tilfælde er det så kun de to første koordinatsæt:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define FILE_NAME "testdata.txt"
int main(void)
{
// Pointer til filen
FILE *fp;
// Variable til en tid og temperatur
double dv, dv1;
// Viser det aktuelle bibliotek hvor programmet ser efter koordinatsættene
printf("%s\n", getcwd(NULL, 0));
fp = fopen(FILE_NAME, "r");
if(fp == NULL)
{
printf("koordinatsættene.");
exit(EXIT_FAILURE);
}
fscanf(fp, "%lf %lf", &dv, &dv1);
printf("%.3lf %lf", dv, dv1);
fclose(fp);
return EXIT_SUCCESS;
}
Men nu er jeg gået i stå.. jeg aner ikke hvor jeg skal begynde.
85 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
0
Har du lov til at bruge en funktion der kan flytte rundt på kursoren på skærmen, hvilken?
Er det gcc i bruger? Er det til windows? Skal det være ren C?
0
Nej jeg har ikke lov til at bruge en funktion der kan flytte rundt på kursoren på skærmen.
Og det er Wascana -Eclipse..Ren C programmering.
0
At det er Eclipse er nok ikke så vigtigt i denne sammenhæng, det vigtigste er hvilken compiler.
Hvis ikke du må flytte rundt på cursoren er der sådan set ikke andet at gøre, end skrive koordinatsystemet ud, fra øverst til venstre til nederst til højre, et tegn af gangen.
Start med at tegne akserne, sæt tekst på, punkterne osv. indtil det hele er tegnet.
0
Okay skal jeg gøre det vha. printf sætninger, som man jo normalt plejer??
0
Du kan godt bruge printf som du plejer, du kan også bruge putchar.
0
Jeg undrer mig bare over hvordan man bruge så mange Printf sætninger. Eller kan man bare tegne koordinatsystemet i en printf sætning??
0
Du kommer til at have MANGE printf sætninger...
0
Er det enklere at bruge putchar??
0
Det er nok lidt lettere og også en anelse hurtigere.
0
Er det så på følgende måde:
Jeg er nemlig lidt i tvivl om hvordan man stiller selve koordinat aksen op:
Det må vel være noget i følgende retning:
#include <stdio.h>
int main ()
{
char c;
for (?? = '->' ; c <= '??' ; c++) {
putchar (c);
}
return 0;
}