求C++学生管理系统课程设计的报告书

作者&投稿:爰备 (若有异议请与网页底部的电邮联系)
求c++程序 学生成绩管理系统 详细的实验报告~

#include
#include
#include
#include
#include
#include
using namespace std;
//结点类,用于存放学生的各种数据
class Node{
public:
int id;
//学号
string name;
//姓名
string grade;
//等级
double english;
//英语
double math;
//数学
double c;
//C++
double sum;
//总分
double average;
Node *next;
//指向下一结点的指针
Node(int nid=0,string nname="noname",
//构造函数,初始化变量
double e=0,double m=0,double cl=0,double s=0 ,double a=0,string g="ng");
};
Node::Node(int nid,string nname,double e,double m,double cl,double s,double a,string g)
{
id=nid;
name=nname;
next=NULL;
english=e;
math=m;c=cl;
sum=s;
average=a;
grade=g;
}
//class NOde结束//Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象
class Link{
private:
Node *head;
//链表的头指针,为Node对象类型的指
public :
Link();//构造函数,初始化变量
bool linkIsEmpty();//判断链表是否为空
void linkInsert(Node *newnode);//向链表中插入新的结点
bool linkDelete(int nid);//从链表中删除的结点
void linkClear();//清空链表中数据
void linkView();//查看链表中数据
void linkGrade(Node *p1);//计算等级
void linkAverageTotle();//按平均分统计
Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针
Node* getHead();//获取头指针
};
Link::Link()
{ //构造函数,初始化链表为空
head=NULL;
}
bool Link::linkIsEmpty()
{ //判断链表是否为空,空则返回
true; return(head==NULL);
}
void Link::linkInsert(Node *newnode)
{//按id值从小到大的顺序,插入新的结点
Node *p1;if(!head)//链表为空的情况
head=newnode;else if((head->id)>(newnode->id))
{//插入到第一个结点的情况
newnode->next=head;
head=newnode;
}
else
{//插入到第二个及以后情况
p1=head;
while(1)
{if(!(p1->next))
{p1->next=newnode;break;}
else if((p1->next)->id>newnode->id)
{newnode->next=p1->next;p1->next=newnode;break;}
p1=p1->next;}
}
}
bool
Link::linkDelete(int nid)
{//删除结点,成功则返回
true; Node *p;
if(head==NULL)
//链表为空的情况
return false;
if(head->id==nid)
{//删除的为第一个结点的情况
head=head->next;
return true;
}p=head;
while(p->next)
{//删除的为第二个及以后结点的情况
if((p->next)->id==nid)
{p->next=(p->next)->next;
return true;
}
p=p->next;
}
return false;
}
void Link::linkClear()
{//清空链表
head=NULL;
}
void Link::linkView()
{//显示链表数据
Node *p=head;
coutsum)=(p->english)+(p->math)+(p->c);
//计算总分
(p->average)=((p->english)+(p->math)+(p->c))/3;
//计算平均成绩
linkGrade(p);
//计算等级
coutidnameenglishmathcsumaveragegradenext;}}void Link::linkGrade(Node *p1)
{
// 计算等级
while(p1){
if(p1->average>=90&&p1->average<=100)
p1->grade="优";
else if(p1->average>=80&&p1->average<90)
p1->grade="良好";
else if(p1->average>=70&&p1->average<80)
p1->grade="中等";
else if(p1->average>=60&&p1->average<=70)
p1->grade="合格";
else
p1->grade="不合格";p1=p1->next;
}
}
void Link::linkAverageTotle()
{//按学生平均分统计
int a=0,b=0,c=0,d=0,e=0,f=0;
double averagesum=0,asum=0,aaverage=0,paverage=0;
Node *p3=head;
while(p3)
{
if(p3->average>=90&&p3->average<=100) a+=1;
else if(p3->average>=80&&p3->average<90)b+=1;
else if(p3->average>=70&&p3->average<80) c+=1;
else if(p3->average>=60&&p3->average<70) d+=1;
else e+=1;
asum+=p3->sum;
aaverage+=p3->average;p3=p3->next;
}
f=a+b+c+d+e;
averagesum=asum/f;
paverage=aaverage/f;
cout<<"|-------------------------------------------------------|"<<endl;
cout<<"| 总 人 数:"<<f<<endl;
cout<<"|-------------------------------------------------------|"<<endl;
cout<<"| 优 人 数:"<<a<<" | "<<"优 秀 率: "<<a*100/f<<"%"<<endl;
cout<<"|-------------------------------------------------------|"<<endl;
cout<<"| 良 好 的人数:"<<b<<" | "<<"良 好 率: "<<b*100/f<<"%"<<endl;
cout<<"|-------------------------------------------------------|"<<endl;
cout<<"| 中 等 的人数:"<<c<<" | "<<"中 等 率: "<<c*100/f<<"%"<<endl;
cout<<"|-------------------------------------------------------|"<<endl;
cout<<"| 所有合格人数:"<<a+b+c+d<<" | "<<"合 格 率: "<<(a+b+c+d)*100/f<<"%"<<endl;
cout<<"|-------------------------------------------------------|"<<endl;
cout<<"| 不 合 格 数:"<<e<<" | "<<"不合格率: "<<e*100/f<<"%"<<endl;
cout<<"|-------------------------------------------------------|"<<endl;
cout<<"| 总分的平均分:"<<averagesum<<" | "<<"所有科目的平均分:"<<paverage<<endl;
cout<<"|-------------------------------------------------------|"<<endl;
}
Node* Link::linkFind(int nid)
{//查找id值为nid的结点,返回该结点的指针
Node *p=head;
//没找到符合条件的结点的话,返回的指针值为
NULL; while(p)
{if(p->id==nid)break;
else
p=p->next;
}return p;


}
Node* Link::getHead()
{return head;}
//class Link 结束
//类Student,用于包装Link类及菜单操作
class Student
{
private:
Link slink;
//Link对象成员
bool k;
//记录数据是否被修改
public:
Student();
void studentClear();
void studentInsert();
void studentDelete();
void studentFind();
void studentView();
void studentLoad();
void studentSave();
void studentAverageTotle();
//按平均分数统计等级
void Exit();
//退出程序
void showMenu();
//显示菜单
void showTip();
//显示操作提示
void doMenu(char n);
//执行相应菜单项功能
};
Student::Student()
{
Link();
//调用成员对象的构造函数
studentLoad();
//从文件中读取数据,创建链表
k=false;
//设置数据被修改
}
void Student::studentClear()
{
//清空学生记录
slink.linkClear();
cout<<"成功清空学生记录!"<<endl;
}
void Student::studentInsert()
{
//插入学生记录
Node *p=new Node();
cout<<"请输入学号:";
cin>>p->id;
cout<<"请输入姓名:";
cin>>p->name;
if(!slink.linkFind(p->id))
{
//判断学号是否存在
slink.linkInsert(p);
k=true;
}
else
coutid<<"的学生已存在,插入失败!";
cout<<"请输入成绩:"<<endl;
cout>p->english;
cout<<endl; cout<<"数学:";
cin>>p->math;
cout<<endl;
cout<<"C++:";
cin>>p->c;
cout<<endl;
(p->sum)=(p->english)+(p->math)+(p->c);
//计算总分
(p->average)=((p->english)+(p->math)+(p->c))/3;
//计算平均成绩
}
void Student::studentDelete()
{
//删除学生记录
int i;
if(slink.linkIsEmpty())
//链表为空的情况
cout<<"没有学生记录!"<<endl;
else{
cout<<"请输入学号:";
cin>>i;
if(slink.linkDelete(i))
{
cout<<"成功删除学号为"<<i<<"的学生记录!"<<endl;
k=true;
}
else
cout<<"没有找到学号为"<<i<<"的学生!"<<endl;
}
}
void Student::studentFind()
{
//查找某学号的学生记录
int n;
Node *p;if(slink.linkIsEmpty())
//链表为空的情况
cout<<"没有学生记录!"<<endl;
else{cout<<"请输入要查找的学号:";
cin>>n;p=slink.linkFind(n);
//获得找到的结点的指针
if(p)
{
//指针值不为NULL时
(p->sum)=(p->english)+(p->math)+(p->c);
//计算总分
(p->average)=((p->english)+(p->math)+(p->c))/3;
//计算平均成绩
slink.linkGrade(p);
cout<<setw(6)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"英语"<<setw(8)<<"数学"<<setw(8)<<"C++"<<setw(8)<<"总分"<<setw(8)<<"平均分"<<setw(8)<<"等级"<<endl;
coutidnameenglishmathcsumaveragegrade<<endl;
}
else
//指针值为NULL时
cout<<"没有找到学号为"<<n<<"的学生记录!"<<endl;
}
}
void Student::studentView()
{
//显示所有学生的记录
if(slink.linkIsEmpty())
cout<<"没有学生记录!"<<endl;
else
slink.linkView();
}
void Student::studentLoad()
{//从文件中读入数据,创建链表
Node *p;int nid;
ifstream infile("data.txt");
if(!infile)cerr<<"错误:数据文件不能打开!
";
else while(infile>>nid)
{
//读取学号,直到读空
p=new Node();
p->id=nid;
infile>>p->name>>p->english>>p->math>>p->c>>p->sum>>p->average>>p->grade;
//读取姓名
slink.linkInsert(p);
}
infile.close();
//关闭文件
}
void Student::studentSave()
{
//将数据保存到文件
Node *p=slink.getHead();
ofstream outfile("data.txt");
if(!outfile)cerr<<"错误:数据文件不能打开!
";
else
{
while(p)
{
outfileidnameenglishmathcsumaveragegrade<<endl;
p=p->next;
}
k=false;
cout<<"保存成功!"<<endl;
}
}
void Student::studentAverageTotle()
{
if(slink.linkIsEmpty());//执行语句;
else
slink.linkAverageTotle();
}
void Student::Exit()
{
char s='Y';
if(k){
//判断数据是否修改


cout<<"数据已经改变,是否保存?(y/n):";
cin>>s;if(s=='y'||s=='Y')studentSave();
}
cout<<"已安全退出,";
system("pause");
exit(0);
}
void Student::showMenu()
{
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 学生信息管理系统 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 1. 清空:清除所有学生数据 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 2. 添加:插入一条学生数据 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 3. 删除:删除指定学生数据 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 4. 查找:查找指定学生数据 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 5. 显示:显示所有学生数据 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 6. 保存:保存所有学生数据 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 7. 统计:按学生平均分统计 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl;
cout<<" "<<"| 0. 退出:安全的退出本系统 |"<<endl;
cout<<" "<<"|------------------------------------------------|"<<endl<<endl;
}
void Student::showTip()
{
cout<<endl;
cout<<"-------------------操作完成---------------------"<<endl;
cout<<"-----------------选择0-7继续-------------------"<<endl;
cout<<"请选择:";
}
void Student::doMenu(char n)
{
switch(n)
{
case '1':studentClear();break;
case '2':studentInsert();break;
case '4':studentFind();break;
case '3':studentDelete();break;
case '5':studentView();break;
case '6':studentSave();break;
case '7':studentAverageTotle();break;
case '0':Exit();break;
default:cout<<"输入错误!";
}
}
int main()
{
Student s;
char i='9';
s.showMenu();
cout<<"选择对应数字进行操作:";
while(1)
{cin>>i;
system("cls");
//清除屏幕
s.showMenu();
s.doMenu(i);
s.showTip();
}
return 0;
}



希望能对你有帮助

设计报告 学生成绩管理系统的
K KI

这种东西到处都有, 抄一个就可以了, 我给你找了一个没有用户图形界面的, 可以自己用MFC进行包装

设计题目 学生成绩管理系统

已知技术参数和设计要求

现有学生成绩信息文件1(1.txt),内容如下
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
…. .. .. .. …
学生成绩信息文件2(2.txt),内容如下:
姓名 学号 语文 数学 英语
陈果 31 57 68 82
李华明 32 88 90 68
张明东 33 48 42 56
李明国 34 50 45 87
陈道亮 35 47 58 77
…. .. .. .. …
试编写一管理系统,要求如下:
1、 实现对两个文件数据进行合并,生成新文件3.txt
2、 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt
3、 对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)
4、 输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)
5、 要求使用结构体,链或数组等实现上述要求.
采用多种方法且算法正确者,可适当加分.
设计内容与步骤 1、 结点结构的设计
2、 算法设计与分析
3、 程序设计、实现、调试
4、 课程设计说明书

#include<iostream.h>
#include<string.h>
#include<fstream.h>
class stu
{
char name[20];
double math,chinese,english,average,sum;
public:
stu()
{
}
stu(char n[20],double ma,double chin,double eng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
double getsum()
{
sum=chinese+english+math;
return sum;
}
double getaver()
{
average=getsum()/3;
return average;
}
friend void main();
};

void main()
{
cout<<"请选择您需要的操作!"<<endl;
cout<<"操作:"<<endl;
cout<<"(0)数据录入"<<endl;
cout<<"(1)增加人员"<<endl;
cout<<"(2)删除人员"<<endl;
cout<<"(3)修改数据"<<endl;
cout<<"查询:"<<endl;
cout<<"(4)按总成绩查询"<<endl;
cout<<"(5)按姓名查询"<<endl;
cout<<"(6)输出所有学生的数据"<<endl;
cout<<"成绩名词"<<endl;
cout<<"(7)按总分查询排名"<<endl;
cout<<"(8)按语文查询排名"<<endl;
cout<<"(9)按数学查询排名"<<endl;
cout<<"(y)按英语查询排名"<<endl;
cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;
char p;char w;
stu *s[50];
ofstream *file[50];
int i=0;
int j=0;
bool flag2=0;
do
{
cin>>p;
if((p>='0'&&p<='10'))
flag2=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(flag2==0);
do{
switch(p)
{
case '0':
{
char c;
char name[20];double math,chinese,english;
do{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case '4':
{
double t;char c;
do
{
int flag1=0;
cout<<"请输入你要查询学生的总成绩"<<endl;
cin>>t;
for(int q=0;q<i;q++)
{
if(s[q]->getsum()==t)
{
flag1=1;
cout<<"您要查询的学生是:"<<(*s[q]).name<<endl;
}
}
if(flag1==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}

case '5':
{
char n[20];int j=0;char c;
do{
int flag=0;
cout<<"请输入你要查询的学生姓名"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<"您要查询的学生是:"<<(*s[j]).name<<endl;
cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()<<endl<<"平均成绩是:"<<(*s[j]).getaver()<<endl;
}
}
if(flag==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '1':
{
char name[20];double math,chinese,english;
char c;
do
{
cout<<"请输入您要增加的学生的姓名:"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '2':
{
char name[20];bool flag3=0;char c;
do{
cout<<"请输入您要删除的学生姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
cout<<"要继续删除吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '3':
{
char name[20];double mat,chin,eng;flag2=0;
char c;
do
{
cout<<"请输入您要修改的学生的姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"请输入新的数学成绩:"<<endl;
cin>>mat;
cout<<"请输入新的语文成绩:"<<endl;
cin>>chin;
cout<<"请输入新的外语成绩:"<<endl;
cin>>eng;
s[h]->chinese=chin;
s[h]->math=mat;
s[h]->english=eng;
cout<<"数据修改成功!";
}
}
if(flag2==0)
{
cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;
}
cout<<"想继续修改吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}

case '6':
{
cout<<"本系统所有学生数据如下:"<<endl;
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<(*s[k]).getsum()
<<"平均分:"<<" "<<(*s[k]).getaver()<<endl;
}
break;
}
case '7':
{
int t;stu b;

cout<<"本系统所以学生排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!=x)
{
b=*s[x];
*s[x]=*s[t];
*s[t]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case '8':
{
int t;stu b;

cout<<"本系统所以学生语文排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->chinese)<(s[y]->chinese))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case '9':
{
int t;stu b;

cout<<"本系统所以学生数学排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->math)<(s[y]->math))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case 'y':
{
int t;stu b;

cout<<"本系统所以学生英语排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->english)<(s[y]->english))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
}
break;
}

cout<<"您想继续进行其他操作吗?(y/n)"<<endl;
bool flag4=0;
do
{
cin>>w;
if(w!='y'&&w!='n')
cout<<"指令错误!请重新输入!"<<endl;
else
flag4=1;
}while(flag4==0);
if(w=='y')
cout<<"请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"<<endl;
cin>>p;
}while(w=='y');
for(int x=0;x<i;x++)
{
delete s[x];
cout<<"delete all members!"<<endl;
}

}

那要什么样的?
需要连接数据库吗?

这种东西到处都有,
抄一个就可以了,
我给你找了一个没有用户图形界面的,
可以自己用MFC进行包装
设计题目
学生成绩管理系统
已知技术参数和设计要求
现有学生成绩信息文件1(1.txt),内容如下
姓名
学号
语文
数学
英语
张明明
01
67
78
82
李成友
02
78
91
88
张辉灿
03
68
82
56
王露
04
56
45
77
陈东明
05
67
38
47
….
..
..
..

学生成绩信息文件2(2.txt),内容如下:
姓名
学号
语文
数学
英语
陈果
31
57
68
82
李华明
32
88
90
68
张明东
33
48
42
56
李明国
34
50
45
87
陈道亮
35
47
58
77
….
..
..
..

试编写一管理系统,要求如下:
1、
实现对两个文件数据进行合并,生成新文件3.txt
2、
抽取出三科成绩中有补考的学生并保存在一个新文件4.txt
3、
对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)
4、
输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)
5、
要求使用结构体,链或数组等实现上述要求.
采用多种方法且算法正确者,可适当加分.
设计内容与步骤
1、
结点结构的设计
2、
算法设计与分析
3、
程序设计、实现、调试
4、
课程设计说明书
#include
#include
#include
class
stu
{
char
name[20];
double
math,chinese,english,average,sum;
public:
stu()
{
}
stu(char
n[20],double
ma,double
chin,double
eng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
double
getsum()
{
sum=chinese+english+math;
return
sum;
}
double
getaver()
{
average=getsum()/3;
return
average;
}
friend
void
main();
};
void
main()
{
cout<<"请选择您需要的操作!"<>p;
if((p
查看原帖>>


用C语言 设计一学生成绩管理系统,要求: 1. 学生成绩的信息包括:学号...
printf("请输入学生成绩:\\n"); scanf("%d",&p->score); p->next=Null; r->next=p; \/\/ 这个地方我总是不明白,是怎样让结点下移一个的呢? r=r->next; } return (head); }void find (list *h){ int k; \/\/ 要找的学生学号 list *p; p=h->next; printf("请输入要查找的学生学号:\\n")...

用C语言编写学生管理系统界面
printf("\\t\\t (^o^)欢迎使用学生成绩管理系统(^o^)\\n\\n");printf("\\t ※---请选择相应功能---※\\n\\n"); printf("\\t 1: 显示所有学生的信息 |"); printf(" \\t 2: 按姓名查询 |\\n\\n"); printf("\\t 3: 按学号查询 |"); printf(" \\t\\t 4: 增加学生 |\\n\\n"); printf("\\t 5...

用c语言编写一个学生管理系统
cout<<"\\n\\n ☆☆☆欢迎进入高校学籍管理系统☆☆☆"<<endl<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * 1: 录入学生信息 * *"<...

用C语言编写一个学生管理系统。
1、总体要求:系统功能齐全,运行结果正确,用户界面友好,使用简单方便。 2、系统数据要求:学生信息如下:学号、姓名、年龄、所在系、3门课程名称及成绩、总分、平均分。3、系统功能要求:⑴输入至少10个学生的自然信息(学号、姓名、年龄、所在系、成绩)。⑵计算每个学生的总分、平均分,并输出每个学生的学号,姓名,总分,...

用c语言实现一个简单的学生成绩管理系统,包括:学号,姓名,科目,成绩_百...
"| 3 查询学生成绩 |\\n"); printf("| 0 退出管理系统 |\\n"); printf("===\\n");}void input()

用C语言设计一个学生成绩管理系统
include <stdio.h>#include <string.h> include <stdlib.h>#define MAX 1000\/*定义学生成绩信息结构*\/struct stu{ char id[8];char name[8];

c语言学生管理系统学生成绩管理系统 功能: 每个学生信息为一个记录,包...
c语言学生管理系统学生成绩管理系统 功能: 每个学生信息为一个记录,包括学号,姓名,性别,3 门课程成绩  我来答 1个回答 #热议# 《请回答2021》瓜分百万奖金 SHA256 2011-07-12 · TA获得超过1012个赞 知道小有建树答主 回答量:585 采纳率:0% 帮助的人:439万 我也去答题访问个人页 关注 ...

c语言学生管理系统源代码
2008-06-10 c语言程序学生成绩管理系统源代码 161 2016-06-26 c语言学生成绩管理系统1000行源代码 4 2013-08-13 求一个C语言学生学籍管理系统源代码 7 2014-05-22 c语言学生信息管理系统代码 406 2011-09-21 求C语言学习成绩管理系统源代码 2 2017-07-18 学生信息管理系统c语言源代码,跪求源代码 ...

用C++语言编写一个“学生成绩管理系统”。
cout<<"*** 学生管理系统 ***"<<endl; cout<<"1: 添加一个学生信息"<<endl; cout<<"2: 删除一个学生信息"<<endl; cout<<"3: 显示所有学生的姓名"<<endl; cout<<"4: 根据姓名显示单个学生所有信息"<<endl; cout<<"5: 根据姓名对单个学生进行编辑"<<endl; cout<<"6: 帮助菜单"<<endl; cou...

c语言学生信息管理系统代码
c语言学生信息管理系统代码 学生信息包括学号,名字,性别,年龄,成绩,住址菜单:1.录入学生信息(要求可以重复录入,一个一个录入的那种,不要一开始就定义一个总的个数)2.增加学生信息3.修改学生信息4.删除... 学生信息包括学号,名字,性别,年龄,成绩,住址菜单:1.录入学生信息(要求可以重复录入,一个一个录入的那种,...

城关区18815399464: 求C++学生管理系统课程设计的报告书 -
昔曹塞克: 这种东西到处都有, 抄一个就可以了, 我给你找了一个没有用户图形界面的, 可以自己用MFC进行包装 设计题目 学生成绩管理系统 已知技术参数和设计要求 现有学生成绩信息文件1(1.txt),内容如下 姓名 学号 语文 数学 英语 张明明 01 67 78 ...

城关区18815399464: 求完整C语言程序设计报告!! -
昔曹塞克: C语言课程设计报告--学生成绩管理系 C语言课程设计报告: 学生成绩管理系统 系统需求 一、 当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前...

城关区18815399464: 学生成绩管理系统课程设计C++ -
昔曹塞克: #include #include #include using namespace std; #define max 100; class student { public: student *next; ...

城关区18815399464: C++课程设计 -
昔曹塞克: 《C++课程设计》 课程设计题目:学生成绩管理系统 学生班级:***** 学生姓名:***** 学生学号:***** (2)学生成绩管理系统需求与功能分析 学生成绩的录入、统计、查询、修改、删除、输出. 画出功能结构图. (3)学生成绩管理系统的数据结...

城关区18815399464: 用C++设计一个学生成绩管理系统 -
昔曹塞克: c++学生成绩管理系统论文--课程设计[日期:2007-01-19] 来源:25175--你我一起舞 作者:未知 阅读:3593 次 [字体:大 中 小] c++学生成绩管理系统论文--课程设计powered by 25175.net 1、 对C++设计的《学生成绩管理系统》总体说明 系统上...

城关区18815399464: c++课程设计报告格式是怎样的 -
昔曹塞克: 就是写一下题目,设计目的,可程设计过程的收获、遇到的问题、解决问题过程的思考、程序调试能力的思考、对C++程序设计语言这门课程的思考及认识等内容.

城关区18815399464: 求C++课程设计 学生信息管理系统 -
昔曹塞克: 我这里编写了一个C++学生信息管理系统;你只需要修改一点就可以了,是在DOS界面操作的,MFC的我还没有编写.#include<iostream>#include<string.h> struct student{ int id; char name[10]; int age; char sex[10]; char yuanxi[20]; int fenshu; ...

城关区18815399464: 学生学籍管理系统 C++课程设计 -
昔曹塞克: 以文件的形式存储,有很多的形式的.比如:ini和xml.其实就是做个对话框读取和修改,保存文件.其次就是查找等加入过滤条件.希望你还是自己多动手做做,这样对你自己以后的发展有好处.

城关区18815399464: C++课程设计.学生基本信息管理的设计与实现.简单点的.不要成绩管理系统~没分 -
昔曹塞克: 《C++程序设计》 课程设计报告 设计题目:学生成绩管理系统 专业:智能终端 班级: 学号: 姓名: 指导老师: 日期: 目录 一、设计任务与要求…………………………………………3 1.设计内容………………………………………………3 2.课...

城关区18815399464: 求用C语言编写一个简单的学生信息管理程序和课程设计报告 -
昔曹塞克: # include

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网