王文辉图书管理系统_第1页
王文辉图书管理系统_第2页
王文辉图书管理系统_第3页
王文辉图书管理系统_第4页
王文辉图书管理系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

C语言课程设计姓名:王文辉 班级:软件15-1学号:图书管理系统目录内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目图书信息管理系统指导教师时间2015.1.52015.1.9一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。图书信息管理系统图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:v 图书信息录入功能(图书信息用文件保存)输入v 图书信息浏览功能输出v 查询或排序功能:(至少两种种查询方式)算法按书名查询 按作者名查询v 图书信息的删除与修改v 图书的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C语言程序设计,谭浩强,清华大学出版社2C语言程序设计课程设计,刘振安,机械工业出版社一、 题目要求及能实现的功能2二、 程序总体设计2三、 详细设计1、主函数42、各功能模块设计5四、 附 录26题目要求及能实现的功能图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等,使之能提供以下功能:1、新进图书基本信息的输入。2、图书基本信息的查询。3、对撤消图书信息的删除。4、办理借书手续。5、办理还书手续【提示】建立图书管理信息结构体,结构体成员包括图书馆名称、图书编号、单价啊、作者、存在状态、借书人姓名、性别、学号。存在状态设为整型,可用不同的数字代表借还状态。借书和还书手续要注意修改结构题的成员变量存在状态的值。总体设计欢迎进入地大图书管理系统查阅图书借阅图书退出系统图书归还管理系统欢迎进入管理系统增加图书删除图书学生管理系统图书统计修改图书详细设计1、主函数说明主函数较多、较复杂,已经和主菜单函数合并,主菜单函数里还包括了各自的二级菜单,并已经开始了对各个函数的调用。为了程序显示的清晰可读,应先清屏之后调用菜单函数。流程 开 始 显 示 一 系 列 功 能 选 项 输入n,判断n是否是04? 调 用 与 n 相 应 的 模 块NY2、各功能模块设计(2)查阅模块说明输入个员工信息后,浏览、查找、排序时同一个员工的所有信息都要同时显示,所以运用结构体运行。数据信息存放在文件中,一条记录对应一条学生信息,方便管理。流程查 询 系 统按书名查找按作者查找退 出输 入不存在已出借无人借(3)借阅模块说明查阅完图书记录后,用户要借阅图书,系统要在操作过程中提示用户输入流程,根据用户所输入的指令,帮助其完成借阅。流程借 阅 图书输 入 卡 号卡号存在输入书名已出借不存在借阅成功返 回卡号不存在(4)管理模块说明管理模块最为复杂,管理所有的图书及职工、学生的信息。先进入总体的管理系统,在这个系统中重点的操作是图书的管理,为其中的1至4项(分别是增加图书、删除图书、修改图书资料、书籍统计),同时系统还连接了职工、学生管理两个系统,为下一步的操作提供了条件。职工管理系统主要有增加图书、删除图书、修改图书资料、书籍统计,学生管理系统主要有申请新卡、删除卡号、借书统计、卡号统计四个模块,用于管理学生登录信息。流程欢迎进入管理系统增加图书删除图书学生管理系统图书统计修改图书欢迎进入学生管理系统申请新卡删除卡号卡号统计借书统计返回(5)还书模块说明需要根据输入员工的姓名及工号查找相应的记录,找到后增加删除和修改功能。附录图书馆管理系统设计源程序清单#include#include#include#include#include#define STACK_INIT_SIZE 10#define OK 1#define TRUE 1#define ERROR 0struct student int carnum;char lendbook10;student1000;struct bookint booknum;char bookname20;float bookprice;char bookcreat20;int turefalse;book1000;struct carint carnum;char sex5;char studentname20;int studentclass;car1000;findbook()FILE *fp;char bookname10;int i;fp=fopen(book.txt,r);printf(请输入你要查找的书名: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( 书号 书名 作者 n %d %s %s n,booki.booknum,booki.bookname,booki.bookcreat);printf(此书现在无人借阅n按任意键返回n); else printf(这本书已经有人借出n);fclose(fp);return 0;fclose(fp);return 0;printf(没有你要查询的书籍!n);fclose(fp);return 0;findbook1()FILE *fp;char bookcreat10;int i;fp=fopen(book.txt,r);printf(请输入你要查找的作者名:n);scanf(%s,bookcreat);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(bookcreat,booki.bookcreat)=0)if(booki.turefalse=1)printf( 书号 书名 作者 n %d %s %s n,booki.booknum,booki.bookname,booki.bookcreat);printf(此书现在无人借阅n按任意键返回n);else printf(这本书已经有人借出!n);fclose(fp);return 0;fclose(fp);return 0;printf(没有你要查询的书籍n);fclose(fp);return 0;chabook()char ch5;doprintf( 1: 按书名查找 n);printf( 2: 按作者查找 n);printf( 0: 返回 n);printf(请输入02:n);ch5=getch();switch(ch5)case 1:findbook();getch();break;case 2:findbook1();getch();break;case 0:break;default:printf(无此操作!n);getch();break;while(ch5!=0);return 0;lendbook()FILE *fp,*fp2;int i,n;int carnum;printf(请输入借书人的:n卡号:n);scanf(%d,&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(&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 0;elsefclose(fp);fp=fopen(record.txt,a+);studentn.carnum=carnum;fwrite(&studentn,sizeof(struct student),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;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(bookl.txt,w);fclose(fp2);printf(借书完毕,按任意键返回.n);getch();return 0;printf(不存在这样的书,任意键返回.n);fclose(fp);getch();return 0;printf(你的卡号不存在,请申请新卡,按任意键返回.n);fclose(fp);getch();return 0;huanbook()FILE *fp,*fp2;int i,n;int carnum;char lendbook10;printf(tt(_)欢迎进入还书界面(_);printf(n请你输入你的n卡号:n);scanf(%d,&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,lendbook);fp=fopen(record.txt,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(&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(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,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.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(还书完毕,按任意键返回.n);getch();return 1;printf(你没有借这样的书,任意键返回.n);fclose(fp);getch();return 0;printf(没这样的卡,和管理员联系,按任意键返回.n);fclose(fp);getch();return 0;lendcount()FILE *fp;int i,n=0;fp=fopen(record.txt,r);if(fp=fopen(record.txt,r)=0)printf(文件中没有数据!n);printf(按任意键返回.n);getch();return(0);for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+)printf(卡号 借出的书籍 n);printf(%d %s n,studenti.carnum,studenti.lendbook);n=n+1;fclose(fp);printf(目前共有%d本书借出n,n);printf(按任意键.n);getch();return n;addcar()FILE *fp;int i=0;fp=fopen(car.txt,a+);printf(卡号:n);scanf(%d,&cari.carnum);printf(性别:n);scanf(%s,cari.sex);printf(姓名:n);scanf(%s,cari.studentname);printf(班级:n);scanf(%d,&cari.studentclass);fwrite(&cari,sizeof(struct car),1,fp);fclose(fp);printf(输入完毕,任意键返回.n);getch();delcar()FILE *fp,*fp2;int i;int carnum;char choice;fp=fopen(car.txt,r);fp2=fopen(bookl.txt,w);printf(要删除的卡号(不存在则不作改动):n);scanf(%d,&carnum);for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+)if(cari.carnum!=carnum)fwrite(&cari,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(&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按任意键返回.n);getch();return 0;elseprintf(操作已取消!n按任意键返回.n);getch();return 0;carcount()FILE *fp;int i,n=0;fp=fopen(car.txt,r);for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+)printf(第%d张卡 n,i+1);printf( 卡号 性别 姓名 班级 n);printf(ttn);printf( %d %6s %10s %3d nn,cari.carnum,cari.sex,cari.studentname,cari.studentclass);n=n+1;fclose(fp);printf(目前共有%d个学生。n,n);printf(按任意键返回.n);getch();addbook()FILE *fp;int i=0;char choice=y;fp=fopen(book.txt,a+);while(choice=y|choice=Y)printf(书号:n);scanf(%d,&booki.booknum);printf(书名:n);scanf(%s,booki.bookname);printf(作者:n);scanf(%s,booki.bookcreat);printf(单价:n);scanf(%f,&booki.bookprice);printf(请你设定书的状态(1在架/0不在):n);scanf(%d,&booki.turefalse);fwrite(&booki,sizeof(struct book),1,fp);printf(是否要输入下本书(y/n)n);scanf(%s,&choice);fclose(fp);delbook()FILE *fp,*fp2;int i;char bookname10,choice;fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);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);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(&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(fp2);printf(按任意键返回.n);getch();return 0;elseprintf(按任意键返回.n);getch();return 0;changebook()FILE *fp,*fp2;char bookname10,choice;int i;fp=fopen(book.txt,r);fp2=fopen(bookl.txt,w);printf(书名:n);scanf(%s,bookname);for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+)if(strcmp(booki.bookname,bookname)=0)printf(你所要修改的书的资料如下,请选择你要修改的内容:n);printf(序号 书名 作者 n);printf(%d %s %sn,booki.booknum,booki.bookname,booki.bookcreat);printf(1: 修改书号:n);printf(2: 修改书名:n);printf(3: 修改作者:n);printf(4: 修改单价:);printf(请输入13:);choice=getch();switch(choice)case 1:printf(新的书号:n);scanf(%d,&booki.booknum);fwrite(&booki,sizeof(struct book),1,fp2);break;case 2:printf(新的书名:n);scanf(%s,booki.bookname);fwrite(&booki,sizeof(struct book),1,fp2);break;case 3:printf(新的作者:n);scanf(%s,booki.bookcreat);fwrite(&booki,sizeof(struct book),1,fp2);break;case 4:printf(新的单价:);scanf(%f,booki.bookprice);fwrite(&booki,sizeof(struct book),1,fp2);default:printf(没有这样的操作!);break;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(&booki,sizeof(struct book),1,fp2)!=0;i+)fwrite(&booki,sizeof(struct book),1,fp);fclose(fp);fp2=fopen(bookl.txt,w);fclose(fp2);printf(按任意键返回.n);getchar();return 0;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本书n序号 书名 作者 单价 状态 n,i+1);printf(ttn);printf( %d %10s ,booki.booknum,booki.bookname);printf(%15s %4.2f %d(1在/0不在)n,booki.bookcreat,booki.bookprice,booki.turefalse);n=n+1;fclose(fp);printf(目前共有%d

温馨提示

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

最新文档

评论

0/150

提交评论