《汽车零部件质检管理程序》由会员分享,可在线阅读,更多相关《汽车零部件质检管理程序(32页珍藏版)》请在金锄头文库上搜索。
1、目录1、 课程设计题目与要求.12、 系统设计.23、 程序测试与运行结果.84、 课程设计总结.145、 程序源代码.151、 课程设计与题目1、 题目描述: 已知在汽车零部件生产过程中,需要对生产的零部件进行质量检测,保证生产质量,以便对出现生产质量问题的责任人进行考核,设计一个汽车零部件质检管理程序,该程序应该具有完成如下功能: (1)能从键盘输入质检信息。 (2)指定质检编号,显示质检信息。 (3)指定生产者,显示质检信息。 (4)指定质检编号,修改质检信息。 (5)指定质检编号,删除质检信息。 2、 题目要求: (1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。 (2
2、)质检信息包括:质检编号、零部件名称、生产者、生产部门、质检结果(合格/不合格)、质量问题(设计缺陷/装配质量/加工质量)、质检员、质检日期。 (3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。3、输入要求: (1)应用程序运行后在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。 (2)能对输入的数据进行简单的校验,例如,质检日期必须是一个合法的日期格式,质检编号是唯一的(一个质检编号对应一次质检的质检信息)。4
3、、输出要求: (1)应用程序运行后,要在屏幕上显示一个菜单。 (2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。 (3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定质检编号删除质检信息时,如果该质检信息不存在,要提示没能删除,如果删除成功要提示删除成功。5、实现要求 (1)在程序中使用链表存储质检信息。(2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。2、 系统设计1、分析题目 根据题目要求,质检信息可以从文本文件中存取,所以本程序应该提供读写文件,显示、查询、修改记录,保存文件等操作,此外,还应该提供键盘式选择菜单实现功能。
4、2、总体设计主函数界面 根据需求分析,可以把这个系统的设计分为添加、修改、查询、显示、删除五大模块,其中查询模块可以分为两个子模块,子模块下面还有子函数;系统功能模块图如下所示:删除质检信息修改质检信息查询质检信息添加质检信息显示质检信息显示质检信息按生产者查询按质检编号查询3、 模块设计 (1)数据结构设计根据系统要求,系统中需要保存的数据信息,其结构如下:数据项名称数据项系统表示数据类型数据长度质检编号qid字符串15零件名称qname字符串15生产者producer字符串15生产部门pd字符串15质检结果qresult字符串15质检问题qproblem字符串15质检员qpersons字符
5、串15质检日期time字符串12(2)、结构体定义如下:struct information char qid15; char qname15; char producer15; char pd15; char qresult15; char qproblem15; char qpersons15; char time12; struct information *next;(3)、函数声明void createRec(); /*新建质检信息*/void loadRec(); /*从磁盘文件导入质检信息到内存*/void searchRecqid(); /*查询质检信息(根据质检编号)*/vo
6、id searchRecpro(); /*查询质检信息(根据生产者)*/void modifyRec(); /*修改质检信息*/void deleteRec(); /*删除质检信息*/void listRec(); /*显示所有质检信息*/void writeInfo(); /*保存质检信息*/void exit0(); /*退出*/int menu_select(); *主菜单*/int fqid(char a); /判断质检编号是否已被输入/int check(char date) /判断日期是否合法/(4)、定义两个全局变量:/*链表操作所用结构体指针*/struct student *
7、head=NULL,*p1,*p2,*p3,p0;/*定义结构体指针head 为头指针p1 为输入数据缓存空间指针p2 为尾指针 p0为调用链表循环时所用指针*/*学生记录保存标志全局变量*/Int writeinfo_flag=0;显示主菜单(5)主函数流程图接受用户选项N是否合法YNY是否为0调用对应函数退出系统主菜单(6)添加质检信息函数流程图接受用户信息N是否合法Y根据提示输入质检信息保存并返回主菜单查询函数设计(根据质检编号)主菜单接受用户信息N是否合法Y输入查询质检编码显示质检信息保存并返回主菜单主菜单查询函数设计(根据生产者)接受用户信息是否合法N输入查询生产者Y输入查询生产者显
8、示质检信息保存并返回主菜单主菜单(6) 修改质检信息函数设计接受用户信息N是否合法Y输入修改质检编号输入修改后的质检信息保存并返回主菜单主菜单(7) 删除质检信息函数设计接受用户信息是否合法NY输入删除质检编号显示删除结果保存并返回主菜单三、程序测试与运行结果1、 主菜单界面若输入的数字不是07,则会提示输入错误2、添加信息界面若输入的质检编号已经存在。会提示编号以存在,重新输入。若输入的时间结构不正确,会提示输入不合法,请重新输入。3、修改界面4、查询信息界面(学号查询)若输入的质检编号是不存在的质检编号,在提示找不到该质检编号。(2)、按生产者查询6、删除信息界面若要删除的质检信息不存在,
9、则提示找不到信息。7、显示全部信息界面8、保存信息界面四、课程设计总结 本次C语言课程设计非常有意义,它锻炼了我们解决实际问题的能力。由于本人对编程感兴趣,在编程方面有一定基础,因此尝试着由自己完成整个系统,在设计的过程里也遇到了很多麻烦,但是通过查询参考书和网络,一个个疑难迎刃而解。通过这次实践课,不只是强化了我们C语言编程的能力,更重要的是使我们学会了一种工作方法,学会了如何规划、组织、设计、实施项目,从整体到局部,从局部又到整体。 在编程过程中,我尝试将质检结果和质检问题一起输入,但是总是出现错误,没有办法显示正确的结果,最后实在没办法,只能放弃,采取分开输入的方法。五、源代码/*所使用
10、的有头文件*/#include#include#include#include #include#define LEN sizeof(struct information)/*结构体定义*/struct informationchar qid15;char qname15;char producer15;char pd15;char qresult15;char qproblem15;char qpersons15;char time12;struct information *next;/*函数声明*/void createRec();/*新建质检信息*/void loadRec();/*从
11、磁盘文件导入质检信息到内存*/void searchRecqid();/*查询质检信息(根据质检编号)*/void searchRecpro(); /*查询质检信息(根据生产者)*/void modifyRec();/*修改质检信息*/void deleteRec();/*删除质检信息*/void listRec();/*显示所有质检信息*/void writeInfo();/*保存质检信息*/void exit0();/*退出*/int menu_select();/*主菜单*/int fqid(char a); /判断质检编号是否已被输入/int check(char date) /判断日期是否合法/int year,month,day,i,leap; /要求格式判断/for(i=0,year=0;i4;i+)year=year*10+(datei-0);for(i=5,month=0;i7;i+)month=month*10+(datei-0);for(i=8,d