Seemyeyes7 2020-05-26 14:47 采纳率: 50%
浏览 307
已结题

C++Buider做机票预订系统或者人事管理系统(二选一)

本科二年级课程实验设计(要求功能完整实现且无错能正常运行)

1.机票预订系统功能的基本要求:
(1) 每个航班信息的输入。
(2) 每个航班的坐位信息的输入;
(3) 当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单;
(4) 旅客在飞机起飞前一天凭取票通知交款取票;
(5) 旅客能够退订机票;
(6) 能够查询每个航班的预定情况、计算航班的满座率。
//////////////////////////////////////////////////////////////////////////////

2.人事管理系统
系统功能的基本要求:
(1) 员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。
(2) 员工各种信息的修改;
(3) 对于转出、辞职、辞退、退休员工信息的删除;
(4) 按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-26 17:57
    关注
    /*******************************list.h**********************/
    #include <iostream>
    #include <malloc.h>
    #include <string.h>
    
    using namespace std;
    typedef struct TK{
         char Name[20];
         int SeatId;
         struct TK *next;
    }Ticket;
    
    
    typedef struct FLY
    {
        char FlightId[10];
        int Seat[50];
        Ticket *PersonHead;
        struct FLY *next;
    }Flight;
    
    
    class Person{
    public:
        void ListInitiate(Flight **head);
        bool Check(int *Seat,int Ch);
        void Insert(Flight *head);
        int Delete(Flight *head);
        void show(Flight *head);
        void Search(Flight *head);
        void AddFlght(Flight *head);
        void DeleteFlght(Flight *head);
    };
    
    /*******************************main.cpp**********************/
    #include "list.h"
    
    int menu()
    {
        int option;
        cout<<endl<<endl;
        cout<<"主菜单"<<endl;
        cout<<"  1.Booking the ticket of flighting"<<endl;
        cout<<"  2.Cancel the flighting"<<endl;
        cout<<"  3.Display the information "<<endl;
        cout<<"  4.Search"<<endl;
        cout<<"  5.Add a Flight"<<endl;
        cout<<"  6.Delete a Flight"<<endl;
        cout<<"  0.Exit"<<endl<<endl;
        cout<<"Please input your option:";
        cin>>option;
        getchar();
        cout<<endl;
        if(option>=0&&option<=6)
             return option;
        else 
            return -1;
    }
    int main()
    {   
    
      cout<<"------------------------->航班管理系统<<<<-----------------------------"<<endl;
      cout<<"                      欢迎你使用该航班系统"<<endl;
       Flight *head;
       Person P;
        P.ListInitiate(&head);
        while(true)
        {
            switch(menu( ))
            {
            case 1:P.Insert(head);break;   //预订
            case 2:P.Delete(head);break;   //取消
            case 3:P.show(head);break;     //显示
            case 4:P.Search(head);break;     //查询
            case 5:P.AddFlght(head);break;  //添加航班
            case 6:P.DeleteFlght(head);break; //删除航班
            case 0:exit(0);
            default:cout<<"Choice error!\n";
            }
        }    
         return 0;
    }
    /*****************************************passenger.cpp*************************/
    #include "List.h"
    void Person::ListInitiate(Flight **head)
    {
        int count=0;
        *head = (Flight *)malloc(sizeof(Flight));
        (*head)->PersonHead=(Ticket *)malloc(sizeof(Ticket));
        (*head)->PersonHead->next=NULL;
        (*head)->next=NULL;
        for(int i=0;i<50;i++)
        {
            (*head)->Seat[i]=0;
        }
    }
    
    bool Person::Check(int *Seat,int Ch)
    {
        int i;
        for(int i=0;i<50;i++)
        {
            if(Ch==i&&Seat[i]!=1)return 1;
        }
        return 0;
    }
    Flight* Index(Flight *head,char *Id)
    {
        Flight *p=head->next;
    
        while(p)
        {
            if(strcmp(p->FlightId,Id)==0)
            {
                return p;
            }
            p=p->next;
        }
    
        return NULL;
    }
    /*******************************预定******************************/
    void Person::Insert(Flight *head)
    {
        int count=0;
        int Ch;
        Flight *s=head;
    
        if(s->next==NULL)
        {
            cout<<"暂无航班!"<<endl;
            return ;
        }
        cout<<"航班列表:"<<endl;
        s=s->next;
        while(s!=NULL)
        {
            puts(s->FlightId);
            count++;
            if(count%5==0)
                cout<<"\n";
            s=s->next;
        }
        count=0;
        char FID[10];
        cout<<"输入航班ID:";
        gets(FID);
        s=Index(head,FID);
        if(s==NULL)
        {
            cout<<"输入ID有误"<<endl;
            return;
        }
        cout<<endl;
        cout<<"有以下座位可供选择:"<<endl;
        for(int i=0;i<50;i++)
        {
            if(s->Seat[i]!=1)
            {
                cout<<i<<"号"<<"\t";
                count++;
                if(count%5==0)
                    cout<<"\n";
            }
        }
        cout<<endl;
        cout<<"输入座位号:\n";
        cin>>Ch;
        getchar();
        if(!Check(head->Seat,Ch))
        {
            cout<<"This Seat have been booked or it is non-existent";
            return ;
        }
        s->Seat[Ch]=1;
        char name[20];
        cout<<endl;
        cout<<"Input your Name:";
        gets(name);
        Ticket *p=s->PersonHead,*q;
    
        while(p->next!=NULL)
        {   
            if(strcmp(p->next->Name,name)>0)
                break;
            p=p->next;
        }
    
        q=(Ticket *)malloc(sizeof(Ticket));
        q->next=p->next;
        p->next=q;
        strcpy(q->Name,name);
        q->SeatId=Ch;
    }
    
    /*******************************取消预定******************************/
    int Person::Delete(Flight *head)
    {
        char name[20],FID[10];
        cout<<"Input your Name:";
        gets(name);
        getchar();
        Flight *s;
        cout<<"Input the Flight ID:";
        gets(FID);
        s=Index(head,FID);
        if(s==NULL)
        {
            cout<<"输入ID有误"<<endl;
            return 0;
        }
    
        Ticket *p=s->PersonHead->next,*pre=s->PersonHead;
        int flag=0;
        while(p!=NULL)
        {
            if(strcmp(p->Name,name)==0){
                flag=1;
                break;  
            }
            pre=p;
            p=p->next;
        }
        if(flag==1){
            pre->next=p->next;
            s->Seat[p->SeatId]=0;
            free(p);
            cout<<"你的机票已经取消成功";
        }
        else 
        {
            cout<<"您还没订票\n";
            return 0;   
        }
        return 1;
    }
    /*******************************显示信息******************************/
    void Person::show(Flight *head)
    {
        Flight *s;
        char FID[10];
        cout<<"Input The Flight ID:";
        gets(FID);
        s=Index(head,FID);
        if(s==NULL)
        {
            cout<<"输入ID有误"<<endl;
            return;
        }
        Ticket *p=s->PersonHead->next;
        if(p==NULL)
        {
            cout<<"还没乘客订票"<<endl;
            return;
        }
        while(p!=NULL)
        {
            cout<<"乘客: "<<p->Name<<"   座位号:" <<p->SeatId;
            p=p->next;
        }
    }
    
    /*******************************查询相关信息******************************/
    void Person::Search(Flight *head)
    {
        char name[20];
        cout<<"Input Your Name:";
        gets(name);
        Flight *s;
        char FID[10];
        cout<<"Input The Flight ID:";
        gets(FID);
        s=Index(head,FID);
        if(s==NULL)
        {
            cout<<"输入ID有误"<<endl;
            return;
        }
        Ticket *p=s->PersonHead->next;
        int flag=0;
        while(p!=NULL)
        {
            if(strcmp(p->Name,name)==0){
                flag=1;
                break;  
            }
            p=p->next;
        }
        if(flag==1){
            cout<<name<<"  已订机票"<<endl;
        }
        else 
        {
            cout<<name<<"  未订机票"<<endl;
        }
    }
    /*******************************增加航班**********************************/
    void Person::AddFlght(Flight *head)
    {
        char FlightID[10];
        Flight *p=head,*q;
        cout<<"  输入航班ID:";
        gets(FlightID);
        while(p->next)
        {
            p=p->next;
        }
    
        ListInitiate(&q);
        p->next=q;
        strcpy(q->FlightId,FlightID);
        cout<<"——航班已添加成功!";
    }
    /**********************************删除航班*******************************************/
    void Person::DeleteFlght(Flight *head)
    {
        char FlightID[10];
        int flag=0;
        Flight *p=head->next,*q=head;
    
        int count=0;
        Flight *s=head;
    
        if(s->next==NULL)
        {
            cout<<"  暂无航班!"<<endl;
            return ;
        }
        cout<<"  航班列表:"<<endl;
        s=s->next;
        while(s!=NULL)
        {
            cout<<s->FlightId<<endl;
            count++;
            if(count%5==0)
                cout<<"\n";
            s=s->next;
        }
        cout<<"  输入航班ID:";
        gets(FlightID);
        while(p)
        {
            if(strcmp(p->FlightId,FlightID)==0)
            {
                flag=1;break;
            }
            q=p;
            p=p->next;
        }
        if(flag==0)
        {
            cout<<"  该航班ID不存在!";
            return ;
        }
        q->next=q->next->next;
        free(p);
        cout<<"  航班已删除!\n";
    }
    
    

    https://blog.csdn.net/haoxuexiaolang/article/details/78907090

    评论

报告相同问题?

悬赏问题

  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)