Encountering several problems, you will constantly see me on here begging for help. Im very very new to C
. Doing a program with about 5 functions for a school based assessment.
The program is coupled with a problem definition for problems encountered in an imaginary business. There are five functions so far.
Function 1: MembershipInfo
stores membership information for the company (which is like a club with a subscription/membership system)
Function 2: SelectService
is supposed to display and prompt the user to choose various services that can be offered to them. It uses a struct and and an array and various ifs. The if statement does not run, or doesn't show up on the console after being built successfully.
Function 3: payment'
calculates the full cost a member is to pay based on his/her membership type. The calculation outputs 0.0000
.
Function 4: is like function 1
but caters for a customer who wishes to uses some of the services on an hourly rate without becoming a member. The calculations on this output 0.0000
as well.
Function 5: MemberExp
is supposed to keep track of the date in which a member's membership expires and alert the user. I suppose I would have to somehow collect group the date from each member in function 1 at the time of there registration and compare it with the date when their membership expires. I have an float variable known as pay-plan used to calculate the full cost. It is the amount of months one wishes to be a member for.
I am using Xcode
on El Capitan
.
My Code
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
struct MembershipInfo{
float regfee;
int set;
float payplan;
char cust_fname[20];
char cust_lname[20];
char memtype[20];
char date[20];
};
/*Functions */
void MembershipInfo();
void Payment();
void SelectService();
void MemberExp();
void Accomodation();
int q;
int x=0;
int set;
float memcost;
float Fullcost;
char selection[20];
/*MAIN FUNCTION */
int main()
{
char decision[20];
printf("Are you registering a member or is it accomodation?, type in lowercase \n");
scanf( "%s" , decision);
if ( strcmp (decision, "member") ==0)
{
MembershipInfo();
}
else {
( strcmp(decision, "accomodation") ==0);
Accomodation();
}
MemberExp();
}
/* Function used to store membership information */
void MembershipInfo()
{
struct MembershipInfo member[x];
printf("Press 1 to continue or any other character to cancel \n ");
scanf( "%d", &set);
if (set==1) {
while (set==1) {
x++ ;
printf( "Please enter the first name of member\n");
scanf( "%s", member[x].cust_fname);
printf( "Please enter the last name of member\n");
scanf( "%s", member[x].cust_lname);
printf( "Please enter Membership type:\n Silver\n Gold\n Platinum\n");
scanf( "%s", member[x].memtype);
SelectService();
printf("Please enter payment plan\n"); /* An integer value from 1 to 12 which determines how much months are being paid for */
scanf( "%f", &member[x].payplan);
Payment();
printf("Do you have another member to register? Type 1 to continue or any number to End\n");
scanf( "%d", &set);
}
main();
}
main();
}
/* Function used to calculate the amount to be paid by each member */
void Payment()
{
struct MembershipInfo member[x];
if (strcmp(member[x].memtype, "Silver") ==0) {
memcost = 100;
if (strcmp(member[x].memtype, "Gold") ==0) {
memcost = 180;
if (strcmp(member[x].memtype, "Platinum") ==0) {
memcost = 300;
}
}
}
Fullcost = memcost * member[x].payplan ;
printf(" The Full cost is %f \n", Fullcost);
}
/* Function to Select Services for Members */
void SelectService()
{
struct MembershipInfo member[x];
if (strcmp(member[x].memtype, "Silver") ==0) {
printf("Check");
}
}
/*Function to determine Membership Expiration*/
void MemberExp()
{
}
void Accomodation()
{
struct Accomodationinfo{
char ac_fname[20];
char ac_lname[20];
int hours;
char date[30];
char selection[20];
int Fullcost; //Full Cost is an integer and not a float because hours will be rounded off and therefore customer will pay a rounded off value
};
struct Accomodationinfo customer[x];
printf("Press 1 to continue or any other number to cancel \n");
scanf( "%d" , &set);
if (set==1) {
while (set==1){
x++;
printf("Please enter customer's first name \n");
scanf( "%s", customer[x].ac_fname);
printf("Please enter customer's last name \n");
scanf( "%s" , customer[x].ac_lname);
printf("You have either the Gym, Sports Centres, or Music Studio available\n");
scanf( "%s" , customer[x].selection);
printf("How many hours?\n");
scanf( "%d", &customer[x].hours);
customer[x].Fullcost = customer[x].hours * 8;
printf("The full cost is %f per hour \n" , Fullcost );
getchar();
printf( "%s %s will have access to %s for %d hours \n", customer[x].ac_fname, customer[x].ac_lname , customer[x].selection, &customer[x].hours );
getchar();
printf("Do you have another customer for accomodation? Press 1 to continue or any other number to return to main \n ");
scanf( "%d" , &set);
}
main();
}
main();
}
void SelectService()
{
if (strcmp(Members[x].memtype, "Silver") ==0)
{
printf( "You have available any three of the following(Notice the casino is not available):\n");
printf( "Swimming Pools \n Spas \n Bars \n Arcade\n Sports Centres\n Resource Room\n Theatre\n Gym\n Food Courts\n Music Studio\n");
for (q=0; q<4; q=q+1) {
printf( "Please enter selection\n");
scanf( "%s" , selection[q]);
printf( "Your chosen selections are %s , %s and %s\n" , selection[1], selection[2], selection[3]);
}
if (strcmp(Members[x].memtype, "Gold") ==0) {
printf( "You have available any five of the following\n");
printf( "Casino \n Swimming Pools \n Spas \n Bars \n Arcade\n Sports Centres\n Resource Room\n Theatre\n Gym\n Food Courts\n Music Studio\n");
for (q=0; q<6; q=q+1) {
printf( "Please enter selection\n");
scanf( "%s" , &selection[q]);
}
if (strcmp(Members[x].memtype, "Platinum") ==0) {
printf( "You have all services available");
}
}
}
}
EDIT: The program keeps skipping over the function SelectService idk
. Idk
how to make this clearer. Try running it in your own compilers and access the problem?