这篇文章主要介绍了C++实现数据管理功能的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
实现以下功能:
1、信息录入:录入学生成绩信息(包括学生学号、姓名、各门课程的成绩等);
2、信息查询:输入学号,查询学生各门课程的成绩,并显示。
3、排序:按各门课程的成绩平均分进行排序,并显示。
4、信息删除与修改——输入学号,删除该学生的成绩信息。
分步实施:
1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。
2、建立一个文件,将每位学生的信息写入文件中并能显示于屏幕上。
3、完成上述信息查询(学生学号、姓名等)、排序、信息删除与修改功能。
#include <iostream>
#include <string.h>
using namespace std;
#define MAX 100
class CStudent
{private: char *name; // 姓名
bool sex; // 性别
CDate date; // 出生日期,类对象作数据成员
public: static int num; // 学生人数
CStudent(); void InputData();
friend void Sort(); // 排序
friend void FindName(); // 按姓名查询
friend void Statistic(); // 按性别统计
friend void Display(); // 显示全部信息} stu[MAX];
int CStudent::num=0; //static 初始化
CStudent::CStudent() {} //构造函数// 输入信息
void CStudent::InputData()
{
int p; char s[41];
cout<<"请输入学生信息(NO."<<num<<"):\n";
cout<<"姓名:"; cin>>s;
name=new char[strlen(s)+1];
strcpy(name,s);
cout<<"性别(1-男,0-女):";
cin>>p;
if (p) sex=true;
else sex=false; cin>>date;//操作符重载->istream &operator>>(istream &in,CDate &d)
cout<<endl;
}// 排序 根据data从小到大排序
void Sort()
{
int i,j,p,num; char *tn; bool ts;
CDate td;
num=CStudent::num;
for(i=1; i<num; i++)
{
p=i;
for(j=i+1; j<=num; j++)
if (stu[j].date<stu[p].date) p=j;//找到当前未排序元素中年龄最小的对象的下标
if (p==i) continue; //下面交换stu[i]和stu[p]
tn=stu[i].name;
stu[i].name=stu[p].name;
stu[p].name=tn;
ts=stu[i].sex;
stu[i].sex=stu[p].sex;
stu[p].sex=ts;
td=stu[i].date;
stu[i].date=stu[p].date;
stu[p].date=td;
}
}// 按姓名查询
void FindName()
{
char name[41];
int i,num;
cout<<"请输入姓名:";
cin>>name;
num=CStudent::num;
for(i=1; i<=num; i++)
if (strcmp(stu[i].name,name)==0) break;
if (i>num)
{
cout<<"查无此人!"<<endl<<endl;
return;
} //如果查到了,显示学生信息
cout<<"姓名:"<<stu[i].name<<endl;
cout<<"性别:"; if (stu[i].sex)
cout<<"男"<<endl; else
cout<<"女"<<endl;
cout<<"生日:"<<stu[i].date<<endl;
cout<<endl;
}// 按性别统计
void Statistic()
{
int i,num,s1,s0;
num=CStudent::num;
s1=0;
s0=0; for(i=1; i<=num; i++)
if (stu[i].sex==1)s1++;
else s0++;
cout<<"男生人数:"<<s1<<endl;
cout<<"女生人数:"<<s0<<endl;
cout<<endl;
}// 显示全部信息
void Display()
{
int i,num;
num=CStudent::num; for(i=1; i<=num; i++)
{
cout<<stu[i].name<<"\t";
if (stu[i].sex)
cout<<"男";
else cout<<"女";
cout<<"\t"<<stu[i].date<<endl;
}
cout<<endl;
}
int main1()
{ char *menu[]= { "","输入信息","排序","按姓名查询","按性别统计","显示全部信息","退出" };
int i,p; bool end;
end=false; while(!end)
{ for(i=1; i<7; i++)
cout<<i<<" "<<menu[i]<<endl;
cin>>p;
switch(p)
{
case 1: // 输入信息
CStudent::num++;
stu[CStudent::num].InputData(); break;
case 2: // 排序
Sort(); break;
case 3: // 按姓名查询
FindName(); break;
case 4: // 按性别统计人数
Statistic(); break;
case 5: // 显示全部信息
Display(); break;
case 6: // 退出
end=true; break;
}
} return 0;
}
感谢你能够认真阅读完这篇文章,希望小编分享C++实现数据管理功能的方法内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。