图书馆程序设计程序设计综合课程设计报告


    
    XX学院计算机科学技术系
    信息理信息系统专业

    程序设计综合课程设计报告

    (20102011学年 第学期)



    学生姓名:
    学生班级: 信息理信息系统
    学生学号:
    指导教师:



    2010年 月 日

    目 录
    课程设计目 3

    课程设计实务容3

    课程设计求3

    系统功模块图3

    详细设计说明4

    部分函数流程图 6

    程序调试7

    课程设计心体会11

    附录:源程序代码12



    课程设计目
    加深C语言课程学知识理解进步巩固C语言算法规学会编制结构清晰风格良数结构适C程序具备解决综合性问题力
    二 课程设计实务容图书馆
    图书理基业务活动包括:书采编入库清库存阅等等试设计图书理系统述业务活动助计算机系统完成

    三 课程设计求
    (1)种书登记容少包括书号书名著者现存量总库量等五项
    (2)作演示系统必文件全部数存存放述四项基业务活动通书号(关键码)进行B树(23阶数)书号建立索引获高效率
    (3)系统应实现操作定义:
    A采编入库:新购入种书分类确定书号登记图书帐目中果种书帐中已总库存量增加
    B清库存:某种书已保留价值图书帐目中注销
    C阅:果种书现存量零出登记阅者图书证号期限
    D:注销阅者登记改变该书现存量
    E显示:凹入表形式显示B树


    四 系统功模块图

    五 详细设计说明
    书籍结构体(Book)
    ①私数
    char bnum[10] 书号
    char bname[20] 书名
    char bauthor[10] 作者
    char rname[10] 阅
    ②公数公函数
    int tag 状态标记判断指标(已架)
    Book() 构造函数初始化信息
    void set_bnum(char *no) 设置书号
    char *get_bnum() 获书号
    void set_bname(char *n) 设置书名
    char *get_bname() 获书名
    void set_bauthor(char *a) 设置作者
    char * get_bauthor() 获作者姓名
    void set_tag(int t) 状态设置
    void set_rname(char *rn) 设置阅
    char *get_rname() 获阅姓名
    void show_tag() 显示图书状态
    void copy(Book m) Book结构体copy函数
    书籍理结构体(BookManage)
    ① 私数函数
    Book books[100] 定义Book书籍结构体数组象容量100
    int length 计数
    void saveFile() 保存书籍文件
    void readFile() 读取书籍文件
    ②公数函数
    BookManage() 构造函数读取磁盘文件
    ~BookManage() 析构函数保存磁盘文件
    bool add(Book book) 添加图书资料
    int bnu_search(char *bnu) 书号查找书籍
    int bna_search(char *bna) 书名查找书籍
    int bau_search(char *bau) 作者查找书籍
    int rn_search(char *rn) 阅查找书籍
    void revise(Book bookint i)带参修改书籍函数
    void deleteBook(int index)带参删书籍资料函数
    void show_book()带参显示书籍函数
    void show_book(int i)带参显示书籍函数
    void br_book()读者书功函数
    bool in(int i) 判断图书否架函数
    读者结构体(Reader)
    ①私数函数
    char rname[10] 读者姓名
    char rclass[10] 班级
    char rtel[10] 电话
    ②公数函数
    Reader() 构造函数实现数初始化
    void set_rname(char *rn) 设置读者姓名
    char * get_rname() 获读者姓名
    void set_rclass(char *rc) 设置班级
    char *get_rclass() 获班级
    void set_rtel(char *rt) 设置电话
    char *get_rtel() 获电话
    void copy(Reader m) 读者Reader结构体copy函数
    读者理结构体(ReaderManage)
    ①私数函数
    Reader readers[50] 定义读者结构体数组象50位
    int length 计数
    void readFile() 读取读者文件函数
    void saveFile() 保存读者文件
    ②公数函数
    ReaderManage() 构造函数读取读者文件
    ~ReaderManage() 析构函数保存读者文件
    void add_reader(Reader r) 添加读者户函数
    int search(char *rn) 姓名查找读者函数
    bool revise(Reader readerint i) 修改读者资料函数
    void delete_reader(int index) 删读者函数
    bool log_reader(Reader r) 登录时判断读者户否存函数
    void reg_reader() 注册户函数
    void show_reader() 带参显示读者信息函数
    void show_reader(int i) 带参显示读者信息函数
    菜单结构体(Menu)
    ①私数函数
    BookManage bm 定义书籍理结构体象bm
    ReaderManage rm 定义读者理结构体象rm
    Reader r 定义读者结构体象r
    int choice 菜单序号选择
    int key 理员密码
    ②公数函数
    void header() 页眉
    void log_menu() 界面登录菜单
    void admin_menu() 理员理菜单
    void reader_menu() 读者服务菜单
    void bsearch_menu() 读者查找书籍菜单
    void absearch_menu() 理员查找书籍菜单
    void reader_lr() 读者登录注册菜单
    void log_admin() 理员登录
    void rn_search() 书号查找函数
    void bnu_search() 书号查找函数
    void bna_search() 书名查找函数
    void bau_search() 作者查找函数
    void addBook() 新增书籍函数
    void reviseBook() 修改书籍函数
    void delBook() 删书籍函数
    void reviseReader()修改读者户函数
    void delReader() 删读者户函数
    函数(main)
    int main()

    六 部分函数流程图
    ①理员登录

    ②读者登录

    ③读者阅图书

    ④理员读者书名查找图书

    七 程序调试
    界面菜单显示
    ①登录界面








    ②系统理界面

    ③读者登录界面

    ④读者服务界面

    ⑤书籍查找界面

    登录验证
    ①理员登录
    A 输入错误密码 B输入正确密码

    ②读者登录
    A 输入已注册姓名 B输入未注册姓名


    注册新读者户




    添加新图书资料
    ①输入已存图书书号 ②输入未存图书书号







    修改已图书资料
    ①输入存图书书号 ②输入已存图书书号



    删已图书资料
    ①输入存图书书号 ②输入已存图书书号

    查找已图书资料(书号查找例)
    ①输入存图书书号

    ②输入已存图书书号

    248显示图书资料


    八 课程设计心体会
    三星期努力前修修改改调试调试C++图书理系统终诞生程中发现知识没学例子时候简单机操作问题调试时候系统总报错警告添加函数调试久时候仅仅少括号花半时找问题瓶颈系统然完成运行基功够实现知道足外发现帮助文件真例子懂时候帮助文件搜索果里面信息够完整利网站搜索引擎寻找答案更改背景颜色问题前试次行偶然发现MSDOS命令全然网搜索color命令语法原复杂代码需句system(color fd)问题迎刃解会课程设计定吸取次教训知识知识学透学精够真正做

    九 附录
    #include
    #include
    #include
    #include
    #include
    #define BookFile booktxt 字符串BookFile换原文件中宏名称book
    #define ReaderFile readertxt
    using namespace std

    **********读者结构体存放读者基信息**********
    class Reader
    {
    private
    char rname[10]
    char rclass[10]
    char rtel[10]
    public
    Reader() 构造函数实现数初始化
    {strcpy(rname)strcpy(rclass)strcpy(rtel)}
    void set_rname(char *rn) 设置读者姓名
    {strcpy(rnamern)} rn字符复制rname
    char * get_rname() 获读者姓名
    {return rname} 返回rname值
    void set_rclass(char *rc) 设置班级
    {strcpy(rclassrc)}
    char *get_rclass() 获班级
    {return rclass}
    void set_rtel(char *rt) 设置电话
    {strcpy(rtelrt)}
    char *get_rtel() 获电话
    {return rtel}
    void copy(Reader m) 读者Reader结构体copy函数
    {strcpy(rnamemget_rname())strcpy(rclassmget_rclass())strcpy(rtelmget_rtel())}
    }

    *********读者理结构体实现读者户理*********
    class ReaderManage
    {
    Reader readers[50] 定义读者结构体数组象50位
    int length
    void readFile() 读取读者文件函数
    {
    ifstream fread 定义输入文件流象fread
    length0 计数
    if(fread)
    {cout<<读取磁盘文件失败< freadopen(ReaderFileiosbinary)文件流文件关联二进制方式开
    int i0
    while((freadread((char *)&readers[i]sizeof(Reader))))计算返回占字节数
    i++
    lengthi
    freadclose()关闭磁盘文件
    }
    void saveFile() 保存读者文件
    {
    ofstream fwrite 定义输出文件流象fwrite
    if(fwrite)
    {cout<<文件保存失败\n exit(1) }
    fwriteopen(ReaderFileiosbinary)文件流文件关联二进制方式开
    fwritewrite((char *)readerslength*sizeof(Reader))计算返回占字节数
    fwriteclose() 关闭磁盘文件
    }
    public
    ReaderManage() 构造函数读取读者文件
    {readFile()}

    ~ReaderManage() 析构函数保存读者文件
    {saveFile()}
    void add_reader(Reader r) 添加读者户函数
    {
    if(length>50)
    {cout<<起注册数已满\nreturn }
    readers[length]copy(r) 调读者结构体copy函数
    length++
    }
    int search(char *rn) 姓名查找读者函数
    {
    for(int i0i if(strcmp(readers[i]get_rname()rn)0)判断否相等
    return i
    return 1
    }
    bool revise(Reader readerint i) 修改读者资料函数
    {
    readers[i]copy(reader) 调读者结构体cpoy函数
    return true
    }
    void delete_reader(int index) 删读者函数
    {
    for(int iindexi readers[i]copy(readers[i+1]) 面址覆盖前面址
    length
    }
    bool log_reader(Reader r) 登录时判断读者户否存函数
    {
    for(int i0i if(strcmp(readers[i]get_rname()rget_rname())0)
    return true
    return false
    }
    void reg_reader() 注册户函数
    {
    char n[10] 姓名name
    char c[10] 班级class
    char t[10] 电话tel
    Reader reader
    cout<<\n\t请输入您姓名
    cin>>n
    cout<<\n\t请输入您班级
    cin>>c
    cout<<\n\t请输入您联系电话
    cin>>t
    readerset_rname(n) 调读者结构体设置读者姓名函数
    readerset_rclass(c) 调读者结构体设置读者班级函数
    readerset_rtel(t) 调读者结构体设置联系电话函数
    add_reader(reader) 调读者结构体添加读者函数
    cout<<\n\t注册成功
    }
    void show_reader() 带参显示读者信息函数
    {
    cout<<\n **********************读****者****信****息****列****表**********************\n\n
    cout<<姓名\t\t\t班级\t\t\t电话\n
    for(int i0i {
    cout< cout<<\t\t\t< cout<<\t\t\t< }
    }
    void show_reader(int i) 带参显示读者信息函数
    {
    cout<<\n **********************读****者****信****息****列****表**********************\n\n
    cout<<姓名\t\t\t班级\t\t\t电话\n
    cout< cout<<\t\t\t< cout<<\t\t\t< }
    }

    ********书籍结构体存放书籍基信息********
    class Book
    {
    private
    char bnum[10] 书号
    char bname[20] 书名
    char bauthor[10] 作者
    char rname[10] 阅
    public
    int tag 状态标记判断指标(已架)
    Book() 构造函数初始化信息
    {strcpy(bnum)strcpy(bname)strcpy(bauthor)strcpy(rname)tag0}
    void set_bnum(char *no) 设置书号
    {strcpy(bnumno)} 字符串no中字符复制字符串bnum中
    char *get_bnum() 获书号
    { return bnum} 返回值bnum
    void set_bname(char *n) 设置书名
    {strcpy(bnamen)}
    char *get_bname() 获书名
    {return bname}
    void set_bauthor(char *a) 设置作者
    {strcpy(bauthora)}
    char * get_bauthor() 获作者姓名
    {return bauthor}
    void set_tag(int t) 状态设置
    {tagt}
    void set_rname(char *rn) 设置阅
    {strcpy(rnamern)}
    char *get_rname() 获阅姓名
    {return rname}
    void show_tag() 显示图书状态
    {
    if(tag1)
    {cout<<已}
    else
    {cout<<架}
    }
    void copy(Book m) Book结构体copy函数
    {
    strcpy(bnummget_bnum()) 获书号函数里返回值里字符复制bnum
    strcpy(bnamemget_bname())
    strcpy(bauthormget_bauthor())
    tag0
    }
    }

    **********书籍理结构体实现理书籍功**********
    class BookManage
    {
    private
    Book books[100] 定义Book书籍结构体数组象容量100
    int length
    void saveFile() 保存书籍文件
    {
    ofstream fwrite 定义输出文件流ofstream结构体象fwrite
    if(fwrite)
    {cout<<文件保存失败\n exit(1) }
    fwriteopen(BookFileiosbinary)文件流文件建立关联二进制方式开
    fwritewrite((char *)bookslength*sizeof(Book)) 计算返回占字节数
    fwriteclose() 关闭磁盘文件
    }
    void readFile() 读取书籍文件
    {
    ifstream fread 定义输入文件流象fread
    length0
    if(fread)
    {cout<<文件读取失败< Book temp 定义书籍结构体时象temp
    int i0
    freadopen(BookFile iosbinary)文件流文件建立关联二进制方式开
    while((freadread((char *)&books[i]sizeof(Book))))
    i++ 读完次指针移位直读出正确结果止
    lengthi
    freadclose()
    }
    public
    BookManage() 构造函数读取磁盘文件
    {
    length0 头读起计数100
    readFile() 调读取文件函数
    }
    ~BookManage() 析构函数保存磁盘文件
    {
    saveFile() 调保存文件函数
    }
    bool add(Book book) 添加图书资料
    {
    if(length>100)
    {
    cout<<起储存已满您法继续添加\n
    return 1
    }
    else
    {
    books[length]copy(book) 调书籍结构体copy函数
    length++
    return (length1)
    }
    }
    int bnu_search(char *bnu) 书号查找书籍
    {
    for(int i0i if(strcmp(books[i]get_bnum()bnu)0) 字符串较判断否相等
    return i
    return 1
    }
    int bna_search(char *bna) 书名查找书籍
    {
    for(int i0i if(strcmp(books[i]get_bname()bna)0) 判断
    return i
    return 1
    }
    int bau_search(char *bau) 作者查找书籍
    {
    for(int i0i if(strcmp(books[i]get_bauthor()bau)0)判断
    return i
    return 1
    }
    int rn_search(char *rn) 阅查找书籍
    {
    for(int i0i if(strcmp(books[i]get_rname()rn)0)判断
    return i
    return 1
    }
    void revise(Book bookint i)带参修改书籍函数
    {books[i]copy(book)} 调Book结构体copy函数
    void deleteBook(int index)带参删书籍资料函数
    {
    for(int iindexi books[i]copy(books[i+1])面址前址覆盖
    length
    }
    void show_book()带参显示书籍函数
    {
    cout<< **********************书****籍****信****息****列****表**********************\n\n
    cout<<书号
    coutwidth(10)
    cout<<书名
    coutwidth(20)
    cout<<作者
    coutwidth(10)
    cout<<状态
    coutwidth(10)
    cout<<阅\n
    for(int i0i {
    cout< coutwidth(10)
    cout< coutwidth(20)
    cout< coutwidth(10)
    books[i]show_tag()
    coutwidth(10)
    cout< }
    }
    void show_book(int i)带参显示书籍函数
    {
    cout<< **********************书****籍****信****息****列****表**********************\n\n
    cout<<书号
    coutwidth(10)
    cout<<书名
    coutwidth(20)
    cout<<作者
    coutwidth(10)
    cout<<状态
    coutwidth(10)
    cout<<阅\n
    cout< coutwidth(10)
    cout< coutwidth(20)
    cout< coutwidth(10)
    books[i]show_tag()
    coutwidth(10)
    cout< }
    void br_book()读者书功函数
    {
    ReaderManage reader
    int choi 选择
    int a 图书状态指标(1已2架)
    char sh[10] 需书书号
    char dz[10] 读者姓名
    cin>>sh
    int indexbnu_search(sh) 定义变量等查找书号
    if(index>0)
    {
    if(books[index]tag1) 已
    a1
    if(books[index]tag0) 架
    a2
    switch(a)
    {
    case 1
    cout<<\n\t该书目前状态<已出>\n
    cout<<\n\t请选择您需服务:1书 0返回\n
    cin>>choi
    cinignore() 清回车结束输入缓区容消次输入次输入影响
    if(choi1&&choi0)
    {
    cout<<\n\t操作误请重新选择(01)\n
    return
    }
    else if(choi1)
    {
    cout<<\n\t请输入您姓名:
    cin>>dz
    cinignore()
    int index1readersearch(dz)
    if(index11)
    {
    cout<<\n\t起系统该读者记录新户请先注册
    return
    }
    else
    {
    strcpy(dz)读者姓名已空白代
    books[index]set_rname(dz)阅项变空白
    books[index]set_tag(0)图书状态变架
    cout<<\n\t书成功< }
    }break
    case 2
    cout<<\n\t该书目前状态<馆>\n
    cout<<\n\t请您需服务:1书 0返回\n
    cin>>choi
    cinignore()
    if(choi1&&choi0)
    {
    cout<<\n\t操作误请重新选择(01)\n
    return
    }
    else if(choi1)
    {
    cout<<\n\t请输入您姓名:
    cin>>dz
    int index1readersearch(dz)
    if(index11)
    {
    cout<<\n\t起系统改读者记录新户请先注册
    return
    }
    else
    {
    books[index]set_rname(dz)
    books[index]set_tag(1)
    cout<<\n\t书成功< }
    }break
    }
    }
    else
    {
    cout<<\n\t起系统该书记录}
    }

    bool in(int i) 判断图书否架函数
    {
    if(books[i]tag1)
    return false
    return true
    }
    }

    **********菜单结构体实现界面引导**********
    class Menu
    {
    BookManage bm 定义书籍理结构体象bm
    ReaderManage rm 定义读者理结构体象rm
    Reader r 定义读者结构体象r
    private
    int choice 菜单序号选择
    int key 理员密码
    public
    void header() 页眉
    {
    system(color fd)
    cout<<\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n
    cout<<\t ※ ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 图 书 阅 理 系 统 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ ※\n
    cout<<\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n
    }
    void log_menu() 界面登录菜单
    {
    system(color fd)
    header()
    cout<<\n\t\t\t< 请 选 择 登 录 身 份 >\n
    cout<<\n\t\t\t\t1 理员\n\n\t\t\t\t2 读 者\n\n\t\t\t\t0 退 出\n\t您选择:
    choice cin>>choice
    cinignore() 清回车结束输入缓区容消次输入次输入影响
    switch(choice)
    {
    case 1
    log_admin() 理员登录需密码验证
    break
    case 2
    reader_lr() 读者登录注册
    break
    case 0
    exit(1) 退出系统
    break
    default
    cout<<\n\t您操作误请重新选择(0→2)
    goto choice
    }
    }
    void admin_menu() 理员理菜单
    {
    system(cls)
    system(color f9)
    cout<<\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n
    cout<<\t ※ ※\n
    cout<<\t ※****************系**统****理**界**面**************※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 1 添加新图书资料 2 修改已图书资料 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 3 删已图书资料 4 查找已图书资料 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 5 查图书资料 6 修改读者户信息 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 7 删读者户信息 8 查读者信息 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 9 返回系统登录界面 0 退出图书理系统 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ ※\n
    cout<<\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n
    cout<<\n\t请选择您需服务序号:
    choice cin>>choice
    cinignore()
    switch(choice)
    {
    case 1 添加图书
    addBook()
    bm~BookManage()
    break
    case 2 修改图书
    reviseBook()
    bm~BookManage()
    break
    case 3 删图书
    delBook()
    bm~BookManage()
    break
    case 4 查找图书
    absearch_menu()
    break
    case 5 查全部图书
    bmshow_book()
    cout<<\n\t显示完毕
    system(pause)
    admin_menu()
    break
    case 6 修改读者
    reviseReader()
    rm~ReaderManage()
    break
    case 7 删读者
    delReader()
    rm~ReaderManage()
    break
    case 8 查读者
    rmshow_reader()
    cout<<\n\t显示完毕
    system(pause)
    admin_menu()
    break
    case 9 返回系统登录界面
    system(cls)
    log_menu()
    case 0 退出系统
    exit(1)
    break
    default
    cout<<\n\t您操作误请重新选择(0→7)
    goto choice
    }
    }
    void reader_menu() 读者服务菜单
    {
    system(cls)
    system(color f9)
    cout<<\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n
    cout<<\t ※ ※\n
    cout<<\t ※****************读**者**服**务**界**面**************※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 1 阅 图 书 2 图 书 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 3 查 找 图 书 4 阅 情 况 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ 5 返 级 0 退 出 系 统 ※\n
    cout<<\t ※ ※\n
    cout<<\t ※ ※\n
    cout<<\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n
    cout<<\n\t请选择您需服务序号:
    choice cin>>choice
    cinignore()
    switch(choice)
    {
    case 1
    cout<<\n\t请输入您欲阅图书书号
    bmbr_book()
    bm~BookManage()
    break
    case 2
    cout<<\n\t请输入您欲图书书号
    bmbr_book()
    bm~BookManage()
    break
    case 3
    bsearch_menu()
    break
    case 4
    rn_search()
    break
    case 5
    system(cls)
    reader_lr()
    break
    case 0
    exit(1)
    break
    default
    cout<<\n\t您操作误请重新选择(0→5)
    goto choice
    }
    }
    void bsearch_menu() 读者查找书籍菜单
    {
    system(cls)
    system(color f2)
    cout<<\t\t\t※※※※※※※※※※※※※※※※※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※****书**籍**查**找**界**面****※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 1 书号查找 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 2 书名查找 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 3 作者查找 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 4 返 回 级 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 0 退 出 系 统 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※※※※※※※※※※※※※※※※※\n
    int bsc book search choice
    cout<<\n\t请输入您需服务序号:
    cin>>bsc
    cinignore()
    switch(bsc)
    {
    case 1
    bnu_search()
    break
    case 2
    bna_search()
    break
    case 3
    bau_search()
    break
    case 4
    reader_menu()
    break
    case 5
    exit(1)
    default
    cout<<\n\t操作误请重新选择<0→4>
    break
    }
    }
    void absearch_menu() 理员查找书籍菜单
    {
    system(cls)
    system(color f2)
    cout<<\t\t\t※※※※※※※※※※※※※※※※※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※****书**籍**查**找**界**面****※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 1 书号查找 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 2 书名查找 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 3 作者查找 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 4 返 回 级 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※ 0 退 出 系 统 ※\n
    cout<<\t\t\t※ ※\n
    cout<<\t\t\t※※※※※※※※※※※※※※※※※\n
    int bsc book search choice
    cout<<\n\t请输入您需服务序号:
    cin>>bsc
    cinignore()
    switch(bsc)
    {
    case 1
    bnu_search()
    break
    case 2
    bna_search()
    break
    case 3
    bau_search()
    break
    case 4
    admin_menu()
    break
    case 5
    exit(1)
    default
    cout<<\n\t操作误请重新选择<0→4>
    break
    }
    }
    void reader_lr() 读者登录注册菜单
    {
    system(cls)
    header()
    system(color f1)
    cout<<\n\t\t\t< 读 者 登 录 界 面 >\n
    cout<<\n\t\t\t 1 登 录\t2 注 册\n\n\t\t\t 3 返 回\t0 退 出\n\t您选择:
    int rlc reader login choice
    choice cin>>rlc
    cinignore()
    switch(rlc)
    {
    case 1 已注册读者登录
    cout<<\n\t请输入您姓名
    char rn[10] reader name
    cin>>rn
    rset_rname(rn)
    if(rmlog_reader(r))
    {
    cout<<\n\t登录成功
    system(pause)
    reader_menu()
    }
    else
    cout<<\n\t登录失败新户请先注册
    system(pause)
    reader_lr()
    break
    case 2 新户注册
    rmreg_reader()
    rm~ReaderManage()
    system(pause)
    reader_lr()
    break
    case 3
    system(cls)
    log_menu()
    case 0
    exit(1)
    break
    default
    cout<<\n\t您操作误请重新选择(0→2)
    goto choice
    }

    }
    void log_admin() 理员登录
    {
    cout<<\n\t请输入理员密码
    int key
    cin>>key
    if(key2009)
    {
    cout<<\n\t登录成功\n\n\t
    system(pause)
    admin_menu() 理员操作菜单
    }
    else
    {cout<<\n\t登录失败原密码错误\n
    cout<<\n\t请选择 <1返回级菜单 0退出系统>
    cin>>choice
    cinignore()
    switch(choice)
    {
    case 1
    system(cls)
    log_menu()
    break
    case 0
    exit(1)
    break
    default
    cout<<\n\t操作误请重新选择(01)
    }
    }
    }
    void rn_search() 书号查找函数
    {
    char rn[10] reader name
    cout<<\n\t请输入您姓名:
    cin>>rn
    int indexbmrn_search(rn)
    if(index>0)
    bmshow_book(index)
    else
    cout<<\n\t起系统您阅记录
    cout<<\n\t
    system(pause)
    reader_menu()
    }
    void bnu_search() 书号查找函数
    {
    char bnu[10]
    cout<<\n\t请输入您查找书号:
    cin>>bnu
    int indexbmbnu_search(bnu)
    if(index>0)
    bmshow_book(index)
    else
    cout<<\n\t起系统该书籍记录
    cout<<\n\t
    system(pause)
    bsearch_menu()
    }
    void bna_search() 书名查找函数
    {
    cout<<\n\t请输入您查找书名:< char bna[20]
    cin>>bna
    int indexbmbna_search(bna)
    if(index>0)
    bmshow_book(index)
    else
    cout<<\n\t起系统该书籍记录
    cout<<\n\t
    system(pause)
    bsearch_menu()
    }
    void bau_search() 作者查找函数
    {
    cout<<\n\t请输入您查找作者:< char bau[10]
    cin>>bau
    int indexbmbau_search(bau)
    if(index>0)
    bmshow_book(index)
    else
    cout<<\n\t起系统该书籍记录
    cout<<\n\t
    system(pause)
    bsearch_menu()
    }
    void addBook() 新增书籍函数
    {
    char numb[10] 书号
    char nameb[20] 书名
    char authorb[10] 作者
    Book book 书籍结构体象book
    int tag1
    input1cout<<\n\t请输入新书书号
    cin>>numb
    int indexbmbnu_search(numb)
    if(index1)
    {
    cout<<\n\t系统目前尚该书记录您继续操作\n
    cout<<\n\t请输入新书书名:
    cin>>nameb
    cout<<\n\t请输入新书作者:
    cin>>authorb
    tag10
    bookset_bnum(numb)
    bookset_bname(nameb)
    bookset_bauthor(authorb)
    bookset_tag(tag1)
    bmadd(book)
    cout<<\n\t恭喜您新书资料录入成功
    }
    else
    {
    cout<<\n\t起该书号纪录已存请重新输入
    goto input1
    }
    system(pause)
    admin_menu()
    }
    void reviseBook() 修改书籍函数
    {
    char numb[10]
    char nameb[20]
    char authorb[10]
    Book book
    int index1
    input2 cout<<\n\t请输入您修改书籍书号
    cin>>numb
    indexbmbnu_search(numb)
    if(index1)
    {
    cout<<\n\t起您输入书号存请重新输入< goto input2
    return
    }
    bool stabmin(index) 判断否馆
    if(sta)
    {
    cout<<\n\t该书目前处<架>状态您继续操作
    cout<<\n\t请输入更改书名:
    cin>>nameb
    cout<<\n\t请输入更改作者:
    cin>>authorb
    bookset_bnum(numb)
    bookset_bname(nameb)
    bookset_bauthor(authorb)
    bmrevise(bookindex)
    cout<<\n\t恭喜您书籍资料修改成功}
    else
    cout<<\n\t该书已出请读者进行相关操作< system(pause)
    admin_menu()
    }
    void delBook() 删书籍函数
    {
    char numb[10]
    cout<<\n\t请输入您删书籍书号:
    cin>>numb
    int indexbmbnu_search(numb)
    if(index>0)
    {
    cout<<\n\t您确定删该书记录(yn)
    char y
    cin>>y
    if(y'y'||y'Y')
    {
    bmdeleteBook(index)
    cout<<\n\t删成功
    }
    else
    cout<<\n\t删取消
    }
    else
    cout<<\n\t起系统没该图书记录
    system(pause)
    admin_menu()
    }
    void reviseReader()修改读者户函数
    {
    char namer[10]
    Reader reader
    get1 cout<<\n\t请输入修改读者户姓名
    cin>>namer
    int indexrmsearch(namer)
    if(index1)
    {
    cout<<\n\t起系统改读者记录重新输入请1返回请0
    int a
    cin>>a
    get2 cinignore()
    switch(a)
    {
    case 1
    goto get1
    break
    case 0
    system(pause)
    admin_menu()
    break
    default
    cout<<\n\t您操作误请重新选择(01)
    goto get2
    }
    return
    }
    else
    {
    char namer[10]
    char classr[10]
    char telr[10]
    Reader reader
    cout<<\n\t请输入更改读者姓名:
    cin>>namer
    cout<<\n\t请输入更改班级名称:
    cin>>classr
    cout<<\n\t请输入更改联系电话:
    cin>>telr
    readerset_rname(namer)
    readerset_rclass(classr)
    readerset_rtel(telr)
    cout<<\n\t否真修改该记录(yn)
    char y
    cin>>y
    if(y'y'||y'Y')
    {
    rmrevise(readerindex)
    cout<<\n\t修改成功\n
    }
    else
    cout<<\n\t操作取消\n
    }
    system(pause)
    admin_menu()
    }
    void delReader() 删读者户函数
    {
    cout<<\n\t请输入您删读者户姓名:< char namer[10]
    cin>>namer
    int indexrmsearch(namer)
    if(index>0)
    {
    cout<<\n\t否真删该记录(yn)
    char y
    cin>>y
    if(y'y'||y'Y')
    {
    rmdelete_reader(index)
    cout<<\n\t删成功\n
    }
    else
    cout<<\n\t操作取消\n
    }
    else
    cout<<\n\t起系统尚该读者记录
    system(pause)
    admin_menu()
    }
    }

    ********函数********
    int main()
    {
    system(color fd)
    Menu menu 定义菜单结构体象menu
    cout<<\t\t\t 前日期:system(DATE [T])
    cout<<\t\t\t 前时间: system(TIME [T])
    cout<<\n\t\t\t ★ 欢 _sleep(600)cout<<★ 迎 _sleep(600)
    cout<<★ 进 _sleep(600)cout<<★ 入 ★\n\n
    menulog_menu()
    return 0
    }
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    非编码键盘的扫描程序设计课程设计

    摘 要 11设计方案 21.1 设计任务 21.2 设计方案 22系统硬件设计 32.1最小应用系统 32.2 8155扩展电路 42.3 矩阵键盘接口电路 62.4 LCD1602...

    2年前   
    479    0

    《高级语言程序设计》实验报告

    1.掌握在Visual C++6.0环境下C程序的建立、编辑、编译和执行过程。2.掌握C程序的最基本框架结构,完成简单程序的编制与运行。3.了解基本输入输出函数scanf()、printf ()...

    2年前   
    611    0

    C语言程序设计实验报告

    C语言程序设计实验报告  实验名称 计算出1000以内10个最大素数之和   实验目的   1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语...

    11年前   
    1082    0

    《高级语言程序设计》实验报告

    设计一种用单链表存储多项式的结构(每个结点存储一项的系数和指数,类型都为int)并编写一个产生多项式链表的函数和一个实现两个多项式相加和相乘的函数。

    6年前   
    3644    0

    聊天程序设计嵌入式linux课程设计报告

    课程设计成果 院(系):_电气与信息工程学院_ 班 级: 计科普 学生姓名: 学 号: 设计地点(单位)_...

    2年前   
    319    0

    《Python程序设计》题库

    第一章 基础知识1、Python安装扩展库常用的是_______工具。(pip)2、Python标准库math中用来计算平方根的函数是__________。(sqrt)3、Python程序文件扩...

    2年前   
    639    0

    程序设计基础

    程序设计基础 下面我们这一节我们概要向用户管理人员介绍面问过程的程序设计语言的原理。绝大多数生产程序是用诸如COBOL、BASIC这样的POL编制的。虽然用户管理人员通常没有机会...

    14年前   
    13518    0

    国开电大《C语言程序设计》答案

    形考1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(  )。选择一项:A. main 正确恭喜你,答对啦!!B. MAIN C. name D. function .题目2正确...

    1年前   
    584    1

    《Python程序设计》题库(1)

    一、 填空题1、 Python安装扩展库常用的是_______工具。(pip)2、 Python标准库math中用来计算平方根的函数是__________。(sqrt)3、 Python程序文件...

    4年前   
    7820    0

    C语言程序设计习题试题集

    《C语言程序设计》精品课件试题目录(按住CTRL键点击超链)单项选择题………………………第002页阅读程序题………………………第018页程序填空题………………………第039页编写程序题…………...

    2年前   
    6015    0

    C语言程序设计说课教案

    《C语言程序设计》说课教案从以下方面说明:一、 课程性质、地位二、 教学对象分析及要求三、 课程体系四、 课程的重点、难点及突破五、 教学方法与教学手段六、 学生考核七、 教学计划一、 课程性...

    2年前   
    448    0

    java毕业论文java程序设计

    XXXX学院XXXX毕业论文Java程序设计专业 计算机网路技术 学号XXXX 姓名 XXX 指导教师姓名 XXX 职称 单位 XXX 完成毕业设计(论文)的实践基地 XXX...

    1年前   
    823    0

    程序设计员的求职信

    程序设计员的求职信第一篇:程序设计员求职信尊敬的美的公司总经理先生:本人汪进,冒昧的打扰并想表达自己的诚意,我怀揣对贵公司的仰慕,斗胆投石问路,在这即将毕业之际,自荐成为贵公司一员,全心为公司...

    10年前   
    609    0

    JAVA面向对象程序设计教案

    教 案任课教师: 课程名称:面向对象程序设计(Java) 任课班级:专科计算机班、专科网络班、专科软件班 授课时间: 2013-2014-2学期教 案编号:1章节Java SE...

    2年前   
    436    0

    《冷和热》习作程序设计表

    《冷和热》习作程序设计表(word文档,打开后格式正常) 课 堂 名  称:  _  地席课          小组名称:_      果果班           时        间:__...

    11年前   
    9877    0

    计算机程序设计和软件

    软 件总的来说,软件就是指用以指挥计算机运行活动所使用的程序。有两类软件:应用软件和系统软件。程序员设计和编制应用软件来完成面向用户的某些应用,诸如收帐和工资系统等。系统软件更为通用,通常是...

    12年前   
    635    0

    2018年编程毕业论文:程序设计

    编程毕业论文:程序设计  1现行教学方法存在的问题  1.1教学与实践脱节vfp是一门操作性很强的课程,我院以往的理论课在教室上,实验课在机房上,这种理论和实践相脱离的教学模式,不能收到很好的...

    6年前   
    635    0

    《JAVA语言程序设计》试题及答案3

    《JAVA语言程序设计》试题及答案3《JA V A语言程序设计》试题及答案3一、单选题1、下列程序段执行后的结果是( )。String s = new String(“abcdefg“);fo...

    3年前   
    1073    0

    C语言程序设计形考任务

    假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为( )。选择一项: a. struct ...

    5年前   
    1631    0

    《VB程序设计》实训大纲

    课程名称:VB程序设计实训/Visual Basic Programming Practice课程类型:专业实训课学时:60学时学期:第二、三学期各一周先修课程:计算机基础、vfp或Access、VB程序设计

    2年前   
    453    0

    文档贡献者

    文***品

    贡献于2021-11-12

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档