ABA


"בעיה בתוכנית בסי..."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #8084 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 8084
Hell-Boy

דרג אמינות חבר זה
   21:05   11.03.04   
אל הפורום  
  בעיה בתוכנית בסי...  
 
   ערכתי לאחרונה בתאריך 11.03.04 בשעה 21:06 בברכה, Hell-Boy
 
אהלן...
בניתי תוכנית שמנהל תשלומים..
אל תשאלו למה
טוב נו אם אתם מתעקשים - כי התערבתי עם כמה חברים בסנוקר והם חייבים לי כסף, אז אני לא סומך על הזיכרון שלי שיזכור כמה כל אחד חייב, ובידיוק גם רציתי לכתוב איזו תוכנית, אז אמרתי נכתוב אחת

קיצר זה הקוד:


/* The program gets details about payment and manage them */


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <alloc.h>

typedef struct
{
char name;
int pay;
} details;


/* Reading details */

details ReadPay()
{
details st;
printf("\nReading pay:\n\n");
printf("Name: ");
flushall();
gets(st.name);
printf("Pay: ");
scanf("%d", &st.pay);

return st;
}


/* Print all details about paying */

void PrintDetails(details s)
{
printf("name: %s", s.name);
printf("pay: %d", s.pay);
}


/* Add details of one pay */

details *AddPay(details *arr, int *cptr)
{
(*cptr)++;
arr = (details*)realloc(arr, sizeof(details)*(*cptr));
if (arr=NULL)
{
printf("Failed to allocate memory...\n");
exit(1);
}
arr = ReadPay();
return arr;
}


/* Delete details of one pay */

void DelPay(details *arr, int *cptr)
{
int num;
(*cptr)--;
if (*cptr<0)
{
printf("\nNo details to delete...");
getch();
return;
}
printf("\nEnter Pay number to delete(0-%d):", *cptr);
scanf("%d", &num);
if (num<0 || num>=*cptr)
{
printf("Wrong value...\n");
return;
}
arr = arr;
}


/* Printing the details of paying */

void ShowList(details *arr, int counter)
{
int i;
if (counter<=0)
printf("\nNo details to show...");
for (i=0 ; i<counter ; i++)
PrintDetails(arr);
getch();
}


/* Printing menu */

void PrintMenu()
{
clrscr();
printf("The pay program menu: \n\n");
printf("a. Add new payment\n");
printf("d. Delete a payment\n");
printf("s. Show all pay\n");
printf("e. Exit\n");
}


void main()
{
details *var = NULL;
int counter=0;
char option;

do
{
PrintMenu();

option = getch();

switch (option)
{
case 'a': var = AddPay(var, &counter);
break;
case 'd': DelPay(var, &counter);
break;
case 's': ShowList(var, counter);
break;
case 'e': printf("GoodBye...\n");
break;
default : printf("Wrong Key...");
}
} while (option != 'e');

if (var != NULL)
free(var);
}

אחלה קוד לא?
עכשיו התוכנית רצה והבעיה היא:
כשאני לוחץ s כדי להראות את כל הרשימה אז זה מראה לי הרבה חרטה ולא מפסיק וגם עושה צלילים במחשב =\
היה איזה קטע לפני זה שזה לא קרה..

מישהו יודע מה הבעיה?


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net