




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构设计和评价案例分析(一)数据结构设计和评价案例分析(一)1案例分析(一)数据结构设计案例一:问题:我校拟开发在校人员信息管理系统,主要管理学生成绩信息,老师工资课程信息,行政人员工资信息等,请设计合适的数据结构,开发出相应的信息管理系统案例分析(一)数据结构设计案例一:2该问题的数据结构设计要点A.数据节点设计学生节点:structstudent{Intstudentnumber;charstudentname[10];floatmaths;};教师节点:structteacher{intteachernumber;Charteachername[10];charsubjectname[10];floatsalary;};行政人员节点:Structcarder{Intcardernumber;Charcardername[20];Charcarderposition[10];Floatsalary;};该问题的数据结构设计要点A.数据节点设计3B.数据组织和数据结构管理将学生,教师,行政人员数据分别存放在三个数组中.用一个结构体类型管理数组的首地址和每个数组的实际长度Typedefstruct{student*elemstudent;//学生数组首地址teacher*elemteacher;//教师数组首地址carder*elemcarder;//行政人员数组首地址intstudentlength;//学生数组实际长度intteacherlength;//教师数组实际长度intcarderlength;//行政人员数组实际长度intmaxsize;//数组最大值}sqlist;//此为管理类型B.数据组织和数据结构管理将学生,教师,行政人员数据分别存放4B.数据组织和数据结构管理将学生,教师,行政人员数据分别存放在三个数组中.用一个结构体类型管理数组的首地址和每个数组的实际Typedefstruct{student*elemstudent;//学生数组首地址teacher*elemteacher;//教师数组首地址carder*elemcarder;//行政人员数组首地址intstudentlength;//学生数组实际长度intteacherlength;//教师数组实际长度intcarderlength;//行政人员数组实际长度intmaxsize;//数组最大值}sqlist;//此为管理类型B.数据组织和数据结构管理将学生,教师,行政人员数据分别存5C、主题算法设计主要算法为:1.生成空顺序表算法STATUSinitlist_sq(sqlist&L){L.elemstudent=(student*)malloc(100*sizeof(student));L.elemteacher=(teacher*)malloc(100*sizeof(teacher));L.elemcarder=(carder*)malloc(100*sizeof(carder));L.studentlength++;L.teacherlength++;L.carderlength++;}
有了空表,如何向表中加入数据呢?思考此处的问题与书有何异同?2.数据生成算法Statusstudent_insert(sqlist&L,intI,studente){此处代码如何写}C、主题算法设计主要算法为:6思考刚才是一次插入一个数据的算法,能否写一个算法一次读多个数据Statusstudent_read(sqlist&L){studentx;inti=0;scanf(“%d%s%f”,&x.studentnumber,x.studentname,&x.maths);While(x.studentnumber!=0){L.elemstudent[i]=x;scanf(“%d%s%f”,&x.studentnumber,x.studentname,&x.maths);i++;}L.studentlength=i;}returnok;}思考刚才是一次插入一个数据的算法,能否写一个算法一次读多个数73.数据的打印
数据打印函数设计:应该设计三个函数,分别打印学生,教师,行政人员Voidstudentdataprint(sqlist&L){inti;for(i=0;i<L.studentlength;i++)printf(“%d%s%f”,L.elemstudent[i].studentnumber,L.elemstudent[i].studentname,L.elemstudent[i].maths);printf(“\n”);}//学生数据打印程序结束
3.数据的打印数据打印函数设计:应该设计三个函数,分别打84.其它算法设计其他函数设计。查找,排序函数设计等
4.其它算法设计其他函数设计。查找,排序函数设计等9主函数设计主函数设计Voidmain(){sqlistdatastructuremanger;//管理变量Structstudentx1;Structteacherx2;Structcarderx3;initlist_sq(datastrcturemanger);//生成空顺序表//从键盘读入数据Printf(“\n请读入学生数据”);student_read(datastruremanger);//学生数据读取//思考,教师和行政人员的数据如何读?能从文件读入吗?//打印函数调用studentdataprint(datastructuremanger);//学生数据打印//其他函数调用}主函数设计主函数设计10数据结构评价A.算法设计的一致性。算法中的形参应有数据结构的理者,算法描述应简单,有效,各算法基本上风格一致。有些函数用了管理变量,有些函数不用,这就是风格的不一致。此外还要注意函数名,标始符的规范一致性数据结构评价A.算法设计的一致性。11B.数据组织和管理效率。在组织数据时是采用线性表还是树或图,要具体问题具体分析。比如要设计一个股份制家族成员的财务信息管理系统,重点是管理他们的财务,这时就不能盲目的采用树去组织每个成员的数据。亲兄弟明算帐,没必要考虑血缘辈分关系。但要你设计一个家谱管理系统时,用树结构是最合适的选择
B.数据组织和管理效率。12C.算法选择在设计部分算法时,有很多方法可供选择,比如那么多的查找和排序算法,我们究竟选择那种算法?原则是在兼顾算法复杂性的情况下,选择那些易读性强的算法。除非特殊需要,不能只顾时间复杂性C.算法选择13思考题和作业1.思考题:如果要管理元素周期表,该如何设计相应的数据结构呢?2.作业:完成今天所示案例的程序设计主题部分:要求有数据输入,数据打印,数据查找,排序等功能思考题和作业1.思考题:如果要管理元素周期表,该如何设计相应14本案例的完整程序本案例的完整程序15数据结构设计和评价案例分析(一)数据结构设计和评价案例分析(一)16案例分析(一)数据结构设计案例一:问题:我校拟开发在校人员信息管理系统,主要管理学生成绩信息,老师工资课程信息,行政人员工资信息等,请设计合适的数据结构,开发出相应的信息管理系统案例分析(一)数据结构设计案例一:17该问题的数据结构设计要点A.数据节点设计学生节点:structstudent{Intstudentnumber;charstudentname[10];floatmaths;};教师节点:structteacher{intteachernumber;Charteachername[10];charsubjectname[10];floatsalary;};行政人员节点:Structcarder{Intcardernumber;Charcardername[20];Charcarderposition[10];Floatsalary;};该问题的数据结构设计要点A.数据节点设计18B.数据组织和数据结构管理将学生,教师,行政人员数据分别存放在三个数组中.用一个结构体类型管理数组的首地址和每个数组的实际长度Typedefstruct{student*elemstudent;//学生数组首地址teacher*elemteacher;//教师数组首地址carder*elemcarder;//行政人员数组首地址intstudentlength;//学生数组实际长度intteacherlength;//教师数组实际长度intcarderlength;//行政人员数组实际长度intmaxsize;//数组最大值}sqlist;//此为管理类型B.数据组织和数据结构管理将学生,教师,行政人员数据分别存放19B.数据组织和数据结构管理将学生,教师,行政人员数据分别存放在三个数组中.用一个结构体类型管理数组的首地址和每个数组的实际Typedefstruct{student*elemstudent;//学生数组首地址teacher*elemteacher;//教师数组首地址carder*elemcarder;//行政人员数组首地址intstudentlength;//学生数组实际长度intteacherlength;//教师数组实际长度intcarderlength;//行政人员数组实际长度intmaxsize;//数组最大值}sqlist;//此为管理类型B.数据组织和数据结构管理将学生,教师,行政人员数据分别存20C、主题算法设计主要算法为:1.生成空顺序表算法STATUSinitlist_sq(sqlist&L){L.elemstudent=(student*)malloc(100*sizeof(student));L.elemteacher=(teacher*)malloc(100*sizeof(teacher));L.elemcarder=(carder*)malloc(100*sizeof(carder));L.studentlength++;L.teacherlength++;L.carderlength++;}
有了空表,如何向表中加入数据呢?思考此处的问题与书有何异同?2.数据生成算法Statusstudent_insert(sqlist&L,intI,studente){此处代码如何写}C、主题算法设计主要算法为:21思考刚才是一次插入一个数据的算法,能否写一个算法一次读多个数据Statusstudent_read(sqlist&L){studentx;inti=0;scanf(“%d%s%f”,&x.studentnumber,x.studentname,&x.maths);While(x.studentnumber!=0){L.elemstudent[i]=x;scanf(“%d%s%f”,&x.studentnumber,x.studentname,&x.maths);i++;}L.studentlength=i;}returnok;}思考刚才是一次插入一个数据的算法,能否写一个算法一次读多个数223.数据的打印
数据打印函数设计:应该设计三个函数,分别打印学生,教师,行政人员Voidstudentdataprint(sqlist&L){inti;for(i=0;i<L.studentlength;i++)printf(“%d%s%f”,L.elemstudent[i].studentnumber,L.elemstudent[i].studentname,L.elemstudent[i].maths);printf(“\n”);}//学生数据打印程序结束
3.数据的打印数据打印函数设计:应该设计三个函数,分别打234.其它算法设计其他函数设计。查找,排序函数设计等
4.其它算法设计其他函数设计。查找,排序函数设计等24主函数设计主函数设计Voidmain(){sqlistdatastructuremanger;//管理变量Structstudentx1;Structteac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开关插座购销合同协议
- 开发项目土地入股合同协议
- 店面升级合同协议书模板
- 废铁料买卖合同协议
- 建筑工地做饭合同协议
- 专业分包三方协议合同
- 专职会计劳动合同协议
- 银行从业资格证考试学习计划制定试题及答案
- 银行从业资格证考试适应技巧试题及答案
- 畜牧师职称考试题库与试题答案解析
- 公立医院成本核算指导手册
- 第16课《有为有不为》公开课一等奖创新教学设计
- 小米创业思考(商业思考)
- 国开(甘肃)2024年春《地域文化(专)》形考任务1-4终考答案
- 往日时光(原版)钢琴双手简谱_钢琴谱_钢琴简谱
- RCS-985说明书V300
- Mayo肘关节功能评分
- 2014—2015—2《刑法总论》教学大纲(修正版)
- 《焦虑症基础知识》PPT课件.ppt
- 发电厂电气一次部分设计—2×300+2×200MW
- 基于深度学习的鸟类识别系统的设计与实现
评论
0/150
提交评论