实验设备管理系统设计.docx

上传人:b****6 文档编号:6429029 上传时间:2023-01-06 格式:DOCX 页数:21 大小:208.44KB
下载 相关 举报
实验设备管理系统设计.docx_第1页
第1页 / 共21页
实验设备管理系统设计.docx_第2页
第2页 / 共21页
实验设备管理系统设计.docx_第3页
第3页 / 共21页
实验设备管理系统设计.docx_第4页
第4页 / 共21页
实验设备管理系统设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

实验设备管理系统设计.docx

《实验设备管理系统设计.docx》由会员分享,可在线阅读,更多相关《实验设备管理系统设计.docx(21页珍藏版)》请在冰豆网上搜索。

实验设备管理系统设计.docx

实验设备管理系统设计

 

山东建筑大学

课程设计成果报告

 

题目:

实验设备管理系统设计

课程:

程序设计基础

院(部):

管理工程学院

专业:

班级:

学生姓名:

学号:

指导教师:

完成日期:

 

1设计目的

本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完《程序设计基础》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:

1、巩固和加深学生对C语言课程的基本知识的理解和掌握;

2、掌握C语言编程和程序调试的基本技能;

3、利用C语言进行基本的软件设计;

4、掌握书写程序设计说明文档的能力;

5、提高运用C语言解决实际问题的能力。

2设计任务

(1)实验设备管理系统设计

相关信息包括:

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

计算机、打印机、扫描仪等)、设备价格、购入日期、是否报废、报废日期等(设备编号唯一)。

(2)系统要求实现如下功能:

1)系统功能以菜单方式工作;

2)数据的添加,以两种方式添加:

从键盘直接输入和从现有文件中读取数据;

3)数据的插入:

从指定位置插入一条记录;

4)数据的输出,以两种方式输出:

在屏幕上直接输出和输出数据到文件中;

5)数据的删除;

6)数据的查找,通常以两种方式进行查找,如姓名、记录号(或学号、职工号等);

7)数据的排序;

8)退出系统。

3系统总体设计

4系统详细设计

整个系统可设计为实验设备信息添加模块,实验设备信息显示模块,实验设备信息插入模块,实验设备查找(可用Name和ID两种方式查找)模块,实验设备删除模块,实验设备排序模块

该系统能够提供设备添加和显示操作,对设备进行分类统计,提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备ID号,设备名称,两种方式查询,且实现了对设备的删除功能。

建立实验设备信息结构体,结构体成员包括设备ID号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期;从而实现对设备信息的整体调用。

4.1主函数

voidmain()

{

menu();

}

4.2主菜单

难点:

自定义函数的调用

voidmenu()

{

intflag;

while

(1)

{

printf("\t\t\t\t设备管理系统\n");

printf("************************************目录************************************");

printf("\n1添加记录\n");

printf("\n2显示记录\n");

printf("\n3插入记录\n");

printf("\n4Name查找记录\n");

printf("\n5ID查找记录\n");

printf("\n6删除记录\n");

printf("\n7排序记录\n");

printf("\n0*-EXIT-*\n");

printf("请输入你要操作的序号:

");

scanf("%d",&flag);

switch(flag)

{

case0:

printf("\n>>>>>>>>>>提示:

已经退出系统,ByeBye!

\n");break;

case1:

Add();break;//增加记录

case2:

Disp();break;//显示记录

case3:

Insert();break;//插入记录

case4:

SearchByName();break;//Name查找记录

case5:

SearchByID();break;//ID查找记录

case6:

del();break;//删除记录

case7:

paixu();break;//排序记录

default:

printf("\n>>>>>>>>>>提示:

输入错误!

\n");break;

}

}

}

4.3添加记录

voidAdd()

{

charc='Y';

intchoice;

while(c=='Y')

{

printf("\n请你输入设备ID号:

");

scanf("%d",&eq[n].ID);

printf("\n请输入设备名称:

");

scanf("%s",eq[n].name);

printf("\n请输入设备种类:

");

scanf("%s",eq[n].kind);

printf("\n请输入报废日期:

");

scanf("%s",eq[n].over);

printf("\n请输入设备是否报废:

");

scanf("%s",eq[n].yesno);

printf("\n请输入设备购买时间:

");

scanf("%s",eq[n].time);

printf("\n请输入设备价格:

");

scanf("%s",eq[n].price);

n++;

printf(">>>>>>>>>>提示:

已经完成一条记录的添加。

\n");

printf("输入Y继续,否则输入N!

\n");

fflush(stdin);

c=getchar();

}

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

4.4显示记录

voidDisp1()

{

inti;

printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n");

for(i=0;i

printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price);

}

voidDisp()

{

Disp1();

intchoice;

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

4.5插入记录

难点:

如何找到插入的条件利用for语句进行插入,且使得插入位置后的数据后移;

voidInsert()

{

inti,id,choice;

printf("请输入要插入的位置:

\n");

scanf("%d",&id);

for(i=n;i>id;i--)

eq[i]=eq[i-1];

n++;

printf("请输入需要插入的设备号:

");

scanf("%d",&eq[id].ID);

printf("\n请输入设备名称:

");

scanf("%s",eq[id].name);

printf("\n请输入设备种类:

");

scanf("%s",eq[id].kind);

printf("\n请输入报废日期:

");

scanf("%s",eq[id].over);

printf("\n请输入设备是否报废:

");

scanf("%s",eq[id].yesno);

printf("\n请输入设备购买时间:

");

scanf("%s",eq[id].time);

printf("\n请输入设备价格:

");

scanf("%s",eq[id].price);

printf(">>>>>>>>>>提示:

已经完成记录的插入。

\n");

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

4.6Name查找记录

难点:

如何找到要查找的记录;利用strcmp语句即可;

voidSearchByName()

{

intflag=0,i,choice;

charname[15];

printf("请输入要找的设备名:

");

scanf("%s",name);

for(i=0;i

if(strcmp(name,eq[i].name)==0)

{

flag=1;

printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n");

printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price);

}

if(flag==0)

printf("Nofind!

\n");

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

4.7ID查找记录

voidSearchByID()

{

intflag=0,i,choice;

intid;

printf("请输入要找的设备号:

");

scanf("%d",&id);

for(i=0;i

if(id==eq[i].ID)

{

flag=1;

printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n");

printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price);

}

if(flag==0)

printf("Nofind!

\n");

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

4.8删除记录

难点:

如何使删除后的数据前移;for括号内的表达式,即删除的条件;

voiddel()

{

inti,choice,p,j;

printf("请输入你要删除的设备号:

");

scanf("%d",&p);

for(i=0;i

if(p==eq[i].ID)

break;

if(i

{

for(j=i;j

eq[j]=eq[j+1];

printf("记录已删除。

\n");

}

n--;

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

4.9排序记录

难点:

引用第三变量;如何利用for循环语句;冒泡排序;结构体的整体调用;

voidpaixu()

{

inti,j;

structequipmentt;

printf("排序前数据:

\n");

Disp1();

for(i=0;i

for(j=0;j

if(eq[j].ID>eq[j+1].ID)

{

t=eq[j];

eq[j]=eq[j+1];

eq[j+1]=t;

}

printf("thesortedIDnumbers:

\n");

Disp1();

}

5调试与测试

(1)主菜单

(2)添加记录

(3)显示记录

(4)插入记录

插入后显示

(5)Name查找记录

错误输入后的结果

(6)ID查找记录

(7)删除记录

删除后的显示

(8)排序记录

6课程设计心得与体会

通过这次课程设计使我学会综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力是重要的环节,是对我们实际能力的具体训练和考察过程。

随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。

回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个多星期的日子里,学到了很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。

在设计的过程中,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体的引用,自定义函数的定义与调用及其返回值……这次课程设计之后,一定要把以前所学过的知识重新温故。

在设计中遇到了很多编程问题,但在老师和同学的帮助下,终于得以解决,使得课程设计顺利完成。

7参考文献

1)作者:

王敬华林萍张清国

书名:

《C语言程序设计教程》(第二版)

出版社:

清华大学出版社

出版日期:

2009-08

2)作者:

王敬华等编著

书名:

《C语言程序设计教程(第二版)习题解答与实验指导》

出版社:

清华大学出版社

出版日期:

2009-10

8附录

#include

#include

#defineN100

intn=0;

structequipment

{

intID;

charname[15];

charkind[15];

charover[10];

charyesno[10];

chartime[10];

charprice[10];

}eq[N];

voidmenu();

voidAdd();

voidDisp1();

voidDisp();

voiddel();

voidInsert();

voidSearchByName();

voidSearchByID();

intSearch(intid);

voidpaixu();

voidmain()//主函数

{

menu();

}

voidmenu()//主菜单

{

intflag;

while

(1)

{

printf("\t\t\t\t设备管理系统\n");

printf("************************************目录************************************");

printf("\n1添加记录\n");

printf("\n2显示记录\n");

printf("\n3插入记录\n");

printf("\n4Name查找记录\n");

printf("\n5ID查找记录\n");

printf("\n6删除记录\n");

printf("\n7排序记录\n");

printf("\n0*-EXIT-*\n");

printf("请输入你要操作的序号:

");

scanf("%d",&flag);

switch(flag)

{

case0:

printf("\n>>>>>>>>>>提示:

已经退出系统,ByeBye!

\n");break;

case1:

Add();break;//增加记录

case2:

Disp();break;//显示记录

case3:

Insert();break;//插入记录

case4:

SearchByName();break;//Name查找记录

case5:

SearchByID();break;//ID查找记录

case6:

del();break;//删除记录

case7:

paixu();break;//排序记录

default:

printf("\n>>>>>>>>>>提示:

输入错误!

\n");break;

}

}

}

voidAdd()//添加记录

{

charc='Y';

intchoice;

while(c=='Y')

{

printf("\n请你输入设备ID号:

");

scanf("%d",&eq[n].ID);

printf("\n请输入设备名称:

");

scanf("%s",eq[n].name);

printf("\n请输入设备种类:

");

scanf("%s",eq[n].kind);

printf("\n请输入报废日期:

");

scanf("%s",eq[n].over);

printf("\n请输入设备是否报废:

");

scanf("%s",eq[n].yesno);

printf("\n请输入设备购买时间:

");

scanf("%s",eq[n].time);

printf("\n请输入设备价格:

");

scanf("%s",eq[n].price);

n++;

printf(">>>>>>>>>>提示:

已经完成一条记录的添加。

\n");

printf("输入Y继续,否则输入N!

\n");

fflush(stdin);

c=getchar();

}

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

voidDisp1()//显示记录

{

inti;

printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n");

for(i=0;i

printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price);

}

voidDisp()

{

Disp1();

intchoice;

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

voidSearchByName()//Name查找记录

{

intflag=0,i,choice;

charname[15];

printf("请输入要找的设备名:

");

scanf("%s",name);

for(i=0;i

if(strcmp(name,eq[i].name)==0)

{

flag=1;

printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n");

printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price);

}

if(flag==0)

printf("Nofind!

\n");

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

voidSearchByID()//ID查找记录

{

intflag=0,i,choice;

intid;

printf("请输入要找的设备号:

");

scanf("%d",&id);

for(i=0;i

if(id==eq[i].ID)

{

flag=1;

printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n");

printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price);

}

if(flag==0)

printf("Nofind!

\n");

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

voidInsert()//插入记录

{

inti,id,choice;

printf("请输入要插入的位置:

\n");

scanf("%d",&id);

for(i=n;i>id;i--)

eq[i]=eq[i-1];

n++;

printf("请输入需要插入的设备号:

");

scanf("%d",&eq[id].ID);

printf("\n请输入设备名称:

");

scanf("%s",eq[id].name);

printf("\n请输入设备种类:

");

scanf("%s",eq[id].kind);

printf("\n请输入报废日期:

");

scanf("%s",eq[id].over);

printf("\n请输入设备是否报废:

");

scanf("%s",eq[id].yesno);

printf("\n请输入设备购买时间:

");

scanf("%s",eq[id].time);

printf("\n请输入设备价格:

");

scanf("%s",eq[id].price);

printf(">>>>>>>>>>提示:

已经完成记录的插入。

\n");

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

if(choice==0)

menu();

}

voiddel()//删除记录

{

inti,choice,p,j;

printf("请输入你要删除的设备号:

");

scanf("%d",&p);

for(i=0;i

if(p==eq[i].ID)

break;

if(i

{

for(j=i;j

eq[j]=eq[j+1];

printf("记录已删除。

\n");

}

n--;

printf(">>>>>>>>>>提示:

输入0则返回主菜单!

\n");

scanf("%d",&choice);

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

当前位置:首页 > 表格模板 > 合同协议

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

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