菜鸟做一个学生成绩管理系统,已经把学生信息保存在文本中,如何根据输入学号,查找某一学生的信息。谢谢 20

我学了没多久,希望能用一些简单的方法实现。要求用VC6.0... 我学了没多久,希望能用一些简单的方法实现。
要求用VC6.0
展开
 我来答
b8os608gn
2011-05-06 · TA获得超过762个赞
知道小有建树答主
回答量:813
采纳率:0%
帮助的人:532万
展开全部
我给你改了两个错误现在可以运行了,不知道还有没有其他逻辑错误,自己进一步修改吧。
第一个,你在排序那个程序里一个for循环不加,这个错误有些幼稚,不像能写出这种程序的人该犯的。
第二个错误,main主函数里if判断语句判等的时候用了赋值号,应该改成==
建议:你要学会调试,这种编译不过调试一下子就可以找到是排序函数的哪句话出错了。调试用F9标记,F5调试F10安步走,F11进入内层函数
#include<iostream>
#include<string>
using namespace std;
struct student //定义一个学生结构体
{
string name;
string sex;
int num;
int math;
int english;
int chinese;
int sum; //个人总分
float pingjun; //个人平均分
};
student stu[3];
int n; //全局变量
void input(student *p, int n) //输入模块
{
int i;
double SUM,PINGJUN;
p=&stu[0];
for(i=0;i<n; i++, p++)
{
cout<<"请依次输入第"<<i+1<<"个学生的姓名,性别,学号,数学分数,英语分数语文分数"<<endl;
cin>>(*p).name;
cin>>(*p).sex;
cin>>(*p).num;
cin>>(*p).math;
cin>>(*p).english;
cin>>(*p).chinese;
(*p).sum=(*p).math+(*p).english+(*p).chinese; //求个人总分
(*p).pingjun=((*p).math+(*p).english+(*p).chinese)/3; //个人平均分
SUM=SUM+(*p).sum; //班级总分
PINGJUN=SUM/3; //班级平均分

} cout<<"班级总分"<<SUM<<endl;
cout<<"班级平均分"<<PINGJUN<<endl;
}
void output(student *p, int n) //输出学生信息
{
for(int i=0;i<n;i++,p++)
{
cout<<"第"<<i+1<<"个学生的信息"<<"\n";
cout<<"姓名"<<p[i].name<<"\n";
cout<<"性别"<<p[i].sex<<"\n";
cout<<"数学分数"<<p[i].math<<"\n";
cout<<"英语分数"<<p[i].english<<"\n";
cout<<"语文分数"<<p[i].chinese<<"\n";
cout<<"个人总分"<<p[i].sum<<"\n";
cout<<"个人平均分"<<p[i].pingjun<<"\n";
}
}
void paixu(student *p, int n) //排序模块
{
int i, j, t;
string g;
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i; j++)
{
if(p[j].sum<p[j+1].sum)
{
g=p[j].name; p[j].name=p[j+1].name; p[j+1].name=g;
g=p[j].sex; p[j].sex=p[j+1].sex; p[j+1].sex=g;
t=p[j].math; p[j].math=p[j+1].math; p[j+1].math=t;
t=p[j].english;p[j].english=p[j+1].english;p[j+1].english=t;
t=p[j].chinese; p[j].chinese=p[j+1].chinese; p[j+1].chinese=t;
t=p[j].sum; p[j].sum=p[j+1].sum; p[j+1].sum=t;
}
}
}
}
void chaozhao(student *p,int n) //查找模块
{
int xh;
while(n==0)
{
cout<<"没有记录,请先输入学生信息"<<endl;
break;
}
if(n!=0)
{
cout<<"输入您要查找的学生学号"<<endl;
cin>>xh; //输入学号
}
if(xh==p[n].num)
{
cout<<"姓名"<<p[n].name<<"\t";
cout<<"性别"<<p[n].sex<<"\t";
cout<<"学号"<<p[n].num<<"\t";
cout<<"数学分数"<<p[n].math<<"\t";
cout<<"英语分数"<<p[n].english<<"\t";
cout<<"语文分数"<<p[n].chinese<<"\t";
cout<<"总分"<<p[n].sum<<"\t";
}
else
cout<<"没有找到您要查找的学生"<<endl;
}
void main() //主函数
{
student *q=&stu[0];
paixu(q,3);
int i;
cout<<"*……………………管理系统……………………*"<<endl;
cout<<"请选择你需要的操作:"<<endl;
cout<<"(1)输入学生信息"<<endl;
cout<<"(2)按学号查找"<<endl;
cout<<"(3)显示所有学生信息"<<endl;
cin>>i;
if(i==1)
input(q,3);
if(i==2)
chaozhao(q,3);
if(i==3)
output(q,3);
}
quanhy5
2011-05-06 · 超过11用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:32.7万
展开全部
为什么不用数据库呢,就用简单的mysql,或者access也行,要是把信息保存在文本里,查找不好弄啊,要去搜索字符,这是不麻烦事,出力不讨好,直接用数据库,做数据库查询,效率很高的!!
追问
要求用C++啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式