搜档网
当前位置:搜档网 › c语言程序设计实验设备管理系统-百度文库

c语言程序设计实验设备管理系统-百度文库

c语言程序设计实验设备管理系统-百度文库
c语言程序设计实验设备管理系统-百度文库

本文由导员0000贡献

doc文档

课程设计报告书实验设备管理系统

班学姓

级:号:名:

0909方 0909-1 20096409 王晶康亚男

指导教师:指导教师:

石家庄铁道大学四方学院

二零一零年七月十五号

1

课程设计报告内容

1. 选择题目

题目:实验设备管理系统题目:实验设备管理系统 2. 内容摘要

实验室设备管理系统是典型的设备信息管理系统,要求能为学校实验摘要:室管理提供信息化动态化的管理,方便实验室设备管理工作,提高设备管理质量和使用效率。而且系统应符合设备管理的有关规定,包括新设备的申请、购买确认、新设备信息录入、旧设备维修和报废及用户管理等。能满足日常工作的基本需要,并达到操作过程中的直观、方便、实用、安全等有关要求。实验室设备管理系统是一个典型的信息管理系统,采用面向对象的分析方法,给出系统的基本结构?设计特色?设计模型及实现途径,并且对系统的开发技术进行研究?本系统是一个为适应对学校实验室设备管理的迫切需求而设计开发的软件系统。
3. 索引关键词

关键词:结构体、文件、数组、函数

4.目录目录

目录……………………………………………………………目录题目要求………………………………………………………3 题目要求设计思想……………………………………………………3-4 设计思想系统完成及功能系统完成及功能……………………………………………… 4 界面设计……………………………………………………4-5 界面设计

2

核心算法及说明………………………………………….5-11 核心算法及说明结论…………………………………………………………11 结论考资料………………………………………………………12 考资料后记…………………………………………………………12 后记附录………………………………………………………12-13 附录

5. 正文

包括课程设计的要求,设计思想,系统完成的功能,及界面设计,核心算法及说明,和结论几部分,正文必须从页首开始。。

5.1 课程设计题目要求

实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。主要功能:主要功能: 1、能够完成对设备的录入和修改 2、对设备进行分类统计 3、设备的破损耗费和遗损处理 4、设备的查询要求:使用二进制文件方式存储数据,系统以菜单方式工作

5.2 设计思想

3

第一,应该具有自动初始化的功能。实际网络中被管设备数量巨大,通常能达到百位量级,如果初始化时需要管理员手动输入所有被管设备的基本信息,这是一个相当枯燥漫长的过程,会大大降低系统的实用性。第二,在长时间的运行过程中,系统数据要与实际设备配置保持一致。实际网络中变化是经常发生的,包括网络的拓扑、设备的配置等都会为了运行的需求而经常变化。那么,最好能让系统中的数据能自动更新,而不需要每次改变实际网络配置后,还需要管理员手动更新。第三,操作简单直观,不依赖于太多的专业知识。无论是信息的展示,还是可以进行的操作,希望都能以简单的页面元素来表达,管理员通过简单的点击、选择等操作就能完成大部分管理任务。

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

为弥补手工管理设备信息造成的资源共享困难、管理手续繁琐等问题,设备管理系统应能够满足设备信息共享的需求,方便快捷的得到所需要的信息,对实验室的帮助很大。系统功能如图所示,其主要功能包括:设备的录入和修改、对设备进行分类统计、设备的破损耗费和遗损处理、设备的查询。系统功能设计

和修改的录入备

设类统计

分对设备进行

处理费和遗

耗设备的破损损

设备的查询

5.4 界面设计

4

5. 5 核心算法:核心算法:

设备结构体

struct shebei { char no[10]; //编号 char kind[10]; //设备种类 char name[10]; // 设备名称float price; //价格char time[10]; // 日期int bao; //是否报废char time1[10]; //报废日期 int po;//是否破损 float price1;//破损花费 char way[10]; //处理方式

5

}; struct data { int count; // 当前设备数组中设备的个数 struct shebei she[MAX]; // 设备数组 } dd; 将数据从结构体数组保存到文件中 void save_data() { FILE *fp; int i,k; k=dd.count; fp=fopen("c:/dada.dat","wb"); fwrite(&k,sizeof(int),1,fp); for(i=0;i<k;i++) fwrite(&dd.she[i],sizeof(struct shebei),1,fp); fclose(fp); } 将数据从文件读到结构体数组中void read_data() { FILE *fp; int i,k; struct shebei st; k=0; if(access("c:/dada.dat",0)==-1) // 如果文件不存在{ fp=fopen("c:/dada.dat","wb"); fwrite(&k,sizeof(int),1,fp); fclose(fp); } fp=fopen("c:/dada.dat","rb"); fread(&k,sizeof(int),1,fp); dd.count=k; for(i=0;i<k;i++) {

6

fread(&st,sizeof(struct shebei),1,fp); strcpy(dd.she[i].name,https://www.sodocs.net/doc/428549535.html,); 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); } 按回车后回到主菜单 void to_menu() { char c1,c2; printf("\n\n\n 按回车键返回主菜单..."); scanf("%c%c",&c1,&c2); menu(); } 查看所有设备信息void view_data() { int i; printf("编号\t 种类\t 名称\t 价格\t 购入日期\t 报废状态(0-报废,1-未报废)\t 破损状态(0-破损,1-未破损)"); printf("\n-------------------------------------------------------------------\n"); for(i=0;i<dd.count;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.s he[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(" 该设备处理方式

7

为:%s\n",dd.she[i].way); } } 输入设备记录 void add_data() { struct shebei st; int b; int i,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,https://www.sodocs.net/doc/428549535.html,,&st.price,st.time);

for(i=0;i<dd.count;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,https://www.sodocs.net/doc/428549535.html,); 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-yes 0-no]:");

8

scanf("%d",&b); if(b==0) break; } save_data(); } 编辑设备报废与破损记录 void edit_data() { int i,k; char no[10],time1[10],way[10];int bao,po;float price1; printf("\n 请输入要编辑设备的编号:"); scanf("%s",no); k=-1; for(i=0;i<dd.count;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) { printf("\n 报废日期:");

9

scanf("%s",time1); strcpy(dd.she[k].time1,time1); } if(bao==1) { printf("\n 设备破损状态:(0-破损,1-未破损)"); scanf("%d",&po); dd.she[k].po=po; if(po==0) { printf("\n 破损耗费:"); scanf("%f",&price1); dd.she[k].price1=price1; } } if(bao==0||po==0) { printf("\n 处理方式:"); scanf("%s",way); strcpy(dd.she[k].way,way); } save_data(); printf("\n\n 编辑设备记录(编号-%s)

成功!",no); } } 查询(编号) void query_data_no() { int i,k; char no[5]; printf("\n 请输入要查询设备的编号:"); scanf("%s",no); k=-1; for(i=0;i<dd.count;i++) { if(strcmp(dd.she[i].no,no)==0)

10

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

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.s he[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); } } if(k==-1) { printf("\n\n 没有找到该设备(编号-%s)!",no); } } 设备分类统计 void count_data() { char kind[10]; int i,s=0; printf("请输入要查询的设备种类:"); scanf("%s",kind); for(i=0;i<dd.count;i++) if(strcmp(dd.she[i].kind,kind)==0) s++; printf("统计结果:%s 种类的设备有%d 件。",kind,s); }

5.6 结论:能够清楚的实现本程序的功能。此程序设计让我很好

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

11

的更实用的管理系统。

6.后记后记

通过“实验设备管理系统”设计,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从 C 语言这门课程开始,已发现程序设计的乐趣,在学习 C 语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。在具体操作中对这学期所学的 C 语言的理论知识得到巩固,在实际操作中也发现了自己的不足之处,在以后的上机中应特别注意,同时也体会到了 C 语言具有的语句简洁,使用灵活,执行效率高等的特点。通过实际操作,学会 C 语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。

7.参考文献参考文献

内容:C 程序设计(第三版)社谭浩强(著)清华大学出版

8.附录附录

系统公共数据结构如下: #difine M 300 \\表示可录入设备的最大数量 struct shebei \\定义一个名为 shebei 的结构体,这个结构体定义了设备

的基本信息 char no char name char kind char time char time1 char way float price \\设备的编号 \\设备的名称 \\设备的种类 \\ 购买日期 \\ 报废日期 \\ 处理方式 \\ 设备的价格

12

float price1 int bao int po

\\破损花费 \\ 是否报废 \\是否破损

13

相关主题