求一个c语言编写的学生管理系统 50

要求1,当然是手打了不喜欢复制党,主要是复制的与我的作业要求不一样要求2,学生信息的增加,删除,修改,查找。包括这四个基本功能,其他的自定义。这是作业要求,老师知道我学的... 要求1, 当然是手打了 不喜欢复制党,主要是复制的与我的作业要求不一样
要求2,学生信息的增加,删除,修改,查找。包括这四个基本功能,其他的自定义。这是作业要求,老师知道我学的不好 说了 做两三个要求就ok了
要求3,可以直接复制 粘贴到编译器的。
我悬赏50噢, 速度了, 先到先得啊 。
最后 谢谢啊
展开
 我来答
帐号已注销
2013-07-02
知道答主
回答量:24
采纳率:100%
帮助的人:4.1万
展开全部
#include <iostream>
#include <string>
#include<fstream>
using namespace std;
class Humen
{
};
class Student:public Humen//学生类
{
private:
public:
string name,number;
double math,engligh,chinese;
Student(string na=" ",string nu=" ",double ma=0,double en=0,double ch=0)
{
name=na;
number=nu;
math=ma;
engligh=en;
chinese=ch;
}
void show1()//显示全部信息
{
cout<<"姓名:"<<name<<endl;
cout<<"学号:"<<number<<endl;
cout<<"数学:"<<math<<endl;
cout<<"英语:"<<engligh<<endl;
cout<<"语文:"<<chinese<<endl;
cout<<"总分:"<<engligh+math+chinese<<endl;
cout<<"平均分:"<<(engligh+math+chinese)/3<<endl;
}
void show2()//查询个人信息
{
cout<<"姓名:"<<name<<endl;
cout<<"学号:"<<number<<endl;
}
void show3()//查询单门 总分
{
cout<<"姓名:"<<name<<endl;
cout<<"总分:"<<engligh+math+chinese<<endl;
}
void show4()//查询单门 平均分
{
cout<<"姓名:"<<name<<endl;
cout<<"平均分:"<<(engligh+math+chinese)/3<<endl;
}
void show5()//查询单门数学
{
cout<<"数学:"<<math<<endl;
}
void show6()//查询单门英语
{
cout<<"英语:"<<engligh<<endl;
}
void show7()//查询单门语文
{
cout<<"语文:"<<chinese<<endl;
}
};
class Teacher:public Humen//教师类
{
private:
public:
string NAME;
string NUMBER;
string WORK;
Teacher(string NA="",string NU="",string WO="")
{
NAME=NA;
NUMBER=NU;
WORK=WO;
}
void printf()
{
cout<<"姓名:"<<NAME<<endl;
cout<<"编号:"<<NUMBER<<endl;
cout<<"职称:"<<WORK<<endl;
}
};
int main()
{
cout<<"请选择用户对象:"<<endl;
cout<<"1.学生\t2.教师"<<endl;
int G;
cin>>G;
switch(G)
{
int pass1;
case 1://学生类
{
first: cout<<"\n请输入学生学号:";
string xuehao;
cin>>xuehao;
cout<<"请输入登陆密码:";
string mima1;
cin>>mima1;
ifstream in("file1.txt");
if(!in) {cout<<"发生未知错误\n";system("pause");return 0;}
string a1;
string a2;
while(in>>a1)
{
in>>a2;
if(a1==xuehao&&a2==mima1)
{pass1=1;break;}
else pass1=0;
}
in.close();
if(pass1==0)
{
cout<<"\n账号或密码输入错误"<<endl;
cout<<"请重新输入"<<endl;
goto first;
}
cout<<"\n登陆成功(*_*)\n"<<endl;
ifstream out("file3.txt");//从文本读取学生信息
if(!out) {cout<<"发生未知错误";exit(0);}
string mmmz,xxxh;
double mmm,eee,yyy;
Student s[100];
int w=0;
while(out>>mmmz)
{
out>>xxxh>>mmm>>eee>>yyy;
s[w].name=mmmz;
s[w].number=xxxh;
s[w].math=mmm;
s[w].engligh=eee;
s[w].chinese=yyy;
w++;
}
in.close();
late: cout<<"请选择学生功能:"<<endl;
cout<<"1.显示个人信息"<<endl;
cout<<"2.查询个人成绩"<<endl;
cout<<"3.计算总分"<<endl;
cout<<"4.计算平均成绩"<<endl;
int k;
cin>>k;
switch(k)
{
case 1://显示个人信息
{
int a;
for(a=0;a<=w;a++)
{
while(xuehao==s[a].number)
{
s[a].show1();break;
}
}
}
break;

case 2://查询个人单门成绩

{
cout<<"请输入课程名称:";
aa: string kecheng;
cin>>kecheng;
int a;
for(a=0;a<=w;a++)
{
while(xuehao==s[a].number)
{
if(kecheng=="math")
{s[a].show5();break;}
else if(kecheng=="english")
{s[a].show6();break;}
else if(kecheng=="chinese")
{s[a].show7();break;}
else
{cout<<"请输入正确的课程名:";
goto aa;}
}
}
}
break;

case 3://计算总分
{
int a;
for(a=0;a<=w;a++)
{
while(xuehao==s[a].number)
{
s[a].show3();break;
}
}
}
break;

case 4://计算平均成绩
{
int a;
for(a=0;a<=w;a++)
{
while(xuehao==s[a].number)
{
s[a].show4();break;
}
}
}
break;
}

ww: cout<<"是否继续?Yes/No"<<endl;
string qq;
cin>>qq;
if(qq=="Yes")
goto late;
else if(qq=="No")
break;
else
{cout<<"输入有误,请重新选择!"<<endl;
goto ww;}
}
case 2://教师类
{
second: cout<<"\n请输入教师编号:";
string bianhao;
cin>>bianhao;
cout<<"请输入登陆密码:";
string mima2;
cin>>mima2;
ifstream in("file2.txt");
if(!in) {cout<<"发生未知错误\n";system("pause");return 0;}
string b1;
string b2;
while(in>>b1)
{
in>>b2;
if(b1==bianhao&&b2==mima2)
{pass1=1;break;}
else pass1=0;
}
in.close();
if(pass1==0)
{
cout<<"\n账号或密码输入错误"<<endl;
cout<<"请重新输入"<<endl;
goto second;
}
cout<<"\n登陆成功(*_*)\n"<<endl;
PP: cout<<"请选择教师功能:"<<endl;
cout<<"1.显示教师信息"<<endl;
cout<<"2.录入成绩"<<endl;
cout<<"3.查询成绩"<<endl;
cout<<"4.修改成绩"<<endl;
cout<<"5.成绩排序"<<endl;
ifstream laoshi("file4.txt");//从文本读取教师信息
if(!laoshi) {cout<<"发生未知错误";exit(0);}
string name,number,work;
Teacher t[100];
int m=0;
while(laoshi>>name)
{
laoshi>>number>>work;
t[m].NAME=name;
t[m].NUMBER=number;
t[m].WORK=work;
m++;
}
int r;
cin>>r;
switch(r)
{
case 1://显示教师信息
{
int a;
for(a=0;a<=m;a++)
{
while(bianhao==t[a].NUMBER)
{
t[a].printf();break;
}
}
break;
}
case 2://录入成绩
{
string xxx;
string hhh;
double eee;
double sss;
double www;
cout<<"请输入学生姓名:";
cin>>xxx;
cout<<"请输入学生学号:";
cin>>hhh;
cout<<"请输入学生数学成绩:";
cin>>eee;
cout<<"请输入学生英语成绩:";
cin>>sss;
cout<<"请输入学生语文成绩:";
cin>>www;
ofstream fout("file3.txt",ios::app);
fout<<""<<xxx<<" "<<hhh<<" "<<eee<<" "<<sss<<" "<<www<<endl;
in.close();
cout<<"成绩录入成功!"<<endl;
break;
}
case 3://查询成绩
{
ifstream out("file3.txt");//从文本读取学生信息
if(!out) {cout<<"发生未知错误";exit(0);}
string mmmz,xxxh;
double mmm,eee,yyy;
Student s[100];
int w=0;
while(out>>mmmz)
{
out>>xxxh>>mmm>>eee>>yyy;
s[w].name=mmmz;
s[w].number=xxxh;
s[w].math=mmm;
s[w].engligh=eee;
s[w].chinese=yyy;
w++;
}
in.close();
yy: cout<<"请输入学生学号:";
string ee;
cin>>ee;
int a;
for(a=0;a<=w;a++)
{
if(ee==s[a].number)
{
s[a].show1();break;
}
}
if(a>w){cout<<"未找到该生信息,请重新操作!"<<endl;goto yy;}break;
}
case 4://修改成绩
{
ifstream out("file3.txt");//从文本读取学生信息
if(!out) {cout<<"发生未知错误";exit(0);}
string mmmz,xxxh;
double mmm,eee,yyy;
Student s[100];
int w=0;
while(out>>mmmz)
{
out>>xxxh>>mmm>>eee>>yyy;
s[w].name=mmmz;
s[w].number=xxxh;
s[w].math=mmm;
s[w].engligh=eee;
s[w].chinese=yyy;
w++;
}
out.close();
kk: cout<<"请输入需要修改的学生学号:";
string mz;
cin>>mz;
cout<<"请输入需要修改的课程名称:";
string hm;
cin>>hm;
cout<<"请输入需要的修改课程成绩:";
double cj;
cin>>cj;
int a;
for(a=0;a<=w;a++)
{

if(mz==s[a].number&&hm=="math")
{s[a].math=cj;break;}
else if(mz==s[a].number&&hm=="english")
{ s[a].engligh=cj;break;}
else if(mz==s[a].number&&hm=="chinese")
{ s[a].chinese=cj;break;}

}
if(a>w){ cout<<"输入错误,请输入正确的学号以及课程名称!"<<endl;goto kk;}
ofstream fout("file3.txt");
for(a=1;a<=m;a++)
fout<<""<<s[a].name<<" "<<s[a].number<<" "<<s[a].math<<" "<<s[a].engligh<<" "<<s[a].chinese<<endl;
in.close();
cout<<"成绩修改成功!"<<endl;
break;
}
case 5://成绩排序
{
cout<<"该功能还未实现"<<endl;break;
}
}
II: cout<<"是否继续?Yes/No"<<endl;
string qq;
cin>>qq;
if(qq=="Yes")
goto PP;
else if(qq=="No")
break;
else
{cout<<"输入有误,请重新选择!"<<endl;
goto II;}
}

}
system("pause");
return 0;
}

上面是我自己写的 ,但需要文本,你在cpp目录下先建几个文件夹 ,别的不懂加我QQ8660673吧
魔龙嗜血
2013-07-02 · TA获得超过1116个赞
知道小有建树答主
回答量:1033
采纳率:100%
帮助的人:513万
展开全部
#include <stdio.h>
#include <stdlib.h>
/* 1。根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组。*/
struct stu_info{
char stuNo[10];/* No */
char stuName[30];/* Name */
float stuScore[3];/* the three scores */
float aveScore; /* average score */
float totalScore; /* total score */
}stu[10];
/* 2。用input函数从键盘上输入10个学生的数据。 */
void input()
{ int i = 0;
printf("Input the students' infomation(FORMAT LIKE:No Name score1 score2 score3):\n");
while(i < 10)
{ printf("Input %d:",i + 1);
scanf("%s%s%f%f%f",stu[i].stuNo,stu[i].stuName,&stu[i].stuScore[0],&stu[i].stuScore[1],&stu[i].stuScore[2]);
i++;
}
}
/* 3。用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩。 */
float average()
{ int i = 0;
float totalAve_score = 0;
while(i < 10)
{ stu[i].totalScore = stu[i].stuScore[0]+stu[i].stuScore[1]+stu[i].stuScore[2];
stu[i].aveScore = stu[i].totalScore/3;
totalAve_score += stu[i].aveScore;
i++; }
totalAve_score /= 10;
return totalAve_score; }
/* 4。用maximum函数找出最高分的学生的数据。 */
int maximun()
{ int i = 0, k=0;
float tmp=stu[0].totalScore;
while(++i < 10)
{ if(tmp < stu[i].totalScore)
{ tmp = stu[i].totalScore;
k = i;
}
}
return k;
}
/* 5。在主函数中输出每位学生的学号、姓名、三门课成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。*/
int main(int argc, char *argv[])
{ int i = 0, highestNo;
float totalAve_score;
input(); totalAve_score = average();
highestNo = maximun();
printf("NO.\t Name\tScore1\tScore2\tScore3\tTotal\taverage\n");
for(i = 0;i < 10;i++)
printf("%s %s\t %.1f\t%.1f\t%.1f\t%.2f\t%.2f\n",stu[i].stuNo,stu[i].stuName,stu[i].stuScore[0],stu[i].stuScore[1],stu[i].stuScore[2],stu[i].totalScore,stu[i].aveScore);
printf("average = %.2f\n",totalAve_score);
printf("The highest score:%s,score total:%.2f",stu[highestNo].stuName,stu[highestNo].totalScore);
system("PAUSE");
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式