资源描述
*实践教学* 兰州理工大学计算机与通信学院2013年春季学期 C程序设计 课程设计题 目:车辆销售管理系统专业班级: 姓 名: 学 号: 指导教师: 成 绩: 目录摘 要随着人们生活水平的不断提高,人们对汽车的消费和需求也越来越旺盛。各汽车销售公司它们都有管理、计划、销售、财务、配件、售后服务等职能部门。如何管理好这些部门,使整个公司协调一致、高效率地运转,是各公司急待解决的问题。本程序将设法解决这样的问题。关键词:c语言,汽车,销售管理前 言本次项目工程的名称是c语言课程设计,工程产品的名称是汽车销售管理系统。本汽车销售管理系统是完全自主开发的汽车销售管理软件,以汽车销售企业中的各部门和其他部门为基础,利用C语言编程来实现汽车销售的办公自动化和销售统计。它能够对汽车销售业务进行详细的管理,对采购和销售的配件情况进行详细的记录,包括采购信息录入、按名字和编号进行查询、修改录入错误和处理退回配件等功能。本程序的预期使用者是客户、测试人员、用户文档编写者、项目管理人员,本程序的使用对象为使用汽车销售系统软件的用户。通过本次课程设计,将强化我们的动手能力,在理论和实践的基础上进一步巩固c语言课程设计的学习内容,掌握工程设计的基本方法。同时,我们在将知识与应用和实际相连接的过程中,提高自我分析和解决问题的能力,增加综合应用能力,为后续各门计算机课程的学习打下坚实的基础,为毕业设计和以后的工作打下必要的基础。 1、系统分析该汽车销售管理系统的需求分析将从背景说明及意义、系统编写目的、系统需求分析、功能需求分析等几个方面来描述。1.1 系统编写的目的本系统是以汽车各项基本信息为主体,以汽车供应商和汽车需求商为服务对象,通过对各种票据和销售的管理操作,需要达到以下目标: 1、实现从客户来访查询、各类型汽车报价、客户预定及购买,到公司采购等多个销售环节上的循环管理服务; 2、能够很快地将市场信息反馈到各职能部门,制定相应策略。3、公司市场部能够快速准确捕捉市场动态,提高车辆销售的成功率,提高服务质量,从而提高企业在市场上竞争能力。4、使公司的各个部门能够快速共享市场资源,让公司内部能够和、高速运转,实现利益最大化。5、系统既可以满足多品牌车辆的销售公司的需求,也可以适用于专卖店的销售公司的需求;1.2 背景说明及开发意义1.2.1汽车发展史汽车工业经历了一百多年的发展,对国家经济的发展和腾飞以及对人类社会的文明带来了巨大影响。汽车工业已成为许多国家的支柱产业,随着人们生活水平以及汽车性能的不断提高,人们对汽车的消费和需求也越来越旺盛,世界汽车工业也保持庞大的市场需求和生产规模。近年来,中国汽车市场发展迅猛,以接近40的速度增长。巨大的市场容量和可观的经济效益,引起各汽车厂家(包括世界各著名汽车厂家的在华企业)纷纷加大投资,汽车市场烽烟四起,汽车销售策略和模式新招频出,竞争已是空前的激烈。在如此形式下,一种介于生产厂家和用户之间的桥梁,汽车销售公司正在不断的产生和发展壮大。1.2.2系统开发背景及意义随着人们生活水平的不断提高,人们对汽车的消费和需求也越来越旺盛。各汽车销售公司它们都有管理、计划、销售、财务、配件、售后服务等职能部门。如何管理好这些部门,使整个公司协调一致、高效率地运转,是各公司急待解决的问题。但有的业务环节仍然运用人工记账的传统办法,既容易出错又会导致账目混乱,查询和统计起来非常不方便,费时又费力,严重时会给公司造成难以挽回的损失。像这样初级的公司管理方法,已远跟不上销售政策和销售形势发展的需要。因此,如何对汽车销售管理提供一整套的管理方法达到提高效率和降低成本的问题成为焦点。汽车销售管理系统的提出,对汽车销售公司来讲意义重大。它不但能使各业务环节协调一致,而且操作简单,账目清晰,通过账目查询,公司能在最短的时间内获得市场信息,从而制订相应的决策。1.3 系统需求分析 在车辆销售管理当中,人工统计的速度慢,并且容易出现差错。本车辆销售管理系统的自动化加速了统计工作,提高管理效率。本程序主要采用对输入的相关信息进行自动分析,然后按组分类将数据保存到数组,这样的结构化非常便于程序后续的统计工作。统计具体过程涉及到车辆进价售价及利润排序等问题,将于正文中详细介绍。本程序实现了所有设计要求:1系统以菜单方式工作;2生产车辆信息录入功能;3.生产车辆销售信息;4.查询、排序功能:按主要车辆信息实现查询;5.车辆信息的删除。1.4 功能需求分析1.4.1系统功能描述1.入库管理:能很好地完成汽车的售前管理。售前管理包括供应商信息,需求商信息和汽车基本信息的入库作业。2.车辆管理:能详细记录汽车供应商和公司之间的交易过程,即进货或退货过程。3.销售管理:能详细记录需求商与公司之间的交易过程,即订车和退车过程。4.查询管理:能及时准确地获得汽车在某阶段的盈亏情况和市场的需求走势。即通过对汽车销售排行、汽车进货、汽车退货、订车、退车等信息查询获得相应的结果,以备公司作为参考,从而制定出相应的策略。1.4.2系统总体功能层主菜单录入添加修改删除查询排列保存读取统计录入并创建链表在最后一行添加编号查找后修改确认后删除输入编号查找按编号排列统计汽车辆数保存文件并命名退出读取文件信息退出系统1.5 数据需求 1.5.1 数据需求分析应当有用于记录用户密码用户名信息的表,还应有公司与供应商间的订货表、退货表,公司与需求商间的订车表、退车表,以及车辆入库的入库表记录车辆的一系列属性,以及汽车销量表来记录汽车的销售情况。1.5.2 数据的输入通过键盘和鼠标向软件系统输入数据。2、设计思路2.1 设计的目的l 课程设计通过本次,强化上级动手能力,在理论和实践的基础上进一步巩固 C语言程序设计课程的学习内容,掌握工程软件设计的基本方法。l 学会将知识应用与实际的方法,提高分析和解决问题的能力,增加综合能力。l 为后续各门计算机课程的学习打下坚实基础。为毕业设计和以后工作打下必要基础。l 通过本次课程设计基本掌握C语言的实际应用基础与技巧。2.2 设计内容用所学过的C语言知识(文件,结构体,函数,链表)编写一个汽车销售管理系统。2.3 概要设计2.3.1 功能模块图主菜单录入添加修改删除查询排列保存读取统计录入并创建链表在最后一行添加编号查找后修改确认后删除输入编号查找按编号排列统计汽车辆数保存文件并命名退出读取文件信息退出系统2.3.2 各个模块详细的功能描述1.录入:输入并创建链表2.添加:在数据最后一位添加数据3.修改:按编号查找后输出并按选择进行修改4.删除:按编号查找确认删除后删除数据5.打印:对数据逐项进行输出打印6.查找:输入编号查找到结果并显示7.排列:按编号、名称、数量、价格、销售日期进行排列8.统计:对汽车辆数进行统计9.保存:对输入数据进行保存10.读取:对保存好的数据进行读取2.3.3 系统的顶层数据流图车辆采购员仓库管理系统仓库汽车存储表处理后信息人员管理系统人员信息表汽车销售员仓库管理员仓库管理员汽车销售员人员管理员人员管理员采购车辆信息入/移库信息储存信息车辆销售信息信息信息信息操作信息信息存储信息3、详细设计3.1 功能函数的调用关系图主函数录入添加修改删除查询排列保存读取统计退出主函数3.2主要的设计及编码1、主函数void main(void) struct GOODS *head; /定义结构体head=(struct GOODS *)malloc(sizeof(struct GOODS); /创建menu_inf(head); /进入菜单2、录入struct GOODS *get_inf(struct GOODS *head)/录入(建立链表) struct GOODS *p1, *p2;char result;int i = 1;head-next = NULL;p2 = head;p2 =head;do system(cls); putitem_inf(汽车录入信息:n);p1 = (struct GOODS *)malloc(sizeof(struct GOODS);printf(nn请输入第%d辆车的信息:nn,i+); printf(编号/名称/数量/价格/销售日期(yyyy-mm-dd)n);scanf(%d%s%d%d%d-%d-%d,&p1-num,p1-name,&p1-count,&p1-price,&p1-year, &p1-month,&p1-day);p2-next = p1;p2 = p1;printf(nn);printf(是否继续?(Y/N);result = getch(); while(result = Y |result = y);p2-next = NULL;return head;3、查询struct GOODS *find_inf(struct GOODS *head)/查找 int num; int i = 0;system(cls);putitem_inf(请输入要查找的车编号:);scanf(%d,&num); while(head -next != NULL) head = head-next;if(head -num = num) i=1;printf(nn);putitem_inf(*查找信息*);printf(nn);printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日nnn,head-num,head-name,head-count,head-price,head-year,head-month,head-day); putitem_inf(查找已结束,按任意键继续!);if(i = 0) printf(nn);putitem_inf(数据不存在,按任意键继续!);getch();return head;4.排序struct GOODS* sort_inf(struct GOODS* head)/排序 struct GOODS *temp1,*p1,*p2,*min,*temp;int chioce;temp=(struct GOODS*)malloc(sizeof(struct GOODS);system(cls);printf(n);putitem_inf(请选择要请选择排列种类:);printf(n);printf(n 1.编号:);printf(n 2.名称:);printf(n 3.数量:);printf(n 4.价格:);printf(n 5.销售日期(yyyy-mm-dd):);printf(n请选择(1-5):);printf(nn);scanf(%d,&chioce);if(head-next=NULL)return head;for(p1=head-next;p1!=NULL;p1=p1-next)min=p1;for(p2=p1-next;p2!=NULL;p2=p2-next)if(chioce = 1)if(min-num p2-num)min = p2;else if(chioce = 2) if(min-name p2-name) min = p2;else if(chioce = 3)if(min-count p2-count)min = p2;else if(chioce = 4)if(min-price p2-price)min=p2;else if(min-yearp2-year|min-month p2-month|min-day p2-day)min = p2;if(min!=p1)*temp=*min;*min=*p1;*p1=*temp;temp1=min-next;min-next=p1-next;p1-next=temp1; for(p1=head-next;p1!=NULL;p1=p1-next)printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日nnn,p1-num,p1-name,p1-count,p1-price,p1-year,p1-month,p1-day);putitem_inf(查找已结束,按任意键继续!);getch();return head; 5、删除struct GOODS *delete_inf(struct GOODS *head)/删除 int num, n =0;char result =y;struct GOODS *p;system(cls);p = head-next;if(p = NULL)printf(为空文件n);printf(nn);putitem_inf(请输入要删除的编号:);scanf(%d,&num);while(p != NULL &result = y|result =Y) if(p-num = num) n = 1;putitem_inf(应删除的信息为:n);printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日n,p-num,p- name,p-count,p-price,p-year, p-month,p-day);printf(是否确定删除?(Y/N);result = getch();if(result = y|result =Y) if(p = head) head = p-next;elsehead-next = p-next;printf(nn);putitem_inf(*删除的信息为:*);printf(nn);printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日nnn,p-num,p- name,p-count,p-price,p-year, p-month,p-day);putitem_inf(删除以完成,按任意键继续!);getch();head = p;p = p-next; if(n = 0)printf(编号不存在,请核实后再进行删除(并按任意键继续)n);getch();return head;6、主函数void main(void) struct GOODS *head; /定义结构体head=(struct GOODS *)malloc(sizeof(struct GOODS); /创建menu_inf(head); /进入菜单7、退出函数exit()4、运行调试与分析讨论4.1模块运行调试a.录入汽车信息b.添加汽车信息c.修改汽车信息d.删除汽车信息e.查询汽车信息f排列汽车信息g.统计汽车信息h.保存汽车信息i.读取汽车信息5、设计体会与小结我组做的汽车销售管理系统,是通过需求分析了解了用户需求后才开始系统设计的。但由于是第一次设计开发软件系统,肯定有很多不足,但我相信,通过我们一次次的实践和总结,我们的能力会不断提升。通过此次的课程设计,我更近一步地掌握了C语言课程的相关知识,熟悉了指针、数据、结构体等章节的内容。对软件工程中的类的定义和运用有了更深的了解。通过此次的课程设计,使我意识到团队合作的重要性,培养了我管理、领导团队的能力。经过这两周的程序编写,通过老师和同学的帮助,再加上自己对内容得理解,最终完成了对汽车销售管理系统的编写,实现了其所要求的功能。调试情况良好。在调试过程中,尤其对程序中出错的地方,应仔细去研究代码,记得在一次调试中最多会有几百个错误,从前面开始改,改一个就会去除好些错误,要静下心来,慢慢检查。我们在写程序时采取了前一天先在本子编好代码,第二天上机检查运行的模式,感觉还是不错!在头脑中先对程序的各项功能和大体模块要怎么引用有个大体的认识,而后在对各个分模块功能算法研究,就会做到有目的性,能提高时间利用率。在整个编程过程中,对课本知识也有了更进一步的掌握。学会了在VC+上变量要先定义完后再赋值等一系列编程知识,在检查时可以分段检查等技巧等等。在最后程序编出时的高兴与喜悦也会难以忘记的,总的来说,在这次编程中,我们对数组的掌握更全面,复习了文件这一很难的章节,在接下来学习当中就要尝试各种的软件开发,一定不能落后。这次课程设计确实提高了我们的动手能力,对以后很有益处。参考文献1 C/C+程序设计,王连相等,中国科学技术出版社,20042 C语言程序设计,谭浩强,清华大学出版社,19993 C程序设计题解与上机指导,谭浩强,清华大学出版社,19994 C语言实用程序荟萃,西安电子科技大学出版社,19935 C语言函数手册,机械工业出版社,19996 C语言的实际应用,安徽科学技术出版社,2000致 谢首先要感谢老师的授课与指导!感谢所有支持我完成C程序设计论文的老师和同学们!附录源程序:#include#include#include#includestruct GOODS int num; /*编号*/char name10; /*名称*/ int count; /*销售数量*/int price; /*销售价格*/int year;int month;int day; /*销售日期*/struct GOODS *next;void save_inf(struct GOODS *head) /将单链表种信息保存到指定的磁盘文件中 struct GOODS *p;FILE *fp;char filename40; system(cls);printf(nn);printf(请输入要保存的文件名:);scanf(%s, filename);if(fp=fopen(filename,wt)=NULL) printf(文件出错,按任意键退出!n); getch(); exit(1); for(p=head-next; p!=NULL; p = p-next)fprintf(fp,%d %s %d %d %d %d %dn,p-num, p - name,p-count, p-price, p-year, p-month, p-day);printf(nn);printf( 文件已保存成功,按任意键返回!); printf(nn); getch();fclose(fp); struct GOODS *read_inf() /从制定磁盘文件中读取信息并存入单链表中 struct GOODS *head,*r,*car;FILE *fp; char filename40;system(cls);printf(nn); printf(请输入要打开的文件名: );scanf(%s,filename); if(fp=fopen(filename,rt)=NULL) printf(读文件错误,按任意键退出!); getch(); exit(1); head=(struct GOODS *)malloc(sizeof(struct GOODS);head-next=NULL;r=head;while(!feof(fp) car=(struct GOODS *)malloc(sizeof(struct GOODS); fscanf(fp,%d%s%s%d%d%dn,&car-num,car - name,&car-count,&car-price, &car-year, &car-month,&car-day);r-next=car; r=car; r-next=NULL;fclose(fp);printf(nn);printf(文件中信息以正确读出,按任意键返回!);printf(nn); getch(); return head; void putitem_inf(char *item)/辅助 char *bank = ;printf(%s%s,bank + strlen(item)/2,item); struct GOODS *get_inf(struct GOODS *head)/录入(建立链表) struct GOODS *p1, *p2;char result;int i = 1;head-next = NULL;p2 = head;p2 =head;do system(cls); putitem_inf(汽车录入信息:n);p1 = (struct GOODS *)malloc(sizeof(struct GOODS);printf(nn请输入第%d辆车的信息:nn,i+); printf(编号/名称/数量/价格/销售日期(yyyy-mm-dd)n);scanf(%d%s%d%d%d-%d-%d,&p1-num,p1-name,&p1-count,&p1-price,&p1-year, &p1-month,&p1-day);p2-next = p1;p2 = p1;printf(nn);printf(是否继续?(Y/N);result = getch(); while(result = Y |result = y);p2-next = NULL;return head;struct GOODS *append_inf(struct GOODS *head)/添加 struct GOODS *p0,*p1;system(cls);p1=head;p0=(struct GOODS *)malloc(sizeof(struct GOODS);putitem_inf(所需要添加的汽车信息是:nnn);printf( 请输入所要添加的汽车编号:);scanf(%d,&p0-num);printf( n 请输入所要添加的汽车名称:);scanf(%s,p0-name);printf(n 请输入所要添加的汽车数量:);scanf(%d,&p0-count);printf(n 请输入所要添加的汽车价格:);scanf(%d,&p0-price);printf(n 请输入所要添加的汽车出厂日期(yyyy-mm-dd):);scanf(%d-%d-%d,&p0-year,&p0-month,&p0-day);for(p1=p1-next;p1!=NULL; p1=p1-next)if (p1-next=NULL) p1-next=p0; p1 = p0; p1 - next = NULL; printf(nn);putitem_inf(*添加信息为*);printf(nn);printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日nnn,p0-num,p0-name,p0-count,p0-price,p0-year,p0-month,p0-day);printf(nn);putitem_inf(添加信息已结束,按任意键继续!);getch();return head;void remove_inf(struct GOODS *head)/修改 int n, chioce, i = 0;struct GOODS *p;system(cls);printf(nn);putitem_inf(请输入要修改的汽车编号:);scanf(%d,&n);printf(nn);for(p = head-next;p != NULL;p = p-next) if(p-num = n) system(cls);putitem_inf(*要修改汽车信息为:*); printf(nn);printf(编号:%ldn1.名称:%s 2.数量:%ld 3.价格:%ld 4.销售日期:%ld年%d月%d日n,p-num,p- name,p-count,p-price,p-year, p-month,p-day);printf(n);putitem_inf(请选择要修改的信息:);printf(nn);printf(n 1.名称:);printf(n 2.数量:);printf(n 3.价格:);printf(n 4.销售日期(yyyy-mm-dd):);printf(n请选择(1-4):);scanf(%d,&chioce);if(chioce = 1)printf(n请输入修改后的车辆名字:);scanf(%s,p-name); else if(chioce = 2)printf(n请输入修改后的车辆数量:);scanf(%d,&p-count); else if(chioce = 3)printf(n请输入修改后的车辆价格:);scanf(%d,&p-price); elseprintf(n请输入修改后的车辆出厂日期(yyyy-mm-dd):);scanf(%d-%d-%d,&p-year, &p-month,&p-day); printf(nn);putitem_inf(*修改后的信息为:*);printf(n);printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日nnn,p-num,p- name,p-count,p-price,p-year, p-month,p-day);putitem_inf(修改以完成,按任意键继续!);elseprintf(nn);printf(数据不存在,请核实后在进行!); getch();struct GOODS *delete_inf(struct GOODS *head)/删除 int num, n =0;char result =y;struct GOODS *p;system(cls);p = head-next;if(p = NULL)printf(为空文件n);printf(nn);putitem_inf(请输入要删除的编号:);scanf(%d,&num);while(p != NULL &result = y|result =Y) if(p-num = num) n = 1;putitem_inf(应删除的信息为:n);printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日n,p-num,p- name,p-count,p-price,p-year, p-month,p-day);printf(是否确定删除?(Y/N);result = getch();if(result = y|result =Y) if(p = head) head = p-next;elsehead-next = p-next;printf(nn);putitem_inf(*删除的信息为:*);printf(nn);printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日nnn,p-num,p- name,p-count,p-price,p-year, p-month,p-day);putitem_inf(删除以完成,按任意键继续!);getch();head = p;p = p-next; if(n = 0)printf(编号不存在,请核实后再进行删除(并按任意键继续)n);getch();return head;struct GOODS *find_inf(struct GOODS *head)/查找 int num; int i = 0;system(cls);putitem_inf(请输入要查找的车编号:);scanf(%d,&num); while(head -next != NULL) head = head-next;if(head -num = num) i=1;printf(nn);putitem_inf(*查找信息*);printf(nn);printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日nnn,head-num,head-name,head-count,head-price,head-year,head-month,head-day); putitem_inf(查找已结束,按任意键继续!);if(i = 0) printf(nn);putitem_inf(数据不存在,按任意键继续!);getch();return head;int count_inf(struct GOODS *head)/统计 int sum = 0;struct GOODS *p;for(p = head-next; p!=NULL;p=p-next)sum+;return sum;struct GOODS* sort_inf(struct GOODS* head)/排序 struct GOODS *temp1,*p1,*p2,*min,*temp;int chioce;temp=(struct GOODS*)malloc(sizeof(struct GOODS);system(cls);printf(n);putitem_inf(请选择要请选择排列种类:);printf(n);printf(n 1.编号:);printf(n 2.名称:);printf(n 3.数量:);printf(n 4.价格:);printf(n 5.销售日期(yyyy-mm-dd):);printf(n请选择(1-5):);printf(nn);scanf(%d,&chioce);if(head-next=NULL)return head;for(p1=head-next;p1!=NULL;p1=p1-next)min=p1;for(p2=p1-next;p2!=NULL;p2=p2-next)if(chioce = 1)if(min-num p2-num)min = p2;else if(chioce = 2) if(min-name p2-name) min = p2;else if(chioce = 3)if(min-count p2-count)min = p2;else if(chioce = 4)if(min-price p2-price)min=p2;else if(min-yearp2-year|min-month p2-month|min-day p2-day)min = p2;if(min!=p1)*temp=*min;*min=*p1;*p1=*temp;temp1=min-next;min-next=p1-next;p1-next=temp1; for(p1=head-next;p1!=NULL;p1=p1-next)printf(编号:%ld 名称:%s 数量:%ld 价格:%ld 出场日期:%ld年%d月%d日nnn,p1-num,p1-name,p1-count,p1-price,p1-year,p1-month,p1-day);putitem_inf(查找已结束,按任意键继续!);getch();return head; void menu_inf(struct GOODS *head) int sum,choice1;char result=Y;system(cls);printf(n);putitem_inf(*车辆销售管理系统*nn);putitem_inf(1.录入汽车信息nn);putitem_inf(2.添加汽车信息nn);putitem_inf(3.修改汽车信息nn);putitem_inf(4.删除汽车信息nn);putitem_inf(5.查询汽车信息nn);putitem_inf(6.排列汽车信息nn);putitem_inf(7.统计汽车信息nn);putitem_inf(8.保存汽车信息nn);putitem_inf(9.读取汽车信息nn);putitem_inf(0.退出系统nn);putitem_inf(请选择(0-10):);scanf(%d,&choice1);switch(choice1)case 1: head = get_inf(head); menu_inf(head); break;case 2: append_inf(head); menu_inf(head); break;case 3:while (result=y|result=Y) remove_inf(head);printf(nn继续修改吗?!(Y/N));result = getche(); menu_inf(head); break;case 4: delete_inf(head); menu_inf(head); break;case 5: find_inf(head); menu_inf(head); break;case 6:while (result=y|result=Y) sort_inf(head);printf(nn继续修改吗?!(Y/N));result = getche(); menu_inf(head); break;case 7: system(cls); printf(nn); sum = count_inf(head); putitem_inf(车辆总数为:); printf(%d辆,sum); printf(nn); putitem_inf(统计结束,按任意键继续!); getch(); menu_inf(head); break;case 8: save_inf(head); menu_inf(head); break;case 9:read_inf(head); menu_inf(head); break;case 0: system(cls); printf(nn); putitem_inf(汽车信息已存,运行结束,按任意键继续!); getch(); break;default: printf(nn); putitem_inf(输入有误,按任意键继续!n); getch(); menu_inf(head); break; void main(void) struct GOODS *head; /定义结构体head=(struct GOODS *)malloc(sizeof(struct GOODS); /创建menu_inf(head); /进入菜单
展开阅读全文