文档章节

C++ 训练

EasyProgramming
 EasyProgramming
发布于 2015/02/07 17:19
字数 582
阅读 47
收藏 0
#include<iostream>
#include<stdlib.h>
using namespace std;
class student
{
public:
 void menu();
 student *scan();
 void print(student *p);
 student *add(student *p);
 student *del(student *p);
 
 student *mod(student *p);
 
 void che(student *p);
 
private:
 int num;
 int score;
 char name;
 student * next;
};
student *x;
void student::menu()
{
 student stu;
 int a;
 cout<<"***************************学生成绩管理系统************************************"<<endl;
 cout<<"                            1.输入学生信息                                     "<<endl;
 cout<<"                            2.输出学生信息                                     "<<endl;
 cout<<"                            3.查找学生信息                                     "<<endl;
 cout<<"                            4.删除学生信息                                     "<<endl;
 cout<<"                            5.修改学生信息                                     "<<endl;
 cout<<"                            6.增加学生信息                                     "<<endl;
 cout<<"                            7.退出                                             "<<endl;
 cout<<"*******************************************************************************"<<endl;
 cout<<"请输入:";
 cin>>a;
 switch(a)
 {
   case 1:
   {
    x=stu.scan();
   }
  break;
   case 2:
   { 
    stu.print(x);
   }
  break;
   case 3:
   { 
    stu.che(x);
   }
  break;
   case 4:
   { 
    x=stu.del(x);
   }
  break;
   case 5:
   { 
    x=stu.mod(x);
   }
  break;
   case 6:
   { 
    x=stu.add(x);
   }
  break;
   case 7:
   { 
    exit (0);
   }
 }
}
student * student::scan()
{
 int n=0;
 student *p1,*p2,*head;
 p1=p2=(student*)malloc(sizeof(student));
 cout<<"请依次输入学号,姓名,成绩:(输入学号为0结束)"<<endl;
 cin>>p1->num>>p1->name>>p1->score;
 head=NULL;
 while(p1->num!=0)
 {
  if(n==0)
  {
   head=p1;
   n++;
  }
  else
  {
  p2=p1;
  p1=(student*)malloc(sizeof(student));
  cout<<"请依次输入学号,姓名,成绩:"<<endl;
  cin>>p1->num>>p1->name>>p1->score;
  p2->next=p1;
  }
 }
 p2->next=NULL;
 return head;
}
void student::print(student *p)
{
 while(p!=NULL)
 {
  cout<<"学号:"<<p->num<<"姓名:"<<p->name<<"成绩:"<<p->score<<endl;
  p=p->next;
 }
}
student* student::add(student *p)
{
 student *mark1;
 mark1=p;
 int num;
 cout<<"请输入所要增加位置前面学生的学号:"<<endl;
 cin>>num;
 while(p->num!=num&&p!=NULL)
 {
  p=p->next;
 }
 if(p==NULL)
 {
  cout<<"查无此人"<<endl;
 }
 else
 {
  student *mark2,*mark3;
  mark2=(student*)malloc(sizeof(student));
  cout<<"请依次输入学号,姓名,成绩:"<<endl;
  cin>>mark2->num>>mark2->name>>mark2->score;
  mark3=p->next;
  p->next=mark2;
  mark2->next=mark3;
 }
 return mark1;
}
student* student::del(student *p)
{
 student *mark1,*mark2;
 mark1=p;
 int num;
 cout<<"请输入所要删除学生的学号:"<<endl;
 cin>>num;
 while(p->num!=num&&p!=NULL)
 {
  mark2=p;
  p=p->next;
 }
 if(p==NULL)
 {
  cout<<"查无此人"<<endl;
 }
 else
 {
  if(p==mark1)
  {
  p=p->next;
  return p;
  }
  else
  {
   mark2->next=p->next;
   free(p);
  }
 }
 return mark1;
 
}
student* student::mod(student *p)
{
 student *mark;
 mark=p;
 int num;
 cout<<"请输入要修改学生的学号:";
 cin>>num;
 while(p->num!=num&&p!=NULL)
 {
   p=p->next;
 }
 if(p==NULL)
  {
   cout<<"查无此人"<<endl;
  }
 else
  {
   cout<<"请依次输入学号,姓名,成绩:"<<endl;
   cin>>p->num>>p->name>>p->score;
  }
 return mark;
}
void student::che(student *p)
{
  int num;
  cout<<"请输入要查询学生的学号:";
  cin>>num;
  while(p->num!=num&&p!=NULL)
  {
   p=p->next;
  }
  if(p==NULL)
  {
   cout<<"查无此人"<<endl;
  }
  else
  {
   cout<<"学号:"<<p->num<<"姓名:"<<p->name<<"成绩:"<<p->score<<endl;
  }
}

int main()
{
 student a;
 while(1)
 {
  a.menu();
 }
 return 0;
}


哎呀,咳咳,呕心沥血50天。。

© 著作权归作者所有

共有 人打赏支持
EasyProgramming
粉丝 3
博文 23
码字总数 8239
作品 0
浦东
程序员
玄道公子/digital_recognition_with_neuron_network

#digitalrecognitionwithneuronnetwork 简介 这是用c++实现的神经网络(全连接,bp),并以此来识别手写数字,数据来源于MNIST。 文件简介: neuron.h/cpp : 神经细胞以及细胞层类的定义与实...

玄道公子
06/27
0
0
OpenCV 2.4+ C++ SVM介绍

分类器 分类器是一种计算机程序。 他的设计目标是在通过学习后,可自动将数据分到已知类别。 平面线性分类器 一个简单的分类问题,如图有一些圆圈和一些正方形,如何找一条最优的直线将他们分...

j_m
2012/11/26
0
0
windows下编译mxnet并使用C++接口开发

大多数情况下,mxnet都使用python接口进行机器学习程序的编写,方便快捷,但是有的时候,需要把机器学习训练和识别的程序部署到生产版的程序中去,比如游戏或者云服务,此时采用C++等高级语言...

u012234115
05/29
0
0
Paddle 0.13.0 发布,百度开源的深度学习平台

Paddle 0.13.0 已发布,PaddlePaddle (PArallel Distributed Deep LEarning 并行分布式深度学习)是百度研发的深度学习平台,具有易用,高效,灵活和可伸缩等特点,为百度内部多项产品提供深度...

达尔文
06/12
0
0
C语言/C++程序员编程基础学习代码训练

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
48分钟前
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
59分钟前
0
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
0
0
LNMP架构(Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl)

Nginx负载均衡 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时...

蛋黄_Yolks
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部