friend plz help me to solve this problem

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Aug 2006
Posts: 4
Reputation: star22 is an unknown quantity at this point 
Solved Threads: 0
star22 star22 is offline Offline
Newbie Poster

friend plz help me to solve this problem

 
0
  #1
Aug 15th, 2006
plz friend solve this code for me I dont know what is the wrong with it. it is in c++ programing language.


#include <stdio.h>
#include <string.h>
#define size 20
struct data
{
int age;
int year;
char course[6];
char name[20];

} students[20];
struct temporary //changed to struct?
{
int age;
int year;
char course[6];
char name[20];
} holder;

int main()
{
int x,limit;
int input,inputdata,showdata, sort_asc_by_age;
do
{
//clrscr(); non portable avoid if possible
puts("1..insert data");
puts("2..show data");
puts("3..show data in ascending order by age");
puts("4..show data in ascending order by year");
puts("5..show data in descending order by age");
puts("6..show data in descending order by year");
puts("9..exit");
printf("input choice:"); scanf("%d",&input);
switch(input)
{
case 1:
inputdata();
break;
case 2:
showdata();
break;
case 3:
sort_asc_by_age(); //added this case
break; //added this case

}
}while(input!=9);

getchar(); //getchar better than getch()
//getch is non-portable
return 0;
}


inputdata()
int limit,x;
printf("Size of structure to make? (1-20)\t");
scanf("%d",&limit);
if(limit<1 || limit>size)
{
printf("Input Invalid!");
}
else
{
limit=limit-1;
printf("\n\n\nAge Year Course Name\n");

for(x=0; x<=limit; x++)
{
printf("Age:");
scanf("%d",&students[x].age);
printf("Year:");
scanf("%d",&students[x].year);
printf("Course:");
scanf("%s",students[x].course); //gets = bad
printf("Name:");
scanf("%s",students[x].name); //gets = bad
//although scanf is a lesser evil
//for better a better input tutorial in c
//check out dave's tutorial
printf("\nNext entry\n");
}

}

showdata()
{
int limit;
int x;
printf("This are the items you inputted!");
printf("\nAge Year level Course Name\n");
for(x=0;x<size;x++)
{
printf("%d",students[x].age);
printf("\t%d",students[x].year);//changed to %d (it is an integer!)
printf("\t%s",students[x].course);
printf("\t%s\n",students[x].name);
}
getchar(); //getchar better than getch()
}
sort_asc_by_age()
{

int x,y;
for(x = 0; x < size; x++)
for(y = 0; y < size; y++)
if(students[y].age > students[y+1].age)
{
holder.age=students[y+1].age;
holder.year=students[y+1].year;
strcpy(holder.course,students[y+1].course); //changed string copy
strcpy(holder.name,students[y+1].name);// changed

students[y+1].age=students[y].age;
students[y+1].year=students[y].year;
strcpy(students[y+1].name,students[y].name);//changed
strcpy(students[y+1].course,students[y].course);//changed

students[y].age=holder.age;
students[y].year=holder.year;
strcpy(students[y].name,holder.name); //changed
strcpy(students[y].course,holder.course);//changed
}
for(x=0;x<size;x++)
{
printf("%d",students[x].age);
printf("\t%d",students[x].year); //%d
printf("\t%s",students[x].course);
printf("\t%s\n",students[x].name);
}
getch();
}

sort_asc_by_year()
{
int x,y;
for(x = 0; x < size; x++)
for(y = 0; y < size-1; y++)
if(students[y].year > students[y+1].age)
{
holder.age=students[y+1].age;
holder.year=students[y+1].year;
strcpy(holder.course,students[y+1].course); //changed
strcpy(holder.name,students[y+1].name);//changed

students[y+1].age=students[y].age;
students[y+1].year=students[y].year;
strcpy(students[y+1].name,students[y].name);//changed
strcpy(students[y+1].course,students[y].course);//changed

students[y].age=holder.age;
students[y].year=holder.year;
strcpy(students[y].name,holder.name); //changed
strcpy(students[y].course,holder.course);//changed

}
for(x=0;x<size;x++)
{
printf("%d",students[x].age);
printf("\t%d",students[x].year); //%d
printf("\t%s",students[x].course);
printf("\t%s\n",students[x].name);
}
getchar(); //getchar
}

sort__desc_by_age()
{

int x,y;
for(x = 0; x < size; x++)
for(y = 0; y < size; y++)
if(students[y].age < students[y+1].age)
{
holder.age=students[y+1].age;
holder.year=students[y+1].year;
strcpy(holder.course,students[y+1].course); //changed
strcpy(holder.name,students[y+1].name);//changed

students[y+1].age=students[y].age;
students[y+1].year=students[y].year;
strcpy(students[y+1].name,students[y].name);//changed
strcpy(students[y+1].course,students[y].course);//changed

students[y].age=holder.age;
students[y].year=holder.year;
strcpy(students[y].name,holder.name); //changed
strcpy(students[y].course,holder.course);//changed
}
for(x=0;x<size;x++)
{
printf("%d",students[x].age);
printf("\t%d",students[x].year); //%d
printf("\t%s",students[x].course);
printf("\t%s\n",students[x].name);
}
getch();
}
sort_desc_by_year()
{

int x,y;
for(x = 0; x < size; x++)
for(y = 0; y < size-1; y++)
if(students[y].year < students[y+1].age)
{
holder.age=students[y+1].age;
holder.year=students[y+1].year;
strcpy(holder.course,students[y+1].course); //changed
strcpy(holder.name,students[y+1].name);//changed

students[y+1].age=students[y].age;
students[y+1].year=students[y].year;
strcpy(students[y+1].name,students[y].name);//changed
strcpy(students[y+1].course,students[y].course);//changed

students[y].age=holder.age;
students[y].year=holder.year;
strcpy(students[y].name,holder.name); //changed
strcpy(students[y].course,holder.course);//changed
}
for(x=0;x<size;x++)
{
printf("%d",students[x].age);
printf("\t%d",students[x].year); //%d
printf("\t%s",students[x].course);
printf("\t%s\n",students[x].name);
}
getchar(); //getchar()
}
Reply With Quote Quick reply to this message  
Join Date: Jul 2006
Posts: 147
Reputation: Grunt has a spectacular aura about Grunt has a spectacular aura about 
Solved Threads: 12
Grunt's Avatar
Grunt Grunt is offline Offline
Junior Poster

Re: friend plz help me to solve this problem

 
0
  #2
Aug 15th, 2006
Quickly edited your code to remove errors. This code looks like C code.
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define size 20
  4.  
  5. void inputdata();
  6. void showdata();
  7. void sort_asc_by_age();
  8. void sort_desc_by_year()
  9.  
  10. struct data
  11. {
  12. int age;
  13. int year;
  14. char course[6];
  15. char name[20];
  16.  
  17. } students[20];
  18.  
  19. struct temporary //changed to struct?
  20. {
  21. int age;
  22. int year;
  23. char course[6];
  24. char name[20];
  25. } holder;
  26.  
  27. int main()
  28. {
  29.  
  30. int input;
  31. do
  32. {
  33. //clrscr(); non portable avoid if possible
  34. puts("1..insert data");
  35. puts("2..show data");
  36. puts("3..show data in ascending order by age");
  37. puts("4..show data in ascending order by year");
  38. puts("5..show data in descending order by age");
  39. puts("6..show data in descending order by year");
  40. puts("9..exit");
  41. printf("input choice:");
  42. scanf("%d",&input);
  43.  
  44. switch(input)
  45. {
  46. case 1:
  47. inputdata();
  48. break;
  49. case 2: showdata();
  50. break;
  51. case 3:sort_asc_by_age(); //added this case
  52. break; //added this case
  53.  
  54. }
  55. }while(input!=9);
  56.  
  57. getchar(); //getchar better than getch()
  58. //getch is non-portable
  59. return 0;
  60. }
  61.  
  62.  
  63. void inputdata()
  64. {
  65. int limit,x;
  66. printf("Size of structure to make? (1-20)\t");
  67. scanf("%d",&limit);
  68. if(limit<1 || limit>size)
  69. {
  70. printf("Input Invalid!");
  71. }
  72. else
  73. {
  74. limit=limit-1;
  75. printf("\n\n\nAge Year Course Name\n");
  76.  
  77. for(x=0; x<=limit; x++)
  78. {
  79. printf("Age:");
  80. scanf("%d",&students[x].age);
  81. printf("Year:");
  82. scanf("%d",&students[x].year);
  83. printf("Course:");
  84. scanf("%s",students[x].course); //gets = bad
  85. printf("Name:");
  86. scanf("%s",students[x].name); //gets = bad
  87. //although scanf is a lesser evil
  88. //for better a better input tutorial in c
  89. //check out dave's tutorial
  90. printf("\nNext entry\n");
  91. }
  92.  
  93. }
  94. }
  95.  
  96. void showdata()
  97. {
  98.  
  99. int x;
  100. printf("This are the items you inputted!");
  101. printf("\nAge Year level Course Name\n");
  102. for(x=0;x<size;x++)
  103. {
  104. printf("%d",students[x].age);
  105. printf("\t%d",students[x].year);//changed to %d (it is an integer!)
  106. printf("\t%s",students[x].course);
  107. printf("\t%s\n",students[x].name);
  108. }
  109. getchar(); //getchar better than getch()
  110. }
  111.  
  112.  
  113. void sort_asc_by_age()
  114. {
  115.  
  116. int x,y;
  117. for(x = 0; x < size; x++)
  118. for(y = 0; y < size; y++)
  119. if(students[y].age > students[y+1].age)
  120. {
  121. holder.age=students[y+1].age;
  122. holder.year=students[y+1].year;
  123. strcpy(holder.course,students[y+1].course); //changed string copy
  124. strcpy(holder.name,students[y+1].name);// changed
  125.  
  126. students[y+1].age=students[y].age;
  127. students[y+1].year=students[y].year;
  128. strcpy(students[y+1].name,students[y].name);//changed
  129. strcpy(students[y+1].course,students[y].course);//changed
  130.  
  131. students[y].age=holder.age;
  132. students[y].year=holder.year;
  133. strcpy(students[y].name,holder.name); //changed
  134. strcpy(students[y].course,holder.course);//changed
  135. }
  136. for(x=0;x<size;x++)
  137. {
  138. printf("%d",students[x].age);
  139. printf("\t%d",students[x].year); //%d
  140. printf("\t%s",students[x].course);
  141. printf("\t%s\n",students[x].name);
  142. }
  143.  
  144. }
  145.  
  146. void sort_asc_by_year()
  147. {
  148. int x,y;
  149. for(x = 0; x < size; x++)
  150. for(y = 0; y < size-1; y++)
  151. if(students[y].year > students[y+1].age)
  152. {
  153. holder.age=students[y+1].age;
  154. holder.year=students[y+1].year;
  155. strcpy(holder.course,students[y+1].course); //changed
  156. strcpy(holder.name,students[y+1].name);//changed
  157.  
  158. students[y+1].age=students[y].age;
  159. students[y+1].year=students[y].year;
  160. strcpy(students[y+1].name,students[y].name);//changed
  161. strcpy(students[y+1].course,students[y].course);//changed
  162.  
  163. students[y].age=holder.age;
  164. students[y].year=holder.year;
  165. strcpy(students[y].name,holder.name); //changed
  166. strcpy(students[y].course,holder.course);//changed
  167.  
  168. }
  169. for(x=0;x<size;x++)
  170. {
  171. printf("%d",students[x].age);
  172. printf("\t%d",students[x].year); //%d
  173. printf("\t%s",students[x].course);
  174. printf("\t%s\n",students[x].name);
  175. }
  176. getchar(); //getchar
  177.  
  178. }
  179.  
  180. void sort__desc_by_age()
  181. {
  182.  
  183. int x,y;
  184. for(x = 0; x < size; x++)
  185. for(y = 0; y < size; y++)
  186. if(students[y].age < students[y+1].age)
  187. {
  188. holder.age=students[y+1].age;
  189. holder.year=students[y+1].year;
  190. strcpy(holder.course,students[y+1].course); //changed
  191. strcpy(holder.name,students[y+1].name);//changed
  192.  
  193. students[y+1].age=students[y].age;
  194. students[y+1].year=students[y].year;
  195. strcpy(students[y+1].name,students[y].name);//changed
  196. strcpy(students[y+1].course,students[y].course);//changed
  197.  
  198. students[y].age=holder.age;
  199. students[y].year=holder.year;
  200. strcpy(students[y].name,holder.name); //changed
  201. strcpy(students[y].course,holder.course);//changed
  202. }
  203. for(x=0;x<size;x++)
  204. {
  205. printf("%d",students[x].age);
  206. printf("\t%d",students[x].year); //%d
  207. printf("\t%s",students[x].course);
  208. printf("\t%s\n",students[x].name);
  209. }
  210.  
  211. }
  212.  
  213. void sort_desc_by_year()
  214. {
  215.  
  216. int x,y;
  217. for(x = 0; x < size; x++)
  218. for(y = 0; y < size-1; y++)
  219. if(students[y].year < students[y+1].age)
  220. {
  221. holder.age=students[y+1].age;
  222. holder.year=students[y+1].year;
  223. strcpy(holder.course,students[y+1].course); //changed
  224. strcpy(holder.name,students[y+1].name);//changed
  225.  
  226. students[y+1].age=students[y].age;
  227. students[y+1].year=students[y].year;
  228. strcpy(students[y+1].name,students[y].name);//changed
  229. strcpy(students[y+1].course,students[y].course);//changed
  230.  
  231. students[y].age=holder.age;
  232. students[y].year=holder.year;
  233. strcpy(students[y].name,holder.name); //changed
  234. strcpy(students[y].course,holder.course);//changed
  235. }
  236. for(x=0;x<size;x++)
  237. {
  238. printf("%d",students[x].age);
  239. printf("\t%d",students[x].year); //%d
  240. printf("\t%s",students[x].course);
  241. printf("\t%s\n",students[x].name);
  242. }
  243. getchar(); //getchar()
  244. }
Last edited by Grunt; Aug 15th, 2006 at 10:05 am.
The key to eliminating bugs from your code is learning from your mistakes.
Reply With Quote Quick reply to this message  
Join Date: Aug 2006
Posts: 4
Reputation: star22 is an unknown quantity at this point 
Solved Threads: 0
star22 star22 is offline Offline
Newbie Poster

Re: friend plz help me to solve this problem

 
0
  #3
Aug 15th, 2006
thank u my friend but I still find to error



--------------------Configuration: zz - Win32 Debug--------------------
Compiling...
zz.cpp
c:\documents and settings\user\c++\zz.cpp(11) : error C2143: syntax error : missing ';' before '<class-head>'
c:\documents and settings\user\c++\zz.cpp(11) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
zz.exe - 2 error(s), 0 warning(s)
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 275
Reputation: andor has a spectacular aura about andor has a spectacular aura about andor has a spectacular aura about 
Solved Threads: 29
andor's Avatar
andor andor is offline Offline
Posting Whiz in Training

Re: friend plz help me to solve this problem

 
0
  #4
Aug 15th, 2006
Originally Posted by star22
thank u my friend but I still find to error



--------------------Configuration: zz - Win32 Debug--------------------
Compiling...
zz.cpp
c:\documents and settings\user\c++\zz.cpp(11) : error C2143: syntax error : missing ';' before '<class-head>'
c:\documents and settings\user\c++\zz.cpp(11) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
zz.exe - 2 error(s), 0 warning(s)
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define size 20
  4.  
  5. void inputdata(void);
  6. void showdata(void);
  7. void sort_asc_by_age(void);
  8. void sort_asc_by_year(void);
  9. void sort_desc_by_age(void);
  10. void sort_desc_by_year(void);
  11.  
  12. struct data
  13. {
  14. int age;
  15. int year;
  16. char course[6];
  17. char name[20];
  18.  
  19. } students[20];
  20. struct temporary //changed to struct?
  21. {
  22. int age;
  23. int year;
  24. char course[6];
  25. char name[20];
  26. } holder;
  27.  
  28. int main()
  29. {
  30. int x,limit;
  31. int input;
  32. do
  33. {
  34. //clrscr(); non portable avoid if possible
  35. puts("1..insert data");
  36. puts("2..show data");
  37. puts("3..show data in ascending order by age");
  38. puts("4..show data in ascending order by year");
  39. puts("5..show data in descending order by age");
  40. puts("6..show data in descending order by year");
  41. puts("9..exit");
  42. printf("input choice:"); scanf("%d",&input);
  43. switch(input)
  44. {
  45. case 1:
  46. inputdata();
  47. break;
  48. case 2:
  49. showdata();
  50. break;
  51. case 3:
  52. sort_asc_by_age(); //added this case
  53. break; //added this case
  54.  
  55. }
  56. }while(input!=9);
  57.  
  58. getchar(); //getchar better than getch()
  59. //getch is non-portable
  60. return 0;
  61. }
  62.  
  63.  
  64. void inputdata(void)
  65. {
  66. int limit,x;
  67. printf("Size of structure to make? (1-20)\t");
  68. scanf("%d",&limit);
  69. if(limit<1 || limit>size)
  70. {
  71. printf("Input Invalid!");
  72. }
  73. else
  74. {
  75. limit=limit-1;
  76. printf("\n\n\nAge Year Course Name\n");
  77. }
  78.  
  79. for(x=0; x<=limit; x++)
  80. {
  81. printf("Age:");
  82. scanf("%d",&students[x].age);
  83. printf("Year:");
  84. scanf("%d",&students[x].year);
  85. printf("Course:");
  86. scanf("%s",students[x].course); //gets = bad
  87. printf("Name:");
  88. scanf("%s",students[x].name); //gets = bad
  89. //although scanf is a lesser evil
  90. //for better a better input tutorial in c
  91. //check out dave's tutorial
  92. printf("\nNext entry\n");
  93. }
  94.  
  95. }
  96.  
  97. void showdata(void)
  98. {
  99. int limit;
  100. int x;
  101. printf("This are the items you inputted!");
  102. printf("\nAge Year level Course Name\n");
  103. for(x=0;x<size;x++)
  104. {
  105. printf("%d",students[x].age);
  106. printf("\t%d",students[x].year);//changed to %d (it is an integer!)
  107. printf("\t%s",students[x].course);
  108. printf("\t%s\n",students[x].name);
  109. }
  110. getchar(); //getchar better than getch()
  111. }
  112. void sort_asc_by_age(void)
  113. {
  114.  
  115. int x,y;
  116. for(x = 0; x < size; x++)
  117. for(y = 0; y < size; y++)
  118. if(students[y].age > students[y+1].age)
  119. {
  120. holder.age=students[y+1].age;
  121. holder.year=students[y+1].year;
  122. strcpy(holder.course,students[y+1].course); //changed string copy
  123. strcpy(holder.name,students[y+1].name);// changed
  124.  
  125. students[y+1].age=students[y].age;
  126. students[y+1].year=students[y].year;
  127. strcpy(students[y+1].name,students[y].name);//changed
  128. strcpy(students[y+1].course,students[y].course);//changed
  129.  
  130. students[y].age=holder.age;
  131. students[y].year=holder.year;
  132. strcpy(students[y].name,holder.name); //changed
  133. strcpy(students[y].course,holder.course);//changed
  134. }
  135. for(x=0;x<size;x++)
  136. {
  137. printf("%d",students[x].age);
  138. printf("\t%d",students[x].year); //%d
  139. printf("\t%s",students[x].course);
  140. printf("\t%s\n",students[x].name);
  141. }
  142. getchar(); //getchar better than getch()
  143. }
  144.  
  145. void sort_asc_by_year(void)
  146. {
  147. int x,y;
  148. for(x = 0; x < size; x++)
  149. for(y = 0; y < size-1; y++)
  150. if(students[y].year > students[y+1].age)
  151. {
  152. holder.age=students[y+1].age;
  153. holder.year=students[y+1].year;
  154. strcpy(holder.course,students[y+1].course); //changed
  155. strcpy(holder.name,students[y+1].name);//changed
  156.  
  157. students[y+1].age=students[y].age;
  158. students[y+1].year=students[y].year;
  159. strcpy(students[y+1].name,students[y].name);//changed
  160. strcpy(students[y+1].course,students[y].course);//changed
  161.  
  162. students[y].age=holder.age;
  163. students[y].year=holder.year;
  164. strcpy(students[y].name,holder.name); //changed
  165. strcpy(students[y].course,holder.course);//changed
  166.  
  167. }
  168. for(x=0;x<size;x++)
  169. {
  170. printf("%d",students[x].age);
  171. printf("\t%d",students[x].year); //%d
  172. printf("\t%s",students[x].course);
  173. printf("\t%s\n",students[x].name);
  174. }
  175. getchar(); //getchar
  176. }
  177.  
  178. void sort_desc_by_age(void)
  179. {
  180.  
  181. int x,y;
  182. for(x = 0; x < size; x++)
  183. for(y = 0; y < size; y++)
  184. if(students[y].age < students[y+1].age)
  185. {
  186. holder.age=students[y+1].age;
  187. holder.year=students[y+1].year;
  188. strcpy(holder.course,students[y+1].course); //changed
  189. strcpy(holder.name,students[y+1].name);//changed
  190.  
  191. students[y+1].age=students[y].age;
  192. students[y+1].year=students[y].year;
  193. strcpy(students[y+1].name,students[y].name);//changed
  194. strcpy(students[y+1].course,students[y].course);//changed
  195.  
  196. students[y].age=holder.age;
  197. students[y].year=holder.year;
  198. strcpy(students[y].name,holder.name); //changed
  199. strcpy(students[y].course,holder.course);//changed
  200. }
  201. for(x=0;x<size;x++)
  202. {
  203. printf("%d",students[x].age);
  204. printf("\t%d",students[x].year); //%d
  205. printf("\t%s",students[x].course);
  206. printf("\t%s\n",students[x].name);
  207. }
  208. getchar(); //getchar better than getch()
  209. }
  210. void sort_desc_by_year(void)
  211. {
  212.  
  213. int x,y;
  214. for(x = 0; x < size; x++)
  215. for(y = 0; y < size-1; y++)
  216. if(students[y].year < students[y+1].age)
  217. {
  218. holder.age=students[y+1].age;
  219. holder.year=students[y+1].year;
  220. strcpy(holder.course,students[y+1].course); //changed
  221. strcpy(holder.name,students[y+1].name);//changed
  222.  
  223. students[y+1].age=students[y].age;
  224. students[y+1].year=students[y].year;
  225. strcpy(students[y+1].name,students[y].name);//changed
  226. strcpy(students[y+1].course,students[y].course);//changed
  227.  
  228. students[y].age=holder.age;
  229. students[y].year=holder.year;
  230. strcpy(students[y].name,holder.name); //changed
  231. strcpy(students[y].course,holder.course);//changed
  232. }
  233. for(x=0;x<size;x++)
  234. {
  235. printf("%d",students[x].age);
  236. printf("\t%d",students[x].year); //%d
  237. printf("\t%s",students[x].course);
  238. printf("\t%s\n",students[x].name);
  239. }
  240. getchar(); //getchar()
  241. }
just modified to compile
Last edited by andor; Aug 15th, 2006 at 10:44 am.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC