c++课程设计,模拟实现图书管理系统!!!

作者&投稿:冯食 (若有异议请与网页底部的电邮联系)
C++课程设计 图书管理系统~

#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#define STACK_INIT_SIZE 10
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0

struct student /*定义学生类型,用于存放借出的书籍*/
{
int carnum;
char lendbook[10];
}student[1000];

struct employ /*定义职工类型*/
{
int employnum;
char employname[15];
int employage;
char employsex[2];
char employleve[10];
long int employtage;
}employ[50];

struct book /*定义书的类型*/
{
int booknum;
char bookname[10];
char bookcreat[10];
int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/
}book[1000];

struct car /*借书卡的数据类型*/
{
int carnum;
char studentname[10];
int studentclass;
}car[100];
huanbook() /*还书函数*/
{
FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/
int i,n;
int carnum;
char lendbook[10];
printf("请你输入你的卡号
");
scanf("%d",&carnum);
fp=fopen("car.txt","r"); /*读取卡号记录*/
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/
{
if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/
{
n=i;
fclose(fp);
printf("请输入你要还的书的名字
");
scanf("%s",lendbook);
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/
{
if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/
{
fclose(fp);
fp=fopen("record.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
{
if(strcmp(student[i].lendbook,lendbook)==0)
{
continue; /*删除还掉的书的借书记录*/
}
fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/
}
fclose(fp);
fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
{
fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清临时文件的记录*/
fclose(fp2);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/
{
if(i==n)
{
book[i].turefalse=1;
fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清临时文件*/
fclose(fp2);
printf("还书完毕,按任意键返回
");
getch();
return 1;
}
}
printf("你没有借这样的书,任意键返回
"); /*出错提示*/
fclose(fp);
getch();
return 0;
}
}
printf("系统没这样的卡,和管理员联系,按任意键返回
"); /*出错提示*/
fclose(fp);
getch();
}
findbook()
{
FILE *fp;
char bookname[10];
int ture,i;
fp=fopen("book.txt","r");
printf("请输入你要查找的书名
");
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(bookname,book[i].bookname)==0)
{
if(book[i].turefalse==1)
{
printf("这本书的详细资料是:%d %s %s 此书现在无人借阅
按任意键返回
",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
else
fclose(fp);
return FALSE;
}
}
printf("没有你要查询的书籍
");
fclose(fp);
return FALSE;
}
findbook1()
{
FILE *fp;
char bookcreat[10];
int ture,i;
fp=fopen("book.txt","r");
printf("请输入你要查找的作者名
");
scanf("%s",bookcreat);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(bookcreat,book[i].bookcreat)==0)
{
if(book[i].turefalse==1)
{
printf("这本书的详细资料是:%d %s %s 此书现在无人借阅
按任意键返回
",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
else
fclose(fp);
return FALSE;
}
}
printf("没有你要查询的书籍
");
fclose(fp);
return FALSE;
}
lendcount()
{
FILE *fp;
int i,n=0;
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
{
printf("卡号:%d 借出的书籍:%s
",student[i].carnum,student[i].lendbook);
n=n+1;
}
fclose(fp);
printf("目前共有%d本书借出
",n);
printf("按任意键
");
getch();
return n;
}
chabook()
{
char ch5;
do
{
printf("---------------欢迎进入图书查询系统!--------------
");
printf(" 1:<按书名查找>
");
printf(" 2:<按作者查找>
");
printf(" 0:<返回>
");
printf("请输入0--2,其他输入非法!
");
scanf("%s",&ch5);
switch(ch5)
{
case '1':findbook();getch();break;
case '2':findbook1();getch();break;
case '0':break;
default:printf("无此操作
");getch();break;
}
}while(ch5!='0');
return FALSE;
}
lendbook()
{
FILE *fp,*fp2;
int i,n;
int carnum;
printf("请你输入你的卡号
");
scanf("%d",&carnum);
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
if(car[i].carnum==carnum)
{
n=i;
fclose(fp);
printf("请输入你要借阅的书的名字
");
scanf("%s",student[n].lendbook);
fp=fopen("book.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].bookname,student[n].lendbook)==0)
{
if(book[i].turefalse==0)
else
fclose(fp);
fp=fopen("record.txt","a+");
student[n].carnum=carnum;
fwrite(&student[n],sizeof(struct student),1,fp);
fclose(fp);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].bookname,student[n].lendbook)==0)
{
book[i].turefalse=0;
fwrite(&book[i],sizeof(struct book),1,fp2);
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp);
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w");
fclose(fp2);
printf("借书完毕,按任意键返回
");
getch();
return;
}
}
printf("不存在这样的书,任意键返回
");
fclose(fp);
getch();
return;
}
}
printf("你的卡号不存在,请申请新卡,按任意键返回
");
fclose(fp);
getch();
}
carcount()
{
FILE *fp;
int i,n=0;
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
printf("第%d张卡<卡号:%d 姓名:%s 班级:%d>
",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);
n=n+1;
}
fclose(fp);
printf("目前共有%d本书
",n);
printf("按任意键
");
getch();
}
delcar()
{
FILE *fp,*fp2;
int i;
int carnum;
char choice;
fp=fopen("car.txt","r");
fp2=fopen("bookl.txt","w");
printf("请输入你要删除的卡号
");
printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动
");
scanf("%d",&carnum);
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
if(car[i].carnum!=carnum)
{
fwrite(&car[i],sizeof(struct car),1,fp2);
}
}
fclose(fp);
fclose(fp2);
printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》
");
scanf("%s",&choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("car.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++)
{
fwrite(&car[i],sizeof(struct car),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
printf("按任意键返回
");
getch();
return;
}
else
{
printf("按任意键返回
");
getch();
return;
}
}


addcar()
{
FILE *fp;
int i=0;
fp=fopen("car.txt","a+");
printf("请你输入卡号
");
scanf("%d",&car[i].carnum);
printf("请你输入学生姓名
");
scanf("%s",car[i].studentname);
printf("请你输入班级
");
scanf("%d",&car[i].studentclass);
fwrite(&car[i],sizeof(struct car),1,fp);
fclose(fp);
printf("输入完毕,任意键返回
");
getch();
}


changemploy()
{
FILE *fp,*fp2;
char employname[10],choice;
int i;
fp=fopen("employ.txt","r");
fp2=fopen("bookl.txt","w");
printf("请你输入要修改的职工的名字
");
scanf("%s",employname);
for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++)
{
if(strcmp(employ[i].employname,employname)==0)
{
printf("你所要修改的职工的资料如下,请选择你要修改的内容
");
printf("<职工号:%d职工名:%s 年龄:%d 性别:%s 学历:%s 工资:%d>
",employ[i].employnum,employ[i].employname,employ[i].employage,employ[i].employsex,employ[i].employleve,employ[i].employtage);
printf("2:修改职工名
");
printf("3:修改职工年龄
");
printf("4:修改职工工资
");
printf("5:修改职工学历
");
printf("请输入1-5:");
scanf("%s",&choice);
switch(choice)
{
case '1':
{
printf("请输入新的职工号
");
scanf("%d",&employ[i].employnum);
fwrite(&employ[i],sizeof(struct employ),1,fp2);
}break;
case '2':
{
printf("请输入新的职工姓名
");
scanf("%s",employ[i].employname);
fwrite(&employ[i],sizeof(struct employ),1,fp2);
}break;
case '3':
{
printf("请输入新的年龄
");
scanf("%d",&employ[i].employage);
fwrite(&employ[i],sizeof(struct employ),1,fp2);
}break;
case '4':
{
printf("请输入新的职工工资
");
scanf("%d",&employ[i].employtage);
fwrite(&employ[i],sizeof(struct employ),1,fp2);
}break;
case '5':
{
printf("请输入新的职工学历
");
scanf("%s",employ[i].employleve);
fwrite(&employ[i],sizeof(struct employ),1,fp2);
}
default:printf("没有这样的操作");break;
}
continue;
}
fwrite(&employ[i],sizeof(struct employ),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("employ.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&employ[i],sizeof(struct employ),1,fp2)!=0;i++)
{
fwrite(&employ[i],sizeof(struct employ),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
printf("按任意键返回
");
getchar();
return;
}


delemploy()
{
FILE *fp,*fp2;
int i;
char employname[10],choice;
fp=fopen("employ.txt","r");
fp2=fopen("bookl.txt","w");
printf("请输入你要删除的职工名
");
printf("如果你输入的职工存在,系统自动删除该信息!如果不存在,系统不做任何改动
");
scanf("%s",employname);
for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++)
{
if(strcmp(employname,employ[i].employname)!=0)
{
fwrite(&employ[i],sizeof(struct employ),1,fp2);
}
}
fclose(fp);
fclose(fp2);
printf("是否真的要删除该职工信息?删除后的所有信息将无法恢复《Y/N》
");
scanf("%s",&choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("employ.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&employ[i],sizeof(struct employ),1,fp2)!=0;i++)
{
fwrite(&employ[i],sizeof(struct employ),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
printf("按任意键返回
");
getch();
return TRUE;
}
else
{
printf("按任意键返回
");
getch();
return FALSE;
}
}


employcount()
{
FILE *fp;
int i,n=0;
fp=fopen("employ.txt","r");
for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++)
{
printf("第%d职工的信息如下:
<职工号:%d 职工名:%s 年龄:%d 性别:%s 学历:%s 工资:%d>
",n+1,employ[i].employnum,employ[i].employname,employ[i].employage,employ[i].employsex,employ[i].employleve,employ[i].employtage);
n++;
}
fclose(fp);
printf("目前共有%d个职工
",n);
printf("按任意键返回
");
}


addemploy()
{
FILE *fp;
char choice='y';
int i=1;
fp=fopen("employ.txt","a+");
while(choice=='y'||choice=='Y')
{
printf("请你输入职工号码
");
scanf("%d",&employ[i].employnum);
printf("请你输入职工名
");
scanf("%s",employ[i].employname);
printf("请输入职工年龄
");
scanf("%d",&employ[i].employage);
printf("请你输入性别
");
scanf("%s",employ[i].employsex);
printf("请你输入职工的学历水平
");
scanf("%s",employ[i].employleve);
printf("请输入职工的工资
");
scanf("%d",&employ[i].employtage);
fwrite(&employ[i],sizeof(struct employ),1,fp);
printf("是否要输入下个职工信息?
");
scanf("%s",&choice);
}
printf("按任意键返回
");
fclose(fp);
}


addbook()
{
FILE *fp;
int i=0;
char choice='y';
fp=fopen("book.txt","a+");
while(choice=='y'||choice=='Y')
{
printf("请你输入第%d本书的序号
",i+1);
scanf("%d",&book[i].booknum);
printf("请你输入书名
");
scanf("%s",book[i].bookname);
printf("请你输入书的作者
");
scanf("%s",book[i].bookcreat);
printf("请设为1或0,1代表书还没人借,0表示书已经借出,设其他值,程序运行时无法得出正常结果
");
printf("请你设定书的状态
");
scanf("%d",&book[i].turefalse);
fwrite(&book[i],sizeof(struct book),1,fp);
printf("是否要输入下本书
");
scanf("%s",&choice);
}
fclose(fp);
}

bookcount()
{
FILE *fp;
int i,n=0;
fp=fopen("book.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcreat)!=0)
{
printf("第%d本书<序号:%d 书名:%s 作者:%s 状态:%d>
",i+1,book[i].booknum,book[i].bookname,book[i].bookcreat,book[i].turefalse);
n=n+1;
}
}
fclose(fp);
printf("目前共有%d本书
",n);
printf("按任意键
");
}

delbook()
{
FILE *fp,*fp2;
int i;
char bookname[10],choice;
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
printf("请输入你要删除的书名
");
printf("如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动
");

1.开发背景
数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的树木逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,通过使用PowerBuilder创建的图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。
2.需求分析
2.1系统目标
图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
系统开发的总体任务是实现各种信息的系统化,规范化和自动化。
2.2需求定义
图书馆管理系统开发。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。
本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。本系统结构分为读者类别管理、读者档案管理、图书类型管理、图书档案管理以及图书流程管理,读者管理可以浏览读者的信息,可以对读者信息进行维护。图书管理可以浏览图书的信息,可以对图书信息进行维护。借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。本系统主要解决的问题是利用关键字对数据库进行查询。
其系统的功能模块图如下:

图2-1 系统功能模块图

针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:

读者信息
属性:读者学号,读者姓名,读者性别,联系电话,所在院系,生效日期,失效日期,违章状况,累计借书
主键:读者学号
书籍信息
属性:ISBN,书名,作者,出版社,出版日期,简介
主键:ISBN
管理员信息
属性:工作号,姓名,性别,电话,家庭住址
主键:工作号
2.3数据流程
2.3.1 读者
作为学生对图书管理系统的要求有:
1. 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。
2. 能够方便地借阅图书、续借图书、归还图书。
3. 能够查询自己的基本资料、借阅图书情况。
4. 能够熟悉图书管理系统的使用。
读者进入系统工作的流程图为:

2-1进入系统工作的流程图
2.3.2 图书管理员
作为图书管理员,他们对图书管理系统的要求有:
1. 能方便的对图书进行录入登记,注销陈旧的书籍。
2. 能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。
3. 能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。
图书管理员工作的流程图为:

2-2图书管理员工作流程图
3.功能描述
系统功能分析是在系统开发的总体任务的基础上完成。本系统需要完成的功能主要有5部分:
(1) 图书基本情况的录入,修改,删除等基本操作。
1.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,关键词,备注信息等。
2.书籍类别信息的查询,修改,包括类别编号,类别名称,关键词,备注信息等。
3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息等。
(2) 办理借书卡模块。
1.新生办理借书证。
2.丢失办理借书证。
(3) 实现借书功能。
1.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
2.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
(4) 实现还书功能。
1.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
2.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
(5) 能方便的对图书进行查询。对超期的情况能自动给出提示信息
4.概念模型设计
各部分E-R图如下:
(1)读者信息类别实体E-R图









4-1 读者类别实体E-R图


(2)书籍信息类别实体E-R图









4-2 书籍类别实体E-R图

(3)图书借阅实体E-R图:


4-3 图书借阅实体E-R图

(4)投诉管理实体E-R图:

4-4 投诉管理实体E-R图



4-5实体之间关系的E-R图


借阅关系(读者、管理员、书籍三元关系)



图4-6 CDM图

5.逻辑模型设计和优化
从理论‘E-R模型’到理论‘关系模型’的整理转换,通过E-R模型到关系模型的转化,可以得到如下关系模式:
借阅关系
属性:工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。
主键:工作号,读者学号,ISBN
管理员_书籍关系
属性:工作号,ISBN,添加时间,是否在馆
主键:工作号,ISBN
管理员_学生关系
属性:工作号,读者学号,确认借还
主键:工作号,读者学号
通过由概念模型设计得到CDM图powerdesigner转换成对应的PDM图:












PDM图

5.1图书信息表
列名 数据类型 可否为空
ISBN varchar 否
书名 varchar 否
作者 varchar 否
出版社 varchar 是
出版日期 datetime 是
简介 varchar 是

5.2 读者信息表
列名 数据类型 可否为空
读者学号 varchar 否
读者姓名 varchar 否
读者性别 varchar 否
联系电话 varchar 是
所在院系 varchar 否

5.3 管理员信息表
列名 数据类型 可否为空
工作号 varchar 否
姓名 varchar 否
性别 varchar 否
电话 varchar 是
家庭住址 varchar 是


5.4 借阅表
列名 数据类型 可否为空
工作号 char 否
ISBN char 否
读者学号 char 否
借阅日期 datetime 否
还书日期 datetime 否
是否续借 char 否

5.5 管理员_书籍
列名 数据类型 可否为空
工作号 char 否
ISBN char 否
添加时间 datatime 是
是否在馆 char 是

5.6 管理员_学生
列名 数据类型 可否为空
工作号 char 否
读者学号 char 否
借还确认 char 否

6.物理设计和实施
从理论‘关系模型’到实现\实施‘数据库建立’,物理文件的安排和建立索引
6.1 建立索引
为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:

(1)读者信息(读者学号)
(2)书籍信息(ISBN)
(3)管理员信息(工作号)
(4)借阅(工作号,读者学号,ISBN)
(5)管理员_书籍(工作号,ISBN)
(6)管理员_学生(工作号,读者学号)

6.2 SQL语句
如下所示:
/*==============================================================*/
/* Table: 书籍信息 */
/*==============================================================*/
create table 书籍信息
(
ISBN char(20) not null,
书名 char(20),
作者 char(10),
出版社 char(15),
出版日期 char(30),
简介 char(160),
constraint PK_书籍信息 primary key (ISBN)
);

/*==============================================================*/
/* Index: 书籍信息_PK */
/*==============================================================*/
create unique index 书籍信息_PK on 书籍信息 (
ISBN ASC
);

/*==============================================================*/
/* Table: 投诉 */
/*==============================================================*/
create table 投诉
(
工作号 char(10) not null,
学号 char(10) not null,
投书意见 char(100),
投诉日期 char(30),
受诉日期 char(30),
constraint PK_投诉 primary key (工作号, 学号)
);

/*==============================================================*/
/* Index: 投诉_PK */
/*==============================================================*/
create unique index 投诉_PK on 投诉 (
工作号 ASC,
学号 ASC
);

/*==============================================================*/
/* Index: 投诉_FK */
/*==============================================================*/
create index 投诉_FK on 投诉 (
工作号 ASC
);

/*==============================================================*/
/* Index: 投诉2_FK */
/*==============================================================*/
create index 投诉2_FK on 投诉 (
学号 ASC
);

/*==============================================================*/
/* Table: 登记 */
/*==============================================================*/
create table 登记
(
工作号 char(10) not null,
学号 char(10) not null,
ISBN char(20) not null,
证书日期 char(30) not null,
还书日期 char(30) not null,
违章状况 char(160),
累计借书 char(160),
备注 char(160),
constraint PK_登记 primary key (工作号, 学号, ISBN)
);

/*==============================================================*/
/* Index: 登记_PK */
/*==============================================================*/
create unique index 登记_PK on 登记 (
工作号 ASC,
学号 ASC,
ISBN ASC
);

/*==============================================================*/
/* Index: 登记_FK */
/*==============================================================*/
create index 登记_FK on 登记 (
工作号 ASC
);

/*==============================================================*/
/* Index: 登记2_FK */
/*==============================================================*/
create index 登记2_FK on 登记 (
学号 ASC
);

/*==============================================================*/
/* Index: 登记3_FK */
/*==============================================================*/
create index 登记3_FK on 登记 (
ISBN ASC
);

/*==============================================================*/
/* Table: 管理员信息 */
/*==============================================================*/
create table 管理员信息
(
工作号 char(10) not null,
姓名 char(10),
性别 char(5),
电话 char(15),
所在院系 char(25),
constraint PK_管理员信息 primary key (工作号)
);

/*==============================================================*/
/* Index: 管理员信息_PK */
/*==============================================================*/
create unique index 管理员信息_PK on 管理员信息 (
工作号 ASC
);

/*==============================================================*/
/* Table: 读者信息 */
/*==============================================================*/
create table 读者信息
(
学号 char(10) not null,
姓名 char(10),
性别 char(5),
电话 char(15),
所在院系 char(25),
constraint PK_读者信息 primary key (学号)
);

/*==============================================================*/
/* Index: 读者信息_PK */
/*==============================================================*/
create unique index 读者信息_PK on 读者信息 (
学号 ASC
);
7.主要数据操纵语句
7.1管理员操作
(1)注册(register)
INSERT INTO 管理员 (工作号,姓名,性别,电话,家庭住址,备注)
VALUES(#工作号,#姓名,#性别,#电话,#家庭住址,#备注)
说明:在登记操作后,管理员得到一个唯一的工作号,可以根据这个工作号采查询和修改数据。
(2)注销(unregister)
DELETE
FROM Provider
WHERE(工作号=#工作号);
(3)修改个人信息(update)
UPdate 管理员
Set (工作号=#工作号,姓名=#姓名,性别=#性别,电话=#电话,家庭住址=#家庭住址)
WHERE(工作号=#工作号)
(4)增加书籍(addbooks)
INSERT INTO 图书 (ISBN,书名,作者,出版社,出版日期,简介,)
VALUES(#ISBN,#书名,#作者,#出版社,#出版日期,#简介,#备注) INSERT INTO
管理员_书籍表(工作号,ISBN,添加时间,是否在馆)
VALUES(#工作号,#ISBN,#添加时间,#是否在馆)
(5)删除书籍(deletebooks)
DELETE 图书
WHERE(ISBN =# ISBN)
(6)修改书籍(updatebooks)
UPDATE 图书(书名=#书名, 作者=#作者, 出版社=#出版社, 出版日期=
#出版日期, 简介=#简介)
WHERE(ISBN =# ISBN)

7.2读者操作
(1)注册(register)
INSERT INTO 读者(读者学号,读者姓名,读者性别,联系电话,所在系,
生效日期,失效日期,违章状况,累计借书,备注)
VALUES(#读者学号,#读者姓名,#读者性别,#联系电话,#所在系,
#生效日期,#失效日期,#违章状况,#累计借书,#备注)
说明:在登记操作后,读者得到一个唯一的ID,可以根据这个ID来查询和修改自己的信息。
(2)注销(unregister)
DELETE 读者
WHERE(读者学号=#读者学号)
(3)修改个人信息(update)
UPDATE 读者 Set(读者姓名=#读者姓名,联系电话=#联系电话,
所在系=#所在系,生效日期=#生效日期,失效日期=#失效日期,
违章状况=#违章状况,累计借书=#累计借书,备注=#备注)
WHERE(读者学号=#读者学号)
(4)查询(select)
SELECT ISBN,书名,作者,出版社
FROM图书
WHERE ISBN=#ISBN OR书名=#书名

7.3管理员对借阅关系的操作
(1)插入读者的信息(insert)
INSERT INTO 借阅(工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注)
VALUES(#工作号,#读者学号,#ISBN,#是否续借,#借书日期,
#还书日期,#备注)
(2)更新信息(update)
①更新借出信息
UPDATE借阅
SET(借书日期=#借书日期,还书日期=借书日期+30,是否续借=0)
WHERE(工作号=#工作号 AND 读者学号=#读者学号 AND ISBN =#ISBN)
UPDATE管理员_图书
SET(是否在馆=0)
WHERE(ISBN=#ISBN)
UPDATA 学生
SET (累积借书=累积借书+1)
WHERE(读者学号=#读者学号)
INSERT INTO管理员_学生(工作号,读者学号,确认借还,ISBN)
VALUES(#工作号,#读者学号,”0”, #ISBN))
②更新续借信息
UPDATE 借阅
SET(是否续借=#是否续借)
WHERE(工作号=#工作号 AND 读者学号=#读者学号 AND ISBN =#ISBN)
③更新还书信息
UPDATE管理员_图书
SET(是否在馆=1)
WHERE(ISBN=#ISBN)
UPDATE管理员_学生
SET(确认借还=”1”)
WHERE(工作号=#工作号 AND 读者学号=#读者学号 AND ISBN=#ISBN)


这是我之前期末做到,要的就拿走吧

#include <iostream>

#include <iomanip>

#include <cstring>

#include<cstdlib>

#include <fstream>//输入/输出文件流类

using namespace std;

const int Maxr=100;//最多的读者

const int Maxb=100;//最多的图书

const int Maxbor=5;//每位读者最多借五本书

//读者类,实现对读者的信息的描述


class Reader       

{   

   public:

Reader() {}

    char *getName() {return name;}      //获取姓名

int getFlag() {return flag;}         //获取删除标记

   int getNum() {return num;}           //获取读者编号

    void setname(char na[])            //设置姓名

  strcpy(name,na);

}

void delbook(){  flag=1;  }//设置删除标记 1:已删 0:未删

void addreader(int n,char *na)//增加读者

flag=0;

num=n;

strcpy(name,na);

for(int i=0;i<Maxbor;i++)

borbook[i]=0;

}

void borrowbook(int bookid)//借书操作

{

for(int i=0;i<Maxbor;i++)

if (borbook[i]==0)

{

borbook[i]=bookid;

return;

}

}

}

int retbook(int bookid)//还书操作

for(int i=0;i<Maxbor;i++)

if(borbook[i]==bookid)

{

borbook[i]=0;

return 1;

}

}

return 0;

}

void disp()//读出读者信息

cout << setw(5) << num <<setw(10) << name<<"借书编号:[";

for(int i=0;i<Maxbor;i++)

if(borbook[i]!=0)

cout << borbook[i] << "|";

cout << "]"<<endl;

}

private:

int flag;  //删除标记 1:已删 0:未删

int num;   //读者编号

char name[10];  //读者姓名

int borbook[Maxbor];//所借图书

};


//读者类库,实现建立读者的个人资料

 class RDatabase

{  

private:

   int top;       //读者记录指针

   Reader read[Maxr];//读者记录

public:

RDatabase()   //构造函数,将reader.txt读到read[]中

{

Reader s;

top=-1;

fstream file("reader.txt",ios::in);//打开一个输入文件

while (1)

{

file.read((char *)&s,sizeof(s));

if (!file)break;

top++;

read[top]=s;

}

file.close();     //关闭 reader.txt

}

    void clear()//删除所有读者信息

{

top=-1;

}

int addreader(int n,char *na)//添加读者时先查找是否存在

{

Reader *p=query(n);

if (p==NULL)

{

 top++;

 read[top].addreader(n,na);

 return 1;

}

return 0;


}

Reader *query(int readerid)//按编号查找

{

for (int i=0;i<=top;i++)

if (read[i].getNum()==readerid && 

read[i].getFlag()==0)

{

return &read[i];

}

return NULL;

}

void disp()  //输出所有读者信息

{

           for (int i=0;i<=top;i++)

  read[i].disp();

}

void readerdata();//读者库维护

~RDatabase()  //析构函数,将read[]写到reader.txt文件中

{

fstream file("reader.txt",ios::out);

        for (int i=0;i<=top;i++)

if (read[i].getFlag()==0)

file.write((char *)&read[i],sizeof(read[i]));

file.close();


}

};

void RDatabase::readerdata()

{


    char choice;

char rname[20];

int readerid;

Reader *r;

while (choice!='0')

{

cout<<"★ ★ ★ ★ ★ ★ ★ ★ ★ 读      者      信       息 ★ ★ ★ ★ ★ ★★ ★ ★"<<endl;

cout<<"-------------------------------------------------------------------------------"<<endl<<endl;

cout<<"☆ ☆ ☆ ☆          1、新                       增                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          2、更                       改                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          3、删                       除                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          4、查                       找                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          5、显                       示                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          6、全                       删                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          0、退                       出                  ☆ ☆ ☆ ☆"<<endl<<endl;

 cin >> choice;

switch (choice)

{

            case '1':

system("cls");

cout << "输入读者编号:";

cin >> readerid;

cout << "输入读者姓名:";

cin >> rname;

addreader (readerid,rname);

system("pause");

system("cls");

break;

            case '2':

system("cls");

cout << "输入读者编号:";

cin >> readerid;

r=query(readerid);

if (r==NULL)

{

cout << " 不好意思,该读者不存在  "<<endl;

   break;

}

cout << "输入新的姓名:";

cin >> rname;

r->setname(rname);

system("pause");

system("cls");

break;

            case '3':

system("cls");

  cout << " 输入读者编号:";

                    cin >> readerid;

r=query(readerid);

if (r==NULL)

{

   cout <<" 该读者不存在" << endl;

   break;

}

r->delbook();

system("pause");

system("cls");

break;

case '4':

system("cls");

cout << "读入读者编号:";

cin >> readerid;

r=query(readerid);

if (r==NULL)

{

cout <<"不好意思,该读者不存在"<< endl;

system("pause");

system("cls");

break;

}

r->disp();

break;

case '5':

system("cls");

disp();

system("pause");

system("cls");

break;

case '6':

system("cls");

clear();

system("pause");

system("cls");

break;

case '0':

break;

default:cout<<"输入错误,请从新输入:";break;

}

}

}


//图书类,实现对图书的描述,图书的编号,书名,借出,还入等

class Book

{

public:

Book(){}

char *getName() { return name; }//获取姓名

int getNum(){ return num; }//获取图书编号

int getFlag(){ return flag; }//获取删除标记

void setname(char na[])//设置书名

{

strcpy(name,na);

}

void delbook(){ flag=1;}//删除图书

void addbook(int n,char *na)//增加图书

{

flag=0;

num=n;

strcpy(name,na);

onshelf=1;

}

int borrowbook()//借书操作

{

if (onshelf==1)

{

onshelf=0;

return 1;

}

return 0;

}

void retbook()//还书操作

{

onshelf=1;

}

void disp()//输出图书

{

cout << setw(6) << num << setw(18) << name << setw(10)

<<(onshelf==1? "在架":"已借") <<endl;

}

private:

    int flag;//删除标记 1:已删 0:未删

int num;//图书编号

char name[20];//书名

int onshelf;//是否再架 1:再架 2:已借

};


//图书库类,实现对图书的维护,查找,删除等

class BDatabase

{

public:

BDatabase()//构造函数,将book.txt读到book[]中

Book b;

top=-1;

fstream file("book.txt",ios::in);

while (1)

{

file.read((char *)&b,sizeof(b));

if (!file) break;

top++;

book[top]=b;

}

file.close();

}

    void clear()//全删

{

top=-1;

}

    int addbook(int n,char *na)//增加图书

{

Book *p=query(n);

if (NULL==p)

{

top++;

book[top].addbook(n,na);

return 1;

}

return 0;

}

Book *query(int bookid)//查找图书

{

for (int i=0;i<=top;i++)

if (book[i].getNum()==bookid &&book[i].getFlag()==0)

{

return &book[i];

}

return NULL;

}

void bookdata();//图书库维护

void disp()

{

 for (int i=0;i<=top;i++)

 if (book[i].getFlag()==0)

 book[i].disp();

}

~BDatabase()//析构函数,将book[]写到book.txt文件中

{

fstream file("book.txt",ios::out);

        for (int i=0;i<=top;i++)

if (book[i].getFlag()==0)

file.write((char *)&book[i],sizeof(book[i]));

file.close();

}

private:

    int top;         //图书记录指针

Book book[Maxb]; //图书记录

};

void BDatabase::bookdata()

{

    char choice;

char bname[40];

int bookid;

Book *b;

while (choice!='0')

{

cout<<"★ ★ ★ ★ ★ ★ ★ ★ ★ 图      书      信       息 ★ ★ ★ ★ ★ ★★ ★ ★"<<endl;

cout<<"-------------------------------------------------------------------------------"<<endl<<endl;

cout<<"☆ ☆ ☆ ☆          1、新    增   图   书  信   息                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          2、更    改   图   书  信   息                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          3、删    除   图   书  信   息                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          4、查    找   图   书  信   息                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          5、显    示   图   书  信   息                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          6、全    删   图   书  信   息                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          0、退                       出                  ☆ ☆ ☆ ☆"<<endl<<endl;


cin >> choice;

switch (choice)

{

            case '1':

system("cls");

cout << "输入图书编号:"<<endl;

cin >> bookid;

                cout << "输入图书书名:"<<endl;

cin >> bname;

addbook(bookid,bname);

system("pause");

system("cls");

break;

            case '2':

system("cls");

cout << "输入图书编号:"<<endl;

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout << " 不好意思,该图书不存在  "<<endl;

system("pause");

system("cls");

   break;

}

cout << "输入新的书名:"<<endl;

cin >> bname;

b->setname(bname);

break;

            case '3':

system("cls");

  cout <<" 读入图书编号:"<<endl;

                    cin >> bookid;

b=query(bookid);

if (b==NULL)

{

   cout <<" 不好意思,该图书不存在" << endl;

   break;

}

b->delbook();

system("pause");

system("cls");

break;

case '4':

system("cls");

cout << "  读入图书编号:"<<endl;

cin >> bookid;

b=query(bookid);

if (b==NULL)

{

cout <<"  不好意思,该图书不存在"<< endl;

break;

}

b->disp();

system("pause");

system("cls");

break;

case '5':

system("cls");

disp();

system("pause");

system("cls");

break;

case '6':

system("cls");

clear();

system("pause");

system("cls");

break;

case '0':

break;

default:cout<<"输入错误,请从新输入:";

}

}

}


//main() 函数的实现,程序的主界面的引导


int main(void)

{    

char choice;

int bookid,readerid;

RDatabase ReaderDB;

Reader *r;

BDatabase BookDB;

Book *b;

while(choice!='0')

{       

cout<<"★ ★ ★ ★ ★ ★ ★ ★ ★ ★ 欢 迎 使 用 本 系 统 ★ ★ ★ ★ ★ ★ ★ ★★ ★"<<endl<<endl;

cout<<"★ ★ ★ ★ ★ ★ ★ ★ ★ 请 根 据 提 示 选 择 操 作 ★ ★ ★ ★ ★ ★★ ★ ★"<<endl;

cout<<"-------------------------------------------------------------------------------"<<endl<<endl;

cout<<"☆ ☆ ☆ ☆          1、借                       书                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          2、还                       书                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          3、图      书      信       息                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          4、读      者      信       息                  ☆ ☆ ☆ ☆"<<endl;

cout<<"☆ ☆ ☆ ☆          0、退                       出                  ☆ ☆ ☆ ☆"<<endl<<endl;

cin >> choice;

switch (choice)

{

case '1':

system("cls");

cout<<"借书"<<endl;

cout <<"  请输入读者编号:";

cin >>readerid;

cout <<"  请输入图书编号: ";

cin >>bookid;

r=ReaderDB.query(readerid);//按编号查找

if (NULL==r)

{

cout <<"  不好意思,不存在该读者"<< endl;

system("pause");

system("cls");

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout <<"  不好意思,不存在该图书"<< endl;

system("pause");

system("cls");

break;

}

if (b->borrowbook()==0)

{

cout << "  不好意思,该图书已借出"<< endl;

system("pause");

system("cls");

break;

}

r->borrowbook(b->getNum());

break;

case '2':

system("cls");

cout<<"还书"<<endl;

cout<<"     请输入读者编号:";

cin >>readerid;

cout << "   请输入图书编号:";

cin >>bookid;

r=ReaderDB.query(readerid);

if (r==NULL)

{

cout <<" 不好意思,不存在该读者" << endl;

system("pause");

system("cls");

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout <<"  不好意思,不存在该图书" <<endl;

system("pause");

system("cls");

break;

}

b->retbook();

r->retbook(b->getNum());

break;

case '3':

system("cls");

BookDB.bookdata();

system("pause");

system("cls");

break;

case '4':

system("cls");

   ReaderDB.readerdata();

system("pause");

system("cls");

   break;

case '0':

break;

default:cout<<"输入错误,请从新输入:";


}

}

return 0;

}




课程设计的要求有哪些?
3、创新性 课程设计应该鼓励学生发挥创新精神,提出并实施新的想法和解决方案。这样可以激发学生的创造性思维,并培养他们在未来工作中所需的创新能力。4、实用性 课程设计应该具有一定的实用性,即学生设计的方案或产品应该能够在实际中应用或模拟应用。这样的设计可以让学生了解到他们的学习与实际生活的联系...

模拟电子技术的课程设计(可调直流稳压电源)?
5)系统的一致性好,成本低,生产制造方便。由于控制软件不像模拟器件那样存在差异,所以,其一致性很好。由于采用软件控制,控制板的体积将大大减小,生产成本下降。6)易组成高可靠性的多模块逆变电源并联运行系统。为了得到高性能的并联运行逆变电源系统,每个并联运行的逆变电源单元模块都采用全数字化控制,...

急 微机原理的课程设计 模拟流水灯
4.1 流水灯 程序介绍:利用P1 口通过一定延时轮流产生低电平 输出,以达到发光二极管轮流亮的效果。实际应用中例如:广告灯箱彩灯、霓虹灯闪烁。程序实例(LAMP.ASM)ORG 0000H AJMP MAIN ORG 0030H MAIN:9 MOV A,#00H MOV P1,A ;灭所有的灯 MOV A,#11111110B MAIN1:MOV P1,A ;开最左边的...

《财务决策沙盘模拟》课程设计感悟
本次为期一周的《财务决策沙盘模拟》课程设计中,我的角色是“采购总监”。开始进行课设时,不禁觉得恰同学少年,是时候与三五好友相约干一件大事。这是我初次接触“经营之道”,万分激动中藏有忐忑,害怕繁琐的流程,担心自身知识匮乏。在本次经营模拟中,我扮演了采购总监的角色,因为我组CEO和财务...

毕业设计是设计难还是模拟难
学生只有在完成教学计划所规定的理论课程、课程设计与实习,经考试、考查及格后始可进行。是评定毕业成绩的重要依据,学生通过毕业设计答辩,成绩评定及格才能毕业。毕业论文(graduation study),按一门课程计,是普通中等专业学校、高等专科学校、本科院校、高等教育自学考试本科及研究生学历专业教育学业的最后...

单片机课程设计 题目:模拟电压显示器
我这有个数字电压表啊 1. 实验任务 利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。2. 电路原理图 (图)见插图 3. 系统板上硬件连线 a) 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH...

课程设计题目,多线程编程:医院门诊模拟,想用java实现,求大神指点
了解j5的并发库,那个并发库中有适合组件实现。如果不了解,这么来:创建一个队列,此队列要求线程安全,如果队列为空则消费者阻塞。如果队列达到某个最大值,则阻塞生产者。队列用,普通的list或实现好的队列包装成线程安全的。用synchronized同步原方法或代码块。写一个或n个线程,模拟病人,排队办理业务...

课程设计题目1:舞伴配对模拟
具体算法及相关的类型定义 typedef struct{ char name[20];char sex; \/\/性别,'F'表示女性,'M'表示男性 }Person;typedef Person DataType; \/\/将队列中元素的数据类型改为Person void DancePartner(Person dancer[],int num){\/\/结构数组dancer中存放跳舞的男女,num是跳舞的人数。int i;Person ...

急急急!!!跪求模拟电子课程设计:正弦波信号发生器
本电路(见图1)是一种频率可调的移相式正弦波发生器电路,其频率稳定度通过实际测试为0.002%。该电路性价比高,用很便宜的几个元件在很宽的频段内,实现频率连续可调。笔者在实验时将频段分为低、中、高三个频段,用拨动开关进行切换,用双联电位器R8、R9调节其阻值,实现了输出频率从0.7Hz~60kHz...

数据结构课设:银行排队系统模拟
用优先级队列来模拟整个过程,每个客户都需要有到达、离开两次入队操作。建立一个大小为n的数组,来记录每个窗口(接下来的)的空闲时间,初始化全部赋值为0。这里我们假设有1、2两个窗口,T(1)=T(2)=0 建立一个(按时间的)优先级队列,初始化为空。假设银行0时开业,下面举例来说明:第一个客人于...

全椒县15020356415: 课程设计:用C++实现图书管理系统 -
秘食欧乃: 头文件:============#ifndef _DATA_STRUCT_H_#define _DATA_STRUCT_H_/*图书结构*/ struct Book { unsigned long BookID;/*图书编号*/ char BookName[512];/*书名*/ char Writer[512];/*作者*/ int CurrentNumber;/*现存量*/ Book *...

全椒县15020356415: c++课程设计 图书管理系统 -
秘食欧乃: #include <iostream> #include <iomanip> #include <string> #include <fstream>//输入/输出文件流类 using namespace std; const int Maxr=100;//最多的读者 const int Maxb=100;//最多的图书 const int Maxbor=5;//每位读者最多借五本书 //读者类...

全椒县15020356415: 图书信息管理系统设计 c语言 -
秘食欧乃: 高级语言程序设计(2)课程设计 一程序设计说明书【设计题目】图书馆借阅管理【问题描述】图书馆,适合用C++面向对象的功能来描述.图书馆管理系统分为借书、还书、图书管理和读者服务等四个部分.设计一个读者类Reader,记录每个...

全椒县15020356415: c语言课设小型图书管理系统设计(c++) -
秘食欧乃: 试着做了下这个题,结果和你一样前7项全解决了,就剩下第八个了,明天再试试,能做出来给你发代码.要是我做不出来,还请你给我指点一二./*终于完成了,第八项也OK了.你自己多运行几组数据测试下,应该没问题了*/// 20130718.cpp : ...

全椒县15020356415: 简单的c++图书管理系统
秘食欧乃: #include &lt;stdio.h&gt; #include &lt;vector&gt; using namespace std; #include &lt;string.h&gt; //图书类 class CBook { public: int m_ID;//编号 char m_name[200];//书名 float m_price;//价格 public: CBook(int _ID,char* _name,float _price = 0.0f); ...

全椒县15020356415: c++ 图书管理系统 -
秘食欧乃: #include #include //输入/输出文件流类 using namespace std; const int Maxr=100;//最多的读者 const int Maxb=100;//最多的图书 const int Maxbor=5;//每位读者最多借五本书//读者类,实现对读者的信息的描述 class Reader {private: int tag; ...

全椒县15020356415: 用c++编程图书管理系统
秘食欧乃:http://blog.starofsky.com/?uid-121306-action-viewspace-itemid-31http://download.csdn.net/source/994704

全椒县15020356415: 简单的c++图书管理系统 -
秘食欧乃: #include using namespace std;#include //图书类 class CBook { public: int m_ID;//编号 char m_name[200];//书名 float m_price;//价格 public: CBook(int _ID,char* _name,float _price = 0.0f); public: void Display();//输出 }; CBook::CBook(int ...

全椒县15020356415: 图书管理系统 数据结构课程设计c++ -
秘食欧乃: #include#includestruct BOOK { int id,usr[10],total,store,days[10]; char name[30],author[20]; }books[100]; /*结构体,存放书籍及借书信息.*/ void page_title(char *menu_item) { printf(">>> 以下是图 书 管 理 系 统--请 按 要 求 操 作 0) { printf("请输入借书证序号:"); scanf("%d",&s); printf("请输入可借天数:"); scanf("%d",&d); for(l=0;l

全椒县15020356415: C++程序设计的课程设计怎么完成啊,要设计一个图书管理系用
秘食欧乃: 面向对象思想, 比如: class 管理员 {} class 借书人 {} class 书籍 {} 将对象分成一个一个类来封装好,UML关系图就出来了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网