您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 计算机学院数据结构课程设计
计算机科学与技术学院课程设计成绩单课程名称:数据结构指导教师:姓名性别男学号班级综合成绩成绩等级程序运行情况(占总成绩20%)□能正确运行□基本能正确运行□能运行但结果不完善(20分)(15分)(10分)程序功能的完善程度(占总成绩10%)□完善□基本完善□不完善(10分)(8分)(5分)程序结构的合理性(占总成绩10%)□合理□基本合理□不太合理(10分)(8分)(5分)对问题的答辩情况(占总成绩40%)□概念正确有创新□能正确回答所有问题□基本能正确回答(40分)(35分)(30分)□部分问题回答概念不清晰(20分)学生的工作态度与独立工作能力(占总成绩10%)□工作态度认真能独立完成任务□工作态度认真但独立性较差(10分)(8分)□工作态度基本认真但缺乏独立性(5分)设计报告的规范性(占总成绩10%)□符合规范□基本符合规范□规范性较差(10分)(8分)(5分)优秀:90分~100分良好:80分~89分中等:70~79分及格:60~69分不及格0分~59分计算机科学与技术学院课程设计报告课程名称:数据结构专业:计算机科学与技术班级:学号:姓名:指导老师:【设计目的】数据结构是计算机专业的核心课程,是一门实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C(C++)程序并上机调试的基本方法,还要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用,学以至用,才能真正的培养学生的能力。【设计要求】1、课程设计题目共两题,每个学生必须独立完成;2、课程设计时间为1.5周;3、设计语言C(C++)不限;4、课余时间完成源程序和课程设计报告等文档书写工作,上机时间只能做调试工作。上机时带上源程序、数据结构教材、C语言教材。题目一火车票务系统的设计与实现设计一个火车票务系统,并完成如下功能:列车记录包含6项:车次、始发站、终点站、发车时间、到站时间、票价Z38、武昌、北京西、21:06、07:01、272(1)列车信息录入:输入列车基本信息。(2)列车信息删除:删除车次信息。(列车线路停运)(3)列车信息修改:删除车次信息。(列车时间、票价等信息有变动)(4)列车信息输出:根据格式对齐输出列车信息。(5)列车信息查询:可根据车次号、始发站、终点站查询满足条件的列车信息。(6)列车信息排序:可根据票价对列车信息进行排序并输出。【需求分析】一根据题目要求系统主界面应有以下几个功能:1录入信息2显示信息3查询信息4增加信息5修改信息6删除信息7排序对于各种有关信息操作,必须包括有车次、始发站、终点站、发车时间、到站时间、票价二查询包括:由车次,起点站和终点站的分别查询三排序::由票价排序【设计分析】头文件:#includestdio.h#includemalloc.h#defineMAX100#defineN50typedefstructtime//时间类型{intx,y,z;//分别对应年,月,日}TIME;typedefstructcnode//票信息类型{intno;//票号intid;//购票人证件号TIMEdate;//购票日期structcnode*next;}CNODE;typedefstructtnode//车次信息类型{chardata;//车次编号structtnode*lchild,*rchild;CNODE*head;}TNODE;voidcreate();//按车次建立二叉排序树voidinsert(int);//增加新的车次(二叉排序树的插入)voiddel();//取消车次(二叉排序树节点删除)voidinorder(TNODE*);//中序遍历车次二叉排序树(仅显示车次信息)voidinorder_all(TNODE*);//中序遍历车次二叉排序树(显示车次及售票信息)voidpreorder(TNODE*);//先序遍历车次二叉排序树(仅显示车次信息)TNODE*search();//按车次编号搜索CNODE*insert_c(CNODE*);//插入新的售票信息(单张)CNODE*insert_c_more(CNODE*);//插入新的售票信息(批量)CNODE*del_c(CNODE*,CNODE*);//退票处理(删除售票信息)CNODE*search_c(CNODE*,int);//按票号查询voidsearch_c_id(CNODE*,int);//按购票人证件号搜索(限定某车次)voidsearch_c_id_all(TNODE*,int);//按购票人证件号搜索(所有车次)voidsearch_date(CNODE*,TIME);//按购票日期搜索(限定某车次)voidsearch_date_all(TNODE*,TIME);//按购票日期搜索(所有车次)voidprint_c(CNODE*);//输出售票纪录(单张)voidprint_c_all(CNODE*);//输出售票纪录(批量)TNODE*root=NULL;voidmain(){inti,func,no,ok;TNODE*t;CNODE*c;TIMEd;printf(\n\n\n);for(i=0;i15;i++)printf(=);printf(列车售票信息管理系统);for(i=0;i15;i++)printf(=);printf(\n);printf(\t1.车次信息管理\n);printf(\t2.售票记录管理\n);printf(\t3.售票记录查询\n);printf(\t4.售票记录一览\n);printf(\t5.退出系统\n);for(i=0;iN;i++)printf(=);printf(\n请选择您所需要的功能:);fflush(stdin);scanf(%d,&func);switch(func){case1:printf(\n\n车次信息管理\n);for(i=0;iN;i++)printf(=);printf(\n\t1.增加新的车次);printf(\n\t2.取消车次);printf(\n\t3.返回上级菜单\n);for(i=0;iN;i++)printf(=);printf(\n请选择您所需要的功能:);fflush(stdin);scanf(%d,&func);switch(func){case1:create();printf(\n售票信息更新成功!\n\n);break;case2:del();break;case3:main();break;default:printf(\n[错误]功能号输入有误!请重新输入!);}break;case2:printf(\n\n售票记录管理\n);for(i=0;iN;i++)printf(=);printf(\n\t1.增加新的售票记录);printf(\n\t2.退票);printf(\n\t3.返回上级菜单\n);for(i=0;iN;i++)printf(=);printf(\n请选择您所需要的功能:);fflush(stdin);scanf(%d,&func);switch(func){case1:t=search();if(t!=NULL)t-head=insert_c_more(t-head);break;case2:t=search();printf(需要退票的票号:);scanf(%d,&no);t-head=del_c(t-head,search_c(t-head,no));break;case3:main();break;default:printf(\n[错误]功能号输入有误!请重新输入!);}break;case3:printf(\n\n售票记录查询\n);for(i=0;iN;i++)printf(=);printf(\n\t1.按票号搜索);printf(\n\t2.按购票者证件号搜索);printf(\n\t3.按购票日期搜索);printf(\n\t4.返回上级菜单\n);for(i=0;iN;i++)printf(=);printf(\n请选择您所需要的功能:);fflush(stdin);scanf(%d,&func);switch(func){case1:t=search();if(t!=NULL){printf(\n请输入您所要查询的票号:);scanf(%d,&no);c=search_c(t-head,no);if(c==NULL)printf([错误]没有该票号的纪录!该票还未售出或为废票!自动返回上级菜单\n...);}break;case2:printf(\n请输入您所要查询的购票者证件号:);scanf(%d,&no);search_c_id_all(root,no);printf(搜索完毕!自动返回上级菜单\n...);break;case3:do{printf(\n请输入您所要查询的日期(格式:yy-mm-dd):);scanf(%d-%d-%d,&d.x,&d.y,&d.z);if(d.y13&&d.y0){if(d.y==1||d.y==3||d.y==5||d.y==7||d.y==8||d.y==10||d.y==12)if(d.z32&&d.z0)ok=1;elseif(d.z==2)if(d.z30&&d.z0)ok=1;elseif(d.z31&&d.z0)ok=1;}elseok=0;if(!ok)printf(\n[错误]日期输入有误!请重新输入!);}while(!ok);printf(\n指定车次吗?(1-是,0-否):);scanf(%d,&ok);if(ok)search_date(search()-head,d);elsesearch_date_all(root,d);break;case4:main();break;default:printf(\n[错误]功能号输入有误!自动返回上级菜单\n...);}break;case4:printf(\n\n售票记录一览\n);for(i=0;iN;i++)printf(=);printf(\n\t1.仅浏览车次);printf(\n\t2.指定车次已售票记录);printf(\n\t3.所有车次已售票记录);printf(\n\t4.测试:先序遍历车次);printf(\n\t5.返回上级菜单\n);for(i=0;iN;i++)printf(=);printf(\n请选择您所需要的功能:);fflush(stdin);scanf(%d,&func);switch(func){case1:printf(\n+++仅浏览车次\n);if(root==NULL)printf([错误]无车次纪录!);else{inorder(root);printf(\n);}break;case2:printf(\n+++指定车次已售票记录\n);t=search();if(t!=NULL){print_c_all(t-head);printf(\n);}break;case3:printf(\n+++所有车次已售票记录\n);if(root==NULL)printf([错误]无车次纪录!);else{inorder_all(root);printf(\n);}break;case4:printf(\n+++测试:先序遍历车次\n);if(root==NULL)printf([错误]无车次纪录!);else{preorder(root);printf(\n);}break;case5:main();break;default:printf(\n[错误]功能号输入有误!自动返回上级菜单\n...);}break;default:printf(\n[错误]功
本文标题:计算机学院数据结构课程设计
链接地址:https://www.777doc.com/doc-8683525 .html