小草最近上课学C++,在图书馆纠结了好久,决定做这个小东西,没想到遇到了好多困难,好吧,功夫不负有心人,小草也在敲代码中提高了不少。

小草硬是学了好几天,才搞完这个东西,也算是了结了小草的一个心结。

小草的Trouble学生信息管理系统写得不咋样,就是一个学习C++的笔记吧。

1、类。

2、继承与派生。

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <algorithm>
#include <list> using namespace std; class tagScore
{
public:
tagScore();
tagScore(int ch,int ma,int en):chinese(ch),math(ma),english(en) {}
protected:
int chinese;
int math;
int english;
}; tagScore::tagScore()
{
chinese=-;
math=-;
english=-;
} class tagStudent:protected tagScore
{
public:
tagStudent(int ch,int ma,int en,string na,int i,char s):tagScore(ch,ma,en)
{
name=na;
id=i;
sex=s;
score=ch+ma+en;
}
void setdata();
void display()
{
//score=chinese+math+english;
printf("%d ",id);
cout<<name;
score=chinese+math+english;
printf(" %c %6d %6d %6d %6d\n",sex,score,chinese,math,english);
}
int getDataScore()
{
return score;
}
int getDataChinese()
{
return chinese;
}
int getDataMath()
{
return math;
}
int getDataEnglish()
{
return english;
}
int getDataId()
{
return id;
}
string getDataName()
{
return name;
}
private:
string name;
int id;
int score;
char sex;
}; void tagStudent::setdata()
{
cin>>id>>name>>sex>>chinese>>math>>english;
} typedef tagScore Score;
typedef tagStudent Student; Student a[]
{
tagStudent(,,,"xiaoming",,'M'),
tagStudent(,,,"liyang",,'W'),
tagStudent(,,,"kjdfi",,'M')
}; void print()///显示学生数据
{
cout << " 学生成绩信息 " << endl;
cout << "================================================================================" << endl;
cout <<"ID\tName\tSex Scores chinese math english"<<endl;
} /*HomePage A*/ void screenA()
{
cout << " 学生成绩管理系统 " << endl;
cout << "================================================================================" << endl;
cout << " 1----------按姓名查询 2----------按ID查询" << endl;
cout << " 3----------按学号排序并输出 4----------按成绩排序并输出" << endl;
cout << " 0----------退出程序"<<endl;
cout << "================================================================================" << endl;
} ///按姓名查询
void FindByName()
{
bool flag=false;
system("cls");
cout<<"请输入姓名"<<endl;
string n;
cin>>n;
int i;
for(i=; i<; i++)
{
if(a[i].getDataName()==n)
{
flag=true;
break;
}
}
if(flag==true)
{
print();
a[i].display();
}
else
printf("It is nonexistent!\n");
} ///按ID查询
void FindById()
{
bool flag=false;
system("cls");
printf("请输入学的ID\n");
int i;
int pos;
cin>>pos;
for(i=; i<; i++)
{
if(a[i].getDataId()==pos)
{
flag=true;
break;
}
}
if(flag==true)
{
print();
a[i].display();
}
else printf("It is nonexistent!\n");
} int CmpById(const void *a,const void *b)
{
Student p1=*((Student *)a);
Student p2=*((Student *)b);
if(p1.getDataId()!=p2.getDataId())
return p1.getDataId()-p2.getDataId();
}
///按学号排序输出
void SortById()
{
system("cls");
print();
qsort(a,,sizeof(a[]),CmpById);
int i;
for(i=; i<; i++)
{
a[i].display();
}
} int CmpByScore(const void *a,const void *b)
{
Student p1=*((Student *)a);
Student p2=*((Student *)b);
if(p1.getDataScore()!=p2.getDataScore())///成绩按降序排列
return p2.getDataScore()-p1.getDataScore();
else if(p1.getDataChinese()!=p2.getDataChinese())
return p2.getDataChinese()-p1.getDataChinese();
else if(p1.getDataMath()!=p2.getDataMath())
return p2.getDataMath()-p1.getDataMath();
else if(p1.getDataEnglish()!=p2.getDataEnglish())
return p2.getDataEnglish()-p1.getDataEnglish();
else return p1.getDataId()-p2.getDataId();
} ///按成绩排序并输出
void SortByScore()
{
system("cls");
print();
qsort(a,,sizeof(a[]),CmpByScore);
for(int i=; i<; i++)
{
a[i].display();
}
} /*void DelStudent()
{
system("cls");
printf("请输入要删除学生的ID\n");
int pos;
bool flag=false;
cin>>pos;
for(int i=0; i<3; i++)
{
if(pos==i)
{
flag=true;
for(int j=i; j<3; j++)
a[j]=a[j+1];
}
}
if(flag==false)
{
cout<<"It is nonexistent!\n";
}
}*/
int main()
{
screenA();
int order; scanf("%d",&order);
switch(order)
{
case :
FindByName();
system("pause");
break;
case :
FindById();
system("pause");
break;
case :
SortById();
break;
case :
SortByScore();
system("pause");
break;
case :
system("pause");
break;
default:
cout<<"错误命令\n"<<endl;
}
return ;
}

小草的Trouble学生信息管理系统的更多相关文章

  1. C语言小练习之学生信息管理系统

    C语言小练习之学生信息管理系统 main.c文件   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 ...

  2. Node.js小项目——学生信息管理系统

    这是迄今为止第一次接触后端的东西,是一个很小的项目,但是对于前端学习入门很好.我是先学了VUE框架再学的Node,学起来比较轻松,不过每个人都有自己的学习方法️ 一.项目描述 学生信息管理系统,可以实 ...

  3. Django 小实例S1 简易学生选课管理系统 7 修改个人信息

    Django 小实例S1 简易学生选课管理系统 第7节--修改个人信息 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 用户模块除了注册登录之外,还 ...

  4. 基于数组或链表的学生信息管理系统(小学期C语言程序实训)

    1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...

  5. C++ 简单的学生信息管理系统

    // // main.cpp // 2013-7-17作业1 // // Created by 丁小未 on 13-7-17. // Copyright (c) 2013年 dingxiaowei. ...

  6. PHP实现简单的学生信息管理系统(web版)

    (∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...

  7. Django 小实例S1 简易学生选课管理系统 12 CSS样式完善

    Django 小实例S1 简易学生选课管理系统 第12节--CSS样式完善 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块的逻辑代码到这里 ...

  8. Django 小实例S1 简易学生选课管理系统 11 学生课程业务实现

    Django 小实例S1 简易学生选课管理系统 第11节--学生课程业务实现 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块中,学生需要拥 ...

  9. Django 小实例S1 简易学生选课管理系统 10 老师课程业务实现

    Django 小实例S1 简易学生选课管理系统 第10节--老师课程业务实现 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块中,老师将要使 ...

随机推荐

  1. 一步步带你做vue后台管理框架

    1.登录 (1).  一步步带你做vue后台管理框架(三)——登录功能 2.权限控制 (1)  基于Vue2.0实现后台系统权限控制 (2) 手摸手,带你用vue撸后台 系列二(登录权限篇)

  2. ffmpeg+cuda+opencv

    为了让ffmpeg使用gpu进行解码,可以按以下步骤: 1 下载nvidia官网提供的ffmpeg,编译安装 https://developer.nvidia.com/ffmpeg 注意原来的选项上还 ...

  3. sql server 远程备份 bak 删除

    前言: 管理一个公司的一个服务器,最近有一些维护SQLserver数据库活弄,写下防止忘了. 因为公司采用SQL\Redis\MongoDB共用,SQL用来存储基础的结构\权限\等一些杂七杂八的东西. ...

  4. 九度oj题目1181:遍历链表

    题目1181:遍历链表 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2600 解决:1125 题目描述: 建立一个升序链表并遍历输出. 输入: 输入的每个案例中第一行包括1个整数:n(1 ...

  5. javascript中for in与in的用法

    1.For...In 声明用于对数组或者对象的属性进行循环/迭代操作. 对于数组 ,迭代出来的是数组元 素,对于对象 ,迭代出来的是对象的属性: var x var mycars = new Arra ...

  6. centos 6.5搭建LNMP环境

    1:查看环境: 1 2 [root@10-4-14-168 html]# cat /etc/redhat-release CentOS release 6.5 (Final) 2:关掉防火墙 1 [r ...

  7. Oracle中scott用户下基本表练习SQL语句

    --选择部门中30的雇员SELECT * from emp where DEPTNO=30;--列出所有办事员的姓名.部门.编号--采用内连接方式,也就是等值链接,也是最常用的链接SELECT ena ...

  8. 软件测试技术lab2——Selenium上机实验

    Selenium上机实验说明 1.安装SeleniumIDE插件 2.学会使用SeleniumIDE录制脚本和导出脚本 3.访问http://121.193.130.195:8080/使用学号登录系统 ...

  9. webpack初步搭建Vue项目

    对文件进行打包 1. cnpm i -D webpack webpack-cli 本地热更新 1. cnpm i -D webpack-dev-server 处理图片资源 url-loader依赖fi ...

  10. SQL:Example Uses of the SUBSTRING String Function

    ---Example Uses of the SUBSTRING String Function --http://www.sql-server-helper.com/tips/tip-of-the- ...