DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C (http://www.daniweb.com/forums/forum118.html)
-   -   file and multidimensional array (http://www.daniweb.com/forums/thread85500.html)

kgbalaji1980 Aug 6th, 2007 6:45 am
file and multidimensional array
 
1 Attachment(s)
Hi,

I need help for this C Program very urgent. please find the attachment below

Salem Aug 6th, 2007 6:50 am
Re: file and multidimensional array
 
> I need help for this C Program very urgent
http://www.catb.org/~esr/faqs/smart-...ns.html#urgent
Urgency is your problem, not mine.

> please find the attachment below
http://www.catb.org/~esr/faqs/smart-...s.html#formats
I'm not interested in even risking downloading a non-portable file format which is prone to all sorts of virus infections.

Ancient Dragon Aug 6th, 2007 8:26 am
Re: file and multidimensional array
 
>>I'm not interested in even risking downloading a non-portable file format which is prone to all sorts of virus infections

Absolutely agree with that -- *.doc files have been known to contains viruses, worms and other kinds of animals. Kg: save your program as *.c and either post it or attach it if its too big to post.

Aia Aug 6th, 2007 6:27 pm
Re: file and multidimensional array
 
Quote:

Originally Posted by kgbalaji1980 (Post 415291)
Hi,

I need help for this C Program very urgent. please find the attachment below

Post what the program is suppose to do, and what is not doing correctly. Post any error messages you are getting at compile time, in essence tell us what's the problem that you are having with it.

And then, maybe we could help.

ashishtrivedi Aug 8th, 2007 4:24 pm
Re: file and multidimensional array
 
Hi There,
Here you go. Please find your requsted program below.
/******************************************************************************\
 * QUESTION #2                                                                *
 * Create a program that will keep track of 5 students and their grades.      *
 * The grades will be kept in an array of up to 10 grades.                    *
 * To do this, you will need to create a multi-dimensional array of grades    *
 * where each column (or row) is assigned to each student.                    *
\******************************************************************************/



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

float grade[5][10];
char *StudentNames[5]= {0};
int totalStudent=0;

int AddStudentName(void);
int EnterGrades(void);
int DisplayData(void);

int main(int argc, char* argv[])
{
    int i=0,j=0;
    for(i=0;i<5;i++)
        for(j=0;j<10;j++)
            grade[i][j] = -1;

   
    while(1)
    {
        char choice;
        printf("\n\n\n\n");
        printf("\n/**********************************************************\\");
        printf("\n * Chioce          Function                              *");
        printf("\n  ********************************************************* ");
        printf("\n *    1            Add student name.                      *");
        printf("\n *    2            Enter Grades.                          *");
        printf("\n *    3            Display student-grade data.            *");
        printf("\n *  Any othey key  Exit program.                          *");
        printf("\n\\**********************************************************/");
        printf("\nEnter Chioce:..");
        choice=getche();
        switch(choice)
        {
        case '1':
            AddStudentName();
            break;
        case '2':
            EnterGrades();
            break;
        case '3':
            DisplayData();
            break;
        default:
            return 0;
        }

    }


    return 0;
} //end main

int AddStudentName(void)
{
    if(totalStudent < 5)
    {
        char sName[50]={0};
        totalStudent++;
        printf("\nEnter Student %d name(default-Student%d) : ",totalStudent,totalStudent);
        flushall();
        gets(sName);
        if(strlen(sName)==0)
            sprintf(sName,"Student%d",totalStudent);

        StudentNames[totalStudent-1] = (char *)calloc(strlen(sName)+1,sizeof(char));
        strncpy(StudentNames[totalStudent-1],sName,strlen(sName));

    }
    else
    {
        printf("\n **** Maximum 5 student can be entered.  Press any key to continue.");
        getch();
    }
    return 0;
}
int EnterGrades(void)
{
    if(totalStudent != 0)
    {
        int studentNo=0, j=0;
        int choice;
        printf("\nChoice - Student Name");
        for(;studentNo<totalStudent;studentNo++)
            printf("\n%4d - %s",studentNo+1,StudentNames[studentNo]);

        printf("\n\nSelect student for whom you want to enter grade. Enter chioce...");
        choice = getche();
        studentNo = choice-1-'0';

        while(j<10 && grade[studentNo][j]!=-1) j++;

        if(j==10)
            printf("\n10 grades already entered for the selected student. No more grade can be entered.");
        else
        {
            printf("\n Enter Grade : ");
            scanf("%f",&grade[studentNo][j]);
        }
    }
    else
    {
        printf("\nPlease Enter student Names first. Press any key to continue.");
        getch();
    }

    return 0;
}
int DisplayData(void)
{
    if(totalStudent != 0)
    {
        int i=0,j=0;
        for(i=0;i<totalStudent;i++)
        {
            if(StudentNames[i]!=0)
                printf("\n Student Name : %s",StudentNames[i]);

            for(j=0;j<10;j++)
            {
                if(grade[i][j]!=-1)
                    printf("\n\t\t - Grade %d = %d", j+1, grade[i][j]);
                else if(j==0)
                {
                    printf("\n\t** No Grade entered for the student..\n");
                    break;
                }
                else
                {
                    printf("\n");
                    break;
                }

            }
        }
        printf("\n == End of data.. == \n");
    }
    else
    {
        printf("\n======== No data to Display. ========= Press any key to continue.");
        getch();
    }
    getch();
    return 0;
}

Aia Aug 9th, 2007 12:53 am
Re: file and multidimensional array
 
gets(sName);

Definitely a show stopper. Do yourself a favor and don't
use gets() anymore. Forget that it exists. Here's why.

#include <conio.h>

flushall();
getch();

These are not C standards. Best to not use them, specially
to help other people.

Ancient Dragon Aug 9th, 2007 1:00 am
Re: file and multidimensional array
 
>>These are not C standards
you are right -- getch() is non-standard, but flushall() is. Its declared in stdio.h.


All times are GMT -4. The time now is 11:52 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC