汽车零部件采购管理程序.docx

上传人:b****6 文档编号:7788009 上传时间:2023-01-26 格式:DOCX 页数:41 大小:178.22KB
下载 相关 举报
汽车零部件采购管理程序.docx_第1页
第1页 / 共41页
汽车零部件采购管理程序.docx_第2页
第2页 / 共41页
汽车零部件采购管理程序.docx_第3页
第3页 / 共41页
汽车零部件采购管理程序.docx_第4页
第4页 / 共41页
汽车零部件采购管理程序.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

汽车零部件采购管理程序.docx

《汽车零部件采购管理程序.docx》由会员分享,可在线阅读,更多相关《汽车零部件采购管理程序.docx(41页珍藏版)》请在冰豆网上搜索。

汽车零部件采购管理程序.docx

汽车零部件采购管理程序

HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGY

 

C语言程序设计

课程设计报告

 

课设题目:

汽车零部件采购管理

专业:

电子信息工程(汽车电子)

班级:

T1323-15

*********************************************

成绩:

完成日期:

2014年19周

******************************

 

1.课程设计目的----------------------------------------------------------------1

主菜单页面----------------------------------------------------------13

采购信息输入调试-----------------------------------------------------18

 

1.课程设计目的

1)通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

2)通过课程设计,进一步掌握C语言中重要的数据结构。

掌握并熟练运用指针、链表、结构体、文件等数据结构。

3)通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。

4)通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。

5)通过课程设计,加强了自己的程序分析能力。

2.需求分析

要求

1)遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。

2)运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。

3)学会利用数组、结构体、链表进行相关信息表示。

4)功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述

5)各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。

6)所设计的C程序较好的可读性和可靠性;程序书写风格规范,注释清晰。

7)界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。

8)程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。

9)学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。

10)掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。

11)C语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。

任务描述

已知在汽车生产时,需要向零部件生产厂商采购零部件,设计一个汽车零部件采购管理程序,以方便采购管理部门对采购零部件的管理。

该单位每次采购都有一个采购编号,每次采购一种零部件。

该程序应该具有如下功能

1)添加并保存采购信息:

输入采购编号,零部件名称,采购员名字,采购日期,采购价格,采购数量,供货单位,需要判断采购价格和数量是否大于零,采购编号是否已存在,采购日期是否合法(形如****-**-**,例如2013-09-08)。

2)根据采购编号查询零部件采购信息

3)根据零部件名称查询其采购信息

4)根据采购编号修改已有采购信息:

需要判断修改后的采购编号的唯一性,采购日期的合法性(形如****-**-**,例如2013-09-08)。

5)根据采购编号删除此条采购信息

6)统计功能

运行环境

VC++编译环境

开发工具

C语言

3.总体设计

系统流设计

程序整体功能结构如图一所示:

 

系统模块设计

1)封面模块函数voidhuanying()和函数voidbyebye()构成封面模块,构造和谐人机环境。

2)菜单模块函数voidmenu()和函数voidchoise()构成选择菜单,二级菜单voidtongji()构成统计功能菜单。

3)查询模块函数voidnumshow()和函数voidnameshow()分别实现根据采购编号和零部件名称查询采购信息的功能,其中会有其他函数辅助。

4)信息处理模块函数voidchange()实现信息修改功能,函数voiddisapperr()实现信息删除功能,voidinput()实现信息添加功能,voidsave()实现信息保存功能,voidlistCG()实现信息显示功能,其中会有其他函数辅助。

5)统计模块函数intnumber()实现根据零部件名称统计其总数量功能,inttimes()实现根据采购员名字显示其采购次数的功能,其中会有其他函数辅助。

6)日期审查模块函数voidcheckdate()使用标志位方法实现对时间的审查。

4.详细设计

数据结构设计

根据系统要求,采购信息包括:

数据项名称

数据项系统表示

数据类型

数据长度

备注

采购编号

P1->buynum

字符串

10

零部件名称

P1->itemname

字符串

10

采购日期

P1->day

字符串

30

采购员名字

P1->buyername

字符串

10

采购数量

P1->count

整型

4

采购价格

P1->price

单精度

8

供货单位

P1->source

字符串

10

为了能实现系统的优越性和c语言的精华采用链表的建立采购信息记录表,示意图如下:

模块接口设计

1)所有函数声明

viodhuanying();/*******封面函数,显示课程题目,学生信息******/

voidmenu();/*****主菜单函数,显示各项功能*****/

voidchoise();/*****根据主菜单选择并执行功能*****/

voidreadinto();/**********读取文件内的采购信息***********/

voidinput();/*****从键盘添加采购信息并保存到文件中******/

voidlistCG();/**********显示所有采购信息**********/

voidnumshow();/****根据采购编号查询对应采购信息并显示****/

voidnameshow();/****根据零部件名称查询其采购信息并显示****/

voidchange();/****根据采购编号修改并显示采购信息****/

voiddisapper();/****根据采购编号删除并显示余下采购信息****/

voidtongji();/******统计功能菜单,显示两项统计功能*****/

intnumber();/***根据零部件名称统计其购买总数量****/

inttimes();/****根据采购员名字统计其采购次数****/

intchecktime(intyear,intmonth,intday);

/*************审查日期输入是否符合要求**************/

voidbyebye();/*************告别界面************/

voidsave();/*********保存采购信息********/

2)全局变量

1,用于存储采购信息的结构体structbuy;

2,判断文件是否正确读入的标志位变量intflag;

3,用于存储采购信息的结构体指针:

structbuy*head=NULL,*p,*p1,*p2,*p3.

3)主要模块的实现

系统以intmain()为入口,首先调用voidhuanying()显示课程名称和学生信息,调用voidmenu()和voidchoise()实现功能显示和功能选择。

接着,按照用户的要求,调用voidnumshow()或voidnameshow()实现查询功能,或调用voidchange(),voiddisapper()实现修改和删除功能......不管是删除还是修改还是添加都要调用voidsave()实现信息保存功能。

添加和修改时还要调用intchecktime(intyear,intmonth,intday)函数对时间审查。

当不需要再执行各项功能时,调用voidbyebye()退出管理器。

主要功能模块的流程图

1)封面模块(以欢迎界面为例,退出界面与此类似)

2)菜单模块

 

3)查询模块(以根据采购编号查询采购信息为例)

 

4)

信息处理模块(以添加采购信息为例)

5)

5)统计模块(以根据零部件名称统计采购总数量为例)

6)日期审查模块

5.运行结果

欢迎界面

主菜单

信息查询页面

统计菜单页面

显示信息页面

 

退出页面

6.程序调试与测试

测试数据:

采购编号

001001

001002

001003

001004

零部件名称

活塞

轮胎

后视镜

方向盘

采购日期

2013-09-27

2013-04-23

2013-09-08

2013-09-07

采购员名字

刘尧

徐倩

卫添翼

李林琳

采购数量

90

67

90

89

采购价格

供货单位

汽院

十堰

黄冈

河南

主菜单选择测试

若用户输入错误选项,则如图显示:

采购信息未从文件读入

采购信息的输入测试

1)若添加的采购编号已存在,则如图显示:

2)若添加的采购信息日期格式输入错误,则如图显示

3)若查询的采购编号输入错误,则如图显示

4)若查询的零部件名称输入错误,则如图显示

5)若输入价格为负数时,如图显示

6)若输入的数量为负值时,如图显示

7.问题与不足

1、需求分析中存在的问题

每次只能从键盘中添加一条采购信息,当遇到需要添加多条信息时,比较麻烦。

统计功能太少,如果要求几个零部件的总价,无法实现。

2、程序中存在的缺陷

每次运行其他功能前都要先从文件中读入,比较耗时。

有些功能输入错误时无法重新输入,而是直接跳到主菜单。

缓存较多。

8.建议

题目应更加贴近生活,这样可以让同学们看到c语言的有用之处,激发同学们的学习热情。

课程设计的题目涉及范围应该更广。

程序设计的功能应相对更加复杂一点,这样有利培养同学们的分析问题,解决问题的能力,同时也能提高同学们对代码的掌握能力。

再者,就是验收时应该要学生画出链表结构图,帮助他们更加深刻的掌握知识。

9.编程体会

经历了编c语言课程设计后,我对这一学期c语言所学内容有了更加深刻的了解和掌握,特别是一直不懂的链表和指针,现在发现自己都能运用了,很开心自己的进步。

所以,虽然写程序的过程中,遇到各种问题,调试的时候也是遇到各种令人头大的问题,但能借助课程设计提高自己对指针和链表的熟练度,提高自己对c语言编程的熟练度,也希望学校可以多开设一些这样的课程,既是让我们对自己所学知识的一个综合理解与使用,也可以提高我们的动手实践能力、对知识的运用能力,更是一个让我们学会独立思考的好机会。

10.程序源代码

#include<>

#include<>

#include<>

#include<>

#include<>

#include<>

#defineLENsizeof(structbuy)//申请结构体空间

#defineN100

/***********申明程序中运用的函数**************/

voidhuanying();//封面函数

voidreadinto();//读取文件

voidinput();//添加采购信息

voidlistCG();//显示采购信息

voidnumshow();//根据采购编号显示采购信息

voidnameshow();//根据零部件名称显示采购信息

voidchange();//修改采购信息

voiddisapper();//删除采购信息

voidmenu();//显示主菜单

voidchoise();//选择所需功能

voidtongji();//统计功能菜单

intnumber();//根据零部件名称统计采购的零部件总数量

inttimes();//根据采购员名字统计采购的零部件总数量

intcheckdate(intyear,intmonth,intday);//检测时间

voidbyebye();//告别界面

voidsave();//保存文件

/*************定义全局变量*************/

structbuy//定义结构体

{

charbuynum[10];

charitemname[10];

charday[30];

charbuyername[10];

intcount;

floatprice;

charsource[10];

structbuy*next;

};

 

intflag=0;/******flag为文件是否以正确读入的标志位*******/

 

structbuy*head=NULL,*p,*p1,*p2,*p3;/****定义结构体指针****/

/******************主函数*******************/

intmain()

{

huanying();

getch();

while

(1)

{

menu();/******显示主菜单*****/

choise();/******显示选择功能*****/

}

return0;

}

/***********************************************************封面函数*********************************************************/

voidhuanying()

{

printf("\n\n\n\t\t*****************************************************\n");

printf("\t\t**\n");

printf("\t\t*c语言课程设计*\n");

printf("\t\t**\n");

printf("\t\t*学生姓名:

徐倩*\n");

printf("\t\t*指导老师:

吴年志*\n");

printf("\t\t*班级:

T1323-15*\n");

printf("\t\t*学号:

538*\n");

printf("\t\t*联系方式:

(69180)*\n");

printf("\t\t**\n");

printf("\t\t*课程题目:

汽车零部件采购管理程序*\n");

printf("\t\t**\n");

printf("\t\t*****************************************************\n");

fflush(stdin);

printf("请按回车键继续······");

}

 

/*********************************************************告别界面********************************************************/

voidbyebye()

{

printf("\n\n\n\t\t*****************************************************\n");

printf("\t\t**\n");

printf("\t\t*@@@@@@@*\n");

printf("\t\t*@@@@@*\n");

printf("\t\t*@@@@@*\n");

printf("\t\t*@@@@@@@@@*\n");

printf("\t\t*@@@@@@*\n");

printf("\t\t*@@@@*\n");

printf("\t\t*@@@@*\n");

printf("\t\t*@@@@@@@@@*\n");

printf("\t\t**\n");

printf("\t\t*欢迎下次使用······*\n");

printf("\t\t*****************************************************\n");

}

 

/*******************************************************主菜单函数**********************************************/

voidmenu()

{

system("cls");

printf("\n\n\n\t\t***************欢迎使用汽车零部件管理系统*************\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t1,读取采购信息\t\t\t|\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t2,从键盘添加并保存采购信息\t|\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t3,根据采购编号查找零件信息\t|\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t4,根据零部件名称查找采购信息\t|\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t5,修改并保存采购信息\t\t|\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t6,删除并保存余下采购信息\t|\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t7,统计采购信息\t\t\t|\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t8,显示采购信息\t\t\t|\n");

printf("\t\t|\t\t\t\t|\n");

printf("\t\t|\t\t0,退出管理系统\t\t\t|\n");

printf("\t\t***************************************************\n");

}

 

/********************************************************读入文件函数*************************************************/

voidreadinto()

{

FILE*fp;/****文件指针***/

intn=0;

if((fp=fopen("","r"))==NULL)/****打开文件时无此文件****/

{

printf("文件打开错误:

\n");

exit(0);

}

p1=(structbuy*)malloc(LEN);

head=p1;

p1->next=NULL;

while(!

feof(fp))/*****读取文件内的信息*****/

{

fscanf(fp,"%s%s%s%s%d%f%s",p1->buynum,p1->itemname,p1->day,p1->buyername,&p1->count,&p1->price,p1->source);

p2=(structbuy*)malloc(LEN);/*********p2指向新申请的节点**********/

p1->next=p2;

p3=p1;

p1=p2;

p1->next=NULL;

}

free(p2);

p3->next=NULL;

fclose(fp);/******关闭文件*****/

flag=1;

printf("文件读取成功!

\n");

listCG();

}

/********************************************************选择所需功能函数*********************************************/

voidchoise()

{

intn;

printf("------请从键盘输入您的选择(0-8内的整数):

");

scanf("%d",&n);

while(n<0||n>8)

{

printf("输入不合法,请再输入一次:

");

scanf("%d",&n);

}

switch(n)

{

case1:

system("cls");/******清屏*****/

readinto();

break;

case2:

system("cls");

input();

break;

case3:

system("cls");

numshow();

break;

case4:

system("cls");

nameshow();

break;

case5:

system("cls");

change();

break;

case6:

system("cls");

disapper();

break;

case7:

system("cls");

tongji();

break;

case8:

system("cls");

listCG();

break;

case0:

system("cls");

byebye();

exit(0);

}

}

/****************************************************从键盘添加并保存采购信息函数********************************************/

voidinput()

{

intn=0,i=0,k;

charch;

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

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1