C语言课程设计汽车零部件质检管理系统.docx
- 文档编号:8302648
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:27
- 大小:284.59KB
C语言课程设计汽车零部件质检管理系统.docx
《C语言课程设计汽车零部件质检管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计汽车零部件质检管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
C语言课程设计汽车零部件质检管理系统
HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGY
C语言程序设计
实训报告
实训题目:
汽车零部件质检管理系统
专业:
班级:
姓名:
成绩:
完成日期:
指导教师:
课设报告内容:
一、-----------------------------设计题目与要求
二、-----------------------------系统设计
三、------------------------------程序测试与运行结果
四、------------------------------实训总结
五、------------------------------程序源代码
一、课设题目与要求:
汽车零部件质检管理程序
题目描述
已知在汽车零部件生产过程中,需要对生产的零部件进行质量检测,保证生产质量,以便对出现生产质量问题的责任人进行考核,设计一个汽车零部件质检管理程序,该程序应该具有完成如下功能:
(1)能从键盘输入质检信息。
(2)指定质检编号,显示质检信息。
(3)指定生产者,显示质检信息。
(4)指定质检编号,修改质检信息。
(5)指定质检编号,删除质检信息。
题目要求:
(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。
(2)质检信息包括:
质检编号、零部件名称、生产者、生产部门、质检结果(合格/不合格)、质量问题(设计缺陷/装配质量/加工质量)、质检员、质检日期。
(3)为程序设计windows窗口,在该窗口上以按钮的形式为用户提供“菜单”,通过点击各个功能项对应的按钮完成操作。
输入要求:
(1)用户可以根据需求,选定相应的操作项目。
进入每个操作后,通过窗口的文本框,从键盘输入相应的信息。
程序根据用户输入的信息完成相应的处理,实现要求的功能。
(2)能对输入的数据进行简单的校验,例如,质检日期必须是一个合法的日期格式,质检编号是唯一的(一个质检编号对应一次质检的质检信息)。
输出要求:
(1)应用程序运行后,要在屏幕上显示一个按钮形式的“菜单”。
(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。
(3)在程序完成处理后,要清楚地给出程序的处理结果。
例如,在给定质检编号删除质检信息时,如果该质检信息不存在,要提示没能删除,如果删除成功要提示删除成功。
实现要求:
(1)在程序中使用链表存储质检信息。
(2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。
提示:
(1)使用结构体表示质检信息,一个结点保存一条质检信息。
扩展功能:
(1)提供一些统计功能。
例如统计生产者质检不合格的次数,统计各种质量问题出现次数。
(2)质检信息从文件读入。
(3)将质检信息保存到文件中。
二、系统设计
(1)系统功能模块划分
读取文件
输入质检信息
通过质检编号显示质检信息
通过生产者显示质检信息
指定质检编号修改信息
指定质检编号删除信息
保存文件
(2)主函数的流程分析与设计
菜单
读入文件
输入质检信息
通过质检编号显示质检
信息
通过生产者显示质检信息
指定质检编号显示质检信息
指定质检编号删除质检信息
保存文件
统计
三、程序测试与运行结果
voidmenu()//菜单
{
system("cls");
system("colorf0");
printf("\t\t\t**********************************************\n");
printf("\t\t\t*菜单*\n");
printf("\t\t\t**********************************************\n");
printf("\t\t\t*1.读入文件*\n");
printf("\t\t\t*2.输入质检信息*\n");
printf("\t\t\t*3.通过质检编号显示质检信息*\n");
printf("\t\t\t*4.通过生产者显示质检信息*\n");
printf("\t\t\t*5.指定质检编号修改信息*\n");
printf("\t\t\t*6.指定质检编号删除信息*\n");
printf("\t\t\t*7.统计*\n");
printf("\t\t\t*8.保存文件*\n");
printf("\t\t\t*0.退出*\n");
printf("\t\t\t**********************************************\n");
printf("\t\t\t请输入选项(0~7):
");
}
voidreadFile()//读取文件
{
FILE*fp;
structqualityTesting*sp,*newp,*sp2;
fp=fopen("data.txt","r");
if(fp==NULL)
{
printf("文件打开失败!
");
exit(0);
}
headp=(structqualityTesting*)malloc(sizeof(structqualityTesting));
headp->next=NULL;
sp=headp;
while(!
feof(fp))
{
newp=(structqualityTesting*)malloc(sizeof(structqualityTesting));
fscanf(fp,"%d%s%s%s%s%s%s%s",&(newp->quality_number),&(newp->part_name),&(newp->producer),&(newp->production),&(newp->result),&(newp->problem),&(newp->quality_person),&(newp->data));
count++;
newp->next=NULL;
sp->next=newp;
sp=sp->next;
}
sp->next=NULL;
headp1=sp;
fclose(fp);
printf("计数器:
%d\n",count);
printf("文件录入成功!
\n");
sp2=headp->next;
while(sp2!
=NULL)
{
printf("%d%s%s%s%s%s%s%s\n",sp2->quality_number,sp2->part_name,sp2->producer,sp2->production,sp2->result,sp2->problem,sp2->quality_person,sp2->data);
sp2=sp2->next;
}
system("pause");
}
voidinput()//输入质检信息
{
structqualityTesting*sp,*newp;
intcho=1;
sp=headp1;
while(cho!
=0)
{
newp=(structqualityTesting*)malloc(sizeof(structqualityTesting));
printf("请输入质检信息\n");
printf("质检编号:
");
scanf("%d",&(newp->quality_number));
printf("零件名称:
");
scanf("%s",&(newp->part_name));
printf("生产者:
");
scanf("%s",&(newp->producer));
printf("生产部门:
");
scanf("%s",&(newp->production));
printf("质检结果(合格/不合格):
");
scanf("%s",&(newp->result));
printf("质检问题(设计缺陷/装配质量/加工质量):
");
scanf("%s",&(newp->problem));
printf("质检员:
");
scanf("%s",&(newp->quality_person));
printf("质检日期:
");
scanf("%s",&(newp->data));
newp->next=NULL;
sp->next=newp;
sp=sp->next;
count++;
printf("继续输入请输入数字键(退出:
0)");
scanf("%d",&cho);
}
sp->next=NULL;
}
voidquality_number_search()//通过质检编号显示质检信息
{
structqualityTesting*sp;
intnumber;
sp=headp->next;
printf("\n请输入质检编号:
");
scanf("%d",&number);
while(sp!
=NULL)
{
if(sp->quality_number==number)
{
printf("%d%s%s%s%s%s%s%s\n",sp->quality_number,sp->part_name,sp->producer,sp->production,sp->result,sp->problem,sp->quality_person,sp->data);
break;
}
sp=sp->next;
}
system("pause");
}
voidproducer_search()//通过生产者显示质检信息
{
structqualityTesting*sp;
charname[10];
sp=headp->next;
printf("\n请输入生产者:
");
scanf("%s",&name);
while(sp!
=NULL)
{
if(strcmp(sp->producer,name)==0)
{
printf("%d%s%s%s%s%s%s%s\n",sp->quality_number,sp->part_name,sp->producer,sp->production,sp->result,sp->problem,sp->quality_person,sp->data);
break;
}
sp=sp->next;
}
system("pause");
voidquality_number_change()//指定质检编号修改信息
{
structqualityTesting*sp;
intnumber;
sp=headp->next;
printf("\n请输入质检编号:
");
scanf("%d",&number);
while(sp!
=NULL)
{
if(sp->quality_number==number)
{
printf("请输入质检信息\n");
printf("质检编号:
");
scanf("%d",&(sp->quality_number));
printf("零件名称:
");
scanf("%s",&(sp->part_name));
printf("生产者:
");
scanf("%s",&(sp->producer));
printf("生产部门:
");
scanf("%s",&(sp->production));
printf("质检结果(合格/不合格):
");
scanf("%s",&(sp->result));
printf("质检问题(设计缺陷/装配质量/加工质量):
");
scanf("%s",&(sp->problem));
printf("质检员:
");
scanf("%s",&(sp->quality_person));
printf("质检日期:
");
scanf("%s",&(sp->data));
break;
}
sp=sp->next;
}
printf("修改成功!
");
system("pause");
}
voidquality_number_delete()//指定质检编号删除信息
{
structqualityTesting*sp,*fellowp;
intnumber;
sp=headp->next;
fellowp=headp;
printf("\n请输入质检编号:
");
scanf("%d",&number);
while(sp!
=NULL)
{
if(sp->quality_number==number)
{
fellowp->next=sp->next;
free(sp);
flag=1;
count--;
break;
}
fellowp=sp;
sp=sp->next;
}
if(flag==1)
printf("删除成功!
");
else
printf("删除失败!
");
system("pause");
}
voidsaveFile()//保存文件
{
structqualityTesting*sp,*fellowp;
FILE*fp2;
sp=headp->next;
fellowp=headp;
fp2=fopen("data.txt","w");
while(sp!
=NULL)
{
fprintf(fp2,"%d%s%s%s%s%s%s%s\n",sp->quality_number,sp->part_name,sp->producer,sp->production,sp->result,sp->problem,sp->quality_person,sp->data);
fellowp=sp;
sp=sp->next;
free(fellowp);
}
printf("保存成功!
(链表清空完毕)");
system("pause");
}
voidadd()//统计
{
structqualityTesting*sp;
sp=headp->next;
while(sp!
=NULL)
{
if(strcmp(sp->result,"不合格")==0)
a++;
if(strcmp(sp->problem,"设计缺陷")==0)
b++;
if(strcmp(sp->problem,"装配质量")==0)
c++;
if(strcmp(sp->problem,"加工质量")==0)
d++;
sp=sp->next;
}
printf("不合格次数:
%d\n",a);
printf("设计缺陷次数:
%d\n",b);
printf("装配质量次数:
%d\n",c);
printf("加工质量次数:
%d\n",d);
system("pause");
}
四、实训总结
通过本次实训,我发现我在c语言的学习上还存在很多的问题,而且对于一些基础知识的掌握还是不够熟练,本次实训的代码中很多地方都需要用到链表的知识,但是我发现我对链表的掌握很差,而且代码中的链表方面的知识还是在同学的的帮助下完成的,所以,在本次实训过后我发现我对链表方面知识的掌握有了进一步的提高。
而且在本次实训中,我发现c语言的学习其实并不是原来想象的那么难,只要对一些基本的知识点掌握的比较熟练了之后,对于一些简单的程序都可以很好的独立完成。
所以作为一个计算机专业的学生,在以后的学习和其他各类计算机语言中,我要加强对基础知识的掌握,平时勤加练习,争取今早的掌握。
同时在本次实训中,我也遇到了一些困难和问题,但同时我也学会了一些面对困难时所必须的态度,这都是本次实训所带给我的。
最后,我想说,虽然我的c语言基础不是很好,但是,我相信,只要我肯努力,我的c语言成绩肯定会更进一步的。
五、程序源代码
#include
#include
#include
#include
structqualityTesting//结构体:
质检信息
{
intquality_number;//质检编号
charpart_name[20];//零件名称
charproducer[30];//生产者
charproduction[30];//生产部门
charresult[10];//质检结果(合格/不合格)
charproblem[30];//质检问题(设计缺陷/装配质量/加工质量)
charquality_person[30];//质检员
chardata[30];//质检日期
structqualityTesting*next;
};
structqualityTesting*headp,*headp1;//头结点
intcount=0;//计数器
intflag=0;//判断删除是否成功
inta=0;//统计不合格数量
intb=0,c=0,d=0;//统计各种质量问题出现次数
voidmenu()//菜单
{
system("cls");
system("colorf0");
printf("\t\t\t**********************************************\n");
printf("\t\t\t*菜单*\n");
printf("\t\t\t**********************************************\n");
printf("\t\t\t*1.读入文件*\n");
printf("\t\t\t*2.输入质检信息*\n");
printf("\t\t\t*3.通过质检编号显示质检信息*\n");
printf("\t\t\t*4.通过生产者显示质检信息*\n");
printf("\t\t\t*5.指定质检编号修改信息*\n");
printf("\t\t\t*6.指定质检编号删除信息*\n");
printf("\t\t\t*7.统计*\n");
printf("\t\t\t*8.保存文件*\n");
printf("\t\t\t*0.退出*\n");
printf("\t\t\t**********************************************\n");
printf("\t\t\t请输入选项(0~7):
");
}
voidreadFile()//读取文件
{
FILE*fp;
structqualityTesting*sp,*newp,*sp2;
fp=fopen("data.txt","r");
if(fp==NULL)
{
printf("文件打开失败!
");
exit(0);
}
headp=(structqualityTesting*)malloc(sizeof(structqualityTesting));
headp->next=NULL;
sp=headp;
while(!
feof(fp))
{
newp=(structqualityTesting*)malloc(sizeof(structqualityTesting));
fscanf(fp,"%d%s%s%s%s%s%s%s",&(newp->quality_number),&(newp->part_name),&(newp->producer),&(newp->production),&(newp->result),&(newp->problem),&(newp->quality_person),&(newp->data));
count++;
newp->next=NULL;
sp->next=newp;
sp=sp->next;
}
sp->next=NULL;
headp1=sp;
fclose(fp);
printf("计数器:
%d\n",count);
printf("文件录入成功!
\n");
sp2=headp->next;
while(sp2!
=NULL)
{
printf("%d%s%s%s%s%s%s%s\n",sp2->quality_number,sp2->part_name,sp2->producer,sp2->production,sp2->result,sp2->problem,sp2->quality_person,sp2->data);
sp2=sp2->next;
}
system("pause");
}
voidinput()//输入质检信息
{
structqualityTesting*sp,*newp;
intcho=1;
sp=headp1;
while(cho!
=0)
{
newp=(structqualityTesting*)malloc(sizeof(structqualityTesting));
printf("请输入质检信息\n");
printf("质检编号:
");
scanf("%d",&(newp->quality_number));
printf("零件名称:
");
scanf("%s",&(newp->part_name));
printf("生产者:
");
scanf("%s",&(newp->producer));
printf("生产部门:
");
scanf("%s",&(newp->production));
printf("质检结果(合格/不合格):
");
sca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 汽车零部件 质检 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)