C程序设计课程设计报告.docx
《C程序设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《C程序设计课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。
C程序设计课程设计报告
课程设计(大作业)报告
课程名称:
程序设计基础
设计题目:
实验设备管理系统实验设备管理系统________________________________________________________________________________________________________________________
院系:
信息技术学院
班级:
2012级计算机科学与技术
设计者:
学号:
指导教师:
设计时间:
2013.7.8.-2013.7.12
信息技术学院
昆明学院课程设计(大作业)任务书
姓名:
院(系):
专业:
计算机科学与技术学号:
任务起止日期:
2013.7.8-2013.7.12
课程设计题目:
实验设备管理系统设计
课程设计要求:
系统提供下列服务:
1..系统以菜单方式工作。
2.能够完成对设备信息的录入(设备信息用文件保存),可不定时地增加设备信息。
3.对设备信息进行分类统计
4.设备信息的查询
(1)按设备类型查询
(2)查询报废设备
5.设备信息的删除与修改
(1)输入设备编号,若该设备报废,则删除;如果没有报废,则不能删除该设备。
(2)按设备编号修改设备信息。
工作计划及安排:
1,课程设计内容说明,老师讲解内容0.5天;
2,翻阅课本及相关书籍查找资料0.5天;
3,编写应用程序1.5天;
4,上机调试运用程序1天;
5,操作、并改正错误程序0.5天;
6,写课程设计报告1天。
指导教师签字
年月日
课程设计(大作业)成绩
学号:
姓名:
指导教师:
课程设计题目:
实验设备管理系统设计
总结:
通过五天的课程设计,我对C程序设计的知识更加进一步的了解了。
跟队友合作,一起上网查找资料、请教别人,一起完成了对代码的编写,并对已写就的代码进行自行检查,自己检查后上机操作运行,通过上机对错误之处加以改正,完成了设计内容,达到了题目的要求。
本次设计我们发现我们在C语言知识上有很大的不足,对有些基本知识概念模糊,导致我们在设计中遇到很多问题,代码编写的错误,结构体运用的出错,数据结构的错用…….
都暴露我们在基本知识方面的缺陷,我们相信通过本次课程设计,我们会将C语言知识更好的运用到今后的学习中。
总之,这次课程设计是我们学到了很多,也发现了很多的不足,学好C语言是作为计算机专业学生的一项基本义务,我们会将之进行到底,最后,感谢老师五天来的耐心解答!
指导教师评语:
成绩:
填表时间:
指导教师签名:
一、问题的定义
实验设备管理系统中设备信息包括:
设备编号,设备种类(如:
微机、打印机、扫描仪等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
通过对该系统输入设备各项信息,对已输入的设备信息进行删除和修改,能够完成对设备信息的录入(设备信息用文件保存),可不定时地增加设备信息。
能对设备信息进行查询,并对设备信息进行分类。
要求:
1.数据存储采用文件形式;
2.标准的C语言输入输出;
3.功能完善,适当注释;
4.模块化设计、结构化编程。
二、需求分析
系统提供下列服务:
1、系统以菜单方式工作
2、能够完成对设备信息的录入(设备信息用文件保存),可不定时地增加设备信息。
3、对设备信息进行分类统计
4、设备信息的查询
(1)按设备类型查询
(2)查询报废设备
5、设备信息删除与修改
(1)输入设备号,若该设备报废,则删除;如果没有报废,则不能删除该设备。
(2)按设备编号修改设备信息
三、总体设计
根据系统的要求,系统总体设计如下图所示。
系统总体结构图
四、详细设计
(一)设备数据结构设计
#defineSIZE30/*定义常数表示记录数*/
structshebei/*定义数据结构*/
{intnum;/*输入设备编号*/
charname[15];/*输入设备名称*/
charkind[15];/*输入设备种类*/
charover[15];/*报废*/
charyesno[15];/*选择“yes”或“no”*/
chartime[10];/*输入设备报废时间*/
doubleprice;/*输入设备价格*/
}shebei[SIZE];
(二)函数设计
1.主函数
main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。
2..其他函数
(1)设备信息录入函数voidinput()
算法思想:
a.依次录入结构体数组中所包含的各个设备;
b.返回实际录入的设备信息数。
(2)将设备信息存贮为文件函数voidsave(intc)
算法思想:
a.定义指向文件的指针变量;
b.输入存贮路径及文件名,打开文件,若不能打开文件给出提示
(3)查找设备信息函数voidfind()
算法思想:
a.定义指向文件的指针变量;
b.按类别打开文件,读出其中的信息。
(4)删除设备信息函数voiddel()
算法思想:
a.定义指向文件的指针变量;
b.打开存贮过的文件,对其进行删除并把删除后的文件保存。
(5)修改设备信息函数voidxiu()
算法思想:
a.定义指向文件的指针变量;
b.打开文件按选项执行下一步,保存执行后的文件。
3.流程描述
(1)创建菜单流程
(2)设备信息录入流程
(3)浏览设备信息流程
(4)按设备类型查找流程
(5)按是否报废查找流程
(6)删除设备信息流程
(7)添加新设备信息流程
(8)修改设备信息流程
4.代码设计和执行结果
#include
#include
#include
#defineSIZE30
structshebei
{
intnum;//输入设备编号
charname[15];//输入设备名称
charkind[15];//输入设备种类
charover[15];//报废
charyesno[15];
chartime[10];//输入设备报废时间
doubleprice;//输入设备价格
}shebei[SIZE];
intmenu()//创建菜单
{
intb;
system("cls");//清屏
printf("\n\n");
printf("\t设备管理系统\n");
printf("\t---------------------\n");
printf("\t\n");
printf("\t1.设备信息录入\n");
printf("\t2.设备信息浏览\n");
printf("\t3.设备信息查询\n");
printf("\t4.设备信息删除\n");
printf("\t5.设备信息添加\n");
printf("\t6.设备信息修改\n");
printf("\t7.设备分类统计\n");
printf("\t0.退出\n");
printf("\t----------------------------------\n");
do
{
printf("\n输入你的选择项(0~7):
\n");
scanf("%d",&b);
}
while(b<0||b>7);
fflush(stdin);
returnb;
}
执行结果如下;
voidinput()//录入设备信息
{
intc=-1;
charc1='y';
while(c1!
='n'&&c1!
='N')
{
c++;
printf("\n请你输入设备num号:
");
scanf("%d",&shebei[c].num);
printf("\n请输入设备名称:
");
scanf("%s",shebei[c].name);
printf("\n请输入设备种类:
");
scanf("%s",shebei[c].kind);
printf("\n请输入报废日期:
");
scanf("%s",shebei[c].over);
printf("\n请输入设备是否报废:
");
scanf("%s",shebei[c].yesno);
printf("\n请输入设备购买时间:
");
scanf("%s",shebei[c].time);
printf("\n请输入设备价格:
");
scanf("%lf",&shebei[c].price);
printf(">>>>提示:
已经完成一条记录的添加。
\n");
printf("是否继续输入(y/n)\n");
scanf("%c",&c1);
c1=getchar();
}
save(c);
}
执行结果如下;
voidprint()//浏览设备信息
{
printf("设备编号设备名称设备种类报废日期是否报废购买时间价格\n");
printf("----------------------------------------------------------------------\n");
inti,t;
FILE*fp;
fp=fopen("date.txt","rb");//打开一个‘只读’文件
t=load();
if(t==-1)
return;
else
for(i=0;i<=t;i++)
{
fread(&shebei[i],sizeof(structshebei),1,fp);//调用fread函数
printf("\n%-13d%-11s%-7s%-10s%-13s%-10s%-5.2lf\n",shebei[i].num,shebei[i].name,shebei[i].kind,shebei[i].over,shebei[i].yesno,shebei[i].time,shebei[i].price);
printf("---------------------------------------------------------------------\n");
}
fclose(fp);
}
执行结果如下;
voidfind()//查找设备信息
{
intb,i,flag,t;
FILE*fp;
fp=fopen("date.txt","rb");//打开一个‘只读’文件
t=load();
charkind[10],c2='y';
while(c2!
='n'&&c2!
='N')
{
system("cls");
printf("\t1.按设备类型查询\n");
printf("\t2.查询报废设施\n")