数据结构设计和评价.ppt

上传人:汽*** 文档编号:571029927 上传时间:2024-08-08 格式:PPT 页数:15 大小:385.34KB
返回 下载 相关 举报
数据结构设计和评价.ppt_第1页
第1页 / 共15页
数据结构设计和评价.ppt_第2页
第2页 / 共15页
数据结构设计和评价.ppt_第3页
第3页 / 共15页
数据结构设计和评价.ppt_第4页
第4页 / 共15页
数据结构设计和评价.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据结构设计和评价.ppt》由会员分享,可在线阅读,更多相关《数据结构设计和评价.ppt(15页珍藏版)》请在金锄头文库上搜索。

1、数据结构设计和评价案例分析(一)案例分析(一) 数据结构设计案例一:数据结构设计案例一:v问题:我校拟开发在校人员信息管理系统,问题:我校拟开发在校人员信息管理系统,主要管理学生成绩信息,老师工资课程信息,主要管理学生成绩信息,老师工资课程信息,行政人员工资信息等行政人员工资信息等,请设计合适的数据结请设计合适的数据结构构,开发出相应的信息管理系统开发出相应的信息管理系统该问题的数据结构设计要点A. 数据节点设计学生节点:学生节点:struct student Int studentnumber; char studentname10; float maths; ; 教师节点:教师节点:str

2、uct teacher int teachernumber; Char teachername10; char subjectname10; float salary; ; 行政人员节点:行政人员节点: Struct carder Int cardernumber; Char cardername20; Char carderposition10; Float salary;B.数据组织和数据结构管理v将学生,教师,行政人员数据分别存放在三个数组将学生,教师,行政人员数据分别存放在三个数组中中.v用一个结构体类型管理数组的首地址和每个数组的用一个结构体类型管理数组的首地址和每个数组的实际长度实

3、际长度vTypedef struct student *elemstudent; /学生数组首地址学生数组首地址 teacher *elemteacher; / 教师数组首地址教师数组首地址 carder *elemcarder; / 行政人员数组首地址行政人员数组首地址 int studentlength;/ 学生数组实际长度学生数组实际长度 int teacherlength;/ 教师数组实际长度教师数组实际长度 int carderlength; /行政人员数组实际长行政人员数组实际长度度 int maxsize; /数组最大值数组最大值v sqlist;/ 此为管理类型此为管理类型vB

4、.数据组织和数据结构管理 将学生,教师,行政人员数据分别存放在三个数组中将学生,教师,行政人员数据分别存放在三个数组中.用一个结构体类型管理数组的首地址和每个数组的实际用一个结构体类型管理数组的首地址和每个数组的实际Typedef struct student *elemstudent;/学生数组首地址学生数组首地址 teacher *elemteacher;/ 教师数组首地址教师数组首地址 carder *elemcarder;/ 行政人员数组首地址行政人员数组首地址 int studentlength;/ 学生数组实际长度学生数组实际长度 int teacherlength;/ 教师数组实

5、际长度教师数组实际长度 int carderlength; /行政人员数组实际长度行政人员数组实际长度 int maxsize;/数组最大值数组最大值 sqlist;/ 此为管理类型此为管理类型C、主题算法设计、主题算法设计v主要算法为:主要算法为:1.生成空顺序表算法生成空顺序表算法 STATUS initlist_sq(sqlist & L) L.elemstudent=(student *)malloc(100*sizeof(student); L.elemteacher=(teacher *)malloc(100*sizeof(teacher); L.elemcarder=(carde

6、r *)malloc(100*sizeof(carder); L.studentlength+; L.teacherlength+; L.carderlength+; 有了空表,如何向表中加入数据呢?思考此处的问题与书有何异同?有了空表,如何向表中加入数据呢?思考此处的问题与书有何异同? 2.数据数据 生成算法生成算法Status student_ insert(sqlist & L,int I,student e) 此处代码如何写此处代码如何写 思考v刚才是一次插入一个数据的算法,能否写一个算法一次读多个数据vStatus student_read(sqlist&L)student x; i

7、nt i=0;scanf(“%d%s%f”,&x.studentnumber,x.studentname,&x.maths);While(x.studentnumber!=0) L.elemstudenti=x; scanf(“%d%s%f”,&x.studentnumber,x.studentname,&x.maths); i+;L.studentlength=i; return ok; 3.数据的打印v 数据打印函数设计:数据打印函数设计: 应该设计三个函数,分别打印学生,教师,行政人应该设计三个函数,分别打印学生,教师,行政人员员vVoid studentdataprint(sqlist

8、&L)v int i;v for(i=0;iL.studentlength;i+)v printf(“%d%s%f”,L.elemstudenti.studentnumber, v L.elemstudenti.studentname,v L.elemstudenti.maths);v printf(“n”);v /学生数据打印程序结束v 4.其它算法设计v其他函数设计。查找,排序函数设计等其他函数设计。查找,排序函数设计等 主函数设计v主函数设计主函数设计v Void main()v sqlist datastructuremanger;/管理变量管理变量v Struct student x

9、1;v Struct teacher x2;v Struct carder x3;v initlist_sq(datastrcturemanger);/生成空顺序表生成空顺序表v/从键盘读入数据从键盘读入数据vPrintf(“n 请读入学生数据请读入学生数据”);vstudent_read(datastruremanger);/学生数据读取v/思考,教师和行政人员的数据如何读?思考,教师和行政人员的数据如何读?v 能从文件读入吗?能从文件读入吗?v/打印函数调用打印函数调用vstudentdataprint(datastructuremanger);/学生数据打印v/其他函数调用其他函数调用数

10、据结构评价vA. 算法设计的一致性算法设计的一致性。算法中的形参应有数据结构的理者,算法描述应简单,算法中的形参应有数据结构的理者,算法描述应简单,有效,各算法基本上风格一致。有效,各算法基本上风格一致。有些函数用了管理变量,有些函数不用,这就是风格的有些函数用了管理变量,有些函数不用,这就是风格的不一致。此外还要注意函数名,标始符的规范一致不一致。此外还要注意函数名,标始符的规范一致性性vB.数据组织和管理效率数据组织和管理效率。v在组织数据时是采用线性表还是树或图,要在组织数据时是采用线性表还是树或图,要具体问题具体分析。比如要设计一个股份制具体问题具体分析。比如要设计一个股份制家族成员的

11、财务信息管理系统,重点是管理家族成员的财务信息管理系统,重点是管理他们的财务,这时就不能盲目的采用树去组他们的财务,这时就不能盲目的采用树去组织每个成员的数据。亲兄弟明算帐,没必要织每个成员的数据。亲兄弟明算帐,没必要考虑血缘辈分关系。但要你设计一个家谱管考虑血缘辈分关系。但要你设计一个家谱管理系统时,用树结构是最合适的选择理系统时,用树结构是最合适的选择 vC.算法选择算法选择v 在设计部分算法时,有很多方法可供在设计部分算法时,有很多方法可供选择,比如那么多的查找和排序算法,我们选择,比如那么多的查找和排序算法,我们究竟选择那种算法?原则是在兼顾算法复杂究竟选择那种算法?原则是在兼顾算法复杂性的情况下,选择那些易读性强的算法。除性的情况下,选择那些易读性强的算法。除非特殊需要,不能只顾时间复杂性非特殊需要,不能只顾时间复杂性思考题和作业v1.思考题:如果要管理元素周期表,该如何设计相应的数据结构呢?v 2.作业:完成今天所示案例的程序设计主题部分:要求有 数据输入,数据打印,数据查找,排序等功能 本案例的完整程序

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号