实验设备管理系统C语言课程设计报告Word下载.docx
- 文档编号:5770737
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:30
- 大小:192.71KB
实验设备管理系统C语言课程设计报告Word下载.docx
《实验设备管理系统C语言课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《实验设备管理系统C语言课程设计报告Word下载.docx(30页珍藏版)》请在冰点文库上搜索。
voidmain()
{
Node*equip;
equip=(Node*)malloc(sizeof(Node));
equip->
next=NULL;
intflag;
否是
printf("
\t\t\t\t实验室设备管理系统\n"
);
while
(1)
{
system("
cls"
*************目录*************\n"
\n1.添加记录\n"
\n2.修改记录\n"
\n3.显示记录\n"
\n4.查询设备\n"
\n5.删除设备记录\n"
\n6.用文件保存\n"
\n7.简单的帮助\n"
\n8.分类统计\n"
\n9.从文件输出\n"
\n0.退出\n"
\n请输入你要操作的序号:
\n"
\n提示:
输入0则返回主菜单!
scanf("
%d"
&
flag);
switch(flag)
case0:
system("
printf("
\n>
>
提示:
已经退出系统,ByeBye!
break;
case1:
Add(equip);
break;
//添加记录
case2:
Modify(equip);
//修改记录
case3:
Disp(equip);
//显示记录
case4:
search(equip);
//查询设备
case5:
delet(equip);
//删除设备记录
case6:
Save(equip);
//用文件保存
case7:
help();
//简单的帮助
case8:
Classify(equip);
//分类统计
case9:
Read_From_File();
//从文件输出
default:
输入错误!
}
}
(2)添加记录模块:
主要功能就是添加设备信息,包括设备编号、设备名称、设备种类、是否报废、报废日期、购买日期、价格等信息。
voidAdd(Node*equip)//添加记录
Node*p,*r,*s;
intid;
//先用于输入ID,也用于判断是否跳出循环
r=equip;
//s=equip->
next;
//使s为第一个有用的结点
if(r!
=NULL)
while(r->
next!
=NULL)//使r为最后一个有用的结点
r=r->
//将指针置于最末尾0
}
while
(1)
\n请你输入设备ID号<
输入0表示结束>
:
"
id);
1
if(id==0)
break;
p=(Node*)malloc(sizeof(Node));
//申请空间
p->
data.ID=id;
if(Same(equip,p->
data.ID)==1)
\n你输入了相同的设备ID号,请重新输入!
<
else
if(id==0)
\n请输入设备名称:
%s"
p->
data.name);
\n请输入设备种类:
)
data.kind);
\n请输入报废日期:
p->
data.over);
\n请输入设备是否报废:
data.yesno);
\n请输入设备购买时间:
data.time);
\n请输入设备价格:
data.price);
已经完成一条记录的添加。
r->
next=p;
number++;
(3)修改记录模块:
主要功能就是对己输入设备信息进行修改,在没有设备信息的情况下将输出“没有资料可以修改!
”,在有设备信息的情况下就调用修改函数对输入编号所对应的设备信息进行修改。
voidModify(Node*equip)//修改记录
Node*p;
intfind;
if(!
equip->
next)
没有资料可以修改!
return;
请输入要修改的设备ID号:
否是
scanf("
find);
p=equip->
while(p!
if(p->
data.ID==find)//如果找到的话返回的是符合要求
p=p->
if(p)//若找到
//printf("
请输入你想修改设备的ID\n"
请输入新设备名称(原来是%s):
请输入新设备设备种类名称(原来是%s):
请输入新设备报废日期名称(原来是%d):
请输入新设备是否报废(原来是%s):
请输入新设备购买时间(原来是%d):
请输入新设备价格(原来是%d):
该项记录资料已经成功修改!
else
你要修改的信息不存在!
(4)输出记录模块:
主要功能就是将所输入设备信息通过显示屏进行输出展示,在没有设备信息的情况下将输出“没有记录可以显示!
”,在有设备信息的情况下将通过窗口输出所有设备记录信息。
voidDisp(Node*equip)//输出记录
p=equip->
p)
{
没有记录可以显示!
\t\t\t\t显示结果\n"
设备编号设备名称设备种类报废日期是否报废购买时间价格\n"
while(p)
\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n"
data.ID,p->
data.name,p->
data.kind,p->
data.over,p->
data.yesno,p->
data.time,p->
五、调试与测试(调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施)
调试过程:
设置断点,一步一步进行执行并输出执行结果。
调试过程中曾出现过出现结果与预期不符、死循环、乱码等情况,经过仔细查找及检查,一步一步执行程序找到出错部位,结合个人所学以及网上资料,还有同学的帮助,最终发现是空指针乱用,遇到死循环,指针乱指,逻辑错误等问题,最终及时改正。
调试方法:
设置断点分步调试
调试过程部分截图:
六、课程设计心得及体会
这一次课程设计着实考验了我们对C语言知识的掌握情况。
真可谓是让我无从下手,焦头烂额啊。
因为我们在大二上学期学的《C语言程序设计》这门课程,大二下期末就让我们进行系统的C语言编程训练,让我们设计一个无懈可击的程序,这简直比登天还难。
刚开始感觉确实有点力不从心,但是经过开始的学习、摸索,我的程序也终于初具雏形了。
虽然在许多的功能方面有所欠缺,但是我觉得我是在进步的。
经过的慢慢上机实践学习,给我的不只是疲惫更多的是收获。
课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题、锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。
在本次实践中,给我印象最为深刻的是在文件查询程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。
老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?
在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。
没有了柳暗花明的一天,那么我怎么能说经受住了考验?
然而,人的精神是不会败倒的。
我鼓起勇气,到处问,到处查资料,黄天不负有心人,我的程序设计终于得以问世。
课程设计到此算是基本结束,在程序设计中暴露出的我自身的问题却是非常明显!
!
首先,基础掌握不牢固。
许多基本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,更重要研究课本,设计效率底。
其次,经典算法掌握不牢。
在编写程序的时候常常会停下来求助于书本,查看各种算法。
再次,程序量过大的时候,头绪理不清。
杂乱无章,无系统性,不便调试和阅览,自己也易于出错。
比如说少加分号,大括号,忘了先定义后使用的原则。
回顾这几天,我感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,文件,函数…通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。
同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!
最后,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!
七、源程序清单与执行结果
源程序清单:
#include"
stdio.h"
stdlib.h"
string.h"
intnumber=0;
structshebei
intID;
charname[100];
charkind[50];
intover;
charyesno[50];
inttime;
intprice;
};
typedefstructnode
structshebeidata;
structnode*next;
//建立一个链表
}Node;
intSame(Node*equip,inti)
if(!
return-1;
intflag=0;
Node*p;
while(p)
if(p->
data.ID==i)
flag=1;
returnflag;
/********************添加记录模块********************/
//先用于输入ID,也用于判断是否跳出循环
//将指针置于最末尾
if(Same(equip,p->
r->
number++;
/********************修改记录模块********************/
voidModify(Node*equip)//修改
elseprintf("
/********************输出记录模块********************/
/********************查询设备模块********************/
voidsearch(Node*equip)//数据查询函数
intfind;
/return;
请输入要查询设备设备的ID:
if(p->
data.ID==find)
printf("
----------------------------------------\n没有您要查找的设备了...\n"
/********************删除记录模块********************/
voiddelet(Node*equip)/*删除函数*/
intnum;
Node*p,*pre;
if(equip->
next==NULL)
{printf("
无可操作的设备信息!
请输入要删除的设备的ID:
scanf("
num);
pre=equip;
p=pre->
while(p->
data.ID!
=num)
pre=p;
pre->
next=p->
free(p);
/********************简单帮助模块********************/
voidhelp()
在主界面输入1-7的数字\n再按回车键可以进入到相应的功能界面进行操作\n另外:
系统保存的文件存放在D:
\\设备管理系统,请勿随便删除\n"
/********************分类统计模块********************/
voidClassify(Node*equip)//统计
intsel;
intflag2=0;
charfind[20];
if(equip->
{
\n=====>
0退出\n=====>
1按设备类别统计\n=====>
2按设备名称统计\n"
sel);
if(sel==1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 设备管理 系统 语言 课程设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)