《汽车质检信息管理系统程序.docx》由会员分享,可在线阅读,更多相关《汽车质检信息管理系统程序.docx(53页珍藏版)》请在三一办公上搜索。
1、HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计课程设计报告课设题目: 汽车质检信息管理系统 专 业: 电子信息工程(汽车电子) 班 级: 电信143班学 号: 201401180姓 名: 檀成俊 成 绩: 完成日期: 2015年7月5号10号 指导教师: 胡宁亚目录一、课程设计目的4二、课设要求42.1任务描述42.2运行环境52.3开发工具5三、总体设计53.1系统流程设计53.2系统模块设计6四、详细设计74.1数据结构设计74.2模块接口设计84.3 以下是几个主要板块的流程图9五、运行结果显示135.1欢迎界面135.2密码判断显示13
2、5.3显示主菜单145.4读入数据成功155.5新建质检信息155.6显示质检信息175.7查找质检信息185.8修改信息205.9删除信息205.10课设题目和要求显示21六、程序调试与测试216.1程序调试216.2程序测试23七、问题与不足24八、建议24九、编程体会25十、参考文献26十一、程序源代码:26题目描述第十题:汽车零部件质检管理程序已知在汽车零部件生产过程中,需要对生产的零部件进行质量检测,保证生产质量,以便对出现生产质量问题的责任人进行考核,设计一个汽车零部件质检管理程序,该程序应该具有完成如下功能:(1) 能从键盘输入质检信息。(2) 指定质检编号,显示质检信息。(3)
3、 指定生产者,显示质检信息。(4) 指定质检编号,修改质检信息。(5) 指定质检编号,删除质检信息。 题目要求:(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。(2) 质检信息包括:质检编号、零部件名称、生产者、生产部门、质检结果(合格/不合格)、质量问题(设计缺陷/装配质量/加工质量)、质检员、质检日期。(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。输入要求: (1)应用程序运行后在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。程序根据用户
4、输入的信息完成相应的处理,实现要求的功能。 (2)能对输入的数据进行简单的校验,例如,质检日期必须是一个合法的日期格式,质检编号是唯一的(一个质检编号对应一次质检的质检信息)。输出要求: (1)应用程序运行后,要在屏幕上显示一个菜单。 (2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。(3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定质检编号删除质检信息时,如果该质检信息不存在,要提示没能删除,如果删除成功要提示删除成功。实现要求: (1)在程序中使用链表存储质检信息。 (2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。提示:
5、 (1)使用结构体表示质检信息,一个结点保存一条质检信息。 扩展功能: (1)提供一些统计功能。例如统计生产者质检不合格的次数,统计各种质量问题出现次数。 (2)质检信息从文件读入。 (3)将质检信息保存到文件中。一、 课程设计目的1) 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2) 通过课程设计,进一步掌握C语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3) 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4) 通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自
6、己对程序编写的兴趣,并能独立设计和实现一个小型系统。5) 通过课程设计,加强了自己的程序分析能力。二、 课设要求2.1 任务描述此系统以零件质检信息查询为背景,零件信息有零件编号,零件名称,零件生产者,零件生产部门,质检结果,质检问题,质检员,质检时间。该信息管理系统提供一下功能:1) 系统以菜单方式工作(用键盘输入数字来选择功能)。2) 信息创建功能。能从键盘创建零件的基本信息。如:零件编号,零件名称,零件生产者,零件生产部门,质检结果,质检问题,质检员,质检时间3) 显示功能。显示所有零件的质检信息。4) 查询功能。可以通过输入零件的生产编号,或者零件的生产者来查找零件的信息。5) 删除功
7、能。指定某个零件的信息,删除这个零件的信息。6) 修改功能。指定某个零件的信息,修改这个零件的信息。2.2 运行环境1) WindowsXP/7系统2) VC+6.0编译环境2.3 开发工具C语言三、 总体设计3.1 系统流程设计欢迎界面主菜单显示从磁盘导入质检信息创建质检信息显示质检信息根据编号查找信息显示课设题目和要求根据编号删除信息根据编号修改信息根据生产者查找信息退出密码判断第三次错误 正确3.2 系统模块设计1) 欢迎界面:构造void welcome();函数,显示课设名称,作者的基本信息,以及指导老师。2) 主菜单显示界面:构造void menu();函数,实现系统主菜单显示。3
8、) 文件导入:构造void read();函数,实现导入质检信息数据的功能。4) 创建质检信息:构造void xinjian();函数,实现质检信息录入。5) 显示质检信息:构造void zhijianshow();函数,实现对所有质检信息的显示。6) 质检信息查找(通过编号):构造void findno();函数,实现通过根据质检编号,查找质检信息,并显示出来。7) 质检信息查找(通过生产者):构造void findpro();函数,实现通过根据生产者,查找质检信息,并显示出来。8) 质检信息修改:构造void xiugai();函数,实现对指定生产编号的零件寻找,并对它进行修改。9) 质检
9、信息删除:构造void shanchu();函数,实现对指定生产编号的零件寻找,并对它删除。10) 显示课设题目和要求:构造void timu();实现显示课设题目的要求11) 退出界面:构造void byebye();函数,实现退出系统的功能,并释放内存。12) 密码判断:构造void mima();函数,实现需要输入密码且密码正确才能进入主菜单页面四、详细设计4.1 数据结构设计根据系统要求,系统中需要保存的数据信息,其结构如下:数据项名称数据项系统表示数据类型数据长度备注零件编号p1-no字符串20零件名称p1-name字符串20生产者p1-producer字符串20生产部门p1-dep
10、artment字符串20质检结果p1-result字符串20质检问题p1-problem字符串20质检员p1-zhijianyuan字符串20质检时间p1-time字符串20为了能实现不受限制的增加质检信息,采用链表的结构保存质检信息,在增加质检的基本信息时,创建一个质检信息的节点,将其插入到链表中,示意图如下:质检信息1质检信息2通讯录信息1221质检信息3质检信息4为此,先声明一个类型为struct ZHIJIAN的结构体,其成员为零件的基本信息。然后通过对指针、链表、文件等数据结构的操作,实现对学质检信息的录入,插入,存盘,查询,浏览,删除,修改等一系列操作。其中,结构体定义如下:str
11、uct ZHIJIANchar no20; char name20; char producer20; char department20; char result20; char problem20; char zhijianyuan20; char time20; struct ZHIJIAN *next;4.2 模块接口设计所有函数模块声明如下:void menu(); /*显示主菜单*/void read(); /*从磁盘文件导入质检信息到数据库 */void welcome(); /*欢迎界面*/void byebye(); /*告别界面*/void xinjian(); /*新建信
12、息*/void zhijianshow(); /*显示质检信息*/void xiugai(); /*修改质检信息*/void shanchu(); /*删除质检信息*/void findno(); /*根据编号寻找信息*/void findpro(); /*根据生产者寻找信息*/void save(); /*保存信息*/4.3 以下是几个主要板块的流程图主菜单函数:正确第三次错误显示欢迎界面显示主菜单根据菜单选项,执行相应的菜单选项密码判断退出输入菜单是否合法否是 文件读入函数:打开文件文件不存在按任意键返回主菜单显示文件里的质检信息文件是否存在存在信息新建函数:输入需要建立的信息条数输入需要
13、建立的零件的质检信息按任意键返回主菜单显示已经建立的质检信息 查找函数: 输入需要查找的编号和生产者显示该编号或生产者的信息按任意键返回编号或生产者是否存在存在不存在修改函数: 输入需要修改的的编号输入修改过后的信息显示修改过后的信息任意键返回编号是否存在存在不存在密码判断程序输入密码密码是否正确正确进入主菜单第一第二次错误退出第三次错误 五、 运行结果显示5.1 欢迎界面5.2 密码判断显示5.2.1密码判断错误5.3 显示主菜单5.4 读入数据成功5.5 新建质检信息5.5.1新建信息成功5.6 显示质检信息5.7 查找质检信息5.7.1 按质检编号查找查找结果显示5.7.2 按生产者查找
14、查找结果显示5.8 修改信息5.9 删除信息5.10 课设题目和要求显示六、 程序调试与测试6.1 程序调试因为在读入文件程序中,在新建一个单元那里把p1=p2,写成了p2=p1。文件信息录入出错页面密码输入错误主菜单选择输入错误6.2 程序测试1,建立的文件为:质检信息.txt。文件中的数据为:001 扳手 王二 1部门 合格 无 李四 20140304003 哈哈 曾五 9部门 不合格 加工质量 张八 20130907018 快乐 丁六 5部门 合格 无 刘一 201411029887 卡牌 邓子 7部门 不合格 设计缺陷 黄上 20031114质检信息按零件编号、零件名称、生产者、生产部
15、门、检测结果、检测问题、质检员、质检时间保存。两个数据质检空格键隔开。2,从文件录入质检信息七、 问题与不足1,比如说,在新建质检信息中,要输入是否合格或不合格时,如果输入其他不能拦截。还有就是,在删除或修改菜单中,输入要修改或删除的编号时,应该显示出原来的信息。2,有些显示画面做得比较粗糙。3,在函数中,再输入时,应该构建个while(1)if (.) break ; ,进行判断。这样有效的拦截了乱输信息。4,在程序执行的过程中,给以适时的清屏可能会给使用者带来耳目一新对使用感觉八、 建议课程设计的题目涉及范围应该更广,应该把课设时间跟期末考试复习时间错开.这样我们有时间去复习.九、 编程体
16、会刚开始准备编代码时,感觉很茫然,不知道从何写起。虽然在这之前,我们已经对c语言这门课程学习了差不多一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生的,在运用起来的时候还是感到很棘手。但是在学习链表这一章节之后,和看了老师所给的优秀例子之后,才慢慢有点感觉去写。首先是要去构建一个基本的框架,搭建框架就好比一栋大楼的地基。框架搭好了,一个程序就慢慢成形了。在写课设的过程中,感觉最难的的就是调试程序了。刚刚把全部代码敲出来的时候,整个人那个兴奋啊。但是,一编译运行。像一桶冷水从头浇到底。那错误多的,看的我眼花缭乱。要一条条的去看,去看错在哪要怎么去修改它。真的
17、,有些错误真的很难找出来。这是一个漫长的过程。把一个完整的程序写出来,需要慢慢的去修改,调试,完善,这是一个很无聊的事情。编程序是一个很细心的过程。因为如果你不认真去写,少写了括号,或者分号,都会导致你的程序运行不出来或者运行出来的结果有错误。这些错误都很小,但是让你从一大堆程序中去找,这也是个难题。所以,编程教会了我需要仔细。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。还有一点就是,通过编程让我感觉到了链表在C语言中的重要性。在我看来,学会运用链表,就等于跨
18、过了C语言的大门。当把整个程序运行出来的时候,感觉整个人都放松了。还有就是那种喜悦的感觉不言而喻。做课设一定要养成良好的编程习惯,写程序注意语法规范格式控制,格式规范了,出了错误也容易找到出错的地方,这是C语言的基础。通过这次课设,让我明白了胡老师在上课时经常对我们讲的话。“你把程序在电脑上敲一边,好过你看十遍。”操作是学好c语言必不可少的一步。因为不管你理论知识掌握的如何熟练,不上机实际操作的话,是没有任何效果的,许多问题都是在实际上机操作中显现出来的,在书本上是体现不出来的。书本上是永远不会出现你自己的思想成果的,正是应了那句话“实践是检验真理的唯一标准。”总之,通过c语言的学习,使我对计
19、算机语言有了一些初步的认识和理解,使我对计算机语言不再像以前一样一无所知,认为那是高不可攀的、十分难以理解、一般人学不会的东西了。我认为只要学习方法掌握好,再加上刻苦的练习,是完全有可能学好任何一门计算机语言的。最后用一句话表明在学习c语言过程和写课设的过程中的感受,那就是“痛苦并快乐着。”十、 参考文献1 廖湖声C程序设计案例教程人民邮电出版社,2010.92 何钦铭C语言程序设计高等教育出版社,2009.53 谭浩强C程序设计(第2、3、4版)清华大学出版社,2000.1.4 C语言程序设计教程,杨路明著,北京邮电大学出版社.十一、 程序源代码:#include#include#inclu
20、de#include #include#define LEN sizeof(struct ZHIJIAN)/定义结构体。struct ZHIJIANchar no20; /*定义零件编号*/ char name20; /*定义零件名称*/ char producer20; /*定义零件生产者*/ char department20; /*定义零件的生产部门*/ char result20; /*定义零件的质检结果*/ char problem20; /*定义零件的质检问题*/ char zhijianyuan20; /*定义质检员*/ char time20; /*定义质检时间*/ struc
21、t ZHIJIAN *next;/*申明程序中运用到的函数*/void menu(); /*显示主菜单*/void read(); /*从磁盘文件导入质检信息到数据库 */void welcome(); /*欢迎界面*/void byebye(); /*告别界面*/void xinjian(); /*新建信息*/void zhijianshow(); /*显示质检信息*/void xiugai(); /*修改质检信息*/void shanchu(); /*删除质检信息*/void findno(); /*根据编号寻找信息*/void findpro(); /*根据生产者寻找信息*/void t
22、imu(); /*显示题目*/void mima(); /*密码*/void save();/*链表操作所用结构体指针*/struct ZHIJIAN *head=NULL,*p1,*p2,*p3; /*定义结构体指针*/*零件信息保存标志全局变量*/intflag=0;/*主函数*/函数声明:int main()/入口参数:无/出口参数:无/功能描述:设置“color 6F”颜色型号,设置屏幕背景和字体的颜色。 /调用 welcome();函数,在进入程序的第一页面显示欢迎函数。 /调用mima();函数,显示在欢迎程序后。 /定义变量 select。选择需要操作的编号08。int main
23、() system(color 6F); welcome(); mima(); int select; while(1) menu(); printf(tt请正确选择需要的操作(08):); scanf(%d,&select); fflush(stdin); /*清除键盘缓存区*/ system(cls); switch(select) case 1:system(cls);read();zhijianshow();break; /*从磁盘文件导入质检信息到数据库*/ case 2:system(cls);xinjian();zhijianshow();break; /*创建质检信息*/ ca
24、se 3:system(cls);zhijianshow();break; /*显示质检信息*/ case 4:system(cls);findno();break; /*根据编号查找信息*/ case 5:system(cls);findpro();break; /*根据生产者查找信息*/ case 6:system(cls);xiugai();break; /*根据编号,修改信息*/ case 7:system(cls);shanchu();break; /*根据编号,删除信息*/ case 8:system(cls);timu();break; case 0:system(cls);by
25、ebye();return 0; /*退出*/ default: fflush(stdin); printf(tt选择错误,请正确输入你的选择(08); printf(n); system(pause); fflush(stdin); getch(); system(cls); system(pause); fflush(stdin); return 0;/*欢迎界面*/函数声明:void welcome()/入口参数:无/出口参数:无/功能描述:显示欢迎界面。void welcome() printf(nnnttt 欢迎使用汽车零部件质检管理系统 nn);printf(ttn);printf
26、(tt n);printf(tt 指导老师:胡宁亚 n);printf(tt n);printf(tt 学生:檀成俊 n);printf(tt n); printf(tt 班级:电信143班 n); printf(tt n); printf(tt 学号:201401180 n); printf(tt n); printf(tt 完成时间:2015年6月 n); printf(tt n); printf(tt QQ号: 765355275 n); printf(tt n); printf(tt 短号:63501 n); printf(tt n);printf(tt 长号:15997820449
27、n);printf(tt n);printf(ttn);system(pause);fflush(stdin);system(cls);/*显示题目*/函数声明:void timu()/入口参数:无/出口参数:无/功能描述:显示题目的内容和要求。void timu() printf(nnnttt 汽车零部件质检管理系统 nn); printf(n已知在汽车零部件生产过程中,需要对生产的零部件进行质量检测,保证生); printf(n产质量,以便对出现生产质量问题的责任人进行考核,设计一个汽车零部件质检); printf(n管理程序,该程序应该具有完成如下功能:); printf(n(1)能从键
28、盘输入质检信息。); printf(n(2)指定质检编号,显示质检信息。); printf(n(3)指定生产者,显示质检信息。); printf(n(4)指定质检编号,修改质检信息。); printf(n(5)指定质检编号,删除质检信息。 ); printf(n题目要求:); printf(n(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。); printf(n(2) 质检信息包括:质检编号、零部件名称、生产者、生产部门、质检结果); printf(n(合格/不合格)、质量问题(设计缺陷/装配质量/加工质量)、质检员、质检日期。); printf(n(3)为各项操作功能设计一
29、个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。); printf(nttt); system(pause);return;/*主菜单*/函数声明:void menu()/入口参数:无/出口参数:无/功能描述:显示主菜单。void menu() printf(nnnttt 汽车零部件质检管理系统 nn);printf(ttn);printf(tt n);printf(tt 1,从磁盘文件导入质检信息到数据库 n);printf(tt n);printf(tt 2,创建质检信息 n);printf(tt n); printf(tt 3,显示质检信息 n); pr
30、intf(tt n); printf(tt 4,根据编号查找信息 n); printf(tt n); printf(tt 5,根据生产者查找信息 n); printf(tt n); printf(tt 6,根据编号,修改信息 n); printf(tt n); printf(tt 7,根据编号,删除信息 n); printf(tt n); printf(tt 8,显示题目和要求 n); printf(tt n); printf(tt 0,退出 n);printf(tt n);printf(ttn);fflush(stdin);return ;/*密码判断进入*/函数声明:void mima()
31、/入口参数:无/出口参数:无/功能描述:显示密码界面。 /你有三次机会输入密码。三次机会无论第几次输入正确则进入下一个页面。 /第一,第二次输错密码,可以重新输。第三次输错,则直接退出程序。void mima() system(cls); int n; char mima110; char mima2=123456; printf(nnnttt密码只有三次输入机会!); for(n=1;n=3;n+) printf(nnnttt请输入密码(123456):); scanf(%s,mima1); if(strcmp(mima1,mima2)!=0) printf(nttt密码错误,请重新输入!);