| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
学习型 ASP/PHP/ASP.NET 主机 35元/年全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
赛孚耐:软件保护加密专家身份认证令牌USB KEY  
共有 334 人关注过本帖
标题:[求助]一个简单的学生管理系统程序中顶层函数的实现出现了问题,可以帮个忙 ...
收藏  订阅  推荐  打印 
tangofan
Rank: 1
等级:新手上路
帖子:21
积分:310
注册:2007-5-20
[求助]一个简单的学生管理系统程序中顶层函数的实现出现了问题,可以帮个忙吗?

上个星期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编辑过]

搜索更多相关主题的帖子: 系统程序  函数  顶层  学生  
2007-6-1 10:58
tangofan
Rank: 1
等级:新手上路
帖子:21
积分:310
注册:2007-5-20

还有,我退不出while循环

狂热tango!
2007-6-1 11:24
wfpb
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:29
帖子:2188
积分:22230
注册:2006-4-2


程序代码:

#include&lt;iostream&gt;<br>#include&lt;string&gt;<br>#include&lt;iomanip&gt;<br>#include &lt;list&gt;<br>using namespace std;</P> <P>class Student<br>{<br> int age;<br> string sex;<br> string major;<br> string name;<br> long ID;<br>public:<br> Student(long id=0,string n="unknow",int a=0,string s="unknown",string m="unknown")<br> :ID(id),name(n),age(a),sex(s),major(m)<br> {<br> }<br> bool operator==(const Student&amp; s)<br> {<br> return ID==s.ID;<br> }<br> long getID()<br> {<br> return ID;<br> }<br> string setName(string s)<br> {<br> return name=s; <br> }<br> string getName()<br> {<br> return name;<br> }<br> int setAge(int n)<br> {<br> return age=n;<br> }<br> int getAge()<br> {<br> return age;<br> }<br> string setSex(string x)<br> {<br> return sex=x;<br> }<br> string getSex()<br> {<br> return sex;<br> }<br> string setMajor(string s)<br> {<br> return major=s;<br> }<br> string getmajor()<br> {<br> return major;<br> }<br> void showname()<br> {<br> cout&lt;&lt;"name is:"&lt;&lt;name&lt;&lt;'\n'&lt;&lt;'\n';<br> }<br> void showID()<br> {<br> cout&lt;&lt;"ID is:"&lt;&lt;ID&lt;&lt;'\n'&lt;&lt;'\n';<br> }<br> void showsex()<br> {<br> cout&lt;&lt;"sex is:"&lt;&lt;sex&lt;&lt;'\n'&lt;&lt;'\n';<br> }<br> void show(); //显示学生的信息<br>}; <br>void Student::show() //show()的实现<br>{<br> cout&lt;&lt;setfill('-')&lt;&lt;left<br> &lt;&lt;setw(9)&lt;&lt;"name"&lt;&lt;name&lt;&lt;endl<br> &lt;&lt;setw(9)&lt;&lt;"age"&lt;&lt;age&lt;&lt;endl<br> &lt;&lt;setw(9)&lt;&lt;"ID"&lt;&lt;ID&lt;&lt;endl<br> &lt;&lt;setw(9)&lt;&lt;"sex"&lt;&lt;sex&lt;&lt;endl<br> &lt;&lt;setw(9)&lt;&lt;"major"&lt;&lt;major&lt;&lt;endl&lt;&lt;endl&lt;&lt;endl;<br> <br>}</P> <P>class SMS<br>{<br> typedef list&lt;Student&gt;::iterator LSI;<br> list&lt;Student&gt; m_stuList; <br> Student* addInput()<br> {<br> string x,y,z;<br> int a;<br> long id;<br> cout&lt;&lt;left&lt;&lt;setw(9)&lt;&lt;"name"&lt;&lt;setw(9)<br> &lt;&lt;"ID"&lt;&lt;setw(9)&lt;&lt;"age"&lt;&lt;setw(9)<br> &lt;&lt;"sex"&lt;&lt;setw(9)&lt;&lt;"major"&lt;&lt;endl;<br> cin&gt;&gt;x&gt;&gt;id&gt;&gt;a&gt;&gt;y&gt;&gt;z;<br> return new Student(id,x,a,y,z);<br> }<br> long idInput(string str)<br> {<br> long id;<br> cout&lt;&lt;str;<br> cin&gt;&gt;id;<br> return id;<br> }<br>public:<br> int GetCount()<br> {<br> return m_stuList.size();<br> }<br> int Add(const Student &amp;s)<br> {<br> m_stuList.unique();<br> m_stuList.push_back(s);<br> }<br> int Add()<br> {<br> Student *p=addInput();<br> Add(*p);<br> delete p;<br> }<br> bool Delete(long id)<br> {<br> if(GetCount()==0)<br> {<br> cout&lt;&lt;"\n! There Is Not Any Student's Infomation In The Student Manager System(SMS) !\n\n\n";<br> return false;<br> }<br> for(LSI iter=m_stuList.begin();iter!=m_stuList.end();iter++)<br> {<br> if(iter-&gt;getID()==id)<br> {<br> m_stuList.erase(iter);<br> return true;<br> }<br> }<br> cout&lt;&lt;"Not Found This Student!"&lt;&lt;endl;<br> return false;<br> }<br> void DeleteX()<br> {<br> if(GetCount()==0)<br> {<br> cout&lt;&lt;"\n! There Is Not Any Student's Infomation In The Student Manager System(SMS) !\n\n\n";<br> return;<br> }<br> while(!Delete(idInput("input the ID of the student which is going to be delete: "))){}<br> }<br> bool ChangeName(long id)<br> {<br> if(GetCount()==0)<br> {<br> cout&lt;&lt;"\n! There Is Not Any Student's Infomation In The Student Manager System(SMS) !\n\n\n";<br> return false;<br> }<br> for(LSI iter=m_stuList.begin();iter!=m_stuList.end();iter++)<br> {<br> if(iter-&gt;getID()==id)<br> {<br> cout&lt;&lt;"input a name to instead of the student's now: ";<br> string name;<br> cin&gt;&gt;name;<br> iter-&gt;setName(name);<br> iter-&gt;show();<br> return true;<br> }<br> }<br> cout&lt;&lt;"Not Found This Student!"&lt;&lt;endl;<br> return false;<br> }<br> void ChangeNameX()<br> {<br> if(GetCount()==0)<br> {<br> cout&lt;&lt;"\n! There Is Not Any Student's Infomation In The Student Manager System(SMS) !\n\n\n";<br> return;<br> }<br> while(!ChangeName(idInput("input the ID of the student whose name is going to be changed: "))){} <br> }<br> bool Show(long id)<br> {<br> if(GetCount()==0)<br> {<br> cout&lt;&lt;"\n! There Is Not Any Student's Infomation In The Student Manager System(SMS) !\n\n\n";<br> return false;<br> }<br> for(LSI iter=m_stuList.begin();iter!=m_stuList.end();iter++)<br> {<br> if(iter-&gt;getID()==id)<br> {<br> iter-&gt;show();<br> return true;<br> }<br> }<br> cout&lt;&lt;"Not Found This Student!"&lt;&lt;endl;<br> return false;<br> }<br> void ShowX()<br> {<br> if(GetCount()==0)<br> {<br> cout&lt;&lt;"\n! There Is Not Any Student's Infomation In The Student Manager System(SMS) !\n\n\n";<br> return;<br> }<br> while(!Show(idInput("input the ID of the student which is being checked: "))){}<br> }<br> void showAll()<br> {<br> if(GetCount()==0)<br> {<br> cout&lt;&lt;"\n! There Is Not Any Student's Infomation In The Student Manager System(SMS) !\n\n\n";<br> return;<br> }<br> for(LSI iter=m_stuList.begin();iter!=m_stuList.end();iter++)<br> {<br> iter-&gt;show();<br> }<br> }<br> static void Menu()<br> {<br> cout&lt;&lt;"STUDENT'S MANAGEMENT SYSTEM\n"<br> &lt;&lt;"1 Add a student\n"<br> &lt;&lt;"2 Delete a student\n"<br> &lt;&lt;"3 Check a student's information\n"<br> &lt;&lt;"4 Change a student's name\n"<br> &lt;&lt;"5 Show All Of These Student's Infomation\n"<br> &lt;&lt;"6 Exit From The Student Manager System(SMS)\n\n"<br> &lt;&lt;"PLEASE DO A CHOICE\n";<br> }<br>};</P> <P>void main()<br>{<br> SMS sms;<br> int i=0;<br> while(1)<br> {<br> SMS::Menu();<br> cin&gt;&gt;i;<br> switch(i)<br> {<br> break;<br> case 1:sms.Add(); break;<br> case 2:sms.DeleteX();break;<br> case 3:sms.ShowX();break;<br> case 4:sms.ChangeNameX();break;<br> case 5:sms.showAll();break;<br> case 6:exit(1); <br> default: cout&lt;&lt;"I'm sorry you are wrong\n\n";<br> }<br> }<br>}

[此贴子已经被作者于2007-6-1 13:10:28编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-6-1 13:08
tangofan
Rank: 1
等级:新手上路
帖子:21
积分:310
注册:2007-5-20

谢谢谢谢,我还得研究下,一下看不懂。
谢啦,我们隔壁学校呀。没准可以请你吃饭呢(不要太当真啦!)

狂热tango!
2007-6-5 08:46
little_stone
Rank: 2
等级:注册会员
威望:1
帖子:163
积分:1730
注册:2007-5-29

学习下.

2007-6-5 09:06
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.082705 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved