歡迎使用CSDN-markdown編輯器

一個簡單c++程序,大一學生的期末作業。

#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
#include <stdlib.h>

using namespace std;

class Course
{
public:
    int courseNumber;
    string courseName,major,quality,courseHour,credit;
    Course *next;
    Course *pre;
    void setcourseName()
    {
        cin>>courseName;
    }
    void setcourseNumber()
    {
        cin>>courseNumber;
    }
    void setmajor()
    {
        cin>>major;
    }
    void setquality()
    {
        cin>>quality;
    }
    void setcourseHour()
    {
        cin>>courseHour;
    }
    void setcredit()
    {
        cin>>credit;
    }

};

class linklist
{
public:
    Course *present,*t,*head;
    void insert_one();        //插入
    void delete_data();    //刪除
    void setdata();       //修改
    bool check();     //檢查
    void creat();     //jianli
    void output();    //輸出
    void setmore();   //批量
    void menu();
    void save();
};

void linklist::save()
    {
        ofstream write;
        write.open("sort.text",ios::out);
            t = head;
            while(t->next != NULL)
            {
                write<<t->courseNumber<<"\t"<<t->courseName<<"\t"<<t->major<<"\t"<<t->quality<<"\t"<<t->courseHour<<"\t"<<t->credit<<"\n";
                t = t -> next;
            }

    }
void linklist::menu()
{
    cout<<"歡迎訪問課程信息管理系統"<<endl;
    cout<<"**************輸入0退出操作*********"<<endl;
    cout<<"1.************建立課程信息**********"<<endl;
    cout<<"2.************查詢課程信息**********"<<endl;
    cout<<"3.************將課程信息列出********"<<endl;
    cout<<"4.************刪除課程信息**********"<<endl;
    cout<<"5.************修改課程信息**********"<<endl;
    cout<<"6.************批量插入課程信息******"<<endl;
    cout<<"7.************保存信息**************"<<endl;
}
void linklist::creat()
{
    present = new Course;
    head = present;
    present->next = NULL;
    present->pre = NULL;
}
void linklist::output()
{
    cout<<"    課程號    課程名     所屬專業      性質      學時      學分"<<endl;
    present = head;
    while(present->next != NULL)
    {
        cout<<setw(8)<<present->courseNumber<<setw(8)<<present->courseName<<setw(11)<<present->major<<setw(15)<<present->quality<<setw(10)<<present->courseHour<<setw(8)<<present->credit<<endl;
        present = present->next;
    }
    getchar();
    getchar();
}

void linklist::insert_one()               //插入的實現
{
    present = new Course;
    head->pre = present;
    present->next = head;
    present->pre = NULL;
    head = present;
    cout<<"輸入課程號"<<endl;
    cin>>present->courseNumber;
    cout<<"輸入課程名"<<endl;
    cin>>present->courseName;
    cout<<"輸入所屬專業"<<endl;
    cin>>present->major;
    cout<<"輸入性質"<<endl;
    cin>>present->quality;
    cout<<"輸入學時"<<endl;
    cin>>present->courseHour;
    cout<<"輸入學分"<<endl;
    cin>>present->credit;
}

void linklist::delete_data()          //刪除數據的實現
{
    string courseNumber;
    cout<<"請輸入要刪除的課程名"<<endl;
    check();
    t = head;
    while(t->next != present)
    {
        t = t -> next;
    }
    if(t==NULL)
    {
        cout<<"沒有找到該課程"<<endl;
    }
    else
    {
        t->next = present->next;
        present->pre = t;
        delete present;
        cout<<"刪除成功"<<endl;
    }

}

bool linklist::check()             //檢索
{
    present = head;
    string thename;
    cin>>thename;
    while(present->next != NULL)
    {
        if(thename == present->courseName)
        {
            cout<<setw(8)<<present->courseNumber<<setw(8)<<present->courseName<<setw(8)<<present->major<<setw(8)<<present->quality<<setw(8)<<present->courseHour<<setw(8)<<present->credit<<endl;
            getchar();
            getchar();
            return true;
        }
        else
        {
            present = present->next;
            continue;
        }
    }
    cout <<"查無此人"<<endl;
    getchar();
    getchar();
    return false;
}

void linklist::setdata()             //修改數據
{
    string the_name;
    int subject;
    cout<<"輸入課程名"<<endl;
    if(check())
    {
        while(1)
        {
            cout<<"1課程號    2課程名"<<endl;
            cout<<"3專業      4性質"<<endl;
            cout<<"5學時      6學分"<<endl;
            cout<<"   0修改完畢,返回上一級菜單 "<<endl;
            cout<<"輸入需要操作的編號"<<endl;

            cin>>subject;
            switch(subject)
            {
            case 1:
                present->setcourseNumber();
                break;
            case 2:
                present->setcourseName();
                break;
            case 3:
                present->setmajor();
                break;
            case 4:
                present->setquality();
                break;
            case 5:
                present->setcourseHour();
                break;
            case 6:
                present->setcredit();
                break;
            default:
            {
                cout<<"回到上級菜單"<<endl;
                return;
            }
            }
            cout<<"修改成功"<<endl;
        }
    }
}

void linklist::setmore()          //建立數據個數
{
    cout<<"請輸入添加學生人數"<<endl;
    int number;
    cin>>number;
    while(number--)
    {
        insert_one();
    }
}

int main()
{
    linklist X;
    X.menu();
    X.creat();
    while(true)
    {
        system("cls");
        X.menu();
        int choice;
        cout<<"請輸入操作序號"<<endl;
        cin>>choice;
        switch(choice)
        {
        case 0:
            exit(0);
        case 1:
            X.insert_one();
            break;
        case 2:
            cout<<"請輸入查詢的課程名"<<endl;
            X.check();
            break;
        case 3:
            X.output();
            break;
        case 4:
            X.delete_data();
            break;
        case 5:
            X.setdata();
            break;
        case 6:
            X.setmore();
            break;
        case 7:
            X.save();
            break;
        default:
            cout<<"對不起 無此功能"<<endl;
            break;
        }
        if (!choice)
            break;
    }
    return 0;
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章