#include<stdio.h> ////////////All rights reserved MOHAMMAD REZA IMAN////////////
#include<string.h>
#include<conio.h>
#include <stdlib.h>
/////////////////////////////////////////////////////////////////
void avg(float [],int);
void getname(char [][20]);
void delname(char [][20],int i);
/////////////////////////////////////////////////////////////////
void avg(float av[],int i)
{
// gets(av[i]);
scanf("%f",&av[i]);
}
/////////////////////////////////////////////////////////////////
void delavg(float av[],int i)
{
for(;i<100;i++)
{
av[i]=av[i+1];
//if(av[i]==av[i+1])
//break;
//strcpy(av[i],av[i+1]);
}
}
/////////////////////////////////////////////////////////////////
void getname(char name[][20])
{
int i,m;
for(i=0;i<100;i++)
if(strcmp(name[i],name[i+1])==0)
break;
if(i==99)
printf("list is full.please delete several name");
printf("\nenter your name:");
gets(name[i]);
}
/////////////////////////////////////////////////////////////////
void delname(char name[][20],int i)
{
for(;i<100;i++)
{
if(strcmp(name[i],name[i+1])==0)
break;
strcpy(name[i],name[i+1]);
}
}
/////////////////////////////////////////////////////////////////
void idname(long long int id[],int i)
{
do{
printf("\nplease enter correct ID number for ' %d ' ::\n",i);
scanf("%d",&id[i]);
}while(id[i]<0||id[i]>999999991);
}
/////////////////////////////////////////////////////////////////
void delid(long long int id[],int i)
{
for(;i<100;i++)
{
if(id[i]==id[i+1])
break;
id[i]=id[i+1];
}
}
/////////////////////////////////////////////////////////////////
void search(char serch[20],char name[100][20])
{
int i;
for(i=0;i<100;i++)
{
if(strcmp(name[i],name[i+1])==0)
{
printf("your name not find");
break;
}
if(strcmp(name[i],serch)==0)
{
}
break;
}
}
/////////////////////////////////////////////////////////////////
void ssort(char name[][20])
{
int i,j,m;
char sort[20][20]={0};
for(m=0;m<100;m++)
if(strcmp(name[m],name[m+1])==0)
break;
for(i=0;i<m-1;i++)
{
for(j=0;j<m-1;j++)
{
if(strcmp(name[i],name[i+1])==0)
{
printf("sort finish");
break;
}
else
//if(strcmp(name[j],name[j+1])==0)
// break;
//else
if(name[j+1][0]<=name[j][0])
{
strcpy(sort[j],name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],sort[j]);
}
}
}
}
/////////////////////////////////////////////////////////////////
void main()
{
char name[100][20]={0},serch[20]={0};
int i,m=0,z,a;
long long int id[100]={0};
float av[100]={0};
do
{
do{
printf("\n********************************\n\t\tMenu\n********************************\n\n\t\tPlease select a number and type that in under menu <<<\n\nenter '1' to add a name\nenter '2' to add id and edit\nenter '3' to add or change avrage\nenter '4' to show all name\nenter '5' to remove name\nenter '6' to search a name\nenter '7' to exit\n********************************\n");
scanf("%d",&a);
}while(a<1||a>8);
switch(a)
{
case 1:
printf("please enter your name in under menu:");
getname(name);
ssort(name);
break;
case 4:
for(i=0;;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n >>>>>>\tList is empty\t<<<<<<\n\n\t** please add name! **\n");
m=1;
break;
}
else
m=0;
if(strcmp(name[i],name[i+1])==0)
break;
if(m!=1)
printf("\n%d -%s-\t avrage:%f \t id:\t %lld \n",i,name[i],av[i],id[i]);
//puts(name[i]);
}
break;
case 5:
printf("all name is:\n ");
for(i=0;;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n >>>>>>\tList is empty\t<<<<<<\n\n\t** please add name! **\n");
m=1;
break;
}
else
m=0;
if(strcmp(name[i],name[i+1])==0)
break;
printf("\n%d -%s-\t avrage:%f \t id:\t %lld \n",i,name[i],av[i],id[i]);
}
if(m!=1)
{
z=i;
printf("please enter relevant nummber to delete:\t");
do{
printf("\nplease enter number in[0,%d]\n",z-1);
scanf("%d",&i);}while(i<0||i>z-1);
printf("\n' %s ' removed\n",name[i]);
delname(name,i);
delavg(av,i);
delid(id,i);
printf("\nresult deleting is:\n");
for(i=0;;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n >>>>>>\tList is empty\t<<<<<<\n\n\t** please add name! **\n");
m=1;
break;
}
else
m=0;
if(strcmp(name[i],name[i+1])==0)
break;
if(m!=1)
printf("\n%d -%s-\t avrage:%f \t id:\t %lld \n",i,name[i],av[i],id[i]);
}
}
break;
case 7:
printf(" \n\n >>>>> \tAll rights reserved by * \3 Mohammad Reza Iman \3 *\t<<<<<\n\n");
return 0;
case 3:
printf("all name is:\n ");
for(i=0;;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n >>>>>>\tList is empty\t<<<<<<\n\n\t** please add name! **\n");
m=1;
break;
}
else
m=0;
if(strcmp(name[i],name[i+1])==0)
break;
printf("\n%d -%s-\t avrage:%f \t id:\t %lld \n",i,name[i],av[i],id[i]);
}
if(m!=1)
{
z=i;
printf("\n>>> please enter respective number to add or change avrage:\t");
do{
printf("\nplease enter number in[0,%d]\n",z-1);
scanf("%d",&i);}while(i<0||i>z-1);
printf("\nplease enter your avrage for ' %s ':\t",name[i]);
avg(av,i);
printf("\nresult :\n");
for(i=0;;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n >>>>>>\tList is empty\t<<<<<<\n\n\t** please add name! **\n");
break;
}
if(strcmp(name[i],name[i+1])==0)
break;
printf("\n%d -%s-\t avrage:%f \t id:\t %lld \n",i,name[i],av[i],id[i]);
}
}
break;
case 2:
printf("all name is:\n ");
for(i=0;;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n >>>>>>\tList is empty\t<<<<<<\n\n\t** please add name! **\n");
m=1;
break;
}
else
m=0;
if(strcmp(name[i],name[i+1])==0)
break;
printf("\n%d -%s-\t avrage:%lf \t id:\t %lld \n",i,name[i],av[i],id[i]);
}
if(m!=1)
{
z=i;
printf("\nplease enter relevant nummber to add id:\t");
do{
printf("\nplease enter number in[0,%d]\n",z-1);
scanf("%d",&i);}while(i<0||i>z-1);
idname(id,i);
printf("your id number saved & result is:\n ");
for(i=0;;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n >>>>>>\tList is empty\t<<<<<<\n\n\t** please add name! **\n");
break;
}
if(strcmp(name[i],name[i+1])==0)
break;
// printf("\n%d -%s-\t avrage:%f\n",i,name[i],av[i]);
printf("\n\t%d -%s-\t avrage:%f \t id:\t %lld \n",i,name[i],av[i],id[i]);
}
}
break;
case 6:
for(i=0;i<100;i++)
printf("\b");
printf("\n*********************************************************************************\n");
//printf("\nplease enter your name to search:\n");
puts("please enter your name' under menu' to search:");
gets(serch);
getch;
//search(serch);
for(i=0;i<100;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n>>>> list is empty <<<<\n");
m=1;
break;
}
else
m=0;
}
if(m!=1)
{
for(i=0;i<100;i++)
{
if(strcmp(name[i],serch)==0)
{
printf("\n -%s-\t avrage:%f \t id:\t %lld \n",name[i],av[i],id[i]);
//printf("you name found");
// puts("you name found");
break;
}
if(i>98)
{
printf("your name not find.");
i=100;
break;
}
}
}
break;
case 8:
for(i=0;i<100;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n>>>> list is empty <<<<\n");
m=1;
break;
}
else
m=0;
}
if(m!=1)
ssort(name);
for(i=0;;i++)
{
if(strcmp(name[i],name[i+1])==0&&i==0)
{
printf("\n >>>>>>\tList is empty\t<<<<<<\n\n\t** please add name! **\n");
m=1;
break;
}
else
m=0;
if(strcmp(name[i],name[i+1])==0)
break;
printf("\n%d -%s-\t avrage:%f \t id:\t %lld \n",i,name[i],av[i],id[i]);
}
break;
default:
///a=-1;
printf("\n\t>>>>>>\tyour choice not correct\t<<<<<<<\n\n\t\t****** please enter enother choice ******\t\n\n");
//continue;
//goto l1;
}
}while(a!=-1);
printf("faild");
}