C语言课程设计汽车零部件质检管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY
C语言程序设计
实训报告
实训题目: 汽车零部件质检管理系统
专业:
班级:
姓名:
成绩:
完成日期:
指导教师:
课设报告内容:
一、-----------------------------设计题目与要求
二、-----------------------------系统设计
三、------------------------------程序测试与运行结果
四、------------------------------实训总结
五、------------------------------程序源代码
一、课设题目与要求:
汽车零部件质检管理程序
题目描述
已知在汽车零部件生产过程中,需要对生产的零部件进行质量检测,保证生产质量,以便对出现生产质量问题的责任人进行考核,设计一个汽车零部件质检管理程序,该程序应该具有完成如下功能:
(1)能从键盘输入质检信息。
(3)指定生产者,显示质检信息。
(4)指定质检编号,修改质检信息。
(5)指定质检编号,删除质检信息。
题目要求:
(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。
(2) 质检信息包括:质检编号、零部件名称、生产者、生产部门、质检结果(合格/不合格)、质量问题(设计缺陷/装配质量/加工质量)、质检员、质检日期。
(3) 为程序设计windows窗口,在该窗口上以按钮的形式为用户提供“菜单”,通过点击各个功能项对应的按钮完成操作。输入要求:
(1)用户可以根据需求,选定相应的操作项目。进入每个操作后,通过窗口的文本框,从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。
(2)能对输入的数据进行简单的校验,例如,质检日期必须是一个合法的日期格式,质检编号是唯一的(一个质检编号对应一次质检的质检信息)。
输出要求:
(1)应用程序运行后,要在屏幕上显示一个按钮形式的“菜单”。
(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。
(3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定质检编号删除质检信息时,如果该质检信息不存在,要提示没能删除,如果删除成功要提示删除成功。
实现要求:
(1)在程序中使用链表存储质检信息。
(2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。
提示:
(1)使用结构体表示质检信息,一个结点保存一条质检信息。
扩展功能:
(1)提供一些统计功能。例如统计生产者质检不合格的次数,统计各种质量问题出现次数。
(2)质检信息从文件读入。
(3)将质检信息保存到文件中。
二、系统设计
(1)系统功能模块划分
○1读取文件
○2输入质检信息
○3通过质检编号显示质检信息
○4通过生产者显示质检信息
○5指定质检编号修改信息
○6指定质检编号删除信息
○7保存文件
(2)主函数的流程分析与设计
void menu() //菜单
{
system("cls");
s ystem("color f0");
p rintf("\t\t\t**********************************************\n");
p rintf("\t\t\t* 菜单*\n");
p rintf("\t\t\t**********************************************\n");
p rintf("\t\t\t* 1.读入文件*\n");
p rintf("\t\t\t* 2.输入质检信息*\n");
p rintf("\t\t\t* 3.通过质检编号显示质检信息*\n");
p rintf("\t\t\t* 4.通过生产者显示质检信息*\n");
p rintf("\t\t\t* 5.指定质检编号修改信息*\n");
p rintf("\t\t\t* 6.指定质检编号删除信息*\n");
p rintf("\t\t\t* 7.统计*\n");
p rintf("\t\t\t* 8.保存文件*\n");
p rintf("\t\t\t* 0.退出*\n");
p rintf("\t\t\t**********************************************\n");
p rintf("\t\t\t 请输入选项(0~7):");
}
void readFile() // 读取文件
{
F ILE *fp;
s truct qualityTesting *sp,*newp,*sp2;
f p = fopen("data.txt","r");
i f(fp == NULL)
{
printf("文件打开失败!");
exit(0);
}
h eadp = (struct qualityTesting *) malloc(sizeof(struct qualityTesting));
h eadp->next = NULL;
s p =headp;
while(!feof(fp))
{
newp = (struct qualityTesting *) malloc(sizeof(struct qualityTesting));
fscanf(fp,"%d%s%s%s%s%s%s%s
",&(newp->quality_number),&(newp->part_name),&(newp->producer),&(newp->production),&(newp->result),&(newp->problem),&(n ewp->quality_person),&(newp->data));
count++;
newp->next = NULL;
sp->next = newp;
sp = sp->next;
}
sp->next = NULL;
h eadp1 = sp;
f close(fp);
p rintf("计数器:%d\n",count);
printf("文件录入成功!\n");
s p2=headp->next;
w hile(sp2!=NULL)
{