2.6 删除功能2
在现代化的图书管理中,图书管理系统有着十分重要的作用,然而,用大型软件系统来处理图书管理的小型事件,不免就有点大材小用,因此小型的软件系统对于这种图书管理自然就有着十分重要的作用。我出于这种目的制作了图书管理系统。
任务:本课题的主要任务是定义书类book,首先要定义一个结构体其中包含图书、编号、名称、出版社、isbn号、销量、评级、存量和用以操作的next指针 ,定义一个全局变量用以储存书的总量,定义指针用以控制文件读入及写入文件,并且定义了私有数据y、k、r用以储存书的评级,还要在类中定义了一系列用以操作的函数。
分析:添加一个或多个图书的基本信息,包括编号、名称、评级、出版社、isbn号、存量及销量,并保存在文件中。
提供三个选项供使用者选择,1---通过名称查询2---通过编号查询 3---显示全部信息,并可通过选项类别查询相应的已保存的图书信息。
通过统计功能可以统计输入的书的类别(评级),并输出每种书类的具体数目。输出格式如“科技+书的数量” 。
通过排序功能可实现对每种图书的销量排序并显示。
可对已保存书目进行编号查询,并对已有书目的所有信息进行编辑并保存。
通过输入要删除的书目编号,对已有书目进行删除操作。
此功能用于将对书目的操作,保存在文件中fp=fopen("e:\\图书书目。txt","w");for(p1=head;p1!
=null;p1=p1->next)fwrite(p1,sizeof(struct books),1,fp);fclose(fp);
此功能用于把文件中的书目信息读取出来,file *fp;fp=fopen("e:\\图书书目。txt","r");q=p=(structbooks*)malloc(sizeof(struct books));fread(p,sizeof(structbooks),1,fp);head=p;while(!
feof(fp))q->next=null;fclose(fp);
class book
public:
struct books
struct books fbook,sbook;
book()
friend void tianjia(book &book);
void chaxun(char cx[50],int a);
void chaxun();
void tongji();
void paixu();
bool bianji(char k1[50],int b,char k[50]);k为新信息,b为选项编号。
void shanchu(char k1[50]);要删除的图书编号。
private:
static int s;
struct books *head,*p,*q,*p1,*p2;
int y,r,k;
添加模块中运用了两个循环结构来控制输入的项目有效且能录入全部信息,一开始的读取文件则是为了与其他编号进行比较,以避免重复录入。s为书的总数量,每增加一本书,书的总数加一。
5.2 查询模块。
首先读入文件,并且在查询模块中设置了变量a,以键入需要选择的选项。当a=1或a=2时,通过编号和名称对书目进行查询;当a=3时,调出所有储存在文件中的书目信息。
5.4.1说明。
在此模块中使用了友元函数读取文件,调用了内存数据进行排序显示,此功能可以对书目的销量进行排序,然后输出。
首先读取文件信息,然后输入编号进行检索,若编号匹配则进行更改,更改后就保存至文件,不匹配就进行下一个编号,直至最后,若不存在,输出“不存在此书”。
5.6.1流程图。
5.6.2说明。
首先读取文件信息,然后输入编号进行检索,若编号匹配则用链表进行删除,删除后就保存至文件,不匹配就进行下一个编号,直至最后,若不存在,输出“不存在此书”。
图6.1主界面由界面函数(如图6.1)来完成,封装在book类里面具体调用在主函数里面多有用到,主界面只承担显示选项功能,具体的选择则在主函数中完成。
图6.2对于添加功能(如图6.2)来说,添加时必要的提示内容是必不可少的,通过一定的引导来实现更准确的添加,避免出错,就能提高使用者的使用体验,并且提高添加效率。
7 心得体会。
#include
#include <>
#include
#include
using namespace std;
int i,j,l;
class book
public:
struct books
struct books fbook,sbook;
book()
friend void tianjia(book &book);
void chaxun(char cx[50],int a);
void chaxun();
void tongji();
void paixu();
bool bianji(char k1[50],int b,char k[50]);k为新信息,b为选项编号。
void shanchu(char k1[50]);要删除的图书编号。
private:
static int s;
struct books *head,*p,*q,*p1,*p2;
int y,r,k;
int book::s=0;
void jiemian()
cout<< 周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统... 题目各类图形面积与周长计算和高考倒计时。学生姓名张磊 学号 20131344054 学院计算机与软件学院 专业软件工程 指导教师马瑞。二 一五年六月 25 日。目录。1 引言 1 1.1 系统开发背景和意义 1 1.2 服务器运行环境 2 1.3 课题内容 2 2 系统需求分析及相关技术介绍 2 2... c 程序课程设计报告。学院 资源与安全工程学院 专业班级 城市地下空间工程1303 姓名卢途。指导教师 彭述权。课程设计时间 2013 2014学年第二学期18 19周。一 题目一 设计一 学生成绩管理系统 它的主要功能是对学生的成绩进行输入 修改和管理。系统功能要求 界面要求 学生成绩管理系统 1...c语言课程设计报告 课程设计报告
C课程设计报告
C 课程设计报告