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

上传人:b****2 文档编号:17652307 上传时间:2023-04-24 格式:DOCX 页数:27 大小:151.03KB
下载 相关 举报
C语言程序设计 图书信息管理系统.docx_第1页
第1页 / 共27页
C语言程序设计 图书信息管理系统.docx_第2页
第2页 / 共27页
C语言程序设计 图书信息管理系统.docx_第3页
第3页 / 共27页
C语言程序设计 图书信息管理系统.docx_第4页
第4页 / 共27页
C语言程序设计 图书信息管理系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

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

《C语言程序设计 图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计 图书信息管理系统.docx(27页珍藏版)》请在冰豆网上搜索。

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

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

电气与信息工程学院

 

2013—2014学年第一学期

 

课程名称C语言课程设计

设计题目《实验设备管理系统》

姓名李海峰

学号12113234

专业班级电子信息工程

指导教师蒋莲

 

2013年9月

 

目录

1、设计任务书3

1.1课程设计题目:

实验设备管理系统3

1.2课程设计要求:

3

1.3课程设计目的:

3

1.4课程设计原理:

4

1.5课程程序涉及的知识点4

2、C语言程序需求分析5

2.1技术可行性5

2.2经济可行性5

2.3需求分析5

2.4内容摘要6

3、功能设计6

3.1应用程序功能详细说明7

3.1.1添加记录7

3.1.2修改记录7

3.1.3显示记录9

3.1.4统计分类9

3.1.5查询记录10

3.2总体设计与模块的划分11

3.3建立实验设备信息结构体12

3.4系统功能模块与设计12

4、程序代码设计13

4.1设计目标13

4.2设计思想13

4.3系统完成功能及功能框图14

4.4程序运行主界面14

4.5核心算法:

14

4.5.1输入设备记录14

4.5.2查看所有设备信息15

4.5.3编辑设备报废与破损记录16

4.5.4按编号查询18

4.5.5设备分类统计19

5、C程序设计结论:

20

5.1存在问题:

20

5.2特点的体现:

20

5.3学习总结:

20

6、后记20

7、参考文献21

8、附录21

8.1系统公共数据结构如下:

21

8.2源程序:

21

1、设计任务书

1.1课程设计题目:

实验设备管理系统

1.2课程设计要求:

实验设备信息包括:

设备编号,设备种类(如:

微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。

主要功能:

1、能够完成对设备的录入和修改

2、对设备进行分类统计

3、设备的破损耗费和遗损处理

4、设备的查询

要求:

使用二进制文件方式存储数据,系统以菜单方式工作

1.3课程设计目的:

学校的规模不断扩大,实验室设备数量急剧增加,有关实验室设备的各个信息也成倍增加。

面对庞大的信息量,需要有专门的实验室设备管理系统来提高工作的效率。

本系统为实验室设备管理信息系统,通过这样的系统,可以做到信息的规范管理,快速查询实验室设备的就业信息。

其开发主要包括数据库的建立和维护以及前端应用程序的开发两个方面。

其次通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

1.4课程设计原理:

总体设计的基本目的就是回答“系统应该如何实现?

”这个问题。

因此总体设计又称为概要设计或初步设计。

通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。

总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互之间的关系。

总体设计工程通常有两个主意阶段组成:

系统设计,确定系统的具体实现方案;结构设计确实软件结构,也就是要确定系统中每个程序拥有哪些模块组成的,以及这些模块之间的关系。

在详细设计之前进行总体设计可以站在全局的高度上,花较少的成本,从中选出最佳方案和最合理的软件结构,从而用较低的成本开发出高质量的软件系统。

1.5课程程序涉及的知识点:

1、函数的调用

2、结构体类型

3、For循环语句

4、数组的熟练运用

5、结构体的灵活运用

6、文件的打开和关闭

7、字符串的比较和复制

2、C语言程序需求分析

2.1技术可行性

一个完备的实验室设备管理信息系统具有以下优越性:

方便校领导查询实验室设备的使用情况,节省时间,可以提高系统的工作效率和准确率。

为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在查询实验室设备信息时发挥高效、便捷的作用,把系统管理员从繁重的工作中解脱出来!

该实验室设备管理信息系统是以ACCESS数据库为后台核心应用、以服务为目的信息平台,对资源进行科学的加工整序和管理维护,为实验室设备信息提供管理。

2.2经济可行性

经济可行性主要依据是成本/效益分析,该系统的目标是以最低的成本,在最短的期限内开发出实验室设备管理信息系统。

系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。

大大节省了学校能源。

并且还提高了实验室设备信息管理的精确度。

方便快速的操作,可减少实验室设备信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上海是工作人员的工资上都为学校节约了开支。

为学校增加了财富。

目标系统开发需求比较低,加上具有成熟的软硬件环境,所以在软硬件的支出上比较低,在为使用者带来便利的同时,也问哦系统的进一步推广创造了条件。

这带来的经济回报将远超过支出,并且最重要的是该软件的开发可以使我们对系统的开发有全面的认识。

从经济角度考虑,此实验室设备管理信息系统开发可行。

2.3需求分析

管理员可以对实验室设备信息进行查询及相关实验室设备的使用情况查看。

管理员可以根据本人用户名和密码登录系统。

在信息系统中,后台数据库存储的地位相当重要,数据库的设计不但对数据的操作速度有影响,还直接关系到软件系统的质量和生存周期。

本系统采用了SQL数据库book,book库中包括教师信息表、借用设备表、仪器表、用户登陆表。

系统首先必须维护实验室中详细资料的数据表,程序能对该表进行写入和读出数据的操作,相应的,该表还有记录读者的借用情况,系统通过该表判断读者是否满意借用条件。

系统还要管理员信息表,记录管理员的资料,检验管理员的登陆,管理员的权限等。

实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。

2.4内容摘要:

实验室设备管理系统是典型的设备信息管理系统,要求能为学校实验室管理提供信息化动态化的管理,方便实验室设备管理工作,提高设备管理质量和使用效率。

而且系统应符合设备管理的有关规定,包括新设备的申请、购买确认、新设备信息录入、旧设备维修和报废及用户管理等。

能满足日常工作的基本需要,并达到操作过程中的直观、方便、实用、安全等有关要求。

实验室设备管理系统是一个典型的信息管理系统,采用面向对象的分析方法,给出系统的基本结构、设计特色、设计模型及实现途径,并且对系统的开发技术进行研究。本系统是一个为适应对学校实验室设备管理的迫切需求而设计开发的软件系统。

 

3、功能设计

3.1应用程序功能详细说明

程序运行后进入管理系统,显示目录:

添加记录、修改记录、显示记录、分类统计、查询记录。

3.1.1添加记录系统提示用户在原有的基础上录入新的设备信息。

流程图如下:

3.1.2修改记录系统要求用户输入要修改的设备ID号,这时系统会显示设备的具体信息,用户只需该设备新的信息按要求输入即可对信息进行修改。

流程图如下:

 

3.1.3显示记录无记录退出,有记录者按要求输出。

流程图如下:

 

3.1.4统计分类若有资料可以统计,则按要求分类统计输出。

流程图如下:

 

3.1.5查询记录若信息为空,则不能查询。

流程图如下:

3.2总体设计与模块的划分

整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。

 

主函数流程图:

I++

3.3建立实验设备信息结构体

结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。

3.4系统功能模块与设计

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。

因为程序错误常局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性。

一个好的电子系统要有一些必要的模块组成,若缺少了某些模块那么这个系统就会有缺陷。

 

4、程序代码设计

4.1设计目标

通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

4.2设计思想

第一,应该具有自动初始化的功能。

实际网络中被管设备数量巨大,通常能达到百位量级,如果初始化时需要管理员手动输入所有被管设备的基本信息,这是一个相当枯燥漫长的过程,会大大降低系统的实用性。

第二,在长时间的运行过程中,系统数据要与实际设备配置保持一致。

实际网络中变化是经常发生的,包括网络的拓扑、设备的配置等都会为了运行的需求而经常变化。

那么,最好能让系统中的数据能自动更新,而不需要每次改变实际网络配置后,还需要管理员手动更新。

第三,操作简单直观,不依赖于太多的专业知识。

无论是信息的展示,还是可以进行的操作,希望都能以简单的页面元素来表达,管理员通过简单的点击、选择等操作就能完成大部分管理任务。

4.3系统完成功能及功能框图

为弥补手工管理设备信息造成的资源共享困难、管理手续繁琐等问题,设备管理系统应能够满足设备信息共享的需求,方便快捷的得到所需要的信息,对实验室的帮助很大。

系统功能如图所示,其主要功能包括:

设备的录入和修改、对设备进行分类统计、设备的破损耗费和遗损处理、设备的查询。

 

4.4程序运行主界面

4.5核心算法:

4.5.1输入设备记录

voidadd_data()

{

structshebeist;

intb;

inti,j,k;

while

(1)

{

j=0;

}

printf("\n\n继续添加设备信息[1-yes0-no]:

");

scanf("%d",&b);

if(b==0)break;

}

save_data();

}

4.5.2查看所有设备信息

voidview_data()

{

inti;

printf("编号\t种类\t名称\t价格\t购入日期\t报废状态(0-报废,1-未报废)\t破损状态(0-破损,1-未破损)");

printf("\n-------------------------------------------------------------------\n");

for(i=0;i

{

printf("%s\t%s\t%s\t%.2f\t%s\t%d\t%d\n",dd.she[i].no,dd.she[i].kind,dd.she[i].name,dd.she[i].price,dd.she[i].time,dd.she[i].bao,dd.she[i].po);

if(dd.she[i].bao==0)printf("该设备报废日期:

%s\t",dd.she[i].time1);

if(dd.she[i].po==0)printf("该设备破损花费:

%.2f\t",dd.she[i].price1);

if(dd.she[i].bao==0||dd.she[i].po==0)printf("该设备处理方式为:

%s\n",dd.she[i].way);

}

}

4.5.3编辑设备报废与破损记录

voidedit_data()

{printf("\n名称:

%s,编号:

%s,种类:

%s,价格:

%.2f,购入日期:

%s",dd.she[k].name,dd.she[k].no,dd.she[k].kind,dd.she[k].price,dd.she[k].time);

printf("\n破损耗费:

");

scanf("%f",&price1);

dd.she[k].price1=price1;

}

}

4.5.4按编号查询

voidquery_data_no()

{

inti,k;

charno[5];

printf("\n请输入要查询设备的编号:

");

scanf("%s",no);

k=-1;

printf("\n\n没有找到该设备(编号-%s)!

",no);

}

}

4.5.5设备分类统计

voidcount_data()

{

charkind[10];

inti,s=0;

printf("请输入要查询的设备种类:

");

scanf("%s",kind);

for(i=0;i

if(strcmp(dd.she[i].kind,kind)==0)

s++;

printf("统计结果:

%s种类的设备有%d件。

",kind,s);

}

 

5、C程序设计结论:

5.1存在问题:

本程序的功能不是很完善,只能完成最基础的设备的录入和修改,不能输入过多设备的存储和查询,只能分类统计出相应类型的数量,不能详细分类统计。

5.2特点的体现:

本C语言程序主要使用二进制文件方式存储数据,系统以菜单方式工作,再结合函数、数组等基本程序设计编写而成。

可以完成最基础的设备的录入和修改,对设备进行分类统计,设备的破损耗费和遗损处理,以及按照设备类型和设备编号的查询。

能够基本满足管理设备工作人员的需求。

5.3学习总结:

此程序设计让我很好的掌握了C语言的一些知识,但也反映了一些不足之处,而且本程序的功能不是很完善,随着以后的学习,我会更好的去探究更完美的更实用的管理系统。

 

6、后记

通过“实验设备管理系统”设计,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。

在具体操作中对这学期所学的C语言的理论知识得到巩固,在实际操作中也发现了自己的不足之处,在以后的上机中应特别注意,同时也体会到了C语言具有的语句简洁,使用灵活,执行效率高等的特点。

通过实际操作,学会C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。

 

7、参考文献

【1】.《C程序设计》(第四版),谭浩强著

【2】.《C程序设计(第四版)学习辅导》谭浩强编著

 

8、附录

8.1系统公共数据结构如下:

#difineM300\\表示可录入设备的最大数量

structshebei\\定义一个名为shebei的结构体,这个结构体定义了设备的基本信息

charno\\设备的编号

charname\\设备的名称

charkind\\设备的种类

chartime\\购买日期

chartime1\\报废日期

charway\\处理方式

floatprice\\设备的价格

floatprice1\\破损花费

intbao\\是否报废

intpo\\是否破损

8.2源程序:

#include"stdio.h"

#include"string.h"

#defineMAX20

structshebei

{

charno[10];//编号

charkind[10];//设备种类

charname[10];//设备名称

floatprice;//价格

chartime[10];//日期

intbao;//是否报废

chartime1[10];//报废日期

intpo;//是否破损

floatprice1;//破损花费

charway[10];//处理方式

}she;

structdata

{

intcount;//当前设备数组中设备的个数

structshebeishe[MAX];//设备数组

}dd;

voidsave_data()

{

FILE*fp;

inti;

if((fp=fopen("d:

\\dada.dat","wb"))==NULL)

{printf("\ncannotopenfile\n");

return;

}

for(i=0;i

if(fwrite(&dd.she[i],sizeof(structshebei),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

}

voidread_data()

{

FILE*fp;

inti,k;

structshebeist;

k=0;

if(access("d:

\\dada.dat",0)==-1)//如果文件不存在

{

fp=fopen("d:

\\dada.dat","wb");

fwrite(&k,sizeof(int),1,fp);

fclose(fp);

}

fp=fopen("d:

\\dada.dat","rb");

fread(&k,sizeof(int),1,fp);

dd.count=k;

for(i=0;i

{

fread(&st,sizeof(structshebei),1,fp);

strcpy(dd.she[i].name,st.name);

strcpy(dd.she[i].no,st.no);

strcpy(dd.she[i].kind,st.kind);

dd.she[i].price=st.price;

strcpy(dd.she[i].time,st.time);

dd.she[i].bao=st.bao;

dd.she[i].po=st.po;

strcpy(dd.she[i].time1,st.time1);

strcpy(dd.she[i].way,st.way);

dd.she[i].price1=st.price1;

}

fclose(fp);

}

voidview_data()

{

inti;

printf("编号\t种类\t名称\t价格\t购入日期\t报废状态(0-报废,1-未报废)\t破损状态(0-破损,1-未破损)");

printf("\n-------------------------------------------------------------------\n");

for(i=0;i

{

printf("%s\t%s\t%s\t%.2f\t%s\t%d\t%d\n",dd.she[i].no,dd.she[i].kind,dd.she[i].name,dd.she[i].price,dd.she[i].time,dd.she[i].bao,dd.she[i].po);

if(dd.she[i].bao==0)printf("该设备报废日期:

%s\t",dd.she[i].time1);

if(dd.she[i].po==0)printf("该设备破损花费:

%.2f\t",dd.she[i].price1);

if(dd.she[i].bao==0||dd.she[i].po==0)printf("该设备处理方式为:

%s\n",dd.she[i].way);

}

}

voidadd_data()

{

structshebeist;

intb;

inti,j,k;

while

(1)

{

j=0;

printf("\n请输入设备信息:

\n");

printf("编号\t种类\t名称\t价格\t购入日期\t");

printf("\n---------------------------------------------------------------\n");

scanf("%s%s%s%f%s",st.no,st.kind,st.name,&st.price,st.time);

for(i=0;i

if(strcmp(dd.she[i].no,st.no)==0)

{

j=1;

printf("输入的设备编号有重复,请重新输入!

");

break;

}

if(j==1)continue;

if(j==0)

{

k=dd.count;

strcpy(dd.she[k].name,st.name);

strcpy(dd.she[k].no,st.no);

strcpy(dd.she[k].kind,st.kind);

dd.she[k].price=st.price;

strcpy(dd.she[k].time,st.time);

dd.she[k].bao=1;

dd.she[k].po=1;

dd.count++;

}

printf("\n\n继续添加设备信息[1-yes0-no]:

");

scanf("%d",&b);

if(b==0)break;

}

save_data();

}

voidedit_data()

{

inti,k;

charno[10],time1[10],way[10];intbao,po;floatprice1;

printf("\n请输入要编辑设备的编号:

");

scanf("%s",no);

k=-1;

for(i=0;i

{

if(strcmp(dd.she[i].no,no)==0)

{

k=i;

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该设备(编号-%s)!

",no);

}

else

{

printf("\n名称:

%s,编号:

%s,种类:

%s,价格:

%.2f,购入日期:

%s",dd.she[k].name,dd.she[k].no,dd.she[k].kind,dd.she[k].price,dd.she[k].time);

printf("\n设备报废与否记录:

");

printf("\n设备状态(0-报废,1-未报废):

");

scanf("%d",&bao);

dd.she[k].bao=bao;

if(bao==0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1