C++简单学生成绩管理系统(C++课程设计).doc
《C++简单学生成绩管理系统(C++课程设计).doc》由会员分享,可在线阅读,更多相关《C++简单学生成绩管理系统(C++课程设计).doc(12页珍藏版)》请在冰豆网上搜索。
C++学生成绩管理系统
要求用C++语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。
学生成绩管理系统分析:
学生成绩管理系统分为8个模块,分别是:
添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。
学生成绩管理系统结构:
Main()函数
Menu()函数
Student()
Add()
Output()
Find()
Modify()
Deleted()
Sort()
Save()
Load()
重载符号
Student类
私有成员:
charname[20];
charsex[5];
intnumber;
intscore[3];
inttotal;
intaverage;
公有函数
各个子函数功能及其流程:
1.首先定义一个学生类ClassStudent;并定义其各个私有变量和公有函数
ClassStudent
load
重载
Class
add
output
find
delete
modify
save
私有变量
2.Student();构造函数,用于初始化学生类中的各个变量并记录
3.Add();函数:
用于添加学生信息的函数包括学号姓名成绩等的内容
主函数main()
菜单函数menu()
选择菜单中的选项添加学生信息
调用Add()函数
调用重载<<并添加信息
4.Output();函数:
用于输出学生信息,包括学号姓名各科及总分平均成绩
主函数main()
菜单函数menu()
选择菜单中的选项输出学生信息
调用Output()函数
输出学生信息
5.Find();函数:
用于查找学生各项信息。
主函数main()
菜单函数menu()
选择菜单中的选项查找学生信息
调用find()函数
查找并输出学生信息
要求输入学生姓名
6.modify();函数:
用于修改学生各项信息。
主函数main()
菜单函数menu()
选择菜单中的选项修改学生信息
调用modify()函数
修改并保存学生信息
要求输入学生姓名
7.delete();函数:
用于删除学生信息。
主函数main()
菜单函数menu()
选择菜单中的选项删除学生信息
调用delete()函数
删除学生信息
要求输入学生姓名
8.sort();函数:
对学生各项信息进行排序操作。
主函数main()
菜单函数menu()
选择菜单中的选项学生信息排序
调用Sort()函数
完成排序操作
8.save()和load();函数:
将学生信息保存到文件中,并在需要的时候调用该文件将其中的学生信息显示出来
主函数main()
菜单函数menu()
选择菜单中的选项选保存或读取
调用load()函数
文件读取成功
调用save()函数
按要求输入文件名
文件保存成功
9.“=”“<<”“>>”符号的重载:
在各个函数处理数据过程中对这些的调用处理
函数源代码:
此函数源代码在VisualC++6.0环境下编译通过。
具体如下:
#include"iostream.h"
#include"conio.h"
#include"iomanip.h"
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"fstream.h"
classstudent//定义学生类
{
private:
//定义学生类的私有成员
charname[20];//名字
charsex[5];//性别
intnumber;//学号
intscore[3];//分数
inttotal;//总分
intaverage;//平均分
public:
//公有成员
student();//学生构造函数,用于学生数据的初始化及保存学生数据
voidadd();//添加学生信息函数
voidoutput();//输出学生信息函数
voidfind();//查找学生数据函数
voidmodify();//修改学生信息函数
voiddeleted();//删除学生信息函数
voidsort();//排序函数
voidsave();//保存学生信息并写入文件函数
voidload();//打开写有学生信息的文件的函数
student&operator=(student&T);//重载“=”符号
friendistream&operator>>(istream&scin,student&s1);//重载“>>”符号
friendostream&operator<<(ostream&scout,student&s2);//重载“>>”符号
};
studentstu[100];
intn=0;
voidstudent:
:
add()//添加函数
{
charflag='Y';
while(toupper(flag)=='Y')
{
cin>>stu[n];
n++;
cout<<"要继续添加吗(y/n)";
cin>>flag;
if(toupper(flag)!
='Y')
{
if(toupper(flag)=='N')
{
break;
}
else
{
cout<<"错误,请重输:
";
cin>>flag;
}
}
}
}
voidstudent:
:
output()//输出函数
{
if(n!
=0)
{
cout<<"---------------------------------------------------------------------------\n";
cout<<"numbernamesexmathC++Englishtotalaverage\n";
cout<<"---------------------------------------------------------------------------\n";
for(intt=0;t {
cout< }
}
getch();
}
voidstudent:
:
find()//查找函数
{
intf3=0;
charn1[20];
studenttemp;
cout<<"输入你要查找的人的姓名:
";
cin>>n1;
for(intj=0;j {
if(strcmp(stu[j].name,n1)==0)
{
temp=stu[j];
f3=1;
}
}
if(f3==0)
cout<<"对不起,没有你要查找的学生成绩"< else
{
cout<<"---------------------------------------------------------------------------\n";
cout<<"numbernamesexmathC++Englishtotalaverage\n";
cout<<"---------------------------------------------------------------------------\n";
cout<<""< <<""< }
getch();
}
voidstudent:
:
modify()//修改函数
{
intf4=0;
intt;
charn2[50];
cout<<"输入你要修改的人的姓名:
";
cin>>n2;
for(intj=0;j {
if(strcmp(stu[j].name,n2)==0)
{
t=j;
f4=1;
}
}
if(f4==0)
cout<<"对不起,没有你要修改的学生成绩"< else
{
cout<<"请输入学号:
";
cin>>stu[t].number;
cout<<"姓名:
";
cin>>stu[t].name;
cout<<"性别:
";
cin>>stu[t].sex;
cout<<"数学成绩:
";
cin>>stu[t].score[0];
cout<<"C++成绩:
";
cin>>stu[t].score[1];
cout<<"英语成绩:
";
cin>>stu[t].score[2];
stu[t].total=stu[t].score[0]+stu[t].score[1]+stu[t].score[2];
stu[t].average=stu[t].total/3;
cout<<"修改成功!
"< }
getch();
}
voidstudent:
:
deleted()//删除函数
{
charn3[20];
boolf5=0;
charc;
do{
cout<<"请输入您要删除的学生姓名:
";
cin>>n3;
for(inti=0;i {
if(strcmp(n3,stu[i].name)==0)
{
f5=1;
n--;
do{
stu[i]=stu[i+1];
i++;
}while(i<=n);
}
}
if(f5==0)
cout<<"您要求删除的对象本来就不存在!
";
cout<<"要继续删除吗?
(y/n)"< cin>>c;
if(toupper(c)!
='Y'&&toupper(c)!
='N')
{
cout<<"输入指令错误!
请重新输入Y或N!
"< cin>>c;
}
}while(toupper(c)=='Y');
getch();
}
voidstudent:
:
sort()//排序函数
{
inti,j,k;
stud