944,045 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 1158
  • C++ RSS
Aug 15th, 2006
0

friend plz help me to solve this problem

Expand Post »
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()
}
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
star22 is offline Offline
4 posts
since Aug 2006
Aug 15th, 2006
0

Re: friend plz help me to solve this problem

Quickly edited your code to remove errors. This code looks like C code.
C++ Syntax (Toggle Plain Text)
  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.
Reputation Points: 197
Solved Threads: 12
Junior Poster
Grunt is offline Offline
147 posts
since Jul 2006
Aug 15th, 2006
0

Re: friend plz help me to solve this problem

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)
Reputation Points: 10
Solved Threads: 0
Newbie Poster
star22 is offline Offline
4 posts
since Aug 2006
Aug 15th, 2006
0

Re: friend plz help me to solve this problem

Quote 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)
C++ Syntax (Toggle Plain Text)
  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.
Reputation Points: 251
Solved Threads: 29
Posting Whiz in Training
andor is offline Offline
274 posts
since Jun 2005

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: Drawing a circle in Borland C++ builder (was: Help Me!!!!!)
Next Thread in C++ Forum Timeline: in C++ segmenatation fault





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC