当前位置:首页 » 编程语言 » 简单的图书管理系统c语言

简单的图书管理系统c语言

发布时间: 2022-08-24 11:03:00

‘壹’ c语言小型图书信息管理系统

#include<stdio.h>
#include<stdlib.h>
#include"windows.h"
#include"string.h"

#defineS_MAX50

intuser_count=0;//用户信息的总数
intbook_count=0;
charini_path[100]={""};//数据文件的绝对路径
charuser_path[100]={""};//用户数据文件的绝对路径
charbook_path[100]={""};
intbook_pos=0;//book数组的计数
intuser_pos=0;

structuser_data
{
charname[10];
charbook_name[50];
}user[S_MAX];

structbook_data
{
charno[10];
charname[50];
charauthor[30];
charmoney[10];
charin_or_out[10];
charuser_name[10];
}book[S_MAX];

voidread_file()//从文件读取数据
{
user_pos=0;
inti;
for(i=0;i<S_MAX;i++)
{
memset(user[i].name,'',10);
memset(user[i].book_name,'',50);

memset(book[i].no,'',10);
memset(book[i].name,'',50);
memset(book[i].author,'',30);
memset(book[i].money,'',10);
memset(book[i].in_or_out,'',10);
memset(book[i].user_name,'',10);
}
user_count=GetPrivateProfileInt("USER","user_count",0,user_path);
book_count=GetPrivateProfileInt("book","book_count",0,book_path);

for(i=0;i<user_count;i++)
{
chart[5]={""};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"name","",user[i].name,10,user_path);
GetPrivateProfileString(t,"book_name","",user[i].book_name,50,user_path);
user_pos++;
}
for(i=0;i<book_count;i++)
{
chart[5]={""};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"no","",book[i].no,10,book_path);
GetPrivateProfileString(t,"name","",book[i].name,50,book_path);
GetPrivateProfileString(t,"author","",book[i].author,30,book_path);
GetPrivateProfileString(t,"money","",book[i].money,10,book_path);
GetPrivateProfileString(t,"in_or_out","",book[i].in_or_out,10,book_path);
GetPrivateProfileString(t,"user_name","",book[i].user_name,10,book_path);
book_pos++;
}
}

voidwrite_file()
{
inti;
for(i=0;i<user_count;i++)
{
chart[5]={""};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",NULL,user_path);
WritePrivateProfileString(t,"book_name",NULL,user_path);

WritePrivateProfileString(t,"no",NULL,book_path);
WritePrivateProfileString(t,"name",NULL,book_path);
WritePrivateProfileString(t,"author",NULL,book_path);
WritePrivateProfileString(t,"money",NULL,book_path);
WritePrivateProfileString(t,"in_or_out",NULL,book_path);
WritePrivateProfileString(t,"user_name",NULL,book_path);
}
chartemp[5]={""};
inttemp_count=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,"")==0)
{
continue;
}
chart[5]={""};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",user[i].name,user_path);
WritePrivateProfileString(t,"book_name",user[i].book_name,user_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("USER","user_count",temp,user_path);

temp_count=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,"")==0)
{
continue;
}
chart[5]={""};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"no",book[i].no,book_path);
WritePrivateProfileString(t,"name",book[i].name,book_path);
WritePrivateProfileString(t,"author",book[i].author,book_path);
WritePrivateProfileString(t,"money",book[i].money,book_path);
WritePrivateProfileString(t,"in_or_out",book[i].in_or_out,book_path);
WritePrivateProfileString(t,"user_name",book[i].user_name,book_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("BOOK","book_count",temp,book_path);
}

voidsearch_user_name()//按借书人姓名查询
{
system("cls");
charsearch_key[10]={""};
printf("请输入要查询图书借书人:");
scanf("%s",search_key);
inti;
ints[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
ints_i=0;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].user_name,search_key)==0)
{
find=1;
s[s_i]=i;
s_i++;
printf(" 编号:%s",book[i].no);
printf(" 名称:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金额:%s",book[i].money);
printf(" 状态:%s",book[i].in_or_out);
printf(" 借书人:%s ",book[i].user_name);
}
}
if(find==0)
{
printf(" 未找到符合条件的信息!");
}
else
{
for(i=0;i<s_i;i++)
{
printf(" 第%d本书:%s",i+1,book[i].name);
}
printf(" 共%d本",i);
}
fflush(stdin);
getchar();
}

voidsearch_book_author()//按图书作者查询
{
system("cls");
charsearch_key[50]={""};
printf("请输入要查询图书的作者:");
scanf("%s",search_key);
inti;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].author,search_key)==0)
{
find=1;
printf(" 编号:%s",book[i].no);
printf(" 名称:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金额:%s",book[i].money);
printf(" 状态:%s",book[i].in_or_out);
printf(" 借书人:%s ",book[i].user_name);
break;
}
}
if(find==0)
{
printf(" 未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}

voidsearch_book_name()//按图书名称查询
{
system("cls");
charsearch_key[50]={""};
printf("请输入要查询图书的名称:");
scanf("%s",search_key);
inti;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,search_key)==0)
{
find=1;
printf(" 编号:%s",book[i].no);
printf(" 名称:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金额:%s",book[i].money);
printf(" 状态:%s",book[i].in_or_out);
printf(" 借书人:%s ",book[i].user_name);
break;
}
}
if(find==0)
{
printf(" 未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}

voidsearch_book_no()//按图书编号查询
{
system("cls");
charsearch_key[10]={""};
printf("请输入要查询图书的编号:");
scanf("%s",search_key);
inti;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,search_key)==0)
{
find=1;
printf(" 编号:%s",book[i].no);
printf(" 名称:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金额:%s",book[i].money);
printf(" 状态:%s",book[i].in_or_out);
printf(" 借书人:%s ",book[i].user_name);
break;
}
}
if(find==0)
{
printf(" 未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}
voidsearch_all_book()//查询所有图书
{
system("cls");
if(book_pos==0)
{
printf("真TM穷,一本书都没有");
}
else
{
inti;
printf("共有%d本书 ",book_pos);
for(i=0;i<book_pos;i++)
{
printf(" 编号:%s名称:%s作者:%s金额:%s状态:%s",book[i].no,book[i].name,book[i].author,book[i].money,book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf("借书人:%s",book[i].user_name);
}
}
}
fflush(stdin);
getchar();
}

voidsearch_all_user()//查询所有用户
{
system("cls");
if(user_pos==0)
{
printf("要倒闭了?一个人都没有!");
}
else
{
inti;
printf("共有%d个用户 ",user_pos);
for(i=0;i<user_pos;i++)
{
printf(" 用户名称:%s借书名称:",user[i].name);
if(strcmp(user[i].book_name,"")!=0)
{
printf("%s",user[i].book_name);
}
else
{
printf("未借书");
}
}
}
fflush(stdin);
getchar();
}

voidNo7()//查询
{
intf=1;
intsel;
while(f)
{
system("cls");
printf("********************************* ");
printf("** ");
printf("*图书管理系统--查询* ");
printf("** ");
printf("*1.按图书编号查询* ");
printf("** ");
printf("*2.按图书名称查询* ");
printf("** ");
printf("*3.按作者查询* ");
printf("** ");
printf("*4.按借书人姓名查询* ");
printf("** ");
printf("*5.查询所有图书* ");
printf("** ");
printf("*6.查询所有用户* ");
printf("** ");
printf("*0.返回主菜单* ");
printf("** ");
printf("********************************* ");
printf("请选择:(1,2,3,4,5,6,0)");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case1:
search_book_no();

break;
case2:
search_book_name();

break;
case3:
search_book_author();

break;
case4:
search_user_name();

break;
case5:
search_all_book();
break;
case6:
search_all_user();
break;
case0:

f=0;
break;
default:
break;
}
}
}

voidNo6()//用户信息删除
{
system("cls");
chardel_key[10]={""};
printf("请输入要删除的用户名称:");
scanf("%s",del_key);
inti,del_pos;
intfind=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,del_key)==0)
{
find=1;
printf(" 姓名:%s",user[i].name);
if(strlen(user[i].book_name)>0)
{
printf(" 所借书籍:%s",user[i].book_name);
}
del_pos=i;
break;
}
}
if(find==0)
{
printf(" 未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}

while(1)
{
fflush(stdin);
printf(" 确认要删除该记录吗?(y/n):");
chart;
scanf("%c",&t);
if(t=='y'||t=='Y')
{
if(strlen(user[del_pos].book_name)>0)
{
printf(" 该用户尚有书籍未归还,不能删除!");
fflush(stdin);
getchar();
return;
}
strcpy(user[del_pos].name,"");
strcpy(user[del_pos].book_name,"");
write_file();
printf(" 删除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
elseif(t=='N'||t=='n')
{
printf(" 你选择了不删除,按任意键返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}
//请在回复后发余下部分

‘贰’ c语言图书管理系统

这个功能比较少,可能符合你的要求,对于查询功能,自己可以添加修改结构体,注意数据格式就行了,另外还有一个用类编写的,功能也多一些,要的话留邮箱
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
typedef struct stu
{
char name[20];
long int number;
int snum;
char sex[20];
char add[30] ;
char time[20];
char tel[20];
struct stu *next;
}stu,*student;
int init(student &s);
void insert(student &s);
void print(student &s);
int delete(student &s);
void find (student &s);
void findname(student &s);
void findnum(student &s);
void modifay(student &s);
void putfile(student &s);
void getfile(student &s);
void main()
{
student s;
init(s);
cout<<"欢迎使用学生管理系统."<<endl;
cout<<" "<<endl;
cout<<endl;
while(1)
{
int i;
mainint:
cout<<"请选择相关操作:"<<endl<<"1.建立学生资料文件."<<endl<<"2.浏览."<<endl<<"3.删除."<<endl;
cout<<"4.查询."<<endl<<"5.修改."<<endl<<"6.打开学生文件."<<endl<<"7.退出管理系统." <<endl<<"请选择:";
cin>>i;
if(i<0||i>7)
{
cout<<"输入了错误的数字,Again!"<<endl<<endl;
goto mainint;
}
switch(i)
{
case 1: insert(s);break;
case 2: print(s);
putfile(s);
break;
case 3: ldelete(s);break;
case 4: find(s);break;
case 5: modifay(s);
break;
case 6: getfile(s);break;
case 7: exit(0);
}
}
}
int init(student &s)
{
s=(student)malloc(sizeof(stu));
if (s)
{
s->next=NULL;
return 0;
}
else return -1;
}
void insert(student &s) //insert
{
cout<<endl;
student p,q;
p=(student)malloc(sizeof(stu));
cout<<"请输入学生信息:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<endl;
cout<<"学号:";
cin>>p->number;
cout<<endl;
cout<<"性别:";
cin>>p->sex;
cout<<endl;
cout<<"家庭住址:" ;
cin>>p->add;
cout<<endl;
cout<<"出生年月:" ;
cin>>p->time;
cout<<endl;
cout<<"宿舍号:";
cin>>p->snum;
cout<<endl;
cout<<"宿舍号码:";
cin>>p->tel;
q=s;
while(!(q->next==NULL)&&(q->next->number<p->number))
q=q->next;
p->next=q->next;
q->next=p;
//if()p->next=NULL;
//free(p);
}
int ldelete(student &s) //delete
{
cout<<endl;
student p,a;
p=s ;
cout<<"请输入删除的学号:";
long int number;
cin>>number;
while(p)
{ if (p->number==number)
{
a->next=p->next;
free(p); return(0);}
else
{ a=p;
p=p->next;} }
cout<<"没有找到你要删除的选项!"<<endl<<endl;return(-1);
}
void print(student &s)
{
int a;
a=0;
student p;
p=s->next;
cout<<"姓名 "<<"学号 " <<"性别 "<<"家庭住址 "<<"出生年月 "<<"宿舍号"<<"宿舍号码"<<endl;
while(p)
{
a++;
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
p=p->next;
}
cout<<endl;
if (a==0)
cout<<"还没有学生信息!"<<endl<<endl ;
}
void find (student &s) //find
{
findl:
cout<<"请选择查找方法:"<<endl<<"1.按姓名查找."<<endl<<"2.按学号查找."<<endl;
cout<<"请选择:";
int k;
cin>>k;
if(k<0||k>3)
{
cout<<"输了入错误数字,Again!"<<endl<<endl;
goto findl;
}
switch(k)
{
case 1: findname(s);break;
case 2: findnum(s);break;
}
}
void findname(student &s) //find by name
{
student p;
p=s->next;
cout<<"请输入姓名:";
char name[20];
int j;
j=0;
cin>>name;
cout<<"你要查找的资料是:"<<endl;
cout<<"姓名 "<<"学号 " <<"性别 "<<"家庭住址 "<<"出生日期 "<<"宿舍号 "<<"宿舍号码"<<endl;
while(p)
{
if (strcmp(p->name,name)==0)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
j++;
}
p=p->next;
}
cout<<endl;
if(j==0)
cout<<"对不起,没找到你要的信息!"<<endl<<endl ;
}
void findnum(student &s) //find by number
{
student p;
p=s->next;
cout<<"请输入学号:";
long int number;
int j;
j=0;
cin>>number;
cout<<"你要查找的资料是:"<<endl;
cout<<"姓名 "<<"学号 "<<"性别 "<<"家庭住址 "<<"出生日期 "<<"宿舍号 "<<"宿舍电话"<<endl;
while(p)
{
if (p->number==number)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
j++;
}
p=p->next;
}
cout<<endl;
if(j==0)
cout<<"对不起,没找到你要的信息"<<endl<<endl ;
}
void modifay(student &s) //modifay
{
student q,p,l,m;
int j;
j=0;
q=s->next;
l=s;
m=s;
cout<<"请输入要修改的学号:" ;
long int num;
cin>>num;
cout<<"姓名 "<<"学号 "<<"性别 "<<"家庭住址 "<<"入学时间 "<<"宿舍号 "<<"电话号码"<<endl;
while(q)
{
if (q->number==num)
{
cout<<"你要修改的信息是:"<<endl;
cout<<q->name<<" "<<q->number<<" "<<q->sex<<" "<<q->add<<" "<<q->time<<" "<<q->snum<<" "<<q->tel<<" "<<endl;
j++;
p=(student)malloc(sizeof(stu));
cout<<"请输入新的学生信息:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<endl;
cout<<"学号:";
cin>>p->number;
cout<<endl;
cout<<"年龄:";
cin>>p->age;
cout<<endl;
cout<<"性别:";
cin>>p->sex;
cout<<endl;
cout<<"家庭住址:" ;
cin>>p->add;
cout<<endl;
cout<<"入学时间:" ;
cin>>p->time;
cout<<endl;
cout<<"电话号码:";
cin>>p->tel;
l->next=q->next;
free(q);
goto tt;
}
else
{
l=q;
q=q->next;
}
}
cout<<endl;
if (j==0) cout<<"没找到你要的数据!"<<endl<<endl ;
tt:
while(!(m->next==NULL)&&(m->next->number<p->number))
m=m->next;
p->next=m->next;
m->next=p;
}
void putfile(student &s)
{
student p;
p=s->next;
FILE *fp;
if((fp=fopen("information.txt","w"))==NULL)
{
cout<<"打不开文件"<<endl<<endl;
exit(0);
}
while(p)
{
if(fwrite(p,sizeof(struct stu),1,fp)!=1 )
{
cout<<"文件写入错误"<<endl<<endl;
return;
}
p=p->next;
}
fclose(fp) ;
}
void getfile(student &s)
{
student p,q;
q=s;
FILE *fp1 ;
if((fp1=fopen("information.txt","r"))==NULL)
{
cout<<"打不开文件"<<endl;
exit(0);
}
cout<<"姓名 "<<"学号 "<<"性别 "<<"家庭住址 "<<"入学时间 "<<"宿舍号 "<<"电话号码"<<endl;
p=(student)malloc(sizeof(stu));
while(fread(p,sizeof(struct stu),1,fp1)!=0)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->age<<" "<<p->tel<<endl;
while(!(q->next==NULL)&&(q->next->number<p->number))
q=q->next;
p->next=q->next;
q->next=p;
p=(student)malloc(sizeof(stu));
}
fclose(fp1);
cout<<endl;
}

‘叁’ c语言图书管理系统程序设计

一 程序设计说明书
【设计题目】 图书馆借阅管理
【问题描述】图书馆,适合用C++面向对象的功能来描述。图书馆管理系统分为借书、还书、图书管理和读者服务等四个部分。设计一个读者类Reader,记录每个读者基本信息;读者库类Rdatabase,记录所有读者信息;图书类Book, 记录每本书的基本信息;图书库类Bdatabase, 记录所有图书信息。
【基本要求】
1读者库类RDatabase中,其构造函数中,将read.txt文件中所有读入读者记录rede[]中。处理完毕,在析构函数中将read[]中的所有未删记录写入到read.txt中。
2图书库类BDatabase中,其构造函数中,将book.txt文件中所有读入图书记录book[]中。处理完毕,在析构函数中将book[]中的所有未删记录写入到book.txt中。
3 利用构造函数完成读者和图书数据初始化,完成内存分配。程序结束前,析构函数完成所申请的堆内存空间。
4 编写主函数,对所编写的矩阵类进行全面测试。要求用户界面采用菜单方式。测试中需要读者和图书数据通过I/O流从磁盘文件读入,同时显示在屏幕上。得到的数据通过I/O流写入磁盘文件保存,同时显示在屏幕上。
5 源程序中要有充分的注释,报告中要有详细的流程图和文字材料。
【类的设计】
该程序包含了四个类,如下:
1.Reader类,有读者的基本管理功能,具有以下私有数据:
int tag;//删除标记 1:已删;0:未删
int no;//读者编号
char name[10];//读者姓名
int borbook[Maxbor];//所借图书
2.读者库类Rdatabase, 具有以下私有数据:
int top;//读者记录指针
Reader read[Maxr];//读者记录
3.图书库类Book,有一本图书的基本功能,有以下私有数据:
int tag;//删除标记 1:已删;0:未删
int no;//图书编号
char name[20];//书名
int onshelf;//是否在架 1在架 0已借
4.图书库类BDatabase,有以下私有数据:
int top;//图书记录指针
Book book[Maxb];//图书记录
【特殊函数的设计说明】
构造函数
1.Reader类中构造函数Reader(),初始化函数;
2.读者库类RDatabase中,其构造函数Rdatabase(),将read.txt文件中所有读入读者记录rede[]中。
3.Book类中构造函数Book(),初始化函数;
4.图书库类BDatabase中,其构造函数中,将book.txt文件中所有读入图书记录book[]中。

拷贝构造函数
Reader类中的拷贝构造函数将getname()的返回值读者姓名拷贝到setname()中,Book类中的拷贝构造函数将getname()函数的返回值图书名拷贝到图书名设置函数setname()中。

析构函数
1.读者库类RDatabase中,其析构函数~Rdatabase(),将read[]中的所有未删记录写入到read.txt中;
2.图书库类BDatabase中,其析构函数~Bdatabase(),将book[]中的所有未删记录写入到book.txt中。

运算符重载
重载了“=”,当比较读者编号和图书编号时,重载;重载位运算符“〈〈”和“〉〉”等。

【主要函数算法流程图】

【程序的使用方法】
1.进入操作页面,按提示操作;
2.首先,新增图书和读者信息,之后就可以对以存在的信息进行操作;
3.操作当中,可以随时增加,更改和删除图书或读者信息;
4.当选择退出时,进行清屏。

二 程序上机调试报告
【语法错误及其排除】
1.在敲程序时,有很多拼写错误,例好多处把Readdata()误打Readdate();结束的分号,在不同的输入法状态下输入,这些小错误刚开始很难发现,不过有了经验,就很容易了。
2.创建新的构造函数时,使用出现了错误。重载构造函数要注意函数的访问权限,结果就不会出现错误。
【算法错误及其排除】
1.读者类中借书操作函数中,采用循环语句时判断读者已借图书量时for(int i=0;i<Maxbor;i++)误写为for(int i=1;i<Maxbor;i++),使循环发生错误。
2.指针使用错误,指针b和r混淆,导致编译错误得到“error C2660: 'retbook' : function does not take 1 parameters”错误报告。

‘肆’ 如何用 C语言做 图书管理系统(要求:不能用链表做)

网上很多的,无非就是结构体,然后赋值问题,指针,主要用这两个多

‘伍’ 如何使用C语言编写图书管理系统

图书管理系统是运行于Windows系统下的应用软件,主要用于对图书馆中的图书信息进行增、删、改、查等操作,并且还可对使用该系统的用户进行登录名和密码的管理等。系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。
所需功能类似于学生成绩管理系统,界面可参考附录C。用户分为管理员和一般人员两大类。
功能需求描述如下。
①用户登录:根据用户输入的用户名和密码判断是否允许该用户使用本系统,并且当用户登录后根据用户权限判断用户可以使用哪些功能。学生只有浏览等权限而不能进行实质性改动。
②提供系统主控平台:系统主控平台也应根据用户权限不同而有所区别,只列出在用户权限范围内的功能供用户选择。系统主控平台包括输入功能选项、调用相应程序两大需求。教师和学生对应的系统主控平台是不同的。所能进行的操作也不相同。
③创建图书信息文件:用户根据提示输入图书编号、图书分类号、书名、作者姓名、出版社名、出版年月、定价、存库数量和借阅和上架情况等等信息存储在系统磁盘的文件中。以便进行管理、查找和备份。
④增加图书信息:可在原有图书信息文件的基础上增加新的图书信息记录并继续保存至磁盘,并且将增加后的文件存储状况显示给用户。
⑤删除图书信息:提示用户输入要进行删除操作的图书编号,如果在文件中有该信息存在,则将该书号所对应的记录删除。并选择是否继续进行删除操作。
⑥修改图书信息:提示用户输入要进行修改操作的书号,如果在文件中有该息存在,则将提示用户输入该书号对应的要修改的选项,结果存储于文件。该部分需求也需要提示用户选择是否继续进行修改操作。
⑦查询图书信息:提供按书号或书名等查询。在该功能中,也需提示用户是否需要继续查再继续查找,则返回主界面。
⑧一般用户查询个人的借阅情况并按日期进行排序:。
⑨管理员和一般用户管理:管理员对用户的管理也需要进行用户的创建、增加、删除、浏览。管理员创建的用户存储在名为yonghu的磁盘文件中,每当有用户登录系统时,会根据该文件中的用户名和密码进行核实判断,用户才能够顺利登录。管理员还具有用户的功能。增加的用户及密码、权限等也被继续存储在yonghu文件中。当某些用一用该系统时,还可以进行删除操作,并且管理员具有修改用户权限的功能,一般用户和管理员对于系统的权限是不一样的。

‘陆’ C语言编程图书管理系统

#include#include#include#include#includestructbook{charnumber[100];chartittle[100];charwriter[100];charpublisher[100];chardate[100];charprice[100];charstatus[100];charreader[100];};voidsearch_book();voidborrow_book();voidreturn_book();voidadd_book();voiddelete_book();voidmodify_book();voidscan_book();intmain(){intc1=0,c2,c3;intl,x,z;while(1){system("color2C");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n");printf("\t\t\t*[1]用户登录*\n");printf("\t\t\t*[2]管理员登录*\n");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\n");printf("请选择你的操作:");scanf("%d",&c1);system("cls");break;}if(c1==1){while(1){system("color2C");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n");printf("\t\t\t*[1]查询图书*\n");printf("\t\t\t|[2]借阅图书|\n");printf("\t\t\t*[3]借还图书*\n");printf("\t\t\t*[4]浏览图书信息*\n");printf("\t\t\t|[5]退出图书管理系统|\n");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\n");printf("请选择你的操作:");scanf("%d",&c2);getchar();switch(c2){case1:search_book();break;case2:borrow_book();break;case3:return_book();break;case4:scan_book();break;case5:system("cls");return0;}}}if(c1==2){while(1){system("color2C");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n");printf("\t\t\t|[1]添加图书|\n");printf("\t\t\t*[2]删减图书*\n");printf("\t\t\t|[3]修改图书信息|\n");printf("\t\t\t*[4]浏览图书信息*\n");printf("\t\t\t|[5]退出图书管理系统|\n");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\n");printf("请选择你的操作:");scanf("%d",&c3);getchar();switch(c3){case1:add_book();break;case2:delete_book();break;case3:modify_book();break;case4:scan_book();break;case5:system("cls");return0;}}}}/*查询图书*/voidsearch_book(){FILE*fp;structbookn;structbooknn;intl,r;charx,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("没有要查询的图书!!!\n\n");}else{printf("查询的图书为:");printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");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("\n\n\n");}printf("是否继续查询图书?[是(y)/否(n)]?\n\n");do{x=getche();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//添加voidadd_book(){FILE*fp;structbookn;structbooknn;charx,z;intl,r;fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");do{system("cls");do{l=0;printf("\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");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("该图书已存在,请输入新的图书信息:\n\n");break;}}}while(l);fwrite(&n,sizeof(n),1,fp);printf("\n");printf("是否继续输入新的图书信息[y/n]\n\n");do{x=getche();}while(x!='n'&&x!='y');}while(x=='y');fclose(fp);system("cls");}//删除图书voiddelete_book(){FILE*fp,*fp1;charx,z;structbookn;structbooknn;intl,r;fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");while(1){l=0;system("cls");printf("\n");printf("请输入需要删除的图书名:\n\n");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("\n");printf("对不起,未找到该图书\n");}else{printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");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("\n");printf("确认删除图书信息?[是(y)/否(n)]\n\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("\n");printf("是否继续删除图书信息?[是(y)/否(n)]\n");do{x=getche();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//修改图书信息voidmodify_book(){FILE*fp;structbookn;structbooknn;intl,r;charx,z;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");while(1){l=0;printf("\n");system("cls");printf("请输入需要修改的图书名:\n\n");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("\n");printf("对不起,未找到该图书信息\n\n");}else{printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");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("请依次修改图书信息\n\n\n");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("\n");printf("是否继续修改用户信息[y/n]?\n\n");do{x=getch();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//借书voidborrow_book(){FILE*fp;structbookn;structbooknn;charx,z;intl,r;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");while(1){l=0;system("cls");printf("\n");printf("请输入需要借阅的图书名:\n");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("\n");printf("对不起,未找到该图书。\n");}else{printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");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("\n");fflush(stdin);printf("请输入图书信息并修改在库状态及借阅者信息");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");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("\n");printf("是否继续借书?[是(y)/否(n)]\n\n");do{x=getch();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//还书voidreturn_book(){FILE*fp;structbookn;structbooknn;charx,z;intl,r;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");while(1){l=0;system("cls");printf("\n");printf("请输入需要借还的图书名:\n");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("\n");printf("对不起,未找到该图书。\n");}else{printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");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("\n");fflush(stdin);printf("请输入图书信息并修改在库状态\n\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");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("\n");printf("是否继续还书?[是(y)/否(n)]\n");do{x=getche();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//浏览voidscan_book(){FILE*fp;charx,z;structbookn;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");rewind(fp);system("cls");while(1){fread(&n,sizeof(n),1,fp);if(feof(fp))break;else{printf("********************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");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("\n");}}printf("\n");printf("回到主菜单请按回车");do{x=getche();}while(x!='\r');if(x=='\r'){fclose(fp);system("cls");}}

‘柒’ 用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 name[20]; //书名

char author[10]; //主编

char number2[10];//版次

char position[20];//出版社

char time[20];//出版年

void addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr) //增加图书
{

tag=0;

number=n;

price=pr;

strcpy(name,na);

strcpy(author,au);

strcpy(number2,n2);

strcpy(position,da);

strcpy(time,ti);

onshelf=1;

}

(7)简单的图书管理系统c语言扩展阅读

1、源程序中,很多符号都是成对匹配出现的,为避免遗漏必须配对使用的符号。

2、用花括号括起来的部分,但从程序结构清晰,便于阅读、理解、维护的角度出发,建议在书写程序时应遵循以下规则,以养成良好的编程习惯。

3、一个说明或一条语句占一行,与该结构开始处的左花括号对齐。

‘捌’ c语言图书管理系统 急需!!

我简单给你说一下吧。
1、首先定义数据结构
图书结构:图书编号、图书名称、单价、作者、存在状态
人员结构:人员编号(学生为学号,教师为工作编号)、姓名、性别等
借书结构:人员编号、图书编号、借书时间、还书时间
2、由于是C系统,通常情况下,数据要存储在文件中,因此,还需要定义文件结构:图书、人员、借书信息。
为了数据处理速度,可将借书信息中已经还书的信息单独放在还书信息中,借书信息中的数据只是已经借出还没有归还的数据。
3、系统功能定义,以及编码。
由于系统太过庞大,你还是自己试着做一下吧,应该可以做好的。
学习本身就是做程序,如果有困难,可以上我们团队提问题,随时恭候!
祝学习进步!

热点内容
碧蓝航线pc挂机脚本 发布:2024-05-19 02:30:03 浏览:588
脚本fir 发布:2024-05-19 02:28:57 浏览:260
阿里云独享服务器 发布:2024-05-19 02:23:54 浏览:253
织梦源码ga 发布:2024-05-19 02:23:20 浏览:571
java文件名后缀 发布:2024-05-19 02:14:39 浏览:956
快手点榜脚本 发布:2024-05-19 02:08:44 浏览:163
pythonforinkeys 发布:2024-05-19 01:55:44 浏览:793
电脑如何局域网共享文件夹 发布:2024-05-19 01:25:01 浏览:69
手机存储越大性能越好吗 发布:2024-05-19 01:14:28 浏览:177
我的世界hyp服务器怎么玩 发布:2024-05-19 00:51:25 浏览:801