c语言图书信息管理系统c语言
C语言程序课程设计图书管理系统方案

C语言程序课程设计报告标题:图书管理系统专业:软件工程类:设计主题图书馆管理系统主要包括管理图书的库存信息,每本书的借阅信息,每个人的借阅信息。
每本书的库存信息包括数量、书名、作者、出版日期、金额、类别、总入库数量、当前库存、已借出图书数量等。
每本借书包括以下信息:编号、书名、金额、借书证号、借阅日期、到期日期、罚款金额等。
每个人的图书馆信息包括借书证号、班级、学号等。
该系统的功能包括以下几个方面:一、借阅资料管理要求对图书、期刊、报纸、期刊进行分类管理,这样操作会更加灵活方便。
可以随时添加、删除、修改、查询等相关资料。
b、借贷管理(1)借贷操作(2)还书操作(3)更新治疗提示:以上处理需要相互配合,通过编辑赔偿和违约金金额来完成图书借还业务的各种登记。
例如,读者在还书时,不仅要更新图书的库存信息,还要自动计算图书的罚款金额。
并显示读者当天到期未还图书的所有信息。
c、读者管理读者等级:对借阅的读者进行分类,比如可以分为教师和学生两类。
并定义每类读者可以借阅的图书数量及相关借阅时间等信息。
读者管理:可以录入读者信息,以及挂失或注销读者、查询等服务。
D.统计分析可以随时进行统计分析,及时了解当前的借阅情况和相关数据状态。
统计分析包括借阅列表、数据状态统计、借阅统计等功能分析,显示当日所有到期未还的图书信息。
e系统参数设置:您可以设置相关的系统服务器参数,如违约金金额、最大借用天数等。
根据题目分析这项工作分为六个模块。
1.图书数据2.借款人信息3.借用模块4.还书模块5.照看书籍6.查询模块模块一:书号,书名,作者,出版时间,价格,份数,页数。
模块二:单位、借阅书目、借阅时间模块3:输入书名、书号、借书证。
模块四:登记书号,还书,处理罚款。
模块5:管理书库中的书籍,将新书入库,删除旧书,堆栈查询模块6:图书查询。
数据测试源代码汉字菜单可以参照以下代码编写:#包含“stdio.h”。
主(){ char c;int I;做{clr SCR();for(I = 0;i < 80i++)printf(" * ");printf("\t 1:添加书籍\ n ");printf("\t 2:列出书籍\ n ");printf(" \ t 3:s reach books \ n ");printf("\t 4:借书\ n ");printf("\t 5:返回图书\ n ");printf("\t6:退出\n ")printf(" \ t请选择输入选项[1 \ \ 2 \ \ 3 \ \ 4 \ \ 5 \ \ 6]:\ n ");做{c = getchar();}while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&!='6');getchar();开关(c){事例“1”:输入();打破;案例“2”:del();打破;事例“3”:find();打破;case“4”:arrange();打破;事例“5”:right();打破;案例“6”:出口(0);}Printf("按任意键返回主菜单:\ n ");getchar();clr SCR();} while(1);}#include <stdio.h >定义图书结构*/结构书{int _ id#include <stdlib.h >#include <string.h >#定义借入1#定义NOBORROW 0/*//数字,唯一char _ name[32];//书的名称,不唯一int _ type//书的类型,不唯一int _ status//书的状态,借出/未借出int _ count//图书借出的次数struct Book * _ next//下一本书结构书* _ prev//前一本书};定义书籍类型*/操作目录提示*/操作目录提示1 */添加图书类型并显示用户信息*/添加图书状态并显示用户信息。
C语言课程设计图书馆管理系统程序代码

#include〈stdio.h〉#include<windows.h〉#include〈string。
h〉#include<conio。
h>#define M 100struct books{char tsmc[12];inttsbh;float dj;char zz[12];char czzt[12];char xm[12];char xb[12];intxh; }s[M];int N;bool flag;intmain (){intsele;flag=0;sele=1;void sr();void cx();void sc();void js();void hs();void tc();void jsh();//system ("tsgl”);printf("\n\n");printf(" ************************\n"); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n");printf(” ************************\n"); while(1){printf(”\n\n请输入功能序号:");scanf (”%d",&sele);if(sele>=0 && sele<=5){switch(sele){case 1:sr();break;case 2:cx();break;case 3:sc();break;case 4:js();break;case 5:hs();break;case 0:jsh();break;}if(flag)break;printf(”\n\n");printf(” ************************\n”); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n”);printf(” ************************\n”);}else{printf(”输入错误请再次输入|\n\n");printf("\n\n");printf(” ************************\n”);printf(" 1:输入2:查询3:删除\n”);printf(”4:借书5:还书0:退出\n");printf(" ************************\n");}printf("\n\n让任意键继续\n”);} //wr_file();}/******主函数***//*********输入*********/void sr(){intn,i;N=0;printf("可输入的书本数:");scanf("%d",&n);N=n+N;printf("请输入相关信息:\n");for(i=1;i<=n;i++){printf(”图书名称:”);scanf(”%s",s[N-n-1+i]。
图书馆管理系统C语言程序设计

HUNAN UNIVERSITY C语言程序训练报告【设计目的】图书信息包括:读者登录号、管理员登录号、图书编号、作者名、种类、出版社、图书库存、图书借出数目等。
图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)读者注册功能3)读者登录功能4)读者借书还书功能5)查询读者借阅记录6)查询在管图书信息功能7)修改密码功能8)管理员登录功能9)增加、修改、删除图书功能10)查看图书信息功能【设计思路】根据题目要求,应当把图书信息用结构体形式输入,应该提供以下结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的;管理员和读者登录界面及各自功能应有不同的实现。
【总体设计】【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用源代码为//rkou。
c 程序的入口#include<stdio。
h>#include〈stdlib.h〉#include〈string。
h>#include<conio.h〉#include"head.h”#include”fuc.h"#include”picture。
h"#include”jiangzhuo1.h"#include”output。
h"main(){ int i=setup();switch (i){ case 0: while(n<50){ conects(n);}default:eros(i);}system("pause”);}2.程序中全局变量声明定义,以及所有函数声明源代码为struct book //图书结构体声明{ char name[50],classic[10],writer[20]; //书名,类别,作者int jn; //借出数量int zn; //在馆数量int bh; //图书编号};struct information //管理员和读者结构体声明{char name[10],no[12],key[10]; //姓名,账号,密码};struct show //图书借阅记录的结构体声明{char name1[10],name2[50],writer[20],no[12]; //书名,读者姓名,书的作者,读者账号int bh,o; //图书编号,借阅状况(未还,已还)};//以下为用到的全局变量struct book bk;struct information aa,rr;struct information stu[100];struct book bb[100];struct information ad[100];struct show ss[100];int i,j,k,s;int n=0;int x;FILE *fp;//以下函数主要功能:方便窗口与用户之间交换信息int regst();void password(char *a,int b,int j);//登陆时的输入函数void examine(int *a,int b); //保证键入的数据是数字void changepaw(int a,int b); //修改密码用到的提示函数void inputs0(); //输出图书类别以供用户选择void inputs1(int a,int b,int c,int d,int e); //方便用户输入图书各项信息(如书名,编号)void inputs2(int a,int b,int c); //方便用户输入管理员的信息(如账号姓名)void inputs3(int a,int b,int c);//方便用户输入读者的信息(如账号姓名)void eros(int i); //错误显示函数,操作一旦出错,则会出现相应的错误信息void conects(int j); //连接函数,选择界面//一下函数主要用于改变文件的内容并保存int setup(); //数据初始化函数int xzc(char no[12],char key1[10],char key2[10],char name[10]);//读者注册函数int exam(char no[10],char key[10],int n);//密码账号检验函数int mp(char no[12],char key1[10],char key2[10],char key3[10],int n); //密码修改函数void paixu(); //对图书按照编号从小到大的顺序进行排列int sc(int bh); //管理员删除图书信息函数int zj(struct book bb); //管理员增加图书信息函数int xg(struct book bb);//管理员修改图书信息函数int js(int bh,char no[12]); //借书函数int hs(int bh,char no[12]); //还书函数int bh1(int bh); //判断该编号的图书信息是否存在函数void bh2(int bh); //按照图书编号显示图书信息函数int sm1(char name[50]);//判断是否存在该名字的图书信息函数void sm2(char name[50]); //按照图书名字显示图书信息函数int zz1(char writer[20]); //判断是否存在该作者的图书信息函数void zz2(char writer[20]);//按照图书作者显示图书信息函数void lb(char classic[10]); //按类别显示图书信息int rck1(int bh);//判断该编号的图书的借书记录是否存在void rck2(int bh);//按编号显示图书借书情况int gck21(char no[12]);//判断该账号读者的借书记录是否存在void gck22(char no[12]); //按读者显示借书情况2void gck12(); //显示全部借书情况void gck23();//管理员查看所有书的信息void copy(int bh); // 按编图书编号将图书信息暂时保存在另外一个结构体里面void copy2(char no[12]); //按管理员账号将管理员信息暂时保存在另外一个结构体里面void copy3(char no[12]);//按读者账号将读者信息暂时保存在另外一个结构体里面//pic()函数:每个函数表示一个界面,conects函数将它们连接起来void pic0();void pic1();void pic2();void pic3();void pic4();void pic5();void pic6();void pic7();void pic8();void pic9();void pic10();void pic11();void pic12();void pic13();void pic14();void pic15();void pic16();void pic17();void pic18();void pic19();void pic20();void pic21();void pic22();void pic23();void pic24();void pic25();void pic26();void pic27();void pic29();void pic30();void pic31();void pic32();void pic33();void pic34();void pic35();void pic36();void pic37();void pic38();void pic39();void pic40();void pic41();void pic42();void pic43();void pic44();void pic45();void pic46();void pic47();void picc();3.用户输入以及界面反馈用到的功能函数源代码为int regst(){char num[12],paw1[10],paw2[10],name[10];int i;printf(”请输入账号\n(11字符以内,不能含有中文字符):\n”);password(num,0,11);printf(”输入您的密码\n(9字符以内,不能含有中文字符):\n");password(paw1,1,9);printf("请再次输入密码:\n”);password(paw2,1,9);printf("输入您的姓名:\n");gets(name);system("cls”);i=xzc(num,paw1,paw2,name);return i;}void password(char *a,int b,int j){ char c;int i=0;while((c=getch())!=’\r’){if(c==8){ printf(”\b \b”);if(i〉0)i-—;}else if(i<j){if(b)printf("*”);else printf("%c",c);a[i]=c;i++;}if(i==j){ printf("\a");}}a[i]='\0';printf("\n");}void examine(int *a,int b){ while(!scanf(”%d",a)){ while(getchar()!='\n’);printf("请输入数字!!\n");}rewind(stdin);if(b) system("cls”);}void changepaw(int a,int b){ int i;char c1[10],c2[10],c3[10];printf("请输入原密码\n”);password(c1,1,9);printf("请输入新密码\n");password(c2,1,9);printf(”请再次输入新密码\n”);password(c3,1,9);system("cls”);if(b){i=mp(aa。
c语言图书管理系统

int86(0x16, &rg,&rg);
return rg。h。ah;
}
int choose(int bot,int top)/*根据Y的值选择操作*/
{
int ky,y = 7;
gotoxy(30,bot);
do
{
ky = key();
switch(ky)
{
case Key_UP:
gotoxy(x + 1, y + high - 3);
for (i = 1; i < width - 1; i++)
{
putchar(0xc4);
}
gotoxy(x + width—1,y + high —1);
putchar(0xd9);
}
int key()/*读键盘*/
{
union REGS rg;
int halfw(int sum,bbasic binfo[100],char *find);
void sta();
void blist();
void bmoney();
int main(void)
{
menu();
}
void menu()
{
int y;
_window();/*显示窗口*/
words();/*显示菜单文字*/
gotoxy(30,16);
cprintf(”Book Statistic");
gotoxy(30,19);
cprintf(”Exit”);
gotoxy(35,22);
textcolor(LIGHTGRAY);
C语言程序设计大作业--图书管理系统

C语言程序设计大作业设计报告一.设计方案本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。
二.模块说明及代码分析1.主函数:源代码:void main(){int a;printf("\n");printf("\n");printf(" ( ^_^ ) WELCOME!\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t〉〉-------------BJTU图书管理系统--------------〈〈");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");do {printf("1.借书 2.还书 3.新书录入4.查询 0.退出");printf("\n");printf("\n");printf("\n");printf("\n");printf("请选择序号:");scanf("%d",&a);switch(a){case 1:jieshu();break;case 2:huanshu();break;case 3:xinshu();break;case 4:chaxun();break;case 0:break;default:printf("请选择正确的序号!\n");printf("\n");}}while(a!=0);printf("谢谢使用图书管理系统!\n");}主函数提供人机交互界面,让操作者选择所需的操作项目,并有退出选项。
C语言图书信息管理系统

#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h"void enter(); /*声明输入函数*/void look(); /*声明查看函数*/void search_name(); /*声明按姓名查看函数*/int openl(); /*声明打开函数*/void save(); /*声明保存函数*/void del(); /*声明删除函数*/void see(); /*打开并查看文件函数*/void add(); /*追加图书信息*/void TSXX_out();void TSXX_back();struct tsxx /*定义学生信息的结构体类型*/{char tsn[15]; /*图书名*/char bh[15]; /*编号*/int pri; /*价格*/char zzn[10]; /*作者名*/int kc; /*库存*/int total; /*总量*/}ts[100];int n; /*声明一个全局变量*/int main() /*主函数即用户的操作界面*/{int b,flag=0; /*声明局部变量*/while(1) /*循环输出以下信息*/{printf("\n\t\t\t欢迎使用图书馆管理系统\n");printf("\n\t\t\t\t秦盛伟阮腾飞制作\n");printf("\t\t\t -------------------------------\n");printf("\t\t\t 1.图书信息输入\n\n"); /*键入学生的信息*/printf("\t\t\t 2.查看录入的图书信息\n\n"); /*查看录入的学生信息*/printf("\t\t\t 3.按书名查看图书的信息\n\n"); /*按姓名查看学生的信息*/printf("\t\t\t 4.删除图书信息\n\n"); /*删除学生信息*/printf("\t\t\t 5.添加图书信息\n\n");printf("\t\t\t 6.保存学生信息\n\n"); /*保存*/printf("\t\t\t 7.打开文件\n\n"); /*打开文件*/printf("\t\t\t 8.借出图书\n\n");printf("\t\t\t 9.归还图书\n\n");/*键入学生的信息*/printf("\t\t\t 0.退出\n\n"); /*退出*/printf("\t\t\t请输入你的选择:");scanf("%d",&b);switch(b){case 1:enter();break; /*调用键入学生信息函数*/case 2:look();break; /*调用查看函数*/case 3:search_name();break; /*调用姓名查看函数*/case 4:del();break;/*调用删除函数*/case 5:add();break;case 6:save();break;/*调用保存函数*/case 7:see();break;/*调用打开文件函数*/case 8:TSXX_out();break;case 9:TSXX_back();break;case 0:flag=1;break;/*退出SWITCH语句*/default :printf("错误!");}if(flag) break; /*如果选择0就退出循环*/}}void save() /*建立保存文件函数*/{system("CLS");FILE *fp; /*定义文件型指针*/int i;if((fp=fopen("ts.txt","wb"))==NULL) /*打开输出文件*/{printf("不能打开文件!\n");return; /*终止程序*/ }for(i=0;i<n;i++) /*向student文件中写入信息*/if(fwrite(&ts[i],sizeof(struct tsxx),1,fp)!=1)printf("文件写入错误\n");fclose(fp); /*关闭文件*/printf("\n\n\n\n\t\t\t图书信息保存成功!\n");printf("\n\n\n\n\t\t\t按任意键返回菜单!!");getch();}void enter() /*定义键入图书信息函数*/{system("CLS");int i; /*定义局部变量*/printf("\t\t输入需录入图书信息的个数:");scanf("%d",&n);for(i=0;i<n;i++) /*输入每个学生的信息*/{printf("\n\t\t\t----------------\n");printf("\t\t\t图书名称:");scanf("%s",ts[i].tsn); /*输入图书名*/printf("\t\t\t编号:");scanf("%s",ts[i].bh); /*输入编号*/printf("\t\t\t单价:");scanf("%d",&ts[i].pri); /*输入价格*/printf("\t\t\t作者:");scanf("%s",ts[i].zzn); /*输入作者名*/printf("\t\t\t总数:");scanf("%d",&ts[i].total);ts[i].kc=ts[i].total;}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}void look() /*定义查看函数*/{system("CLS");int i;//n=openl(); /*调用openl函数*/printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++) /*输出所有的学生信息*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}void search_name() /*按书名查看函数*/{system("CLS");int i;char name[20]; /*声明字符数组*/printf("\t\t\t请输入书名:\n");scanf("%s",name);printf("\t书名\t编号\t单价\t作者\t库存n");for(i=0;i<n;i++)if(strcmp(ts[i].tsn,name)==0) /*将输入的姓名与结构体中的姓名进行比较*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);printf("\n\n\n\t\t\t按任意键返回菜单");}getch();}void del() /*定义删除图书信息函数*/{int i;char a;char name[20];system("CLS");printf("\t\t\t输入图书名字:\n");scanf("%s",name);system("CLS");printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++)if(strcmp(ts[i].tsn,name)==0){printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);getch();printf("真的删除?(y or n)");getchar();scanf("%c",&a);if(a=='y') /*是否删除该信息*/{for(;i<n;i++)ts[i]=ts[i+1];n=n-1;printf("你已经删除信息");}elseprintf("退出");getch();}save();}int openl() /*定义打开文件函数*/{system("CLS");int i;FILE *fp;if((fp=fopen("ts.txt","rb"))==NULL){printf("Cannot open file.\n");exit(0);}for(i=0;!feof(fp);i++)fread(&ts[i],sizeof(struct tsxx),1,fp);fclose(fp);return(i-1);}void see() /*打开并查看文件*/{system("CLS");int i;n=openl();printf("文件打开成功!\n");printf("按任意键查看!\n");getch();printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++) /*输出所有的学生信息*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}void add() /*定义键入学生信息函数*/{system("CLS");int i=1;while(i){printf("\n\t\t\t----------------\n");printf("\t\t\t书名:");scanf("%s",ts[n].tsn); /*输入学号*/printf("\t\t\t编号:");scanf("%s",ts[n].bh); /*输入姓名*/printf("\t\t\t单价:");scanf("%d",&ts[n].pri); /*输入性别*/printf("\t\t\t作者:");scanf("%s",ts[n].zzn); /*输入英语成绩*/printf("\t\t\t库存:");scanf("%d",&ts[n].kc); /*输入语文成绩*/n++;printf("是否继续添加?\n如果继续请键入1,否则键入0?\n");scanf("%d",&i);}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}void TSXX_out(){int i,d;char name[15];char s[10];char num[30];n=openl();printf("请输入需要借阅的图书名称:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(ts[i].tsn,s)==0&&ts[i].kc>0){printf("姓名:");scanf("%s",name);printf("学号:");scanf("%s",num) ;printf("借阅天数:");scanf("%d",&d);ts[i].kc--;}else if(strcmp(ts[i].tsn,name)==0&&ts[n].kc==0)printf("此书已经全部借出.\n"); else printf("对不起,此书不存在.\n");}printf("\n\n\n\t\t\t按任意键返回菜单");getch();save_student();}save_student(){system("CLS");FILE *fp1; /*定义文件型指针*/int i;if((fp1=fopen("student.txt","wb"))==NULL) /*打开输出文件*/{printf("不能打开文件!\n");return; /*终止程序*/}for(i=0;i<n;i++) /*向student文件中写入信息*/if(fwrite(&ts[i],sizeof(struct tsxx),1,fp1)!=1)printf("文件写入错误\n");fclose(fp1); /*关闭文件*/printf("\n\n\n\n\t\t\t学生借阅图书信息保存成功!\n");printf("\n\n\n\n\t\t\t按任意键返回菜单!!");getch();}void TSXX_back(){int i;char d[15];n=openl();printf("请输入归还图书的编号");scanf("%s",d);for(i=0;i<n;i++){if(strcmp(ts[i].bh,d)==0){ts[i].kc++;}else printf("您输入的编号有误,请重新执行此程序或寻则其他操作.\n");}if(n!=-1&&ts[n].kc==ts[n].total)printf("全部入藏.\n");printf("\n\n\n\t\t\t按任意键返回菜单");getch();save();}。
c语言课程设计图书馆管理系统

c语言课程设计图书馆管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程基础,能够运用C语言设计简单的图书馆管理系统。
具体分为三个维度:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。
2.技能目标:学生能够运用C语言进行程序设计,具备编写、调试和运行C语言程序的能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础,以及图书馆管理系统的项目实践。
具体安排如下:1.第一章:C语言概述,介绍C语言的历史、特点和基本语法。
2.第二章:数据类型和运算符,学习基本数据类型、字符串、运算符及其优先级。
3.第三章:控制结构,学习条件语句、循环语句和跳转语句。
4.第四章:函数,学习函数的定义、声明和调用,以及常用标准库函数。
5.第五章:数组和字符串,学习一维数组、多维数组、字符串的基本操作。
6.第六章:指针,学习指针的概念、运算和应用。
7.第七章:结构体和文件,学习结构体的定义和应用,以及文件的读写操作。
8.第八章:图书馆管理系统项目实践,运用所学知识设计并实现一个简单的图书馆管理系统。
三、教学方法本课程采用多种教学方法相结合的方式,包括:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。
2.案例分析法:通过分析典型的图书馆管理场景,引导学生运用C语言进行程序设计。
3.实验法:让学生动手编写、调试和运行C语言程序,提高学生的实践能力。
4.小组讨论法:分组进行项目实践,培养学生的团队合作意识和问题解决能力。
四、教学资源1.教材:《C程序设计语言》(K&R)或《C语言 Primer》(第五版)。
2.参考书:《C语言编程思想》、《C语言深度探索》。
3.多媒体资料:课件、教学视频、在线教程。
图书馆管理系统(C语言程序设计)

图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用0表示或借出用读者编号表示),读者数据由编号、姓名和电话号码构成。
实现功能包括:(1)添加图书的记录(2)图书管理(借书和还书)(3)对图书数据排序(按单价的降序)(4)删除图书记录(5)修改图书记录(6)添加读者记录(7)输出图书信息表和读者信息表*#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>/*函数的声明*/void bookname();void writername();void booknumber();void press();void bookdate();void Bfind(); //查询主菜单void Bdevise(); //修改函数void Badd(); //添加函数void Bdelete(); //删除函数void Bdisplay(); //显示所以已保存的图书信息函数void Bclean(); //清除所有图书信息函数void lendbook(); // 借书函数void returnbook(); //还书函数void lendorreturnbook();//借书或还书主菜单函数void appealkey();//用户密码申诉函数void devisepeoplekey();//修改用户密码函数void accountapply(); //用户申请账户函数void addpeopleaccount(); //管理员之添加用户帐号函数void addmanageaccount(); //管理员之添加管理员账号函数void addaccount(); //管理员之账户添加主菜单函数void devisepeopleaccount();//管理员之修改用户账号函数void devisemanageaccount();//管理员之修改管理员帐号函数void deviseaccount();//管理员之修改账号主菜单函数void deletepeopleaccount();//管理员之删除用户账号函数void deletemanageaccount();//管理员之删除管理员账号函数void deleteaccount();//管理员之删除账号主菜单函数void displayallpeopleaccounts();//显示所有用户信息函数void displayallmanageaccounts();//显示所有管理员信息函数void displayallaccountsmessage();//显示所有账号信息主菜单函数void highaddpeopleaccount(); //高级管理员添加用户账户函数void highaddmanageaccount(); //高级管理员添加管理员账户函数void highaddaccount(); //高级管理员之添加账户主菜单函数void booksmanage();//图书操作主菜单函数void accountsmanage();//管理员账号操作主菜单函数void highaccountsmanage();//高级管理员账号操作主菜单函数void menu1(); //用户之查询主菜单void menu2(); //管理员之查询主菜单void menu3(); //高级管理员之查询主菜单/*定义书的类型*/struct book{int bookstock; //库存量char bookname[20]; //书名char bookwriter[20]; //作者char booknumber[20]; //书号char press[20]; //出版社char bookdate[20]; //出版日期char price[20]; //出版价格int turefalse; //判断图书是否被借阅}books[20];/*定义用户类型*/struct peopleaccount{char pname[20];char pkey[20];}peopleaccounts[20];/*定义管理员类型*/struct manageaccount{char mname[20];char mkey[20];}manageaccounts[20];/*定义借书卡类型*/struct card{char cardnumber[20]; //借书卡号和用户信息一起写入yonghu.txt文件中的}cards[20];/*定义文件指针变量*/FILE *fp1; //fp1打开用户信息文件FILE *fp2; //fp2打开管理员信息文件FILE *fp3; //fp3打开图书信息文件FILE *fp4; //打开借还书记录的文件FILE *fpa; //fpa是临时文件指针/*改变输出的字体颜色*/void color(const unsigned short color1){if(color1>=0&&color1<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);/*仅限改变0-15的颜色;如果在0-15那么实现他的颜色因为如果超过15后面的改变的是文本背景色。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图书管理系统目录一、问题描述这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:(1)图书信息创建功能。
其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能二、概要设计1 数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
struct book{int num;//编号char name[20];//书名char author[20];//作者char publisher[20];//出版社int price;//价格int store;//库存};//图书信息结构体2 模块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看图书和图书排序几个基本功能。
void setup(struct book bo[]);//新建图书void search(struct book bo[]);//查找图书void modify(struct book bo[]);//查看图书void del(struct book bo);//删除图书void allbook(struct book bo[]);显示所有图书3 程序流程图否开始菜单新建图书修改信息查询图书删除图书所有图书退出是结束三、详细设计1 主函数int main()//主{struct book bo[100];char c;while(1){system("color 1A");printf("\n");printf("\n\t\t\t >>>欢迎进入图书管理系统<<<\n\n");printf("===================================== ===========================================\ n\n");printf("\t\t\t\t 1 录入新书\n\t\t\t\t 2 查询图书\n");printf("\t\t\t\t 3 修改信息\n\t\t\t\t 4 删除图书\n");printf("\t\t\t\t 5 所有图书\n");printf("\t\t\t\t 0 退出系统\n\n");printf("===================================== ===========================================\ n");printf("请选择:");c=getchar();switch(c){case'1':{setup(bo); getchar();break;}case'2':{search(bo);getchar();break;}case'3':{modify(bo);getchar();break;}case'4':{del(bo);getchar();break;}case'5':{allbook(bo);getchar;break;}case'0':{printf("\n感谢使用本系统");return 0;break;}default:{printf("\n输入有误,请重新输入:" );c=getchar();} }}}2 新建图书void setup(struct book bo[])打开文件或者新建一个文件,键盘输入新建的图书信息,然后把数据全部保存在数组bo数组中,最后存入文件。
void setup(struct book bo[]){system("cls");FILE *fp;int i,a=1,count=0;if((fp=fopen("book","ab"))==NULL){printf("无法打开文件!\n");return;}printf("\n\n\n\t\t\t============录入新书===========\n\n\n");while(a!=2){printf("\t\t\t\t 输入编号:");scanf("%d",&bo[count].num);printf("\t\t\t\t 输入书名:");scanf("%s",&bo[count].name);printf("\t\t\t\t 输入作者:");scanf("%s",&bo[count].author);printf("\t\t\t\t 输入出版社:");scanf("%s",&bo[count].publisher);printf("\t\t\t\t 输入价格:");scanf("%d",&bo[count].price);printf("\t\t\t\t 输入在馆量:");scanf("%d",&bo[count].store);count++;printf("请选择:\n1继续录入图书信息\n2返回主菜单\n");scanf("%d",&a);}for(i=0;i<count;i++){if(fwrite(&bo[i],sizeof(struct book),1,fp)!=1){printf("打开文件错误");return;}}fclose(fp);system("cls");}3 查找图书void search(struct book bo[])通过从键盘输入书名就可以显示图书信息。
void search(struct book bo[]){system("cls");FILE*fp;int a=1,i,m=0;char name1[20];//书名查询if((fp=fopen("book","rb"))==NULL){printf("无法打开文件!\n");return;}while(!feof(fp)){if(fread(&bo[m],sizeof(struct book),1,fp)==1)//统计书的数量m++;}while(a!=2){printf("请输入书名:");scanf("%s",&name1);for(i=0;i<m;i++){if(strcmp(name1,bo[i].name)==0)//字符比较{printf("\n\t\t\t ----该书的信息为----\n\n");printf("\t\t\t\t 编号:%d\n\n",bo[i].num);//输出图书信息printf("\t\t\t\t 书名:%s\n\n",bo[i].name);printf("\t\t\t\t 作者:%s\n\n",bo[i].author);printf("\t\t\t\t 出版社:%s\n\n",bo[i].publisher);printf("\t\t\t\t 价格:%d\n\n",bo[i].price);printf("\t\t\t\t 馆存:%d\n\n",bo[i].store);if(bo[i].store==0)printf("\t\t\t\t 对不起,该书不可借");elseprintf("\t\t\t\t 该书可借");}}printf("\n1继续查询\n2返回主菜单\n");printf("请选择:");scanf("%d",&a);}printf("\n\n\n");fclose(fp);system("cls");return;}4 修改信息函数void modify(struct book bo[])从键盘输入“书名”,在数组bo 数组中查找,如果找到,选择需要修改的项目,输入完毕回车自动替原来的数据,如果未找到则显示“未有找到该图书”。
void modify(struct book bo[]){system("cls");char name0[20],author0[20],publisher0[20];int num0,store0,price0;char name2[20];int i,m=0,k,a;FILE*fp;if((fp=fopen("book","rb"))==NULL){printf("无法打开文件");return;}while(!feof(fp)){if(fread(&bo[m],sizeof(struct book),1,fp)==1)//统计书的数量m++;}fclose(fp);if((fp=fopen("book","wb"))==NULL){printf("无法打开文件");return;}printf("请输入需要修改的书名:");scanf("%s",name2);for(i=0;i<m;i++){if(strcmp(bo[i].name,name2)==0){printf("查找成功");a=i;break;}}if(m==0){printf("没有你要查的书");}printf("\n\t\t\t ----该书修改前的信息为----\n\n"); printf("\t\t\t\t 编号:%d\n\n",bo[a].num);printf("\t\t\t\t 书名:%s\n\n",bo[a].name);printf("\t\t\t\t 作者:%s\n\n",bo[a].author);printf("\t\t\t\t 出版社:%s\n\n",bo[a].publisher); printf("\t\t\t\t 价格:%d\n\n",bo[a].price);printf("\t\t\t\t 在馆状态:%d\n\n",bo[a].store); printf("\t\t\t\t 请选择需要修改的项目\n\n"); printf("\t\t\t --------------------------\n");printf("\t\t\t\t 1 更改编号\n");printf("\t\t\t\t 2 更改书名\n");printf("\t\t\t\t 3 更改作者\n");printf("\t\t\t\t 4 更改出版社\n");printf("\t\t\t\t 5 更改价格\n");printf("\t\t\t\t 6 更改在馆状态\n");printf("\t\t\t\t 0 返回\n");printf("\t\t\t ---------------------------\n");printf("请做出选择:");scanf("%d",&k);switch(k){case 1:{printf("请输入编号");scanf("%d",&num0);bo[a].num=num0;break;}case 2:{printf("请输入书名");scanf("%s",name0);strcpy(bo[a].name,name0);break;}case 3:{printf("请输入作者");scanf("%s",author0);strcpy(bo[a].author,author0);break;}case 4:{printf("请输入出版社");scanf("%s",publisher0);strcpy(bo[a].publisher,publisher0);break;}case 5:{printf("请输入价格");scanf("%d",&price0);bo[a].price=price0;break;}case 6:{printf("请输入在馆状态");scanf("%d",&store0);bo[a].store=store0;break;}case 0:{printf("谢谢使用");return;}default:{printf("输入错误,请重新输入:");scanf("%d",&k);} }for(i=0;i<m;i++){if(fwrite(&bo[i],sizeof(struct book),1,fp)!=1){printf("打开文件错误\n");return;}}printf("\n修改成功");fclose(fp);system("cls");return;}5 显示所有图书void allbook(struct book bo[])显示所有已保存的图书信息void allbook(struct book bo[]){system("cls");int i,m=0;FILE*fp;if((fp=fopen("book","rb"))==NULL){printf("无法打开文件!\n");return;}while(!feof(fp)){if(fread(&bo[m],sizeof(struct book),1,fp)==1)//统计书的数量m++;}printf("\n\n\t\t\t ****当前所有图书的信息****\n\n");printf(" 序号\t 书名作者\t 出版社\t价格\t在馆状态");for(i=0;i<m;i++){printf("\n%5d%10s%10s%12s%15d%10d",bo[i].num,bo[i].name,bo[i].author,bo[i].publisher,bo[i].price,bo[i].store);}printf("\n\n");fclose(fp);getchar();return;}6删除图书void del(struct book bo[])从键盘输入的一条记录的“书名”,在数组bo中查找,如果找到则从bo数组中删除该记录,否则显示“找到该图书”。