求图书馆管理系统程序(c语言)
#include
#include
#include
#include
#include
struct book{
char number[100];
char tittle[100];
char writer[100];
char publisher[100];
char date[100];
char price[100];
char status[100];
char reader[100];
};
void search_book();
void borrow_book();
void return_book();
void add_book();
void delete_book();
void modify_book();
void scan_book();
int main()
{
int c1=0,c2,c3;
int l,x,z;
while(1)
{
system("color 2C");
printf(" ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
");
printf("| * - * - * -图书管理系统 * - * - * |
");
printf("* [1] 用户登录 *
");
printf("* [2] 管理员登录 *
");
printf("^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
");
printf("
");
printf("请选择你的操作 :");
scanf("%d",&c1);
system("cls");
break;
}
if(c1==1)
{
while(1){
system("color 2C");
printf(" ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
");
printf("| * - * - * -图书管理系统 * - * - * |
");
printf("* [1] 查询图书 *
");
printf("| [2] 借阅图书 |
");
printf("* [3] 借还图书 *
");
printf("* [4] 浏览图书信息 *
");
printf("| [5] 退出图书管理系统 |
");
printf("^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
");
printf("
");
printf("请选择你的操作 :");
scanf("%d",&c2);
getchar();
switch(c2)
{
case 1:search_book(); break;
case 2:borrow_book(); break;
case 3:return_book(); break;
case 4:scan_book(); break;
case 5:system("cls"); return 0;
}
}
}
if(c1==2)
{
while(1){
system("color 2C");
printf(" ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
");
printf("| * - * - * -图书管理系统 * - * - * |
");
printf("| [1] 添加图书 |
");
printf("* [2] 删减图书 *
");
printf("| [3] 修改图书信息 |
");
printf("* [4] 浏览图书信息 *
");
printf("| [5] 退出图书管理系统 |
");
printf("^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
");
printf("
");
printf("请选择你的操作 :");
scanf("%d",&c3);
getchar();
switch(c3)
{
case 1:add_book(); break;
case 2:delete_book(); break;
case 3:modify_book(); break;
case 4:scan_book(); break;
case 5:system("cls"); return 0;
}
}
}
}
/*查询图书*/
void search_book()
{
FILE*fp;
struct book n;
struct book nn;
int l,r;
char x,z;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");
while(1)
{
l=0;
system("cls");
printf("请输入图书名称:");
scanf("%s",n.tittle);
fflush(stdin);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle );
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("没有要查询的图书!!!
");
}
else
{
printf("查询的图书为:");
printf("
");
printf("****************************************
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
printf("
");
printf("%s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("
");
}
printf("是否继续查询图书 ? [是(y)/否(n)] ?
");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//添加
void add_book()
{
FILE *fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");
do
{
system("cls");
do
{
l=0;
printf("
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
fflush(stdin);
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
system("cls");
rewind(fp);
while(!feof(fp))
{
fread(&nn,sizeof(nn),1,fp);
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
printf(" 该图书已存在,请输入新的图书信息:
");
break;
}
}
}while(l);
fwrite(&n,sizeof(n),1,fp);
printf("
");
printf("是否继续输入新的图书信息[y/n]
");
do
{
x=getche();
}while(x!='n'&&x!='y');
}while(x=='y');
fclose(fp);
system("cls");
}
//删除图书
void delete_book()
{
FILE *fp,*fp1;
char x,z;
struct book n;
struct book nn;
int l,r;
fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");
while(1)
{
l=0;
system("cls");
printf("
");
printf("请输入需要删除的图书名:
");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("
");
printf("对不起,未找到该图书
");
}
else
{
printf("
");
printf("****************************************
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
printf("
");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("
");
printf("确认删除图书信息? [是(y)/否(n)]
");
do
{
z=getche();
}while(z!='n'&&z!='y');
if(z=='n')
break;
else
{
fp1=fopen("F:\\课程设计\\图书管理系统new.txt","wb");
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r!=0)
fwrite(&nn,sizeof(nn),1,fp1);
}
fclose(fp);
fclose(fp1);
fp=fopen("F:\\课程设计\\图书管理系统.txt","wb");
fp1=fopen("F:\\课程设计\\图书管理系统new.txt","rb");
while(1)
{
fread(&nn,sizeof(nn),1,fp1);
if(feof(fp1))
break;
fwrite(&nn,sizeof(nn),1,fp);
}
fclose(fp);
fclose(fp1);
}
}
printf("
");
printf("是否继续删除图书信息? [是(y)/否(n)]
");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//修改图书信息
void modify_book()
{
FILE *fp;
struct book n;
struct book nn;
int l,r;
char x,z;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");
while(1)
{
l=0;
printf("
");
system("cls");
printf("请输入需要修改的图书名:
");
fflush(stdin);
scanf("%s",&n.tittle);
system("cls");
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("
");
printf("对不起,未找到该图书信息
");
}
else
{
printf("
");
printf("****************************************
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
printf("
");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("请依次修改图书信息
");
fflush(stdin);
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("
");
printf(" 是否继续修改用户信息[y/n]?
");
do
{
x=getch();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//借书
void borrow_book()
{
FILE*fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");
while(1)
{
l=0;
system("cls");
printf("
");
printf("请输入需要借阅的图书名:
");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("
");
printf("对不起,未找到该图书。
");
}
else
{ printf("
");
printf("****************************************
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
printf("
");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("
");
fflush(stdin);
printf("请输入图书信息并修改在库状态及借阅者信息");
printf("****************************************
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
printf("
");
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("
");
printf(" 是否继续借书? [是(y)/否(n)]
");
do
{
x=getch();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//还书
void return_book()
{
FILE*fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");
while(1)
{
l=0;
system("cls");
printf("
");
printf("请输入需要借还的图书名:
");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("
");
printf("对不起,未找到该图书。
");
}
else
{
printf("
");
printf("****************************************
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
printf("
");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("
");
fflush(stdin);
printf("请输入图书信息并修改在库状态
");
printf("****************************************
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
printf("
");
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,-(int)sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("
");
printf("是否继续还书? [是(y)/否(n)]
");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//浏览
void scan_book()
{
FILE*fp;
char x,z;
struct book n;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");
rewind(fp);
system("cls");
while(1)
{
fread(&n,sizeof(n),1,fp);
if(feof(fp))
break;
else
{
printf("********************************************
");
printf("编号 书名 作者 出版社 出版时间 价格 状态 借阅者
");
printf("
");
printf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
printf("
");
}
}
printf("
");
printf("回到主菜单请按回车");
do
{
x=getche();
}while(x!='');
if(x=='')
{
fclose(fp);
system("cls");
}
}
enumState{Borrowed,Available};//Borrowed表示被借出,Available表示书籍可用。
classBook{
public:
//定义类型别名以实现抽象
typedefmultisetdata_t;
//不允许书籍默认构造。只允许通过传入书名构造。将书籍状态设为“可用”
Book()=delete;
Book(constname_t&name):name(name),state(Available){}
~Book()=default;
//使用书名比较书籍间的相互关系
booloperator<(constBook&other)const{returnname<other.name;}
booloperator==(constBook&other)const{returnname==other.name;}
//一些访问和修改的函数
//关于书籍名字和书籍状态(“可用”,“已借”)
StateGetState()const{returnstate;}
name_tGetName()const{returnname;
voidSetName(constname_t&_name){name=_name;}
voidSetState(StatenewState){state=newState;}
private:
name_tname;
Statestate;
};
classLibrary{
public:
//定义一系列类型类型别名实现抽象
typedefmultisetdata_t;
typedeftypenameBook::name_tname_t;
typedeftypenamedata_t::iteratorIterator;
typedefvectorInfo_t;
typedefstringfile_name_t;
//只允许该类默认构造,不允许复制
Library()=default;
Library(constLibrary&)=delete;
Library&operator=(constLibrary&)=delete;
//分别为增加,删除,借阅,归还书籍。
voidInsert(constBook&book){libraryData.insert(book);}
boolRemove(constname_t&name);
boolBorrow(constname_t&name);
boolGiveBack(constname_t&name);
//返回该类中书籍的相关信息
vectorGetBookInfo(constname_t&name)const;
vectorGetAllBookInfo()const;
//返回该类中书籍的数目
size_tCount(constname_t&name)const{returnlibraryData.count(Book(name));}
size_tNumOfBook()const{returnlibraryData.size();}
//保存信息到文件,从文件读取信息
//接受文件名为参数
voidSaveToFile(conststring&fileName)const;
boolLoadFromFile(conststring&fileName);
private:
//储存书籍的容器
data_tlibraryData;
//内部辅助函数。输入书籍的名字,返回一对迭代器(std::pair)指向一个区间范围。该范围内的书籍都有相同名字name
inlineauto_find(constname_t&name)const->constpair
{
returnlibraryData.equal_range(Book(name));
}
};
//打印“>>>”用以实现交互界面
inlinevoidPrintPromt(ostream&os);
//打印指导信息。每次运行该系统都会输出该内容
voidPrintInstroduction(ostream&os);
//打印帮助信息。在系统中输入help会调用该函数输出帮助
voidPrintHelp(ostream&os);
//打印错误信息。该函数会将参数s直接打印出来(加上换行符)
inlinevoidPrintError(ostream&os,conststring&s);
//将系统中的全部书籍以表格形式输出。接受library类。通过调用PrintTitle(打印表格)和PrintAllBook(打印所有书籍)执行打印
inlinevoidPrintTable(ostream&os,constLibrary&lib);
//打印表格的题头。执行实际的打印行为
inlinevoidPrintTitle(ostream&os);
//打印系统中的全部书籍。通过调用PrintBookInOneLine打印书籍
voidPrintAllBook(ostream&os,constLibrary&lib);
//实际执行打印行为的函数。每次只打印一行。接受Book的对象为参数
inlinevoidPrintBookInOneLine(ostream&os,constBook&book);
扩展资料
C++编写程序注意事项
1、算:计算利润,计算一元二次方程的根,计算一个数列的和等。
2、找:找最大的值,找最短的一条路径,找一个字符串的位置等。
3、实现功能:实现撤销,重做的功能实现某种操作的功能等。
4、字符串查找,在记事本里有一个查找的功能,输入要查找的关键字,能够快速找到它所在位置,如果没找到并给出提示,现在要求在一个字符串里找到一个子串,和记事本的查找功能一样。
#include"stdio.h"#include"stdlib.h"#include"windows.h"#include"string.h"
/*图书相关信息*/struct bookinf //定义图书相关信息结构体{ int num; char bname[20]; char wname[10]; char clanum[14]; char pubcom[10]; char pubtime[10]; float price;};
structmanage //定义管理员相关信息结构体{ char manage_name[10]; char password[10];};
/*首页*/void index() //首页打印设置{ char input; printf("\n\n\t\t\t*****************************\n"); printf("\t\t\t Paladin图书信息查询管理系统\n"); printf("\t\t\t*****************************\n\n\n"); printf("------------------------------------------------------------------------------\n"); printf("\n\t\t\t书山有路勤为径\n"); printf("\t\t\t\t 学海无涯苦作舟\n"); printf("\n\n\t 总策划:吴昊\n\n"); printf("\t 程式设计:肖书明樊启恒芦丹覃枝霞况轩 (排名不分先后)\n\n"); printf("\t 联系方式:QQ:6828000 or Mail To:ivanleo@sohu.com\n"); printf("\t________________________________________________________________\n"); printf("\t\tCopyrights @ Accp SIT25 Leo Workgroup 2004.8\n"); printf("\t\t\t All RightsReserved\n"); printf("\t\t\t\tVer 1.03\n"); printf("\t<按任意键进入>\n\t"); input=getchar(); //让用户输入一个字符后再进行下一步(以后在本程序中用得很多) system("cls"); //清屏}
/*登陆方式*/ void login(){ void tra_view(); //声明包含的函数 void adm_view(); void byebye(); void about(); void coloregg();
int input; char input_1; do //循环显示登陆选项(当输入的数不为选项数的时候重复循环) { system("cls"); printf("\n\n\n\t1.以游客身份进入\n"); printf("\t2.以管理员身份进入\n"); printf("\t3.关于本系统\n"); printf("\t4.退出本系统\n\n\n"); printf("\t请选择服务类别:"); scanf("%d",&input); if(input!=1&&input!=2&&input!=3&&input!=4&&input!=99) //输入数不等于选项的时候打印画面 { printf("\n\t输入出错!请重新选择~\n"); printf("\n\t按任意键返回选择页面~\n\t"); input_1=getchar(); input_1=getchar(); system("cls"); } if (input==4) { byebye(); //如果输入数为4,则执行byebye()函数 } } while (input!=1&&input!=2&&input!=3&&input!=4&&input!=99);
switch(input) //分支选择 { case 1:tra_view(); break; //选1执行游客进入方式 case 2:adm_view(); break; //选2执行管理员进入方式 case 3:about(); break; //选3执行关于界面函数 case 99:coloregg(); break; //选99执行彩蛋函数 }}/*关于界面*/void about(){ void login(); char input; //关于界面的打印设置 system("cls"); printf("\n\n\t\t\t\t欢迎使用帮助\n"); printf("\t_______________________________________________________________"); printf("\n\t1.本系统采用模块化设计\n"); printf("\t每一项功能由单独的函数块控制,一个功能块有错不会影响全局\n\n"); printf("\t2.人性化设计\n"); printf("\t相关提示信息丰富,以人为本\n\n"); printf("\t3.功能强大\n\n"); printf("\t 实现了:\n"); printf("\t\t1 图书信息录入\n"); printf("\t\t2 图书信息查询\n"); printf("\t\t3 图书信息修改\n"); printf("\t\t4 图书信息删除\n"); printf("\t\t5 图书信息排序\n"); printf("\t\t6 提供游客和管理员两种登陆方式\n"); printf("\t\t 加以修改可以满足网络的需要\n\n"); printf("\t\t7 管理员的帐号密码可以自我设定,修改\n"); printf("\t\t8 彩蛋~~(进入方法嘛,嘿嘿)\n"); printf("\n\t按任意键返回登陆界面!"); input=getchar(); input=getchar(); login(); //任意键返回登陆界面}
/*彩蛋*/void coloregg() //打印界面{ char inp; void login(); system("cls"); printf("\n\n\n\t\t一直以为\n\t\t"); inp=getchar(); inp=getchar(); printf("\t\t隐了身别人就找不到我\n\t\t"); inp=getchar(); printf("\t\t可是我错了\n\t\t"); inp=getchar(); printf("\t\t象我这么出众的男人\n\t\t"); inp=getchar(); printf("\t\t不管到哪都是受人瞩目的焦点\n\t\t"); inp=getchar(); printf("\t\t我那忧郁的眼神\n\t\t"); inp=getchar(); printf("\t\t唏嘘的胡渣子\n\t\t"); inp=getchar(); printf("\t\t还有那神乎其技的AK扫射\n\t\t"); inp=getchar(); printf("\t\t以及那杯82年的马爹利和发哥给的牙签\n\t\t"); inp=getchar(); printf("\t\t无不深深出卖了我~~~\n\t\t"); inp=getchar(); printf("\t\t\t\t--------狂人\n\t\t"); inp=getchar();
login();}
/*离开界面*/void byebye() //离开界面{ char input; system("cls"); printf("\n\n\n\n\n\t\t\t路漫漫其修远兮"); printf("\n\n\n\n\t\t\t\t\t吾将上下而求索"); printf("\n\n\t________________________________________________________________"); printf("\n\n\n\t\t*感谢您的使用*\n\n\t\t"); printf("按任意键退出本系统\n\t\t"); input=getchar(); input=getchar(); printf("\n\t\t"); exit(0); //exit()函数跳出整个程序}
/*删除所有相关信息*/void delall() //管理员选项中的初始化函数{ void login(); void adm_servelist(); int inp; char input; do //如果输入的不是界面提供的选项值,则重复显示输入界面 { system("cls"); printf("\n\n\t----------!!警告!!----------\n"); printf("\n\t一旦选择了全部初始化将清除全部数据!包括图书信息和管理员信息!\n"); printf("\n\t初始化完毕后返回登陆界面\n"); printf("\n\n\t你确定要初始化吗\n"); printf("\n\n\t1.是的~我要初始化\t2.不要~让我再想想\n"); printf("\n\t请输入服务选项:"); scanf("%d",&inp); switch (inp) { case 1: //如果输入为1则删除book.dat和password.dat文件 remove("book.dat"); remove("password.dat"); printf("\n\n\t初始化完毕!\n\t所有数据全部清空!\n\t按任意键返回登陆界面!"); input=getchar(); input=getchar(); login(); //并返回登陆界面 break; case 2: //选2则返回管理员登陆界面 adm_servelist(); break; default: //否则打印如下字样并重复循环 printf("\n\n\t对不起~没有这项服务!\n\t按任意键重新选择\n\t"); input=getchar(); input=getchar(); break; } } while (inp!=1&&inp!=2&&inp!=3);}
/*游客登陆方式*/void tra_view(){ void tra_book_view(); void tra_book_search(); void login();
int inp; char input;
do //同以往的do{}while一样,用来保证用户输入的数能够被执行 { system("cls"); printf("\n\n\t------------欢迎光临ACCP图书馆------------"); printf("\n\n\n\t1.图书信息浏览\n"); printf("\t2.查询指定图书\n"); printf("\t3.退出\n"); printf("\n\n\t请选择服务类别:"); scanf("%d",&inp); if (inp!=1&&inp!=2&&inp!=3) { printf("\n\t没有这项服务~\n"); printf("\t按任意键重新选择"); input=getchar(); input=getchar(); } } while (inp!=1&&inp!=2&&inp!=3);
switch(inp) //分支选择 { case 1: tra_book_view(); break; //选1则执行游客浏览 case 2: tra_book_search(); break; //选2则执行游查询 case 3: login(); break; //选3返回登陆界面 }}
/*游客浏览方式*/void tra_book_view(){ void tra_view(); void tra_book_view();
intinp,i=0,n=0; FILE *fp; char input; struct bookinf bookview[100]; if((fp=fopen("book.dat","rb"))==NULL) //判断图书信息文件是否存在,不存在则显示如下字样 { system("cls"); printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n"); printf("\n\t<按任意键返回管理菜单>\n\t"); input=getchar(); input=getchar(); tra_view(); //并返回游客进入画面 } else //存在的话则循环读取文件中的信息直到文件指针到达文件尾部 { do { fread(&bookview[i],sizeof(struct bookinf),1,fp); i=i+1; } while (!feof(fp)); //这一段代码以后也会经常用到 fclose(fp); //关闭文件指针 do { system("cls"); //显示读取数据的第一条,条数用变量n控制 printf("\n\t--------共有%d条记录--------",i-1); printf("\n\n\t编号: %d\n",bookview[n].num); printf("\n\t书名: %s\n",bookview[n].bname); printf("\n\t作者名: %s\n",bookview[n].wname); printf("\n\t分类号: %s\n",bookview[n].clanum); printf("\n\t出版单位: %s\n",bookview[n].pubcom); printf("\n\t出版时间: %s\n",bookview[n].pubtime); printf("\n\t价格: %f\n",bookview[n].price);
printf("\n\n\t1.上一页\t2.下一页\t3.回目录\n"); printf("\n\t请选择:"); scanf("%d",&inp); switch (inp) { case 1: //如果选择了上一页 { if (n==0) //如果n到首页则输出以下字样 { printf("\n\t已到达首页\n\t按任意键重新选择"); input=getchar(); input=getchar(); } else //否则就让n自减1跳出选择重复循环 { n=n-1; } break; } case 2: //如果选择了下一页 { if (n==i-2) //如果n到达最尾页 { printf("\n\t已到达最末页\n\t按任意键重新选择"); input=getchar(); input=getchar(); } else //否则就让n自加1跳出选择重复循环 { n=n+1; } break; } case 3: //选择3的话回到游客登陆界面 { tra_view(); break; } default: //没有这项选择时的提示 { printf("\n\t没有这项服务\n\t按任意键重新选择"); input=getchar(); input=getchar(); break; } } } while (inp!=3); }}
/*游客查询方式*/void tra_book_search(){ void tra_view(); void tra_id_search(); void tra_wr_search(); void tra_bn_search();
char input; FILE *fp; int inp; if((fp=fopen("book.dat","rb"))==NULL) //判断图书信息是否存在 { system("cls"); //不存在则打印的界面 printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n"); printf("\n\t<按任意键返回管理菜单>\n\t"); input=getchar(); input=getchar(); tra_view(); } else { do //同以前一样用do{}while来重复显示 { system("cls"); printf("\n\n\n\t1.按图书编号查询\n"); printf("\n\t2.按图书作者查询\n"); printf("\n\t3.按图书名查询\n"); printf("\n\t4.回到主菜单\n"); printf("\n\n\t请选择查询类别:");
#include <malloc.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define len sizeof(Book)
typedef struct Book{
char no[8]; //8位书号
char name[20]; //书名
char price[8]; //定价
struct Book *next;
}Book;
Book *L;
int b1,n1;
void CreateList(){
int i,n;
Book *p,*q;
if(!b1){
L=(Book*)malloc(len);
L->next=NULL; //生成只包含头结点的空链表
b1=1;
n1=0;
p=L;
printf("要输入的图书数为:");
scanf("%d",&n);
for(i=1;i<=n;i++){ //通过n控制输入图书数
q=(Book*)malloc(len);
printf("请输入第%d个图书信息:
",i);
printf("书号:");
scanf("%s",q->no);
printf("书名:");
scanf("%s",q->name);
printf("定价:");
scanf("%s",q->price);
q->next=L->next;L->next=q;
n1=n1+1;
}
}else
{printf("已输入完毕,请插入信息!"); //每次执行程序只能生成一次链表,之后只能进行插入、删除操作
getch();}
}
void FindBook(){
char ch[20];
int s2=0;
Book *p;
p=L->next;
printf("请输入图书名:");
scanf("%s",ch);
while(p){
if(strcmp(p->name,ch)==0) //判断和查询图书名是否相等
{printf("图书名:%-12.9s 书号:%-12.10s 定价:%s",p->name,p->no,p->price); //控制字符串输出的长度、格式
s2=1;
getch();}
p=p->next;
}
if(!s2)
{ printf("没有该图书信息!");
getch();}
}
void Getlocation(){
Book *p ;
int i,j;
p=L->next; //初始化,p指向第一个结点
j=1;// j为计数器
printf("请输入位置:");
scanf("%d",&i);
while(p && j<i){ p=p->next; ++j; }
if(!p||j>i) printf("ERROR"); //i大于表长或小于1
printf("图书名:%-12.9s 书号:%-12.10s 定价:%s",p->name,p->no,p->price);
getch();
}
void ListInsert(){
int j,i;
Book *p,*s;
p=L;j=0;
printf("请输入位置:");
scanf("%d",&i);
while (p&&j<i-1) {p=p->next;++j;}
if(!p||j>i-1) printf("error");
s=(Book*)malloc(len); //生成新结点
printf("请输入新的图书信息:
");
printf("书号:");
scanf("%s",s->no);
printf("书名:");
scanf("%s",s->name);
printf("定价:");
scanf("%d",s->price);
s->next=p->next; p->next=s;
printf("插入成功!");
getch();
}
void ListDelete(){
int i,n;
Book *p,*q;
p=L;
printf("请输入删除图书位置");
scanf("%d",&n);
if(n>n1||n<=0){
printf("输入错误!"); //容错处理
getch();
}
else{
for(i=1;i<n;i++)
p=p->next ;
q=p->next; p->next=q->next;
free(q); //删除指定位置的学生信息
n1--;
printf("已将原表中第%d个 图书信息删除!",n);
getch();
}
}
void ListLength(){
Book *p;
int i;
p=L->next;
i=0;
while(p){i++;
p=p->next ;}
printf("图书个数为:%d",i);
getch();
}
void main(){
char c;
while(1){
system("cls");
printf("**************************** 欢迎使用图书信息查询系统!*************************
");//菜单选项
printf("
");
printf("(1)输入图书信息;
");
printf("(2)根据图书名进行查找;
");
printf("(3)根据指定位置进行查找;
");
printf("(4)插入图书信息到指定位置;
");
printf("(5)删除指定位置的图书记录;
");
printf("(6)统计表中图书数;
");
printf("
");
c=getch();
switch(c){
case '1':CreateList();break;
case '2':if(b1)FindBook(); //通过b1的值,控制先执行(1)的操作,即生成链表
else
{printf("请先输入图书信息!");
getch();};break;
case '3':if(b1)Getlocation(); //通过b1的值,控制先执行(1)的操作,即生成链表
else
{printf("请先输入图书信息!");
getch();};break;
case'4':if(b1)ListInsert(); //通过b1的值,控制先执行(1)的操作,即生成链表
else
{printf("请先输入图书信息!");
getch();};break;
case '5':if(b1)ListDelete(); //通过b1的值,控制先执行(1)的操作,即生成链表
else
{printf("请先输入图书信息!");
getch();};break;
case '6':if(b1)ListLength(); //通过b1的值,控制先执行(1)的操作,即生成链表
else
{printf("请先输入图书信息!");
getch();};break;
default :printf("输入错误,请重新选择!");
}
}
}
小型图书馆管理系统的开发 软件工程
图书馆自动化管理系统 一、系统简介:图书馆管理系统包含了目前图书馆管理业务的每个环节,符合教育部最新颁布的《教育管理信息化标准》规范、我国图书馆界通用的CNMARC格式标准、目前通用的《中图法四》标准,支持Z39.50检索协议( 无需编目费用,只输入ISBN号码即自动编目 ),能同时管理图书和期刊,能打印...
设计题目:2、图书信息管理系统设计
目前市面上流行的图书管理软件不少。但是,对于企业、事业单位的图书管理来说, 不需要太大型的数据库系统。只需要一个操作方便、功能实用、能满足图书馆日常管理工作需求的系统。我的目标就是在于开发一个功能实用、用户操作方便、简单明了的图书馆管理系统软件。本应用程序以普通图书馆为开发对象, 可以完成...
网络图书馆的管理系统模块
网络图书馆管理系统模块,包括用户模块、服务器模块、客户端模块:1.用户模块:查询书籍功能、查看所借书详细清单;2.管理模块:管理员身份的管理、数据库的管理、用户模块功能的管理。(1)服务器端模块●数据管理模块:连接数据库,根据客户端发送来的命令,按要求对数据库进行不同的操作。●网络管理模块...
图书馆管理系统
ILAS是国内最早的图书馆自动化管理软件,它改写了国内图书馆自动化管理多依赖国外进口软件的历史。这个软件主要面向公共馆,在全国中小学图书馆中应用也比较多。3、南京汇文 江苏汇文软件有限公司主打产品“汇文文献信息服务系统”自2000年起在全国范围推广,到2006年底为止的六年多的时间已为国内300多家知名...
最好的图书馆管理软件
楼主是什么类型的图书馆,我们就是专门图书馆管理系统开发商:先锋图书馆管理系统,有什么问题可以联系我们的技术支持,我们的技术人员会为您做详细解答。我们的产品有以下特点:操作简单,界面真观,易于学习和使用;桌面程序和网站程序相结合,充会发挥窗口界面和浏览器界面的优势;独立的图书馆公共查询系统...
C++图书馆系统!!三天内!!急!!!
课程设计题目二:小型图书管理系统要求:由3-4人组成小组,共同协作完成。一、 题目描述要求完成以下功能:书库管理功能、借阅者管理功能、借\/还书功能、查询功能。1、书库管理功能(1)图书属性。(书号、图书名称、数量)(2)设计约定。可以假定图书馆有N种书,每种书数量有若干,在系统启动时将这些书的信息加载到书库中...
图书管理系统
图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。使用该系统之后,图书馆管理人员可以管理读者的登记、图书的购入、借出、归还以及注销等;还可以查询某位读者、某本图书的借阅...
求vb+access图书管理系统带论文的
围设备;“软”是指计算机系统软件和应用软件,包括操作系统 软件,数据库管理软件和实现图书馆自动化的应用软件;“库”是指文献,数据库;“人”包括领导,高级系统分析师,系统分析 和设计师,程序设计师,操作员和使用人员。因此,图书管理系统可以按照用户权限和实现功能的不 同分为两部分:外部学生...
一般的图书馆计算机系统都由五个系统组成?
一般来说,图书馆计算机系统包括以下五个系统:硬件系统:包括计算机主机、外设等硬件设备。操作系统:如Windows、Linux等操作系统,用于管理和控制计算机硬件的操作。数据库系统:用于存储和管理图书馆的各种信息,如读者信息、图书信息等。应用软件系统:包括图书馆管理软件、借阅管理软件、数字资源管理软件等。...
图书管理系统 uml图
【原文出处】现代图书情报技术【原刊地名】京【原刊期号】200206【原刊页号】4~6【分类号】G9【分类名】图书馆学、信息科学、资料工作【复印期号】200301【标题】基于UML的高校图书馆管理系统【英文标题】The Application of UML in Digital Library Jin Yi Yang Zongying (Institute of Information Science and...
漳帖舒脑: #includestruct BOOK { int id,usr[10],total,store,days[10]; char name[31],author[21]; }books[100]; /*上面是结构体的定义,用于存放书籍及借书的信息.*/ void page_title(char *menu_item) { clrscr(); printf(">>> 图 书 管 理 系 统 } /*上面是打印页...
扬州市17295976570: 求C语言图书馆管理程序 - ?
漳帖舒脑: 汗.第二个要这个的人..12小时内碰到俩啦 #include <stdio.h> #include <string.h> #include <stdlib.h> // #define MAXSIZE 100 //最大值定义为100 #define LIST_INIT_SIZE 100//图书证使用者最大值定义为100 //借书人的结构体 typedef struct Boro//借...
扬州市17295976570: 一个简单的图书管理系统,C语言 - ?
漳帖舒脑: #include#include int function1(); int function2(); int function3(); int function4(); int function5(); int function6(); int function7(); int function8(); int main(void) { int choice; printf("======大学信息管理系统=====\n"); printf("---------------------------\n"); ...
扬州市17295976570: 求C语言编的图书管理系统?
漳帖舒脑: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> typedef int BOOL; typedef struct bookinfo { char number[15];/*产品编号*/ char name[30];/*产品名称*/ float price;/*单价*/ char auther[20];/*作者*/ BOOL isExit;/*存在...
扬州市17295976570: 求大神用c语言做一个关于图书馆管理系统的课程设计 - ?
漳帖舒脑: #include<stdio.h>#include<math.h>#include<string.h>#include<stdlib.h>struct books_list{ char author[20]; /*作者名*/ char bookname[20]; /*书名*/char publisher[20]; /*出版单位*/ char pbtime[15]; /*出版时间*/ char loginnum[10]; /*登陆号*/ ...
扬州市17295976570: 用C语言编一个简单的图书管理系统(包括借阅查询还书三部分)(学生作业用) - ?
漳帖舒脑: 展开全部#include#include struct sale/*商品名的定义*/ {int number; char name[20]; float price; long count; long time; long date;}; /*各个函数*/ void input(struct sale s[7]);/*输入函数*/ void output(struct sale s[7]);/*输出函数*/ void seek(struct sale s[...
扬州市17295976570: 求C语言编写图书管理系统 - ?
漳帖舒脑: #include<iostream> #include<iomanip> #include<string> #include<fstream>#include<stdio.h> using namespace std; const int Maxb=10000; //最多的图书 class Book//图书类 { int tag; //删除标记1:已删0:未删 int number; //ISBN书号 char ...
扬州市17295976570: 用C语言编写简单的图书馆系统 - ?
漳帖舒脑: 换了一个,你看看:#include <iostream> #include <iomanip> #include <string> #include <fstream>//输入/输出文件流类 using namespace std; const int Maxr=100;//最多的读者 const int Maxb=100;//最多的图书 const int Maxbor=5;//每位读者最...
扬州市17295976570: 求C语言编译的图书管理系统?
漳帖舒脑: #include<iostream.h> #include<fstream.H> #include<stdlib.h> #include<string.h> struct bookData { int booknumber; char bookname[30]; int store; }; struct Person { char name[20]; char studynumber[10]; int count; bookData Rbook[2]; //bookData ...
扬州市17295976570: 如何使用C语言编写图书管理系统? - ?
漳帖舒脑: 图书管理系统是运行于Windows系统下的应用软件,主要用于对图书馆中的图书信息进行增、删、改、查等操作,并且还可对使用该系统的用户进行登录名和密码的管理等.系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作...