汽车零部件采购管理程序Word文件下载.docx
- 文档编号:20915367
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:41
- 大小:178.22KB
汽车零部件采购管理程序Word文件下载.docx
《汽车零部件采购管理程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《汽车零部件采购管理程序Word文件下载.docx(41页珍藏版)》请在冰豆网上搜索。
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
零部件名称
itemname
采购日期
day
30
采购员名字
buyername
采购数量
count
整型
4
采购价格
price
单精度
8
供货单位
source
为了能实现系统的优越性和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
89
汽院
十堰
黄冈
河南
主菜单选择测试
若用户输入错误选项,则如图显示:
采购信息未从文件读入
采购信息的输入测试
1)若添加的采购编号已存在,则如图显示:
2)若添加的采购信息日期格式输入错误,则如图显示
3)若查询的采购编号输入错误,则如图显示
4)若查询的零部件名称输入错误,则如图显示
5)若输入价格为负数时,如图显示
6)若输入的数量为负值时,如图显示
7.问题与不足
1、需求分析中存在的问题
每次只能从键盘中添加一条采购信息,当遇到需要添加多条信息时,比较麻烦。
统计功能太少,如果要求几个零部件的总价,无法实现。
2、程序中存在的缺陷
每次运行其他功能前都要先从文件中读入,比较耗时。
有些功能输入错误时无法重新输入,而是直接跳到主菜单。
缓存较多。
8.建议
题目应更加贴近生活,这样可以让同学们看到c语言的有用之处,激发同学们的学习热情。
课程设计的题目涉及范围应该更广。
程序设计的功能应相对更加复杂一点,这样有利培养同学们的分析问题,解决问题的能力,同时也能提高同学们对代码的掌握能力。
再者,就是验收时应该要学生画出链表结构图,帮助他们更加深刻的掌握知识。
9.编程体会
经历了编c语言课程设计后,我对这一学期c语言所学内容有了更加深刻的了解和掌握,特别是一直不懂的链表和指针,现在发现自己都能运用了,很开心自己的进步。
所以,虽然写程序的过程中,遇到各种问题,调试的时候也是遇到各种令人头大的问题,但能借助课程设计提高自己对指针和链表的熟练度,提高自己对c语言编程的熟练度,也希望学校可以多开设一些这样的课程,既是让我们对自己所学知识的一个综合理解与使用,也可以提高我们的动手实践能力、对知识的运用能力,更是一个让我们学会独立思考的好机会。
10.程序源代码
#include<
>
#defineLENsizeof(structbuy)//申请结构体空间
#defineN100
/***********申明程序中运用的函数**************/
voidhuanying();
//封面函数
//读取文件
//添加采购信息
//显示采购信息
//根据采购编号显示采购信息
//根据零部件名称显示采购信息
//修改采购信息
//删除采购信息
//显示主菜单
//选择所需功能
//统计功能菜单
//根据零部件名称统计采购的零部件总数量
//根据采购员名字统计采购的零部件总数量
intcheckdate(intyear,intmonth,intday);
//检测时间
//告别界面
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"
\t\t*c语言课程设计*\n"
\t\t*学生姓名:
徐倩*\n"
\t\t*指导老师:
吴年志*\n"
\t\t*班级:
T1323-15*\n"
\t\t*学号:
538*\n"
\t\t*联系方式:
(69180)*\n"
\t\t*课程题目:
汽车零部件采购管理程序*\n"
\t\t*****************************************************\n"
fflush(stdin);
请按回车键继续·
·
"
/*********************************************************告别界面********************************************************/
voidbyebye()
\t\t*@@@@@@@*\n"
\t\t*@@@@@*\n"
\t\t*@@@@@@@@@*\n"
\t\t*@@@@@@*\n"
\t\t*@@@@*\n"
\t\t*@@@@*\n"
\t\t*欢迎下次使用·
*\n"
/*******************************************************主菜单函数**********************************************/
voidmenu()
system("
cls"
\n\n\n\t\t***************欢迎使用汽车零部件管理系统*************\n"
\t\t|\t\t\t\t|\n"
\t\t|\t\t1,读取采购信息\t\t\t|\n"
\t\t|\t\t2,从键盘添加并保存采购信息\t|\n"
\t\t|\t\t3,根据采购编号查找零件信息\t|\n"
\t\t|\t\t4,根据零部件名称查找采购信息\t|\n"
\t\t|\t\t5,修改并保存采购信息\t\t|\n"
\t\t|\t\t6,删除并保存余下采购信息\t|\n"
\t\t|\t\t7,统计采购信息\t\t\t|\n"
\t\t|\t\t8,显示采购信息\t\t\t|\n"
\t\t|\t\t0,退出管理系统\t\t\t|\n"
\t\t***************************************************\n"
/********************************************************读入文件函数*************************************************/
voidreadinto()
FILE*fp;
/****文件指针***/
intn=0;
if((fp=fopen("
"
r"
))==NULL)/****打开文件时无此文件****/
{
文件打开错误:
\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,&
price,p1->
source);
p2=(structbuy*)malloc(LEN);
/*********p2指向新申请的节点**********/
p1->
next=p2;
p3=p1;
p1=p2;
free(p2);
p3->
next=NULL;
fclose(fp);
/******关闭文件*****/
flag=1;
文件读取成功!
listCG();
/********************************************************选择所需功能函数*********************************************/
voidchoise()
intn;
------请从键盘输入您的选择(0-8内的整数):
scanf("
%d"
&
n);
while(n<
0||n>
8)
输入不合法,请再输入一次:
scanf("
switch(n)
case1:
system("
/******清屏*****/
readinto();
break;
case2:
input();
case3:
numshow();
case4:
nameshow();
case5:
change();
case6:
disapper();
case7:
tongji();
case8:
listCG();
case0:
byebye();
/****************************************************从键盘添加并保存采购信息函数********************************************/
voidinput()
intn=0,i=0,k;
charch;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车零部件 采购 管理程序