C语言课程设计报告图书管理系统.pdf
《C语言课程设计报告图书管理系统.pdf》由会员分享,可在线阅读,更多相关《C语言课程设计报告图书管理系统.pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、word 格式-可编辑-感谢下载支持课程设计报告课程设计报告图书馆管理系统图书馆管理系统目 录1、题目与要求.22、系统总体设计(要给出必要的文字说明及必要的图示).32.1 功能需求分析(明确选题的功能需求).32.2 系统功能模块划分(要给出系统功能模块图).43、详细设计.43.1 重要数据的数据结构设计(即结构体的声明、变量的定义、文件)43.2 函数的规划和设计(即根据分析需要设计哪些函数及其之间的调用关系).53.3 主控模块(main 函数)的流程分析与设计(要画出主函数的流程图)63.4 主要功能模块的流程分析与设计(分别要画出各主要功能模块实现的流程图).74、课程设计小结.
2、11word 格式-可编辑-感谢下载支持4.1 运行结果.114.2设计中的难点及其解决方法.184.3不足之处.195、小组人员分工说明(明确各个组员的具体分工及实际完成情况)19评语及成绩.206、附录(源代码)21word 格式-可编辑-感谢下载支持1 1、题目与要求、题目与要求(标题的字体格式、段落格式照此,以下同!)(标题的字体格式、段落格式照此,以下同!)题目:图书馆管理系统要求:能够完成图书馆日常操作,数据要能够保存,能够随时取出,并在任何操作后都能保持信息完整性,图书的原始数据需保存到磁盘文件中。2 2、系统总体设计(要给出必要的文字说明及必要的图示)、系统总体设计(要给出必要
3、的文字说明及必要的图示)主要分为四大部分:1、图书查找(包括按书名或作者查找)2、借阅图书3、归还图书4、管理系统(包括添加图书、修改图书、删除图书、图书统计、学生管理、职工管理等)2.12.1 功能需求分析(功能需求分析(明确选题的功能需求明确选题的功能需求)具体功能:具体功能:图书查找图书查找按书名查找。按作者查找。图书借还图书借还借书判断所借书籍号是否存在,若不存在重新输入书籍号。判断该借书证号是否存在,若不存在重新输入借书证号(即办卡功能)。判断该书籍是否已借出,若是则不允许执行借书操作。借书处理包括在“借还书登记”中增加该借书情况,在该图书信息中加上“已借”标记。还书判断所借书是否存
4、在,若不存在重新输入书籍。判断该书是否已借出,若不是则不允许执行还书操作。借书处理包括在“借还书登记”中增加该还书情况,在该图书信息中加上“未借”标记。管理系统:管理系统:添加图书:增加新的图书,同时需检查新书的图书编号是否在原图书当中存在,若是则应取消添加并提示重新输入。word 格式-可编辑-感谢下载支持删除图书资料:通过编号查询该图书,若找到则允许删除,否则提示无该图书信息。删除对象包括该图书资料以及“借还书登记”中的相关记录。删除图书资料:通过编号查询该图书,若找到则允许删除,否则提示无该图书信息。删除对象包括该图书资料以及“借还书登记”中的相关记录。图书统计:统计图书馆里存有多本图书
5、。学生管理:办理借书卡,统计有多少人有该图书馆的借阅卡,取消在该图书馆借阅图书,查看有多图书被借出。职工管理:增加该图书馆管理员工,除掉某员工,员工调职修改资料,统计员工人数等。2.22.2 系统功能模块划分(系统功能模块划分(要给出系统功能模块图要给出系统功能模块图)图书管理系统图图书查找借书还书管理系统学生管理添加图书按作者查询按书名查询删除图书图书统计职工管理修改图书3 3、详细设计、详细设计3.13.1 重要数据的数据结构设计(重要数据的数据结构设计(即结构体的声明、变量的定义、文件即结构体的声明、变量的定义、文件)struct student/*struct student/*定义学
6、生类型,用于存定义学生类型,用于存放借出的书籍放借出的书籍*/*/int carnum;int carnum;申请办卡删除卡号图书统计卡号统计增加员工删除员工修改员工统计员工word 格式-可编辑-感谢下载支持char lendbook10;char lendbook10;student1000;student1000;struct employ/*struct employ/*定义职工类型定义职工类型*/*/int employnum;int employnum;char employname15;char employname15;int employage;int employage;c
7、har employsex2;char employsex2;char employleve10;char employleve10;long int employtage;long int employtage;employ50;employ50;struct book/*struct book/*定义书的类型定义书的类型*/*/int booknum;int booknum;char bookname10;char bookname10;文件有:文件有:图书保存文件:book.txtbook.txt借阅卡文件:car.txtcar.txt借阅信息文件:record.txtrecord.tx
8、t职工信息文件:employ.txtemploy.txt修改文件:bookl.txtbookl.txtchar bookcreat10;char bookcreat10;int turefalse;/*int turefalse;/*用于借书和还书模块判用于借书和还书模块判断一本书是否借出的条件断一本书是否借出的条件*/*/book1000;book1000;struct car/*struct car/*借书卡的数据类型借书卡的数据类型*/*/int carnum;int carnum;char studentname10;char studentname10;int studentclas
9、s;int studentclass;car100;car100;3.23.2 函数的规划和设计(即根据分析需要设计哪些函数及其之间的调用关系)函数的规划和设计(即根据分析需要设计哪些函数及其之间的调用关系)主要设计的函数有:主要设计的函数有:添加图书函数 addbook()删除图书函数 delbook()图书查询函数 chabook()、findbook()、findbook1()图书统计函数 bookcount()办卡函数 addcar()删除卡函数 delcar()卡号统计函数 carcount()word 格式-可编辑-感谢下载支持借书函数 lendbook()借出图书统计函数 len
10、dcount()还书函数 huanbook()修改员工资料函数 changemploy()删除员工函数 delemploy()添加员工函数 addemploy()员工统计函数 employcount()其中有调用关系的有其中有调用关系的有:1、主函数 main():查找图书函数 chabook()、借书函数 lendbook()、添加图书函数 addbook()、删除图书函数 delbook()、修改图书函数 changebook()、图书统计函数 bookcount()、修改员工资料函数 changemploy()、删除员工函数 delemploy()、添加员工函数addemploy()、员
11、工统计函数 employcount()、办卡函数 addcar()、删除卡函数 delcar()、卡号统计函数 carcount()、借出图书统计函数 lendcount()。2、查找图书函数 chabook():按书名查找函数 findbook()、按作者查找函数 findbook1()。3.33.3 主控模块(主控模块(mainmain 函数)的流程分析与设计(函数)的流程分析与设计(要画出主函数的流程图要画出主函数的流程图)开始Main 函数流程输入 iyI=0NI=1NI=2NI=3NI=4还书Ny管理系统借阅图书yy查阅图书y结束word 格式-可编辑-感谢下载支持主函数主要分为 4
12、 个部分的功能(查阅图书、借阅图书、管理系统、还书)和一个退出系统的选择,分别用 i 的值判断其功能。当i=0 时,为退出系统;当 i=1 时,为查阅图书;当 i=2 时,为借阅图书;当i=3 时,为管理系统,当 i=4 时,为还书功能。3.43.4 主要功能模块的流程分析与设计(分别主要功能模块的流程分析与设计(分别要画出各主要功能模块实现的流程图要画出各主要功能模块实现的流程图)主要的功能模块有:管理流程、职工管理、学生管理、图书查找、借书流程、还书流程管理系统管理系统输入 iYI=0NI=1NI=2NI=3NI=4NI=5NI=6学生管理修改图书资料YY添加图书Y删除图书YY书籍统计Y职
13、工管理结束word 格式-可编辑-感谢下载支持职工管理职工管理输入 iI=0NI=1NI=2NI=3NI=4N统计员工Y修改员工Y删除员工Y增加员工Y结束查阅图书图书查找输入 iYI=0NI=1NI=2N按作者查找按书名查找YY结束word 格式-可编辑-感谢下载支持还书流程图还书输入书编号kkkKkk 是否存在YNNKkk 是否借出Y该书没借出还书登记结束word 格式-可编辑-感谢下载支持借书流程图借书NCh=yorch=Y输入书编号kkk输入 ch 判断是否重输NKkk是否存在Ykkk 是 否借出N登记借书Y该书已借出Y结束word 格式-可编辑-感谢下载支持学生管理学生管理输入 iI=
14、0NI=1NI=2NI=3NI=4N卡号统计Y借书统计Y删除卡号Y申请新卡Y结束4 4、课程设计小结、课程设计小结4.14.1 运行结果如下:运行结果如下:word 格式-可编辑-感谢下载支持4.24.2 设计中的难点及其解决方法设计中的难点及其解决方法这个系统设计中,主要的难点在于要两个方面,一是设计的对象分为两个方面(面向书馆的管理方面和学生的借阅方面),二是历史查询的功能实现比较困难复杂。针对第一个问题,我们设计了书馆和借阅人这两个方面的结构体,分别实现不同的功能。针对第二个问题,我们主要以多方面的查询来实现这一功能的。此外,我们在借阅图书这个模块消耗了很多时间和人力,一开始总是运行不了
15、,分析代码是没有问题的,可是就是无法实现功能。后来我们发现,主要是办卡功能被我们弄进去了,以至于借书的记录无法保存。所以我们就将办卡的功能放到图书管理那部分。4.34.3 不足之处不足之处首先,我们设计的界面不够美观整齐,本来想弄出表格的形式,但由于时间的关系,无法具体完善。其次,这个系统中,部分功能的实现不够完善,缺乏人性化。最后,我们认为这个系统的的功能不够具体,缺少一些实用性的功能。而且,我们的系统运行繁琐,不够明朗,也没有使用清屏的功能,界面显得罗嗦。查询功能方面也不具人性化。5 5、小组人员分工说明小组人员分工说明(明确各个组员的具体分工及实际完成情况明确各个组员的具体分工及实际完成
16、情况)学号姓名分工及完成情况word 格式-可编辑-感谢下载支持评语及成绩评语及成绩指导教师评语:指导教师评语:指导教师签名:2011 年月日小组答辩成绩小组答辩成绩学学号号姓姓名名第第 1 1 阶段成阶段成第第 2 2 阶段成阶段成绩(绩(30%30%)绩(绩(60%60%)平时成绩平时成绩(10%10%)最终最终成绩成绩课程课程设计设计成绩成绩评定评定word 格式-可编辑-感谢下载支持附录源代码如下:附录源代码如下:#include#include#include#include#include#define STACK_INIT_SIZE 10#define OK 1#define T
17、RUE 1#define 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;char bookcr
18、eat10;int turefalse;/*用于借书和还书模块判断一本书是否借出的条件*/book1000;struct car/*借书卡的数据类型*/int carnum;char studentname10;int studentclass;car100;huanbook()/*还书函数*/FILE*fp,*fp2;/*定义两个文件指针,fp2 用于修改数据时设立临时文件用,防止数据遭破坏*/int i,n;int carnum;word 格式-可编辑-感谢下载支持char lendbook10;printf(请你输入你的卡号n);scanf(%d,&carnum);fp=fopen(ca
19、r.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.txt,r);for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+)/*判断是否借阅了输入的书*/if(strcmp(studenti.lend
20、book,lendbook)=0)/*借阅了该书,进入下一循环,否则出错显示*/fclose(fp);fp=fopen(record.txt,r);fp2=fopen(bookl.txt,w);for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+)if(strcmp(studenti.lendbook,lendbook)=0)continue;/*删除还掉的书的借书记录*/fwrite(&studenti,sizeof(struct student),1,fp2);/*写入原来没还的书的记录*/fclose(fp);fclose(
21、fp2);fp=fopen(record.txt,w);fp2=fopen(bookl.txt,r);for(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,w);for(i=0;fread(&booki
22、,sizeof(struct book),1,fp)!=0;i+)/*将书的记录写入临时文件,防止word 格式-可编辑-感谢下载支持因为修改信息破坏以前的记录*/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.txt,w);fp2=fopen(bookl.txt,r);for(i=0;fread(&
23、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(还书完毕,按任意键返回n);getch();return 1;printf(你没有借这样的书,任意键返回n);/*出错提示*/fclose(fp);getch();return 0;printf(系统没这样的卡,和管理员联系,按任意键返回n);/*出错提示*/fclose(fp)
24、;getch();findbook()FILE*fp;char bookname10;int ture,i;fp=fopen(book.txt,r);printf(请输入你要查找的书名n);word 格式-可编辑-感谢下载支持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按 任 意 键 返
25、 回n,booki.booknum,booki.bookname,booki.bookcreat);else printf(这本书已经有人借出n);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,sizeof(st
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 图书 管理 系统
限制150内