HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY .doc

上传人:仙人指路1688 文档编号:2981757 上传时间:2023-03-07 格式:DOC 页数:43 大小:540.50KB
返回 下载 相关 举报
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY .doc_第1页
第1页 / 共43页
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY .doc_第2页
第2页 / 共43页
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY .doc_第3页
第3页 / 共43页
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY .doc_第4页
第4页 / 共43页
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY .doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY .doc》由会员分享,可在线阅读,更多相关《HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY .doc(43页珍藏版)》请在三一办公上搜索。

1、HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计课程设计报告课设题目: 汽车零部件质检管理程序 专 业: 电气工程及其自动化 班 级: T1323-8 姓 名: 陈名 成 绩: 完成日期: 2014年6月22日2014年6月29日 指导教师: 吴老师 目 录C语言程序设计0课程设计报告01.课程设计目的32.需求分析3 2.1要求3 2.2任务描述3 2.3运行环境4 2.4开发工具43.总体设计4 3.1系统流设计4 3.2系统模块设计54.详细设计5 4.1数据结构设计5 4.2模块接口设计6 4.3以下是几个主要模块的流程图75.运行结果1

2、3 5.1欢迎界面13 5.2题目介绍界面14 5.3主菜单界面15 5.4显示所有质检信息16 5.5据编号查询质检信息17 5.6据生产者查询质检信息18 5.7据编号修改质检信息19 5.8据编号删除质检信息20 5.9退出程序界面216.问题与不足22 (1)需求分析中存在的问题和分析22 (2)概要信息中存在的问题和分析22 (3)详细设计中存在的问题和分析22 (4)调试和测试中存在的问题和分析227.建议228.编程体会229.程序源代码2310.参考文献4511.用户使用手册451.课程设计目的1) 通过课程设计,加强了自己分析程序的能力。2) 通过课程设计,加深了对C语言中重

3、要知识的理解和运用,如结构体,指针,链表,文件,函数调用等。3) 通过课程设计,培养自己对编程的兴趣,有助于以后开发出能投入到生活应用中的软件。2.需求分析2.1 要求1) 代码规范,注释清晰。2) 学会利用数组,结构体,指针,链表进行相关操作。3) 功能函数划分清晰,符合题目要求,且有详细的功能描述。4) 每个重要的功能模块有相应的流程图及函数。5) 界面友好,凡需要输入信息时,都有提示信息,使得输入的信息符合格式与要求。6) 程序正确无误,不出现语法型、逻辑型错误。7) 掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。8) C语言课程设计报告的内容反应实际设计过

4、程,且符合格式要求,必须保证为个人原创。2.2 任务描述 此程序以大汽院为背景,汽院学子今后多为汽车公司工作,我们知道汽车的生产是一个浩大的工程,各个环节都容不得任何瑕疵,尤其是零部件的检测环节,毕竟千里之堤,溃于蚁穴,所以设计一个质检管理程序是很有必要的。零部件的质检信息包括质检编号、零部件名称、生产者、生产部门、质检结果(合格/不合格)、质量问题(设计缺陷/装配质量/加工质量)、质检员、质检日期。该程序提供以下功能:1) 系统以菜单方式工作(用键盘输入数字来选择功能);2) 质检信息录入功能:质检信息从磁盘文件读入;3) 查询功能:可以根据质检编号或生产者查询质检信息;4) 修改功能:根据

5、质检编号修改其它项的质检信息。5) 删除功能:根据质检编号删除其它项的质检信息。 2.3运行环境1)Windows7系统2)VC+6.0编译环境2.4开发工具C语言3.总体设计3.1系统流设计本系统的功能模块如下图所示,主要有以下模块:欢迎菜单 题目介绍主菜单退出保存质检信息显示所有质检信息据编号删除质检信息据编号修改质检信息据编号查询据生产者查询查询质检信息导入文件信息 3.2系统模块设计1) 系统欢迎界面:构造函数void welcome_menu(),实现欢迎使用质检程序的显示。2) 题目介绍界面:构造函数void list_menu(),实现题目介绍的显示。3) 主菜单:构造函数int

6、 menu(),实现系统主菜单的显示。4) 质检信息的录入:构造函数void loadRec(),实现对质检信息的录入。5) 查询质检信息:构造函数void searchRec1()和void searchRec2()分别实现据编号与据生产者查询质检信息。6) 修改质检信息:构造函数void modifyRec(),实现据编号修改质检信息的功能。7) 删除质检信息:构造函数void deleteRec(),实现据编号删除质检信息的功能。8) 显示所有质检信息:构造函数void listRec(),实现显示所有质检信息的功能。9) 保存质检信息:构造函数void writeInfo(),实现对质

7、检信息的保存。4.详细设计4.1数据结构设计根据系统要求,系统中需要保存的数据信息,其结构如下:数据项名称数据项系统表示数据类型数据长度备注质检编号p1-id字符串20零部件名称p1-name1字符串20生产者p1-name2字符串20生产部门p1-place字符串20质检结果p1-result字符串20质检问题p1-problem字符串50质检员p1-name3字符串20质检日期p1-date字符串20此程序采用链表建立质检信息,为此,先声明一个类型为struct part的结构体,其成员为质检信息。然后通过对指针、链表、文件等数据结构的操作,实现对零部件质检信息的录入,查询,修改,删除,显

8、示,保存等一系列操作。其中,结构体定义如下:struct partchar id20; /*质检编号*/char name120; /*零部件名称*/char name220; /*生产者*/char place20; /*生产部门*/char result20; /*质检结果*/char problem50; /*质检问题*/char name320; /*质检员*/ char date20; /*质检日期*/ struct part *next;4.2模块接口设计1) 所有函数模块声明如下:void welcome_menu(); /*欢迎菜单*/void list_menu(); /*C

9、语言课设题目菜单*/ void goodbye_menu(); /*告别页面*/int menu(); /*主菜单*/ void loadRec(); /*从磁盘文件导入质检信息到内存*/void searchRec1(); /*指定编号,查询质检信息*/void searchRec2(); /*指定生产者,查询质检信息*/void modifyRec(); /*指定编号,修改质检信息*/void deleteRec(); /*指定编号,删除质检信息*/ void listRec(); /*显示所有质检信息*/void writeInfo(); /*保存质检信息*/void exit0();

10、/*退出*/2) 并定义一个全局变量以及结构体指针:结构体指针: struct part *head=NULL,*p1,*p2,*p3;保存质检信息标志的全局变量: intwriteinfo_flag=0;3) 主要模块的实现系统以主函数int main()为入口,首先调用void welcome_menu()函数,显示系统欢迎界面。然后调用void list_menu()函数,显示题目介绍界面。然后进入主菜单,系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。4.3 以下是几个主要模块的流程图:1) 文件读入质检信息:打印主菜单返回主菜单界面输出文件内容选择相应函数导入文

11、件信息 2) 主菜单函数:打印主菜单 接收用户选项 是否合法 否 是否为0 是退出系统调用相应函数 否 是 3) 显示所有质检信息函数:显示所有质检信息 判断是否合法输入菜单选择 否 是按任意键返回主菜单 4) 查询质检信息函数:备注:查询有两种,指定质检编号和指定生产者,下面仅列出据编号显示质检信息的框图,另一种与此类似。显示质检信息 判断是否合法输入质检编号 否 是按任意键返回主菜单 5) 修改质检信息函数:输入质检编号 否判断是否合法 是零部件名称的修改按任意键返回主菜单 质检日期的修改质检员的修改质检问题的修改质检结果的修改生产部门的修改生产者的修改 6) 删除质检信息函数:是否正确输

12、入质检编号 否 按任意键返回主菜单指定质检编号的质检信息删除 是7) 保存质检信息:0判断全局变量writenflag的值1否判断是否有质检信息是按任意键返回主菜单将质检信息写入文件信息保存完毕关闭文件判断文件路径是否正确是否数据库中是没有质检信息数据库中质检信息无法保存5.运行结果5.1欢迎界面:5.2题目介绍界面: 5.3主菜单界面:5.4显示所有质检信息5.5据编号查询质检信息5.6据生产者查询质检信息5.7据编号修改质检信息5.8据编号删除质检信息5.9退出程序界面 6问题与不足(1) 需求分析中存在的问题和分析题目中没有说明是否需要新建零部件质检信息,因此程序设计中没有新建函数,若有

13、,程序会更加完美。也没有增加一些统计功能,使得程序功能的多样性显得不足。(2) 概要信息中存在的问题和分析质检信息文件中的信息设计的较为简略,显得比较粗糙。(3) 详细设计中存在的问题和分析没有添加时间,背景颜色等等函数,使得程序显得单调。(4) 调试和测试中存在的问题和分析 调试时出现过一个很费解的问题,很隐蔽,我原本用#define LEN 5,结构体里却共有100多字节的字符串,因此一读文件就崩溃。后来将#define LEN 5改为#define LEN sizeof(struct part)后,问题就得以解决了。 7.建议课程设计涉及范围应该更广,可以增加:食堂饮食管理系统等。另外,

14、应将课设题目尽可能早的分发给学生,这样有利于做出更好的程序,也便于学生期末复习。8.编程体会经历了编c语言课程设计后,我弄懂了在前段时间没弄懂的问题,如指针,结构体,链表等。自己的编程能力得到了很大的提高。也知道了一些编程的小技巧,如学会使用sizeof计算字节数,以保证与结构体内的字节数匹配。 9.程序源代码: /*程序中用到的头文件及预处理命令宏定义*/#include #include #include #include #include #include #define LEN sizeof(struct part) /*一共5个零部件*/*零件质检信息结构体定义*/struct pa

15、rtchar id20; /*质检编号*/char name120; /*零部件名称*/char name220; /*生产者*/char place20; /*生产部门*/char result20; /*质检结果*/char problem50; /*质检问题*/char name320; /*质检员*/ char date20; /*质检日期*/ struct part *next;/*函数声明*/void welcome_menu(); /*欢迎菜单*/void list_menu(); /*C语言课设题目菜单*/ void goodbye_menu(); /*告别页面*/int me

16、nu(); /*主菜单*/ void loadRec(); /*从磁盘文件导入质检信息到内存*/void searchRec1(); /*指定编号,查询质检信息*/void searchRec2(); /*指定生产者,查询质检信息*/void modifyRec(); /*指定编号,修改质检信息*/void deleteRec(); /*指定编号,删除质检信息*/ void listRec(); /*显示所有质检信息*/void writeInfo(); /*保存质检信息*/void exit0(); /*退出*/*链表操作所用结构体指针*/struct part *head=NULL,*p1

17、,*p2,*p3;/*定义结构体指针head 为头指针p1 为输入数据缓存空间指针p2 为尾指针*/*质检信息保存标志全局变量*/intwriteinfo_flag=0;/*主函数*/int main() welcome_menu(); list_menu(); for(;)switch(menu()case 1: system(cls); loadRec();break;case 2: system(cls); searchRec1();break; case 3: system(cls); searchRec2();break;case 4: system(cls); modifyRec(

18、);break; case 5: system(cls); deleteRec();break;case 6: system(cls); listRec();break;case 7: system(cls); writeInfo();break;case 0: system(cls); exit0();return 0;default :getchar();printf(n 选择错误,请正确输入你的选择(05),:n);printf(n 按任意键返回.n);getchar();getchar();system(cls);/*清屏*/ goodbye_menu();return 0; /*欢迎

19、菜单*/void welcome_menu()printf(nnnnntn);printf(t 欢迎使用汽车零部件质检管理程序 n);printf(t n); printf(t 指导老师:吴老师 n); printf(t n);printf(t 作者个人信息: n); printf(t n); printf(t 姓名:陈名 n); printf(t 班级:T1323-8 n);printf(t 学号:20130230840 n);printf(t 短号:69018 n);printf(t 长号:18772887926 n); printf(t QQ号:1164398424 n); printf

20、(t n); printf(t 完成时间:2014/6/29 n);printf(t n); printf(t 注:您有任何想法都可以通过以上方式与作者 n);printf(t 取得联系,切记:非诚勿扰! n);printf(t n);printf(t n);printf(t n);printf(t n);printf(tn);system(pause);fflush(stdin);system(cls);/*课设题目菜单*/void list_menu()printf(nnnnntn);printf(t n);printf(t 课设题目: 汽车零部件质检管理程序 n); printf(t 功

21、能要求: (1)能从键盘输入质检信息 n); printf(t (2)指定质检编号,显示质检信息 n); printf(t (3)指定生产者,显示质检信息 n); printf(t (4)指定质检编号,修改质检信息 n); printf(t (5)指定质检编号,删除质检信息 n); printf(t 题目要求: (1)按照分析,设计,编码,调试,测试的软件过程完成n);printf(t 这个应用程序 n);printf(t (2)质检信息包括:质检编号,零部件名称,生产者,n);printf(t 生产部门,检结果(合格/不合格),质量问题(设计n);printf(t 缺陷/装配质量/加工质量)

22、,质检员,质检日期 n); printf(t (3)为各项操作功能设计一个菜单,应用程序运行先n);printf(t 显示这个菜单,然后用户通过菜单项选择希望进n);printf(t 行的操作项目 n);printf(t 输入要求: (1)应用程序运行后在屏幕上显示一个菜单。用户可n);printf(t 以根据需求,选定相应的操作项目。进入每个操n);printf(t 作后,根据应用程序的提示信息,从键盘输入相n);printf(t 应的信息。程序根据用户输入的信息完成相应的n);printf(t 处理,实现要求的功能 n); printf(t (2)能对输入的数据进行简单的校验,例如,质检日

23、n);printf(t 期必须是一个合法的日期格式,质检编号是唯一n);printf(t 的(一个质检编号对应一次质检的质检信息) n);printf(t 输出要求: (1)应用程序运行后,要在屏幕上显示一个菜单。 n); printf(t (2)要求用户输入数据时,给出清晰、明确的提示信n);printf(t 息,包括输入的数据内容、格式及结束方式等。n); printf(t (3)在程序完成处理后,要清楚地给出程序的处理结n);printf(t 果。例如,在给定质检编号删除质检信息时,如n);printf(t 果该质检信息不存在,要提示没能删除,如果删n);printf(t 除成功要提示删

24、除成功。 n); printf(t n); printf(t 实现要求: (1)在程序中使用链表存储质检信息。 n);printf(t (2)采用模块化程序设计的方法,将程序中的各项功n);printf(t 能用函数实现。 n);printf(t 提示: (1)使用结构体表示质检信息,一个结点保存一条质n);printf(t 检信息。 n);printf(t 扩展功能: (1)提供一些统计功能。例如统计生产者质检不合n);printf(t 格的次数,统计各种质量问题出现次数。 n);printf(t (2)质检信息从文件读入。 n); printf(t (3)将质检信息保存到文件中。 n);

25、printf(t n); printf(t n);printf(tn);system(pause);fflush(stdin);system(cls);/*主菜单*/int menu()int c;printf(tt*菜单*n);printf(ttt1.导入文件信息n);printf(ttt2.据编号查询质检信息n);printf(ttt3.据生产者查询质检信息n);printf(ttt4.据编号修改质检信息n);printf(ttt5.据编号删除质检信息n);printf(ttt6.显示所有质检信息n);printf(ttt7.保存质检信息n);printf(ttt0.退出(任何情况下按Ct

26、rl+C 退出程序)n);printf(n 输入你的选择(07):n);scanf(%d,&c);return c; /*从磁盘文件导入质检信息到内存*/void loadRec()FILE *fp;int n=0;if(fp=fopen(e:message.txt,r)=NULL)/*打开文件*/printf(文件不存在或无法打开!n);return;head=p1=(struct part *)malloc(LEN);/*开辟一个新单元*/p1-next =NULL;while(!feof(fp)n+;fscanf(fp,%s%s%s%s%s%s%s%s, p1-id,p1-name1,p1-name2,p1-place,p1-result,p1-problem,p1-name3,p1-date);p2=(struct part *)malloc(LEN);/*开辟一个新单元*/p1-next =p2;p3=p1;p1=p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号