C++课设新闻信息管理系统

前言:大一C++课设

一、问题描述:

        该新闻中心应该能够及时提供最新的资讯,并且应该在显示某条新闻的同时,列出所有的相关新闻,以便于客户在最短的时间内获得最新最全的信息。考虑到新闻的时效性,新闻中心管理系统中一般都需要提供良好的维护页面,即中心管理人员可以借助后台维护管理的页面实现对新闻内容实时的更新维护。

二、功能设计:

(1)新闻标题信息分类浏览

(2)新闻详细内容及相关新闻浏览

(3)新闻管理,包括新闻的增、删、改、查

(4)新闻的按条件搜索

三、系统设计:

        该系统未存入数据内容,需要选择录入信息后才可操作。该系统未使用链表和数据库存储数据,可直接复制源代码运行

代码展示:

#include<iostream>
#include"string"
#include<fstream>
#include <stdlib.h>
#include <stdio.h>
#include "user.h"//用户
#define N 100 //N作为最大新闻总数
int f=0; //f作为开关
using namespace std;
string p; //p作为接收菜单选项的字符串

void menu(); //显示菜单
class news
{
public:
    news(){}
    void show(); //新闻信息显示
    ~news(){}
    friend class NewsList;
private:
    string num,title,writer,time,content;
};
class NewsList
{
private:
    news w[N];
    int NUM; //用来计算新闻数目,连接数据库后内的文件后计算NUM数量,现定义为0.
    int count; //用来暂时记录当前操作第几个新闻
public:
    void add(); //发布新闻信息
    void search(); //新闻信息查找
    void dele(); //新闻信息删除
    void modify(); //新闻信息修改
    void save(); //新闻信息以文件形式保存
    void show();//显示新闻信息在屏幕上
    NewsList(){
        NUM=0;
        count=0;
    }
};
void menu() //显示菜单
{
    cout<<endl;
    cout<<"***********************************************"<<endl;
    cout<<"** 新闻信息管理系统主菜单 **"<<endl;
    cout<<"                                                "<<endl;
    cout<<"** 1.发布新闻信息 **"<<endl;
    cout<<"** 2.新闻信息修改 **"<<endl;
    cout<<"** 3.新闻信息删除 **"<<endl;
    cout<<"** 4.搜索新闻信息 **"<<endl;
    cout<<"** 5.浏览新闻信息 **"<<endl;
    cout<<"** 6.新闻信息保存 **"<<endl;
    cout<<"** 0.退出       **"<<endl;
    cout<<"                                                "<<endl;
    cout<<"***********************************************"<<endl;
    cout<<endl;
}
void domain() //主菜单函数实现
{

    NewsList wl;
    while(1)
    {
        menu();
        cout<<"请选择数字编号0~6"<<endl;
        int i1;
        cin>>i1;
        while(!(i1>=0&&i1<=7))
        {
            cout<<"输入有误,请重新输入:"<<endl;
            cin>>i1;
        }
        switch(i1)
        {
            case 1:wl.add();break;
            case 2:wl.modify();break;
            case 3:wl.dele();break;
            case 4:wl.search();break;
            case 5:wl.show();break;
            case 6:wl.save();break;
            case 0:cout<<"系统退出!!"<<endl;
                exit(0);
            default:
                break;
        }
        cout<<"是否返回主菜单? Y/N"<<endl;
        cin>>p;
        if(p=="n"||p=="N")
        {
            cout<<"系统退出!!"<<endl;
            exit(0);
        }
    }
}
void NewsList::add() //发布新闻信息添加函数实现
{
    cout<<"请输入新闻信息:"<<endl;
    cout<<"编号:";
    string num;
    cin>>num;
    for(int i=0;i<NUM;i++)
        while(num==w[i].num)
        {
            cout<<"此编号已存在,请重新输入:"<<endl;
            cout<<"编号:";
            cin>>num;
        }
    w[NUM].num=num;
    cout<<"标题:";cin>>w[NUM].title;
    cout<<"作者:";cin>>w[NUM].writer;
    cout<<"发布日期";cin>>w[NUM].time;
    cout<<"内容:";cin>>w[NUM].content;
    ++NUM;
    count=NUM;
}
void news::show() //新闻信息浏览显示函数实现
{
    cout<<"编号:"<<num<<endl;
    cout<<"标题:"<<title<<endl;
    cout<<"作者:"<<writer<<endl;
    cout<<"时间:"<<time<<endl;
    cout<<"内容:"<<content<<endl;
    cout<<endl;
}
void NewsList::modify() //新闻信息修改函数实现
{
    if(NUM<=0)
    {
        cout<<"没有新闻信息存入,系统将返回主菜单"<<endl;
        menu();
    }
    cout<<"请输入需要修改新闻的编号:"<<endl;
    string num1;
    cin>>num1;
    int j=0,k;
    int flag=1;
    while(flag)
    {
        for(;j<count;j++)
        {
            if(num1==w[j].num)
            {
                flag=0;
                k=j;
                break;
            }
        }
        if(flag)
        {
            cout<<"不存在此新闻,请重新输入:"<<endl;
            j=0;
            cin>>num1;
        }
    }
    cout<<"你选择的新闻信息为:"<<endl;
    cout<<" 编号:"<<w[k].num<<endl;
    cout<<" 标题:"<<w[k].title<<endl;
    cout<<" 作者:"<<w[k].writer<<endl;
    cout<<" 时间:"<<w[k].time<<endl;
    cout<<" 内容:"<<w[k].content<<endl;

    cout<<endl;
    cout<<"***********************************************"<<endl;
    cout<<"** 1.修改编号 **"<<endl;
    cout<<"** 2.修改标题 **"<<endl;
    cout<<"** 3.修改作者 **"<<endl;
    cout<<"** 4.修改时间 **"<<endl;
    cout<<"** 5.修改内容 **"<<endl;
    cout<<"** 0.返回主菜单 **"<<endl;
    cout<<"***********************************************"<<endl;
    cout<<endl;
    cout<<"请选择数字编号0~5"<<endl;
    int i3;
    cin>>i3;
    while(i3<0||i3>5)
    {
        cout<<"输入有误,请重新输入:"<<endl;
        cin>>i3;
    }
    switch(i3)
    {
        case 1:
            cout<<"请输入新的新闻编号:";
            cin>>w[k].num;
            cout<<"修改信息已保存,现返回主菜单:"<<endl;
            menu();
            break;
        case 2:
            cout<<"请输入新的标题:";
            cin>>w[k].title;
            cout<<"修改信息已保存,现返回主菜单:"<<endl;
            menu();
            break;
        case 3:
            cout<<"请输入新的作者:";
            cin>>w[k].writer;
            cout<<"修改信息已保存,现返回主菜单:"<<endl;
            menu();
            break;
        case 4:
            cout<<"请输入新的时间:";
            cin>>w[k].time;
            cout<<"修改信息已保存,现返回主菜单:"<<endl;
            menu();
            break;
        case 5:
            cout<<"请输入新的内容:";
            cin>>w[k].content;
            cout<<"修改信息已保存,现返回主菜单:"<<endl;
            menu();
            break;
        case 0:
            menu();
        default:
            break;
    }
}
void NewsList::show() //新闻信息显示函数实现
{
    if(NUM<=0)
    {
        cout<<"没有此新闻信息存入,系统将返回主菜单"<<endl;
        menu();
    }
    else
        cout<<"已保存的新闻信息如下:"<<endl;
    for(int i=0;i<count;i++)
    {
        cout<<"***********************************************"<<endl;
        cout<<" 编号:"<<w[i].num<<endl;
        cout<<" 标题:"<<w[i].title<<endl;
        cout<<" 作者:"<<w[i].writer<<endl;
        cout<<" 时间:"<<w[i].time<<endl;
        cout<<" 内容:"<<w[i].content<<endl;
        cout<<"***********************************************"<<endl;
    }
}
void NewsList::search() //新闻信息查询函数实现
{
    if(NUM<=0)
    {
        cout<<"没有此新闻信息存入,系统将返回主菜单"<<endl;
        menu();
    }
    else
        cout<<"***********************************************"<<endl;
    cout<<"** 请选择查找方式: **"<<endl;
    cout<<"** 1.按编号查找 **"<<endl;
    cout<<"** 2.按标题查找 **"<<endl;
    cout<<"** 3.按时间查找 **"<<endl;
    cout<<"** 0.返回主菜单 **"<<endl;
    cout<<"***********************************************"<<endl;
    cout<<endl;
    cout<<"请选择数字编号0~3"<<endl;
    int i4;
    cin>>i4;
    while(i4<0||i4>3)
    {
        cout<<"输入有误,请重新输入:"<<endl;
        cin>>i4;
    }
    if(i4==1)
    {
        string num2;
        cout<<"请输入要查询的新闻编号:"<<endl;
        cin>>num2;
        int j=0,k;
        int flag=1;
        while(flag)
        {
            for(;j<count;j++)
            {
                if(num2==w[j].num)
                {
                    flag=0;
                    k=j;
                    cout<<"查询的新闻信息如下:"<<endl;
                    cout<<" 编号:"<<w[k].num<<endl;
                    cout<<" 标题:"<<w[k].title<<endl;
                    cout<<" 作者:"<<w[k].writer<<endl;
                    cout<<" 时间:"<<w[k].time<<endl;
                    cout<<" 内容:"<<w[k].content<<endl;
                    break;
                }
            }
            if(flag)
            {
                flag=0;
                cout<<"不存在此新闻!!\n返回主菜单"<<endl;
                break;
            }
        }
    }
    else if(i4==2)
    {
        string title2;
        cout<<"请输入要查询的新闻的标题:"<<endl;
        cin>>title2;
        int j2=0,k2;
        int flag2=1;
        while(flag2)
        {
            for(;j2<count;j2++)
            {
                if(title2==w[j2].title)
                {
                    flag2=0;
                    k2=j2;
                    cout<<"查询的新闻信息如下:"<<endl;
                    cout<<" 编号:"<<w[k2].num<<endl;
                    cout<<" 标题:"<<w[k2].title<<endl;
                    cout<<" 作者:"<<w[k2].writer<<endl;
                    cout<<" 时间:"<<w[k2].time<<endl;
                    cout<<" 内容:"<<w[k2].content<<endl;
                    break;
                }
            }
            if(flag2)
            {
                flag2=0;
                cout<<"不存在此新闻!!\n返回主菜单"<<endl;
                break;
            }
        }

    }
    else if(i4==3)
    {
        string time2;
        cout<<"请输入要查询的新闻时间:"<<endl;
        cin>>time2;
        int j4=0,k4;
        int flag4=1;
        while(flag4)
        {
            for(;j4<count;j4++)
            {
                if(time2==w[j4].time)
                {
                    flag4=0;
                    k4=j4;
                    cout<<"查询的新闻信息如下:"<<endl;
                    cout<<" 编号:"<<w[k4].num<<endl;
                    cout<<" 标题:"<<w[k4].title<<endl;
                    cout<<" 作者:"<<w[k4].writer<<endl;
                    cout<<" 时间:"<<w[k4].time<<endl;
                    cout<<" 内容:"<<w[k4].content<<endl;
                    break;
                }
            }
            if(flag4)
            {
                flag4=0;
                cout<<"不存在此新闻!!\n返回主菜单"<<endl;
                break;
            }
        }

    }
    else if(i4==0)
        menu();
}
void NewsList::dele() //新闻信息删除函数实现
{
    if(NUM<=0)
    {
        cout<<"没有新闻信息存入,系统将返回主菜单"<<endl;
        menu();
    }
    cout<<"请输入需要删除信息新闻的编号:"<<endl;
    string num3;
    cin>>num3;
    int j=0,k;
    int flag=1;
    while(flag)
    {
        for(;j<count;j++)
        {
            if(num3==w[j].num)
            {
                flag=0;
                k=j;
                break;
            }
        }
        if(flag)
        {
            cout<<"不存在此新闻,请重新输入:"<<endl;
            j=0;
            cin>>num3;
        }
    }
    cout<<"你选择的新闻的信息为:"<<endl;
    cout<<" 编号:"<<w[k].num<<endl;
    cout<<" 标题:"<<w[k].title<<endl;
    cout<<" 作者:"<<w[k].writer<<endl;
    cout<<" 时间:"<<w[k].time<<endl;
    cout<<" 内容:"<<w[k].content<<endl;
    cout<<endl;
    cout<<"确认删除请输入Y,返回主菜单请输入N "<<endl;
    string p;
    cin>>p;
    while(1)
    {
        if(p=="y"||p=="Y")
        {
            cout<<"新闻信息已删除!"<<endl;
            for(int i=0;i<count;i++)
                if(w[i].num==num3)
                    int j=i;
            for(;j<=count-1;j++)
                w[j]=w[j+1];
            count--;
            break;
        }
        else if(p=="n"||p=="N")
        {
            menu();
        }
        else
        {
            cout<<"输入有误,请重新输入:";
            cin>>p;
        }
    }
}
void NewsList::save() //新闻信息保存函数实现
{
    if(NUM<=0)
    {
        cout<<"没有新闻信息存入,系统将返回主菜单"<<endl;
        menu();
    }
    else
    {
        cout<<"文件正在保存......请稍候!!"<<endl;
        cout<<"数据保存成功!!!"<<endl;
        cout<<"已保存新闻信息如下:"<<endl;
        for(int i=0;i<count;i++)
        {
            cout<<"***********************************************"<<endl;
            cout<<" 编号:"<<w[i].num<<endl;
            cout<<" 标题:"<<w[i].title<<endl;
            cout<<" 作者:"<<w[i].writer<<endl;
            cout<<" 时间:"<<w[i].time<<endl;
            cout<<" 内容:"<<w[i].content<<endl;
            cout<<"***********************************************"<<endl;
        }
        cout<<"系统返回主菜单:"<<endl;
        menu();
    }
}
int main()
{
    domain();
    return 0;
}

结果展示:

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
公司员工信息管理系统旨在帮助公司高效地管理员工的基本信息及相关数据。该系统应包括员工个人信息、合同信息、薪资信息、考勤信息等多个模块,方便公司HR部门对员工信息进行全面管理和统计分析。 首先,系统应包括员工基本信息录入和管理功能,记录员工的姓名、性别、出生日期、联系方式等个人信息,并能够对员工信息进行修改和查询。其次,系统应具备合同管理功能,记录员工入职合同的起止时间、职位、薪资等信息,并提醒合同到期或签署新合同的日期。 薪资管理是员工信息管理系统的关键功能之一,系统需要记录员工的薪资结构、工资条、奖金、补贴等信息,并能够根据公司规定自动生成工资条,提高薪资核算的效率。另外,考勤管理也是系统的重要组成部分,记录员工的请假、加班、迟到早退等考勤情况,为公司考勤管理提供依据。 员工信息管理系统还应包括权限管理、数据安全及数据备份等功能,确保员工信息的安全性和稳定性。同时,系统应提供多种报表和统计分析功能,方便HR部门及管理层进行数据的查询、分析和决策。 总之,员工信息管理系统设计应该充分考虑公司内部管理需求,结合员工信息管理的实际情况,打造一个稳定、安全、高效的信息管理平台,提升公司管理效率和员工满意度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值