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

上传人:小飞机 文档编号:1809597 上传时间:2022-12-20 格式:DOCX 页数:45 大小:323.33KB
返回 下载 相关 举报
汽车零部件采购管理程序ds.docx_第1页
第1页 / 共45页
汽车零部件采购管理程序ds.docx_第2页
第2页 / 共45页
汽车零部件采购管理程序ds.docx_第3页
第3页 / 共45页
汽车零部件采购管理程序ds.docx_第4页
第4页 / 共45页
汽车零部件采购管理程序ds.docx_第5页
第5页 / 共45页
点击查看更多>>
资源描述

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

1、 汽车零部件采购管理 制作人:徐倩 第 0 页 共 45 页 HUBEIHUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYUNIVERSITY OF AUTOMOTIVE TECHNOLOGY C C 语言程序设计语言程序设计 课程设计课程设计报告报告 课设题目:课设题目: 汽车零部件采购管理汽车零部件采购管理 专专 业:业: 电子信息工程(汽车电子)电子信息工程(汽车电子) 班班 级级: : T1323T1323- -15 15 姓姓 名:名: 徐倩徐倩 成成 绩:绩: 完成日期完成日期: : 20142014 年年 1919 周周 指导教师指导教师: : 吴

2、年志吴年志 汽车零部件采购管理 制作人:徐倩 第 1 页 共 45 页 目录目录 C 语言程序设计 - 0 课程设计报告 - 0 1.课程设计目的-1 2.需求分析 - 2 2.1 要求 - 2 2.2 任务描述 - 3 2.3 运行环境 - 4 2.4 开发工具 - 4 3.总体设计 - 4 3.1 系统流设计 - 4 3.2 系统模块设计 - 5 4.详细设计 - 6 4.1 数据结构设计 - 6 4.2 模块接口设计 - 7 1)所有函数声明 - 7 2)全局变量 - 9 3)主要模块的实现 - 9 4.3 主要功能模块的流程图 - 10 5.运行结果 - 13 5.1 欢迎界面- 13

3、 5.2 主菜单页面-13 5.3 信息查询页面 - 14 5.4 统计菜单页面 - 14 5.5 显示信息页面 - 15 5.6 退出页面- 15 6.程序调试与测试- 16 6.1 主菜单选择测试 - 16 6.2 采购信息未从文件读入 - 17 6.3 采购信息输入调试-18 7.问题与不足 - 20 8.建议 - 21 9.编程体会 - 21 10.程序源代码 - 21 1.1.课程设计目的课程设计目的 汽车零部件采购管理 制作人:徐倩 第 2 页 共 45 页 1) 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。 2) 通过课程设计,进一

4、步掌握 C 语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。 3) 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。 4) 通过课程设计,培养 C 语言知识运用和自学能力,真正的把课堂上获得的知识运用起来, 培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。 5) 通过课程设计,加强了自己的程序分析能力。 2.需求分析需求分析 2.1 要求要求 1) 遵循软件开发过程的基本规范;能灵活应用,初步具备运用 C 程序解决实际问题的能力。 2) 运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写

5、代码、调试和测试 C 程序等过程。 3) 学会利用数组、结构体、链表进行相关信息表示。 4) 功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述 5) 各主要功能模块有详尽的流程图及描述, 用函数的形式实现,且调用入口、功能、出口等关系正确。 6) 所设计的 C 程序较好的可读性和可靠性; 程序书写风格规范,注释清晰。 7) 界面友好(良好的人机互交) ,凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。 8) 程序经上机调试通过,不应出现语法型、功能型错误,并 汽车零部件采购管理 制作人:徐倩 第 3 页 共 45 页 获得满意的结果。 9) 学会通过各功

6、能性测试用例测试程序的能力, 尽可能避免原则性错误的出现。 10) 掌握编写、调试和测试 C 语言程序的基本技巧,充分理解结构化程序设计的基本方法。 11) C 语言课程设计报告的内容反应实际设计过程, 且符合格式要求,无抄袭现象。 2.2 任务描述任务描述 已知在汽车生产时,需要向零部件生产厂商采购零部件,设计一个汽车零部件采购管理程序,以方便采购管理部门对采购零部件的管理。该单位每次采购都有一个采购编号,每次采购一种零部件。该程序应该具有如下功能 1) 添加并保存采购信息: 输入采购编号, 零部件名称,采购员名字,采购日期,采购价格,采购数量,供货单位,需要判断采购价格和数量是否大于零,采

7、购编号是否已存在,采购日期是否合法(形如*-*-*,例如 2013-09-08) 。 2) 根据采购编号查询零部件采购信息 3) 根据零部件名称查询其采购信息 4) 根据采购编号修改已有采购信息: 需要判断修改后的采购编号的唯一性,采购日期的合法性(形如*-*-*,例如 2013-09-08) 。 5) 根据采购编号删除此条采购信息 汽车零部件采购管理 制作人:徐倩 第 4 页 共 45 页 6) 统计功能 2.3 运行环境运行环境 VC+6.0 编译环境 2.4 开发工具开发工具 C 语言 3.总体设计总体设计 3.1 系统流设计系统流设计 程序整体功能结构如图一所示: 显示主菜单,输入选择

8、 开始 显示课程以及学生信息 汽车零部件采购管理 制作人:徐倩 第 5 页 共 45 页 3.2 系统模块设计系统模块设计 1) 封面模块 函数 void huanying()和函数 void byebye()构成封面模块,构造和谐人机环境。 2) 菜单模块菜单模块 函数 void menu()和函数 void choise()构成选择菜单,二级菜单 void tongji()构成统计功能菜单。 根据零部件名称统计其总数量 根据采购员名字统计其采购次数 读取文件中的采购信息 添加并保存采购信息 由采购编号查找零部件采购信息 由零部件名称查找其采购信息 修改并保存采购信息 删除并保存余下采购信息

9、 统计采购信息 显示所有采购信息 汽车零部件采购管理 制作人:徐倩 第 6 页 共 45 页 3) 查询模块查询模块 函数 void numshow()和函数 void nameshow()分别实现根据采购编号和零部件名称查询采购信息的功能, 其中会有其他函数辅助。 4) 信息处理模块信息处理模块 函数 void change()实现信息修改功能,函数 void disapperr()实现信息删除功能,void input()实现信息添加功能,void save()实现信息保存功能,void listCG()实现信息显示功能,其中会有其他函数辅助。 5)统计模块)统计模块 函数 int num

10、ber()实现根据零部件名称统计其总数量功能,int times()实现根据采购员名字显示其采购次数的功能,其中会有其他函数辅助。 6)日期审查模块)日期审查模块 函数 void checkdate()使用标志位方法实现对时间的审查。 4.详细设计详细设计 4.1 数据结构设计数据结构设计 根据系统要求,采购信息包括: 数据项名称 数据项系统表示 数据类型 数据长度 备注 采购编号 P1-buynum 字符串 10 零部件名称 P1-itemname 字符串 10 采购日期 P1-day 字符串 30 采购员名字 P1-buyername 字符串 10 汽车零部件采购管理 制作人:徐倩 第 7

11、 页 共 45 页 采购数量 P1-count 整型 4 采购价格 P1-price 单精度 8 供货单位 P1-source 字符串 10 为了能实现系统的优越性和 c 语言的精华采用链表的建立采购信息记录表,示意图如下: 4.2 模块接口设计模块接口设计 1)所有函数声明)所有函数声明 viod huanying(); /*封面函数,显示课程题目,学生信息*/ void menu(); /*主菜单函数,显示各项功能*/ void choise(); /*根据主菜单选择并执行功能*/ void readinto(); /*读取文件内的采购信息采购信息 2 采购信息 3 采购信息 1 汽车零部

12、件采购管理 制作人:徐倩 第 8 页 共 45 页 */ void input(); /*从键盘添加采购信息并保存到文件中*/ void listCG(); /* 显 示 所 有 采 购 信 息*/ void numshow(); /*根据采购编号查询对应采购信息并显示*/ void nameshow(); /*根据零部件名称查询其采购信息并显示*/ void change(); /*根据采购编号修改并显示采购信息*/ void disapper(); /*根据采购编号删除并显示余下采购信息*/ void tongji(); /*统计功能菜单,显示两项统计功能*/ int number();

13、/*根据零部件名称统计其购买总数量*/ int times(); /*根据采购员名字统计其采购次数*/ int checktime(int year,int month,int day ); /* 审 查 日 期 输 入 是 否 符 合 要 求*/ 汽车零部件采购管理 制作人:徐倩 第 9 页 共 45 页 void byebye(); /* 告 别 界 面*/ void save(); /*保存采购信息*/ 2)全局变量)全局变量 1 1,用于存储采购信息的结构体 struct buy; 2,判断文件是否正确读入的标志位变量 int flag; 3, 用 于 存 储 采 购 信 息 的 结

14、构 体 指 针 : struct buy *head=NULL,*p,*p1,*p2,*p3. 3)主要模块的实现)主要模块的实现 系统以 int main()为入口,首先调用 void huanying()显示课程名称和学生信息, 调用 void menu()和 void choise()实现功能显示和功能选择。 接着, 按照用户的要求, 调用 void numshow()或 void nameshow()实现查询功能,或调用 void change(),void disapper()实现修改和删除功能.不管是删除还是修改还是添加都要调用 void save()实现信息保存 功 能。 添 加

15、和 修 改时 还 要调 用 int checktime(int year,int month,int day)函数对时间审查。 当不需要再执行各项功能时,调用 void byebye()退出管理器。 汽车零部件采购管理 制作人:徐倩 第 10 页 共 45 页 4.3 主要功能模块的流程图主要功能模块的流程图 1)封面模块(以欢迎界面为例,退出界面与此类似) 2)菜单模块 显示题目和学生信息 进入系统 显示主菜单 接受用户输入选项 是否合法? 是否为 0? 执行用户所选功能 否 是 否 是否为 7? 是否合法? 是 否 退出管理系统 是 否 是 汽车零部件采购管理 制作人:徐倩 第 11 页

16、共 45 页 3)查询模块(以根据采购编号查询采购信息为例) 4)信息处理模块(以添加采购信息为例) 5)统计模块(以根据零部件名称统计采购总数量为例) 输入所查询采购编号 编号是否存在 显示编号对应采购信息 返回主菜单页面 输入采购编号 是否已存在 主菜单 输入采购时间 是否合格? 输入其他信息 显示添加信息 是 否 是 否 汽车零部件采购管理 制作人:徐倩 第 12 页 共 45 页 6)日期审查模块 输入零部件名称,s=0 是否存在? 返回主菜单 s 加上其数量 否 是 输入采购时间, 并将其表示成 y,m,d 调用 void checktime()函数 是否合格 返回 1 返回 0 是

17、 否 汽车零部件采购管理 制作人:徐倩 第 13 页 共 45 页 5.运行结果运行结果 5.1 欢迎界面欢迎界面 5.2 主菜单主菜单 汽车零部件采购管理 制作人:徐倩 第 14 页 共 45 页 5.3 信息查询页面信息查询页面 5.4 统计菜单页面统计菜单页面 汽车零部件采购管理 制作人:徐倩 第 15 页 共 45 页 5.5 显示信息页面显示信息页面 5.6 退出页面退出页面 汽车零部件采购管理 制作人:徐倩 第 16 页 共 45 页 6.程序调试与测试程序调试与测试 测试数据:测试数据: 采购编号 001001 001002 001003 001004 零部件名称 活塞 轮胎 后

18、视镜 方向盘 采购日期 2013-09-27 2013-04-23 2013-09-08 2013-09-07 采 购 员 名字 刘尧 徐倩 卫添翼 李林琳 采购数量 90 67 90 89 采购价格 90.000000 78.000000 78.000000 67.000000 供货单位 汽院汽院 十堰十堰 黄冈黄冈 河南河南 6.1 主菜单选择测试主菜单选择测试 若用户输入错误选项,则如图显示: 汽车零部件采购管理 制作人:徐倩 第 17 页 共 45 页 6.2 采购信息未从文件读入采购信息未从文件读入 6.3采购采购信息的输入测试信息的输入测试 1 ) 若 添 加 的 采 购 编 号

19、已 存 在 , 则 如 图 显示: 汽车零部件采购管理 制作人:徐倩 第 18 页 共 45 页 2)若添加的采购信息日期格式输入错误,则如图显示 3)若查询的采购编号输入错误,则如图显示 4)若查询的零部件名称输入错误,则如图显示 汽车零部件采购管理 制作人:徐倩 第 19 页 共 45 页 5)若输入价格为负数时,如图显示 6)若输入的数量为负值时,如图显示 汽车零部件采购管理 制作人:徐倩 第 20 页 共 45 页 7.问题与不足问题与不足 1、需求分析中存在的问题 每次只能从键盘中添加一条采购信息, 当遇到需要添加多条信息时,比较麻烦。统计功能太少,如果要求几个零部件的总价,无法实现

20、。 2、程序中存在的缺陷 每次运行其他功能前都要先从文件中读入,比较耗时。有些功能输入错误时无法重新输入,而是直接跳到主菜单。缓存较多。 汽车零部件采购管理 制作人:徐倩 第 21 页 共 45 页 8.建议建议 题目应更加贴近生活,这样可以让同学们看到 c 语言的有用之处,激发同学们的学习热情。课程设计的题目涉及范围应该更广。程序设计的功能应相对更加复杂一点,这样有利培养同学们的分析问题,解决问题的能力,同时也能提高同学们对代码的掌握能力。再者,就是验收时应该要学生画出链表结构图,帮助他们更加深刻的掌握知识。 9.编程体会编程体会 经历了编 c 语言课程设计后, 我对这一学期 c 语言所学内

21、容有了更加深刻的了解和掌握,特别是一直不懂的链表和指针,现在发现自己都能运用了,很开心自己的进步。所以,虽然写程序的过程中,遇到各种问题,调试的时候也是遇到各种令人头大的问题,但能借助课程设计提高自己对指针和链表的熟练度, 提高自己对 c 语言编程的熟练度,也希望学校可以多开设一些这样的课程,既是让我们对自己所学知识的一个综合理解与使用,也可以提高我们的动手实践能力、对知识的运用能力,更是一个让我们学会独立思考的好机会。 10.程序源代码程序源代码 #include #include #include #include #include #include #define LEN sizeof(

22、struct buy) /申请结构体空间 #define N 100 汽车零部件采购管理 制作人:徐倩 第 22 页 共 45 页 /*申明程序中运用的函数*/ void huanying(); /封面函数 void readinto(); /读取文件 void input(); /添加采购信息 void listCG(); /显示采购信息 void numshow(); /根据采购编号显示采购信息 void nameshow(); /根据零部件名称显示采购信息 void change(); /修改采购信息 void disapper(); /删除采购信息 void menu(); /显示主菜

23、单 void choise(); /选择所需功能 void tongji(); /统计功能菜单 int number(); /根据零部件名称统计采购的零部件总数量 int times(); /根据采购员名字统计采购的零部件总数量 int checkdate(int year,int month,int day); /检测时间 void byebye(); /告别界面 void save(); /保存文件 /*定义全局变量*/ struct buy /定义结构体 char buynum10; char itemname10; char day30; char buyername10; int c

24、ount; float price; char source10; struct buy *next; ; int flag=0;/*flag 为文件是否以正确读入的标志位*/ struct buy *head=NULL,*p,*p1,*p2,*p3; /*定义结构体指针*/ /*主函数*/ int main() huanying(); getch(); while(1) 汽车零部件采购管理 制作人:徐倩 第 23 页 共 45 页 menu(); /*显示主菜单*/ choise(); /*显示选择功能*/ return 0; /*封面函数*/ void huanying() printf(

25、nnntt*n); printf(tt* *n); printf(tt* c语 言 课 程 设 计 *n); printf(tt* *n); printf(tt* 学 生 姓 名 : 徐 倩 *n); printf(tt* 指 导 老 师 : 吴 年 志 *n); printf(tt* 班 级 : T1323-15 *n); printf(tt* 学 号 : 20130231538 *n); printf(tt* 联系方式:18772961357(69180) *n); printf(tt* *n); printf(tt* 课程题目:汽车零部件采购管理程序 *n); printf(tt* *n

26、); printf(tt*n); fflush(stdin); printf(请按回车键继续); 汽车零部件采购管理 制作人:徐倩 第 24 页 共 45 页 /* 告 别 界 面*/ void byebye() printf(nnntt*n); printf(tt* *n); printf(tt* *n); printf(tt* *n); printf(tt* *n); printf(tt* *n); printf(tt* *n); printf(tt* *n); printf(tt* *n); printf(tt* *n); printf(tt* *n); printf(tt* 欢迎下次使

27、用 *n); printf(tt*n); /* 主 菜 单 函 数*/ void menu() system(cls); printf(nnntt* 欢 迎 使 用 汽 车 零 部 件 管 理 系 统*n); printf(tt | tttt|n); printf(tt |tt1,读取采购信息ttt|n); printf(tt | tttt|n); printf(tt |tt2,从键盘添加并保存采购信息t|n); 汽车零部件采购管理 制作人:徐倩 第 25 页 共 45 页 printf(tt | tttt|n); printf(tt |tt3,根据采购编号查找零件信息t|n); printf

28、(tt | tttt|n); printf(tt |tt4,根据零部件名称查找采购信息t|n); printf(tt | tttt|n); printf(tt |tt5,修改并保存采购信息tt|n); printf(tt | tttt|n); printf(tt |tt6,删除并保存余下采购信息t|n); printf(tt | tttt|n); printf(tt |tt7,统计采购信息ttt|n); printf(tt | tttt|n); printf(tt |tt8,显示采购信息ttt|n); printf(tt | tttt|n); printf(tt |tt0,退出管理系统ttt|

29、n); printf(tt*n); /*读入文件函数*/ void readinto() FILE *fp; /*文件指针*/ int n=0; if(fp=fopen(lingjian.txt,r)=NULL) /*打开文件时无此文件*/ printf(文件打开错误:n); exit(0); p1=(struct buy *)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,&

30、p1-count,&p1-price,p1-source); p2=(struct buy *)malloc(LEN); /*p2指向新申请的节点*/ p1-next =p2; 汽车零部件采购管理 制作人:徐倩 第 26 页 共 45 页 p3=p1; p1=p2; p1-next =NULL; free(p2); p3-next=NULL; fclose(fp); /*关闭文件*/ flag=1; printf(文件读取成功!n); listCG(); /*选择所需功能函数*/ void choise() int n; printf(-请从键盘输入您的选择(0-8内的整数) :); scan

31、f(%d,&n); while(n8) printf(输入不合法,请再输入一次:); scanf(%d,&n); switch(n) case 1:system(cls); /*清屏*/ readinto(); break; case 2:system(cls); input(); break; case 3:system(cls); numshow(); break; case 4:system(cls); nameshow(); break; case 5:system(cls); change(); break; case 6:system(cls); 汽车零部件采购管理 制作人:徐倩

32、第 27 页 共 45 页 disapper(); break; case 7:system(cls); tongji(); break; case 8:system(cls); listCG(); break; case 0:system(cls); byebye(); exit(0); /*从键盘添加并保存采购信息函数*/ void input() int n=0,i=0,k; char ch; long y,m,d; if(flag=0) printf(未建立,采购信息数据库为空n); printf(按任意键返回); getch(); return; printf(请输入将要添加的采购编

33、号(形如001002,以回车键结束)n); fflush(stdin); scanf(%s,p2-buynum); p1=head; while(p1!=NULL) if(strcmp(p2-buynum,p1-buynum)=0) /*找到数据库信息中与输入相同的采购编号*/ printf(你输入的采购编号已存在! ! !); printf(对应零部件信息如下:); printf(采购编号:%sn,p1-buynum); printf(零部件名称:%sn,p1-itemname); printf(采购日期:%sn,p1-day); printf(采购员名字:%sn,p1-buyername)

34、; printf(采购数量:%dn,p1-count); 汽车零部件采购管理 制作人:徐倩 第 28 页 共 45 页 printf(采购价格:%fn,p1-price); printf(供货单位:%sn,p1-source); n=1; /*标志位*/ printf(请按任意键返回!n); getch(); system(cls); break; p1=p1-next; if(n!=1) system(cls); p1=head; while(p1-next!=NULL) p1=p1-next; printf(请输入); p2=(struct buy *)malloc(LEN); /开辟一个

35、新单元 fflush(stdin); for(i=0;ibuynum); if(i=1) fflush(stdin); printf(零部件名称(文字或英文字符串型) :); scanf(%s, p2-itemname); if(i=2) do printf(采购日期(形如*-*-*,以回车键结束):); fflush(stdin); scanf(%s,p2-day); if(p2-day4=-&p2-day7=-&strlen(p2-day)=10) 汽车零部件采购管理 制作人:徐倩 第 29 页 共 45 页 y=(p2-day0-48)*1000+(p2-day1-48)*100+(p2

36、-day2-48)*10+(p2-day3-48); m=(p2-day5-48)*10+(p2-day6-48); d=(p2-day8-48)*10+(p2-day9-48); k=checkdate(y,m,d); /*根据函数返回值判断是否要重新输入*/ if(k=1) break; while(1); if(i=3) fflush(stdin); printf(采购员名字(文字或英文字符串型, 以回车键结束): ); scanf(%s,p2-buyername); if(i=4) fflush(stdin); printf(采购数量(文字或英文字符串型,以回车键结束) :); sca

37、nf(%d, &p2-count); while(p2-countcount); if(i=5) fflush(stdin); printf(采购价格(数字型,以回车键结束) :); scanf(%f,&p2-price); while(p2-priceprice); if(i=6) 汽车零部件采购管理 制作人:徐倩 第 30 页 共 45 页 fflush(stdin); printf(供货单位(文字或英文字符串型,以回车键结束) :); scanf(%s,p2-source); p2-next=NULL; p1-next =p2; p1=head; system(cls); printf(

38、所有信息如下,请核实-); while(p1!=NULL) printf(采购编号:%sn,p1-buynum); printf(零部件名称:%sn,p1-itemname); printf(采购日期:%sn,p1-day); printf(采购员名字:%sn,p1-buyername); printf(采购数量:%dn,p1-count); printf(采购价格:%fn,p1-price); printf(供货单位:%sn,p1-source); printf(nnn); p1=p1-next; save(); printf(按任意键返回); fflush(stdin); scanf(%c

39、,&ch); /*根据采购编号查找采购信息函数*/ void numshow() char anum10,ch; p1=head; if(p1=NULL) printf(采购信息数据库为空n); printf(按任意键返回); getch(); system(cls); exit(0); 汽车零部件采购管理 制作人:徐倩 第 31 页 共 45 页 printf(请输入所查零件编号(形如000001,以回车键结束):n); getchar(); scanf(%s,anum); while(p1!=NULL) if(strcmp(anum,p1-buynum)=0) /*找到与信息数据库中与输入

40、相同的采购编号*/ printf(采购编号:%sn,p1-buynum); printf(零部件名称:%sn,p1-itemname); printf(采购日期:%dn,p1-day); printf(采购员名字:%sn,p1-buyername); printf(采购数量:%dn,p1-count); printf(采购单价:%fn,p1-price); printf(供货单位:%sn,p1-source); break; else p1=p1-next; if(p1=NULL) /*p1=NULL 表示到最后都没有找到与信息数据库中与输入相同的零部件名称*/ printf(文件中没有您所查

41、找的采购信息,请核对您的采购编号是否输入正确!n); printf(请按任意键返回返回!); fflush(stdin); scanf(%c,&ch); printf(按任意键返回); fflush(stdin); scanf(%c,&ch); /*根据采购零部件名称查找采购信息*/ void nameshow() char aname10,ch; int n=0; p1=head; if(p1=NULL) 汽车零部件采购管理 制作人:徐倩 第 32 页 共 45 页 printf(采购信息数据库为空n); printf(按任意键返回); getch(); system(cls); exit(

42、0); printf(请输入所查零件名称(以回车键结束):n); fflush(stdin); scanf(%s,aname); while(p1!=NULL) if(strcmp(p1-itemname,aname)=0) printf(采购编号:%sn,p1-buynum); printf(零部件名称:%sn,p1-itemname); printf(采购日期:%dn,p1-day); printf(采购员名字:%sn,p1-buyername); printf(采购数量:%dn,p1-count); printf(采购单价:%fn,p1-price); printf(供货单位:%sn,p

43、1-source); n=1; else p1=p1-next; if(n!=1) printf(文件中没有您所查找的采购信息,请核对您的零部件名称是否输入正确!n); printf(请按任意键返回返回!); fflush(stdin); scanf(%c,&ch); printf(按任意键返回); fflush(stdin); scanf(%c,&ch); /*删除并保存余下采购信息函数*/ void disapper() 汽车零部件采购管理 制作人:徐倩 第 33 页 共 45 页 char anum10,ch; if(flag=0) /*flag=0 表 示 未 建立文件,标志位法*/

44、printf(未建立,采购信息数据库为空n); printf(按任意键返回); getch(); return; if(head=NULL) printf(n 采购信息数据库为空,无法删除,请按任意键返回:n); getch(); system(cls); return; p1=head; /*p1指向头结点*/ printf(请输入要删除的采购信息编号:n); fflush(stdin); scanf(%s,anum); while(strcmp(anum,p1-buynum)!=0&p1-next!=NULL) /*找到要删除的学号*/ p2=p1; p1=p1-next ; if(str

45、cmp(anum,p1-buynum)=0) if(head-next=NULL) /*只有一个节点的情况*/ free(head); head=NULL; else if(head=p1) /*要删除的编号在第一个节点中*/ head=p1-next; free(p1); else 汽车零部件采购管理 制作人:徐倩 第 34 页 共 45 页 p2-next=p1-next; free(p1); printf(已删除!n); listCG(); save(); else printf(找不到此采购编号对应的采购信息,请核您输入的采购编号是否正确!); printf(按任意键返回:n); ff

46、lush(stdin); printf(按任意键返回); fflush(stdin); scanf(%c,&ch); /*修改并保存采购信息函数*/ void change() char anum10,ch; int t,k; long y,m,d; if(flag=0) printf(未建立,采购信息数据库为空n); printf(按任意键返回); getch(); return; if(head=NULL) printf(n 采购信息数据库为空,无法修改,请按任意键返回:n); getch(); system(cls); return; p1 = head; printf(请输入要修改采购

47、信息的采购编号(形如001002,以空格键结 汽车零部件采购管理 制作人:徐倩 第 35 页 共 45 页 束):n); fflush(stdin); scanf(%s,anum); while(strcmp(anum, p1-buynum) != 0 & p1-next != NULL ) p1=p1-next; if(strcmp(anum, p1-buynum) = 0 ) printf(是否修改采购编号?是(1)否(0)); /*判断各项是否需要修改*/ scanf(%d,&t); if(t=1) printf(请输入修改后的采购编号:n); fflush(stdin); scanf(

48、%s,p1-buynum); printf(是否修改零部件名称?是(1)否(0)); scanf(%d,&t); if(t=1) printf(请输入修改后的零部件名称:n); fflush(stdin); scanf(%s,p1-itemname); printf(是否修改采购日期?是(1)否(0)); scanf(%d,&t); if(t=1) do printf(请输入修改后的采购日期(形如*-*-*,以回车键结束):); fflush(stdin); scanf(%s,p2-day); if(p2-day4=-&p2-day7=-&strlen(p2-day)=10) y=(p2-da

49、y0-48)*1000+(p2-day1-48)*100+(p2-day2-48)*10+(p2-day3-48); m=(p2-day5-48)*10+(p2-day6-48); d=(p2-day8-48)*10+(p2-day9-48); k=checkdate(y,m,d); /*根据函数返回值判断是否要重新输入*/ 汽车零部件采购管理 制作人:徐倩 第 36 页 共 45 页 if(k=1) break; else printf(输入错误!n); while(1); printf(是否修改采购员名字?是(1)否(0)); scanf(%d,&t); if(t=1) printf(请输

50、入修改后的采购员名字:n); fflush(stdin); scanf(%s,p1-buyername); printf(是否修改采购数量?是(1)否(0)); scanf(%d,&t); if(t=1) printf(请输入修改后的采购数量:n); fflush(stdin); scanf(%d,&p1-count); while(p1-countcount); printf(是否修改采购价格?是(1)否(0)); scanf(%d,&t); if(t=1) printf(请输入修改后的采购采购价格:n); fflush(stdin); scanf(%f,&p1-price); while(

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号