| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:管理系统未完成片
只看楼主 加入收藏
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
 问题点数:0 回复次数:3 
管理系统未完成片

#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;

#define c1 "Data1.txt"
#define c2 "Data2.txt"
#define c3 "Data3.txt"
#define c4 "Data4.txt"
#define c5 "Data5.txt"
#define c6 "Data6.txt"

static int max = 100; //一个班最多有max个学生

class Stu
{
char *_name;
float e_score,ph_score;
long int _num;
public:
void set(char *na,long int nu,float e,float ph)
{_name=na;_num=nu;e_score=e;ph_score=ph;}
ostream & operator<<(ostream& os)
{
os<<_name<<" "<<_num<<" "<<e_score<<" "<<ph_score<<endl;
return os;
}
friend void line_byEng(Stu s[],int a); // 按英语成绩排名排序
friend void line_byPhy(Stu s[],int a); // 按物理成绩排名排序
friend void line_byTotal(Stu s[],int a); // 按总成绩排名排序
friend void line_byStuNum(Stu s[],int a); // 按学号排序
};

//排序算法(模板函数)
template <class T>
void sequence(T s[])
{
for (int i=1;s[i];i++)
{
for (int t=i;s[t];t++)
{
if (s[t]>s[i])
{
T temp=s[i];
s[i]=s[t];
s[t]=temp;
}
}
}

}

//按英语成绩排名排序
void line_byEng(Stu s[],int a) //友元函数
{
float eng[a];
//将所有对象的英语成绩比较
for (int i=0;i<a;i++)
{
eng[i]=s[i].e_score;
}
sequence(eng);
for (int j=0;j<a;j++)
{

for (int i=0;i<a;i++)
{
if (eng[j]==s[i].e_score)
cout<<s[i]<<endl;
}
}

}

//按物理成绩排名排序
void line_byPhy(Stu s[],int a) //友元函数
{
float phy[a];
//将所有对象的物理成绩比较
for (int i=0;i<a;i++)
{
phy[i]=s[i].ph_score;
}
sequence(phy);
for (int j=0;phy[j];j++)
{

for (int i=0;i<a;i++)
{
if (phy[j]==s[i].ph_score)
cout<<s[i]<<endl;
}
}

}

//按总成绩排名排序
void line_byTotal(Stu s[],int a) //友元函数
{
float total[a];
//将所有对象的总成绩比较
for (int i=0;i<a;i++)
{
total[i]=s[i].ph_score+s[i].e_score;
}
//排序
sequence(total);
for (int j=0;j<a;j++)
{
for (int i=0;i<a;i++)
{
if (total[j]==s[i].e_score+s[i].ph_score)
cout<<s[i]<<endl;
}
}

}

// 按学号排序
void line_byStuNum(Stu s[],int a) //友元函数
{
long int num[a];
//将所有对象的学号比较
for (int i=0;i<a;i++)
{
num[i]=s[i]._num;
}
sequence(num);
for (int j=0;j<a;j++)
{

for (int i=0;i<a;i++)
{
if (num[j]==s[i]._num)cout<<s[i]<<endl;
}
}

}

void instruct();

int main()
{
instruct();
int choice;
cin>>choice;
while (choice)
{
switch (choice)
{
case 1://查看;
break;
case 2://新建;
break;
case 3://修改;
break;
case 4://删除;
break;
default:cout<<"Entered a wrong choice!\n";
}
instruct();cin>>choice;
}
//退出并保存
return 0;
}
void instruct()
{
cout<<"----------------MENU------------------\n"; //◆★▲※■〓
cout<<"1. 查 看 班 级 信 息\n"
"2. 创 建 新 的 班 级 信 息\n"
"3. 修 改 班 级 信 息\n"
"4. 删 除 指 定 的 班 级 信 息\n"
"0. 退 出 并 保 存\n";
}


//查看
void check()
{
int checks;
ifstream ins;
//函数声明
void get_Information(istream& ins);
do
{
cout<<"Input the class-number ( 0 to quit) you want to check from\n"
"0—6"<<endl;
cin>>checks;
switch (checks)
{
case 1:ins.open(c1);
break;
case 2:ins.open(c2);
break;
case 3:ins.open(c3);
break;
case 4:ins.open(c4);
break;
case 5:ins.open(c5);
break;
case 6:ins.open(c6);
break;
default:cout<<"***Error***! Enter a wrong Document!\n";
}
//从外部文件里获得信息,并初始化对象(学生)。
if (ins.fail())
{
cout<<"无此班级信息!"<<endl;continue;//如果无此班级信息,重新查找另外的班级
}
//如果打开文件,开始读取信息。
int i;char name[max][12]; //学生姓名
float e[max],ph[max];
long int num[max];
for (i=0;!ins.eof()&&i<max;i++)
ins>>name[i][12]>>num[i]>>e[i]>>ph[i];
Stu s[i];
for (int j=0;j<i;j++)
s[j].set(name[j],num[j],e[j],ph[j]);
cout<<"Catch a choice you want!\n"
"0. Quit!\n";
"1. Line up by english score!\n"
"2. Line up by physical score!\n"
"3. Line up by total score!\n"
"4. Line up by stu_num!\n";
//"5. Line up by firstname!\n" //不会比较中文名字

int Seq_choice;
cin>>Seq_choice;
//void line_byFirName(Stu &s[]);// 按名字的第一个字母排序
/*---不会做难的,所以要求是输入英文,如果是中文名字就不会比较了---*/
while(Seq_choice)
{
switch (Seq_choice)
{
case 0:
case 1:line_byEng(s,i);break; // 按英语成绩排名排序(此函数代码未写)
case 2:line_byPhy(s,i);break; // 按物理成绩排名排序(此函数代码未写)
case 3:line_byTotal(s,i);break; // 按总成绩排名排序 (此函数代码未写)
case 4:line_byStuNum(s,i);break; // 按学号排序
//case 5:line_byFirName(s);break; // 按名字的第一个字母排序
default:"--err--!\nEntered a wrong choice!\n\n";
}
}
}while(checks!=0);
}

搜索更多相关主题的帖子: 系统 管理 
2006-05-05 21:27
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
先打你要干什么

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-05 21:30
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

//我的重载<<函数错了吗?为什么编译不过去?DEV环境
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;

#define c1 "Data1.txt"
#define c2 "Data2.txt"
#define c3 "Data3.txt"
#define c4 "Data4.txt"
#define c5 "Data5.txt"
#define c6 "Data6.txt"

#define max 100 //一个班最多有max个学生

class Stu
{
char *_name;
float e_score,ph_score;
long int _num;
public:
void set(char *na,long int nu,float e,float ph)
{_name=na;_num=nu;e_score=e;ph_score=ph;}
ostream & operator<<(ostream& os,const Stu& s)
{
os<<s._name<<" "<<s._num
<<" "<<s.e_score
<<" "<<s.ph_score<<endl;
return os;
}
friend void line_byEng(Stu s[],int a); // 按英语成绩排名排序
friend void line_byPhy(Stu s[],int a); // 按物理成绩排名排序
friend void line_byTotal(Stu s[],int a); // 按总成绩排名排序
friend void line_byStuNum(Stu s[],int a); // 按学号排序
};

//排序算法(模板函数)
template <class T>
void sequence(T s[])
{
for (int i=1;s[i];i++)
{
for (int t=i;s[t];t++)
{
if (s[t]>s[i])
{
T temp=s[i];
s[i]=s[t];
s[t]=temp;
}
}
}

}

//按英语成绩排名排序
void line_byEng(Stu s[],int a) //友元函数
{
float eng[a];
//将所有对象的英语成绩比较
for (int i=0;i<a;i++)
{
eng[i]=s[i].e_score;
}
sequence(eng);
for (int j=0;j<a;j++)
{

for (int i=0;i<a;i++)
{
if (eng[j]==s[i].e_score)
cout<<s[i]<<endl;
}
}

}

//按物理成绩排名排序
void line_byPhy(Stu s[],int a) //友元函数
{
float phy[a];
//将所有对象的物理成绩比较
for (int i=0;i<a;i++)
{
phy[i]=s[i].ph_score;
}
sequence(phy);
for (int j=0;phy[j];j++)
{

for (int i=0;i<a;i++)
{
if (phy[j]==s[i].ph_score)
cout<<s[i]<<endl;
}
}

}

//按总成绩排名排序
void line_byTotal(Stu s[],int a) //友元函数
{
float total[a];
//将所有对象的总成绩比较
for (int i=0;i<a;i++)
{
total[i]=s[i].ph_score+s[i].e_score;
}
//排序
sequence(total);
for (int j=0;j<a;j++)
{
for (int i=0;i<a;i++)
{
if (total[j]==s[i].e_score+s[i].ph_score)
cout<<s[i]<<endl;
}
}

}

// 按学号排序
void line_byStuNum(Stu s[],int a) //友元函数
{
long int num[a];
//将所有对象的学号比较
for (int i=0;i<a;i++)
{
num[i]=s[i]._num;
}
sequence(num);
for (int j=0;j<a;j++)
{

for (int i=0;i<a;i++)
{
if (num[j]==s[i]._num)cout<<s[i]<<endl;
}
}

}

void instruct();

int main()
{
instruct();
int choice;
cin>>choice;
//函数声明
void check();
while (choice)
{
switch (choice)
{
case 1:check();//查看;
break;
case 2://新建;
break;
case 3://修改;
break;
case 4://删除;
break;
default:cout<<"Entered a wrong choice!\n";
}
instruct();cin>>choice;
}
//退出并保存
return 0;
}
void instruct()
{
cout<<"----------------MENU------------------\n"; //◆★▲※■〓
cout<<"1. 查 看 班 级 信 息\n"
"2. 创 建 新 的 班 级 信 息\n"
"3. 修 改 班 级 信 息\n"
"4. 删 除 指 定 的 班 级 信 息\n"
"0. 退 出 并 保 存\n";
}


//查看
void check()
{
int checks;
ifstream ins;
//函数声明
void get_Information(istream& ins);
do
{
cout<<"Input the class-number ( 0 to quit) you want to check from\n"
"0—6"<<endl;
cin>>checks;
switch (checks)
{
case 1:ins.open(c1);
break;
case 2:ins.open(c2);
break;
case 3:ins.open(c3);
break;
case 4:ins.open(c4);
break;
case 5:ins.open(c5);
break;
case 6:ins.open(c6);
break;
default:cout<<"***Error***! Enter a wrong Document!\n";
}
//从外部文件里获得信息,并初始化对象(学生)。
if (ins.fail())
{
cout<<"无此班级信息!"<<endl;continue;//如果无此班级信息,重新查找另外的班级
}
//如果打开文件,开始读取信息。
int i;char name[max][12]; //学生姓名
float e[max],ph[max];
long int num[max];
for (i=0;!ins.eof()&&i<max;i++)
ins>>name[i][12]>>num[i]>>e[i]>>ph[i];
Stu s[i];
for (int j=0;j<i;j++)
s[j].set(name[j],num[j],e[j],ph[j]);
cout<<"Catch a choice you want!\n"
"0. Quit!\n";
"1. Line up by english score!\n"
"2. Line up by physical score!\n"
"3. Line up by total score!\n"
"4. Line up by stu_num!\n";
//"5. Line up by firstname!\n" //不会比较中文名字

int Seq_choice;
cin>>Seq_choice;
//void line_byFirName(Stu &s[]);// 按名字的第一个字母排序
/*---不会做难的,所以要求是输入英文,如果是中文名字就不会比较了---*/
while(Seq_choice)
{
switch (Seq_choice)
{
case 0:
case 1:line_byEng(s,i);break; // 按英语成绩排名排序(此函数代码未写)
case 2:line_byPhy(s,i);break; // 按物理成绩排名排序(此函数代码未写)
case 3:line_byTotal(s,i);break; // 按总成绩排名排序 (此函数代码未写)
case 4:line_byStuNum(s,i);break; // 按学号排序
//case 5:line_byFirName(s);break; // 按名字的第一个字母排序
default:"--err--!\nEntered a wrong choice!\n\n";
}
}
}while(checks!=0);
}


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-05 22:21
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
斑竹,来帮忙啊,我这里有问题,为什么说我的重载函数错误 ,must take one exactly argument  为什么只能一个参数?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-06 13:56
快速回复:管理系统未完成片
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026380 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved