当前位置:文档之家› 图书信息管理系统 C语言程序设计

图书信息管理系统 C语言程序设计

《程序设计基础(C)》课程设计报告图书信息管理系统学生姓名学号班级指导教师日期Xxx学院程序设计课程设计目录目录 (2)前言- 摘要 (3)第一章、C语言课程设计的目的 (4)第二章、总体设计(程序设计组成框图、流程图) (4)(一)、系统功能分析 (4)1、设计图书信息管理系统,使之能提供以下功能: (4)2、查询方式 (4)(二)、程序设计组成框图、流程图 (5)1、本程序的最大框架设计 (5)2、本程序的次级框架设计 (6)第三章、详细设计思路 (8)一、函数功能、入口及出口参数说明,函数调用关系描述 (8)第四章、调试与测试 (10)一、使用软件: (10)1、Visual c++ 6.0 (10)2、超级屏捕专业版(试用版) (10)二、调试结果 (10)系统主界面 (10)功能菜单 (11)图书信息录入菜单 (11)图书查询菜单 (12)第五章、源程序代码及调试结果详细表单 (12)第六章、心得体会 (19)参考文献 (19)2程序设计课程设计前言- 摘要二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。

如何获取信息?图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来。

迫使人们起用新的管理方法来管理图书,如何把图书管理员从繁重的工作中解脱出来呢?本设计主要研究的是用C语言开发图书馆管理功能,其具体体现在图书的检索、查询、录入功能,更要优化了图书馆管理系统设计。

管理信息系统的设计与开发是一项系统工程,为了保证系统的质量,设计人员必须遵守共同的设计原则,尽可能地提高系统的各项指标。

具体的设计原则如下:⑴实用性原则要力求最大限度地满足实际工作的需要,必要的考虑各业务层次、各管理环节数据处理的实用性,把满足用户生产和管理业务作为第一要素进行考虑。

用户接口和操作界面设计则不必进行过多涉及,只要求在dos环境下的简单操作即可。

⑵可扩展性与可维护性原则为适应将来的发展,该系统应具有良好的可扩展性和可维护性。

软件设计尽可能模块化、组件化,使应用系统可灵活配置,适应不同的情况。

⑶安全可靠性原则应用软件与数据库系统的设计要做到安全可靠,防止非法用户的入侵。

数据库的备份策略恰当,以防止灾难性事故发生,这个由于目前水平有限,难以实施进行,所以作略。

⑷用户界面设计原则不必设计,只要在dos环境下运行即可。

⑸数据库设计原则:做到一致性和有效性即可。

3程序设计课程设计第一章、C语言课程设计的目的1、课程设计是对学生进行实践操作训练的重要环节,通过课程设计加深对本课程基本知识的理解和提高本课程基本知识的应用能力。

2、掌握本课程工程设计的主要内容、步骤和方法。

3、提高操作能力,学会应用有关资料进行程序设计的方法。

4、提高独立分析问题、解决问题的能力,逐步增强设计训练。

5、学生要认真读教材,阅读有关规范、设计手册等资料,独立按时完成任务。

6、掌握程序设计逻辑与设计报告单的格式书写。

第二章、总体设计(程序设计组成框图、流程图)(一)、系统功能分析1、设计图书信息管理系统,使之能提供以下功能:A、图书信息录入功能(图书信息用文件保存)--输入B、图书信息浏览功能--输出C、图书信息查询功能--算法2、查询方式A、按书名查询B、按作者名查询图书馆管理系统的管理远权限分为3级:系统管理员、图书馆管理员和一般管理员。

尽管他们具有不同模块的管理权限,但为简单起见,又因为图书馆管理系统的主要实体是书籍和图书,所以。

不再仔细对管理员进行设计。

书籍参数具体包括书籍类型、书名、作者名、图书编号、出版单位、出版时间、价格七个方面的基本信息。

4程序设计课程设计(二)、程序设计组成框图、流程图1、本程序的最大框架设计设计如下:此乃计算机课程设计的要求5程序设计课程设计2、本程序的次级框架设计(1)、大体框架程序设计课程设计(2(3)、图书档案管理系统(4)、程序设计的部分流程图图书查询模块流程程序设计课程设计8是第三章、详细设计思路一、函数功能、入口及出口参数说明,函数调用关系描述1、# include <stdio.h>提供与程序编写有关的函数信息,例如对输入输出函数的声明和宏的定义、全局量的定义等,是系统提供的文件名。

2、# include <stdlib.h>(网上摘录)包含了库函数之后就可以使用很多应用运算,类型转换,程序环境处理等了,比如可以使用sin,cos.sqrt 这些函数什么的stdlib.h 里面定义了五种类型、一些宏和通用工具函数。

类型例如size_t 、wchar_t 、div_t 、ldiv_t 和lldiv_t ;宏例如EXIT_FAILURE 、EXIT_SUCCESS 、RAND_MAX 和MB_CUR_MAX 等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。

3、# include <string.h>string 是C 标准库中声明的一个字符串类型,用来定义字符串变量。

4、结构体比如struct Student { …… }就是一个用户自己建立的结构体类型。

所谓结构体就是,C 语言允许用户建立又不同类型数据组成的组合型的数据结构。

注意:typedef 声明新的类型来代替已有的类型的名字。

5、文件的打开fopen 函数程序设计课程设计用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);其中,“文件指针名”必须是被说明为FILE 类型的指针变量;“文件名”是被打开文件的文件名;“使用文件方式”是指文件的类型和操作要求。

“文件名”是字符串常量或字符串数组6、strcpy把从src地址开始且含有NULL结束符的字符串赋值到以dest开始的地址空间7、C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。

(1)有返回值函数此类函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。

如数学函数即属于此类函数。

由用户定义的这种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。

(2)无返回值函数此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。

这类函数类似于其它语言的过程。

由于函数无须返回值,用户在定义此类函数时可指定它的返回为“空类型”,空类型的说明符为“void”。

8. C语言提供了极为丰富的库函数,这些库函数又可从功能角度作以下分类。

(1)字符类型分类函数(2)转换函数(3)目录路径函数(4)诊断函数(5)图形函数(6)输入输出函数(7)接口函数(8)字符串函数(9)内存管理函数(11)日期和时间函数(12)进程控制函数(13)其它函数9程序设计课程设计第四章、调试与测试一、使用软件:1、Visual c++ 6.02、超级屏捕专业版(试用版)二、调试结果系统主界面10功能菜单图书信息录入菜单图书查询菜单第五章、源程序代码及调试结果详细表单#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define N 100struct book //图书信息基本情况{char num[13]; //图书编号char name[20]; //图书名char publish[100]; //出版社float price; //图书单价char status[100]; //图书状态char author[100]; //作者char time[100]; //出版时间}em[N];int b=0;char password[7]="123456";int pass();void jiemian();void input();void display();void search();void main(){char key;if(pass()==1){jiemian();do{printf("\t\t请选择操作类型:\n");printf("***********\t\t***********\n"); printf("\t\t1 进入录入图书信息\n");printf("\t\t2 进入输出图书信息\n");printf("\t\t3 进入查询图书信息\n");printf("\t\t4 进入保存图书信息\n");printf("\t\t0 退出系统\n");printf("***********\t\t***********\n"); key=getch();switch(key){case'0':{printf("谢谢您的使用\n再见!");exit(0);}case'1':input(); //输入图书信息break;case'2':display(); //显示图书信息break;case'3':search(); //查询图书信息break;default:printf("输入有错误,请按操作要求进行操作");}}while(1);}}int pass(void)//密码验证{char passwor[7];int i,j=2;printf("请输入客户登录密码(提示:六位数字):\n"); gets(passwor);if(!strcmp(passwor,password))//若密码正确{for(i=1;i<=27;i++)printf("*");printf("\n");printf("欢迎进入图书管理系统!\n");return 1;}else//重新输入密码{do{j--;printf("密码错误请重新输入:");gets(password);if(!strcmp(password,password))//若密码正确{for(i=1;i<=27;i++)printf("*");printf("\n");printf("欢迎进入图书管理系统!");return 1;break;}elsecontinue;}while(j>0);printf("抱歉,你的输入次数已到");//只能输入规定的次数return 0;}}voidjiemian() //进入时的界面{int i;for(i=1;i<=27;i++)printf("%");//作者printf("制作人:杜晓宁\t专业:电力工程\n");printf("联系地址:兰州交通大学\n");for(i=1;i<=27;i++)printf("%");}void input()//输入图书信息{char ch;printf("你现在的位置是:\n\t\t输入图书信息栏\n");for(;b <=N; b++)//要输入的选项{printf("请输入图书号:\n"); //图书号scanf("%s",em[b].num);printf("请输入图书名:\n"); //图书名scanf("%s",em[b].name);printf("请输入作者名:\n"); //作者名scanf("%s",em[b].author);printf("请输入时间:\n"); //时间scanf("%s",em[b].time);printf("请输入图书状态:\n"); //图书状态scanf("%s",em[b].status);printf("请输入图书出版商:\n"); //出版商scanf("%s",em[b].publish);printf("按n键退出,其他键继续\n"); //是否继续输入图书信息 ch=getch();if(ch=='N'||ch=='n'){break;}elseprintf("你的位置是:\n\t\t输入图书信息栏 \n");}}void display()//显示图书信息{int i,j;printf("所有的图书信息如下:\n");{for(j=1;j<=80;j++)printf("*");printf("\t图书号\t图书名\t作者名\t时间\n");printf("%-16s%-16s%-8s%s\n",em[i].num,em[i].name,em[i].author,em[i].time); printf("图书状态\t\t出版商\t\t\n");printf("%-24s%-8s%-16s\n",em[i].status,em[i].publish);printf("图书单价:\n");printf("%d\n",em[i].price);for(j=1;j<=80;j++)printf("*");printf("\n");}printf("所有图书信息如上;");}void search(){int i;char nnum[20];char ch;do{printf("请输入要查询的图书号:\n");scanf("%s",nnum);getchar();for(i=0;i<= b;i++){if(strcmp(em[i].num,nnum)==0){printf("该图书信息如下:\n");printf("图书号\t\t图书名\t\t作者名\t时间\n");printf("%-16s%-16s%-8s%s\n",em[i].num,em[i].name,em[i].author,em[i].time); printf("图书状态\t\t\t出版商\t\t\n");printf("%-24s%-8s%-16s\n",em[i].status,em[i].publish);printf("图书单价:\n");printf("%d\n",em[i].price);break;}elseprintf("抱歉,你所找的图书不存在!\n");}printf("请按y键继续查询其他图书信息,其他键结束\n");ch=getchar();getchar();}while(ch=='y'||ch=='Y');return 0;}第六章、心得体会经过五天的编译原理课程设计,我终于顺利的完成该课程设计了。

相关主题