/ C Programming Your program must present the following options: 0) Exit - Exits
ID: 3718975 • Letter: #
Question
/ C Programming
Your program must present the following options:
0) Exit - Exits the program
1) Author Info - Prints author information (ID and name, as well as the username entered for the program)
2) Enter int - Enters an integer value for storage
3) Enter doubles - Enters a double value for storage
4) Clear values - Clears entered values
5) Print values - Prints entered values
6) Sum Integers - Sums all entered integers
7) Sum doubles - Sums all entered doubles
8) Save Data - Asks the user to enter a filename, then saves stored data so that it can be loaded later
9) Load Data - Asks the user to enter a filenaname that is loaded to restore a saved state.
Consider load/save to be load game, save game states, you don't need to include username in the program state, just the numeric valeus.
If the program data can't be loaded for some reason (file not found or not enough storage space) the program should reset to an empty state for both integers and doubles.
provide.c contains the code for the project without the file operations, you can choose to edit this file as you see fit, or ignore it completely.
Your program must also keep a log of all function calls/menu options chosen, program start, and program exit.
When a log entry is made it should be made to the file ex7.log in the default working directory and include: Your name, your id, and the reason for the entry
It should also persist all log entries across multiple runs of the program (don't delete old log entries)
------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Sample Code
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
void enterInt(int *ints, int *icount)
{
printf("Enter value ");
scanf("%d", &ints[(*icount)++]);
}
int enterDouble(double *doubles, int dcount)
{
printf("Enter value ");
scanf("%lf", &doubles[dcount]);
return(dcount + 1);
}
int printProgramInfo(char *user)
{
char text[1024];
sprintf(text, "Author Name: Robert Fiske Author ID: 1234567 Username: %s ", user);
printf("%s", text);
return(strlen(text));
}
void printVals(int *ints, int icount, double *doubles, int dcount)
{
int i;
printf("Ints: ");
for (i = 0; i < icount; i++)
{
printf("%d ", ints[i]);
}
printf(" Doubles: ");
for (i = 0; i < dcount; i++)
{
printf("%lf ", doubles[i]);
}
}
int sumInts(int *ints, int icount)
{
int sum = 0;
int i;
for (i = 0; i < icount; i++)
{
sum += ints[i];
}
return(sum);
}
double sumDoubles(double *doubles, int dcount)
{
double sum = 0;
int i;
for (i = 0; i < dcount; i++)
{
sum += doubles[i];
}
return(sum);
}
void setUsername(char *str)
{
char tmp[100];
str[0] = 0;
printf("Enter your username ");
int i;
int idsum = 2;
for ( ; idsum > 0; idsum--)
{
scanf("%s", tmp);
strcat(str, tmp);
strcat(str, " ");
}
str[strlen(str) - 1] = 0;
}
int *initializeInts(int *max)
{
printf("How many integers do you want to be able to store? ");
scanf("%d", max);
return(malloc(sizeof(int)* *max));
}
double *initializeDoubles(int *max)
{
printf("How many doubles do you want to be able to store? ");
scanf("%d", max);
return(malloc(sizeof(double)* *max));
}
int main()
{
int maxint, maxdouble;
char name[512];
int sel;
int *ints;
int icount = 0, dcount = 0;
double *doubles;
setUsername(name);
ints = initializeInts(&maxint);
doubles = initializeDoubles(&maxdouble);
int len;
while(1)
{
printf(" Welcome %s 0) Exit 1) Author Info 2) Enter int 3) Enter doubles 4) Clear values 5) Print values 6) Sum Integers 7) Sum doubles ", name);
scanf("%d", &sel);
if (sel == 0)
{
break;
}
else if (sel == 1)
{
len = printProgramInfo(name);
printf("Info data: %d ", len);
}
else if (sel == 2)
{
if (icount == maxint)
{
printf("Already at max values, clear values to continue ");
continue;
}
enterInt(ints, &icount);
}
else if (sel == 3)
{
if (dcount == maxdouble)
{
printf("Already at max values, clear values to continue ");
continue;
}
dcount = enterDouble(doubles,dcount);
}
else if (sel == 4)
{
icount = dcount = 0;
}
else if (sel == 5)
{
printVals(ints,icount,doubles,dcount);
}
else if (sel == 6)
{
printf("Sum of ints: %d ", sumInts(ints, icount));
}
else if (sel == 7)
{
printf("Sum of doubles: %lf ", sumDoubles(doubles, dcount));
}
else
{
printf("Invalid Selection ");
}
}
return(0);
}
Explanation / Answer
Please find my implementation.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int option;
double *d,data;
int *intv,value,i=0,j=0,k=0,int_count=0,double_count=0;
int m,n,int_sum=0;
double double_sum=0;
char inputfile_Name[100];
char outputfile_Name[100];
char line[20][50];
char log[500];
FILE *inputfile, *outputfile,*log_entry;
intv = (int*) malloc(100 * sizeof(int));
d = (double*) malloc(100 * sizeof(double));
log_entry=fopen("ex7.log","w");
while(1)
{
printf(" 0). Exit - Exits the program");
printf(" 1). Author Info ");
printf(" 2). Enter int value");
printf(" 3). Enter doubles ");
printf(" 4). Clear values ");
printf(" 5). Print values ");
printf(" 6). Sum Integers");
printf(" 7). Sum doubles ");
printf(" 8). Save Data ");
printf(" 9). Load Data ");
printf(" Select any option: ");
scanf("%d",&option);
switch(option)
{
case 1:
printf(" --------------------------------");
printf(" AuthorName Author_id UserName ");
printf("--------------------------------- ");
printf("Chegg 123 Subhani");
break;
case 2:
printf(" Please Enter the integer value: ");
scanf("%d",&value);
*(intv+i)=value;
i++;
int_count++;
break;
case 3:
printf(" Please Enter the Double value: ");
scanf("%d",&data);
*(d+j)=data;
j++;
double_count++;
break;
case 4:
free(d);
free(intv);
printf(" Clear all the Values Successfully");
break;
case 5:
printf(" Integer Numbers are:");
for(m=0;m<int_count;m++)
{
printf("%5d",intv[m]);
}
printf(" Double Numbers are:");
for(n=0;n<double_count;n++)
{
printf("%5d",d[n]);
}
break;
case 6:
for(m=0;m<int_count;m++)
{
int_sum=int_sum+intv[m];
}
printf(" The Sum of Integer Numbers is :%d ",int_sum);
break;
case 7:
for(n=0;n<double_count;n++)
{
double_sum=double_sum+d[n];
}
printf(" The Sum of Double Numbers is :%d ",double_sum);
break;
case 8:
printf(" Please Enter the filename to Save the Data: ");
scanf("%s",inputfile_Name);
inputfile= fopen(inputfile_Name,"w");
fprintf(inputfile,"%s","Integer Values");
for(k=0;k<int_count;k++)
{
fprintf(inputfile,"%5d",intv[k]);
}
fprintf(inputfile," %s","Double Values");
for(k=0;k<double_count;k++)
{
fprintf(inputfile,"%5d",d[k]);
}
printf(" Save Data to the File Successfully");
fclose(inputfile);
break;
case 9:
printf(" Please Enter FileName to Load the Data: ");
scanf("%s",outputfile_Name);
outputfile= fopen(outputfile_Name,"r");
printf("The Content From File is: ");
while(fgets(line[k],sizeof(line), outputfile)!=NULL)
{
printf("%s ",line[k]);
line[k][strlen(line[k])-1]='';
k++;
}
fclose(outputfile);
break;
case 0:
exit(0);
default:
printf(" Wrong Choice");
}
fclose(log_entry);
}
}
Sample Output:-
----------------------------
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 2
Please Enter the integer value: 34
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 2
Please Enter the integer value: 18
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 3
Please Enter the Double value: 90
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 2
Please Enter the integer value: 77
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 5
Integer Numbers are: 34 18 77
Double Numbers are: 90
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 3
Please Enter the Double value: 44
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 3
Please Enter the Double value: 56
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 2
Please Enter the integer value: 100
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 5
Integer Numbers are: 34 18 77 100
Double Numbers are: 90 44 56
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 6
The Sum of Integer Numbers is :229
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 7
The Sum of Double Numbers is :190
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 8
Please Enter the filename to Save the Data: input1.txt
Save Data to the File Successfully
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 9
Please Enter FileName to Load the Data: input1.txt
The Content From File is:
Integer Values 34 18 77 100
Double Values 90 44 56
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 4
Clear all the Values Successfully
0). Exit - Exits the program
1). Author Info
2). Enter int value
3). Enter doubles
4). Clear values
5). Print values
6). Sum Integers
7). Sum doubles
8). Save Data
9). Load Data
Select any option: 0
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.