SQL_Server_2005图书管理系统课程设计

合集下载

图书管理系统课程设计报告(sql server)

图书管理系统课程设计报告(sql server)

《Windows程序设计课程设计》报告课设题目图书管理系统学院班级学生姓名学号序号指导教师时间目录一.需求分析 (3)1.1任务概述 (3)1.2 需求说明 (3)1. 3 系统功能模块图 (5)1. 4 系统开发环境简介 (5)二.数据库设计 (6)2. 1数据表的设计与实现 (6)2. 2 相关对象 (6)三.图书管理系统的功能实现 (7)3. 1“登录”界面设计及编码设计 (7)3. 2“图书管理”界面设计及编码设计 (9)3. 3“读者管理”界面设计及编码设计 (13)四. 系统测试 (17)4.1 输入管理员账号登陆 (17)4.2 图书查询 (17)4.3 添加与注销图书 (18)4.4 添加与注销用户 (20)五.结论与体会 (22)一.需求分析1.1任务概述1. 图书馆有各种图书 10 万多册,每天的借书/归还的流量 1000 人。

2. 图书信息包括:每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价、种类和内容简介。

3. 读者信息包括:借书证记录有借阅者的姓名、所在单位、读者类型等。

4. 读者凭借书证借书,教师每次最多借书 15 本书,借书期限最长为 90 天,学生每次最多借书 8 本书,借书期限最长为 30 天。

对于超期未还的读者不能继续借书,每本书每超期一天罚款 0.05 元。

根据所学课程的内容,完成对图书管理系统的系统分析、程序设计、上机调试等工作。

要求所构成的系统和设计的软件能够满足课程设计任务书提出的各项要求。

1.2 需求说明(1)在 Microsoft SQL Server 2005/2008 环境下建立图书管理系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:数据表、视图、约束、存储过程和触发器等;(2)掌握 编程技术,对 MS SQL Server 数据库进行连接和操纵;掌握使用 C#语言开发一个数据库应用系统的基本方法和步骤,熟悉一些基础功能的实现方法,如:数据维护(插删改等操作),数据查询、浏览和 Excel 导出,统计与报表,用户登录和权限管理等。

数据库原理与SQLServer2005应用教程课程设计

数据库原理与SQLServer2005应用教程课程设计

数据库原理与SQLServer2005应用教程课程设计一、概述数据库是组织、存储和管理数据的系统,是计算机实现信息管理和共享的重要手段。

而SQL Server2005则是微软公司推出的一个完整的关系型数据库管理系统。

本次课程设计主要涉及到数据库原理和SQL Server2005应用两个方面,旨在帮助学生更好地掌握数据库的基本原理和操作技能,以及掌握SQL Server2005的使用方法。

二、教学目标1.掌握数据库基本概念和范畴。

2.熟悉关系型数据库管理系统的组成和基本操作。

3.掌握SQL语言的基本知识和语法。

4.掌握SQL Server2005的安装、配置和使用方法。

5.能够实现SQL Server2005对数据的创建、编辑、存储和管理。

三、教学内容3.1 数据库原理数据库是一种特定类型的电子化数据集合。

它们被组织和存储在计算机上,以便在需要时方便地访问和使用。

数据库所涉及到的概念比较复杂,需要掌握的知识点包括:•数据库概述:了解数据库的概念和基本组成。

•数据库结构:了解数据的逻辑结构和物理结构,包括存储结构、查询优化等。

•数据库设计:了解数据库设计的基本步骤和原则,包括实体-关系模型及其应用等。

•数据库管理:了解数据库管理的基本操作,包括备份、恢复、安全等。

3.2 SQL语言SQL语言是结构化查询语言(Structured Query Language)的简称,是一种用于管理和处理关系型数据库的语言。

它可以用来完成创建表、查询数据、修改表格、删除记录等操作。

SQL语言是实现关系型数据库的基础,需要掌握的知识点包括:•SQL语言基础:了解SQL语句的基本结构和语法。

•数据库查询:了解数据库查询的基本操作,包括SELECT、WHERE、GROUP BY等。

•数据库修改:了解数据库修改的基本操作,包括INSERT、UPDATE、DELETE等。

•数据库连接:了解数据库连接的基本操作,包括INNER JOIN、LEFT JOIN、RIGHT JOIN等。

SQLServer课程设计——图书馆管理系统

SQLServer课程设计——图书馆管理系统

一、题目描述本数据库的名字叫做图书馆管理系统数据库,主要是用来存储和修改图书馆中包括图书、图书类型、借阅者重要资料。

二、需求分析随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。

另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。

提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。

三、数据库中各表结构的清单3.1数据库中各表主要有:3.1.1图书表:3.1.2图书类别表:3.1.3借阅表:3.1.4借阅卡表:3.2数据间的联系:1.图书表<--图书类型表2.借阅者表<-->借阅者身份表3.图书表---借阅者表3.3数据操作:添加、删减元组、修改相应属性的数据。

#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#define FALSE 0#define ERROR 0struct student /*定义学生类型,用于存放借出的书籍*/{int carnum;char lendbook[10];}student[1000];struct employ /*定义职工类型*/{int employnum;char employname[15];int employage;char employsex[2];char employleve[10];long int employtage;}employ[50];struct book /*定义书的类型*/{int booknum;char bookname[10];char bookcreat[10];int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/}book[1000];struct car /*借书卡的数据类型*/{int carnum;char studentname[10];int studentclass;}car[100];huanbook() /*还书函数*/{FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/int i,n;int carnum;char lendbook[10];printf("请你输入你的卡号\n");scanf("%d",&carnum);fp=fopen("car.txt","r"); /*读取卡号记录*/for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/{if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/{n=i;fclose(fp);printf("请输入你要还的书的名字\n");scanf("%s",lendbook);fp=fopen("record.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/{if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/{fclose(fp);fp=fopen("record.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){if(strcmp(student[i].lendbook,lendbook)==0){continue; /*删除还掉的书的借书记录*/}fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/}fclose(fp);fclose(fp2);fp=fopen("record.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/}fclose(fp);fclose(fp2);fopen("bookl.txt","w"); /*清临时文件的记录*/fclose(fp2);fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/{if(i==n){book[i].turefalse=1;fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/continue;}fwrite(&book[i],sizeof(struct book),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/}fclose(fp);fclose(fp2);fopen("bookl.txt","w"); /*清临时文件*/fclose(fp2);printf("还书完毕,按任意键返回\n");getch();return 1;}}printf("你没有借这样的书,任意键返回\n"); /*出错提示*/fclose(fp);getch();return 0;}}printf("系统没这样的卡,和管理员联系,按任意键返回\n"); /*出错提示*/fclose(fp);getch();}findbook(){FILE *fp;char bookname[10];int ture,i;fp=fopen("book.txt","r");printf("请输入你要查找的书名\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookname,book[i].bookname)==0){if(book[i].turefalse==1){printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);}else {printf("这本书已经有人借出\n");fclose(fp);return 0;}fclose(fp);return FALSE;}}printf("没有你要查询的书籍\n");fclose(fp);return FALSE;}findbook1(){FILE *fp;char bookcreat[10];int ture,i;fp=fopen("book.txt","r");printf("请输入你要查找的作者名\n");scanf("%s",bookcreat);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookcreat,book[i].bookcreat)==0){if(book[i].turefalse==1){printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);}else {printf("这本书已经有人借出\n");fclose(fp);return 0;}fclose(fp);return FALSE;}}printf("没有你要查询的书籍\n");fclose(fp);return FALSE;}lendcount(){FILE *fp;int i,n=0;fp=fopen("record.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){printf("卡号:%d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook);n=n+1;}fclose(fp);printf("目前共有%d本书借出\n",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);switch(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",&carnum);fp=fopen("car.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){if(car[i].carnum==carnum){n=i;fclose(fp);printf("请输入你要借阅的书的名字\n");scanf("%s",student[n].lendbook);fp=fopen("book.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){if(book[i].turefalse==0) {printf("对不起,此书有人借出,请借其他书\n");fclose(fp);getch();return;}elsefclose(fp);fp=fopen("record.txt","a+");student[n].carnum=carnum;fwrite(&student[n],sizeof(struct student),1,fp);fclose(fp);fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){book[i].turefalse=0;fwrite(&book[i],sizeof(struct book),1,fp2);continue;}fwrite(&book[i],sizeof(struct book),1,fp2);fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp);fclose(fp2);fopen("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");for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){printf("第%d张卡<卡号:%d 姓名:%s 班级:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);n=n+1;}fclose(fp);printf("目前共有%d本书\n",n);printf("按任意键\n");}delcar(){FILE *fp,*fp2;int i;int carnum;char choice;fp=fopen("car.txt","r");fp2=fopen("bookl.txt","w");printf("请输入你要删除的卡号\n");printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");scanf("%d",&carnum);for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){if(car[i].carnum!=carnum){fwrite(&car[i],sizeof(struct car),1,fp2);}}fclose(fp);fclose(fp2);printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n"); scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("car.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++){fwrite(&car[i],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 *fp;int i=0;fp=fopen("car.txt","a+");printf("请你输入卡号\n");scanf("%d",&car[i].carnum);printf("请你输入学生姓名\n");scanf("%s",car[i].studentname);printf("请你输入班级\n");scanf("%d",&car[i].studentclass);fwrite(&car[i],sizeof(struct car),1,fp);fclose(fp);printf("输入完毕,任意键返回\n");getch();}changemploy(){FILE *fp,*fp2;char employname[10],choice;int i;fp=fopen("employ.txt","r");fp2=fopen("bookl.txt","w");printf("请你输入要修改的职工的名字\n");scanf("%s",employname);for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++){if(strcmp(employ[i].employname,employname)==0){printf("你所要修改的职工的资料如下,请选择你要修改的内容\n");printf("<职工号:%d职工名:%s 年龄:%d 性别:%s 学历:%s 工资:%d>\n",employ[i].employnum,employ[i].employname,employ[i].employag e,employ[i].employsex,employ[i].employleve,employ[i].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",&employ[i].employnum);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '2':{printf("请输入新的职工姓名\n");scanf("%s",employ[i].employname);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '3':{printf("请输入新的年龄\n");scanf("%d",&employ[i].employage);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '4':{printf("请输入新的职工工资\n");scanf("%d",&employ[i].employtage);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '5':{printf("请输入新的职工学历\n");scanf("%s",employ[i].employleve);fwrite(&employ[i],sizeof(struct employ),1,fp2);}default:printf("没有这样的操作");break;}continue;}fwrite(&employ[i],sizeof(struct employ),1,fp2); }fclose(fp);fclose(fp2);fp=fopen("employ.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&employ[i],sizeof(struct employ),1,fp2)!=0;i++){fwrite(&employ[i],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 employname[10],choice;fp=fopen("employ.txt","r");fp2=fopen("bookl.txt","w");printf("请输入你要删除的职工名\n");printf("如果你输入的职工存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");scanf("%s",employname);for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++){if(strcmp(employname,employ[i].employname)!=0){fwrite(&employ[i],sizeof(struct employ),1,fp2);}}fclose(fp);fclose(fp2);printf("是否真的要删除该职工信息?删除后的所有信息将无法恢复《Y/N》\n"); scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("employ.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&employ[i],sizeof(struct employ),1,fp2)!=0;i++){fwrite(&employ[i],sizeof(struct employ),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getch();return TRUE;}else{printf("按任意键返回\n");getch();return FALSE;}}employcount(){FILE *fp;int i,n=0;fp=fopen("employ.txt","r");for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++){printf("第%d职工的信息如下:\n<职工号:%d 职工名:%s 年龄:%d 性别:%s 学历:%s 工资:%d>\n",n+1,employ[i].employnum,employ[i].employname,employ[i].emplo yage,employ[i].employsex,employ[i].employleve,employ[i].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=='Y'){printf("请你输入职工号码\n");scanf("%d",&employ[i].employnum);printf("请你输入职工名\n");scanf("%s",employ[i].employname);printf("请输入职工年龄\n");scanf("%d",&employ[i].employage);printf("请你输入性别\n");scanf("%s",employ[i].employsex);printf("请你输入职工的学历水平\n");scanf("%s",employ[i].employleve);printf("请输入职工的工资\n");scanf("%d",&employ[i].employtage);fwrite(&employ[i],sizeof(struct employ),1,fp);printf("是否要输入下个职工信息?\n");scanf("%s",&choice);}printf("按任意键返回\n");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",&book[i].booknum);printf("请你输入书名\n");scanf("%s",book[i].bookname);printf("请你输入书的作者\n");scanf("%s",book[i].bookcreat);printf("请设为1或0,1代表书还没人借,0表示书已经借出,设其他值,程序运行时无法得出正常结果\n");printf("请你设定书的状态\n");scanf("%d",&book[i].turefalse);fwrite(&book[i],sizeof(struct book),1,fp);printf("是否要输入下本书\n");scanf("%s",&choice);}fclose(fp);}bookcount(){FILE *fp;int i,n=0;fp=fopen("book.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcre at)!=0){printf("第%d本书<序号:%d 书名:%s 作者:%s 状态:%d>\n",i+1,book[i].booknum,book[i].bookname,book[i].bookcreat,book[i].t urefalse);n=n+1;}}fclose(fp);printf("目前共有%d本书\n",n);printf("按任意键\n");}delbook(){FILE *fp,*fp2;int i;char bookname[10],choice;fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");printf("请输入你要删除的书名\n");printf("如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookname,book[i].bookname)!=0){fwrite(&book[i],sizeof(struct book),1,fp2);}}fclose(fp);fclose(fp2);printf("是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复《Y/N》\n"); scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getch();return;}else{printf("按任意键返回\n");getch();return;}}changebook(){FILE *fp,*fp2;char bookname[10],choice;int i;fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");printf("请你输入要修改的书籍的书字\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(book[i].bookname,bookname)==0){printf("你所要修改的书的资料如下,请选择你要修改的内容\n");printf("序号:〈%d〉书名:〈%s〉作者:〈%s〉\n",book[i].booknum,book[i].bookname,book[i].bookcreat);printf("1:修改书的序号\n");printf("2:修改书名\n");printf("3:修改作者\n");printf("请输入1-3:");scanf("%s",&choice);switch(choice){case '1':{printf("请输入新的序号\n");scanf("%d",&book[i].booknum);fwrite(&book[i],sizeof(struct book),1,fp2);}break;case '2':{printf("请输入新的书名\n");scanf("%s",book[i].bookname);fwrite(&book[i],sizeof(struct book),1,fp2);}break;case '3':{printf("请输入新的作者\n");scanf("%s",book[i].bookcreat);fwrite(&book[i],sizeof(struct book),1,fp2);}break;defaut:printf("没有这样的操作");break;}continue;}fwrite(&book[i],sizeof(struct book),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getchar();return;}main(){char ch1,ch2,ch3,ch4,ch5;do{printf("\t\t请你选择操作类型:\n");printf(" 1:<查阅图书>\n");printf(" 2:<借阅图书>\n");printf(" 3:<管理系统>\n");printf(" 4:<还书>\n");printf(" 0:<退出>\n");printf("请输入0--4\n");scanf("%s",&ch1);switch(ch1){case '1':chabook();break;case '2':lendbook();;break;case '3':{do{printf("---------------欢迎进入管理系统!--------------\n");printf(" 1:<增加图书>\n");printf(" 2:<删除图书>\n");printf(" 3:<修改图书资料>\n");printf(" 4:<书籍统计>\n");printf(" 5:<职工管理系统>\n");printf(" 6:<学生管理系统>\n");printf(" 0:<返回>\n");printf("请输入0--6,其他输入非法!\n");scanf("%s",&ch2);switch(ch2){case '1':addbook();break;case '2':delbook();break;case '3':changebook();break;case '4':bookcount();getch();break;case '5':{do{printf("---------------欢迎进入职工管理系统!--------------\n");printf(" 1:<增加员工>\n");printf(" 2:<删除员工>\n");printf(" 3:<修改员工资料>\n");printf(" 4:<员工统计>\n");printf(" 0:<返回>\n");printf("请输入0--4,其他输入非法!\n");scanf("%s",&ch3);switch(ch3){case '1':addemploy();getch();break;case '2':delemploy();break;case '3':changemploy();break;case '4':employcount();getch();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch3!='0');}break;case '6':{do{printf("---------------欢迎进入学生管理系统!--------------\n");printf(" 1:<申请新卡>\n");printf(" 2:<删除卡号>\n");printf(" 3:<借书统计>\n");printf(" 4:<卡号统计>\n");printf(" 0:<返回>\n");printf("请输入0--4,其他输入非法!\n");scanf("%s",&ch4);switch(ch4){case '1':addcar();break;case '2':delcar();break;case '3':lendcount();break;case '4':carcount();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch4!='0');}break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch2!='0');}break;case '4':huanbook();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch1!='0');}五.各部分功能介绍图书馆借阅系统实现的功能主要有:1. 图书信息的管理,包括分类,图书编号,书名,出版社,作者,单价及数量,此项可查阅图书信息。

SQLServer2005数据库及应用教学设计

SQLServer2005数据库及应用教学设计

SQL Server 2005 数据库及应用教学设计一、教学目标本课程的教学目标主要是帮助学生:1.理解数据库原理及 SQL 语言基础;2.掌握 SQL Server 2005 数据库系统的基本操作;3.熟悉 SQL Server 2005 数据库应用开发的流程和技术;4.培养学生的数据库设计和开发能力;5.提升学生的综合能力和实践能力。

二、教学内容1. SQL 基础SQL 是结构化查询语言(Structured Query Language)的缩写,是用于访问和操作关系型数据库的标准语言之一。

学生需要熟悉 SQL 的基本语法和数据类型,掌握 SQL 的增删改查操作,了解 SQL 的高级操作和常用函数。

2. SQL Server 2005 数据库系统基础SQL Server 2005 是一种关系型数据库管理系统 (RDBMS),属于微软公司的产品。

本章节将主要讲解 SQL Server 2005 数据库系统的概念、结构、安装和配置方法,包括 SQL Server 数据库的基本对象(如表、视图、存储过程、触发器等)和数据类型,以及 SQL Server 数据库的安全性和备份与恢复。

3. SQL Server 2005 数据库应用开发本章节将主要介绍 SQL Server 2005 数据库应用开发所需的知识和技术,包括 T-SQL 语言、、LINQ、Entity Framework 等技术的基本概念和使用方法,以及 SQL Server 2005 数据库与 .NET 程序集的互操作性。

4. 数据库设计与应用实战本章节将结合实际案例对数据库设计和应用开发进行实践演练,学生将运用所学的技能,独立或小组完成一份小型数据库系统的设计和实现,包括需求分析、数据库设计、SQL 编程、应用程序开发等环节。

三、教学方法本课程主要采用“案例教学、实验教学和项目实践”相结合的教学方法,其中:1.案例教学:采用具体案例贴近生活和工作实际,引导学生分析问题、解决问题,提高学生的分析、综合和创新能力。

sqlserver2005课程设计

sqlserver2005课程设计

sql server 2005课程设计一、教学目标本课程旨在让学生掌握SQL Server 2005的基本原理和操作技能,通过理论学习与实践操作,培养学生的数据库设计与管理能力。

具体目标如下:1.知识目标:•理解数据库的基本概念、原理和SQL Server 2005的体系结构。

•掌握数据库的创建、管理和维护方法。

•熟悉SQL语言,包括数据定义、数据操纵、数据查询和数据控制。

•了解数据库的安全性和完整性控制。

2.技能目标:•能够使用SQL Server 2005进行数据库的设计、创建和维护。

•能够使用SQL语言进行数据的插入、更新、删除和查询操作。

•能够设置数据库的用户权限和角色。

•能够使用SQL Server Management Studio进行数据库管理。

3.情感态度价值观目标:•培养学生对数据库技术的兴趣,提高学生的问题解决能力。

•培养学生团队合作精神,提高学生的沟通与协作能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.数据库基础:介绍数据库的基本概念、类型和特点,以及SQL Server2005的体系结构。

2.数据库设计:讲解数据库设计的原则和方法,以及如何使用SQLServer 2005进行数据库的创建和管理。

3.SQL语言:深入学习SQL语言的基本语法和操作,包括数据定义、数据操纵、数据查询和数据控制。

4.数据库安全与维护:介绍数据库的安全性、完整性控制,以及数据库的备份、恢复和性能优化。

5.数据库应用:通过实际案例,讲解如何使用SQL Server 2005开发数据库应用系统。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式:1.讲授法:用于讲解基本概念、原理和方法。

2.案例分析法:通过分析实际案例,让学生更好地理解数据库设计和应用。

3.实验法:安排实验室实践,让学生动手操作,巩固所学知识。

4.讨论法:学生分组讨论,培养学生的团队合作和沟通能力。

四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:《SQL Server 2005实用教程》2.参考书:《SQL Server 2005高级编程》3.多媒体资料:教学PPT、视频教程等。

数据库系统原理与应用SQLSever2005第二版教学设计

数据库系统原理与应用SQLSever2005第二版教学设计

数据库系统原理与应用SQLServer2005第二版教学设计一、教学目标本教程旨在让学生掌握数据库系统原理与应用SQLServer2005的基础知识,了解SQLServer的概述、体系结构、SQLServer的管理等重要知识点,具备使用和维护SQLServer数据库系统的能力。

二、教学大纲第一章 SQLServer是什么本章主要介绍SQLServer的发展历程以及各版本的特性。

让学生了解到SQLServer是一款基于关系模型的数据库管理系统,其具有高可靠性、安全性、扩展性等多方面的优势。

第二章 SQLServer的体系结构本章通过讲解SQLServer的体系结构,让学生了解SQLServer的多层客户/服务器架构,从而掌握SQLServer与其客户端、服务器和数据存储节点的交互模式、数据处理流程等基本知识。

第三章 SQL编程本章主要讲解SQLServer的语法和使用方法,包括SQLServer中的各种数据类型、SQLServer的DML语句、DDL语句以及备份和恢复操作等等,让学生掌握SQLServer中数据的操作方法和技巧,为以后的数据分析和数据挖掘奠定基础。

第四章 SQLServer管理本章主要介绍SQLServer的数据库管理方面的内容。

包括SQLServer的安装配置、数据库的创建、维护和安全性管理等方面。

通过案例实践和实战演练,让学生深入体会SQLServer管理的重要性,并具备SQLServer常见问题的解决方法。

第五章 SQLServer集成服务本章介绍SQLServer集成服务,包括SQLServer Integration Services、数据仓库和数据挖掘等方面的内容。

学生可以通过使用SSIS工具,进行数据整合、数据清洗、数据集成等基本操作,了解数据仓库与数据挖掘的应用于实际业务中。

第六章 SQLServer事务处理本章介绍SQLServer的事务处理,包括事务的定义、ACID理论、事务的隔离级别、事务的异常处理等方面的内容。

数据库应用技术SQLServer2005基础篇课程设计

数据库应用技术SQLServer2005基础篇课程设计

数据库应用技术SQLServer2005基础篇课程设计一、课程设计目的本次课程设计旨在让学生通过实际操作,掌握SQLServer2005基础知识,并能运用学过的知识进行实际操作与解决问题,提高学生的数据库应用水平。

二、课程设计内容1. 环境搭建使用SQLServer2005 Management Studio(简称SSMS)进行环境搭建,包括创建数据库、数据表、视图等。

2. SQL语言基础讲解SQL语言基础知识,包括DDL(数据定义语言)、DML(数据操作语言)、DCL(数据控制语言)等,让学生了解数据库的基本操作。

3. 数据表设计讲解数据表设计的基本原则和方法,包括数据类型、字段约束、数据表关系等,让学生能够熟练地设计出符合要求和规范的数据表。

4. SQL查询讲解SQL查询的基本语法,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等关键字。

并通过实例让学生了解SQL查询的应用场景和技巧。

5. 数据库备份与还原通过讲解SQLServer的备份和还原功能,让学生了解备份和还原数据库的方法和注意事项,以防止数据丢失和恢复数据。

三、课程设计要求1. 实验环境要求•操作系统:Windows 7及以上•数据库软件:SQLServer2005及以上•SSMS(SQLServer Management Studio)2. 实验过程•独立完成实验,不得抄袭和剽窃。

•所有实验均需要提交实验报告,包含实验目的、实验步骤、实验结果以及总结等内容。

•实验过程中需记录操作步骤和注意事项。

四、课程设计实验题目实验一:环境搭建1.安装SQLServer2005和SSMS。

2.创建一个名为。

Sql-server数据库课程设计-图书馆管理系统

Sql-server数据库课程设计-图书馆管理系统

数据库系统概论课程设计图书馆数据库管理系统目录序言 (1)一、图书馆管理系统E-R图 (2)二、图书馆管理系统功能实现示意图 (3)三、图书馆管理系统功能图例 (4)3.1 读者借阅图书 (4)3.2 读者归还图书 (4)3.3 读者续借图书 (5)3.4 读者查询借阅图书情况 (5)3.5 读者检索图书信息 (6)四、图书馆管理系统附加功能 (7)4.1 往学生表中插入列"系部",其值等于学号中代表系部的位的值,再插入列"专业号",其值等于学号中代表专业的位的值 (7)4.2 查询每个学生对书本的借阅数量 (9)4.3 查询各个专业的学生借阅书本的数量 (11)五、图书馆管理系统数据库、数据表源代码 (12)5.1 图书馆管理系统"数据库"源代码 (12)5.2 图书馆管理系统"数据表"源代码 (12)六、图书馆管理系统存储过程源代码 (15)6.1 读者借阅图书存储过程 (15)6.2 读者还书存储过程 (17)6.3 读者续借图书存储过程 (18)6.4 读者查询借阅图书情况存储过程 (19)6.5 读者检索的图书信息存储过程 (22)七、图书馆管理系统触发器源代码 (23)7.1 借书要求(书本没有库存,则无法进行借书操作) (23)7.2 借书要求(读者最多借阅量) (24)7.3 续借次数要求 (25)7.4 读者还书信息插入RDeleted表 (26)序言本图书馆管理系统谨根据实际需求所创建,创建有如下八个数据表:Book(图书信息表),Dept(学生系部信息表),Major(学生专业信息表),Student(学生信息表),StudentBook(学生借阅图书信息表),Teacher(教师信息表),TeacherBook(教师借阅图书信息表),RDeleted(读者还书信息表)等。

这些数据表结合图书馆数据库中的五个存储过程,即实现了普通图书馆的大部分功能。

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

《SQL Serve数据库》课程设计
设计选题:图书管理系统
班级:经济0901
设计人:陈小煌
学号:20094939
辅导教师:黄珍
目录
一,系统需求分析 (3)
二,数据库分析 (3)
三,数据库设计部分 (3)
(1)实体、联系、属性及E_R图。

(3)
1,实体、联系 (3)
2,图书管理系统E-R图模型 (4)
3,关系模式 (4)
(2)表设计及表结构 (5)
(3)创建数据库、创建表以及添加数据。

(6)
1,创建数据库代码:..................... 错误!未定义书签。

2,创建表代码:......................... 错误!未定义书签。

3,添加数据代码: (8)
(5)实现各种查询功能 (10)
四,设计遇到的问题及解决办法 .............. 五,实训心得………………………………………
一.系统需求分析
图书管理工作繁琐,借阅频繁,包含大量的信息数据,因此
就需要一个完善的图书管理系统来实现对这些数据的有效管理。

本系统主要任务就是对图书、读者、员工、借阅信息、查询进行
统一管理,满足各类用户的需求。

本系统在功能上要实现借阅图
书、续借图书、归还图书、催还图书、信息查询等功能。

二.数据库分析
图书管理系统就是要求图书管理人员通过该系统对图书、读
者、员工、借阅信息等进行统一管理,从而实现功能上的借阅图书、
续借图书、归还图书、催还图书以及信息查询。

这就要求管理人员
能够对数据库进行熟练操作而简单的表查询、触发器的建立、存储
过程的建立以及用户自定义函数的建立等等这些管理数据库的方法
都能对图书馆里系统的管理起到事半功倍的效果。

三.数据库设计部分
(1)实体、联系、属性及E_R图。

根据数据库分析,确定实体及实体间联系,及各个实体和联系的属性并设计出E-R图。

1.实体、联系
实体:图书信息,借阅书籍,归还书籍,借阅人,员工
联系:借阅信息,管理信息
图书信息与借阅书籍、归还书籍及借阅人之间的联系是借阅信息。

图书信息与员工之间的联系是管理信息。

2,图书管理系统E-R图模型
图书管理系统E_R图模型
3,关系模式
(2)表设计及表结构
1,需要的表有:图书信息表,借阅信息表,借阅人表,借阅书籍表,归还书籍表,管理信息表,员工表。

2,以下为各表的表结构
图书信息表结构
列名数据类型长度是否允许为空默认值说明
图书编号char 6 ×无主键
书名nvarchar 50 ×无
书号char 6 √无
类别char 8 ×无
定价money 8 ×无
入库时间smalldatetime 4 √无
库存量tinyint 1 √10
借阅信息表结构
列名数据类型长度是否允许为空默认值说明
借书时间smalldatetime 4×无主键
应还时间smalldatetime 4×无
图书编号char 6×无外键
是否续借char 2×否
借阅人表结构
列名数据类型长度是否允许为空默认值说明
图书证号nvarchar 50 ×无主键
姓名nvarchar 50 ×无
电话nvarchar 50 √无
已借书数目tinyint 1 ×无
能否续借char 8 ×无
单位名称nvarchar 4 √无
借阅书籍表结构
列名数据类型长度是否允许为空默认值说明图书编号char 6 ×无外键
图书证号nvarchar 50 ×无外键
书名nvarchar 50 ×无
归还书籍表结构
列名数据类型长度是否允许为空默认值说明图书编号char 6 ×无外键
图书证号nvarchar 50 ×无外键
书名nvarchar 50 ×无
管理信息表结构
列名数据类型长度是否允许为空默认值说明图书编号char 6 ×无外键
图书证号nvarchar 50 ×无外键smalldatetime 4 ×无外键
登记借书日

是否在库char 2 √是
存放位置char 12 ×无
员工表结构
列名数据类型长度是否允许为空默认值说明员工编号char 6 ×无主键
姓名char 8×无
性别char 2 √女
值日时间char 4 ×无
联系方式nvarchar 50 √无
(3). 创建数据库、创建表以及添加数据。

1.图书信息表
3借阅人表
4借阅书籍表
5归还书籍表
7员工表
(4).添加数据:1图书信息表
2借阅信息表
3借阅人表
4借阅书籍表
5归还书籍表
6管理信息表
7.员工表
(5).实现各种查询功能
1能根据图书编号或者图书名称查询此书在图书馆中是否存在以及此书的书目类别、存在的位置、数量等等。

代码如下:
select是否在库,类别,存放位置,库存量
from图书信息,管理信息
where图书信息.图书编号=管理信息.图书编号and图书信息.图书编
号='000010'
go
2个人借阅信息查询。

输入借阅人编号后,能查出该借阅人的所有信息。

代码如下:
select*
from借阅人
where图书证号='200946'
go
3催还数目查询。

查询出所有已到期、过期、尚未归还的书目信息。

代码如下:
select图书信息.*
from图书信息,管理信息,借阅信息
where图书信息.图书编号=管理信息.图书编号and管理信息.登记借
书日期=借阅信息.借书时间and(getdate()-借书时
间>=30)or(getdate()-借书时间<30)
go
四.设计问题及解决方法
五.实训心得
通过本次的课程设计,我清楚的感觉SQL的重要性。

在生活或工作中有很大的实用性。

而本次实训又让我从新认识到了SQL模型的创建、应用、完整的数据库管理系统。

现在我正在努力掌握SQL 数据库管理系统及其应用开发技术。

这次的试训让我更好的掌握SQL打好了坚实的基础。

我相信我以后会制作出很好的数据库系统。

11。

相关文档
最新文档