C语言大作业(图书管理)

合集下载

C大作业图书管理系统实验报告

C大作业图书管理系统实验报告

附件1:学号:00126《面向对象程序设计》大作业题目学生成绩管理系统学院文法学院专业教育学班级教育学1201姓名杨欣指导教师鄢红国2013 年12 月20 日目录一设计目的 (1)二大作业的内容 (2)三大作业的要求与数据 (3)四大作业应完成的工作 (4)五总体设计(包含几大功能模块) (5)六详细设计(各功能模块的具体实现算法——流程图) (6)七调试分析(包含各模块的测试用例,及测试结果) (7)八总结 (8)十参考资料 (9)一大作业的目的《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。

二大作业的内容对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数等)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.将图书的信息进行记录,信息内容包含:(1)图书的编号(2)图书的书名(3)图书的库存量。

假设,现收集到了一个图书馆的所有图书信息,要求用C语言编写一个简单的图书管理系统,可进行录入、查询、修改和浏览等功能。

学习相关开发工具和应用软件,熟悉系统建设过程。

三大作业的要求与数据1、用C语言实现系统;2、对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.3、图书信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1) 每一条记录包括一本图书的编号、书名、库存量(2) 图书信息录入功能:(图书信息用文件保存,可以一次完成若干条记录的输入。

)(3) 图书信息显示浏览功能:完成全部图书记录的显示。

(4) 查询功能:完成按书名查找图书记录,并显示。

C大作业图书馆管理系统

C大作业图书馆管理系统

C大作业图书馆管理系统《图书馆管理系统》大作业说明书学生姓名董勋凯学号 2412332 所属学院电信工程学院专业电气工程及其自动化班级电气123班组长董勋凯电信工程学院制目录摘要............................................. 错误!未定义书签。

1. 图书管理系统概述.............................. 错误!未定义书签。

1.1图书管理系统总体设计思想概述.................. 错误!未定义书签。

1.2总体设计流程图 ............................... 错误!未定义书签。

2. 图书管理系统详细设计.......................... 错误!未定义书签。

2.1C++中应用程序编程............................. 错误!未定义书签。

2.1.1结构体,存放书籍及借书信息.................. 错误!未定义书签。

2.1.2页头函数,能够经过参数menu_item,显示当前状态 .. 错误!未定义书签。

2.1.1主要功能函数源代码.......................... 错误!未定义书签。

2.2算法调试、测试过程中出现的问题及解决方案...... 错误!未定义书签。

2.2.1本系统调试过程中遇到问题:.................. 错误!未定义书签。

2.2.2本系统调试过程中遇到问题的原因:............ 错误!未定义书签。

2.2.3本系统调试过程中遇到问题的解决办法及步骤:.. 错误!未定义书签。

课程设计总结和体会............................... 错误!未定义书签。

主要参考资料..................................... 错误!未定义书签。

摘要随着计算机技术的不断应用和提高,计算机已经深入到社会生活的各个角落。

C语言实训图书管理链表结构

C语言实训图书管理链表结构

目录1、问题定义 (3)2、系统设计 (3)2.1 总体设计 (3)2.2 详细设计 (4)2.2.1数据结构设计 (4)2.2.2 主控main()函数执行流程 (5)2.2.3输入记录模块 (5)2.2.4输出记录模块 (5)2.2.5添加记录模块 (5)2.2.6删除记录模块 (6)2.2.7查询记录模块 (6)2.2.8函数功能描述 (6)3、系统实现 (7)3.1 编码 (7)3.1.1 程序预处理 (7)3.1.2 主函数main() (7)3.1.3 主菜单界面 (10)3.1.4 显示图书信息 (11)3.1.5增加图书信息 (11)3.1.6删除图书信息 (12)3.1.7查询图书信息 (14)3.2 测试与调试 (15)3.2.1 概述 (15)3.2.2 程序测试 (16)4、系统维护 (20)5、归纳总结 (20)5.1 开发经验 (20)5.2 实训中遇到的问题及解决方法 (20)5.3 设计中尚存的不足之处 (21)5.4 感想和心得体会 (21)图书管理02本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。

本程序中涉及结构体、单链表等方面的知识。

通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对图书管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。

1、问题定义创建一个图书信息管理系统。

假设系统中每本图书信息只包括编号、书名、作者名字、单价、出版社名字。

程序的运行效果如下图所示,选择菜单实现相应功能。

2、系统设计2.1 总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。

需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。

可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。

图书馆管理系统c语言

图书馆管理系统c语言
if(t0!=1&&t2==1)
/*t0不等于1则表示正常返回,t2=1则表示在此之前有过删除,这时就保存用户已确认的删除并返回*/
{if((i!=0)&&(i%10==0))/*用于分屏显示*/
{printf(“\n\n请记录需要删除的图书编号。任意键继续……”);
getch();
puts(“\n\n”);
}
printf_one(i);/*调用显示一个记录的函数*/
}
do
{printf(“\n\n请输入您需要删除的图书编号 。 NO.:”);
{printf(“\n成功删除,是否继续删除?\n\n\t 1). 是2)返回并保存\t[ ]\b\b);
scanf(“%d”,&t0);
t2=1;/*来控制保存,使w2=1是标记已有过的记录*/
}
eles
{to=0;
if(t2==1)
ts[k]=s;
}
/*到此处由于用户没有确认这次删除。使t0=0,为了终止循环,ts[k]=s;则把备份的s恢复给ts[k],这样使得在此之前删除过的成功保存而本次不删除*/
puts("\t\t\t7. 图书借阅\n");
puts("\t\t\t8. 图书归还\n");
puts("\t\t\t9. 退出系统\n");
puts("\t\t\t\n\n\n*****************************\n\n");
/*对功能选项的显示*/
printf("选择使用功能种类(1--9)[ ]\b\b");
scanf(“%f”,&t.bh );/*输入需要删除的图书编号*/

C语言程序设计大作业--图书管理系统

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++大作业 图书管理系统 实验报告

C++大作业  图书管理系统 实验报告

附件1:学号:0121213640126《面向对象程序设计》大作业题目学生成绩管理系统学院文法学院专业教育学班级教育学1201姓名杨欣指导教师鄢红国2013 年12 月20 日目录一设计目的 (1)二大作业的内容 (2)三大作业的要求与数据 (3)四大作业应完成的工作 (4)五总体设计(包含几大功能模块) (5)六详细设计(各功能模块的具体实现算法——流程图) (6)七调试分析(包含各模块的测试用例,及测试结果) (7)八总结 (8)十参考资料 (9)一大作业的目的《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。

二大作业的内容对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数等)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.将图书的信息进行记录,信息内容包含:(1)图书的编号(2)图书的书名(3)图书的库存量。

假设,现收集到了一个图书馆的所有图书信息,要求用C语言编写一个简单的图书管理系统,可进行录入、查询、修改和浏览等功能。

学习相关开发工具和应用软件,熟悉系统建设过程。

三大作业的要求与数据1、用C语言实现系统;2、对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.3、图书信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1) 每一条记录包括一本图书的编号、书名、库存量(2) 图书信息录入功能:(图书信息用文件保存,可以一次完成若干条记录的输入。

)(3) 图书信息显示浏览功能:完成全部图书记录的显示。

(4) 查询功能:完成按书名查找图书记录,并显示。

c++大作业_图书管理系统

c++大作业_图书管理系统

cout<<"--| 请选择操作:"<<endl ;
cout<<"--| 1:查看所有读者 |-----------"<<endl;
cout<<"--| 2:添加读者 |-----------"<<endl;
cout<<"--| 3:删除读者 |------------"<<endl;
cout<<"--| 4:查找读者 |------------"<<endl;
cout<<"--| 5:查找图书 |-------------"<<endl ;
cout<<"--| 6:退出
|-------------"<<endl ;
cout<<"\n \n" ;
cout<<"输入相关序号选择>:"<<endl;
}
void print_reader()//读者登录界面
{
cout<<"---------欢迎使用:---------------"<<endl ;
从功能角度来看,应当实现的功能包括: (1)借还功能
对经过身份认证的合法用户进行的主要服务 (2)查询功能
对合法用户给予的查询书籍、个人借阅状况,及对管理人员提供的方便维护的服务 (3)维护功能
对图书、读者等添加,编辑,修改,删除等操作 (4)存储功能
将读者、图书信息存储于文件中,方便下次使用

C语言大作业之图书管理系统的实现详程

C语言大作业之图书管理系统的实现详程

C语⾔⼤作业之图书管理系统的实现详程⽬录主要内容概要设计项⽬源码结构体登录界⾯函数选择界⾯函数操作界⾯函数添加函数查找函数删除函数借书管理函数信息储存函数还书函数修改函数添加借书函数查找借书函数借书管理函数主函数总结序时间在流去,我们在长⼤。

嗨,这⾥是狐狸~~今天是2022年的⼀⽉四⽇了,元旦⼩长假也过去了,新年新⽓象,新年新⽬标,我们要向前看,不要执意过去了,感谢过去,把握现在,展望未来,这是我们现在应该做的。

好了,废话不多说,今天我们分享⼀个系统,确实也有许久没有分享过系统了,今天就给⼤家详细讲⼀下这个图书管理系统吧。

主要内容开发⼀个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据⾃⼰情况进⾏扩充,⽐如是否借出、库存量等)。

使之能提供以下基本功能:(1)图书信息录⼊功能(图书信息⽤⽂件保存)--输⼊(2)图书信息浏览功能--输出(3)查询功能(⾄少⼀种查询⽅式)、排序功能(⾄少⼀种排序⽅式):(4)图书信息的删除与修改扩展功能:可以按照⾃⼰的程度进⾏扩展。

⽐如(1)简单的权限处理(2)报表打印功能(3)甚⾄根据⾃⼰情况,可以加上学⽣信息,并扩充为图书借阅系统。

(4)模糊查询(5)综合查询(6)统计功能⽐如统计处某⼀类别的图书信息或筛选出⼩于指定数量库存的图书信息等等。

概要设计1 图书录⼊可以录⼊图书名,作者,出版社,出版⽇期,价格!录⼊图书编号时函数就会判断此编号是否存在,若存在不能成功录⼊!2 图书浏览可以浏览全部图书!3 图书查询提供按图书编号模糊查询,按图书名关键字查询,按图书编号精确查询,按图书名精确查询!模糊查询和关键字查询事通过⽐价字符串的相似度⽽实现的!4 修改删除图书可以通过图书查询来查询操作的图书编号,通过编号操作!函数会提⽰⽤户是否调⽤图书查询来找到⾃⼰想要操作的图书的编号。

如果某⼀本图书已经被借阅那么⽤户就不能删除该图书!5 借阅图书通过学号和图书编号进⾏借阅!如果该学号是第⼀次借阅那么会提⽰⽤户输⼊⾃⼰的姓名,并存⼊student.txt,⽅便以后借阅与归还!6 归还图书先提供学号,然后程序会输出该学号借阅的所有图书,然后再通过编号归还!7 借阅查询可查询某个学⽣已借但未归还的图书!项⽬源码先建⽴结构体,定义结构体成员123456789101112131415161718192021222324252627282930typedef struct book/*图书结构体*/{char num[10]; /*书号*/char name[10]; /*书名*/char auth[10]; /*作者*/int count;int sum;}Book;typedef struct borrow/*借书结构体*/{char id[20];char user[20];char book[20];char bookid[20];struct borrow *next;}BBnode,*BBlink;struct user{char num[10];/* 学号 */char pass[15];char name[15];char sex[10];};typedef struct unode{struct user data;struct unode *next;}Unode,*Ulink;Unode *os;登录界⾯函数123456789101112131415161718int login(Ulink l){ /*****************登陆窗⼝初始化****************************/while(!flag){char User_id[10],password[10],tmp;int i=0;User_id[0]='\0';23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80textcolor(YELLOW);cputs("ESC = EXIT");textcolor(WHITE);textbackground(179);box(1,1,80,24);h_line(2,3,78);gotoxy(15,2);cputs("Login now please input the User__ID and Password");bar_(30,10,23,5,5);/******************账号过滤*********************/while(User_id[0]=='\0'){gotoxy(31,11);textcolor(YELLOW);textbackground(5);cputs("User__ID:");gotoxy(31,13);cputs("Password:");textbackground(179);textcolor(WHITE);gotoxy(28,7);cputs("please input the User__ID!");textbackground(179);textcolor(YELLOW);gotoxy(27,11);putch(272);gotoxy(27,13);putch(' ');gotoxy(40,11);tmp=getch();if(tmp==27){flg=27;return0;}while(tmp!='\r'&&i<=9&&(tmp>=64&&tmp<=90)||(tmp>=97&&tmp<=122||(tmp>=48&&tmp<=57))) {textcolor(YELLOW);textbackground(5);putch(tmp);User_id[i]=tmp;i++;tmp=getch();if(tmp==27){flg=27;return0;}}User_id[i]='\0';}/**********************密码过滤****************************/while(password[0]=='\0'){gotoxy(28,7);textbackground(179);textcolor(WHITE);cputs(" input the password now ");textbackground(179);textcolor(YELLOW);gotoxy(27,13);putch(272);gotoxy(27,11);putch(' ');gotoxy(40,13);i=0;tmp=getch();if(tmp==27){flg=27;return0;858687888990919293949596979899100101102103104105106107108109110111112password[i]=tmp;i++;tmp=getch(); if(tmp==27) {flg=27;return 0;}}password[i]='\0';}/*************把账号和密码进⾏对⽐验证**************/if(!strcmp(User_id,"admin")&&!strcmp(password,"admin")){ return 2; }if(cmps(l,User_id,password)){return 1;}}}选择界⾯函数1234567891011121314151617181920212223void choose(){while(1){ textbackground(179);clrscr();gotoxy(33,2);textcolor(WHITE);cputs("Administrastor");textcolor(YELLOW);box(1,1,80,24);h_line(2,3,78);gotoxy(3,6);cputs(">>>er Management----------------------------<<<");gotoxy(3,10);cputs(">>>-------------------------2.Book Management----------------------------<<<"); gotoxy(3,14);cputs(">>>-------------------------3.Borrow Books-------------------------------<<<");gotoxy(30,22);textcolor(RED);cputs("Please Select");28293031323334353637383940414243444546474849505152if(flg=='3')borrow();if(flg==27){ flg=-1;return;}} }void admin(){while(1){choose(); if(flg=='1') bookss();if(flg=='2')users();if(flg=='3')borrow();if(flg==27){return;}}}操作界⾯函数1234567891011121314151617181920212223242526void user(Ulink h){int flag;BBlink l,p,r;/* 连表 */FILE *fp; /* ⽂件指针 */int count=0;l=(BBnode*)malloc(sizeof(BBnode));l->next=NULL;r=l;fp=fopen(bfile,"rb");if(fp==NULL){ fp=fopen(bfile,"wb");}while(!feof(fp)){ p=(BBnode*)malloc(sizeof(BBnode)); if(fread(p,sizeof(BBnode),1,fp)) /* 将⽂件的内容放⼊接点中 */ {p->next=NULL;r->next=p; r=p; /* 将该接点挂⼊连中 */ count++; }313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778textcolor(YELLOW);box(1,1,80,24);h_line(2,3,78); gotoxy(3,2); textcolor(RED);cputs("A.");textcolor(BLUE);cputs("my message "); textcolor(RED); cputs("B."); textcolor(BLUE);cputs("modyfy my message ");textcolor(RED); cputs("C."); textcolor(BLUE); cputs("my borrow ");textcolor(RED);cputs("D."); textcolor(BLUE); cputs("search book"); textcolor(YELLOW);gotoxy(50,50);flag=getch();switch(flag) { case 'a': show(os);break; /*************添加⽤户**********/ case 'b':Modify_user(h);Save(h); break;/*************删除⽤户**********/ case 'c': Myborrow(); break;case 'd':usersearch();break; case 27: return; } }}添加函数图书的添加,包括⽤户添加以及管理员添加16 7 8 9 1011 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63void add(blink l){Bnode *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;textcolor(RED);gotoxy(25,4);cputs("INPUT THE MESSAGE ABOUT BOOK"); gotoxy(31,10);textcolor(YELLOW);cputs("Book ID:");scanf("%s",num);p=(Bnode *)malloc(sizeof(Bnode));while(s){if(strcmp(s->data.num,num)==0){textcolor(WHITE);gotoxy(25,15);cputs("This ID:");printf("'%s'",num);cputs("is exist!");gotoxy(25,22);cputs("please Press any key to continue..."); gotoxy(255,252);getch();return;}s=s->next;}strcpy(p->data.num,num);gotoxy(31,12);textcolor(YELLOW);cputs("Input Book name:");scanf("%s",p->);gotoxy(31,14);cputs("input your Book auth:");scanf("%s",p->data.auth);gotoxy(31,16);cputs("input your Book count:");scanf("%d",&p->data.count);bookcount=p->data.count+bookcount;p->data.sum=0;p->next=NULL;r->next=p;r=p;gotoxy(30,22);textcolor(RED);cputs("Add Book Success ");getch();textcolor(YELLOW);}/*******管理员添加⽤户*******/void Add(Ulink l){Unode *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;6869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109textcolor(YELLOW);cputs("User ID:");scanf("%s",num);p=(Unode *)malloc(sizeof(Unode)); while(s){if(strcmp(s->data.num,num)==0){ gotoxy(25,15); cputs("This ID:"); printf("'%s'",num);cputs("is exist!");gotoxy(25,22); textcolor(RED); cputs("please Press any key to continue..."); gotoxy(255,252);getch();return;} s=s->next;}strcpy(p->data.num,num);gotoxy(31,12);textcolor(YELLOW);cputs("Input Password:");scanf("%s",p->data.pass);gotoxy(31,14);cputs("input your name:");scanf("%s",p->);gotoxy(31,16);cputs("input the sex:");scanf("%s",p->data.sex);p->next=NULL;r->next=p;r=p;gotoxy(30,22);cputs("Add User Success ");usercount++;getch();textcolor(YELLOW);}查找函数⽤户查找以及管理员查找123456712 13 14 15 16 17 18 19 20 21 22 23 2425 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69/*******管理员查找图书*******/void qur(blink l){int sel;char findmess[20];Bnode *p;if(!l->next){gotoxy(30,4);textcolor(WHITE);cputs("Not Find Bookdata");getch();return;}textcolor(RED);gotoxy(25,4);cputs("Please Select Search Type !"); gotoxy(10,8);textcolor(WHITE);cputs("1.Search by ID");gotoxy(10,10);cputs("2.Search by Name");gotoxy(10,12);cputs("Please Select 1 or 2:");scanf("%d",&sel);if(sel==1){gotoxy(36,8);textcolor(YELLOW);cputs("Input the search ID:");scanf("%s",findmess);p=locate(l,findmess,"num");if(p){gotoxy(36,12);textcolor(WHITE);cputs("Book ID:");printf("%s",p->data.num);gotoxy(36,14);textcolor(WHITE);cputs("Book Name:");printf("%s",p->);gotoxy(36,16);textcolor(WHITE);cputs("Book author:");printf("%s",p->data.auth);gotoxy(36,18);textcolor(WHITE);cputs("Book count:");printf("%d",p->data.count);getch();textcolor(YELLOW);gotoxy(30,21);74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 textcolor(RED);cputs("Not finde ");getch();}}else if(sel==2) /* 姓名 */{gotoxy(36,8);textcolor(YELLOW);cputs("Input the search name:");scanf("%s",findmess);p=locate(l,findmess,"name");if(p){gotoxy(36,12);textcolor(WHITE);cputs("Book ID:");printf("%s",p->data.num);gotoxy(36,14);textcolor(WHITE);cputs("Book Name:");printf("%s",p->);gotoxy(36,16);textcolor(WHITE);cputs("Book author:");printf("%s",p->data.auth);gotoxy(36,18);textcolor(WHITE);cputs("Book count:");printf("%d",p->data.count);getch();textcolor(YELLOW);}else{textcolor(RED);gotoxy(30,22);cputs("Not finde ");}}else{textcolor(RED);gotoxy(30,22);cputs("Error !!");getch();}}/*******⽤户查找图书*******/void usersearch(){int sel;char findmess[20];Bnode *p;blink l;/* 连表 */FILE*fp; /* ⽂件指针 */int count=0;Bnode *P,*r;l=(Bnode*)malloc(sizeof(Bnode));l->next=NULL;r=l;fp=fopen(file,"rb");if(fp==NULL){fp=fopen(file,"wb");}while(!feof(fp)){P=(Bnode*)malloc(sizeof(Bnode));if(fread(P,sizeof(Bnode),1,fp)) /* 将⽂件的内容放⼊接点中 */ {P->next=NULL;bookcount=bookcount+P->data.count;booksum=booksum+P->data.sum;136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 r->next=P;r=P; /* 将该接点挂⼊连中 */count++;}}fclose(fp); /* 关闭⽂件 */if(!l->next){gotoxy(30,4);textcolor(WHITE);cputs("Not Find Bookdata");getch();return;}textcolor(RED);gotoxy(25,4);cputs("Please Select Delete Type !"); gotoxy(10,8);textcolor(WHITE);cputs("1.Search by ID");gotoxy(10,10);cputs("2.Search by Name");gotoxy(10,12);cputs("Please Select 1 or 2:");scanf("%d",&sel);if(sel==1){gotoxy(36,8);textcolor(YELLOW);cputs("Input the search ID:");scanf("%s",findmess);p=locate(l,findmess,"num");if(p){gotoxy(36,12);textcolor(WHITE);cputs("Book ID:");printf("%s",p->data.num);gotoxy(36,14);textcolor(WHITE);cputs("Book Name:");printf("%s",p->);gotoxy(36,16);textcolor(WHITE);cputs("Book author:");printf("%s",p->data.auth);gotoxy(36,18);textcolor(WHITE);cputs("Book count:");printf("%d",p->data.count-p->data.sum); getch();textcolor(YELLOW);}else{gotoxy(30,22);textcolor(RED);cputs("Not finde ");getch();}}else if(sel==2){gotoxy(36,8);textcolor(YELLOW);cputs("Input the search name:");scanf("%s",findmess);p=locate(l,findmess,"name");if(p){gotoxy(36,12);textcolor(WHITE);cputs("Book ID:");printf("%s",p->data.num);198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 gotoxy(36,14);textcolor(WHITE);cputs("Book Name:");printf("%s",p->);gotoxy(36,16);textcolor(WHITE);cputs("Book author:");printf("%s",p->data.auth);gotoxy(36,18);textcolor(WHITE);cputs("Book count:");printf("%d",(p->data.count-p->data.sum)); getch();textcolor(YELLOW);}else{textcolor(RED);gotoxy(30,22);cputs("Not finde ");}}else{textcolor(RED);gotoxy(30,22);cputs("Error !!");getch();}}/*******图书查找*******/int cmpbook(blink l,char id[],char na[]){char findm[20];Bnode *p;if(!l->next){gotoxy(25,4);textcolor(RED);cputs("Not Find Book");getch();return0;}strcpy(findm,id);p=locate(l,findm,"num");if(p){strcpy(findm,na);p=locate(l,findm,"name");if(p){return1;}else{textcolor(RED);gotoxy(30,22);cputs("Book name is NULL ");getch();return0;}}else{gotoxy(30,22);textcolor(RED);cputs("Book id is NULL ");getch();return0;}260261262263264265266267268269270271272273274275276277278279280281282283284285286287}删除函数图书的删除12345678 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25void del(blink l){int sel;Bnode *p,*r;char findmess[20];if(!l->next){gotoxy(25,4);textcolor(RED);cputs("=====>not thing could delete!\n"); getch();return;}textcolor(RED);gotoxy(25,4);puts("Please Select Delete Type !");gotoxy(10,8);textcolor(WHITE);cputs("1.Delete by Book ID");26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 gotoxy(10,10);cputs("2.Delete by Book Name");gotoxy(10,12);cputs("Please Select 1 or 2:");scanf("%d",&sel);if(sel==1){gotoxy(36,8);textcolor(YELLOW);cputs("Input the delete ID:");scanf("%s",findmess);p=locate(l,findmess,"num");if(p){bookcount=bookcount-p->data.count; r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);gotoxy(30,22);textcolor(RED);cputs("Delete success!\n");textcolor(YELLOW);}else{textcolor(RED);gotoxy(30,22);cputs("Error !!");}}else if(sel==2){gotoxy(36,8);textcolor(YELLOW);cputs("Input the delete name:");scanf("%s",findmess);p=locate(l,findmess,"name");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);gotoxy(30,22);textcolor(RED);cputs("Delete success!\n");bookcount--;textcolor(YELLOW);}else{gotoxy(25,18);cputs("Not find!!");}}else{textcolor(RED);gotoxy(30,22);cputs("Error !!");}getch();textcolor(YELLOW);}借书管理函数1234567 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56void borrow(){while(1){int flag;BBlink l,p,r;/* 连表 */FILE*fp; /* ⽂件指针 */int count=0;l=(BBnode*)malloc(sizeof(BBnode));l->next=NULL;r=l;fp=fopen(bfile,"rb");if(fp==NULL){fp=fopen(bfile,"wb");}while(!feof(fp)){p=(BBnode*)malloc(sizeof(BBnode));if(fread(p,sizeof(BBnode),1,fp)) /* 将⽂件的内容放⼊接点中 */ {p->next=NULL;r->next=p;r=p; /* 将该接点挂⼊连中 */count++;}borrowcount=count;}while(1){textbackground(179);clrscr();textcolor(YELLOW);box(1,1,80,24);h_line(2,3,78);gotoxy(3,2);textcolor(RED);cputs("B");textcolor(BLUE);cputs("orrow book ");textcolor(RED);cputs("R");textcolor(BLUE);cputs("eturn book ");textcolor(RED);cputs("S");textcolor(BLUE);cputs("earch borrow ");textcolor(YELLOW);printf("count: (borrow=%d)",borrowcount);textcolor(RED);gotoxy(50,50);flag=getch();switch(flag){case'b':Add_borrow(l);break; /*************添加⽤户**********/case'r':57585960616263646566676869707172Del_borrow(l);Save_borrow(l);break; case 's': Qur_borrow(l); break;case 27:return;}} }}信息储存函数图书信息的储存123456789101112131415161718192021222324252627282930313233343536*******借书信息保存*******/void Save_borrow(BBlink l){FILE* fp;BBnode *p; int flag=1,count=0; fp=fopen(bfile,"wb"); if(fp==NULL) {gotoxy(35,12);textcolor(RED); cputs("open error!"); exit(1); }p=l->next;while(p){ if(fwrite(p,sizeof(BBnode),1,fp)==1) {p=p->next;count++;} else {flag=0;break;}}if(flag){textcolor(RED);gotoxy(30,24); /*** printf("save success.(saved%d.)",count);**调试的时候⽤的*/}fclose(fp);}还书函数123456789101112 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56/* 还书的操作 */void Del_borrow(BBlink l){int sel;BBnode *p,*r;Bnode *L;char findmess[20];FILE*fp; /* ⽂件指针 */Bnode *P,*R,*Q;L=(Bnode*)malloc(sizeof(Bnode));L->next=NULL;R=L;fp=fopen(file,"rb");if(fp==NULL){fp=fopen(file,"wb");}while(!feof(fp)){P=(Bnode*)malloc(sizeof(Bnode));if(fread(P,sizeof(Bnode),1,fp)) /* 将⽂件的内容放⼊接点中 */ {P->next=NULL;R->next=P;R=P; /* 将该接点挂⼊连中 */}}fclose(fp); /* 关闭⽂件 */if(!l->next){gotoxy(30,4);textcolor(RED);cputs("not Book could Return!\n");getch();return;}textcolor(RED);gotoxy(25,4);puts("Please Select Return Type !");gotoxy(10,8);textcolor(WHITE);cputs("1.Return by Borrow ID");gotoxy(10,10);cputs("2.Return by book name");gotoxy(10,12);cputs("Please Select 1 or 2:");scanf("%d",&sel);if(sel==1){gotoxy(36,8);textcolor(YELLOW);cputs("Input the Borrow ID:");57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 scanf("%s",findmess);p=Locate_borrow(l,findmess,"num"); if(p){Q=locate(L,findmess,"num");if(Q){Q->data.sum=Q->data.sum-1; save(L);}r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);gotoxy(30,22);textcolor(RED);cputs("Return success!\n");borrowcount--;getch();textcolor(YELLOW);}else{gotoxy(30,22);textcolor(RED);cputs("Note find !!");getch();}}else if(sel==2){gotoxy(36,8);textcolor(YELLOW);cputs("Input the Book name:");scanf("%s",findmess);p=Locate_borrow(l,findmess,"book"); if(p){Q=locate(L,findmess,"name"); if(Q){Q->data.sum=Q->data.sum-1; save(L);}r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);gotoxy(30,22);textcolor(RED);cputs("Borrow success!\n");borrowcount--;getch();textcolor(YELLOW);}else{gotoxy(30,18);textcolor(RED);cputs("Not find!!");getch();}}else{gotoxy(30,22);textcolor(RED);cputs("Not finde !!");119120121122123124125126127128129130131132getch();}textcolor(YELLOW);}修改函数也分为⽤户和管理员两种情况123456789101112131415161718192021222324252627282930313233343536373839/* ****⽤于管理员修改⽤户资料 ***/void Modify(Ulink l){Unode *p; char findmess[20]; if(!l->next) {gotoxy(30,4);textcolor(RED);cputs("not thing could modify!"); getch(); return;}gotoxy(30,4);textcolor(RED); cputs("Modify User Message"); gotoxy(25,8); textcolor(YELLOW);cputs("input the User Id:");scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) {textcolor(YELLOW);gotoxy(25,10); printf("Inpute The New ID(old:%s):",p->data.num); scanf("%s",p->data.num); gotoxy(25,12);printf("Input The New Password(old:%s):",p->data.pass); scanf("%s",p->data.pass);gotoxy(25,14); printf("Input The New Name(old:%s):",p->); scanf("%s",p->);gotoxy(25,16);printf("Input The New Sex(old:%s):",p->data.sex); scanf("%s",p->data.sex); gotoxy(30,20);40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 textcolor(RED);cputs("Modify Success ");getch();textcolor(YELLOW);}else{gotoxy(30,16);textcolor(RED);cputs("Not Finde ");getch();}}/****供⽤户修改⽤户⾃⼰资料 */void Modify_user(Ulink l){Unode *p;char findmess[20];if(!l->next){gotoxy(30,4);textcolor(RED);cputs("not thing could modify!");getch();return;}gotoxy(30,4);textcolor(RED);cputs("Modify User Message");gotoxy(33,8);textcolor(YELLOW);strcpy(findmess,os->data.num);printf("your id:%s",findmess);p=Locate(l,findmess,"num");if(p){textcolor(YELLOW);gotoxy(24,10);printf("Input The New Password(old:%s):",p->data.pass); scanf("%s",p->data.pass);gotoxy(24,12);printf("Input The New Name(old:%s):",p->);scanf("%s",p->);gotoxy(24,14);printf("Input The New Sex(old:%s):",p->data.sex);scanf("%s",p->data.sex);gotoxy(31,18);textcolor(RED);cputs("Modify Success ");getch();textcolor(YELLOW);}else{gotoxy(30,16);textcolor(RED);cputs("Not Finde ");getch();}}添加借书函数1234567891011 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56/*******添加借书*******/void Add_borrow(BBlink l){Ulink H;/* 连表 */FILE*Fp; /* ⽂件指针 */Unode *Q,*T;blink L;/* 连表 */FILE*FP; /* ⽂件指针 */int ttl;Bnode *P,*R;char bookid[20];char bookname[20];char userid[20];BBnode *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;L=(Bnode*)malloc(sizeof(Bnode));L->next=NULL;R=L;FP=fopen(file,"rb");if(FP==NULL){FP=fopen(file,"wb");}while(!feof(FP)){P=(Bnode*)malloc(sizeof(Bnode));if(fread(P,sizeof(Bnode),1,FP)) /* 将⽂件的内容放⼊接点中 */ {P->next=NULL;bookcount=bookcount+P->data.count;R->next=P;R=P; /* 将该接点挂⼊连中 */}}fclose(FP); /* 关闭⽂件 */H=(Unode*)malloc(sizeof(Unode));H->next=NULL;T=H;Fp=fopen(ufile,"rb");if(Fp==NULL){Fp=fopen(ufile,"wb");}while(!feof(Fp)){Q=(Unode*)malloc(sizeof(Unode));60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 T->next=Q;T=Q; /* 将该接点挂⼊连中 */}}fclose(Fp);textcolor(RED);gotoxy(25,4);cputs("Please input thease message");gotoxy(30,10);textcolor(YELLOW);cputs("Input Borrow ID:");scanf("%d",&ttl);itoa(ttl,num,10) ;p=(BBnode *)malloc(sizeof(BBnode));while(s){if(strcmp(s->id,num)==0){gotoxy(30,15);cputs("Borrow ID:");printf("'%s'",num);cputs("is exist!");gotoxy(26,22);textcolor(RED);cputs("please Press any key to continue...");gotoxy(255,252);getch();return;}s=s->next;}strcpy(p->id,num);gotoxy(31,12);textcolor(YELLOW);cputs("Input book id:");scanf("%s",bookid);gotoxy(31,14);textcolor(YELLOW);cputs("Input book name:");scanf("%s",bookname);/***************************************图书判断在否***************************************/ if(cmpbook(L,bookid,bookname)){strcpy(p->bookid,bookid);strcpy(p->book,bookname);gotoxy(31,16);cputs("input your ID:");scanf("%s",userid); /**************************************⽤户判断在否********************************/if(cmpuser(H,userid)){strcpy(p->user,userid);p->next=NULL;r->next=p;r=p;if(changeb(L,bookid)){gotoxy(30,22);cputs("Borrow Success ");Save_borrow(l);borrowcount++;getch();}}}textcolor(YELLOW);}。

C语言程序设计实训报告图书管

C语言程序设计实训报告图书管

防灾科技学院实训报告书专业网络工程系别灾害信息工程系课程 C语言程序设计报告题目基于文件的小型图书管理系统的设计与实现报告人刘亚茹班级及学号 105043113 指导教师刘颖带队教师刘颖实训时间 8.22-8.26 实训单位 4#301教务处监制说明报告要有实训目的、要求、原理简述、方法、步骤、实训体会等,具体内容按各系及实训教师要求。

以下模板内容,如果你的程序里没有体现,就不用写。

目录1 前言 (4)2 系统需求分析 (4)2.1 问题定义 (4)2.2 需求分析 (5)2.3 项目开发计划 (6)3 系统设计 (8)3.1 系统功能框架 (8)3.2 数据结构设计 (9)3.3功能模块设计 (11)4 系统实现 (12)4.1 系统硬件环境 (12)4.2 系统软件环境 (12)4.3 开发工具 (12)4.4 系统功能模块设计与实现 (12)4.4.1 图书管理界面 (12)5 系统测试 (28)5.1 测试用例设计 (28)5.2 测试结果分析 (28)实训体会 (28)1 前言图书管理系统对于现代图书馆而言,是能否发挥其教学科研的作用的至关重要技术平台。

随着当今社会发展,信息化水平逐步提高,对图书管理有了新的要求,因此,编写一个信息管理系统是十分有必要的。

2 系统需求分析2.1 问题定义该软件主要是实现对图书信息进行系统化的管理,本系统要求实现以下的几个基本功能:(1)要求把所有录入的数据以文件的形式,保存在硬盘上。

(2)实现简易的提示菜单界面,用所学的知识尽量实现良好的、美观的“人机界面”,便于软件的操作使用。

(3)管理员登录时,需要验证密码,密码输入超过三次,自动退出系统。

(4)图书管理功能:包括图书添加功能、图书修改功能、图书删除功能和图书查询功能;(5)读者管理功能:包括读者添加功能、读者修改功能、读者删除功能和读者查询功能;(6)借阅管理功能:借书功能,还书功能,续借功能。

2.2 需求分析(1) 要求把所有录入的数据以文件的形式,保存在硬盘上。

图书馆管理 c语言

图书馆管理 c语言

//本电信学渣的大一小学期作业做的不好请见谅/*一、图书管理系统1.新书入库:图书信息包括书名,书号,库存量,现存量(库存量减去借走的图书)共4项.首先输入3本书的信息,并将其存数组book中.当有新书入库时,先判断数组中是否有此书(即比较书名或书号),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到数组中,并将其库存量设为-1,将其标专为下次要购入的图书。

2.图书查询:(1)输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。

(2)查询所有要购入的图书的书名和书号。

3.借阅管理(1)每个读者的信息包括姓名,编号,借阅图书1,借阅图书2,借阅图书3,输入3个读者的信息并存入数组reader中.(2)借书登记:输入读者的姓名及所借图书的书号,先判断姓名是否在读者数组中,若有则将书号存入reader数组中,同时修改book数组中此书的现存量.若reader数组中无此姓名,则应提示错误。

(3)还书管理:输入读者的姓名,所还图书的书号,修改reader数组和book数组中相应的项。

4.输出全部图书信息和全部读者信息。

5.退出系统。

*/#include <stdio.h>#include <string.h>void zzdz();//读者注册void shuru();//新书注册void shuchu();//图书总数统计void shanchu();//删除书籍void find(); //书籍查找void borrow();//借书管理void repay(); //还书管理void scdzxx(); //读者统计//定义结构体类型struct s{char no[10];char name[10];};//定义结构体数组struct s book[50];struct i{char js[3][10],js1[10],js2[10],js3[10];char name[10],no[10];};//定义结构体数组struct i reader[50];int bzongshu=0,bxianshu=0,rzongshu=0;int n=0,m=0;int main(){int chioce=-1,xxx; //一级选项,二级选项printf("***************图书馆管理系统******************\n");while(chioce!=0){ //一级选项循环printf("请选择:\n图书管理请按1\n读者管理请按2\n退出请按0(否则将留在本层)\n请输入"); //输入提示scanf("%d",&chioce); //输入选项图书读者xxx=-1; //重置二级选项if(chioce==1){ //1为图书printf("您选择了图书管理\n");while(xxx!=0){ //二级选项循环printf("\n\n继续选择:\n"); //选printf("增加书目请按1\n"); //项printf("删除书目请按2\n"); //提printf("查询书目请按3\n"); //示printf("统计书目请按4\n"); //printf("返回上层请按0(否则将留在本层)\n");scanf("%d",&xxx);switch(xxx){case 1:shuru(); break; //新书注册case 2:shanchu(); break;//删除书籍case 3:find();break; //书籍查找case 4:shuchu();break; //图书总数统计case 0:printf("返回上层\n");break;//返回一级选项default:printf("输入错误");break;//报错}}}else{if(chioce==2){printf("\n\n您选择了读者管理\n");while(xxx!=0){printf("\n\n继续选择:\n");printf("注册读者请按1\n");printf("借阅系统2\n");printf("还书系统3\n");printf("读者统计4\n");printf("返回上层请按0(否则将留在本层)\n");printf("本馆共有读者%d人\n",rzongshu);scanf("%d",&xxx);switch(xxx){case 1:zzdz();break; //读者注册case 2:borrow();break;//借阅管理case 3:repay();break;//还书管理case 4:scdzxx();break;//读者统计case 0:printf("返回上层\n");break;default:printf("输入错误");break;//报错}}}else{if(chioce==0){printf("\n\n");break;}printf("\n\n选择错误,请重新选择\n");scanf("%d",&chioce);}}}printf("\n\n***************已退出,谢谢使用****************\n"); return 0;}//增加函数void shuru(){int j,i,geshu;printf("\n\n输入需要增加书目的个数:");scanf("%d",&geshu);for(i=bzongshu;i<(bzongshu+geshu);i++){printf("输入书号");scanf("%s",book[i].no);printf("输入书名");scanf("%s",book[i].name);}printf("结束输入;");n=n+geshu;bzongshu=bzongshu+geshu;bxianshu=bxianshu+geshu;}//输出数据void shuchu(){int i;for(i=0;i<n;i++){printf("书号:%s ",book[i].no);printf("书名:%s\n",book[i].name);}printf("共有%d本书\n现有%d本书\n",bzongshu,bxianshu); }//删除数据void shanchu(){int i,j,r=0,chxxx;char a[10];printf("删除选项:\n1:通过书号进行删除\n2:通过书名进行\n");scanf("%d",&chxxx);if(chxxx==1){printf("输入需要查询的书号:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].no))==0){for(;i<n;i++){strcpy(book[i].no,book[i+1].no);strcpy(book[i].name,book[i+1].name);i++;}n--;(bzongshu)--;(bxianshu)--;}}}else{if(chxxx==2){printf("输入需要查询的书名:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].name))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{printf("输入错误");}}if(r==0) printf("无此书\n");return;}//查询数据void find() //strcmp{int i,j,r=0,chxxx;char a[10];printf("查询选项:\n1:书号查询\n2:书名查询\n");scanf("%d",&chxxx);if(chxxx==1){printf("输入需要查询的书号:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].no))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{if(chxxx==2){printf("输入需要查询的书名:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].name))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{printf("输入错误");}}if(r==0) printf("无此书\n");return;}//输入读者信息void zzdz(){int i,geshu;printf("输入需要注册的个数:");scanf("%d",&geshu);for(i=rzongshu;i<(rzongshu+geshu);i++){printf("输入读者号");scanf("%s",reader[i].no);printf("输入读者名");scanf("%s",reader[i].name);}m=m+geshu;rzongshu=m;printf("共有%d个读者\n",rzongshu);}//借阅管理void borrow(){int i,j,k,zdz=0,zs=0,z;char a[10],b[10],q[10];printf("您已进入借阅管理\n");printf("输入要求借书的读者姓名:\n");scanf("%s",a);for(i=0;i<rzongshu;i++){if((strcmp(a,reader[i].name))==0){printf("该读者存在,请输入要借阅图书的书号(3本)\n");for(j=1;j<=3;j++){zdz++;printf("输入要借的书号");scanf("%s",b);for(k=0;k<bzongshu;k++){if((strcmp(b,book[k].no))==0){printf("该书存在,借阅成功\n");bxianshu--;*(reader[i].js[j])=*(book[k].no);zs=1;}}if(zs==0){printf("无此书,将返回上层菜单\n");break;}}}}if(zdz==0){printf("该读者不存在,将返回上层选择菜单");}return;}//还书管理void repay(){int i,j,k,zdz=0,zs=0;char a[10],b[10];printf("您已进入还书管理\n");printf("输入要求还书的读者姓名:\n");scanf("%s",a);for(i=0;i<rzongshu;i++){if((strcmp(a,reader[i].name))==0){printf("该读者存在,请输入要归还图书的书号(3本)\n");for(j=1;j<=3;j++){zdz++;printf("输入要还的书号");scanf("%s",b);for(k=0;k<bzongshu;k++){if((strcmp(b,reader[i].js[j]))==0){printf("该书存在,还书成功\n");bxianshu++;*(reader[i].js[j])=' ';zs=1;}}if(zs==0){printf("无此书,将返回上层菜单\n");return;}}}}if(zdz==0){printf("该读者不存在,将返回上层选择菜单");}return;}//输出读者信息void scdzxx(){int i;for(i=0;i<rzongshu;i++){printf("读者号:%s\n",reader[i].no);printf("读者姓名:%s\n",reader[i].name);printf("借书1的书号:%s\n",reader[i].js[1]);printf("借书2的书号:%s\n",reader[i].js[2]);printf("借书3的书号:%S\n\n\n",reader[i].js[3]);}return;}。

C#大作业——精选推荐

C#大作业——精选推荐

课程设计报告本图书管理系统是采用VS2005和SQL2005开发的一个数据库管理系统。

开发本系统的基本步骤:各功能模块划分,数据库设计,包括借书、还书模块,用户管理模块,用户登录模块,图书管理模块,读者管理模块。

主要功能是让读者借书、还书能方便快捷。

★总体流程图如下:★各模板的划分及功能分析:图书管理部分包括图书类别管理和图书信息管理,其功能是实现对各部分数据内容进行添加、修改、查询等操作。

a)图书信息管理包括图书信息的添加、图书信息的修改、图书信息的查询和图书信息的删除;b)图书类别管理包括图书类别的添加、图书类别的修改、图书类别的删除。

借书阅读管理包括借书管理和还书管理,其功能是实现对图书类别的添加、修改、查询等操作。

a)借书管理包括添加借书信息和查询借书信息。

b)还书管理主要是实现添加还书信息功能。

读者管理部分包括读者信息管理和读者类别管理,其功能是实现对各部分数据内容的添加、删除和修改操作。

a)读者信息管理包括对读者信息的添加、修改、删除和查询等功能。

b)读者类别管理包括对读者类别的分类。

系统管理部分包括修改系统用户密码、增加新用户和退出系统三项功能。

★系统功能如下:1.系统管理.a)打开Microsoft Visual Studio 2005,新建一个项目,在设计界面拖动如下控件,分别是5个label控件、2个TextBox,2个RadioButton和2个Button,更改属性如下图:b)在Button1双击鼠标,在Load里面写入如下代码:private void AddAdmin_Load(object sender, EventArgs e){ds.ReadXml("..\\..\\AdminDs.ds");ds.Tables["AdminTab"].PrimaryKey = new DataColumn[] { ds.Tables["AdminTab"].Columns["用户名"] };dataGridView1.DataSource=ds.Tables["AdminTab"];}在button1_Click中输入如下代码:private void button1_Click(object sender, EventArgs e){ds.Clear();ds.ReadXml("..\\..\\AdminDs.ds");DataRow dr = ds.Tables["AdminTab"].NewRow();dr["用户名"] = textBox1.Text.ToString();dr["密码"] = textBox2.Text.ToString();if (radioButton1.Checked){dr["权限"] = "1";}else if (radioButton2.Checked){dr["权限"] = "0";}ds.Tables["AdminTab"].Rows.Add(dr);ds.WriteXml("..\\..\\AdminDs.ds");MessageBox.Show("添加成功!");}C)在Button2中双击鼠标,用如下代码实现“删除”的功能:private void button2_Click(object sender, EventArgs e){if (textBox1.Text != ""){try{ds.Clear();ds.ReadXml("..\\..\\AdminDs.ds");ds.Tables["AdminTab"].PrimaryKey = new DataColumn[] { ds.Tables["AdminTab"].Columns["用户名"] };DataRow dr =ds.Tables["AdminTab"].Rows.Find(textBox1.Text.ToString().Tri m());MessageBox.Show("是否要删除"+ dr["用户名"] + "用户", "提示", MessageBoxButtons.OKCancel);dr.Delete();ds.WriteXml("..\\..\\AdminDs.ds");MessageBox.Show("删除成功!");}catch (Exception) { }}}c)当用户名或密码都不为空,且密码正确时,可以实现对用户的添加和删除。

图书管理程序——c语言版

图书管理程序——c语言版

#include"stdio.h"#include"string.h"#define LEN sizeof(struct book)struct book{long ISBN;char name[40],author[40],bookconcern[40],day[10];double price;struct book *next;};void face(){int i,j=2;for(i=0;i<75;i++){printf("*");}printf("\n*");for(i=0;i<30;i++){printf(" ");}printf("图书登记管理程序");for(i=0;i<27;i++){printf(" ");}printf("*");printf("\n*");for(i=0;i<73;i++){printf(" ");}printf("*");printf("\n*");for(i=0;i<27;i++){printf(" ");}printf("1.录入图书的信息");for(i=0;i<30;i++){printf(" ");printf("*");printf("\n*");for(i=0;i<27;i++){printf(" ");}printf("2.根据ISBN编号查找图书信息"); for(i=0;i<20;i++){printf(" ");}printf("*");printf("\n*");for(i=0;i<27;i++){printf(" ");}printf("3.根据ISBN编号修改图书信息"); for(i=0;i<20;i++){printf(" ");}printf("*");printf("\n*");for(i=0;i<27;i++){printf(" ");}printf("4.根据ISBN编号删除图书信息"); for(i=0;i<20;i++){printf(" ");}printf("*");printf("\n*");for(i=0;i<27;i++){printf(" ");}printf("5.根据书名查找图书的信息"); for(i=0;i<22;i++){printf(" ");printf("*");printf("\n*");for(i=0;i<27;i++){printf(" ");}printf("6.根据出版社查找图书的信息");for(i=0;i<20;i++){printf(" ");}printf("*");printf("\n*");for(i=0;i<27;i++){printf(" ");}printf("7.统计");for(i=0;i<40;i++){printf(" ");}printf("*");while(j!=0){printf("\n*");for(i=0;i<73;i++){printf(" ");}printf("*");j--;}printf("\n");for(i=0;i<75;i++){printf("*");}printf("\n请输入操作编号:");}struct book *write(struct book *head){struct book *p,*p1=head;p=(struct book *)malloc(LEN);printf("\n请输入的图书的ISBN编号:");scanf("%ld",&p->ISBN);printf("\n请输入的图书的书名:");scanf("%s",&p->name);printf("\n请输入的图书的作者:");scanf("%s",&p->author);printf("\n请输入的图书的出版社:");scanf("%s",&p->bookconcern);printf("\n请输入的图书的出版日期:");scanf("%s",&p->day);printf("\n请输入的图书的价格:");scanf("%lf",&p->price);p->next=NULL;if(head==NULL)head=p;else{while(head->next!=NULL)head=head->next;head->next=p;head=p1;}return head;}void check(struct book *head){int b=0;struct book *p2,*p3;p2=(struct book *)malloc(LEN);printf("\n请输入要查找的图书的ISBN编号:");scanf("%ld",&p2->ISBN);p3=head;while(p3!=NULL){if(p3->ISBN==p2->ISBN){if(b==0){printf(" 查找的图书的信息");b=1;printf("\nISBN编号书名作者出版社出版日期价格\n");}printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookcon cern,p3->day,p3->price);}p3=p3->next;}if(b==0)printf("\nerror:所输入的编号ISBN的图书不在书库中");}struct book *rework(struct book *head){struct book *p2,*p3;int b=0;p2=(struct book *)malloc(LEN);sige3: printf("\n请输入要修改的图书的ISBN编号:");scanf("%ld",&p2->ISBN);p3=head;while(p3!=NULL){if(p3->ISBN==p2->ISBN){if(b==0){printf(" 所需修改的图书的信息");b=1;printf("\nISBN编号书名作者出版社出版日期价格\n");}printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookcon cern,p3->day,p3->price);break;}p3=p3->next;}if(p3==NULL){printf("\nerror:所输入的图书ISBN编号不再书库中");goto sige3;}printf("\n是否确认修改这本书?是请输入1,否请输入0,\n返回到输入要删除的图书的ISBN编号请输入2: ");scanf("%d",&b);while(b!=1&&b!=0){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&b);}if(b==2) goto sige3;if(b==1){printf("\n请输入修改后的图书的ISBN编号:");scanf("%ld",&p3->ISBN);printf("\n请输入修改后的图书的书名:");scanf("%s",&p3->name);printf("\n请输入修改后的图书的作者:");scanf("%s",&p3->author);printf("\n请输入修改后的图书的出版社:");scanf("%s",&p3->bookconcern);printf("\n请输入修改后的图书的出版日期:");scanf("%s",&p3->day);printf("\n请输入修改后的图书的价格:");scanf("%lf",&p3->price);printf("\n已经修改ISBN编号为%ld的图书",p2->ISBN);}return head;}struct book *delete(struct book *head){struct book *p2,*p3,*p;int b;p2=(struct book *)malloc(LEN);sige2: printf("\n请输入要删除的图书的ISBN编号:");scanf("%ld",&p2->ISBN);p3=head;b=0;while(p3!=NULL){if(p3->ISBN==p2->ISBN){if(b==0){printf(" 所需修改的图书的信息");b=1;printf("\nISBN编号书名作者出版社出版日期价格\n");}printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookconcern,p3->day,p3->price);break;}p=p3;p3=p3->next;}if(p3==NULL){printf("\nerror:所输入的图书ISBN编号不再书库中");goto sige2;}printf("\n是否确认删除这本书?是请输入1,否请输入0,\n返回到输入要删除的图书的ISBN编号请输入2: ");scanf("%d",&b);while(b!=1&&b!=0){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&b);}if(b==2) goto sige2;if(b==1){p->next=p3->next;printf("\n已经删除ISBN编号为%ld的图书",p2->ISBN);}return head;}void lookupname(struct book *head){struct book *p2,*p3;int b=0;p2=(struct book *)malloc(LEN);printf("\n请输入要查找的图书的书名:");scanf("%s",&p2->name);p3=head;while(p3!=NULL){if(strstr(p3->name,p2->name)){if(b==0){printf(" 所查找的图书的信息");b=1;printf("\nISBN编号书名作者出版社出版日期价格\n");}printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookcon cern,p3->day,p3->price);}p3=p3->next;}}void lookupbookconcern(struct book *head){struct book *p2,*p3;int b=0;p2=(struct book *)malloc(LEN);printf("\n请输入要查找的图书的出版社:");scanf("%s",&p2->bookconcern);p3=head;while(p3!=NULL){if(strstr(p3->bookconcern,p2->bookconcern)){if(b==0){printf(" 所查找的图书的信息");b=1;printf("\nISBN编号书名作者出版社出版日期价格\n");}printf("\n%-12ld%-12s%-10s%-10s%-12s%-6.2lf\n",p3->ISBN,p3->name,p3->author,p3->bookcon cern,p3->day,p3->price);}p3=p3->next;}}main(){int a;struct book *book=NULL;sige: face();scanf("%d",&a);while(a!=1&&a!=2&&a!=3&&a!=4&&a!=5&&a!=6&&a!=7){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&a);}while(a==1){book=write(book);printf("\n继续录入新图书的信息请输入1,返回上级目录请按0,均以回车结束:");scanf("%d",&a);while(a!=1&&a!=0){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&a);}if(a==0)goto sige;}while(a==2){check(book);printf("\n继续查找图书的信息请输入2,返回上级目录请按0,均以回车结束:");scanf("%d",&a);while(a!=2&&a!=0){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&a);}if(a==0)goto sige;}while(a==3){book=rework(book);printf("\n继续修改图书的信息请输入3,返回上级目录请按0,均以回车结束:");scanf("%d",&a);while(a!=3&&a!=0){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&a);}if(a==0)goto sige;}while(a==4){book=delete(book);printf("\n继续删除图书的信息请输入4,返回上级目录请按0,均以回车结束:");scanf("%d",&a);while(a!=4&&a!=0){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&a);}if(a==0)goto sige;}while(a==5){lookupname(book);printf("\n继续按书名查找图书的信息请输入5,返回上级目录请按0,均以回车结束:");scanf("%d",&a);while(a!=5&&a!=0){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&a);}if(a==0)goto sige;}while(a==6){lookupbookconcern(book);printf("\n继续按出版社查找图书的信息请输入6,返回上级目录请按0,均以回车结束:");scanf("%d",&a);while(a!=6&&a!=0){printf("\nerror:所输入操作编号有误,请重新输入:");scanf("%d",&a);}if(a==0)goto sige;}}。

图书管理系统C语言程序设计实验报告

图书管理系统C语言程序设计实验报告
scanf("%f",&f);
books[i].price=f;
i++;
flushall();
printf("is Continue(y/n)?:");
scanf("%c",&isCon);
}
printf("\n --%d种图书信息输入完毕!--\n",i);
printf("\n按任意键返回主菜单!");
{
FILE*fp;
int i;
char filename[40];
//clrscr();
printf("\n input SAVE filename=");
scanf("%s",filename);
if ( (fp=fopen(filename, "w")) == NULL)
{
printf("\n %s file NOT open! press any key exit system.");
printf("\n input READ filename=");
scanf("%s",filename);
if ( (fp=fopen(filename, "r")) == NULL)
{
printf("\n %s file NOT open! press any key exit system.");
〔2〕执行编译操作,并根据提示调试此程序,排除所有的错误和警告。直到编译成功为止。
〔3〕执行运行操作,逐一对每个模块进行调试,直到全部程序运行成功为止。

C语言-图书管理系统

C语言-图书管理系统

图书借阅管理系统1.课程设计的目的我这次做的系统是图书借阅管理系统,主要目的是利用本系统来管理图书的借阅问题,以实现图书借阅的快捷化、规范化、自动化来提高工作效率。

系统以实用性,通用、开放和安全的原则。

使用数据库开发软件开发制作,实现了图书借阅信息的管理,借阅图书的信息自动化添加,借阅者的个人基本信息,借阅的基本信息,对各种图书的分类管理以及各种新书的添加等一些繁琐事项。

更好的管理好图书的借阅问题。

大大的减少了人工的工作量,比以往很大程度上提高了工作人员的工作效率。

使之成为图书馆的一个平台,成为真正的现代化科技。

为了充分利用学院现有的计算机硬件资源,做好图书借阅管理工作,提高办事效率, 实现全面的、相对集中的办公自动化,开发本系统就成了当务之急,其目的主要为了彻底改变这种繁杂的管理模式,实现全面的、相对集中的、智能化的信息综合管理,为图书馆的管理工作带来方便。

我想借本次课程设计之际,开发一个适用于通用大规模图书馆的管理系统,采用现学习的C++6. 0开发工具开发出来的基于Windows系列的图书借阅管理系统。

该系统面向所有的在校学生,实现对学生个人的借书、学生的基本信息情况等的计算机管理。

系统支持工作人员对学生图书借阅信息、图书馆新书的添加、旧书的信息修改、删除等操作,确保了数据库的安全性快捷性和一致性。

2.设计方案论证2.1主界面设计思路本次设计这个系统利用于图书馆的图书借阅管理,该系统相比以往人工的记录方式减少了很多不比要得麻烦,大大的提高了图书馆工作人员的工作效率。

这次系统的开发制作主要包括以下几个方面。

书籍统计可以查询图书的名称、作者、序号等信息,以及是否借出去了。

书籍管理可以把新书添加到系统当中,修改书籍的详细资料等。

注册会员功能,借阅书籍的学生必须注册会员才可以借书,通过注册会员来添加该学生的基本信息。

通过系统来办理借书手续以记录该学生的借书信息。

学生借书模块能够查询借阅学生的信息和该学生的借书的信息。

图书管理系统c语言

图书管理系统c语言

图书管理系统C语言1. 简介图书管理系统是一种用于管理图书馆藏书和借阅记录的软件系统。

它通常包括图书的录入、借阅、归还、查询等功能,能够提高图书馆的工作效率和服务质量。

本文将使用C语言编写一个简单的图书管理系统,实现基本的图书信息录入、修改、查询、借阅、归还等功能。

2. 功能实现2.1 数据结构我们首先需要定义合适的数据结构来存储图书信息和借阅记录。

以下是一个简单的数据结构示例:struct Book {int id; // 图书编号char title[100]; // 图书标题char author[50]; // 图书作者char category[50]; // 图书分类int isBorrowed; // 图书是否已借阅,0表示未借阅,1表示已借阅char borrowerName[100]; // 借阅者姓名// 可根据需求扩展其他字段};struct BorrowRecord {int bookId; // 图书编号char borrowerName[100]; // 借阅者姓名char borrowDate[20]; // 借阅日期char returnDate[20]; // 归还日期// 可根据需求扩展其他字段};2.2 图书信息录入和修改我们可以通过实现相应的函数来实现图书信息的录入和修改。

以下是一个简单的示例:void addBook(struct Book *library, int *count) {// 输入图书信息,将其存入library数组中,同时更新count}void updateBook(struct Book *library, int count, int bookId) { // 根据图书编号bookId,更新library数组中对应图书的信息}2.3 图书查询我们可以根据图书的不同字段来实现不同的查询功能,比如根据图书标题、作者、分类等进行模糊查询,或根据图书编号进行精确查询。

C语言大作业-图书馆管理系统1电子教案

C语言大作业-图书馆管理系统1电子教案

C语言课程设计报告题目:图书馆管理系统学号: ****学生姓名: ******** 专业年级: ****************指导教师: ************** 系****年*月*日目录摘要 (1)前言 (2)1 需求分析 (3)2 系统描述及界面设计 (5)2.1 数据描述: (5)2.2 数据库描述 (6)2.3 数据流图和数据词典 (7)2.4数据采集 (12)2.5界面设计 (12)3 系统功能模块的设计与实现 (19)3.1 软件结构设计 (19)3.2 程序描述 (22)3.2.1 读者添加 (22)3.2.2 读者查询修改 (23)3.2.3 图书添加 (26)3.2.4 图书查询修改 (27)3.2.5 借书模块 (31)3.2.6 查询借阅还书模块 (33)3.2.7 续借模块 (36)3.2.8 图书查询模块 (38)4 总结 (41)摘要图书馆是最丰富、最宝贵的信息源和知识源。

图书借还业务是图书馆的主要工作之一,每天要花费管理人员大量的时间来进行借书证分类、归户、统计等工作,有时还会出现错误,给下一环节的工作和读者带来不便。

由于手工统计的时间限制,所需要的许多报表不能如期完成。

随着计算机技术的发展和普及,利用计算机技术准确、快捷、方便的特点进行图书借阅管理,不仅能实现书证管理、还书和借书管理的计算机话、库存图书的分布查询,还能对借出图书进行系统,及时提供准确、详细的借阅数据,为采购部门提供可靠、具体的购书信息。

图书馆管理系统已成为方便了广大师生、学校与外界之间的沟通架起了一座桥梁。

但是,这并不能满足目前师生的需要。

比如一些特定的需要要,在管理方面特别不方便,因为它受到地域的限制太大。

就目前情况而言,急需充分利用网络方式的图书管理。

我们的网络图书馆管理系统就是为了解决这问题而设计的。

本软件采用B/S结构,ASP+ACCESS的经典网络搭配,利用IIS服务器的强大功能,在网络中发挥出良好,所以应用很广泛,能满足目前各学院特定用户进行图书管理的目的,而且这些通用的软件,任何人都可以得到并对其进行研究。

图书管理系统的设计(C语言)

图书管理系统的设计(C语言)

图书管理系统设计图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述:1 .新进熟土基本信息的输入2 .图书基本信息的查询3 .对撤销图书信息的删除4 .为借书人办理注册5 .办理借书手续6 .办理换书手续要求:以文件方式存储数据,系统以菜单方式工作。

这是本人大一第二学期初 C 语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ 网络硬盘中找到了当初的teta 版,发布于此,以作记念。

C 源代码如下:#include〈stdio 。

h〉#include<stdlib。

h〉#include〈string 。

h>struct book {char book_name [30];int bianhao;double price;char author[20];char state [20] ;char name[20];char sex [10];int xuehao;struct book *book_next;};struct club {char name [20];char sex[10];int xuehao;char borrow [30];struct club *club_next;};void Print_Book(struct book *head_book);/*浏览所有图书信息*/void Print_Club(struct club *head_club);/*浏览所有会员信息*/struct book *Create_New_Book();/*创建新的图书库, 图书编号输入为0 时结束*/struct book *Search_Book_bianhao(int bianhao,struct book *head_book);struct book *Search_Book_name (char *b_name,struct book *head_book);struct book *Search_Book_price (double price_h,double price_l,struct book *head_book);struct book *Insert_Book (struct book *head_book,struct book *stud_book) ;/*增加图书,逐个添加*/struct book *Delete_Book(struct book *head_book,int bianhao);/*删除图书*/struct club *Create_New_Club() ;struct club *Search_Club_xuehao(int xuehao,struct club *head_club);struct club *Search_Club_name (char *c_name,struct club *head_club);struct club *Insert_Club (struct club *head_club,struct club *stud_club);struct club *Delete_Club (struct club *head_club,int xuehao);struct book *Lent_Book (int bianhao ,int xuehao,struct book *head_book,struct club *head_club);struct book *back (int bianhao,int xuehao,struct book *head_book,struct club *head_club); int main(){struct book *head_book,*p_book;char book_name [30],name [20],author [20],sex [10];int bianhao;double price,price_h,price_l;int size_book=sizeof(struct book);int m=1,n=1,f;char *b_name,*c_name;struct club *head_club,*p_club;int xuehao;int size_club=sizeof (struct club) ;int choice;printf ("\n 欢迎您第一次进入图书管理系统!\n\n");printf("---——>[向导]————-〉[新建图书库] \n\n”) ;printf ("注意:当输入图书编号为0 时,进入下一步.\n\n");head_book=Create_New_Book();system(”cls”) ;printf("\n 欢迎您第一次进入图书管理系统!\n\n") ;printf("----—〉[向导]——---〉[新建会员库]\n\n”);printf(”注意:当输入会员学号为0 时,进入主菜单.\n\n”);head_club=Create_New_Club () ;system (”cls”);do {printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”);printf("\n”);printf ("\t\t\t[1] :借书办理\t");printf(" [6]:还书办理\n”);printf (”\n");printf(”\t\t\t[2]:查询图书\t");printf(" [7]:查询会员\n”);printf (” \t\t\t[3]:添加图书\t");printf (" [8]:添加会员\n”);printf ("\t\t\t[4]:删除图书\t");printf (” [9] :删除会员\n") ;printf (” \t\t\t[5]:遍历图书\t");printf (” [10]:遍历会员\n\n”) ;printf ("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n”);printf("\t\t\t0:退出\n\n”) ;printf(”请选择〈0~10〉:”);scanf(”%d",&choice);switch(choice) {case 1:printf ("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");printf (”输入所借图书编号:\n");scanf (”%d",&bianhao);printf ("输入借书人的学号:\n”);scanf ("%d",&xuehao);head_book=Lent_Book(bianhao,xuehao,head_book,head_club);system (”cls");printf (” \n 借阅成功!\n\n");printf (”相关信息如下:\n\n");head_book=Search_Book_bianhao (bianhao,head_book);break;case 2:system ("cls”) ;printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”); printf ("1。

C语言大作业-图书馆管理系统1

C语言大作业-图书馆管理系统1

C语言课程设计报告题目:图书馆管理系统学号: ****学生姓名: ******** 专业年级: ****************指导教师: ************** 系****年*月*日目录摘要 (1)前言 (2)1 需求分析 (3)2 系统描述及界面设计 (5)2.1 数据描述: (5)2.2 数据库描述 (6)2.3 数据流图和数据词典 (7)2.4数据采集 (12)2.5界面设计 (12)3 系统功能模块的设计与实现 (19)3.1 软件结构设计 (19)3.2 程序描述 (21)3.2.1 读者添加 (21)3.2.2 读者查询修改 (21)3.2.3 图书添加 (25)3.2.4 图书查询修改 (26)3.2.5 借书模块 (29)3.2.6 查询借阅还书模块 (32)3.2.7 续借模块 (34)3.2.8 图书查询模块 (36)4 总结 (39)摘要图书馆是最丰富、最宝贵的信息源和知识源。

图书借还业务是图书馆的主要工作之一,每天要花费管理人员大量的时间来进行借书证分类、归户、统计等工作,有时还会出现错误,给下一环节的工作和读者带来不便。

由于手工统计的时间限制,所需要的许多报表不能如期完成。

随着计算机技术的发展和普及,利用计算机技术准确、快捷、方便的特点进行图书借阅管理,不仅能实现书证管理、还书和借书管理的计算机话、库存图书的分布查询,还能对借出图书进行系统,及时提供准确、详细的借阅数据,为采购部门提供可靠、具体的购书信息。

图书馆管理系统已成为方便了广大师生、学校与外界之间的沟通架起了一座桥梁。

但是,这并不能满足目前师生的需要。

比如一些特定的需要要,在管理方面特别不方便,因为它受到地域的限制太大。

就目前情况而言,急需充分利用网络方式的图书管理。

我们的网络图书馆管理系统就是为了解决这问题而设计的。

本软件采用B/S结构,ASP+ACCESS的经典网络搭配,利用IIS服务器的强大功能,在网络中发挥出良好,所以应用很广泛,能满足目前各学院特定用户进行图书管理的目的,而且这些通用的软件,任何人都可以得到并对其进行研究。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c语言图书管理系统主要功能:1. 新进图书基本信息的输入。

2. 显示全部记录3. 按图书名称查询图书基本信息。

4. 根据图书名称对撤消的图书信息进行删除。

5. 按图书名称从小到大排序。

6. 统计某价格以上的图书数量。

7. 列出所有未借出去的图书信息。

基本信息:图书编号、图书名称、单价、作者、存在状态、借书人姓名、性别、学号等#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;/*存在状态*/char lendername[20];/*借书人姓名*/char lendersex[2];/*借书人性别*/char lendernum[15];/*借书人学号*/}BOOKINFO;void menu(){printf("\n\n\n\n\n\n\n");printf("\t\t\t图书管理系统\n");printf("\t\t\t1:新进图书基本信息的输入\n");printf("\t\t\t2:显示全部记录\n");printf("\t\t\t3:根据图书名称查询图书基本信息\n");printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n");printf("\t\t\t5:按照图书名称从小大到排序\n");printf("\t\t\t6:统计某价格以上的图书数量\n");printf("\t\t\t7:列出所有未借出去的图书信息\n");printf("\t\t\t8:退出\n");}void choice_1_input_new()/*输入新进的图书信息*/{char choice;FILE *p;BOOKINFO newbook;system("cls");while(1){printf("输入图书编号:");gets(newbook.number);printf("输入图书名称:");gets();printf("输入图书单价:");scanf("%f",&newbook.price);while(getchar()!='\n');printf("输入图书的作者:");gets(newbook.auther);printf("输入借书人姓名:");gets(newbook.lendername);printf("输入借书人性别:");gets(newbook.lendersex);printf("输入借书人学号:");gets(newbook.lendernum);printf("是否保存该条书目?(Y/N)\n");choice=getch();while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n')choice=getch();if(choice=='Y'||choice=='y'){newbook.isExit=1;/*将图书状态设置成1,表示没有借出*/p=fopen("c:\\bookinfo.data","ab");fwrite(&newbook,sizeof(BOOKINFO),1,p);fclose(p);printf("\n该条书目已添加到c:\\bookinfo.data文件中!\n");}else{printf("\n本条书目未保存!\n");}printf("\n是否继续添加书目?(Y/N)\n");choice=getch();while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n')choice=getch();if(choice=='Y'||choice=='y')continue;elsebreak;}}void choice_2_display_all()/*显示全部图书信息*/{FILE *p;int n;BOOKINFO bookinfo[100];int booknumber=0;system("cls");p=fopen("c:\\bookinfo.data","rb");while(!feof(p)){fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);booknumber++;}/*booknumber--;使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/fclose(p);booknumber--;if(booknumber==0){printf("没有任何图书信息!\n\n");}else{n=0;printf(" 图书信息如下\n");printf(" 图书信息| 借书人信息\n");printf("编号名称单价作者图书状态| 姓名性别学号\n");while(n<booknumber){printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,bookinfo[n].lendersex,bookinfo[n].lendernum);n++;}}printf("\n\n按任意键回到主菜单!\n");getch();}void choice_3_search_according_name()/*根据图书名称显示图书的信息*/ {char search[20]="";/*search用来存放要查询的书名*/int n;FILE *p;char choice;BOOKINFO bookinfo[100];int booknumber=0;system("cls");p=fopen("c:\\bookinfo.data","rb");while(!feof(p)){fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);booknumber++;}booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/fclose(p);while(1){printf("输入要查询的书本名称:");gets(search);if(booknumber==0){printf("书库中没有任何信息!\n\n");printf("按任意键回到主菜单!\n\n");getch();break;}/*if结束*/else{for(n=0;n<booknumber;n++)if(strcmp(bookinfo[n].name,search)==0){printf("该书的详细信息如下:\n");printf(" 图书信息|借书人信息\n");printf("编号名称单价作者图书状态| 姓名性别学号\n");printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,bookinfo[n].lendersex,bookinfo[n].lendernum);break;}if(n>=booknumber)printf("没有查找该书的任何信息!\n");printf("\n\n是否继续查询?(Y/N)\n");choice=getch();while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n')choice=getch();if(choice=='Y'||choice=='y')continue;elsebreak;}/*else结束*/}/*while(1)结束*/}void choice_4_delete_according_name()/*根据图书名称对图书信息进行删除*/ {char search[20]="";/*search用来存放要删除的书名*/int n,i;FILE *p;char choice;BOOKINFO bookinfo[100];int booknumber;system("cls");while(1){printf("输入要删除的书本名称:");gets(search);p=fopen("c:\\bookinfo.data","rb");booknumber=0;while(!feof(p)){fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);booknumber++;}booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/fclose(p);if(booknumber==0){printf("书库中没有任何信息!\n\n");printf("按任意键回到主菜单!\n\n");getch();break;}/*if结束*/else{for(n=0;n<booknumber;n++)if(strcmp(bookinfo[n].name,search)==0){break;}if(n>=booknumber)printf("没有查找该书的任何信息!\n");else{printf("是否确认需要删除该条书目?(Y/N)");choice=getch();while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n')choice=getch();if(choice=='Y'||choice=='y'){for(i=n;i<booknumber-1;i++)bookinfo[i]=bookinfo[i+1];booknumber--;p=fopen("c:\\bookinfo.data","wb");for(n=0;n<booknumber;n++)fwrite(&bookinfo[n],sizeof(BOOKINFO),1,p);fclose(p);printf("删除成功!\n");}elseprintf("\n\n该条书目没有被删除!");}printf("\n\n是否继续进行删除操作?(Y/N)\n");choice=getch();while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n')choice=getch();if(choice=='Y'||choice=='y')continue;elsebreak;}/*else结束*/}/*while(1)结束*/}void choice_5_sort_according_name()/*根据图书名称排序*/{FILE *p;int m,n;BOOKINFO temp;BOOKINFO bookinfo[100];int booknumber;p=fopen("c:\\bookinfo.data","rb");booknumber=0;system("cls");while(!feof(p)){fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);booknumber++;}booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/fclose(p);if(booknumber==0){printf("没有任何图书信息!\n\n");}else{for(m=0;m<booknumber-1;m++)for(n=m+1;n<booknumber;n++)if(strcmp(bookinfo[m].name,bookinfo[n].name)>0){temp=bookinfo[m];bookinfo[m]=bookinfo[n];bookinfo[n]=temp;}p=fopen("c:\\bookinfo.data","wb");for(m=0;m<booknumber;m++)fwrite(&bookinfo[m],sizeof(BOOKINFO),1,p);fclose(p);printf("\n\n完成排序!\n\n");}printf("按任意键回到主菜单!\n");getch();}void choice_6_display_high_price()/*根据价格列出图书信息*/ {float price;FILE *p;int n;int count=0;BOOKINFO bookinfo[100];int booknumber;system("cls");printf("请输入价格:");scanf("%f",&price);p=fopen("c:\\bookinfo.data","rb");booknumber=0;while(!feof(p)){fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);booknumber++;}booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/fclose(p);if(booknumber==0){printf("没有任何图书信息!\n\n");}else{for(n=0;n<booknumber;n++){if(bookinfo[n].price>=price)count++;}if(count==0)printf("书库中没有比%.1f$价格高的图书!",price);else{printf(" 价格高于%.1f$的图书信息如下\n",price);printf(" 图书信息| 借书人信息\n");printf("编号名称单价作者图书状态| 姓名性别学号\n");for(n=0;n<booknumber;n++){if(bookinfo[n].price>=price)printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,bookinfo[n].lendersex,bookinfo[n].lendernum);}}}printf("\n\n按任意键回到主菜单!\n");getch();}void choice_7_display_according_exitflag()/*根据存在状态列出图书信息*/ {FILE *p;int n;int count=0;BOOKINFO bookinfo[100];int booknumber;system("cls");booknumber=0;p=fopen("c:\\bookinfo.data","rb");while(!feof(p)){fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);booknumber++;}booknumber--;fclose(p);if(booknumber==0){printf("书库中没有任何书目存在!\n");}else{for(n=0;n<booknumber;n++)if(bookinfo[n].isExit==1)count++;if(count==0)printf("书库中的书籍全部借出!\n");else{printf("书库中未被借出的图书信息如下:\n\n");printf(" 图书信息| 借书人信息\n");printf("编号名称单价作者图书状态| 姓名性别学号\n");for(n=0;n<booknumber;n++)if(bookinfo[n].isExit==1){printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,bookinfo[n].lendersex,bookinfo[n].lendernum);}}}printf("\n按任意键返回主菜单!\n");getch();}void main(){char choice;clock_t tm;FILE *p;if((p=fopen("c:\\bookinfo.data","rb"))==NULL){p=fopen("c:\\bookinfo.data","wb");fclose(p);}while(1){system("cls");menu();choice=getch();switch(choice){case '1':choice_1_input_new();break;/*输入新进的图书信息*/case '2':choice_2_display_all();break;/*显示全部图书信息*/case '3':choice_3_search_according_name();break;/*根据图书名称显示图书的信息*/case '4':choice_4_delete_according_name();break;/*根据图书名称对图书信息进行删除*/case '5':choice_5_sort_according_name();break;/*根据图书名称排序*/case '6':choice_6_display_high_price();break;/*根据价格列出图书信息*/case '7':choice_7_display_according_exitflag();break;/*根据存在状态列出图书信息*/case '8':printf("\n\n\t\t\t谢谢使用,再见!\n\t\t\t按任意键退出!\n");getch();return;default:printf("\n\n\t\t\t请输入菜单中的数字!(1~8)");tm=clock();while(clock()<tm+1800);break;}}}。

相关文档
最新文档