文档章节

c++实现线性表(以学生增删改查为例)

cyleft
 cyleft
发布于 2017/05/16 11:59
字数 285
阅读 10
收藏 0
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define MAX 10

using namespace std;
typedef struct student
{

    int id;
    int age;
    int score;
}Stu;
typedef struct List{
    Stu data[MAX];
    int len;
}L;

void init(List &l)
{
    l.len=0;
}

void display_cy(List l)
{
    if(l.len>9)
    {
        cout<<"full!";
        return ;
    }
    for(int i=0;i<l.len;i++)
    {
        cout<<"age:["<<l.data[i].age<<"],id:["<<l.data[i].id<<"],score:["<<l.data[i].score<<"],len:["<<l.len<<"]."<<endl;
    }
    printf("cout is ok\n");
}

void insert_cy(List &l,Stu s)
{
    l.data[l.len] = s;
    l.len++;
    printf("Model one insert is ok!\n");
}

void insert_in_cy(List &l)
{
    Stu s;
    int var_age;
    int var_id;
    int var_score;
    cout<<"Please input id、age and score"<<endl;
    cin>>var_age>>var_id>>var_score;
    s.age = var_age;
    s.id = var_id;
    s.score = var_score;
    l.data[l.len] = s;
    l.len++;
    printf("Model two insert is ok!\n");
}

void delete_cy(List &l,int a)
{
    for(int i=a;i<l.len;i++)
    {
        l.data[i]=l.data[i+1];
    }
    l.len--;
    cout<<"delete is ok"<<endl;
}

void exchange_cy(Stu &s1,Stu &s2){
    int var_age;
    int var_id;
    int var_score;
    var_score = s1.score;
    s1.score = s2.score;
    s2.score = var_score;

    var_age = s1.age;
    s1.age = s2.age;
    s2.age = var_age;

    var_id = s1.id;
    s1.id = s2.id;
    s2.id = var_id;

}

void sort_cy(L& l){
    for(int i=0;i<l.len;i++){
        for(int j=i+1;j<l.len;j++){
            if(l.data[i].score<l.data[j].score)
            {
                exchange_cy(l.data[i],l.data[j]);
            }
        }
    }
}

int main()
{
    L l;
    init(l);
    Stu s1={1,18,80};
    Stu s2={1,18,90};
    Stu s3={1,18,70};
    Stu s4={1,18,20};
    insert_cy(l,s1);
    insert_cy(l,s2);
    insert_cy(l,s3);
    insert_cy(l,s4);
    insert_in_cy(l);
    display_cy(l);
    sort_cy(l);
    display_cy(l);
    return 0;
}

 

© 著作权归作者所有

共有 人打赏支持
cyleft
粉丝 1
博文 31
码字总数 10068
作品 0
九江
程序员
学Java方向的学生实习工作好找吗?

我是这个大三的学生,是学Java方向的,我想知道,实习的工作好找吗?应该会什么?目前会SE、EE,数据库MySQL、 sqlserver。sql语句也会,C语言,c++也会一点。可以用框架做增删改查。这样够了...

明哥聊求职
05/26
0
0
C语言/C++编程新手入门基础知识整理学习

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

小辰带你看世界
04/01
0
0
C++泛型线性查找算法——find

C++泛型线性查找算法——find 《泛型编程和STL》笔记及思考。 线性查找可能是最为简单的一类查找算法了。他所作用的数据结构为一维线性的空间。这篇文章主要介绍使用 C++ 实现泛型算法 find...

何必诗债换酒钱
07/17
0
0
C语言编程学习项目实战:图书管理系统

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

小辰带你看世界
06/04
0
0
C语言编程基础入门学习数据结构中队列的实现与操作

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

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
26分钟前
1
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
31分钟前
3
0
发现抓包软件fiddler的bug

1个请求他跳转之后,直接400,被拦在了Apache,使用fiddler 的,replay requests 是同样的结果,但是replay composer确是正常的。 也就是说这replay requests 是发原来的包,replay composer...

NLGBZJ
41分钟前
1
0
linux screen 命令详解

shell关闭后, 主机仍然运行 screen命令 启动jenkins以后, screen, 然后按ctrl+a 再按d 这样暂停了子界面, 这时候回到了父界面 用screen –ls查看目前子界面的状态 [root@free /]# screen -l...

SuShine
42分钟前
2
0
mac机器切换无线网络导致网页不能打开的问题

问题: 公司和家里使用不同的WI-FI,每次从家到公司时自动切换网络后,公司的许多地址不能访问, ping域名是可以ping同的,但是网页却打不开... 问题分析: 初步猜想是DNS缓存的问题? 对于MAC系统没...

Lennie002
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部