上个星期N倒霉呀(也不能这么说啦),被老师检查程序,看过我写的程序老师N失望,我也觉得N丢脸,可是我实在是搞不定这个程序,请大家帮帮忙。
程序的题目是这样的: 做一个学生管理系统,最少可以管里10个学生
功能有:可以输入学生的信息,可以增加学生,可以查询学生信息,可以改学生名字
要求:要自己建立一个学生类,要有构造函数和析构函数,要用到数组
这是我写的程序:我的问题是:1、增加学生的函数add()不知道如何实现 2、输如学生信息的函数input()实现错误
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
#define N 4
class student
{
public:
string name;
long ID;
student(){name="unknown";ID=0;setage(0);setsex("unknown");setmajor("unknown");}
student(const string& n){name=n;ID=0;setage(0);setsex("unknown");setmajor("unknown");}//析构函数
string changename(string s){name=s;return name;} //修改名字
void setage(int n){age=n;} //设定年龄
int getage(){return age;}
void setsex(string x){sex=x;} //设定性别
string getsex(){return sex;}
void setmajor(string s){major=s;} //设定所学专业
string getmajor(){return major;}
void show(); //显示学生的信息
void showname(){cout<<"name is:"<<name<<'\n'<<'\n';} //show name
void showID(){cout<<"ID is:"<<ID<<'\n'<<'\n';} //show ID
void showsex(){cout<<"sex is:"<<sex<<'\n'<<'\n';} //show sex
private:
int age;
string sex;
string major;
};
void student::show() //show()的实现
{
cout<<setfill('-');
cout<<left<<setw(9)<<"name"<<name<<endl
<<setw(9)<<"age"<<getage()<<endl
<<setw(9)<<"ID"<<ID<<endl
<<setw(9)<<"sex"<<sex<<'\n'
<<setw(9)<<"major"<<major<<'\n'<<'\n'<<'\n';
}
/*void add();*/ //这个函数要怎么实现?要怎样用new()来实现呢?
void input();
int main()
{
student stu[N];
int i=0,j=0,k=0;
while(1){
cout<<"STUDENT'S MANAGEMENT SYSTEM\n"
<<"1 Input the students' informations\n2 Add a student\n3 Check a student's information\n4 Change a student's name\n\nPLEASE DO A CHOICE\n";
cin>>i;
switch(i)
{
/*case 1:input(); break;
case 2:add(); break;*/
case 3: cout<<"chose a student\n";
cin>>j;
if(j<N){stu[j].show();}
else cout<<"reelect a student,from 0 to N\n";
break;
case 4: cout<<"which student do you want to change?\n";
cin>>k;
if(k<N) {stu[k].changename("helo");stu[k].showname();} //这个也有问题,我固定将学生的名字改为hero了,其实应该可以改为任何一个名字的,帮帮忙
break;
default: cout<<"I'm sorry you are wrong\n\n";
}
}
return 1;
}
/*void input() //请帮我改改这个函数的实现,谢谢
{
student s[N];
string x,y,z; int p;long id;
cout<<left<<setw(9)<<"name"<<setw(9)<<"ID"<<setw(9)<<"age"<<setw(9)<<"sex"<<setw(9)<<"major"<<endl;
for(int i=0;i<N;i++)
{
cin>>setw(9)>>x>>setw(9)>>id>>setw(9)>>p>>setw(9)>>y>>setw(9)>>z;
s[i]->name=x;stu[i]->ID=id;s[i]->setage(p);s[i]->setsex(y);s[i]->setmajor(z);
s.show();
}
}*/
先谢了,我已经尽力自己改了,可是还是得请各位帮忙。
[此贴子已经被作者于2007-6-1 10:59:32编辑过]