Re: Help with my source code

Discussion in 'C Programming' started by Malcolm, Aug 16, 2003.

  1. Malcolm

    Malcolm Guest

    "Jonny" <> wrote in message
    >
    > Why doesnt this work, please?
    >
    > #include <stdio.h>
    > #include <conio.h>
    >

    conio.h is non-standard. This doesn't mean that you shouldn't use it, but
    its contents are off-topic here.
    >
    > #include <stdlib.h>
    > #include <ctype.h>
    >
    > #define TRUE 1
    > #define FALSE !TRUE
    >

    This is a bad idea. Leave basic things like TRUE FALSE BOOL etc for library
    vendors or standards bodies to define. Defining TRUE yourself is pretty much
    guaranteed to collide with someone else's definition sooner or later.
    >
    > void drawborder1(char *name,float cost,char *key);
    > void draw_border2(void);
    >
    > float total = 0;
    >
    > FILE *order;
    >
    > float lo = 0;
    >

    Globals are a bad idea as well.
    >
    > void main()
    >

    It's int main(void) and returns 0 on success, EXIT_FAILURE on failure.
    >
    > {
    > int done;
    > char c;
    >
    > done=FALSE;
    > while(!done)
    > {
    > c=toupper(getch());
    > switch(c)
    > {
    > case 'A': // Pizza type 1
    > drawborder1("P1",5,"A");
    > break;
    >
    > case 'B': // Pizza type 2
    > drawborder1("P2",6,"B");
    > break;
    >
    > case 'F': // Finish order
    > draw_border2();
    > done=TRUE;
    >
    > default: // Other
    > drawborder1("Unknown",0,"Unknown");
    > break;
    > }
    > }
    > }
    >

    This code looks OK.
    >
    > void drawborder1(char *name,float cost,char *key)
    >

    The basic idea of writing a drawborder1() function is good. However it seems
    to be opening an order file as well as drawing a border, which is illogical.
    >
    > {
    > order=fopen("orders.dat","r");
    > gotoxy(1,1);
    >

    printf() is a standard libray function, whilst gotoxy() is not. Don't expect
    gotoxy() to affect printf()'s operation.
    >
    >

    printf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    > ÄÄÄÄÄÄÄÄÄÄÄ¿");
    > printf("³ JKS Shop 1.0.0
    > ³");
    >
    >

    printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    > ÄÄÄÄÄÄÄÄÄÄÄ´");
    > printf("³
    > ³");
    > printf("³ Item name:
    > ³");
    > printf("³ Item cost: o
    > ³");
    > printf("³ Item key :
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    >
    >

    printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    > ÄÄÄÄÄÄÄÄÄÄÄÙ");
    > printf("Loading . . .
    > ");
    > if(order==NULL)
    > {
    > gotoxy(1,25);
    > printf("There was a error opening the order file. Press any key to

    exit
    > . . .");
    > getch();
    > exit(0);
    >

    Should be exit(EXIT_FAILURE) since you are exiting with a fail condition.
    >
    > }
    > gotoxy(14,5);
    > printf("%s",name);
    > fprintf(order,"%i: %s\n",lo + 1,name);
    > gotoxy(15,6);
    > printf("%i",cost);
    > total = total + cost;
    > lo = lo + 1;
    > gotoxy(14,7);
    > printf("%s",key);
    > gotoxy(1,25);
    > fclose(order);
    >

    Just so that you know, fclose() can fail as well as fopen(). It is unlikely
    and doesn't really matter in an exercise, but if your data was very precious
    you would check the return value.
    >
    > printf("Key Code: ");
    > }
    >


    >
    > void draw_border2(void)
    > {
    > gotoxy(1,1);
    >
    >

    printf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    > ÄÄÄÄÄÄÄÄÄÄÄ¿");
    > printf("³ JKS Shop 1.0.0 - Please finish order
    > ³");
    >
    >

    printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    > ÄÄÄÄÄÄÄÄÄÄÄ´");
    > printf("³
    > ³");
    > printf("³ Total cost: o
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    > printf("³
    > ³");
    >
    >

    printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    > ÄÄÄÄÄÄÄÄÄÄÄÙ");
    > printf("Loading . . .
    > ");
    > gotoxy(15,5);
    > printf("%f.2f",total);
    > gotoxy(1,25);
    > printf("Opening the order file . . .");
    > order=fopen("orders.dat","r");
    > if(order==NULL)
    > {
    > gotoxy(1,25);
    > printf("There was a error opening the order file. Press any key to

    exit
    > . . .");
    > getch();
    > exit(0);
    > }
    > gotoxy(1,25);
    > printf("Writing to the order file . . .");
    > fprintf(order,"Order Complete!");
    > fclose(order);
    > gotoxy(1,25);
    > printf("Please declare the cost and press any key to exit . . .");
    > getch();
    > exit(0);
    > }
    >
    >
     
    Malcolm, Aug 16, 2003
    #1
    1. Advertising

  2. Malcolm

    Eirik Guest

    On Sat, 16 Aug 2003 17:33:01 +0100, Malcolm wrote:



    conio.h is a header file that Borland makes, I think. I haven't seen it
    anywhere else.
     
    Eirik, Aug 16, 2003
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. bill turner
    Replies:
    2
    Views:
    1,129
    bill turner
    Jul 19, 2005
  2. Manfred Schneider
    Replies:
    6
    Views:
    3,176
    Manfred Schneider
    Dec 17, 2005
  3. Author Tarun Tyagi
    Replies:
    0
    Views:
    718
    Author Tarun Tyagi
    Dec 29, 2004
  4. Jens-Oliver Murer
    Replies:
    1
    Views:
    463
    Jens-Oliver Murer
    Oct 17, 2008
  5. Jenny
    Replies:
    3
    Views:
    266
    Dag Sunde
    Dec 17, 2004
Loading...

Share This Page