|
查看: 1012|回复: 20
|
visual C++的问题,高手请帮忙@@
[复制链接]
|
|
|
我要弄一个student record,student _max[5]
要可以add student record,del student record,display student record的~
add student record是没有问题,可是display就做不到,不能return value哦~
各位大大能帮忙吗@@?
#include
#include
using namespace std;
void main_loop();
void user_add_array(string &name,int &idnum,int &mark);
void user_display_array();
struct Student
{
string student_name;
string student_id;
int course_mark[4];
};
Student stdRecord[5];
int main()
{
main_loop();
return 0;
}
void menu()
{
cout<<ENDL;
cout<<"***************Menu*****************\n";
cout<<"*(a)dd student record **\n";
cout<<"*(d)display student record **\n";
cout<<"*d(e)lete Student **\n";
cout<<"*(m)enu **\n";
cout<<"*e(x)it **\n";
cout<<"***************Menu*****************\n";
}
void main_loop()
{
string stud_name;
int id_num=0,course_mark=0;
char option='m';
while (option !='x')
{
switch(option)
{
case 'a':case 'A':user_add_array(stud_name,id_num,course_mark);break;
case 'd':case 'D':user_display_array();break;
//case 'e':case 'E':user_del_array();break;
case 'm':case 'M':menu();break;
default:cout<<"Invalid option"<<ENDL;
}
cout<<ENDL;
cout<<"NExt option ==>";
cin>>option;
}
}
void user_add_array(string &name,int &idnum,int &mark)
{
int i;
Student stud;
cout<<"Input\n";
cout<<"Enter student name==> ";
cin>>stud.student_name;
cout<<"Enter student ID==> ";
cin>>stud.student_id;
cout<<"Enter 4student marks";
for(i=0;i<4;i++)
{
cin>>stud.course_mark;
}
}
void user_display_array()
{
int i;
Student stud;
cout<<"\nOutput\n";
cout<<"Student name==> "<<STUD.STUDENT_NAME<<ENDL;
cout<<"Student id==> "<<STUD.STUDENT_ID<<ENDL;
cout<<"Student mArks ";
for (i=0;i<4;i++)
{
cout<<"MArk "<<I+1< "<<STUD.COURSE_MARK[I];
}
} |
|
|
|
|
|
|
|
|
|
|
发表于 3-9-2008 03:29 PM
|
显示全部楼层
回复 1# jaychen 的帖子
#include
#include
using namespace std;
void main_loop();
void user_add_array(string &name,int &idnum,int &mark);
void user_display_array();
struct Student
{
string student_name;
string student_id;
int course_mark[4];
};
Student stdRecord[5];
int main()
{
main_loop();
return 0;
}
void menu()
{
cout<<ENDL;
cout<<"***************Menu*****************\n";
cout<<"*(a)dd student record **\n";
cout<<"*(d)display student record **\n";
cout<<"*d(e)lete Student **\n";
cout<<"*(m)enu **\n";
cout<<"*e(x)it **\n";
cout<<"***************Menu*****************\n";
}
void main_loop()
{
string stud_name;
int id_num=0,course_mark=0;
char option='m';
while (option !='x')
{
switch(option)
{
case 'a':case 'A':user_add_array(stud_name,id_num,course_mark);break;
case 'd':case 'D':user_display_array();break;
//case 'e':case 'E':user_del_array();break;
case 'm':case 'M':menu();break;
default:cout<<"Invalid option"<<ENDL;
}
cout<<ENDL;
cout<<"NExt option ==>";
cin>>option;
}
}
void user_add_array(string &name,int &idnum,int &mark)
{
int i;
Student stud;
cout<<"Input\n";
cout<<"Enter student name==> ";
cin>>stud.student_name;
cout<<"Enter student ID==> ";
cin>>stud.student_id;
cout<<"Enter 4student marks";
for(i=0;i<4;i++)
{
cin>>stud.course_mark;
}
}
void user_display_array()
{
int i;
Student stud;
cout<<"\nOutput\n";
cout<<"Student name==> "<<STUD.STUDENT_NAME<<ENDL;
cout<<"Student id==> "<<STUD.STUDENT_ID<<ENDL;
cout<<"Student mArks ";
for (i=0;i<4;i++)
{
cout<<"MArk "<<I+1< "<<STUD.COURSE_MARK[I];
}
} |
|
|
|
|
|
|
|
|
|
|
发表于 3-9-2008 03:41 PM
|
显示全部楼层
应该是酱....
#include "stdafx.h"
#include <iostream>
using namespace std;
void main_loop();
void user_add_array(string &name,int &idnum,int &mark);//红色的不需要
void user_display_array();
struct Student
{
string student_name;
string student_id;
int course_mark[4];
}; //改成 }stud;
Student stdRecord[5];
int main()
{
main_loop();
return 0;
}
void menu()
{
cout<<ENDL; //endl
cout<<"***************Menu*****************\n";
cout<<"*(a)dd student record **\n";
cout<<"*(d)display student record **\n";
cout<<"*d(e)lete Student **\n";
cout<<"*(m)enu **\n";
cout<<"*e(x)it **\n";
cout<<"***************Menu*****************\n";
}
void main_loop()
{
string stud_name; //红色的不需要
int id_num=0,course_mark=0; //红色的不要
char option='m';
while (option !='x')
{
switch(option)
{
case 'a':case 'A':user_add_array(stud_name,id_num,course_mark);break;//红色的不要
case 'd':case 'D':user_display_array();break;
//case 'e':case 'E':user_del_array();break;
case 'm':case 'M':menu();break;
default:cout<<"Invalid option"<<ENDL; //endl
}
cout<<ENDL;//endl
cout<<"NExt option ==>";
cin>>option;
}
}
void user_add_array(string &name,int &idnum,int &mark)//红色的不需要
{
int i;
Student stud;//红色的不需要
cout<<"Input\n";
cout<<"Enter student name==> ";
cin>>stud.student_name;
cout<<"Enter student ID==> ";
cin>>stud.student_id;
cout<<"Enter 4student marks";
for(i=0;i<4;i++)
{
cin>>stud.course_mark;
}
}
void user_display_array()
{
int i;
Student stud;//红色的不需要
cout<<"\nOutput\n";
cout<<"Student name==> "<<STUD.STUDENT_NAME<<ENDL; //stud.student_name<<endl;
cout<<"Student id==> "<<STUD.STUDENT_ID<<ENDL; // stud.student_id<<endl;
cout<<"Student marks\n";
for (i=0;i<4;i++)
{
cout<<"Mark "<< i+1< "<<STUD.COURSE_MARK[I];
//cout<<"Mark "<< i+1< " : "<<stud.course_mark<<"\n";
}
}
|
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 3-9-2008 05:20 PM
|
显示全部楼层
compile了有error 勒~@@
那个void function的parameter不是不能拿掉的吗@@? |
|
|
|
|
|
|
|
|
|
|
发表于 3-9-2008 07:10 PM
|
显示全部楼层
- #include <iostream>
- #include <string>
- using namespace std;
- void main_loop();
- void user_add_array();
- void user_display_array();
- struct Student
- {
- string student_name;
- string student_id;
- int course_mark[4];
- };
- Student stdRecord[5];
- int size=0; //define the array position
- int main()
- {
- main_loop();
- return 0;
- }
- void menu()
- {
- cout<<endl;
- cout<<"***************Menu*****************\n";
- cout<<"*(a)dd student record **\n";
- cout<<"*(d)display student record **\n";
- cout<<"*d(e)lete Student **\n";
- cout<<"*(m)enu **\n";
- cout<<"*e(x)it **\n";
- cout<<"***************Menu*****************\n";
- }
- void main_loop()
- {
- string stud_name;
- int id_num=0,course_mark=0;
- char option='m';
- while (option !='x')
- {
- switch(option)
- {
- case 'a':case 'A':user_add_array();break;
- case 'd':case 'D':user_display_array();break;
- case 'e':case 'E':user_del_array();break;
- case 'm':case 'M':menu();break;
- default:cout<<"Invalid option"<<endl;
- }
- cout<<endl;
- cout<<"NExt option ==>";
- cin>>option;
- }
- }
- void user_add_array()
- {
- cout<<"Input\n";
- cout<<"Enter student name==> ";
- cin>>stdRecord[size].student_name;
- cout<<"Enter student ID==> ";
- cin>>stdRecord[size].student_id;
- cout<<"Enter 4student marks";
- for (int i =0 ; i < 4 ; i++)
- cin>>stdRecord[size].course_mark[i];
- size++;
- }
- void user_display_array()
- {
- for (int i =0 ; i <=size ; i++) {
- cout<<"\nOutput\n";
- cout<<"Student name==> "<<stdRecord[size].student_name<<endl;
- cout<<"Student id==> "<<stdRecord[size].student_id<<endl;
- cout<<"Student mArks ";
- for (int j =0 ; j < 4 ; j++)
- cout<<"MArk "<<(j+1)<<" "<<stdRecord[size].course_mark[j]<<endl;
- }
- }
复制代码 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 4-9-2008 12:44 AM
|
显示全部楼层
sssky~谢谢你的reply~
你的是没有error~~
可是add_array里面的value还是没return哦~~~
是不是void的parameter没有写呢@@? |
|
|
|
|
|
|
|
|
|
|
发表于 4-9-2008 08:28 AM
|
显示全部楼层
回复 6# jaychen 的帖子
|
void的parameter是不需要的.... 因为你不需要call function from other class.... |
|
|
|
|
|
|
|
|
|
|
发表于 4-9-2008 09:24 AM
|
显示全部楼层
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
void main_loop();
void user_add_array();
void user_display_array();
int k = 0;
struct Student
{
string student_name;
string student_id;
int course_mark[4];
};
Student stud[5];
int main()
{
main_loop();
return 0;
}
void menu()
{
cout<<endl;
cout<<"***************Menu*****************\n";
cout<<"*(a)dd student record **\n";
cout<<"*(d)display student record **\n";
cout<<"*d(e)lete Student **\n";
cout<<"*(m)enu **\n";
cout<<"*e(x)it **\n";
cout<<"***************Menu*****************\n";
}
void main_loop()
{
char option='m';
while (option !='x')
{
switch(option)
{
case 'a':case 'A':user_add_array();break;
case 'd':case 'D':user_display_array();break;
//case 'e':case 'E':user_del_array();break;
case 'm':case 'M':menu();break;
default:cout<<"Invalid option"<<endl;
}
cout<<endl;
cout<<"NExt option ==>";
cin>>option;
}
}
void user_add_array()
{
int i;
cout<<"Input\n";
cout<<"Enter student name==> ";
cin >> stud[k].student_name;
cout<<"Enter student ID==> ";
cin >> stud[k].student_id;
cout<<"Enter 4 student marks(spacing)==> ";
for(i=0;i<4;i++)
{
cin >> stud[k].course_mark;
}
k++;
}
void user_display_array()
{
int i;
for (int h = 0; h<sizeof(stud)/sizeof * stud;h++)
{
cout << "\nOutput\n";
cout << "Student name==> " << stud[h].student_name << endl;
cout << "Student id==> " << stud[h].student_id << endl;
cout << "Student mArks\n";
for (i=0;i<4;i++)
{
cout << "Mark" << i+1 << " : " << stud[h].course_mark << "\n";
}
}
}
看看吧.... 我DEBUG了..没问题... |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 4-9-2008 01:46 PM
|
显示全部楼层
请问什么是#include "stdafx.h" @@?
我compile了
user add array有error哦@@
cout<<"Enter 4 student marks(spacing)==> ";
for(i=0;i<4;i++)
{
cin >> stud[k].course_mark;
}
k++;
binary >>:no operator defined which takes a right-hand operand of type int[4] |
|
|
|
|
|
|
|
|
|
|
发表于 4-9-2008 02:44 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 4-9-2008 05:31 PM
|
显示全部楼层
- struct Student
- {
- string student_name;
- string student_id;
- int course_mark[4];
- };
复制代码- cout<<"Enter 4 student marks(spacing)==> ";
- for(i=0;i<4;i++)
- {
- cin >> stud[k].course_mark;
- }
- k++;
复制代码 这里 Student::course_mark[] 是array , 而却cin >> stud[k].course_mark ( 变成char) , 当然出问题
array 转成char 当然不被允许
换成- cout<<"Enter 4 student marks(spacing)==> ";
- for(i=0;i<4;i++)
- {
- cin >> stud[k].course_mark[i];
- }
- k++;
复制代码 就可以了
[ 本帖最后由 onlylonly 于 5-9-2008 01:10 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 4-9-2008 05:38 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 4-9-2008 06:07 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 4-9-2008 10:38 PM
|
显示全部楼层
呃。。。只要是C语言,不管是C还是C++,都是case sensitive的。。。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 5-9-2008 12:56 AM
|
显示全部楼层
不好意思
我用的是Microsoft Visual C++ 6.0 |
|
|
|
|
|
|
|
|
|
|
发表于 5-9-2008 08:08 AM
|
显示全部楼层
|
做么不能用class来做吗??? 会比struc好... |
|
|
|
|
|
|
|
|
|
|
发表于 5-9-2008 01:12 PM
|
显示全部楼层
可能老师只教到struct  
如果不用return ,也可以用referrence & 。
用global variable的原因是要知道当时增加了多少位学生。
class 和struct 都还好,我认为linked list 最好用。^ ^
还有13楼的大大,要注意course_mark 是array , cin>>stud.course_mark ; |
|
|
|
|
|
|
|
|
|
|
发表于 5-9-2008 01:15 PM
|
显示全部楼层
回复 14# geekman 的帖子
就是洛, 我还以为 vc 特别的。
看到 endl 变成 ENDL 是还真的吓一跳。 还以为 vc 搞花样。
@mEIO 当然可以, 那就变成- for( int = 0; i < NUM; i++)
- stud[i].add_array;
复制代码
[ 本帖最后由 onlylonly 于 5-9-2008 01:17 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 5-9-2008 01:23 PM
|
显示全部楼层
回复 17# ss_sky87 的帖子
呵呵, 刚提醒别人, 自己又犯下同样错误。。
其实不用global variable 也是可以知道增加了多少学生。
比如- struct any
- {
- int a;
- char b;
- };
- any *i = new any [10];
复制代码 或是用vector::pushback(), resize 等。
用global variable 反而没拿么好
[ 本帖最后由 onlylonly 于 5-9-2008 01:25 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 5-9-2008 02:28 PM
|
显示全部楼层
可是那是最简易的方法呢。
而且如果老师教到vector了,他们不可能会这样做瓜。 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|