C语言课程设计-图书信息管理系统_第1页
C语言课程设计-图书信息管理系统_第2页
C语言课程设计-图书信息管理系统_第3页
C语言课程设计-图书信息管理系统_第4页
C语言课程设计-图书信息管理系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、内蒙古科技大学课程设计说明书内蒙古科技大学本科生课程设计说明书题 目:C语言课程设计 图书信息管理系统学生姓名:张雨学 号:1567111213专 业:计算机科学与技术班 级:15-计算机2班指导教师:刘立新日 期: 2015 年 12 月 28 日31内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目图书信息管理系统指导教师刘立新时间2013.12.28-2014.1.1一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二

2、、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。图书信息管理系统图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:v 图书信息录入功能(图书信息用文件保存)输入;图书信息浏览功能输出v 查询或排序功能:(至少两种种查询方式)算法按书名查询 按作者名查询v 图书信息的删除与修改v 图书的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调

3、试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天  选择课程设计题目,分析课题的要求第二天  编程第三天  编程及调试第四天  写课程设计报告第五天  提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格

4、。六、建议参考资料1C语言程序设计,谭浩强,清华大学出版社2C语言程序设计课程设计,刘振安,机械工业出版社目 录内蒙古科技大学课程设计任务书I第一章 需求分析31.1引言31.2任务概述31.3数据描述31.4功能需求31.5性能需求31.6运行需求41.7任务计划4第二章概要设计52.1总体设计52.2数据类型设计(或数据结构设计)52.3接口设计 /函数声明52.4运行界面设计5第三章详细设计73.1输入模块设计73.2输出模块设计73.3查找模块设计73.4排序模块设计73.5保存及读取模块设计7第四章测试分析84.1测试程序执行情况84.2出现的问题和解决的方法8第五章用户手册(可选)

5、95.1使用说明95.2运行说明9第六章课程设计总结10附录:程序代码11参考文献12致谢13第一章 需求分析1.1 引言随着高等院校规模的不断扩大,高校图书馆的藏书、管理人员、读者的数量也就越来越多,图书管理涉及到大量的数据处理,一个现在化的图书馆根本不可能手工完成的庞大的数据处理。为方便对图书资料、借还图书等进行高效的管理,特编写程序以提高图书馆的管理效率。1.2 任务概述1目标本图书信息管理系统主要为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界面的提示信息对图书馆信息进行查询、浏览、保存等操作。2运行环境Windows系统3用户特点懂得一些基本的电脑操作即可

6、。4条件与限制计算机一台1.3 数据描述系统数据类型有:整型int,实型float,字符型char,结构体struct;自己定义的数据类型有:DATE , BOOK;1.4 功能需求1功能划分图书信息管理系统可分为三部分:信息管理;借阅处理;查询2功能描述(1)系统主菜单:进入系统和退出系统(2)功能菜单:显示可以进行的操作(3)查询主菜单:根据书名、作者进行查询(4)借还书主菜单:可以进行借书和还书等操作1.5 性能需求1时间特性本系统对时间的要求较高,时间反应要快,在查询时必须能在几秒时间内作出反应,弹出所要查询的各类图书信息以及借阅者信息。2兼容性和扩展性仅限在图书馆使用。1.6 运行需

7、求1硬件环境普通的计算机2软件环境支持的操作系统包括Windows98/XP/NT/2000中文版及以上版本要用到的编译语言vc+6.01.7 任务计划本系统共分为一个主页面模块(主函数部分),五个功能模块(功能函数)分别为图书信息录入、图书信息浏览、图书信息查询、图书信息删除与修改、图书的借阅与归还。设计时应该先写好主函数、定义好全局变量和功能函数,再对五个功能函数进行设计。在每个功能函数和主函数应中加入控制条件使用户可以随时退出系统,并在用户输入指令错误的时候给予提醒和退出选项。第二章 概要设计2.1 总体设计图书录入浏览查询修改与删除借阅与归还退出系统运行退出登录功能2.2 数据类型设计

8、(或数据结构设计)typedef struct dateint year;int month;DATE; 对图书信息采用一个结构体变量,使图书信息的使用及修改更加灵活方便typedef struct book int bookID;char booknameN; /图书名字char wnameN; /作者char chubanN; /出版社char leibianN; /类别int kucun; /库存float money; /价格DATE time;BOOK;2.3 接口设计函数名函数格式函数功能welcome()void欢迎界面gongneng()void系统提供的功能选取luru(BO

9、OK stu);void图书信息的录入liulan(BOOK stu);void图书信息的浏览chazhao();void图书信息的查询xiugai();void图书信息的修改jianhuan();void图书的借出与归还tuichu();void退出main();int主函数(调用分函数) 2.4 运行界面设计欢迎登录界面菜单界面退出界面第三章 详细设计3.1 输入模块设计开始要输入的图书数量输入图书信息保存2菜单要继续输入么?13.2 输出模块设计3.3 查找模块设计开始选择查找方式按作者名查找按照图书名查找主菜单图书信息3.4 排序模块设计按图书编号排序开始主菜单Enter3.5 保存及

10、读取模块设计开始打开并读取文件保存退出结束第四章 测试分析4.1 测试程序执行情况4.1.1主菜单4.1.2录入4.1.3 返回选项4.1.4浏览界面 4.1.4图书的借还4.2 出现的问题和解决的方法漏洞:排序完查找直接运行 case 1:for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)if(stui.bookID>stuj.bookID)temp=stui.bookID;stui.bookID=stuj.bookID;stuj.bookID=temp;for(i=0;i<n;i+)printf(" 图书信息如下n");prin

11、tf( = n"); printf(" 编号:%06d |图书名:%s |作者名:%s |出版社:%s | 类别名:%s|库存:%d |出版时间:%d/%d |价格:%.2fn", stui.bookID,stui.bookname,stui.wname,stui.chuban,stui.leibian,stui.kucun,stui.time.year, stui.time.year,stui.money);printf( = n");getchar();case 2:错误原因:case 2:前一行未加break;第五章 课程设计总结课程设计是培养学生

12、综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。在这一周的程序设计练习当中并不是一帆风顺的。刚开始到指导老师面前听了一大堆,我根本就不知道要做什么,用什么做。我并没有被眼前的一点小困难所击倒,我相信困难总是有办法解决的。于是开始的两天我就在图书馆找相关图书。通过两天的原始知识积累后,我开始尝试着按照自己的想法做了一些小系统。起初会出现很多问题,不是这儿少了就是那错了。在这样那样的错误中我明白编程是一

13、件很严谨的事,容不得半点错误,一步走错,全盘皆输!在出现错误读不懂时我通常是上网搜索错误原因,往往一个问题的解决方法是多种多样的,各自有其精妙之处。有的解决方法浅显易懂,但是易出现漏洞;有的复杂难懂,但是逻辑紧密,无丝毫破绽。编程是一门逻辑的游戏,一但了解其游戏规则,便发现乐趣无穷。有时候自己有很多的想法,但由于自己的水平有限不能很好地实现,每到那时候我就有一种强烈的愿望想要把问题解决,做出自己想的东西。一但解决了问题,那种快乐非亲身经历者不能感受!这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢。附录:程序代码#include&l

14、t;stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define N 100typedef struct date /关于时间的结构体int year; /年份int month; /月份DATE;typedef struct book /关于图书信息的结构体 int bookID;char booknameN; /图书名字char wnameN; /作者char chubanN; /出版社char leibianN; /类别int kucun; /库存float money;

15、 /价格DATE time;BOOK;void welcome(); /*函数功能:欢迎界面*/void gongneng(); /*函数功能:系统提供的功能选取*/void luru(BOOK stu); /*函数功能:图书信息的录入*/void liulan(BOOK stu); /*函数功能:图书信息的浏览*/void chazhao(); /*函数功能:图书信息的查询与排序 */void xiugai(); /*函数功能:图书信息的修改*/void jianhuan(); /*函数功能:图书的借出与归还*/void tuichu(); /*函数功能:退出*/int main() int

16、 n,t=1,i=0; char ZH="1",zh20,MM="1",mm20,temp;while(1) welcome(); puts("n"); puts("请输入选择"); scanf("%d",&n); system("cls"); switch(n) case 0: system("cls"); tuichu(); break; case 1: puts("请输入账号:"); scanf("%s"

17、;,zh); puts("请输入密码:"); do temp=getch(); switch(temp) case 8: if(i>0) printf("b b"); i-=1; break; case 13: mmi='0' t=0; break; default: mmi=temp; i+=1; printf("*"); while(t); printf("n"); if(!strcmp(ZH,zh)&&!strcmp(MM,mm)/比较输入的密码是否和预设密码相同 put

18、s(" 验证通过!请按Enter键进入!n"); getchar(); gongneng(); else printf("账号或密码错误请重新输入n"); getchar( ); system("cls"); break; return 0;/*函数功能:欢迎界面*/void welcome() puts("nnnnnnnnn"); puts(" - "); puts(" * * "); puts(" * * "); puts(" * * &qu

19、ot;); puts(" * 欢 迎 使 用 * "); puts(" * * "); puts(" * 图 书 信 息 管 理 系 统 * "); puts(" * * "); puts(" * * "); puts(" * 1-登录系统 * "); puts(" * 0-退出系统 * "); puts(" - ");/*函数功能:系统提供的功能选取*/void gongneng()int choice,y=1;BOOK stuN;w

20、hile(y) getchar(); system("cls"); printf(" = n"); printf(" 图书信息管理系统 n"); printf(" = n"); printf(" *n");printf(" | 请输入选项(0-6) |n"); printf(" *n"); printf(" | 1-图书信息录入 2-图书信息浏览 |nn"); printf(" | 3-查找图书与排序 4-修改或删除图书 |n

21、n"); printf(" | 5-图书借阅与归还 0-退出登录 |nn"); printf(" *n"); printf("请输入所选择的序号:"); scanf("%d",&choice);system("cls"); switch(choice) case 1: /图书信息录入 luru(stu); getchar(); break; case 2: /图书信息浏览 liulan(stu); break; case 3: /图书信息查询与排序 chazhao(); bre

22、ak; case 4: /图书信息修改 xiugai(); getchar(); break; case 5: /图书借出与归还 jianhuan(); break; case 0: /退出系统 y=0; break; default: printf("请输入06任意一个,请按Enter键返回"); getchar(); break; getchar(); /*函数功能:图书信息的录入*/void luru(BOOK stu)int n;int i;int a;FILE *fp;start:printf("输入要录入的图书数目:n");scanf(&qu

23、ot;%d",&n);getchar();system("cls");for(i=0;i<n;i+) printf("请输入编号:n"); scanf("%d",&stui.bookID);printf("请输入图书名称:n");scanf("%s",stui.bookname);printf("请输入作者名:n");scanf("%s",stui.wname );printf("请输入出版社名:n");

24、scanf("%s",stui.chuban);printf("请输入类别名:n");scanf("%s",stui.leibian);printf("请输入图书库存:n");scanf("%d",&stui.kucun );printf("请输入出版时间:n");scanf("%d%d",&stui.time.year ,&stui.time.month);printf("请输入图书价格:n");scanf(&

25、quot;%f",&stui.money);getchar();if (fp = fopen("book.txt","a") = NULL)printf("未能成功打开记录文件 book.txt!n");exit(0);fwrite(stu,sizeof(BOOK),n,fp);fclose(fp);system("cls");printf("1.继续录入 2.返回主菜单 n");scanf("%d",&a);if(a=1)goto start;el

26、se if(a=2)gongneng();/*函数功能:图书信息的浏览*/void liulan(BOOK stu)FILE *fp;int i,n;if (fp = fopen("book.txt","r") = NULL)printf("未能成功打开记录文件 book.txt!n");exit(0);for (i=0; !feof(fp); i+)fread(&stui, sizeof(BOOK), 1, fp);fclose(fp);n=i;for(i=0;i<n-1;i+) printf(" 图书信息如

27、下n"); printf(" = n"); printf(" 编号%06d |图书名:%s |作者名:%s |出版社:%s | 类别名:%s|库存:%d |出版时间:%d/%d |价格:%.2fn", stui.bookID,stui.bookname,stui.wname,stui.chuban,stui.leibian,stui.kucun,stui.time.year, stui.time.year,stui.money); printf(" = n");/*函数功能:图书信息的查询与排序 */void chazhao

28、()BOOK stuN;int i,j,n,a,b,k;int temp;char sort100;char ch;FILE *fp;if (fp = fopen("book.txt","r") = NULL)printf("未能成功打开记录文件 book.txt!n");exit(0);for (i=0; !feof(fp); i+)fread(&stui, sizeof(BOOK), 1, fp);fclose(fp);n=i-1;printf("选择一项功能以继续:n");printf("

29、1.排序 2.查找 3.返回 n");scanf("%d",&a); switch(a) case 1:for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)if(stui.bookID>stuj.bookID)temp=stui.bookID;stui.bookID=stuj.bookID;stuj.bookID=temp;for(i=0;i<n;i+) printf(" 图书信息如下n"); printf(" = n"); printf(" 编号:%06d |图书名

30、:%s |作者名:%s |出版社:%s | 类别名:%s|库存:%d |出版时间:%d/%d |价格:%.2fn",stui.bookID,stui.bookname,stui.wname,stui.chuban,stui.leibian,stui.kucun,stui.time.year,stui.time.year,stui.money); printf(" = n");getchar();break;case 2: chazhao:printf("1.书名 2.作者n");printf("请选择查找依据:n");sca

31、nf("%d",&b); switch(b) case 1: k=0; printf("请输入书名:");scanf("%s",sort);for(i=0;i<n;i+)if(0=strcmp(sort,stui.bookname)k+;printf(" 图书信息如下n"); printf(" = n"); printf(" 编号%06d |图书名:%s |作者名:%s |出版社:%s | 类别名:%s|库存:%d |出版时间:%d/%d |价格:%.2fn",

32、 stui.bookID,stui.bookname,stui.wname,stui.chuban,stui.leibian,stui.kucun,stui.time.year, stui.time.year,stui.money); printf(" = n");break;if(k=0)printf("没有找到该图书!您要继续查找么?(y/n)n");getchar();ch=getchar();if(ch='y'|ch='Y')goto chazhao;break;case 2:k=0;printf("请输

33、入作者:");scanf("%s",sort);for(i=0;i<n;i+)if(0=strcmp(sort,stui.wname)k+;printf(" 图书信息如下n");printf(" = n"); printf(" 编号%06d |图书名:%s |作者名:%s |出版社:%s | 类别名:%s|库存:%d |出版时间:%d/%d |价格:%.2fn", stui.bookID,stui.bookname,stui.wname,stui.chuban,stui.leibian,stui.k

34、ucun,stui.time.year,stui.time.year,stui.money);printf(" = n");break;if(k=0)printf("没有找到该图书!您要继续查找么?(y/n)n");getchar();ch=getchar();if(ch='y'|ch='Y')goto chazhao;break; getchar(); break; case 3: break; system("cls"); /*函数功能:图书信息的修改*/void xiugai()BOOK stuN

35、;FILE *fp;int i,n,a,c,d,g;char op,ol;xiugaistart:if (fp = fopen("book.txt","r") = NULL)printf("未能成功打开记录文件 book.txt!n");exit(0);for (i=0; !feof(fp); i+)fread(&stui, sizeof(BOOK), 1, fp);fclose(fp);getchar();system("cls");n=i;printf("图书列表:n");for(i

36、=0;i<n-1;i+)printf("序号:%d|书名:%sn",i+1,stui.bookname);printf("输入您想编辑的图书序号:n");scanf("%d",&a);getchar();system("cls");printf("1.修改信息 2.删除n");scanf("%d",&c);if(c=1)getchar();system("cls"); printf("请输入编号:n"); scan

37、f("%d",&stua-1.bookID);printf("请输入图书名称:n");scanf("%s",stua-1.bookname);printf("请输入作者名:n");scanf("%s",stua-1.wname );printf("请输入出版社名:n");scanf("%s",stua-1.chuban);printf("请输入类别名:n");scanf("%s",stua-1.leibian

38、);printf("请输入图书库存:n");scanf("%d",&stua-1.kucun );printf("请输入出版时间:n");scanf("%d%d",&stua-1.time.year ,&stui.time.month);printf("请输入图书价格:n");scanf("%f",&stua-1.money );getchar();system("cls");printf("输入完毕,是否保存?y

39、/nn");scanf("%c",&op);if(op='n'|op='N')goto xiugaistart;getchar();system("cls");if(op='y'|op='Y')printf("正在保存.nn");printf("按任意键进行下一步n"); if (fp = fopen("book.txt","w") = NULL)printf("未能成功打开记录文件

40、book.txt!n");exit(0);fwrite(stu,sizeof(BOOK),n-1,fp);fclose(fp);ifstart:printf("请选择您接下来的操作:n");printf("1.继续修改 2.返回主菜单 n");scanf("%d",&d);if(d=1)goto xiugaistart;if(d=2)gongneng();if(d!=1&&d!=2)printf("输入错误,请重新输入(1/2)n");goto ifstart;elseprintf("确定删除么?y/nn");scanf(" %c",&ol);system("cls");if(ol='y'|ol='Y')for(g=a-1;g<n;g+)stug=stug+1;if (fp = fopen("book.txt","w") = NULL)printf("未能成功打开记录文件 book.txt!n");exit(0);fwrite(stu,sizeof(BOOK),n-2,fp);fclose

温馨提示

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

评论

0/150

提交评论