c语言课程设计图书馆管理系统课程设计.doc_第1页
c语言课程设计图书馆管理系统课程设计.doc_第2页
c语言课程设计图书馆管理系统课程设计.doc_第3页
c语言课程设计图书馆管理系统课程设计.doc_第4页
c语言课程设计图书馆管理系统课程设计.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

c语言程序设计 课 程 设 计 题 目 图书馆管理系统系 (部) 信息工程系班 级 姓 名 学 号 指导教师 2015年 月 日至 月 日 共 周 年 月 日c语言程序设计 课程设计任务书一、设计题目、内容及要求 题目:图书馆管理系统设计 内容:本题目适合于学校图书馆的资料管理和检索。要求程序实现分级管理,管理员可对图书和学生信息进行录入、查询、修改、输出、删除、插入、保存等操作。 要求:程序结构合理、算法准确、语法正确,并生成可执行文件。二、要求的设计成果(课程设计说明书、设计实物、图纸等) 1. 课程设计说明书:课程设计说明书1份,不少于2000字。说明书中要包含需求分析、总体设计、详细设计以及主要的算法描述等内容。 2. 源代码:图书馆管理系统程序清单三、进程安排星期1(7.6):完成需求分析和程序总体设计。星期2(7.7):完成数据录入、删除、修改、插入和浏览功能模块的设计。星期3(7.8):完成密码设置和数据检索模块,程序调试无误,生成可执行文件。星期4(7.9):撰写课程设计说明书初稿。星期5(7.10):提交课程设计说明书、程序和数据。四、主要参考资料1 谭浩强,张基温c语言程序设计教程(第3版)m北京:高等教育出版社,20062 吕凤煮c语言基础教程基础理论与案例m北京:清华大学出版社,20053 黄明、梁旭、万洪莉c语言课程设计m北京:电子工业出版社,20064 郭宁,郑小玲管理信息系统m北京:人民邮电出版社,20065 赵池龙,杨林,陈伟实用软件工程m北京:电子工业出版社,2006指导教师(签名):教研室主任(签名):课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日引言图书馆管理系统的需求分析主要确定系统的主要功能,对系统进行概要描述,对系统的各个主要功能分别进行需求描述,目的是使软件在设计过程中尽量符合客户的需要。图书馆管理系统是一个对学生和图书信息进行录入、查询、修改、输出、删除、插入、保存等操作的管理应用软件,用户可以对文件中存储的学生和图书信息进行查找和浏览。该软件提供了一个简单的人机界面,管理员可以根据提示输入操作项并进行一系列对学生和图书的信息资料的管理操作本系统主要应用结构化的设计思想实现学生和图书信息的增、删、改和查等典型管理功能。各主要模块的数据均存储在文件中,因此包含对文件的读、写等基本操作。在软件开发过程中应用了高级语言程序设计中的基本控制结构,如选择、循环、顺序结构。系统的设计方法是结构化设计方法,采用c语言进行开发。2 总体设计图书馆的信息管理和检索系统的需求分析主要确定系统的主要功能,对系统进行概要描述,对系统的各个主要功能分别进行需求描述,目的是使软件在设计过程中尽量符合客户的需要。2.1 系统概述将程序整体进行模块化处理,使程序编译思路更加清晰,降低了编译程序的难度。图书信息中包含学生姓名、性别、系别、班级、学号、借书时间、还书时间和图书的书名、作者、图书编号等基本信息,程序具有信息录入、删除、修改、浏览、检索和保存功能。2.2 功能需求该软件提供了一个对图书和学生信息进行管理和查看的平台,给用户提供了一个简单友好的用户接口,功能需求如下:2.2.1密码系统通过已定密码进入对应管理目录,从而进行相应的操作功能。2.2.2信息录入根据提示输入学生的姓名、性别、系别、班级、学号和图书书名、作者、图书编号等信息要素。2.2.3信息查询 使用者可以根据系统提示按学生姓名、系别、班级、学号查询学生信息或按图书书名、作者、图书编号查询图书信息。2.2.4信息修改使用者可以根据系统提示对系统中存在的学生的姓名、性别、系别、班级、学号、借书时间、还书时间和图书书名、作者、图书编号等信息进行修改。2.2.5信息输出 可输出学生姓名,性别,系别,班级,学号和图书书名、作者、图书编号等信息。2.2.6信息删除可以删除系统中存在的学生信息和图书信息,学生信息包括姓名、性别、系别、班级、学号等信息,图书信息包括图书书名、作者、图书编号等信息。2.2.7信息插入可插入系统所需的学生和图书信息。2.2.8信息保存可将输入的学生和图书信息保存在制定的文件夹。2.2.9 退出系统2.3 系统功能结构图学生信息录入学生信息查询学生信息修改学生信息输出学生信息删除学生信息插入学生信息保存学生信息图书馆管理系统图书信息录入图书信息查询图书信息图书信息修改图书信息输出插入图书信息保存图书信息图1、系统功能结构图3 详细设计3.1主函数及主界面在主函数中调用密码函数和zonghanshu两个函数,密码函数中运用dowhile循环与if结构、字符串比较函数连用,达到验证密码的作用,又包含system(“cls”);进行清屏,在zonghanshu中通过switchcase 结构达到调用菜单目录的功能。do printf( *n); printf(n);printf( 请 输 入 密 码 :n);printf(n);printf( *n);gets(s2);if(!strcmp(s1,s2) a=1;elsea=0;if(a=1) /*比较输入的密码str1和设定的密码str2, 输出密码正确。*/printf(密码输入正确n);else if(a=0)printf(对不起密码输入错误,请从新输入n);while(a=0);system(cls);3.2 zonghanshu流程图输入iibreak;fun1();break;fun2();break;xiugai();fun4();break;shanchu();break;charu();break;break;save();break;fun8();break;fun9();break;tsxiugai();break;tscharu();break;tssave();pass();break;图2、zonghanshu流程图3.3添加模块系统管理员通过此模块可以在原有记录的基础上随意的添加其他学生和图书信息,通过系统的提醒依次的录入所要记录的学生和图书的所有信息,可以添加多个信息,并且不需重新回到主界面,直接在系统的提示下进行再次输入。do /*输入学生信息函数*/printf(请输入第%d个学生的信息:n,i+1);printf(姓名:);scanf(%s,&);printf(n);printf(性别:);doscanf(%s,&stui.sex);if(strcmp(stui.sex,man)!=0)&(strcmp(stui.sex,woman)!=0) printf(您的输入不合法,请输入man或woman);while(strcmp(stui.sex,man)!=0)&(strcmp(stui.sex,woman)!=0);printf(n);i+;printf(是否继续输入?(y/n);3.4查询模块亦称检索模块。如果信息太多查找起来很不方便,对此我们系统设计了查找模块,使用户可以很方便的找到自己需要的信息。本模块可通过输入学生或图书的一部分信息进行查找,之后系统会显示其所有的信息。输入信息不存在则显示请输入正确的内容。int i;scanf(%d,&i);switch(i) case 1: xingming();break; case 2:xuehao();break; case 3:jieshushijian();break; case 4:huanshushijian();break; case 5:xibie();break; case 6:banji();break; case 7:xingbie();break; break;3.5修改模块考虑到有些信息可能会发生变动,该系统设置了修改模块,如果某个编号的信息发生变动,管理员可以通过此模块对该编号下的其他信息进行修改。int i,item,j;int m=1; char s120,s220; printf(修改前的信息:n);for(i=0;im;i+)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex);printf(借书时间);printf(%sn,stui.j1);printf(还书时间);printf(%sn,stui.h2);printf(系别);printf(%sn,stui.department); printf(班级);printf(%sn,stui.cls);printf(学号);printf(%sn,stui.num); printf(借书数量);printf(%sn,stui.jie);printf(n); printf(请输入要要修改的学生的学号:n); scanf(%s,s1); for(i=0;im;i+) if(strcmp(stui.num,s1)=0) /*比较字符串是否相等*/ j=i; printf(-n); printf(-n);3.6输出模块通过此模块用户可以看见所有系统中的学生或图书信息。利用for语句的控制可以有效的对结构体中所录入的信息进行显示。for(i=0;im;i+)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex); printf(借书数量);printf(%sn,stui.jie);3.7删除模块 通过此模块用户可以删除系统中已无效的信息。按指定字段删除,输入要删除的学生的相应信息,利用字符串比较函数对输入的信息与结构体存储的成员信息进行比对,若相等则利用for语句进行删除,若不相等则提示所要删除的信息不存在。删除语句如下:for(i=0;im;i+)if(strcmp(stui.num,s1)=0) flag=1; for(j=i;jm-1;j+) stuj=stuj+1; 3.8插入模块该模块的作用是插入学生或图书的信息。int i,m;file *fp;char ch; printf(请输入要插入的学生的个数:); scanf(%d,&m);if(fp=fopen(d:filepath,w)=null) printf(n保存失败!); exit(0);for(i=0;im;i+)3.9保存模块该模块的作用是保存输入的学生或图书信息到指定的文件夹中,管理员通过该模块可以把原始录入信息和修改后的信息保存到指定文件夹。void save()/*保存数据函数*/file *fp;int i;char filepath20,ch;printf(输入要保存的文件路径:);scanf(%s,&filepath);if(fp=fopen(d:filepath,w)=null) printf(n保存失败!); exit(0);for(i=0;im;i+) fprintf(fp,%10s%5s%10s%10s%10s%10s%10s%10s,,stui.sex,stui.j1,stui.h2,stui.department,stui.cls,stui.num,stui.jie); fclose(fp); printf( 按0返回主菜单 n); ch=getch(); if(ch=0) system(cls);zonghanshu();3.10退出系统当对系统操作完成以后,想退出此操作只需在界面中选择退出系统模块的代号,系统就自动退出此次运行程序。4、调试经过系统的分析与设计后,就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件和文件,建立一个可执行的系统。然后需要对系统送行测试和排错,保证系统符合预定的要求。获得一个无错的系统实现,调试的结果将确认所完成的系统可以真正使用。测试方法上使用以界面为基础的测试。以界面为基础的测试仅仅依靠软件与其运行环境之间的接口来选择和产生测试资料,而不管软件的具体需求和具体实现细节。本次测试通过模拟一次完整的查询过程,测试范围包括管理员的登录、学生和图书信息的录入、查询、修改、删除、插入等,并且对系统后台的管理功能进行了测试。测试结果显示系统基本能够实现预期的功能,能够提供管理员对学生和图书信息的查找和修改等操作。但是部分功能仍旧需要加强或者改进,如删除学生时将删除该学生的借书记录,该生未归还图书记录也将删除。5 总结这次的c语言程序设计实习有效的培养了学生独立思考的能力,提高了学生的动手操作水平。在具体操作中,巩固了这学期所学的c语言的理论知识,这也是实习的基本目的。通过实际操作,学会了c语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。培养了学生独立思考问题的能力,提高了实际操作水平。通过这次对图书馆管理系统的编译,我们了解了c语言程序设计的思想,我们的程序很实用,但它依然有许多不足之处,我所编译的程序容量有限,而且每次操作都要回到主界面,在这方面该系统还有待于进一步优化。c语言是一种基础的计算机高级语言,具有功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,通过这次的c语言程序设计更加深刻的了解了c语言的好处和其可用性。在这次课程设计中我也知道了自己的动手能力不强,有待于进一步提高。在设计过程中不能够灵活得把书本上的知识与实际相结合,在同组同学的帮助、鼓励和配合下,最终我完成了此次课程设计的任务。这也使我重新树立了自信心,相信自己可以做好,但是要扎实掌握理论知识,灵活运用。总之,通过这次实习我认识到了自己许多不足之处,在今后的学习生活中,一定要勤于思考,扎实掌握理论知识,灵活运用课上所学。参考文献1 谭浩强,张基温c语言程序设计教程(第3版)m北京:高等教育出版社,20062 吕凤煮c语言基础教程基础理论与案例m北京:清华大学出版社,20053 黄明、梁旭、万洪莉c语言课程设计m北京:电子工业出版社,20064 郭宁,郑小玲管理信息系统m北京:人民邮电出版社,20065 赵池龙,杨林,陈伟实用软件工程m北京:电子工业出版社,2006附录程序清单:#include#include#include #include#define m 3#define n 3void zonghanshu();void paixu();struct studentchar name20;char sex7;char j130;char h230;char department20;char cls10;char num20;char jie10;stum;struct tushu char name50; char author60; char num20;tushun;void pass()int a; /*密码函数*/ char s110=11;char s210;do printf( *n); printf(n);printf( 请 输 入 密 码 :n);printf(n);printf( *n);gets(s2);if(!strcmp(s1,s2) a=1;elsea=0;if(a=1) /*比较输入的密码str1和设定的密码str2, 输出密码正确。*/printf(密码输入正确n);else if(a=0)printf(对不起密码输入错误,请从新输入n);while(a=0);system(cls);/*/void fun1()int i=0;char ch;int flag;do /*输入学生信息函数*/printf(请输入第%d个学生的信息:n,i+1);printf(姓名:);scanf(%s,&);printf(n);printf(性别:);doscanf(%s,&stui.sex);if(strcmp(stui.sex,man)!=0)&(strcmp(stui.sex,woman)!=0) printf(您的输入不合法,请输入man或woman);while(strcmp(stui.sex,man)!=0)&(strcmp(stui.sex,woman)!=0);printf(n);printf(借书时间:);scanf(%s,&stui.j1); printf(n);printf(还书时间:);scanf(%s,&stui.h2);printf(n);printf(系别:);scanf(%s,&stui.department);printf(n);printf(班级:);scanf(%s,&stui.cls);printf(n);printf(学号:);scanf(%s,&stui.num);printf(n);printf(借书数量);scanf(%s,&stui.jie);printf(n);i+;printf(是否继续输入?(y/n);ch=getch();if(ch=y|ch=y)flag=1;if(ch=n|ch=n)flag=0;while(flag);system(cls);zonghanshu();/*/void xingming() /*按姓名查询*/ int i;char name30,ch;doprintf(请输入您所要查询的姓名:); scanf(%s,name);for(i=0;im;i+)if(strcmp(,name)=0)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex);printf(借书时间);printf(%sn,stui.j1);printf(还书时间);printf(%sn,stui.h2);printf(系别);printf(%sn,stui.department); printf(班级);printf(%sn,stui.cls); printf(学号);printf(%sn,stui.num);printf(借书数量);printf(%sn,stui.jie);break;if(strcmp(,name)!=0)printf(对不起您所要查询的学生不存在。);while(strcmp(,name)!=0);printf( 按0返回主菜单 n); ch=getch(); if(ch=0) system(cls);zonghanshu();/*/void xuehao() /*按学号查询*/ int i; char num15,ch;doprintf(请输入您所要查询的学号:); scanf(%s,num);for(i=0;im;i+)if(strcmp(stui.num,num)=0)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex);printf(借书时间);printf(%sn,stui.j1);printf(还书时间);printf(%sn,stui.h2);printf(系别);printf(%sn,stui.department); printf(班级);printf(%sn,stui.cls);printf(学号);printf(%sn,stui.num); printf(借书数量);printf(%sn,stui.jie);break;if(strcmp(stui.num,num)!=0)printf(对不起您所要查询的学生不存在。);while(strcmp(stui.num,num)!=0);printf( 按0返回主菜单 n); ch=getch(); if(ch=0) system(cls);zonghanshu();/*/void jieshushijian() /*按借书时间查询*/ int i; char d310,ch;doprintf(请输入您所要查询的借书时间:); scanf(%s,d3);for(i=0;im;i+)if(strcmp(stui.j1,d3)=0)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex);printf(借书时间);printf(%sn,stui.j1);printf(还书时间);printf(%sn,stui.h2);printf(系别);printf(%sn,stui.department); printf(班级);printf(%sn,stui.cls);printf(学号);printf(%sn,stui.num); printf(借书数量);printf(%sn,stui.jie);break;if(strcmp(stui.j1,d3)!=0)printf(对不起您所要查询的学生不存在。);while(strcmp(stui.j1,d3)!=0);printf( 按0返回主菜单 n); ch=getch(); if(ch=0) system(cls);zonghanshu();/*/void huanshushijian() /*按还书时间查询*/ int i; char d410,ch;doprintf(请输入您所要查询的借书时间:); scanf(%s,d4);for(i=0;im;i+)if(strcmp(stui.h2,d4)=0)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex);printf(借书时间);printf(%sn,stui.j1);printf(还书时间);printf(%sn,stui.h2);printf(系别);printf(%sn,stui.department); printf(班级);printf(%sn,stui.cls);printf(学号);printf(%sn,stui.num); printf(借书数量);printf(%sn,stui.jie);break;if(strcmp(stui.h2,d4)!=0)printf(对不起您所要查询的学生不存在。);while(strcmp(stui.h2,d4)!=0);printf( 按0返回主菜单 n); ch=getch(); if(ch=0) system(cls);zonghanshu();/*/void xibie() /*按系别查询*/ int i;char xibie30,ch;doprintf(请输入您所要查询的系别:); scanf(%s,xibie);for(i=0;im;i+)if(strcmp(stui.department,xibie)=0)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex);printf(借书时间);printf(%sn,stui.j1);printf(还书时间);printf(%sn,stui.h2);printf(系别);printf(%sn,stui.department); printf(班级);printf(%sn,stui.cls);printf(学号);printf(%sn,stui.num); printf(借书数量);printf(%sn,stui.jie);break;if(strcmp(stui.department,xibie)!=0)printf(对不起您所要查询的学生不存在。);while(strcmp(stui.department,xibie)!=0);printf( 按0返回主菜单 n); ch=getch(); if(ch=0) system(cls);zonghanshu();/*/void banji() /*按班级查询*/ int i;char banji30,ch;doprintf(请输入您所要查询的班级:); scanf(%s,banji);for(i=0;im;i+)if(strcmp(stui.cls,banji)=0)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex);printf(借书时间);printf(%sn,stui.j1);printf(还书时间);printf(%sn,stui.h2);printf(系别);printf(%sn,stui.department); printf(班级);printf(%sn,stui.cls);printf(学号);printf(%sn,stui.num); printf(借书数量);printf(%sn,stui.jie);break;if(strcmp(stui.cls,banji)!=0)printf(对不起您所要查询的学生不存在。);while(strcmp(stui.cls,banji)!=0);printf( 按0返回主菜单 n); ch=getch(); if(ch=0) system(cls);zonghanshu();/*/void xingbie() /*按性别查询*/ int i;char xingbie30,ch;doprintf(请输入您所要查询的性别:); scanf(%s,xingbie);for(i=0;im;i+)if(strcmp(stui.sex,xingbie)=0)printf(姓名);printf(%sn,);printf(性别);printf(%sn,stui.sex);printf(借书时间);printf(%sn,stui.j1);printf(还书时间);printf(%sn,stui.h2);printf(系别);printf(%sn,stui.department); printf(班级);printf(%sn,stui.cls);printf(学号);printf(%sn,stui.num); printf(借书数量);printf(%sn,stui.jie);break;if(strcmp(stui.sex,xingbie)!=0)printf(对不起您所要查询的学生不存在。);while(strcmp(stui.sex,xingbie)!=0);printf( 按0返回主菜单 n); ch=getch(); if(ch=0) system(cls);zonghanshu();/*/void fun2() /*查询函数*/int i;printf(-n);printf( 1、姓名 n);printf( 2、学号 n); printf( 3、借书时间 n);printf( 4、还书时间 n); printf( 5、系别 n); printf( 6、班级 n);printf( 7、性别 n);printf( 请选择1-7数字键 n);scanf(%d,&i);switch(i) case 1: xingming();break; case 2:xuehao();break; case 3:jieshushijian();break; case 4:huanshushijian();break; case 5:xibie();break; case 6:ba

温馨提示

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

评论

0/150

提交评论