SQLServer课程设计——图书馆管理系统_第1页
SQLServer课程设计——图书馆管理系统_第2页
SQLServer课程设计——图书馆管理系统_第3页
SQLServer课程设计——图书馆管理系统_第4页
SQLServer课程设计——图书馆管理系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、 题目描述本数据库的名字叫做图书馆管理系统数据库,主要是用来存储和修改图书馆中包括图书、图书类型、借阅者重要资料。二、 需求分析随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及

2、时性和正确性。提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。三、 数据库中各表结构的清单3.1数据库中各表主要有: 图书表:数据名称图书编号图书类别编号图书名称作者价格数量图书类别表:数据名称图书类别编号类别描述图书数量借阅表:数据名称借书证号身份证号姓名性别借阅卡表:数据名称借书证号卡号借阅卡等级借阅数初始登记时间3.2数据间的联系:1.图书表<-图书类型表 2.借阅者表<->借阅者身份表 3.图书表-借阅者表3.3数据操作:添加、删减元组、修改相应属性的数据。3. 4字段定义 表名 主键 字段名 字段类型 字段大小 字段格式

3、 查阅类型 1. 出版社 出版社ID 出版社ID 文本 50 文本框 名称 文本 50 文本框 2. 借阅者 借阅号 借阅号 数字 长整型 文本框 姓名 文本 8 文本框 通信地址 文本 50 文本框 电话 数字 长整型 文本框 3. 图书 图书编号 图书编号 文本 50 文本框 分类号 文本 50 组合框 书名 文本 50 文本框 出版社ID 文本 50 文本框 作者 文本 8 文本框 单价 货币 货币 数量 数字 长整型 文本框 4. 图书分类 分类号 分类号 文本 50 文本框 分类名称 文本 50 文本框 5. 借书记录 借阅号 借阅号 数字 长整型 组合框 图书编号 图书编号 文本

4、50 组合框 借阅日期 日期/时间 短日期 应还日期 日期/时间 短日期 已还 文本 50 文本框 6. 还书记录 借阅号 借阅号 数字 长整型 组合框 图书编号 图书编号 文本 50 组合框 还书日期 日期/时间 短日期 四源程序代码:#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<ctype.h> #define STACK_INIT_SIZE 10 #define OK 1 #define TRUE 1 #def

5、ine FALSE 0 #define ERROR 0struct student /*定义学生类型,用于存放借出的书籍*/ int carnum; char lendbook10; student1000;struct employ /*定义职工类型*/ int employnum; char employname15; int employage; char employsex2; char employleve10; long int employtage; employ50;struct book /*定义书的类型*/ int booknum; char bookname10; cha

6、r bookcreat10; int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/ book1000;struct car /*借书卡的数据类型*/ int carnum; char studentname10; int studentclass; car100;huanbook() /*还书函数*/ FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/ int i,n; int carnum; char lendbook10; printf("请你输入你的卡号n"); scanf("

7、;%d",&carnum); fp=fopen("car.txt","r"); /*读取卡号记录*/ for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+) /*for循环判断卡号是否存在*/ if(cari.carnum=carnum) /*卡号存在,进入下一循环*/ n=i; fclose(fp); printf("请输入你要还的书的名字n"); scanf("%s",lendbook); fp=fopen("record.tx

8、t","r"); for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+) /*判断是否借阅了输入的书*/ if(strcmp(studenti.lendbook,lendbook)=0) /*借阅了该书,进入下一循环,否则出错显示*/ fclose(fp); fp=fopen("record.txt","r"); fp2=fopen("bookl.txt","w"); for(i=0;fread(&stud

9、enti,sizeof(struct student),1,fp)!=0;i+) if(strcmp(studenti.lendbook,lendbook)=0) continue; /*删除还掉的书的借书记录*/ fwrite(&studenti,sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/ fclose(fp); fclose(fp2); fp=fopen("record.txt","w"); fp2=fopen("bookl.txt","r"); for

10、(i=0;fread(&studenti,sizeof(struct student),1,fp2)!=0;i+) fwrite(&studenti,sizeof(struct student),1,fp); /*将借书记录信息写回*/ fclose(fp); fclose(fp2); fopen("bookl.txt","w"); /*清临时文件的记录*/ fclose(fp2); fp=fopen("book.txt","r"); fp2=fopen("bookl.txt",

11、"w"); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/ if(i=n) booki.turefalse=1; fwrite(&booki,sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/ continue; fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp); fclose(fp2); fp=fopen("book

12、.txt","w"); fp2=fopen("bookl.txt","r"); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); /*将临时文件写回*/ fclose(fp); fclose(fp2); fopen("bookl.txt","w"); /*清临时文件*/ fclose(fp2); printf("还书完毕

13、,按任意键返回n"); getch(); return 1; printf("你没有借这样的书,任意键返回n"); /*出错提示*/ fclose(fp); getch(); return 0; printf("系统没这样的卡,和管理员联系,按任意键返回n"); /*出错提示*/ fclose(fp); getch(); findbook() FILE *fp; char bookname10; int ture,i; fp=fopen("book.txt","r"); printf("请输入你

14、要查找的书名n"); scanf("%s",bookname); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookname,booki.bookname)=0) if(booki.turefalse=1) printf("这本书的详细资料是:%d %s %s 此书现在无人借阅n按任意键返回n",booki.booknum,booki.bookname,booki.bookcreat); else printf("这本书已经有人借出n&quo

15、t;);fclose(fp);return 0; fclose(fp); return FALSE; printf("没有你要查询的书籍n"); fclose(fp); return FALSE; findbook1() FILE *fp; char bookcreat10; int ture,i; fp=fopen("book.txt","r"); printf("请输入你要查找的作者名n"); scanf("%s",bookcreat); for(i=0;fread(&booki,s

16、izeof(struct book),1,fp)!=0;i+) if(strcmp(bookcreat,booki.bookcreat)=0) if(booki.turefalse=1) printf("这本书的详细资料是:%d %s %s 此书现在无人借阅n按任意键返回n",booki.booknum,booki.bookname,booki.bookcreat); else printf("这本书已经有人借出n");fclose(fp);return 0; fclose(fp); return FALSE; printf("没有你要查询的书

17、籍n"); fclose(fp); return FALSE; lendcount() FILE *fp; int i,n=0; fp=fopen("record.txt","r"); for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+) printf("卡号:%d 借出的书籍:%s n",studenti.carnum,studenti.lendbook); n=n+1; fclose(fp); printf("目前共有%d本书借出n&qu

18、ot;,n); printf("按任意键n"); getch();return n; chabook() char ch5; do printf("-欢迎进入图书查询系统!-n"); printf(" 1:<按书名查找>n"); printf(" 2:<按作者查找>n"); printf(" 0:<返回>n"); printf("请输入0-2,其他输入非法!n"); scanf("%s",&ch5); switc

19、h(ch5) case '1':findbook();getch();break; case '2':findbook1();getch();break; case '0':break; default:printf("无此操作n");getch();break; while(ch5!='0');return FALSE; lendbook() FILE *fp,*fp2; int i,n; int carnum; printf("请你输入你的卡号n"); scanf("%d&qu

20、ot;,&carnum); fp=fopen("car.txt","r"); for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+) if(cari.carnum=carnum) n=i; fclose(fp); printf("请输入你要借阅的书的名字n"); scanf("%s",studentn.lendbook); fp=fopen("book.txt","r"); for(i=0;fread(&

21、booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(booki.bookname,studentn.lendbook)=0) if(booki.turefalse=0) printf("对不起,此书有人借出,请借其他书n");fclose(fp);getch();return; else fclose(fp); fp=fopen("record.txt","a+"); studentn.carnum=carnum; fwrite(&studentn,sizeof(struct st

22、udent),1,fp); fclose(fp); fp=fopen("book.txt","r"); fp2=fopen("bookl.txt","w"); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(booki.bookname,studentn.lendbook)=0) booki.turefalse=0; fwrite(&booki,sizeof(struct book),1,fp2); continue;

23、fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp); fclose(fp2); fp=fopen("book.txt","w"); fp2=fopen("bookl.txt","r"); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); fclose(fp); fclose(fp2); fopen(

24、"bookl.txt","w"); fclose(fp2); printf("借书完毕,按任意键返回n"); getch(); return; printf("不存在这样的书,任意键返回n"); fclose(fp); getch(); return; printf("你的卡号不存在,请申请新卡,按任意键返回n"); fclose(fp); getch(); carcount() FILE *fp; int i,n=0; fp=fopen("car.txt","r&

25、quot;); for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+) printf("第%d张卡<卡号:%d 姓名:%s 班级:%d>n",i+1,cari.carnum,cari.studentname,cari.studentclass); n=n+1; fclose(fp); printf("目前共有%d本书n",n); printf("按任意键n"); getch(); delcar() FILE *fp,*fp2; int i; int carnum; c

26、har choice; fp=fopen("car.txt","r"); fp2=fopen("bookl.txt","w"); printf("请输入你要删除的卡号n"); printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动n"); scanf("%d",&carnum); for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+) if(cari.carnu

27、m!=carnum) fwrite(&cari,sizeof(struct car),1,fp2); fclose(fp); fclose(fp2); printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复Y/Nn"); scanf("%s",&choice); if(choice='y'|choice='Y') fp=fopen("car.txt","w"); fp2=fopen("bookl.txt","r")

28、; for(i=0;fread(&cari,sizeof(struct car),1,fp2)!=0;i+) fwrite(&cari,sizeof(struct car),1,fp); fclose(fp); fclose(fp2); fp2=fopen("bookl.txt","w"); fclose(fp2); printf("按任意键返回n"); getch(); return; else printf("按任意键返回n"); getch(); return; addcar() FILE *

29、fp; int i=0; fp=fopen("car.txt","a+"); printf("请你输入卡号n"); scanf("%d",&cari.carnum); printf("请你输入学生姓名n"); scanf("%s",cari.studentname); printf("请你输入班级n"); scanf("%d",&cari.studentclass); fwrite(&cari,sizeof(st

30、ruct car),1,fp); fclose(fp); printf("输入完毕,任意键返回n"); getch(); changemploy() FILE *fp,*fp2; char employname10,choice;int i; fp=fopen("employ.txt","r"); fp2=fopen("bookl.txt","w"); printf("请你输入要修改的职工的名字n"); scanf("%s",employname); fo

31、r(i=0;fread(&employi,sizeof(struct employ),1,fp)!=0;i+) if(strcmp(employi.employname,employname)=0) printf("你所要修改的职工的资料如下,请选择你要修改的内容n"); printf("<职工号:%d职工名:%s 年龄:%d 性别:%s 学历:%s 工资:%d>n",employi.employnum,employi.employname,employi.employage,employi.employsex,employi.emp

32、loyleve,employi.employtage); printf("2:修改职工名n"); printf("3:修改职工年龄n"); printf("4:修改职工工资n"); printf("5:修改职工学历n"); printf("请输入1-5:"); scanf("%s",&choice); switch(choice) case '1': printf("请输入新的职工号n"); scanf("%d"

33、,&employi.employnum); fwrite(&employi,sizeof(struct employ),1,fp2); break; case '2': printf("请输入新的职工姓名n"); scanf("%s",employi.employname); fwrite(&employi,sizeof(struct employ),1,fp2); break; case '3': printf("请输入新的年龄n"); scanf("%d"

34、,&employi.employage); fwrite(&employi,sizeof(struct employ),1,fp2); break; case '4': printf("请输入新的职工工资n"); scanf("%d",&employi.employtage); fwrite(&employi,sizeof(struct employ),1,fp2); break; case '5': printf("请输入新的职工学历n"); scanf("%

35、s",employi.employleve); fwrite(&employi,sizeof(struct employ),1,fp2); default:printf("没有这样的操作");break; continue; fwrite(&employi,sizeof(struct employ),1,fp2); fclose(fp); fclose(fp2); fp=fopen("employ.txt","w"); fp2=fopen("bookl.txt","r"

36、); for(i=0;fread(&employi,sizeof(struct employ),1,fp2)!=0;i+) fwrite(&employi,sizeof(struct employ),1,fp); fclose(fp); fclose(fp2); fp2=fopen("bookl.txt","w"); fclose(fp2); printf("按任意键返回n"); getchar(); return; delemploy() FILE *fp,*fp2; int i; char employname10

37、,choice; fp=fopen("employ.txt","r"); fp2=fopen("bookl.txt","w"); printf("请输入你要删除的职工名n"); printf("如果你输入的职工存在,系统自动删除该信息!如果不存在,系统不做任何改动n"); scanf("%s",employname); for(i=0;fread(&employi,sizeof(struct employ),1,fp)!=0;i+) if(strc

38、mp(employname,employi.employname)!=0) fwrite(&employi,sizeof(struct employ),1,fp2); fclose(fp); fclose(fp2); printf("是否真的要删除该职工信息?删除后的所有信息将无法恢复Y/Nn"); scanf("%s",&choice); if(choice='y'|choice='Y') fp=fopen("employ.txt","w"); fp2=fopen(

39、"bookl.txt","r"); for(i=0;fread(&employi,sizeof(struct employ),1,fp2)!=0;i+) fwrite(&employi,sizeof(struct employ),1,fp); fclose(fp); fclose(fp2); fp2=fopen("bookl.txt","w"); fclose(fp2); printf("按任意键返回n"); getch(); return TRUE; else printf(&

40、quot;按任意键返回n"); getch(); return FALSE; employcount() FILE *fp; int i,n=0; fp=fopen("employ.txt","r"); for(i=0;fread(&employi,sizeof(struct employ),1,fp)!=0;i+) printf("第%d职工的信息如下:n<职工号:%d 职工名:%s 年龄:%d 性别:%s 学历:%s 工资:%d>n",n+1,employi.employnum,employi.emp

41、loyname,employi.employage,employi.employsex,employi.employleve,employi.employtage); n+; fclose(fp); printf("目前共有%d个职工n",n); printf("按任意键返回n"); addemploy() FILE *fp; char choice='y' int i=1; fp=fopen("employ.txt","a+"); while(choice='y'|choice=&

42、#39;Y') printf("请你输入职工号码n"); scanf("%d",&employi.employnum); printf("请你输入职工名n"); scanf("%s",employi.employname); printf("请输入职工年龄n"); scanf("%d",&employi.employage); printf("请你输入性别n"); scanf("%s",employi.emplo

43、ysex); printf("请你输入职工的学历水平n"); scanf("%s",employi.employleve); printf("请输入职工的工资n"); scanf("%d",&employi.employtage); fwrite(&employi,sizeof(struct employ),1,fp); printf("是否要输入下个职工信息?n"); scanf("%s",&choice); printf("按任意键返回n

44、"); fclose(fp); addbook()FILE *fp;int i=0;char choice='y'fp=fopen("book.txt","a+");while(choice='y'|choice='Y') printf("请你输入第%d本书的序号n",i+1); scanf("%d",&booki.booknum); printf("请你输入书名n"); scanf("%s",booki.bo

45、okname); printf("请你输入书的作者n"); scanf("%s",booki.bookcreat); printf("请设为1或0,1代表书还没人借,0表示书已经借出,设其他值,程序运行时无法得出正常结果n"); printf("请你设定书的状态n"); scanf("%d",&booki.turefalse); fwrite(&booki,sizeof(struct book),1,fp); printf("是否要输入下本书n"); scan

46、f("%s",&choice); fclose(fp); bookcount() FILE *fp; int i,n=0; fp=fopen("book.txt","r"); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(booki.booknum!=0&&strlen(booki.bookname)!=0&&strlen(booki.bookcreat)!=0) printf("第%d本书<序号:%d

47、书名:%s 作者:%s 状态:%d>n",i+1,booki.booknum,booki.bookname,booki.bookcreat,booki.turefalse); n=n+1; fclose(fp); printf("目前共有%d本书n",n); printf("按任意键n"); delbook() FILE *fp,*fp2; int i; char bookname10,choice; fp=fopen("book.txt","r"); fp2=fopen("bookl.t

48、xt","w"); printf("请输入你要删除的书名n"); printf("如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动n"); scanf("%s",bookname); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookname,booki.bookname)!=0) fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp

49、); fclose(fp2); printf("是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复Y/Nn"); scanf("%s",&choice); if(choice='y'|choice='Y') fp=fopen("book.txt","w"); fp2=fopen("bookl.txt","r"); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); fclose(fp); fclose(fp2); fp2=fopen("bookl.txt","w"); fclose

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论