数据结构集中上机设计报告(订票系统)_第1页
数据结构集中上机设计报告(订票系统)_第2页
数据结构集中上机设计报告(订票系统)_第3页
数据结构集中上机设计报告(订票系统)_第4页
数据结构集中上机设计报告(订票系统)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构集中上机设计报告(订票系统)目录第一部分:…………..报告的基本要求第二部分:…………..程序源代码及运行结果第三部分:…………..心得体会 第一部分: 报告的基本要求1:简述题目要解决的问题是什么,并说明输入和输出数据的形式。该系主要是为客户提供多种航班选择,当客户选择某种航班2保存相应的客户信息,并能随时航班信息和客户信息做出一定的修改。2:简述存储结构和算法的基本思想。本程序主要是以建立单链表的形式将相应的数据存储在文件中,算法的基本思想是:主函数控制程序的执行流程,将该系统要完成的各个功能用不同的子函数写出,建立两个文件(文本文档的形式)分别保存航班信息和订票信息。3:分析程序的优缺点、时空性能以及改进思想。该程序执行过程清晰,并附带详细的提示信息,能让用户清楚的知道下一步应该怎么做,不过程序不够精炼,还有待优化。该程序主要是用单链表存储结构来存储各项数据,里边用到了建立单链表(时间复杂度为O(n)),单链表的插入(时间复杂度为O(n)),链表的删除(时间复杂度为O(n))。改进思想:可以用二叉树及图等存储结构来存储相应的信息,建立哈希表,二叉平衡树等来进行查找。第二部分:程序源代码及运行结果源代码:#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#include<conio.h>#include<windows.h>#defineNULL0//--------------定义结构体表示航班情况----------------------------typedefstructdate{ inthour; intminute;}date;typedefstructflight{ longnumber;//航班号datestrat;//起飞时间 dateend;//降落时间 charcity[20];//起飞抵达城市 floatprice;//票价 floatdiscount;//票价折扣 chara[5];//确定航班是否仓满,yes表示已满,no未满 structflight*next;}flight;//----------------------------------------------------------------//----------------------定义结构体表示客户订票情况-----------------typedefstructdingpiao{ intnum;//订单编号 charname[10];//客户姓名 longID;//客户证件号 intamount;//订票数量 longnumber;//航班情况 structdingpiao*next;}Dingpiao;//---------------------------------------------------------------------------//----------------------录入函数---------------------------------------------//思想:建立一个单链表将需要录入的航班情况保存在里面,然后再将单链表中的所有数据存储在"航班情况"的文件里面。voidluru(){flight*head,*p; flight*p1,*p2; FILE*fp;//文件定义 fp=fopen("航班情况.txt","a+");//文件打开 inti,n=0;//定义整形变量i,n用作记录链表结点的个数 printf("请输入一个整数,当输入为0时结束录入:"); scanf("%d",&i); p2=p1=(flight*)malloc(sizeof(flight)); while(i!=0) { n++; printf("请输入航班号:"); scanf("%ld",&p1->number); printf("\n请输入起飞时间(时,分):"); scanf("%d,%d",&p1->strat.hour,&p1->strat.minute); printf("\n请输入降落时间(时,分):"); scanf("%d,%d",&p1->end.hour,&p1->end.minute); printf("\n请输入起飞抵达城市:"); scanf("%s",p1->city); printf("\n请输入票价和折扣:"); scanf("%f,%f",&p1->price,&p1->discount); printf("\n请输入是否满仓:"); scanf("%s",p1->a); if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(flight*)malloc(sizeof(flight)); printf("请输入一个整数,当输入为0时结束录入:"); scanf("%d",&i); }p2->next=NULL; //-------------保存录入的航班信息---------------- p=head; while(p!=NULL) { fwrite(p,sizeof(flight),1,fp); p=p->next; } //----------------------------------------------- fclose(fp);//-------关闭文件----------}//----------------------------------------------------------------------//-----------------------------查询函数----------------------------------//思想:先读取已存储的航班情况文件,然后再按两种不同的方式查询相应的信息voidchaxun(){ inta,num,i=0; charcity[20];//------------------------------------------- //下面部分是读取已存储的航班情况文件 FILE*fp; flight*head,*p,*s; head=(flight*)malloc(sizeof(flight)); s=head; if((fp=fopen("航班情况.txt","r"))==NULL) { printf("error!\n"); exit(0); } else { while(!feof(fp)) { p=(flight*)malloc(sizeof(flight)); fread(p,sizeof(flight),1,fp); s->next=p; s=p; s->next=NULL; } } //------------------------------------------------ printf("请选择是\n1:按航班号查询\n2:按抵达城市查询\n"); printf("请输入你的选择:"); scanf("%d",&a); switch(a) { case1:printf("请输入你要查询的航班号:"); scanf("%ld",&num); s=head;while(s!=NULL) {if(s->number==num) { printf("起飞时间:%d:%d",s->strat.hour,s->strat.minute); printf("\n降落时间:%d:%d",s->end.hour,s->end.minute); printf("\n起飞抵达城市:%s",s->city); printf("\n票价和折扣:%f,%f",s->price,s->discount); printf("\n是否满仓:%s",s->a); printf("\n"); break; } else s=s->next; } if(s==NULL) printf("没有找到你想要查询的航班\n"); break; case2: printf("请输入你要查询的起飞抵达城市:"); scanf("%s",city); s=head;while(s!=NULL) {if(strcmp(s->city,city)==0) { printf("航班号:%ld",s->number); printf("\n起飞时间:%d:%d",s->strat.hour,s->strat.minute); printf("\n降落时间:%d:%d",s->end.hour,s->end.minute); printf("\n票价和折扣:%f,%f",s->price,s->discount); printf("\n是否满仓:%s",s->a); printf("\n"); break; } else s=s->next; } if(s==NULL) printf("没有找到你想要查询的航班\n"); break; }fclose(fp);//关闭打开的文件}//-------------------------------------------------------------------------//------------------------------订票函数----------------------------------//思想:建立一个单链表将订票客户的相应资料保存在里面,然后再将单链表中的所有数据存储在"订票情况"的文件里面。voiddingpiao(){Dingpiao*head,*p; Dingpiao*p1,*p2; FILE*fp;//文件定义 fp=fopen("订票情况.txt","a+");//文件打开 inti,n=0;//定义整形变量i,n用作记录链表结点的个数 printf("请输入一个整数,当输入为0时结束订票:"); scanf("%d",&i); p2=p1=(Dingpiao*)malloc(sizeof(Dingpiao)); while(i!=0) { p1->num=n++; printf("请输入客户姓名:"); scanf("%s",p1->name); printf("\n请输入客户证件号码:"); scanf("%ld",&p1->ID); printf("\n请输入订票数量:"); scanf("%d",&p1->amount); printf("\n请输入订单编号:"); scanf("%d",&p1->num);printf("\n请输入客户订的航班号:"); scanf("%ld",&p1->number); if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(Dingpiao*)malloc(sizeof(Dingpiao)); printf("请输入一个整数,当输入为0时结束订票:"); scanf("%d",&i); }p2->next=NULL; //------------保存客户的订票信息--------------- p=head; while(p!=NULL) { fwrite(p,sizeof(Dingpiao),1,fp); p=p->next; } //--------------------------------------------- fclose(fp);//-----关闭文件-----}//-------------------------------------------------------------------------//-----------------------------退票函数------------------------------------//思想:先读取已存储的订票情况文件,然后再找到相应客户资料并删除voidtuipiao(){ charname[10],a[5]; Dingpiao*q,*r;//------------------------------------------- //下面部分是读取已存储的订票情况文件 FILE*fp; Dingpiao*head,*p,*s; head=(Dingpiao*)malloc(sizeof(Dingpiao)); s=head; if((fp=fopen("订票情况.txt","r+"))==NULL) { printf("error!\n"); exit(0); } else { while(!feof(fp)) { p=(Dingpiao*)malloc(sizeof(Dingpiao)); fread(p,sizeof(Dingpiao),1,fp); s->next=p; s=p; s->next=NULL; } } //--------------------------------------------- //--------------------------------------------- //----找到相应客户资料并删除(单链表的删除)----there:printf("请输入需要退票的客户姓名:");scanf("%s",name); getchar(); s=head;while(s!=NULL) {if(strcmp(s->name,name)==0) break; else {q=s; s=s->next; } } if(s==NULL) { printf("没有找到该客户的姓名,请确认该客户是否已订票\n"); printf("是否继续退票(yesorno):"); gets(a); if(strcmp(a,"yes")==0) gotothere; } else {if(s==head) { head=s->next;//删除结点 //将该删除结点后面的客户订票编号依次减一 s=head; while(s!=NULL) {s->number-=1; s=s->next; } }else { q->next=s->next;//删除结点 //将该删除结点后面的客户订票编号依次减一 s=q->next; while(s!=NULL) {s->number-=1; s=s->next; } } printf("是否继续退票(yesorno):"); gets(a); if(strcmp(a,"yes")==0) gotothere; } //--------------------------------------------------- //------保存修改后的文件----------------------------- r=head; while(r!=NULL) { fwrite(r,sizeof(Dingpiao),1,fp); r=r->next; } //--------------------------------------------------- fclose(fp);//----关闭文件----}//------------------------------------------------------------------------//------------------------------修改航班信息函数----------------------------//思想:先读取已存储的航班情况文件,然后再修改相应的航班信息voidxiugai(){ longnumber; chara[5],b,c[5]; floatprice,discount; inthour,minute; flight*r;//------------------------------------------- //下面部分是读取已存储的航班情况文件 FILE*fp; flight*head,*p,*s; head=(flight*)malloc(sizeof(flight)); s=head; if((fp=fopen("航班情况.txt","r+"))==NULL) { printf("error!\n"); exit(0); } else { while(!feof(fp)) { p=(flight*)malloc(sizeof(flight)); fread(p,sizeof(flight),1,fp); s->next=p; s=p; s->next=NULL; } } //---------------------------------------------where:printf("请输入你要修改该的航班的航班号:"); scanf("%ld",&number); getchar(); s=head;while(s!=NULL) { if(s->number==number) {man:printf("请输入你要修改的航班信息类型\n"); printf("[S(起飞时间),E(降落时间),D(折扣),P(票价),A(是否仓满)]:"); gets(&b); getchar(); switch(b) { case'S': printf("\n请输入你要修改的起飞时间(时,分之间用逗号间隔):"); scanf("%d,%d",&hour,&minute); s->strat.hour=hour; s->strat.minute=minute; printf("\n是否继续修改其他类型的航班信息(yesorno):"); getchar(); gets(c); if(strcmp(c,"yes")==0) gotoman; else break; case'E': printf("\n请输入你要修改的降落时间(时,分之间用逗号间隔):"); scanf("%d,%d",&hour,&minute); s->end.hour=hour; s->end.minute=minute; printf("\n是否继续修改其他类型的航班信息(yesorno):"); getchar(); gets(c); if(strcmp(c,"yes")==0) gotoman; else break; case'D': printf("\n请输入你要修改的机票折扣:"); scanf("%f",&discount); s->discount=discount; printf("\n是否继续修改其他类型的航班信息(yesorno):"); getchar(); gets(c); if(strcmp(c,"yes")==0) gotoman; else break; case'P': printf("\n请输入你要修改的机票票价:"); scanf("%f",&price); s->price=price; printf("\n是否继续修改其他类型的航班信息(yesorno):"); getchar(); gets(c); if(strcmp(c,"yes")==0) gotoman; else break; case'A': printf("\n请输入你要修改的是否仓满:"); scanf("%s",a); strcpy(s->a,a); printf("\n是否继续修改其他类型的航班信息(yesorno):");getchar(); gets(c); if(strcmp(c,"yes")==0) gotoman; else break; default: printf("\n你的输入有错,请重新选择\n"); printf("是否继续修改其他类型的航班信息(yesorno):"); getchar(); gets(c); if(strcmp(c,"yes")==0) gotoman; else break; } break; } else s=s->next; } if(s==NULL) {printf("没有找到你要修改的航班"); printf("是否继续修改其他航班的信息(yesorno):"); gets(c); getchar(); if(strcmp(c,"yes")==0) gotowhere; } //------保存修改后的文件----------------------------- r=head; while(r!=NULL) { fwrite(r,sizeof(flight),1,fp); r=r->next; } //--------------------------------------------------- fclose(fp);//----关闭文件----}//--------------------------------------------------------------------------//-----------------------------主函数---------------------------------------voidmain(){inta;here:printf("------------------------------\n");printf("1:录入\n2:查询\n3:订票\n4:退票\n5:修改航班信息\n6:退出\n");printf("------------------------------\n");printf("请选择服务项目:\n");scanf("%d",&a);switch(a){ case1: luru(); system("pause");//暂停函数,按任意键解除暂停// Sleep(10000);//暂停函数,以毫秒为单位system("cls");//清屏函数 gotohere; case2: chaxun(); system("pause");//暂停函数,按任意键解除暂停// Sleep(10000);//暂停函数,以毫秒为单位system("cls");//清屏函数 gotohere; case3: dingpiao();system("pause");//暂停函数,按任意键解除暂停// Sleep(10000);//暂停函数,以毫秒为单位system("cls");//清屏函数 gotohere; case4: tuipiao();system("pause");//暂停函数,按任意键解除暂停// Sleep(10000);//暂停函数,以毫秒为单位system("cls");//清屏函数 gotohere; case5: xiugai();system("pause");//暂停函数,按任意键解除暂停// Sleep(10000);//暂停函数,以毫秒为单位system("cls");//清屏函数 gotohere; case6:exit(0);}}//-----------------------------------------------------------------------------运行结果:开始界面:录入界面:查询界面:订票界面:退票界面:修改航班信息界面:退出界面:第三部分:心得体会1,开始对c语言只是一种零散的认识,作为一个c语言的初学者对编程没有明确的概念,只是对语句的格式与编程规定有了一个初步了解。也不知道编程的主要目的是什么,依据什么来编?为什么要编程?编出来又能干什么?通过对这一飞机订票系统的学习,知道了c语言在实际应用中的作用,明确了学c语言的意义。2,以前都没有用C语言来编过稍微大一点的程序,只是零散的写了些小程序,也没觉得有什么收获和成就感,在写完订票系统后才发现自己有很多方面的不足。在写程序的过程中遇到了许多问题,通过查阅资料,与室友讨论,请教高人等许多途径来解决了这些问题。总之,在这次编程中我感觉自己收获很大。

中国企业物流运作现状及发展战略探讨摘要:自从2001年中国加入WTO之后,市场竞争就更加激烈。每个企业为了提高自身的竞争力,努力提高物流水平,降低物流成本。本文将中国物流现状与发达的国家和地区的企业物流运作模式进行对比,提出了中国的企业物流发展战略关键词:企业物流现状;运行模式;发展战略一、中国企业物流的运作现状及弊端

物流战略是很多企业总体战略中必须考虑到的一个重要因素。为了在市场中提升自我竞争了,企业不断在降低物流成本和提高物流水平上下功夫。无论是在国内还是国际市场上,都能够最大程度上的降低成本,同时又不减低服务水平,获得竞争优势。企业物流的管理整体上来说还是处于不完善的阶段,大多停留在纸币时代。比较先进的企业已经配备了电脑,但是依旧没有形成系统的体系和网络。EDL、个人电脑、人工智能、专家系统、通信和扫描等先进的信息技术还未在物流运作中广泛地运用。但是物流是一种新型的管理技术,涉及领域宽广。因此物流管理人员要熟悉掌握企业内物流和因此延伸的整条供应链的管理知识,掌握整个工艺流程,精通物流管理技术。而我国现在十分缺乏具备综合物流知识的管理和技术人才,难以满足企业物流现代化的需求。二、中国企业物流的发展战略1990年以来,在国外,物流已经成为了该国一个重要的经济增长点。但是在中国,物流才刚刚起步。企业之间生产经营,市场运行的各个方面展开竞争。具体体现在技术、人才上包括了物流和供应链。在竞争如此激烈的背景之下,企业进入了一个微利时代,产品的成本和利润变得十分透明。而这用竞争还会不断加深,变得更加激烈,三、发展物流为当务之急

社会的经济环境在不断地发展变化之中,这就要求中小企业从战略发展的高度出发去思考物流的发展问题。在大企业实时物流战略的同时,作为灵活的反应者,中小企业在市场中,也积极采取了行动。希望通过积极的物流战略提升自身的竞争力。信息技术的发展前景大好,经济贸易的高速发展,物流业已经显示出了蓬勃的活力和蕴藏的无限商机,物流服务正逐渐成为中国企业之中最为经济合理的综合服务模式。中国进入WTO的时间还不算长,我国的中小企业应该及时把握住这一机会,在物流市场竞争比较不激烈时加入物流领域,迅速地占领一定的市场份额。但是如果中小企业不作为,等时间再长久一些,将会失去发展物流的优势。

四、从战略角度做物流

现下,我国的许多中小企业还未意识到物流战略以及控制物流成本的重要性。中小企业应当认识到物流战略是提升竞争力的重要手段,并且重视自身物流系统地建设,将物流系统的建设上升到战略高度。事实上,企业物流成本是除了原材料成本之外的最大成本项目。在国外发达国家,它们的物流成本一般控制在10%左右。而我国的现状就不太乐观。我国物流成本一般占总成本30%-40%,鲜活产品占60%左右甚至更多。我们应该看到的是系统完善的物流管理可以节省15%-30%物流成本,很大程度上减少库存和运输成本,对于中小企业来说,技术上和产品质量都比不上大企业。但不得不承认的是,中小企业产品价格更加受消费者青睐,市场需求反应更加灵活迅速。一旦中小企业将物流上升到战略高度,利用先进的物流管理模式,就可以大大的节省产品成本,进一步发挥自身的优势。想要在变幻莫测的市场中屹立不倒。谋求更加长远的发展,中小企业就要把物流放到企业经营管理的战略高度上进行思考。除了考虑要怎样解决仓储运输和商品配送这些物流的基本问题,还要思考怎样把采购、生产和销售过程中的物流活动的有机结合。做到以业务流程为基础,使得物流的一体化。最终达到加强企业的在瞬息万变的市场当中的竞争能力。

我国的中小企业只有突破地域限制、行业的局限,放眼于国内外,才能说真正意义上做好了战略制定,最大限度地把握住了机遇,有效规避风险。具体来的说,就是首先着眼于当前的地域市场的开拓,在获得了本地竞争的优势之后,辐射全国,放眼于全球。

五、重视物流系统的全面改造

发展物流并不是一蹴而就的,它需要一步步地前进。因此中小企业要注重制定详细的物流重组的长期实施计划和发展策略。物流重组需要从物流业务流程、组织机构、企业资源管理系统等方面展开,这样一来才有可能慢慢实现企业物流向供应链管理的“横向一体化”。达到降低生产、库存、运输等环节的成本,最终给客户带来更大的效益,给消费者带去更大的实惠。与此同时,企业的经营者应该打破传统的观念,不再只是局限于投入产出管理问题,如流程再造、压缩成本、加强培训以及有限资源的合理配置问题。企业的经营者应当认识到物流是企业市场营销的基础,从战略高度去思考物流运营成本与市场拓展需要、物流顾客服务的特殊要求之间的动态平衡,做到将物流系统与营销战略有机结合。现代化的物流在国际上又被称为一体化物流、供应链管理、销售链管理等等。不同于传统的物流,现代物流包括了运输、储存、装卸、搬运、包装、流通加工、配送、信息处理、回收等功能。对我国的中小企业来说,发展物流必须重视物流系统的全面改造。以物流供应链思想作为指导,注意对物流管理的强化,积极运用有效策略,全新打造物流的运作与管理体系。

六、从服务角度做物流

在国外,广泛认为物流业归属于服务业。但是现代物流在中国还是新兴产业。它的发展也就紧密伴随着企业经营管理理念而在发展。当代企业政府对物流管理的认识也逐渐提高到了企业和地区的战略理论的高度。当代企业经营管理理念的核心正在从产品制造转向产品销售再转向现代营销和客户服务。并且提出了“一切为客户创造价值”的现代经营理念。人们对于物流的认识早已经从企业自身的“功能性活动”上升为“以满足客户需求为目的”、“努力为客户创造价值,尽力增加顾客让渡价值”的“从供应到消费的运动、储存和配送的计划、执行和控制”的管理过程。消费者的需求不仅仅是商品。以企业的经营和发展的角度来看,物流就等同于服务。服务也是物流的物品之一。它是企业所提供的服务,“服务的实质上也是一种商品”,但是这一点却常常被人们所忽视。七、引进专业物流管理咨询公司中小企业自身的专业力量不足,因此要懂得借助相关的管理顾问公司以及相关研究机构来科学规划企业的物流战略、实施战略和管理体系。要去了解先进物流企业的作以及这样运作的原因所在。在这一过程之中,它们的物流服务理念是如何变化的,怎样做到满足客户需求和市场竞争,企业经营战略相衔接。这有这样,我国的中小企业才有可能成功地进入一个新的市场领域,在现有的市场基础上进一步地替身自身的服务水平,拓展市场份额。许多的企业在管理咨询方面下了许多的功夫,用以探索新管理方式和学习物流技术的运用。中小企想要全面提升企业的物流运作以及管理的水平,更加迅速地构建起一个先进的物流系统以及管理平台,就应当充分利用专业管理顾问公司的优势能力。结语:战略性的规划、投资以及技术开发是最近几年促进物流现代化发展的重要因素。企业亟需解决的不仅仅是仓促运输以及商品配送等最为基本的物流问题,最重要是为了解决怎么样才能在在变化莫测的市场竞争之中谋求生存与发展这一问题。因此企业必须做到将物流放在企业经营管理这一战略高度上去考虑怎样将采购、生产和销售则一系列过程与物流相结合。从而形成以业务流程为基础,形成物流一体化,达到增强企业市场竞争力的目的。物流已然是企业市场营销的基础。作业企业的经理,在物流决策方面应当从战略高度去考虑物流运营成本和市场拓展需要、物流顾客服务的特殊要求之间的动态平衡,仔细思考怎样才能把物流系统与营销战略以及企业的总体战略灵活结合。不再像传统上,只注重如何解决流程再造、压缩成本等投入产出的管理问题以及有限资源的合理配置问题。参考文献【1】孟祥茹

-中国企业物流运作现状及发展战略探讨\o"《山东交通学院学报》"《山东交通学院学报》

-

2013【2】刘铁钢

-

我国第三方物流的发展现状与运作模式探讨\o"《湖南经济管理干部学院学报》"《湖南经济管理干部学院学报》

-

2015【3】郑金花,余洪明

-

我国企业物流运作现状及发展战略探讨HYPERLINK"/s?wd=journalu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论