C语言课程设计汽车零部件质检管理系统

合集下载

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课程设计之车辆管理系统

c 课程设计之车辆管理系统一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。

通过本课程的学习,学生需要掌握车辆管理系统的相关知识,包括车辆管理的基本概念、车辆管理的流程和方法等。

同时,学生需要具备一定的实际操作能力,能够运用所学知识对车辆进行有效管理。

此外,学生应该树立正确的车辆管理意识,具备良好的道德品质和社会责任感。

二、教学内容本课程的教学内容主要包括车辆管理的基本概念、车辆管理的流程和方法。

具体包括以下几个方面:1. 车辆管理的基本概念:车辆管理的定义、特点和作用;2. 车辆管理的流程:车辆的采购、使用、维护和报废等环节的管理;3. 车辆管理的方法:车辆管理的常用方法和技术,如车辆识别码系统、车辆定位系统等。

三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1. 讲授法:通过教师的讲解,使学生掌握车辆管理的基本概念和方法;2. 讨论法:通过分组讨论,培养学生的思考能力和团队协作能力;3. 案例分析法:通过分析实际案例,使学生了解车辆管理的具体操作过程;4. 实验法:通过实际操作,锻炼学生的动手能力和实际应用能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。

教学资源包括教材、参考书、多媒体资料和实验设备等。

1. 教材:选择权威、实用的教材,为学生提供全面、系统的学习资源;2. 参考书:推荐一些相关领域的参考书,帮助学生拓展知识面;3. 多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣;4. 实验设备:准备必要的实验设备,为学生提供实践操作的机会。

五、教学评估本课程的教学评估将采用多元化的方式,以全面、客观、公正地评估学生的学习成果。

评估方式包括但不限于以下几个方面:1. 平时表现:通过观察学生在课堂上的参与程度、提问回答等,了解学生的学习态度和理解程度;2. 作业:布置适量的作业,要求学生在规定时间内完成,以检验学生对知识的掌握情况;3. 考试:定期进行考试,以评估学生对课程知识的全面理解和运用能力。

C 课程设计方案汽车管理系统

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语言车辆管理系统课程设计

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 课程设计车辆管理系统一、教学目标本课程旨在通过学习车辆管理系统,使学生掌握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课程设计车辆管理系统

c课程设计车辆管理系统一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握车辆管理系统的基本概念、原理和架构;技能目标要求学生能够运用所学知识设计并实现一个简单的车辆管理系统;情感态度价值观目标要求学生培养对车辆管理系统的兴趣,提高解决问题的能力。

二、教学内容本课程的教学内容主要包括车辆管理系统的基本概念、原理和架构,以及设计实现一个简单车辆管理系统的过程。

具体包括以下几个部分:1.车辆管理系统的基本概念:介绍车辆管理系统的定义、功能和应用场景。

2.车辆管理系统的原理:讲解车辆管理系统的运行原理和工作流程。

3.车辆管理系统的架构:介绍车辆管理系统的组成部分及其相互关系。

4.设计实现简单车辆管理系统:引导学生运用所学知识,分组完成一个简单车辆管理系统的设计、编码、测试和调试。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。

讲授法用于讲解基本概念、原理和架构;讨论法用于引导学生深入思考和探讨问题;案例分析法用于分析实际案例,帮助学生理解车辆管理系统的工作原理;实验法用于让学生动手实践,培养实际操作能力。

四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。

教材和参考书用于为学生提供理论知识的支撑;多媒体资料用于辅助教学,提高学生的学习兴趣;实验设备用于开展实验教学,让学生动手实践,培养实际操作能力。

五、教学评估本课程的教学评估采用多元化的方式,包括平时表现、作业、考试等。

平时表现主要评估学生的课堂参与度、提问回答等情况;作业分为平时练习和项目实践,评估学生对知识的理解和应用能力;考试分为期中考试和期末考试,全面测试学生的知识掌握和运用情况。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排如下:共计32课时,每周2课时,共16周完成。

教学地点安排在教室和实验室,以便于学生进行理论学习和实践操作。

c语言车辆管理系统课程设计

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语言课程设计汽车零部件质检管理系统

C语言课程设计汽车零部件质检管理系统

数据库类型:关系型数据库
数据库操作:包括查询、插入、更 新、删除等操作
添加标题
添加标题
添加标题
添加标题
数据库结构:包括零部件信息表、 质检记录表、用户信息表等
数据库安全:包括用户权限管理、 数据备份等措施
添加标题
主界面:显示系统名 称、用户登录、退出 按钮等
添加标题
登录界面:输入用户 名、密码,登录成功 后进入主界面
统计分析:对质检数据进行统计分 析,生成统计图表,如合格率、不 合格率等
汽车零部件质检管理系统应具备用户友好的界面,方便操作。 系统应具备数据录入、查询、统计、分析等功能,满足用户日常使用需求。 系统应具备权限管理功能,确保数据安全。 系统应具备良好的扩展性,便于后期升级和维护。
录入汽车零部 件信息:包括 型号、规格、
定期更新系统软件,确保系 统安全
定期备份数据,防止数据丢 失
定期检查系统运行情况,确 保系统稳定运行
定期培训员工,提高系统维 护能力
建立故障处理机制,及时解 决系统故障
定期评估系统性能,优化系 统配置
定期检查系统版本,确保及时更新
升级后进行系统测试,确保功能正常
备份重要数据,防止升级过程中数据丢失 升级前测试新版本,确保兼容性和稳定性
目的:验证系统各模块之间的接口和交互是否正确 测试方法:黑盒测试、白盒测试、灰盒测试 测试内容:功能测试、性能测试、安全性测试、兼容性测试 测试工具:JUnit、Selenium、LoadRunner等
优化算法:采用更高效的算法,提高系统运行速度 数据库优化:优化数据库结构,提高查询效率 界面优定性和可靠性
测试目的:验证系统功能是否满足需求 测试方法:黑盒测试、白盒测试、灰盒测试等 测试结果:系统功能正常,性能稳定 优化建议:优化算法,提高系统效率 测试结论:系统满足设计要求,可以投入使用

车辆管理系统课程设计报告(C++)

车辆管理系统课程设计报告(C++)
cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7)<<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;
}
if(i == '1')
{cout<<"请输入需查询车辆的制造公司:";
cin>>t;}
else if(i == '2')
{cout<<"请输入需查询的车辆编号:";
cin>>n;}
else if(i == '3')
{cout<<"请输入需查询的车辆型号(1-大客车,2-小轿车,3-卡车):";
cin>>m;}
10
总分
100
指导教师评语:
指导教师签名:
年月日
格式要求:
中文正文使用五号字体,英文及代码使用小五号字体
东华理工大学
课程设计评分表
学生姓名:C班级16*****学号:20162018****
课程设计题目:
项目内容
满分
实评


能结合所学课程知识、有一定的能力训练。符合选题要求
(5人一题)
10
工作量适中,难易度合理
(5人一题)
10
工作量适中,难易度合理
10




能熟练应用所学知识,有一定查阅文献及运用文献资料能力

c语言课程设计车辆管理系统

c语言课程设计车辆管理系统

c语言课程设计车辆管理系统一、教学目标本课程的目标是让学生掌握C语言的基本语法,能够运用C语言设计一个简单的车辆管理系统。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法,理解变量、数据类型、运算符、控制结构等基本概念。

2.技能目标:学生能够运用C语言编写程序,实现对车辆信息的增删改查功能。

3.情感态度价值观目标:培养学生对编程的兴趣,提高学生解决问题的能力,培养学生的团队合作精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、变量、数据类型、运算符、控制结构等。

具体安排如下:1.第一章:C语言概述,介绍C语言的基本语法和编程环境。

2.第二章:数据类型和变量,讲解整型、浮点型、字符型等数据类型以及变量的使用。

3.第三章:运算符和表达式,介绍算术运算符、关系运算符、逻辑运算符等。

4.第四章:控制结构,讲解顺序结构、选择结构、循环结构等。

5.第五章:函数,介绍函数的定义、声明和调用,以及常用的库函数。

6.第六章:指针,讲解指针的概念和运用,以及指针数组和指向指针的指针。

7.第七章:车辆管理系统,运用所学知识设计一个简单的车辆管理系统。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:通过讲解C语言的基本语法、数据类型、运算符等概念,使学生掌握基础知识。

2.案例分析法:通过分析实际案例,让学生理解控制结构、函数、指针等知识点在实际编程中的应用。

3.实验法:安排实验课程,让学生动手编写程序,培养实际编程能力。

四、教学资源1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C语言编程思想》3.多媒体资料:PPT课件、教学视频4.实验设备:计算机、编程环境五、教学评估本课程的评估方式包括平时表现、作业、考试等。

具体评估标准如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。

2.作业:占课程总评的30%,包括课后练习、编程任务等。

车辆管理系统课程设计MFC

车辆管理系统课程设计MFC

车辆管理系统课程设计MFC一、课程目标知识目标:1. 学生能理解车辆管理系统MFC的基本概念,掌握MFC编程的基本框架和关键步骤。

2. 学生能描述车辆管理系统的功能模块,如车辆信息管理、停车位管理、收费管理等,并了解它们之间的关联。

3. 学生能掌握使用MFC进行数据库操作的方法,实现对车辆管理系统中数据的有效存取。

技能目标:1. 学生能运用MFC软件开发工具,设计并实现一个简单的车辆管理系统。

2. 学生能通过调试和优化,解决车辆管理系统开发过程中遇到的问题,提高系统稳定性。

3. 学生能运用所学知识,对车辆管理系统进行功能扩展,提升系统实用性。

情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,树立编程改变生活的观念。

2. 学生通过小组合作,培养团队协作精神和沟通能力,增强解决问题的信心。

3. 学生关注车辆管理系统在实际生活中的应用,认识到技术对社会发展的推动作用。

课程性质:本课程为实践性较强的课程,结合课本知识,引导学生动手实践,培养编程能力和实际应用能力。

学生特点:初三学生具备一定的计算机基础和编程知识,对实际应用具有较强的兴趣。

教学要求:教师需注重理论与实践相结合,关注学生个体差异,提供个性化指导,确保学生能够学以致用。

在教学过程中,分解课程目标为具体学习成果,便于教学设计和评估。

二、教学内容1. 车辆管理系统概述:介绍车辆管理系统的概念、功能及在实际生活中的应用,使学生了解课程背景和实际意义。

- 教材章节:第一章 车辆管理系统简介2. MFC编程基础:讲解MFC的基本框架、常用控件及其使用方法,为学生后续开发打下基础。

- 教材章节:第二章 MFC编程基础3. 数据库操作:介绍数据库的基本概念,讲解MFC中如何进行数据库操作,如数据的添加、查询、修改和删除。

- 教材章节:第三章 数据库操作4. 功能模块设计:分析车辆管理系统的功能模块,引导学生按照模块化思想进行设计。

- 教材章节:第四章 车辆管理系统功能模块设计5. 系统实现与调试:讲解如何利用MFC工具将设计转化为实际系统,并介绍调试和优化方法。

c语言汽车课程设计

c语言汽车课程设计

c语言汽车课程设计一、课程目标知识目标:1. 学生能够掌握C语言的基本语法和编程技巧,尤其是与汽车相关数据结构的实现(如结构体、数组等)。

2. 学生能够运用C语言实现简单的汽车信息管理系统,包括汽车基本信息录入、查询和修改等功能。

3. 学生理解并能运用循环、条件语句以及函数调用来处理复杂逻辑,实现对汽车数据的有效管理。

技能目标:1. 学生能够运用所学知识设计并编写出具有实际意义的C语言程序,提高问题解决能力。

2. 学生通过课程实践,能够掌握基本的编程规范和调试技巧,形成良好的编程习惯。

3. 学生能够通过小组合作,进行有效沟通,共同完成课程设计任务,提高团队协作能力。

情感态度价值观目标:1. 学生在学习过程中培养对编程的兴趣,提高对计算机科学的认识,激发深入学习编程的动机。

2. 学生在课程设计中能够体会编程对于解决实际问题的价值,增强自信心和成就感。

3. 学生通过学习C语言汽车课程设计,认识到信息技术在现代汽车行业中的重要性,形成积极的技术态度和创新意识。

课程性质:本课程设计为实践性较强的学科课程,强调理论联系实际,注重培养学生的动手能力和实际问题解决能力。

学生特点:考虑到学生所在年级,应具备初步的逻辑思维能力,对编程有基础的认识和兴趣,但需进一步引导和实践以深化理解。

教学要求:教学内容需结合课本知识,同时注重实际应用,通过案例教学和项目驱动,激发学生的学习兴趣和探究欲望,确保学生能够达到上述课程目标。

在教学过程中,应不断评估学生的学习成果,及时调整教学策略,确保教学目标的实现。

二、教学内容1. C语言基础知识回顾:数据类型、变量、运算符、表达式、输入输出函数等,确保学生具备基本的编程能力。

相关教材章节:第一章至第三章2. 控制结构:顺序结构、选择结构、循环结构,为学生编写复杂程序打下基础。

相关教材章节:第四章3. 函数:函数的定义、调用、参数传递、递归等,培养学生模块化编程思维。

相关教材章节:第五章4. 数组和字符串:数组的使用、排序算法、字符串处理,为汽车信息管理提供数据支持。

车辆管理系统c课程设计

车辆管理系统c课程设计

车辆管理系统c 课程设计一、课程目标知识目标:1. 理解车辆管理系统的基本概念、功能及作用;2. 掌握车辆管理系统中数据库的建立、查询及更新方法;3. 学会分析并解决车辆管理系统中存在的问题。

技能目标:1. 能够运用C语言编写简单的车辆管理系统功能模块;2. 能够利用数据库技术对车辆信息进行有效管理;3. 能够通过实际操作,熟练使用车辆管理系统进行日常业务处理。

情感态度价值观目标:1. 培养学生对车辆管理系统及其实际应用的兴趣,提高学习积极性;2. 培养学生团队协作意识,学会与他人共同解决问题;3. 培养学生具备良好的信息素养,认识到信息技术在现实生活中的重要作用。

课程性质:本课程为信息技术学科,旨在让学生通过学习车辆管理系统,掌握数据库应用和C语言编程技能。

学生特点:学生处于高年级阶段,具备一定的信息技术基础,具有较强的逻辑思维能力和自主学习能力。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的实践操作能力和创新意识。

通过分解课程目标为具体学习成果,使学生在课程学习过程中不断提升自身能力,为后续教学设计和评估提供有力依据。

二、教学内容1. 车辆管理系统的基本概念与功能- 系统介绍:理解车辆管理系统的定义、分类及应用场景;- 功能模块:掌握车辆管理系统的主要功能模块及其相互关系。

2. 数据库技术在车辆管理系统中的应用- 数据库设计:学习如何建立车辆信息数据库,包括表结构设计、关系定义等;- 数据操作:掌握数据库的基本查询、更新、删除等操作。

3. C语言编程在车辆管理系统中的应用- 编程基础:回顾C语言基本语法和编程技巧;- 功能实现:学习使用C语言编写车辆管理系统中的功能模块。

4. 车辆管理系统的实践操作- 案例分析:分析实际车辆管理系统案例,了解系统在实际中的应用;- 实操演练:通过实际操作,学会使用车辆管理系统进行业务处理。

5. 教学内容的安排与进度- 第一周:车辆管理系统基本概念与功能模块介绍;- 第二周:数据库设计与数据操作;- 第三周:C语言编程基础及功能实现;- 第四周:实践操作及案例分析。

c课程设计车辆管理系统

c课程设计车辆管理系统

c课程设计车辆管理系统一、课程目标知识目标:1. 让学生理解车辆管理系统的基本概念,掌握系统的组成与功能。

2. 使学生掌握车辆管理系统中车辆信息管理、车辆调度管理、车位管理等方面的基本知识。

3. 帮助学生了解数据库在车辆管理系统中的应用,并掌握基本的数据库操作。

技能目标:1. 培养学生运用所学知识设计简单的车辆管理系统的能力。

2. 提高学生分析实际车辆管理问题,提出解决方案并进行优化的能力。

3. 培养学生通过小组合作,进行项目实践和沟通协调的能力。

情感态度价值观目标:1. 培养学生对车辆管理系统及相关技术领域的兴趣,激发他们的探究欲望。

2. 培养学生具备良好的团队协作精神,学会尊重他人意见,善于倾听。

3. 增强学生的社会责任感,使他们认识到车辆管理系统对城市交通、环境保护等方面的重要意义。

分析课程性质、学生特点和教学要求:本课程为信息技术课程,旨在让学生结合实际生活,运用所学知识设计车辆管理系统。

学生为初中生,具有一定的信息技术基础,对新鲜事物充满好奇。

教学要求注重实践操作,引导学生主动探究,培养解决问题的能力。

课程目标分解:1. 知识目标:通过本课程学习,学生能掌握车辆管理系统的基础知识,了解系统的各个模块及其功能。

2. 技能目标:学生能运用所学知识,设计并实现一个简单的车辆管理系统,具备一定的项目实践能力。

3. 情感态度价值观目标:学生在课程学习过程中,能够积极参与小组合作,尊重他人,关注社会问题,提高自身的社会责任感。

二、教学内容1. 车辆管理系统概述- 了解车辆管理系统的定义、作用及发展历程。

- 学习车辆管理系统的基本组成和功能模块。

2. 车辆信息管理- 掌握车辆基本信息的数据结构。

- 学习车辆信息录入、查询、修改和删除等操作。

3. 车辆调度管理- 了解车辆调度原则和方法。

- 学习车辆调度算法及其在实际中的应用。

4. 车位管理- 学习车位分配策略和车位查找算法。

- 掌握车位信息管理的基本操作。

C语言课程设计汽车零部件质检管理系统

C语言课程设计汽车零部件质检管理系统

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计实训报告实训题目: 汽车零部件质检管理系统专业:班级:姓名:成绩:完成日期:指导教师:课设报告内容:一、-----------------------------设计题目与要求二、-----------------------------系统设计三、------------------------------程序测试与运行结果四、------------------------------实训总结五、------------------------------程序源代码一、课设题目与要求:汽车零部件质检管理程序题目描述已知在汽车零部件生产过程中,需要对生产的零部件进行质量检测,保证生产质量,以便对出现生产质量问题的责任人进行考核,设计一个汽车零部件质检管理程序,该程序应该具有完成如下功能:(1)能从键盘输入质检信息。

(3)指定生产者,显示质检信息。

(4)指定质检编号,修改质检信息。

(5)指定质检编号,删除质检信息。

题目要求:(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。

(2) 质检信息包括:质检编号、零部件名称、生产者、生产部门、质检结果(合格/不合格)、质量问题(设计缺陷/装配质量/加工质量)、质检员、质检日期。

(3) 为程序设计windows窗口,在该窗口上以按钮的形式为用户提供“菜单”,通过点击各个功能项对应的按钮完成操作。

输入要求:(1)用户可以根据需求,选定相应的操作项目。

进入每个操作后,通过窗口的文本框,从键盘输入相应的信息。

程序根据用户输入的信息完成相应的处理,实现要求的功能。

(2)能对输入的数据进行简单的校验,例如,质检日期必须是一个合法的日期格式,质检编号是唯一的(一个质检编号对应一次质检的质检信息)。

输出要求:(1)应用程序运行后,要在屏幕上显示一个按钮形式的“菜单”。

C课程设计之车辆管理系统

C课程设计之车辆管理系统

C++面向对象程序设计课程设计报告课程名称 C++面向对象程序设计课题名称车辆管理系统专业班级学号姓名指导教师年月日一、课程设计题目:题目4 车辆管理系统二、目的与要求:1、目的:1要求学生达到熟练掌握C++语言的基本知识和技能;2基本掌握面向对象程序设计的基本思路和方法;3能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题;2、基本要求:1要求利用面向对象的方法以及C++的编程思想来完成系统的设计;2要求在设计的过程中,建立清晰的类层次;3在系统中至少要定义四个类,每个类中要有各自的属性和方法;4在系统的设计中,至少要用到面向对象的一种机制;3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能;三、设计方法和基本原理:功能要求:1)添加车辆程序主要完成车辆信息的添加,要求编号唯一;如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果车辆信息库已满,则提示不能再添加新的车辆信息;2)查询车辆可按照三种方式进行物品的查询;·按车辆制造公司查询:·按编号查询:·按类别查询:如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;3)显示车辆信息库可显示当前车辆信息库中所有的车辆信息;4)修改车辆可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性;5删除车辆对已添加的车辆信息进行删除;如果当前车辆信息库为空,则提示“车辆信息库为空”并返回操作;否则输入要删除的编号,根据编号删除该车辆信息,如果没有找到该车辆信息,则提示“该编号不存在”;6统计功能输出当前车辆信息库中总车辆数,以及按车辆类别,统计出当前车辆信息库中各类别的车辆数并显示;7)保存车辆将当前系统中车辆信息存入文件中;8)读取车辆将保存在文件中的车辆信息读入到当前系统中,以供用户使用;在完成以上基本功能的基础上,可自行进行扩展或完善;3、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:1应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2分析系统中的各个实体以及它们之间的关系;3根据问题描述,设计系统的类层次;4完成类层次中各个类的描述;5完成类中各个成员函数的定义;6完成系统的应用模块;7功能调试;8完成系统总结报告;目录系统需求分析系统设计的目的与意义:随着社会的进步和人们生活水平的提高,车辆作为交通工具,已经成为人们日常生活中不可缺少的一部分.大大增加了交通压力,同时,也对车辆里的管理有了一个更高的要求.因此,需要一个车辆管理系统来对各种车辆的各种信息进行统一管理.系统功能需求:本系统有三个类:Car类、Truck类、Bus类,存储小轿车信息、卡车信息、大客车信息;1添加车辆程序主要完成车辆信息的添加,要求编号唯一;如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果车辆信息库已满,则提示不能再添加新的车辆信息;2查询车辆可按照三种方式进行物品的查询;·按车辆制造公司查询:·按编号查询:·按类别查询:如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;3显示车辆信息库可显示当前车辆信息库中所有的车辆信息;4修改车辆可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性;5删除车辆对已添加的车辆信息进行删除;如果当前车辆信息库为空,则提示“车辆信息库为空”并返回操作;否则输入要删除的编号,根据编号删除该车辆信息,如果没有找到该车辆信息,则提示“该编号不存在”;6统计功能输出当前车辆信息库中总车辆数,以及按车辆类别,统计出当前车辆信息库中各类别的车辆数并显示;7保存车辆将当前系统中车辆信息存入文件中;8读取车辆将保存在文件中的车辆信息读入到当前系统中,以供用户使用;总体设计系统功能分析:系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能;add函数用于录入信息;modify函数用来修改信息;del函数用来修改信息;search 函数用来查询车辆信息;read函数用于将文件中的数据读取到内存中;save函数用于将内存中的信息存入文件内;主函数main用于调用这些函数;系统功能模块划分与设计:系统定义了Car类、Truck类、Bus类这三个类,定义了add、modify、del、read、save、search等函数来实现系统所需功能;系统功能模块图:类的设计1Base类抽象类的设计:2小轿车类的设计3卡车类的设计:4大客车类的设计:详细设计及实现Baseclass Base{public:virtual void delint=0;virtual void save=0;virtual void search=0;};小轿车类的实现class Car:public Base{public:double carFee;char carID20;char carName20;void read;void add;void modifyint;void delint;void save;void search;};void Car::read{ifstream carfile;"轿车信息.txt";carfile>>carcount_car.carID>>carcount_car.carName>>carcount_car.carFee;while{count_car++;carfile>>carcount_car.carID>>carcount_car.carName>>carcount_car.carFee;};}void Car::add{arID,carID;strcpycarcount_car.carName,carName;carcount_car.carFee=carFee;count_car++;}void Car::modifyint index{strcpycarindex-1.carID,carID;strcpycarindex-1.carName,carName;carindex-1.carFee=carFee;}void Car::delint index{arID,cari.carID;strcpycari-1.carName,cari.carName;cari-1.carFee=cari.carFee;}count_car--;}void Car::search{forint i=0;i<count_car-1;i++{ifstrcmpcari.carID,carID==0||strcmpcari.carName,carName==0{cout<<"轿车车牌号 "<<"轿车品牌 "<<"轿车油耗费用"<<endl;cout<<cari.carID<<" "<<cari.carName<<" "<<cari.carFee<<endl;break;}elsecout<<"无此轿车数据"<<endl;break;}}void Car::save{ofstream carfile;"轿车信息.txt";forint i=0;i<=count_car-1;i++carfile<<cari.carID<<" "<<cari.carName<<" "<<cari.carFee<<endl;;}卡车类的实现class Truck:public Base{public:char truckID20;char truckName20;int truckNum;void read;void add;void modifyint;void delint;void save;void search;};void Truck::read{ifstream truckfile;"卡车信息.txt";truckfile>>truckcount_truck.truckID>>truckcount_truck.truckName>>t ruckcount_truck.truckNum;while{count_truck++;truckfile>>truckcount_truck.truckID>>truckcount_truck.truckName >>truckcount_truck.truckNum;};}void Truck::add{ruckName,truckName;strcpytruckcount_truck.truckID,truckID;truckcount_truck.truckNum=truckNum;count_truck++;}void Truck::modifyint index{strcpytruckindex-1.truckID,truckID;strcpytruckindex-1.truckName,truckName;truckindex-1.truckNum=truckNum;}void Truck::delint index{ruckID,truckID;strcpytrucki-1.truckName,truckName;trucki-1.truckNum=truckNum;}count_truck--;}void Truck::search{forint i=0;i<count_truck-1;i++{ifstrcmptrucki.truckID,truckID==0{cout<<"卡车车牌号 "<<"卡车品牌"<<"卡车载重数吨"<<endl;cout<<trucki.truckID<<" "<<trucki.truckName<<""<<trucki.truckNum<<endl;break;}elsecout<<"无此卡车数据"<<endl;break;}}void Truck::save{ofstream truckfile;"卡车信息.txt";forint i=0;i<=count_truck-1;i++truckfile<<trucki.truckID<<" "<<trucki.truckName<<""<<trucki.truckNum;;}大客车类的实现class Bus:public Base{public:char busName20;char busID20;int busNum;void read;void add;void modifyint;void delint;void save;void search;};void Bus::read{fstream busfile"客车信息.txt",ios::in|ios::out;busfile>>buscount_bus.busID>>buscount_bus.busName>>buscount_bus.busNum;while{count_bus++;busfile>>buscount_bus.busID>>buscount_bus.busName>>buscount_bus.busNum;};}void Bus::add{usID,busID;strcpybuscount_bus.busName,busName;buscount_bus.busNum=busNum;count_bus++;}void Bus::modifyint index{strcpybusindex-1.busID,busID;strcpybusindex-1.busName,busName;busindex-1.busNum=busNum;}void Bus::delint index{usID,busi.busID;strcpybusi-1.busName,busi.busName;busi-1.busNum=busi.busNum;}count_bus--;}void Bus::search{forint i=0;i<count_bus-1;i++{ifstrcmpbusi.busID,busID==0{cout<<"客车车牌号 "<<"客车品牌 "<<"客车最大载客数人"<<endl;cout<<busi.busID<<" "<<busi.busName<<" "<<busi.busNum<<endl;break;}elsecout<<"无此客车数据"<<endl;break;}}void Bus::save{ofstream busfile;"客车信息.txt";forint i=0;i<=count_bus-1;i++busfile<<busi.busID<<" "<<busi.busName<<" "<<busi.busNum<<endl; ;}include <>include<>include <>include <>include <>Car carMAXcar;Truck truckMAXtruck;Bus busMAXbus;int count_car=0;int count_truck=0;int count_bus=0;Base p=NULL;char c;加轿车信息"<<endl;cout<<" 2.修改轿车信息"<<endl;cout<<" 3.删除轿车信息"<<endl;cout<<" 4.查询轿车信息"<<endl;cout<<" 5.显示所有轿车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Car car1;p=&car1;cout<<"请输入轿车车牌号、轿车品牌、油耗费用:"<<endl; cin>>>>>>;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Car car2;p=&car2;int index;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<" "<<cari.carFee<<endl;cout<<"请选择轿车序号:"<<endl;cin>>index;cout<<"请输入要修改的轿车车牌号、轿车品牌、油耗费用:"<<endl; cin>>>>>>;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Car car3;p=&car3;int index;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<""<<cari.carFee<<endl;cout<<"请选择要修改的轿车车牌号、轿车品牌、油耗费用的序列号:"<<endl;cin>>index;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->delindex;p->save;}break;}case 4:{Car car4;p=&car4;cout<<"请输入轿车的车名:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"轿车车牌号 "<<"轿车品牌 "<<"轿车油耗费用"<<endl;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<" "<<cari.carFee<<endl;system"pause";ifcount_car==0cout<<setw20<<"轿车信息库为空"<<endl;system"pause";break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl; break;}ifquit==truebreak;}system"cls";return;}加卡车信息"<<endl;cout<<" 2.修改卡车信息"<<endl;cout<<" 3.删除卡车信息"<<endl;cout<<" 4.查询卡车信息"<<endl;cout<<" 5.显示所有卡车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Truck truck1;p=&truck1;cout<<"请输入卡车的车牌号、卡车品牌、载重数吨:"<<endl; cin>>>>>>;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Truck truck2;p=&truck2;int index;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<endl; cout<<"请选择要修改的卡车信息的序列号:"<<endl;cin>>index;cout<<"请输入要修改卡车的车牌号、卡车品牌、载重数吨:"<<endl;cin>>>>>>;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Truck truck3;p=&truck3;int index;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<" "<<trucki.truckNum<<endl;cout<<"请选择要删除的卡车信息序列号:"<<endl;cin>>index;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc='n'||c=='N'{p->delindex;p->save;}break;}case 4:{Truck truck4;cout<<"请输入卡车的车牌号:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"卡车车牌号 "<<"卡车品牌 "<<"卡车载重数吨"<<endl;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<""<<trucki.truckNum<<endl;system"pause";ifcount_truck==0cout<<setw20<<"卡车信息库为空"<<endl;break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl;break;}ifquit==truebreak;}system"cls";return;}加客车信息"<<endl;cout<<" 2.修改客车信息"<<endl;cout<<" 3.删除客车信息"<<endl;cout<<" 4.查询客车信息"<<endl;cout<<" 5.显示所有客车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Bus bus1;p=&bus1;cout<<"请输入要添加的客车的车牌号、客车品牌、最大载客数人:"<<endl; cin>>>>>>;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Bus bus2;p=&bus2;int index;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;cout<<"请选择要修改的客车信息序列号:"<<endl;cin>>index;cout<<"请输入要修改的客车车牌号、客车品牌、最大载客数人:"<<endl; cin>>>>>>;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Bus bus3;p=&bus3;int index;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;cout<<"请选择要删除的客车信息序列号:"<<endl;cin>>index;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->delindex;p->save;}break;}case 4:{Bus bus4;cout<<"请输入客车的车牌号:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"客车车牌号 "<<"客车品牌 "<<"客车最大载客数人"<<endl;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;system"pause";ifcount_bus==0cout<<setw20<<"客车信息库为空"<<endl;break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl;break;}ifquit==truebreak;}system"cls";return;}ead;Truck truck;truck.read;Bus bus;bus.read;int choice=1;车信息管理"<<endl;cout<<" 2.卡车信息管理"<<endl;cout<<" 3.客车信息管理"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1: car_manage;break;case 2: truck_manage;break;case 3: bus_manage;break;case 0: cout<<"谢谢您的使用"<<endl; return;break;default:cout<<"请输入0~3之间的数字"<<endl;break;}system"cls";}}加轿车信息"<<endl;cout<<" 2.修改轿车信息"<<endl;cout<<" 3.删除轿车信息"<<endl;cout<<" 4.查询轿车信息"<<endl;cout<<" 5.显示所有轿车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Car car1;p=&car1;cout<<"请输入轿车车牌号、轿车品牌、油耗费用:"<<endl;cin>>>>>>;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Car car2;p=&car2;int index;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<""<<cari.carFee<<endl;cout<<"请选择轿车序号:"<<endl;cin>>index;cout<<"请输入要修改的轿车车牌号、轿车品牌、油耗费用:"<<endl; cin>>>>>>;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Car car3;p=&car3;int index;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<""<<cari.carFee<<endl;cout<<"请选择要修改的轿车车牌号、轿车品牌、油耗费用的序列号:"<<endl;cin>>index;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->delindex;p->save;}break;}case 4:{Car car4;p=&car4;cout<<"请输入轿车的车名:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"轿车车牌号 "<<"轿车品牌 "<<"轿车油耗费用"<<endl; forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<""<<cari.carFee<<endl;system"pause";ifcount_car==0cout<<setw20<<"轿车信息库为空"<<endl;system"pause";break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl; break;}ifquit==truebreak;}system"cls";return;}加卡车信息"<<endl;cout<<" 2.修改卡车信息"<<endl;cout<<" 3.删除卡车信息"<<endl;cout<<" 4.查询卡车信息"<<endl;cout<<" 5.显示所有卡车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Truck truck1;p=&truck1;cout<<"请输入卡车的车牌号、卡车品牌、载重数吨:"<<endl; cin>>>>>>;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Truck truck2;p=&truck2;int index;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<endl; cout<<"请选择要修改的卡车信息的序列号:"<<endl;cin>>index;cout<<"请输入要修改卡车的车牌号、卡车品牌、载重数吨:"<<endl;cin>>>>>>;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Truck truck3;p=&truck3;int index;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<" "<<trucki.truckNum<<endl;cout<<"请选择要删除的卡车信息序列号:"<<endl;cin>>index;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc='n'||c=='N'{p->delindex;p->save;}break;}case 4:{Truck truck4;cout<<"请输入卡车的车牌号:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"卡车车牌号 "<<"卡车品牌 "<<"卡车载重数吨"<<endl;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<""<<trucki.truckNum<<endl;system"pause";ifcount_truck==0cout<<setw20<<"卡车信息库为空"<<endl;break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl;break;}ifquit==truebreak;}system"cls";return;}加客车信息"<<endl;cout<<" 2.修改客车信息"<<endl;cout<<" 3.删除客车信息"<<endl;cout<<" 4.查询客车信息"<<endl;cout<<" 5.显示所有客车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Bus bus1;p=&bus1;cout<<"请输入要添加的客车的车牌号、客车品牌、最大载客数人:"<<endl; cin>>>>>>;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Bus bus2;p=&bus2;int index;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;cout<<"请选择要修改的客车信息序列号:"<<endl;cin>>index;cout<<"请输入要修改的客车车牌号、客车品牌、最大载客数人:"<<endl; cin>>>>>>;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Bus bus3;p=&bus3;int index;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;cout<<"请选择要删除的客车信息序列号:"<<endl;cin>>index;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->delindex;p->save;}break;}case 4:{Bus bus4;cout<<"请输入客车的车牌号:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"客车车牌号 "<<"客车品牌 "<<"客车最大载客数人"<<endl;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;system"pause";ifcount_bus==0cout<<setw20<<"客车信息库为空"<<endl;break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl;break;}ifquit==truebreak;}system"cls";return;}车信息管理"<<endl;cout<<" 2.卡车信息管理"<<endl;cout<<" 3.客车信息管理"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1: car_manage;break;case 2: truck_manage;break;case 3: bus_manage;break;case 0: cout<<"谢谢您的使用"<<endl; return;break;default:cout<<"请输入0~3之间的数字"<<endl;break;}system"cls";}系统调试在调试过程中,出现了下面一些错误:具体调试过程:(1)显示主菜单11111重复以上操作分别输入红旗、大众、三菱和现代1121123113114115110以上只演示了三个车辆类小轿车、卡车、大客车中的小轿车;其他两个类的操作基本类似,就不一一列举了;5、结论程序总共设计了三个类,满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C++的编程思想来完成系统的设计,做到了用文件存储车辆信息、从文件中读取车辆信息、修改信息、查询信息、删除信息显示文件中存储的信息等要求;而且界面简洁,容易操作;但是程序不太条理,不够简练,导致出现错误很难发现和修改;同时,发现一个难点,那就是类的封装;一个可以运行的程序要把它成功的封装起来也很困难;系统的错误提示难以识别,错误点不易找到,导致程序的耗时量大大增加;6、心得体会这次课程设计历经两个星期左右,通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,也有很多闻所未闻的东西,从而更加明白知识扎实的重要性,理解实践能力的重要性因为基础知识的不扎实让我在这次课程设计中走了许多弯路,不过我认为是值得的,它大大的补充了我知识不足的那一面,我始终相信付出必有收获;这次的课程设计,可以说是苦乐交加;在程序设计过程中,不仅检验、巩固了我所学的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情;课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程; 它为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力;提高学生运用所学知识解决实际问题的能力;课程设计这类实践训练是我们迈向社会,从事职业工作前一个必不少的过程;“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义;我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础;通过这次车辆管理系统的设计,我在多方面都有所提高;首先,整体与局部的把握,在系统设计前,需要整体思考车辆管理系统所包含的信息及其实现的功能,在设计过程中,再思考局部功能实现的完整性与整个程序的结合;其次,在实现用户权限设置这个功能时,通过查阅课本、资料,实践,对字符串的使用strcmpmm,"1234";更加熟悉、了解,能够熟练运用字符串,而且加强了对类中参数传值的使用,巩固了类定义,函数成员使用等知识,并通过条件语句实现不同的人设置不同的操作,在实现查找功能时,更熟练了指针对象的使用;最后,在整个程序运行时,考虑到屏幕出现的效果,查阅资料及其前人的登录系统代码,了解了库函数中的屏幕清零函数system"cls";,并能正确使用;课程设计使我对c++课程又进行了系统的复习,独立思考的能力也有了提高;通过这次编程使我们认识到在以后的学习中要多做练习增加自己的知识面才能更好的适应自己的工作,在其中由最初的沮丧中出来,充满信心地去解决问题;通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力;而且这次课程设计也让我受益匪浅,真切感觉到任何事情都需要细心和耐心,二者缺一不可;没有细心,做事情永远都是事倍功半,一旦某个细节错了,就会导致某个部分应用不了额,甚至可能导致整个系统都运行不了;没了耐心,可能就会导致这件事不能够完成,经常半途而废;七、参考书目1、谭浩强. C++程序设计教程清华大学出版社2、谭浩强. C++面向对象程序设计清华大学出版社3、Visual C++ 从入门到精通八、附录关键程序代码include <>include<>include <>include <>include <>class Base{public:virtual void read=0;virtual void add=0;virtual void modifyint=0;virtual void delint=0;virtual void save=0;virtual void search=0;};class Car:public Base{public:double carFee;char carID20;char carName20;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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语言的学习上还存在很多的问题,而且对于一些基础知识的掌握还是不够熟练,本次实训的代码中很多地方都需要用到链表的知识,但是我发现我对链表的掌握很差,而且代码中的链表方面的知识还是在同学的的帮助下完成的,所以,在本次实训过后我发现我对链表方面知识的掌握有了进一步的提高。

相关文档
最新文档