C语言课程设计汽车零部件质检管理系统
C语言课程设计报告(汽车质量管理系统)

C语言程序设计课程设计报告课设题目:汽车质量管理系统专业:电子信息科学与技术(车联网)班级: _______ 姓名: XXXX 成绩:完成日期: 2013年月日-2012年月日指导教师: xxxx目录C语言程序设计 0课程设计报告 01.课程设计目的 (1)2.需求分析 (2)2.1要求 (2)2.2任务描述 (2)2.3运行环境 (3)2.4开发工具 (3)3.总体设计 (3)3.1系统流设计 (3)3.2系统模块设计 (4)4.详细设计 (5)4.1数据结构设计 (5)4.2模块接口设计 (6)4.3 以下是几个主要模块的流程图: (7)5.运行结果 (13)5.1主菜单界面: (13)5.2从文件录入产品信息界面: (14)5.3显示题目界面: (14)5. 4从键盘新建信息录入界面: (14)5.5查询界面: (15)5.6修改产品信息界面: (16)5.7根据底盘号删除界面: (17)5.8根据日期删除界面: (17)5.9全部信息的浏览界面: (19)5.10统计考核金额界面: (19)5.11显示题目界面: (20)5.12保存记录界面: (21)5.13退出系统界面: (22)6.程序调试与测试 (22)6.1程序调试 (22)6.2程序测试 (26)7.问题与不足 (30)8.建议 (31)9.编程体会 (31)10.程序源代码: (32)11.参考文献 (32)12.用户使用手册 (54)1.课程设计目的1)通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
2)通过课程设计,进一步掌握C语言中重要的数据结构。
掌握并熟练运用指针、链表、结构体、文件等数据结构。
3)通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
4)通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。
c课程设计之车辆管理系统

c 课程设计之车辆管理系统一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
通过本课程的学习,学生需要掌握车辆管理系统的相关知识,包括车辆管理的基本概念、车辆管理的流程和方法等。
同时,学生需要具备一定的实际操作能力,能够运用所学知识对车辆进行有效管理。
此外,学生应该树立正确的车辆管理意识,具备良好的道德品质和社会责任感。
二、教学内容本课程的教学内容主要包括车辆管理的基本概念、车辆管理的流程和方法。
具体包括以下几个方面:1. 车辆管理的基本概念:车辆管理的定义、特点和作用;2. 车辆管理的流程:车辆的采购、使用、维护和报废等环节的管理;3. 车辆管理的方法:车辆管理的常用方法和技术,如车辆识别码系统、车辆定位系统等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1. 讲授法:通过教师的讲解,使学生掌握车辆管理的基本概念和方法;2. 讨论法:通过分组讨论,培养学生的思考能力和团队协作能力;3. 案例分析法:通过分析实际案例,使学生了解车辆管理的具体操作过程;4. 实验法:通过实际操作,锻炼学生的动手能力和实际应用能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。
教学资源包括教材、参考书、多媒体资料和实验设备等。
1. 教材:选择权威、实用的教材,为学生提供全面、系统的学习资源;2. 参考书:推荐一些相关领域的参考书,帮助学生拓展知识面;3. 多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣;4. 实验设备:准备必要的实验设备,为学生提供实践操作的机会。
五、教学评估本课程的教学评估将采用多元化的方式,以全面、客观、公正地评估学生的学习成果。
评估方式包括但不限于以下几个方面:1. 平时表现:通过观察学生在课堂上的参与程度、提问回答等,了解学生的学习态度和理解程度;2. 作业:布置适量的作业,要求学生在规定时间内完成,以检验学生对知识的掌握情况;3. 考试:定期进行考试,以评估学生对课程知识的全面理解和运用能力。
C 课程设计方案汽车管理系统

武汉工程大学计算机科学与工程学院综合设计报告设计名称:程序设计综合设计设计题目:汽车租赁管理系统学生学号: 1005080214专业班级:计算机工程2班学生姓名:刘子龙学生成绩:指导教师(职称):刘黎志(讲师)课题工作时间: 2011-12-26 至 2012-1-6说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。
4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。
答辩小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。
6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。
7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。
成绩评定表学生姓名:刘子龙学号: 1005080214 班级:计算机工程2班答辩记录表指导教师评语目录目录0摘要0ABSTRACT1第一章绪论21.1课题来源21.2课题意义21.3课题目的21.4应解决的主要问题及应达到的技术要求31.5本设计的理论依据4第二章设计简介及设计方案论述42.1设计内容与目标42.2设计的重点、难点和关键42.3整体设计方案5第三章详细设计73.1重点,难点技术设计与相关解决73.2整体、详细的设计方案8第四章设计结果及分析194.1进入系统分析194.2系统操作管理分析214.3系统工作流程分析234.4系统整体性能分析29总结29致谢30参考文献30附录主要程序代码30摘要在数据信息爆炸的时代,这个社会的人必然会因为要记忆各类繁多的信息多少有些烦恼。
c语言车辆管理系统课程设计

c语言车辆管理系统课程设计一、课程目标知识目标:1. 学生能掌握C语言基础,包括数据类型、运算符、控制结构等,并运用到车辆管理系统的设计与实现中。
2. 学生能理解并运用数组、结构体等数据结构进行车辆信息的存储与管理。
3. 学生能运用文件操作实现对车辆信息数据的持久化存储。
技能目标:1. 学生能运用C语言编写出功能完整的车辆管理系统,包括车辆信息的添加、删除、查询和修改。
2. 学生通过课程学习,培养编程思维和解决问题的能力,具备一定的系统分析和设计能力。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣,形成积极的学习态度和自主探究的精神。
2. 学生通过团队协作完成项目,培养沟通协作能力和集体荣誉感。
3. 学生在课程实践中,体会科技对生活的改变,增强对社会主义核心价值观的认同。
分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 掌握C语言基础知识,能独立完成车辆管理系统的基础功能编写。
2. 学会使用数据结构进行信息管理,提高代码的可读性和可维护性。
3. 通过项目实践,培养团队协作能力和解决问题的实际操作能力。
二、教学内容1. C语言基础:变量、数据类型、运算符、表达式、控制结构(顺序、选择、循环)。
相关教材章节:第一章至第四章。
2. 函数:函数定义、调用、参数传递、返回值。
相关教材章节:第五章。
3. 数组:一维数组、二维数组、数组操作。
相关教材章节:第六章。
4. 指针:指针的概念、指针操作、指针与数组、指针与函数。
相关教材章节:第七章。
5. 结构体:结构体定义、结构体变量操作、结构体数组、结构体指针。
相关教材章节:第八章。
6. 文件操作:文件打开、关闭、读写、定位。
相关教材章节:第十章。
7. 车辆管理系统设计与实现:系统需求分析、模块划分、功能实现、测试与调试。
教学内容安排:- 系统需求分析与设计:1课时- 车辆信息管理模块实现:2课时- 车辆信息查询模块实现:2课时- 车辆信息添加、删除、修改模块实现:2课时- 系统测试与调试:1课时教学内容确保科学性和系统性,以教材为基础,结合实际案例,使学生能够将所学知识应用于车辆管理系统的设计与实现中。
c课程设计车辆管理系统

c 课程设计车辆管理系统一、教学目标本课程旨在通过学习车辆管理系统,使学生掌握C语言编程的基本概念和方法,培养学生解决实际问题的能力。
具体目标如下:1.理解C语言的基本语法和数据类型。
2.掌握函数的定义和调用。
3.了解指针的概念和应用。
4.熟悉结构体的定义和使用。
5.掌握文件操作的基本方法。
6.能够使用C语言编写简单的程序。
7.能够运用结构体和指针处理复杂的数据结构。
8.能够使用文件操作实现数据的持久化存储。
9.能够独立分析和解决实际问题,编写相应的车辆管理系统程序。
情感态度价值观目标:1.培养学生的编程兴趣,提高自主学习的积极性。
2.培养学生的团队合作意识,学会与他人分享和交流。
3.培养学生的创新精神,鼓励学生大胆尝试和发现问题。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、函数、指针、结构体和文件操作等。
具体安排如下:1.C语言的基本语法和数据类型:介绍C语言的基本结构和数据类型,包括整型、浮点型、字符型等。
2.函数的定义和调用:讲解函数的声明、定义和调用,包括递归函数和外部函数。
3.指针的概念和应用:介绍指针的基本概念和运算,包括指针的声明、指针的赋值和指针的解引用等。
4.结构体的定义和使用:讲解结构体的定义和使用,包括结构体的声明、结构体的成员访问和结构体的指针等。
5.文件操作的基本方法:介绍文件的打开、关闭、读写等基本操作,包括文本文件和二进制文件的读写。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解和示范,使学生掌握C语言的基本概念和方法。
2.讨论法:学生进行小组讨论,培养学生的团队合作意识和问题解决能力。
3.案例分析法:通过分析实际案例,使学生了解C语言在车辆管理系统中的应用。
4.实验法:安排实验室实践,让学生亲自动手编写程序,巩固所学知识。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
c课程设计车辆管理系统

c课程设计车辆管理系统一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握车辆管理系统的基本概念、原理和架构;技能目标要求学生能够运用所学知识设计并实现一个简单的车辆管理系统;情感态度价值观目标要求学生培养对车辆管理系统的兴趣,提高解决问题的能力。
二、教学内容本课程的教学内容主要包括车辆管理系统的基本概念、原理和架构,以及设计实现一个简单车辆管理系统的过程。
具体包括以下几个部分:1.车辆管理系统的基本概念:介绍车辆管理系统的定义、功能和应用场景。
2.车辆管理系统的原理:讲解车辆管理系统的运行原理和工作流程。
3.车辆管理系统的架构:介绍车辆管理系统的组成部分及其相互关系。
4.设计实现简单车辆管理系统:引导学生运用所学知识,分组完成一个简单车辆管理系统的设计、编码、测试和调试。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
讲授法用于讲解基本概念、原理和架构;讨论法用于引导学生深入思考和探讨问题;案例分析法用于分析实际案例,帮助学生理解车辆管理系统的工作原理;实验法用于让学生动手实践,培养实际操作能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于为学生提供理论知识的支撑;多媒体资料用于辅助教学,提高学生的学习兴趣;实验设备用于开展实验教学,让学生动手实践,培养实际操作能力。
五、教学评估本课程的教学评估采用多元化的方式,包括平时表现、作业、考试等。
平时表现主要评估学生的课堂参与度、提问回答等情况;作业分为平时练习和项目实践,评估学生对知识的理解和应用能力;考试分为期中考试和期末考试,全面测试学生的知识掌握和运用情况。
评估方式应客观、公正,能够全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:共计32课时,每周2课时,共16周完成。
教学地点安排在教室和实验室,以便于学生进行理论学习和实践操作。
c语言车辆管理系统课程设计

#include<stdio.h> 【2 】#include<stdlib.h>#include<string.h>#define MAX 3 /*车库容量*/#define price 0.5 /*每车每分钟费用*/ typedef struct time{int hour;int min;}Time; /*时光结点*/typedef struct node{char num[10];Time reach;Time leave;}CarNode;/*车辆信息结点*/typedef struct NODE{CarNode *stack[MAX + 1];int top;}Moni_Cheku;typedef struct car{CarNode *data;struct car *next;}QueueNode;typedef struct Node{QueueNode *head;QueueNode *rear;}Moni_Biandao;void InitStack(Moni_Cheku *); /*初始化车库*/int InitQueue(Moni_Biandao *);/*初始化便道*/int Arrival(Moni_Cheku *, Moni_Biandao *); /*车辆到达*/ void Leave(Moni_Cheku *, Moni_Cheku *, Moni_Biandao *); /*车辆分开*/void List(Moni_Cheku, Moni_Biandao); /*显示车库和便道的存车信息*/int main(){Moni_Cheku Enter, Temp;Moni_Biandao Wait;int ch;InitStack(&Enter); /*初始化车站*/InitStack(&Temp); /*初始化让路的暂时链表*/InitQueue(&Wait); /*初始化便道*/printf("\n");printf(" ^_^迎接进入泊车场治理体系1!^_^\n");printf("\n");printf("提醒! (1).该车库的最大容量为:%d;\n", MAX); printf(" (2).该车库的收费标准为:%4.2f元/(辆*分钟).\n", price);while (1){system("CLS");printf("********************主菜单********************\n");printf("1.车辆到达");printf(" 2.车辆分开");printf(" 3.列表显示");printf(" 4.退出体系\n");printf("**********************************************\n"); printf("请选择(1-4):[ ]\b\b");while (1){scanf("%d",&ch);if (ch >= 1 && ch <= 4)break;else printf("错误!请重选(1-4):[ ]\b\b");}switch (ch){case 1:Arrival(&Enter, &Wait); break; /*车辆到达*/case 2:Leave(&Enter, &Temp, &Wait); break; /*车辆分开*/ case 3:List(Enter, Wait); break; /*打印列表信息*/case 4:exit(0); /*退出主程序*/default: break;}return 0;}void InitStack(Moni_Cheku *s) /*初始化车库*/{int i;s->top = 0;for (i = 0; i <= MAX; i++)s->stack[s->top] = NULL;}int InitQueue(Moni_Biandao *Q) /*初始化便道*/ {Q->head = (QueueNode *)malloc(sizeof(QueueNode)); if (Q->head != NULL){Q->head->next = NULL;Q->rear = Q->head;return(1);else return(-1);}void PRINT(CarNode *p, int room) /*输出出库车的信息*/{int A1, A2, B1, B2;{printf("请输入分开的时光:/**:**/");scanf("%d:%d", &(p->leave.hour), &(p->leave.min));printf("分开车辆的车商标为:");puts(p->num);printf("其到达时光为: %d:%d\n", p->reach.hour, p->reach.min);printf("分开时光为: %d:%d\n", p->leave.hour, p->leave.min); A1 = p->reach.hour;A2 = p->reach.min;B1 = p->leave.hour;B2 = p->leave.min;printf("应交费用为:%4.2f元", ((B1 - A1) * 60 + (B2 -A2))*price);free(p);}}int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /*车辆到达*/{CarNode *p;QueueNode *t;p = (CarNode *)malloc(sizeof(CarNode));fflush(stdin);printf("请输入车商标(例如:中CUG888):");scanf("%s",&(p->num));if (Enter->top < MAX) /*车库未满,车进车库*/{Enter->top++;printf("该车在车库地位%d.\n", Enter->top);printf("请输入到达时光(**:**):");scanf("%d:%d", &(p->reach.hour), &(p->reach.min));Enter->stack[Enter->top] = p;return(1);}else /*车库已满,车进便道*/{printf("该车须在便道等待!\n");t = (QueueNode *)malloc(sizeof(QueueNode));t->data = p;t->next = NULL;W->rear->next = t;W->rear = t;return(1);}}void Leave(Moni_Cheku *Enter, Moni_Cheku *Temp, Moni_Biandao *W) /*车辆分开*/{int i, room;CarNode *p, *t;QueueNode *q;/*断定车库内是否有车*/if (Enter->top > 0) /*有车*/{printf("请输入车在车库的地位(1--%d):", Enter->top);/*输入车辆分开的信息*/while (1){scanf("%d", &room);if (room >= 1 && room <= Enter->top) break;else printf("错误!请重选:");}while (Enter->top > room) /*车辆分开*/{Temp->top++;Temp->stack[Temp->top] = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top--;}p = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top--;while (Temp->top >= 1){Enter->top++;Enter->stack[Enter->top] = Temp->stack[Temp->top];Temp->stack[Temp->top] = NULL;Temp->top--;}PRINT(p, room); /*断定通道上是否有车及车库是否已满*/if ((W->head != W->rear) && Enter->top < MAX) /*便道的车辆进入车库*/{q = W->head->next;t = q->data;Enter->top++;printf("\n便道的%s号车进入车场第%d地位.", t->num, Enter->top);printf("\n请输入如今的时光(**:**):");scanf("%d:%d", &(t->reach.hour), &(t->reach.min)); W->head->next = q->next;if (q == W->rear) W->rear = W->head;Enter->stack[Enter->top] = t;free(q);}else printf("\n便道里没有车.\n");}else printf("车库里没有车!\n"); /*没车*/}void List1(Moni_Cheku *S) /*列表显示车库信息*/ {int i;if (S->top > 0) /*断定车库内是否有车*/{printf("车库号到达时光 \t车商标\n");for (i = 1; i <= S->top; i++){printf(" %d ", i);printf(" \t%d:%d", S->stack[i]->reach.hour, S->stack[i]->reach.min);printf("\t\t%s\n",S->stack[i]->num);}}else printf("车库里没有车\n");}void List2(Moni_Biandao *W) /*列表显示便道信息*/{QueueNode *p;p = W->head->next;if (W->head != W->rear) /*断定便道上是否有车*/{printf("在便道里等待的车辆的号码为:\n");while (p != NULL){puts(p->data->num);p = p->next;}else printf("便道里没有车.\n");}void List(Moni_Cheku S, Moni_Biandao W) {int flag, tag;flag = 1;while (flag){printf("**********查看**********\n"); printf("1.车库2.便道3.返回\n");printf("************************\n"); printf("请选择(1-3):[ ]\b\b");while (1){scanf("%d", &tag);if (tag >= 1 && tag <= 3) break;else printf("错误!请重选(1-3):[ ]\b\b");switch (tag){case 1:List1(&S);break;/*列表显示车库信息*/ case 2:List2(&W);break; /*列表显示便到信息*/ case 3:flag = 0;break;default:break;}}}。
C语言课程设计汽车零部件质检管理系统

数据库类型:关系型数据库
数据库操作:包括查询、插入、更 新、删除等操作
添加标题
添加标题
添加标题
添加标题
数据库结构:包括零部件信息表、 质检记录表、用户信息表等
数据库安全:包括用户权限管理、 数据备份等措施
添加标题
主界面:显示系统名 称、用户登录、退出 按钮等
添加标题
登录界面:输入用户 名、密码,登录成功 后进入主界面
统计分析:对质检数据进行统计分 析,生成统计图表,如合格率、不 合格率等
汽车零部件质检管理系统应具备用户友好的界面,方便操作。 系统应具备数据录入、查询、统计、分析等功能,满足用户日常使用需求。 系统应具备权限管理功能,确保数据安全。 系统应具备良好的扩展性,便于后期升级和维护。
录入汽车零部 件信息:包括 型号、规格、
定期更新系统软件,确保系 统安全
定期备份数据,防止数据丢 失
定期检查系统运行情况,确 保系统稳定运行
定期培训员工,提高系统维 护能力
建立故障处理机制,及时解 决系统故障
定期评估系统性能,优化系 统配置
定期检查系统版本,确保及时更新
升级后进行系统测试,确保功能正常
备份重要数据,防止升级过程中数据丢失 升级前测试新版本,确保兼容性和稳定性
目的:验证系统各模块之间的接口和交互是否正确 测试方法:黑盒测试、白盒测试、灰盒测试 测试内容:功能测试、性能测试、安全性测试、兼容性测试 测试工具:JUnit、Selenium、LoadRunner等
优化算法:采用更高效的算法,提高系统运行速度 数据库优化:优化数据库结构,提高查询效率 界面优定性和可靠性
测试目的:验证系统功能是否满足需求 测试方法:黑盒测试、白盒测试、灰盒测试等 测试结果:系统功能正常,性能稳定 优化建议:优化算法,提高系统效率 测试结论:系统满足设计要求,可以投入使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计实训报告实训题目: 汽车零部件质检管理系统专业:班级:姓名:成绩:完成日期:指导教师:课设报告内容:一、-----------------------------设计题目与要求二、-----------------------------系统设计三、------------------------------程序测试与运行结果四、------------------------------实训总结五、------------------------------程序源代码一、课设题目与要求:汽车零部件质检管理程序题目描述已知在汽车零部件生产过程中,需要对生产的零部件进行质量检测,保证生产质量,以便对出现生产质量问题的责任人进行考核,设计一个汽车零部件质检管理程序,该程序应该具有完成如下功能:(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){\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");}void input() //输入质检信息{struct qualityTesting *sp,*newp;i nt cho=1;s p = headp1;w hile(cho != 0){newp = (struct qualityTesting *) malloc(sizeof(struct qualityTesting));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);}s p->next = NULL;}void quality_number_search() //通过质检编号显示质检信息{struct qualityTesting *sp;i nt number;s p = headp->next;p rintf("\n请输入质检编号:");s canf("%d",&number);w hile(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;}s ystem("pause");}void producer_search() //通过生产者显示质检信息{struct qualityTesting *sp;c har name[10];s p = headp->next;p rintf("\n请输入生产者:");s canf("%s",&name);w hile(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");void quality_number_change() //指定质检编号修改信息{struct qualityTesting *sp;i nt number;s p = headp->next;p rintf("\n请输入质检编号:");s canf("%d",&number);w hile(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;}p rintf("修改成功!");s ystem("pause");}void quality_number_delete() //指定质检编号删除信息struct qualityTesting *sp,*fellowp;i nt number;s p = headp->next;f ellowp = headp;p rintf("\n请输入质检编号:");s canf("%d",&number);w hile(sp != NULL){if(sp->quality_number == number){fellowp->next = sp->next;free(sp);flag=1;count--;break;}fellowp = sp;sp = sp->next;}i f(flag == 1)printf("删除成功!");e lseprintf("删除失败!");s ystem("pause");}void saveFile() //保存文件{s truct qualityTesting *sp,*fellowp;F ILE *fp2;s p = headp->next;f ellowp = headp;f p2 = fopen("data.txt","w");w hile(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);}p rintf("保存成功!(链表清空完毕)");s ystem("pause");}void add() //统计{s truct qualityTesting *sp;s p = headp->next;w hile(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;}p rintf("不合格次数:%d\n",a);p rintf("设计缺陷次数:%d\n",b);p rintf("装配质量次数:%d\n",c);p rintf("加工质量次数:%d\n",d);s ystem("pause");}四、实训总结通过本次实训,我发现我在c语言的学习上还存在很多的问题,而且对于一些基础知识的掌握还是不够熟练,本次实训的代码中很多地方都需要用到链表的知识,但是我发现我对链表的掌握很差,而且代码中的链表方面的知识还是在同学的的帮助下完成的,所以,在本次实训过后我发现我对链表方面知识的掌握有了进一步的提高。