求个代写c语言程序有偿可谈价格

【功能要求】
1、系统以菜单方式工作,
2、图书信息录入功能(图书信息用文件保存)--输入。
3、图书信息浏览功能-—输出。
4、图书信息查询功能(查询方式)有:按书名查询 和按作者名查询两种方式。
5、图书信息的删除与修改(可选项)。
【难点与提示】
根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息输入,浏览,查询,删除和修改等功能的操作,建立相应的子函数来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。
设计了一个图书信息文件,输入新图书信息,浏览图书,修改,删除图书等一些操作时
在图书信息文件上运行。运用C语言的文件功能,此文件也是整个程序的主线。
图32.1 给出了图书信息系统主菜单,图32.2给出了图书查询界面。

img

我可以写

https://blog.csdn.net/wangmeng0804/article/details/127655704?spm=1001.2014.3001.5502
可参考我博客内容 大同小异

仅供参考:

#include <string>
#include <iostream>
#include <sstream>
using namespace std;
stringstream ss;  //全局变量,后面用来将int类型数据转换成字符串类型
class Reader {
private:
    string readerName;  //读者姓名
    int    readerAge;   //读者年龄
    string readerGender;//读者性别
    string readerCode;  //读者编号
public:
    Reader() {}//默认构造函数
    Reader(string name, int age, string gender, string code):readerName(name), readerAge(age), readerGender(gender), readerCode(code) {}//构造函数
    string getName() {//获取读者姓名
        return readerName;
    }
    int getAge() {//获取读者年龄
        return readerAge;
    }
    string getGender() {//获取读者性别
        return readerGender;
    }
    string getCode() {//获取读者编号
        return readerCode;
    }
    void setCode(string code) {//设置读者编号
        readerCode = code;
    }
    void setName(string name) {//设置读者姓名
        readerName = name;
    }
    void setAge(int age) {//设置读者年龄
        readerAge = age;
    }
    void setGender(string gender) {//设置读者性别
        while (true) {  //用来判断性别的属性值是否输入正确,不正确则重新输入到正确为止
            if (gender == "男" || gender == "女") {
                readerGender = gender;
                break;//
            } else {
                cout<<"性别属性值不对,请重新输入:"<<endl;
                cin>>gender;
            }
        }
    }
};

class Books {
private:
    string booksName;  //书名
    string booksID;    //图书id
    int    booksCount; //图书数量
public:
    Books() {}//默认构造函数
    Books(string name, string id, int count):booksName(name), booksID(id), booksCount(count) {}//构造函数
    string getName() {//获取图书名字
        return booksName;
    }
    string getID() {//获取图书编号
        return booksID;
    }
    int getCount() {//获取图书数量
        return booksCount;
    }
    void setID(string id) {//设置图书id
        booksID = id;
    }
    void addBooksCount(int count) {//添加图书数量
        int bCount = getCount();//获取修改前图书的数量
        bCount += count;
        booksCount = bCount;
    }
    void deleteBooksCount(int count) {//减少图书数量
        int bCount = getCount();//获取修改前图书的数量
        bCount -= count;
        booksCount = bCount;
    }
    void showBooksMessage() {//展示图书信息
        int count = getCount();//获取图书数量
        //下面两步操作将int类型转换为字符串类型
        ss<<count;
        string s = ss.str();
        cout<<"该图书名字是:" + getName() + "---编号是:" + getID() + "---数量为:" + s + "本。"<<endl;
    }
};

class Library {
private:
    string libraryName;  //图书馆名字
    void initLibrary() {//初始化图书馆
        int i;
        for (i = 0; i < 100; i++) {
            books[i].setID(" ");//初始化图书馆所有图书id为“ ”,初始值统一,方便后续数组增删操作
        }
        for (i = 0; i < 100; i++) {
            readers[i].setCode(" ");//初始化图书馆所有读者编号为“ ” ,初始值统一,方便后续数组增删操作
        }
        libraryName = "我的图书馆";
    }
public:
    static Reader readers[100];  //用来存储读者对象
    static Books  books  [100];  //用来存储图书对象
    Library() {//构造函数
        initLibrary();
    }
    void bringBooksCome(Books books) {//图书馆引入图书
        int i;
        for (i = 0; i < 100; i++) {
            if (books.getID() == Library::books[i].getID()) {//根据图书id值判断,存在则说明有该图书,直接在原来数量的基础上增加数量
                Library::books[i].addBooksCount(books.getCount());
                //以下两步将int转换为string
                ss<<Library::books[i].getCount();
                string s = ss.str();
                cout<<"该图书已经存在,数量增加"+ s +"本。"<<endl;
            } else if (books.getID() != Library::books[i].getID() && Library::books[i].getID() != " ") {//引入的图书的id值和图书馆内不一样
                continue;// 并且当前图书馆内的图书id值不是“”,说明这个索引处有图书,直接跳过本次循环
            } else if (books.getID() != Library::books[i].getID() && Library::books[i].getID() == " ") {//引入的图书的id值和图书馆内不一样
                // 但是当前图书馆内的图书id值是“”,说明这个索引处没有图书,将引入的图书添加至这个索引处
                Library::books[i] = books;//直接传图书对象
                //以下两步将int转换为string
                ss<<Library::books[i].getCount();
                string s = ss.str();
                cout<<"该图书不存在,现已经添加该图书到图书馆中,数量增加"+ s +"本。"<<endl;
            }
        }
    }
    void takeBooksGo(Reader reader) {//读者借走图书
        int i;
        for (i = 0; i < 100; i++) {
            if (reader.getCode() == readers[i].getCode()) {//根据读者编号判断,相等则说明已注册该读者,可以借阅图书
                cout<<"该读者已经注册账号,可以借阅图书。"<<endl;
                cout<<"下面给出您图书编号对应的图书以及图书的存储数量"<<endl;
                int j;
                for (j = 0; j < 100; j++) {//将图书馆图书信息提供给读者,指导读者选择图书
                    //将int转换为string
                    ss<<Library::books[i].getCount();
                    string s = ss.str();
                    cout<<books[j].getID() + "---" + books[j].getName() + "---" + s + "本。"<<endl;
                }
                cout<<"请输入您想要借阅的图书编号:"<<endl;
                string booksTakeByReader;//读者想要借的图书的编号
                cin>>booksTakeByReader;
                int k;
                for (k = 0; k < 100; k++) {//根据图书编号判断,编号存在且图书数量大于0则可以借阅
                    if (booksTakeByReader == books[k].getID() && books[k].getCount() > 0) {
                        books[k].deleteBooksCount(1);//借阅成功,库存数量减1
                    } else if (booksTakeByReader == books[k].getID() && books[k].getCount() == 0) {//编号存在且图书数量等于0,不可以借阅
                        cout<<"该图书已经没有库存,借阅失败!"<<endl;
                    }
                }

            }
        }
    }
    void booksBackFromReader(Reader reader) {//读者归还图书
        int i;
        for (i = 0; i < 100; i++) {
            cout<<"请输入您想要归还的图书名:"<<endl;
            string name;
            cin>>name;
            if (name == Library::books[i].getName()) {//根据书名来判断,存在则读者可以归还,数量加1
                Library::books[i].addBooksCount(1);
                cout<<"感谢您归还图书,欢迎再次使用"<<endl;
            } else if (name != Library::books[i].getName()) {//不存在说明图书编号被删除,或者没有这类书籍,总之已经不存在
                cout<<"您归还的图书不存在或者已经被图书管理员删除!"<<endl;
                break;
            }
        }
    }


};

Reader Library::readers[100] = {};  //用来存储读者对象
Books  Library::books  [100] = {};  //用来存储图书对象

int main() {
    Library library;  //创建图书馆对象,构造函数内调用了初始化函数
    while (true) {
        cout<<"欢迎进入图书馆系统,进入读者管理界面请输入1,进入图书管理界面请输入2,退出请输入其他数字"<<endl;
        int comeNum;//进入其他系统或者退出图书馆系统的选项
        cin>>comeNum;
        if (comeNum == 1) {//读者管理界面
            while (true) {
                cout<<"欢迎进入读者管理界面"<<endl;
                int readerCode;//操作读者信息的选项
                cout<<"添加读者信息请输入1,删除读者信息请输入2,修改读者信息请输入3,退出读者管理界面请输入其他数字"<<endl;
                cin>>readerCode;
                if (readerCode == 1) {//添加读者信息
                    cout<<"请输入读者姓名:"<<endl;
                    string name;
                    cin>>name;

                    cout<<"请输入读者年龄:"<<endl;
                    int age;
                    cin>>age;

                    cout<<"请输入读者性别:"<<endl;
                    string gender;
                    cin>>gender;

                    cout<<"请输入读者编号:"<<endl;
                    string code;
                    cin>>code;
                    //创建读者对象
                    Reader reader(name, age, gender, code);

                    int i;
                    for (i = 0; i < 100; i++) {
                        if (reader.getCode() == Library::readers[i].getCode()) {//根据读者编号判断,若存在则退出添加读者操作的循环
                            cout<<"该读者已经存在!"<<endl;
                            break;
                        } else if (reader.getCode() != Library::readers[i].getCode() && Library::readers[i].getCode() != " ") {//想要添加的读者编号和图书馆的存储的读者编号不一致
                            // 并且该索引处读者编号不为“”,说明此索引已经有读者,则跳出本次循环
                            continue;
                        } else {//想要添加的读者编号和图书馆的存储的读者编号不一致,并且该索引处读者编号为“”,说明此索引没有读者,且可以说明该数组内也没有该读者,可以进行添加
                            Library::readers[i] = reader;
                            cout<<"成功添加该读者,欢迎再次使用"<<endl;
                            break;
                        }
                    }
                } else if (readerCode == 2) {//删除读者信息
                    cout<<"请输入读者编号:"<<endl;
                    string code;
                    cin>>code;

                    int i;
                    for (i = 0; i < 100; i++) {
                        if (Library::readers[i].getCode() == code) {//根据读者编号判断,若存在则删除读者
                            int j;
                            for (j = i; j < 100; j++) {//将下一个索引处的读者对象添加到该索引处,并且循环此操作
                                Library::readers[j] = Library::readers[j + 1];
                            }
                            cout<<"添加成功!"<<endl;
                            break;// //添加成功退出for循环 (删除操作)
                        } else if (Library::readers[i].getCode() != code && Library::readers[i].getCode() != " ") {  //编号不一致,并且该索引处存储的编号不为“”,则跳出本次循环
                            continue;
                        } else {//编号不一致,并且该索引处存储的编号为“”,可以说明本数组中不存在该读者,
                            cout<<"该读者不存在!"<<endl;
                            break;  //退出for循环(删除操作)
                        }
                    }
                } else if (readerCode == 3) {//修改读者信息-1
                    cout<<"请输入读者编号:"<<endl;
                    string code;
                    cin>>code;

                    int i;
                    for (i = 0; i < 100; i++) {
                        if (Library::readers[i].getCode() == code) {//根据读者编号判断,若存在则进入修改读者信息页面
                            cout<<"如果您想修改读者姓名请输入1,修改读者年龄请输入2,修改读者性别请输入3,退出请输入其他数字"<<endl;
                            int flushNum;//修改读者信息选项
                            while (true) {
                                cin>>flushNum;
                                if (flushNum == 1) {//修改读者姓名
                                    cout<<"请输入您想要修改的名字"<<endl;
                                    string flushName;
                                    cin>>flushName;
                                    Library::readers[i].setName(flushName);
                                } else if (flushNum == 2) {//修改读者年龄
                                    cout<<"请输入您想要修改的年龄"<<endl;
                                    string flushAge;
                                    cin>>flushAge;
                                    Library::readers[i].setName(flushAge);
                                } else if (flushNum == 3) {//修改读者性别
                                    cout<<"请输入您想要修改的性别,男或女"<<endl;
                                    string flushGender;
                                    cin>>flushGender;
                                    Library::readers[i].setName(flushGender);
                                } else {//退出修改操作
                                    cout<<"修改成功!"<<endl;
                                    break;// //修改成功,退出可修改页面(死循环)
                                }
                            }
                        } else if (Library::readers[i].getCode() != code && Library::readers[i].getCode() != " ") {//编号不一致并且该索引处编号不为“”,
                            // 说明该索引处有其他读者,则跳过本次循环
                            continue;
                        } else {//编号不一致并且该索引处为“” 说明本数组中没有该读者信息
                            cout<<"该读者不存在!"<<endl;
                            break;// //退出修改页面(for循环)
                        }
                    }

                } else {//退出读者管理界面
                    cout<<"成功退出读者管理界面,欢迎再次使用"<<endl;
                    break;//
                }
            }
        } else if (comeNum == 2) {//图书管理界面
            cout<<"欢迎进入图书管理界面"<<endl;
            while (true) {
                int booksCode;
                cout<<"添加图书信息请输入1,删除图书信息请输入2,退出图书管理界面请输入其他数字"<<endl;
                cin>>booksCode;
                if (booksCode == 1) {//添加图书信息-1
                    cout<<"请输入图书名字"<<endl;
                    string name;
                    cin>>name;

                    cout<<"请输入图书编号"<<endl;
                    string id;
                    cin>>id;

                    cout<<"请输入图书数量"<<endl;
                    int count;
                    cin>>count;

                    int i;
                    for (i = 0; i < 100; i++) {
                        if (Library::books[i].getID() == id && Library::books[i].getName() == name) {//根据图书id值判断。若id相等并且书名一致则可以进行添加图书操作
                            Library::books[i].addBooksCount(count);
                            cout<<"添加成功!"<<endl;
                            break;//  //则退出添加图书页面
                        } else if (Library::books[i].getID() == id && Library::books[i].getName() != " " && Library::books[i].getName() != name) {//若id相等但是书名不一致
                            // 说明该id被占用,则退出添加图书页面
                            cout<<"该id值已经被占用!"<<endl;
                            break;//
                        } else if (Library::books[i].getID() != id && Library::books[i].getID() != " " ) {//id不相等,并且该索引处不为“”说明该索引出有图书,则跳过本次循环
                            continue;
                        }
                    }
                } else if (booksCode == 2) {//删除图书信息
                    cout<<"请输入图书编号"<<endl;
                    string id;
                    cin>>id;

                    int i;
                    for (i = 0; i < 100; i++) {
                        if (Library::books[i].getID() == id) {//根据图书id进行判断,存在则进行删除操作
                            int j;
                            for (j = i; j < 100; j++) {
                                Library::books[j] = Library::books[j + 1];//将下一索引处的图书信息存储到当前索引处,并且循环操作此步骤
                            }
                            cout<<"删除成功!"<<endl;
                            break;// //删除成功,退出删除图书界面
                        } else {//id不一致,跳出本次循环
                            cout<<"图书id值可能不存在!"<<endl;
                            continue;
                        }
                    }
                } else {//退出图书管理界面-1
                    cout<<"成功退出图书管理界面,欢迎再次使用"<<endl;
                    break;//
                }
            }
        } else break;//
    }
}



#include <iostream>
#include <string>
 
 
using namespace std;
#define MAX 1000
struct Person {
    string name;
    int price;
    string number;
};
 
struct Arraybooks {
    struct Person book[MAX];
    int length;
};
 
void mean();
int outSystem();
void addBooks(Arraybooks* abs);
void dalateBooks(Arraybooks* abs);
int isExist(Arraybooks* abs, string name);
void CheckBook(Arraybooks* abs);
void cleanbooks(Arraybooks* abs);
void showbooks(Arraybooks* abs);
void changebooks(Arraybooks* abs);
 
int main() {
    int x;
    Arraybooks abs;
    abs.length = 0;
 
    while (true) {
        mean();
        cin >> x;
        switch (x) {
        case 1:
            addBooks(&abs);
            break;
        case 2:
            dalateBooks(&abs);
            break;
        case 3:
            CheckBook(&abs);
            break;
        case 4:
            cleanbooks(&abs);
            break;
        case 5:
            changebooks(&abs);
            break;
        case 6:
            showbooks(&abs);
            break;
        case 0:
            outSystem();
            break;
 
 
        }
 
 
    }
    return 0;
}
void addBooks(Arraybooks* abs) {
    if (abs->length >= MAX) {
        cout << "书籍已满" << endl;
    }
    else {
        string name;
        cout << "请输入书籍的名字: " << endl;
        cin >> name;
        abs->book[abs->length].name = name;
 
 
        int price;
        cout << "请输入书的价格: " << endl;
        cin >> price;
        abs->book[abs->length].price = price;
 
 
        string num;
        cout << "请输入书的编号: " << endl;
        cin >> num;
        abs->book[abs->length].number = num;
 
 
        abs->length++;
 
 
        cout << "添加成功" << endl;
    }
}
 
 
int isExist(Arraybooks* abs, string name) {
    for (int i = 0; i < abs->length; ++i) {
        if (abs->book[i].name == name) {
            return i;
        }
    }
    return -1;
}
 
void dalateBooks(Arraybooks* abs) {
    cout << "请输入你要删除的书籍" << endl;
    string name;
    cin >> name;
 
    int ret = isExist(abs, name);
    if (ret != -1 && ret != abs->length - 1) {
          abs->book[ret].name     = abs->book[ret + 1].name;
          abs->book[ret].number   = abs->book[ret + 1].number;
          abs->book[ret].price    = abs->book[ret + 1].price;
        for (int i = ret + 2; i < abs->length; ++i) {
          abs->book[i - 1].name   = abs->book[i].name;
          abs->book[i - 1].number = abs->book[i].number;
          abs->book[i - 1].price  = abs->book[i].price;
          abs->length--;
        }
        cout << "删除成功" << endl;
    }
    else if(ret != 1 && ret == abs->length - 1) {
        abs->length--;
    }
    else {
        cout << "查无此书" << endl;
    }
}
 
void CheckBook(Arraybooks* abs) {
    cout << "输入你要查找的书籍" << endl;
    string name;
    cin >> name;
 
    int ret = isExist(abs, name);
    if (ret != -1) {
        cout << "书名为:" << abs->book[ret].name << "\t";
        cout << "书价格为:" << abs->book[ret].price << "\t";
        cout << "书编号为:" << abs->book[ret].number << endl;
    }
    else {
        cout << "查无此书" << endl;
    }
}
 
void cleanbooks(Arraybooks* abs) {
    abs->length = 0;
    cout << "清理完成" << endl;
 
}
 
void changebooks(Arraybooks* abs) {
    cout << "输入你要修改的图书" << endl;
    string name;
    cin >> name;
    int ret = isExist(abs, name);
    if (ret != -1) {
        cout << "请输入名字: " << endl;
        string name;
        cin >> name;
        abs->book[ret].name = name;
 
        cout << "请输入价格: " << endl;
        int price;
        cin >> price;
        abs->book[ret].price = price;
 
        cout << "请输入编号: " << endl;
        string num;
        cin >> num;
        abs->book[ret].number = num;
    }
    else {
        cout << "查无此书" << endl;
    }
 
}
 
void showbooks(Arraybooks* abs) {
    if (abs->length == 0) {
        cout << "书架为空" << endl;
    }
    else {
        for (int i = 0; i < abs->length; ++i) {
            cout << "书籍名字 : " << abs->book[i].name << "\t";
            cout << "书籍价格 : " << abs->book[i].price << "\t";
            cout << "书籍编号 : " << abs->book[i].number << endl;
        }
    }
}
 
int outSystem() {
    cout << "欢迎下次使用" << endl;
    return 0;
}
 
 
void mean() {
    cout << "*************************" << endl;
    cout << "*******1、加入图书********" << endl; //OK
    cout << "*******2、按名删除图书*****" << endl;//OK
    cout << "*******3、按名查找图书*****" << endl;//OK
    cout << "*******4、清空图书架*******" << endl;//OK
    cout << "*******5、修改图书名*******" << endl;
    cout << "*******6、显示图书架*******" << endl;//OK
    cout << "*******0、退出系统*********" << endl; //OK
    cout << "**************************" << endl;
 
}