求c语言图书借阅系统
我的里面 排序有点问题。。看你要不要
#include
#include
#include
#include
struct books_list
{
char writer[20]; /*作者名*/
char title[20];
char addr[20];/*书名*/
char publishinghouse[20]; /*出版单位*/
int pricing; /*价格*/
struct books_list * next; /*链表的指针域*/
};
struct books_list * Create_Books_Doc(); /*新建链表*/
void InsertDoc(struct books_list * head); /*插入*/
void sort_maopao(struct books_list * head );// 排序
void DeleteDoc(struct books_list * head , int num);/*删除*/
void Print_Book_Doc(struct books_list * head);/*浏览*/
void search_book(struct books_list * head); /*查询*/
void info_change(struct books_list * head);/*修改*/
void save(struct books_list * head);/*保存数据至文件*/
/*新建链表头节点*/
struct books_list * Create_Books_Doc()
{
struct books_list * head;
head=(struct books_list *)malloc(sizeof(struct books_list)); /*分配头节点空间*/
head->next=NULL; /*头节点指针域初始化,定为空*/
return head;
}
/*保存数据至文件*/
void save(struct books_list * head)
{
struct books_list *p;
FILE *fp;
p=head;
fp=fopen(“data.txt”,”w+”); /*以写方式新建并打开 data.txt文件*/
fprintf(fp,” ——–编号——-书 名———-作 者———-出版社———–价格 \n”);
/*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/
while(p->next!= NULL)
{
p=p->next;
fprintf(fp,”%-6.6s %-10.10s %-10.10s %-10.10s %-10.10d\n”,p->addr,p->title,p->writer,p->publishinghouse,p->pricing);
}
fprintf(fp,”\n”);
fclose(fp);
printf(” 已将图书数据保存到 data.txt 文件\n”);
}
void sort_maopao(struct books_list * head )
{
struct books_list *tail,*p,*q,*p1,*t; //p1等于head t等于head q保存p的next节点
p1=(struct books_list *)malloc(sizeof (struct books_list));
for(t=head->next;t!=NULL;t=t->next)
for(p=head->next,p1=head;p->next!=NULL;p=p->next,p1=p1->next)
{
if(strcmp(p->addr,p->next->addr)>0)
{
q=p->next->next;
tail=p->next;
tail->next=NULL;
p->next=q;
p1->next=tail;
tail->next=p;
p=p1;
}
}
save(head); //保存文件
}
/*插入*/
void InsertDoc(struct books_list *head)
{
/*定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量*/
struct books_list *s, *p;
char flag=’Y’; /*定义flag,方便用户选择重复输入*/
p=head;
/*遍历到尾结点,p指向尾结点*/
while(p->next!= NULL)
{
p=p->next;
}
/*开辟新空间,存入数据,添加进链表*/
while(flag==’Y’||flag==’y’)
{
system(“cls”);
s=(struct books_list *)malloc(sizeof(struct books_list));
printf(“\n 请输入图书编号:”);
fflush(stdin);
scanf(“%s”,s->addr);
printf(“\n 请输入图书书名:”);
fflush(stdin);
scanf(“%s”,s->title);
printf(“\n 请输入图书作者名:”);
fflush(stdin);
scanf(“%s”,s->writer);
printf(“\n 请输入图书出版社:”);
fflush(stdin);
scanf(“%s”,s->publishinghouse);
printf(“\n 请输入图书价格:”);
fflush(stdin);
scanf(“%d”,&s->pricing);
printf(“\n”);
p->next=s; /*将新增加的节点添加进链表*/
p=s; /*p指向尾节点,向后移*/
s->next=NULL;
printf(” ━━━━ 添加成功!━━━━”);
printf(“\n 继续添加?(Y/N):”);
fflush(stdin);
scanf(“%c”,&flag);
printf(“\n”);
if(flag==’N’||flag==’n’)
{break;}
else if(flag==’Y’||flag==’y’)
{continue;}
}
save(head); /*保存数据至文件*/
system(“cls”);
return;
}
/*查询操作*/
void search_book(struct books_list *head)
{
struct books_list * p;
char temp[20];
p=head;
if(head==NULL || head->next==NULL) /*判断数据库是否为空*/
{
printf(” ━━━━ 图书库为空!━━━━\n”);
}
else
{
printf(“请输入您要查找的书名: “);
fflush(stdin);
scanf(“%s”,temp);
/*指针从头节点开始移动,遍历至尾结点,查找书目信息*/
while(p->next!= NULL)
{
p=p->next;
if(strcmp(p->title,temp)==0)
{
printf(“\n图书已找到!\n”);
printf(“\n”);
printf(“编号: %s\t\n”,p->addr);
printf(“书名: %s\t\n”,p->writer);
printf(“作者名: %s\t\n”,p->writer);
printf(“出版单位: %s\t\n”,p->publishinghouse);
printf(“价格: %.2d\t\n”,p->pricing);
}
if(p->next==NULL)
{
printf(“\n查询完毕!\n”);
}
}
}
return;
}
/*浏览操作*/
void Print_Book_Doc(struct books_list * head)
{
struct books_list * p;
if(head==NULL || head->next==NULL) /*判断数据库是否为空*/
{
printf(“\n ━━━━ 没有图书记录! ━━━━\n\n”);
return;
}
p=head;
printf(“\n\n\n\t\t编号 书 名 作 者 出版单位 价格 \n”);
/*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/
while(p->next!= NULL)
{
p=p->next;
printf(“\t\t%-7.6s %-8.10s %-7.10s %-10.10s %d \n”,p->addr,p->title,p->writer,p->publishinghouse,p->pricing);
}
printf(“\n”);
}
/*修改操作*/
void info_change(struct books_list * head)
{
struct books_list * p;
int panduan=0; /*此变量用于判断是否找到书目*/
char temp[20];
p=head;
printf(“请输入要修改的书名:”);
scanf(“%s”,temp);
while(p->next!= NULL)
{
p=p->next;
if(strcmp(p->title,temp)==0)
{
printf(“\n 请输入图书编号:”);
fflush(stdin);
scanf(“%d”,p->addr);
printf(“\n 请输入图书书名:”);
fflush(stdin);
scanf(“%s”,p->title);
printf(“\n 请输入图书作者名:”);
fflush(stdin);
scanf(“%s”,p->writer);
printf(“\n 请输入图书出版社:”);
fflush(stdin);
scanf(“%s”,p->publishinghouse);
printf(“\n 请输入图书价格:”);
fflush(stdin);
scanf(“%d”,&p->pricing);
printf(“\n”);
panduan=1;
}
}
if(panduan==0)
{
printf(“\n ━━━━ 没有图书记录! ━━━━\n\n”);
}
return;
}
/*删除操作*/
void DeleteDoc(struct books_list * head)
{
struct books_list *s,*p; /*s为中间变量,p为遍历时使用的指针*/
char temp[20];
int panduan; /*此变量用于判断是否找到了书目*/
panduan=0;
p=s=head;
printf(” [请输入您要删除的书名]:”);
scanf(“%s”,temp);
/*遍历到尾结点*/
while(p!= NULL)
{
if(strcmp(p->title,temp)==0)
{
panduan++;
break;
}
p=p->next;
}
if(panduan==1)
{
for(;s->next!=p;) /*找到所需删除卡号结点的上一个结点*/
{
s=s->next;
}
s->next=p->next; /*将后一节点地址赋值给前一节点的指针域*/
free(p);
printf(“\n ━━━━ 删除成功! ━━━━\n”);
}
else /*未找到相应书目*/
{
printf(” 您输入的书目不存在,请确认后输入!\n”);
}
return;
}
int main(void)
{
struct books_list * head;
int choice;
head=NULL;
do{
printf(” \n”);
printf(” ——————– 图书管理系统——————-\n\n”);
printf(” [1]图书信息录入 \n\n”);
printf(” [2]图书信息浏览 \n\n”);
printf(” [3]图书信息查询 \n\n”);
printf(” [4]图书信息修改 \n\n”);
printf(” [5]图书信息删除 \n\n”);
printf(” [6]图书排序 \n\n”);
printf(” [0]退出系统 \n\n”);
printf(” 请选择:”);
fflush(stdin);
scanf(“%d”,&choice);
switch(choice)
{
case 1: if(head==NULL)
{
head=Create_Books_Doc();
}
InsertDoc(head);
break;
case 2: Print_Book_Doc(head);
break;
case 3: search_book(head);
break;
case 4 : info_change(head);
break;
case 5: DeleteDoc(head);
break;
case 6: sort_maopao(head);
break;
case 0 : printf(“\n”);
printf(” ━━━━━━━━ 感谢使用图书管理系统 ━━━━━━━━\n”);
break;
default : printf(” ━━━━ 输入错误,请重新输入!━━━━”);
}
}while(choice!=0);
return 0;
}
C语言编程:图书借阅系统
没时间做了 实现不是很理想固定死了你这个实现 你可以在改下
/*1、 系统初始化10种图书(图书名自定);
2、 显示所有图书列表(编号、名称和当前状态);
3、 显示图书借出状态(是否已经被借阅);
4、 操作者可以通过图书名称进行查询,并借阅;
5、 操作者也可以归还某本已经借阅的图书;
6、 对某本图书的借阅次数进行汇总求和;
7、 求出借阅次数最多和最少的图书;*/
#ifndef LIBRARY_H
#define LIBRARY_H
#include
#include
#include
#include
#include
using std::cin;
using std::vector;
using std::iterator;
using std::string;
using std::pair;
using std::istream;
class Book{
public:
Book(istream& i):ve(bo(i)){};//1、 系统初始化10种图书(图书名自定);
void list(size_t& n) const//查询
{ pair
std::cout<<"第"< (ir.second==true)?std::cout<<"存在":std::cout<<"已借出"< std::cout< void list(string& str) //查询并借阅 { vector vector while(itr!=ve.end()) {if(itr->first==str&&it->first==str) {std::cout<<"存在!请输入y/n确认是否借阅"< char ch;cin>>ch; if(ch==’y’) {itr->second=false; it->second=it->second++; std::cout<<"已借阅"< }else{std::cout<<"不存在"< ++itr;++it; } } void rest(string& str) {vector while(itr++!=ve.end()) {if(itr->first==str&&itr->second==false) {itr->second=true; std::cout<<"已归还"<<" ";}else{std::cout<<"不在"< void sum(const string str) {vector int max=(++it)->second; int min=(++it)->second; string ma,mi; while(it!=pai.end()) { if(it->first==str) {std::cout<<"借阅次数为"<<(it->second)< if(max {max=it->second; ma=it->first;} if(min>it->second) {min=it->second; mi=it->first;}} std::cout<<"借阅最多次de 图书"< std::cout<<"借阅最少次de 图书"< 7、 求出借阅次数最多和最少的图书;*/ private: vector vector vector }; vector { int i=0; std::string s; std::vector vector while(is>>s) { v.push_back(make_pair(s,true)); pai.push_back(make_pair(s,0)); ++i; if(i==10) break; } is.clear(); return v; } #endif 下面是 main #include #include”library.h” using namespace std; int main() { size_t x=5; string str; Book a(cin);//初始化 cin.clear(); a.list(x);//输入数字查询 cout<<"输入查询"< cin>>str; a.list(str);//输入字符查询并借阅 //a.rest(string(“sa”));//归还 //a.sum(string(“sa”));//查询某本书的借阅次数并统计输出借阅最多和最少的书 return 0; } 你南昌北创科技官网看看吧,致力于智能图书馆软、硬件开发和技术服务.可以选择北创图书管理系统特制版,只要880元 这个题目有点大,如果你们规模比较大,需要第三方软件公司开发定制了,不过最好的是采购已成熟的借阅系统,这种系统比较标准化,容易找到,自己开发成本太高了.如果规模较小,可以在图书上贴上云可贴二维码贴纸,借阅人借书时,管理员扫描图书上的云可贴记录借书人情况,就可以实现简易图书借阅管理系统.如果图书数量还不少,可以用云可贴作为借书证,发放给读者,当读者来借书时,扫描读者书中的云可贴二维码,记录借书情况,也能实现简易的借阅管理系统. http://wenku.baidu.com/search?word=C%2B%2B%CA%E9%BC%AE%BD%E8%D4%C4%CF%B5%CD%B3%D4%B4%B4%FA%C2%EB&lm=0&od=0&fr=top_home 链接里面有响应的源代码 实体:书、读者、书库 关系:书-读者(借阅)、书-书库(存储)、 表: Book Borrow Employee Reader 见你留的邮箱,不知道人家给你发没有,我用aoelfhong给你发的,好用的话记得采纳啊。 更多资源推荐:到豆丁网首页,找用户搜索aoelfhong,ta的文档里应该有你需要的。那里有近30个数据结构课设报告+ 源代码,20多个C++mfc课设+源代码。 我的邮箱是我豆顶网网名,网易免费邮箱163的,所以你也可先给我发邮件。 去网上搜索:vb图书管理,代码很多,一般都是access数据库的.建议使用sql的. (1) 图书信息管理。录入新书、删除旧书和查询图书信息。在删除旧书时,必须应先确定此书是未借出的。在查询图书信息时,可随时查询书库中现有书籍的类型、索书号、作者信息等。所有各类图书均可由书号唯一标识。 (2)读者信息管理。登记、删除、修改和查询读者信息。读者信息中包括读者编号、姓名、电话、地址等。读者有两种身份:教师身份的借阅人可以总共借5本书,每本书的借阅日期为3个月;学生身份的借阅人可以总共借3本书,每本书的借阅日期为1个月。 (3)为了方便业务往来,需保存出版社相关信息。这些信息包括:出版社名称、电话、邮编、地址、联系人等。 找了不少网站有点用的都是收费的,有没有什么不错的免费的编程网址,或论坛。给介绍一二,最好是有图书管理系统这方面资料的 定义图书的结构体变量,内容包括 书号,名,作者, 出版单位,时间, 价格,数量;再分别写函数,功能分别为 入库,增加,修改,删除,借阅,归还,续借管理, 学生,教师管理;以及其 借阅情况查询和图书阅览【这些函数操作即是用链表的方法对定义的结构体操作,就是插入删除排序之类的】 主函数中开始输出提示信息,提示用户操作.然后录入用户的命令,用case语句,分别调用各个函数即可、、、 给分吧,哈哈哈图书借阅系统买哪家的强?
如何利用spring建立图书借阅管理系统
C++书籍借阅系统源代码
数据库的作业:图书借阅系统.
数据结构课程设计(图书馆借阅管理系统)
怎么用VB做一个很简单的图书借阅管理系统?
图书借阅管理系统制作:-)
C语言图书借阅管理系统