课程设计实验一

news/2024/11/25 3:11:53/

实验一:图书信息管理系统的设计与实现

(一)实验内容:

设计并实现一个图书信息管理系统。根据实验要求设计该系统的菜单和交互逻辑,并编码实现增删改查的各项功能。 该系统至少包含以下功能:

  1. 根据指定图书个数,逐个输入图书信息;
  2. 逐个显示图书表中所有图书的相关信息;
  3. 能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置;
  4. 根据指定的待出库的旧图书的位置,将该图书从图书表中删除;
  5. 能统计表中图书个数;
  6. 实现图书信息表的图书去重;
  7. 实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;
  8. 图书信息表按指定条件进行批量修改;
  9. 利用快速排序按照图书价格降序排序;
  10. 实现最贵图书的查找;

(二)实验流程图:

(三)实验内容:

图书信息的定义:

typedef struct {

    char no[8];   //8位书号

    char name[20]; //书名

    int price;     //价格

}Book;

定义线性链表结构:

typedef struct LNode{

     Book   data;       //数据域

     struct LNode  *next;   //指针域

}LNode,*LinkList;

通过各种函数调用实现

1.显示图书表中所有图书的相关信息

void print ();

遍历链表输出数据即可

2.插入到图书表中指定的位置

void insert();

在头结点之后插入首元结点,紧接着再往后面插入数据

3.删除图书

void Delete(int i) {
    LNode* p = first;
    int j = 0;
    //寻找删除位置前一个位置
    while (p && j < i - 1) 
    { p = p->next; j++; }
    if (!p || !p->next)cout << "位置出错" << endl;
    else {
        LNode* q = p->next;
        Book book = q->data;
        p->next = q->next;
        cout << "删除的图书信息为:" << q->data.no << q->data.name << setiosflags(ios::fixed) << setprecision(2) << q->data.price << endl;
        delete q;
    }
}

4.统计图书个数

int statis() {
    LNode* p = first->next;
    int count = 0;
    while (p) {
        count++;
        p = p->next;
    }
    return count;
}

5.图书去重

void norepetition() {
    LNode* p = first->next, * r = p->next;
    while (p) {
        r = p->next;
        while (r) {
            if (strcmp(p->data.no, r->data.no) == 0) {
                p->next = r->next;
            }
            r = r->next;
        }
        p = p->next;
    }
}

6.书籍查询

void inquire()

7.批量修改

void modific();

8.快速排序按照图书价格降序排序
void sort() {
    LNode* p = first->next;
    LNode* q = p->next;
    while (p != NULL) {
        q = p->next;
        while (q != NULL) {
            if (p->data.price < q->data.price) {
                Book x;
                x = p->data;
                p->data = q->data;
                q->data = x;
            }q = q->next;
        }p = p->next;
    }
}

10.最贵图书查找

void expensive();

打印出最贵图书


http://www.ppmy.cn/news/378751.html

相关文章

设计一源代码

#include #include using namespace std; typedef struct { char no[8]; //8位书号 char name[20]; //书名 double price; //价格 }Book; //链表的定义 typedef struct LNode { Book data; //数据域 struct LNode* next; //指针域 }LN…

巴伦变压器的选型和设计

目录 1. 术语 2. 概述 3. 构架演变 3.1 正交混频架构 3.2 外差采样架构 3.3 RF采样架构 4. 直接RF采样 5. 前端电路结构 6. 巴伦 7. 模型及计算 8 典型电路 9. 前端网络的衰减 10. 主要厂家 11. PCB设计 1. 术语 XFMR&#xff1a;变压器 Balun&#xff1a;平衡不…

站在设计风口上,你也会飞

编者注: 本文来自Medium&#xff0c;中文版由天地会珠海分舵进行编译。发文时该文在Medium上的“头条推荐”上排名第二位&#xff0c;可见其在国外同行中时备受推崇的。为了让国内的读者更容易阅读&#xff0c;译者在编译的时候有进行比较大刀阔斧的删改&#xff0c;如果读者觉…

2020中国彩礼地图:哪里娶媳妇最贵?

来源 公众号“谷雨数据” 未经许可&#xff0c;不得转载 结一次婚到底有多费钱&#xff1f; 除了宴请亲友&#xff0c;拍美美的婚纱照&#xff0c;占据账单最大头的&#xff0c;非彩礼莫属。 有些地方讲究一动&#xff08;车&#xff09;不动&#xff08;房&#xff09;&…

《工业设计史》第七章:艺术变革与现代设计

目的&#xff1a;20世纪初的欧洲艺术运动 力图定义在工业文明条件下美学的形式与功能 eg&#xff1a;未来主义、表现主义和构成主义等 时间段&#xff1a;同时伴随着 标准化与合理化 的发展 角度基础标准化、合理化基于工业生产的压力艺术运动基于艺术理论与价值 联系&#xf…

图书管理系统课程设计

目录 一&#xff0c;目的和基本要求 二&#xff0c;设计要求 三&#xff0c;设计的任务 3.1图书信息管理系统的设计与实现 3.1.1实验内容 3.1.2实验提示 四&#xff0c;代码实现 一&#xff0c;目的和基本要求 了解并掌握数据结构和算法设计的方法&#xff0c;具备初步…

(翻译)优秀价格表的7种设计策略

在商业网站中&#xff0c;价格方案页面是最重要的页面之一。如果用户看不到注册网站带来的收益&#xff0c;他们就不会付款。为了将游客变成客户&#xff0c;需要精心设计价格表&#xff0c;让价格方案引人注目。以下价格表设计策略有助于将感兴趣的游客付费客户。 1、淡化价格…

算法设计总述

算法设计复习笔记 引言 稳定匹配问题 现在有N位男生和N位女生&#xff0c;每个男生都对N个女生的喜欢程度做了排序&#xff0c;每个女生都对N个男生的喜欢程度做了排序&#xff0c;现在需要确定一个稳定的约会状态。 稳定的定义&#xff1a;如果男生i和女生a牵手&#xff0c…