返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >基于C++实现信息管理系统
  • 476
分享到

基于C++实现信息管理系统

2024-04-02 19:04:59 476人浏览 泡泡鱼
摘要

基于c++设计的信息管理系统,供大家参考,具体内容如下 1、使用类+函数实现2、使用STL容器的vector3、fstream的文件存储方式4、xls文件读入 写出5、数据的四大功能

基于c++设计的信息管理系统,供大家参考,具体内容如下

1、使用类+函数实现
2、使用STL容器的vector
3、fstream的文件存储方式
4、xls文件读入 写出
5、数据的四大功能增删改查
6、一定的输入容错能力

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <iOStream>
#include <windows.h>
#include <vector>
#include <fstream>
#include <iterator>

#define Num 20
#define FALSE 0
#define TRUE 1
#define PATH "./file.xls"

using namespace std;

class LiangshanHeros
{

public:
    char name[Num]; //梁山好汉姓名
    int age;        //年龄
    char loc[Num];  //籍贯
    double bounty;   //悬赏金

public:

    LiangshanHeros()
    {
        age = 18;
        bounty = 6666;
    }

    LiangshanHeros(char* _name, int _age, char* _loc, double the_bounty)
    {
        strcpy(name, _name);
        age = _age;
        strcpy(loc, _loc);
        bounty = the_bounty;
    }

    ~LiangshanHeros()
    {

    }


public:
    char* getName();
    char* getLoc();
    double getBounty();
    int getAge();

public:
    int setName(char*);
    int setAge(int);
    int setLoc(char*);
    int setprice(double);

public:
    void showMenu();
};

class params : public LiangshanHeros {

public :
    params() {

    }
    ~params() {

    }

public:

    void InitSet();
    void showMensu();
};

char* LiangshanHeros::getName()
{

    return name;
}

char* LiangshanHeros::getLoc()
{

    return loc;
}

double LiangshanHeros::getBounty()
{

    return bounty;
}

int LiangshanHeros::getAge()
{

    return age;
}

int LiangshanHeros::setName(char* _name)
{
    if (strlen(_name) > 20 || strlen(_name) < 2)
    {
        cout << "重新输入梁山好汉姓名 长度[0 - 20]" << endl;
        return FALSE;
    }
    else
    {
        strcpy(name, _name);
        return TRUE;
    }

}

int LiangshanHeros::setAge(int _age)
{
    if (_age > 100 || _age < 0)
    {
        cout << "重新输入年龄 大小[0 - 100]" << endl;
        return FALSE;
    }
    else
    {
        age = _age;
        return TRUE;
    }

}

int LiangshanHeros::setLoc(char* _loc)
{
    if (strlen(_loc) > 20 || strlen(_loc) < 2)
    {
        cout << "重新输入梁山好汉籍贯 长度[0 - 20]" << endl;
        return FALSE;
    }
    else
    {
        strcpy(loc, _loc);
        return TRUE;
    }
}

int LiangshanHeros::setprice(double the_Bouney)
{
    if (the_Bouney < 0)
    {
        cout << "重新输入价格 大小[0 - &]" << endl;
        return FALSE;
    }
    else
    {
        bounty = the_Bouney;
        return TRUE;
    }
}


void setAll(LiangshanHeros* par)
{
    while (1)
    {
        cout << "输入梁山好汉姓名: " << endl;
        char n[Num] = { 0 };
        cin >> n;
        if (par->setName(n) == TRUE) break;
    }

    while (1)
    {
        cout << "输入年龄: " << endl;
        int a;
        cin >> a;
        if (par->setAge(a) == TRUE) break;
    }

    while (1)
    {
        cout << "输入梁山好汉籍贯: " << endl;
        char l[Num] = { 0 };
        cin >> l;
        if (par->setLoc(l) == TRUE) break;
    }

    while (1)
    {
        cout << "输入赏金: " << endl;
        double p;
        cin >> p;
        if (par->setprice(p) == TRUE) break;
    }
}

LiangshanHeros* set()
{
    LiangshanHeros* par = new LiangshanHeros;
    //do set
    setAll(par);
    return par;
}

void search(vector<LiangshanHeros*>& vec, char* name)
{
    int i = 0;
    int flag = 0;

    for (i = 0; i < vec.size(); i++)
    {
        if (strcmp(vec[i]->name, name) == 0)
        {
            cout << "查找成功 " << endl;
            cout << vec[i]->getName() << endl;
            cout << vec[i]->getAge() << endl;
            cout << vec[i]->getLoc() << endl;
            cout << vec[i]->getBounty() << endl;
            flag = 1;
        }
    }

    //case faild
    if (flag == 0)
    {
        cout << "查找失败" << endl;
    }

}

void deletePar(vector<LiangshanHeros*>& vec, char* name)
{
    int i = 0;
    int flag = 0;

    for (i = 0; i < vec.size(); i++)
    {
        if (strcmp(vec[i]->name, name) == 0)
        {
            cout << "查找成功 " << endl;
            cout << vec[i]->getName() << endl;
            cout << vec[i]->getAge() << endl;
            cout << vec[i]->getLoc() << endl;
            cout << vec[i]->getBounty() << endl;

            vec.erase(vec.begin() + i);

            //sp case
            i--;
            cout << "删除成功 " << endl;
            flag = 1;
        }
    }

    if (flag == 0)
    {
        cout << "未找到该梁山好汉" << endl;
    }
}

void change(vector<LiangshanHeros*>& vec, char* name)
{
    int i = 0;
    int flag = 0;

    for (i = 0; i < vec.size(); i++)
    {
        if (strcmp(vec[i]->name, name) == 0)
        {
            cout << "查找成功 " << endl;
            cout << vec[i]->getName() << endl;
            cout << vec[i]->getAge() << endl;
            cout << vec[i]->getLoc() << endl;
            cout << vec[i]->getBounty() << endl;
            cout << "请输入需要修改变量的值:" << endl;
            cout << "1.梁山好汉姓名  2.年龄 3.籍贯 4.赏金" << endl;
            int choice;

            while (1)
            {
                cin >> choice;
                if (choice > 4 || choice < 0) continue;
                else break;
            }

            cout << "输入修改后的值" << endl;

            switch (choice)
            {
            case 1:
            {
                while (1)
                {
                    cout << "输入梁山好汉姓名: " << endl;
                    char n[Num] = { 0 };
                    cin >> n;
                    if (vec[i]->setName(n) == TRUE) break;
                }
                break;
            }
            case 2:
            {
                while (1)
                {
                    cout << "输入年龄: " << endl;
                    int a;
                    cin >> a;
                    if (vec[i]->setAge(a) == TRUE) break;
                }
                break;
            }
            case 3:
            {
                while (1)
                {
                    cout << "输入梁山好汉籍贯: " << endl;
                    char l[Num] = { 0 };
                    cin >> l;
                    if (vec[i]->setLoc(l) == TRUE) break;
                }

                break;
            }
            case 4:
            {
                while (1)
                {
                    cout << "输入赏金: " << endl;
                    double p;
                    cin >> p;
                    if (vec[i]->setprice(p) == TRUE) break;
                }
                break;
            }

            }

            flag = 1;
        }
    }


    if (flag == 0)
    {
        cout << "未找到该梁山好汉" << endl;
    }
}

void inputFile(vector<LiangshanHeros*>& vec)
{
    ofstream ofs;
    ofs.open(PATH, ios::ate | ios::binary);
    int i = 0;

    if (vec.size() < 0)
    {
        cout << "还未录入数据" << endl;
        return;
    }

    for (i = 0; i < vec.size(); i++)
    {
        ofs << vec[i]->name << "\t" << vec[i]->age << "\t" << vec[i]->loc << "\t" << vec[i]->bounty;
        ofs << "\n";
    }

    cout << "数据录入成功 存储于 ./file.xls中" << endl;

    ofs.close();
}

void outputFile(vector<LiangshanHeros*>& vec)
{
    ifstream ifs;
    ifs.open(PATH, ios::binary | ios::in);
    if (ifs.fail()) {

        cout << "文件未创建 请先录入数据" << endl;
        return;
    }
    int i = vec.size();
    int age;
    double price;
    char loc[Num] = { 0 };
    char name[Num] = { 0 };

    //判断是否为文件结尾
    while (!ifs.eof())
    {
        LiangshanHeros* par = new LiangshanHeros;
        ifs >> par->name >> par->age >> par->loc >> par->bounty;
        vec.push_back(par);
    }

    cout << "file.xls 文件读入成功  数据已写入" << endl;

    ifs.close();
}

void showAllParam(vector<LiangshanHeros*>& vec)
{
    int i = 0;

    for (i = 0; i < vec.size(); i++)
    {
        cout << "这是 第" << i + 1 << "位梁山好汉 :" << endl;
        cout << "   姓名 :" << vec[i]->name << endl;
        cout << "   年龄 :" << vec[i]->age << endl;
        cout << "   籍贯 :" << vec[i]->loc << endl;
        cout << "   赏金 :" << vec[i]->bounty << endl;
        cout << endl;
    }
}

void LiangshanHeros::showMenu()
{
    HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);//句柄
    SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED);
    printf("\t基于梁山好汉的文件存储系统\n");
    SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
    
    printf("\t丨 1.添加梁山好汉                \n");
    printf("\t丨 2.查找梁山好汉         \n");
    printf("\t丨 3.删除梁山好汉         \n");
    printf("\t丨 4.修改梁山好汉信息         \n");
    printf("\t丨 5.读取已存在信息                 \n");
    printf("\t丨 6.保存信息                \n");
    printf("\t丨 7.查阅所有信息                 \n");
    printf("\t丨 8.退出              \n");
    SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_RED);
    printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\t");
    SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_BLUE);
    printf("输入您的选择(1-8):");
}

int main()
{
    system("mode con cols=135 lines=30");//控制台 宽度135 高度20

    HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);//句柄
    SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_RED);

    LiangshanHeros* par = new LiangshanHeros;
    par->showMenu();
    vector<LiangshanHeros*> vec;
    char name[Num] = { 0 };

    SetConsoleTextAttribute(hout, FOREGROUND_INTENSITY | FOREGROUND_RED);
    while (1)
    {
        int num;
        cin >> num;
        switch (num)
        {
        case 1:
        {
            vec.push_back(set());
            cout << "添加成功" << endl;
            break;
        }
        case 2:
        {
            printf("输入查找的梁山好汉名称:");
            cin >> name;
            search(vec, name);
            break;
        }
        case 3:
        {
            printf("输入删除的梁山好汉名称:");
            cin >> name;
            deletePar(vec, name);
            break;
        }
        case 4:
        {
            printf("输入查找的梁山好汉名称:");
            cin >> name;
            change(vec, name);
            break;
        }
        case 5:
        {
            outputFile(vec);
            break;
        }
        case 6:
        {
            inputFile(vec);
            break;
        }
        case 7:
        {
            showAllParam(vec);
            break;
        }
        case 8:
        {
            cout << "kill process .. " << endl;
            exit(0);
            break;
        }

        }
        system("pause");
        system("cls");
        par->showMenu();
    }
    return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 基于C++实现信息管理系统

本文链接: https://lsjlt.com/news/143037.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于C++实现信息管理系统
    基于c++设计的信息管理系统,供大家参考,具体内容如下 1、使用类+函数实现2、使用STL容器的vector3、fstream的文件存储方式4、xls文件读入 写出5、数据的四大功能...
    99+
    2024-04-02
  • 基于C++如何实现信息管理系统
    这篇“基于C++如何实现信息管理系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于C++如何实现信息管理系统”文章吧。使...
    99+
    2023-06-29
  • C++实现信息管理系统
    本文实例为大家分享了C++实现信息管理系统的具体代码,供大家参考,具体内容如下 有一个信息管理系统,要求检查每一个登录系统的用户(User)的用户名和口令,系统检查合格以后方可登录系...
    99+
    2024-04-02
  • 基于Python实现简易学生信息管理系统
    目录一、系统简介二、步骤分析三、需求实现四、具体实现4.1 添加学生信息的函数4.2 删除学生信息的函数4.3 修改学生信息的函数4.4 查询学生信息的函数4.5 显示所有学生信息五...
    99+
    2024-04-02
  • 基于Springboot实现送水公司信息管理系统
    项目编号:BS-XX-014 项目描述 springboot实现的送水后台管理系统 运行环境 jdk8+tomcat7+mysql+IntelliJ IDEA+maven 项目技术(...
    99+
    2024-04-02
  • 基于php+MySql实现学生信息管理系统实例
    php大作页,使用php+mysql技术,实现了基本的分页,信息查询,修改,增加,删除操作 有以下几个基本页面 登录页面 首页 修改学生基本信息 修改学生学籍信息 修改学生成绩信息 增加学生信息 ...
    99+
    2022-05-21
    php学生信息管理系统 php MySql 信息管理系统
  • C/C++实现图书信息管理系统
    本文实例为大家分享了c/c++实现图书信息管理系统的具体代码,供大家参考,具体内容如下 程序流程图 源代码 #include <stdio.h> #include ...
    99+
    2024-04-02
  • C++实现简单信息管理系统
    本文实例为大家分享了C++实现简单信息管理系统的具体代码,供大家参考,具体内容如下 信息管理系统 因为学校布置了写一个信息管理系统的作业,所以写下了这个信息管理系统,这是用cpp写的...
    99+
    2024-04-02
  • C++实现图书信息管理系统
    本文实例为大家分享了C++实现图书信息管理系统的具体代码,供大家参考,具体内容如下 1.题目: 类型有:编号:ISBN书名:name价格:price 完成如下的功能: ①录入:从键盘...
    99+
    2024-04-02
  • C++实现职工信息管理系统
    本文实例为大家分享了c++实现职工信息管理系统的具体代码,供大家参考,具体内容如下 1、项目需求 2、功能实现的具体思路为: (1) 经行职工信息的读入,用while循环进行读入,...
    99+
    2024-04-02
  • 基于php的图书信息管理系统
    本系统采用phpstudy开发平台,采用PHP和MySQL数据库进行开发,开发工具为HBuilder。 phpStudy是一个PHP调试环境的程序集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,...
    99+
    2023-10-03
    php mysql apache
  • 基于JAVA的学生信息管理系统
    目录 前言 一、需求分析 二、开发环境、工具 1.开发语言 2.开发模式 三、系统需求分析 3.1系统的背景 3.2系统的功能需求 四、系统设计概要 4.1系统体系结构设计 4.2功能模块结构设计 五、数据库设计 1.学生信息数据表 2.班...
    99+
    2023-10-05
    java mysql eclipse 课程设计
  • 基于C++实现酒店管理系统
    现今大多数宾馆所提供的服务样式都各式各样,规模大小也是各有不同,但是归总下来,不可或缺的两类模块还是顾客和工作人员。由于对宾馆行业内部没有很深刻的理解,此次系统设计包括数据库和功能模...
    99+
    2024-04-02
  • 基于C++实现职工管理系统
    本文实例为大家分享了C++实现职工管理系统的具体代码,供大家参考,具体内容如下 1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 利用C++来实现一个基于多态的职工管理...
    99+
    2024-04-02
  • 基于C#实现宿舍管理系统
    目录前言一、项目创建二、主页面设计三、主页面代码1.登录按钮2.退出按钮3.注册按钮4.SQL配置5.主页总体代码前言 本次项目主要是因为我们的大作业要求要求,因为网上C#的资源不太...
    99+
    2024-04-02
  • C++实现教职工信息管理系统
    本文实例为大家分享了C++实现教职工信息管理系统的具体代码,供大家参考,具体内容如下 一.问题描述 一个小公司包含四类人员:经理,技术人员,销售人员和销售经理,各类人员的工资计算方法...
    99+
    2024-04-02
  • 基于java SSM springboot实现抗疫物质信息管理系统
    主要功能设计: 用户、区域、物质类型、物质详情、物质申请和审核以及我的申请和通知公告以及灵活控制菜单权限 主要技术实现:spring、 springmvc、 springboot、...
    99+
    2024-04-02
  • C++实现学生信息管理系统(Map实现)
    本文实例为大家分享了C++实现学生信息管理系统的具体代码,供大家参考,具体内容如下 1、 作品的功能描述: 实现一个学生信息管理系统,通过对学生信息类中的成员进行增、删、改、查从而实...
    99+
    2024-04-02
  • Python实现信息管理系统
    本文实例为大家分享了Python实现信息管理系统的具体代码,供大家参考,具体内容如下 """ 项目名称 = 'python' 文件名= '学生信息管理系统' 作者 = '向日葵' "...
    99+
    2024-04-02
  • 基于PHP+MySQL学生信息管理系统的设计与实现
    我国是一个高等教育逐渐普及的国度,相应的每年也有上百万的大学生入校,如此庞大的学生数量如何进行更加科学的管理是教育工作者一直关心的一个问题,为了能够实现高校对学生信息管理的科学化,信息化,我们开发了本...
    99+
    2023-09-07
    php 数据库 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作