




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1C综合应用实例综合应用实例第1页/共97页第2页/共97页第3页/共97页第4页/共97页第5页/共97页第6页/共97页第7页/共97页第8页/共97页第9页/共97页第10页/共97页第11页/共97页第12页/共97页分析:分析: 由于成绩管理是由多名学生构成的,所以需要定义由于成绩管理是由多名学生构成的,所以需要定义学生类学生类; 另外,由多个学生,形成一个班或年级,所以还需要定义一个另外,由多个学生,形成一个班或年级,所以还需要定义一个班级(年级)类班级(年级)类第13页/共97页第14页/共97页第15页/共97页第16页/共97页第17页/共97页第18页/共97页第19
2、页/共97页第20页/共97页第21页/共97页3 采用面向对象的程序设计方法,采用面向对象的程序设计方法,用用链表链表(定义(定义链表链表类),类),DOS界面界面第22页/共97页data next头指针指向下一个节点的指针附加头结点结点尾指针第23页/共97页data next问题问题(有关链表的操作有关链表的操作):n 如何定义如何定义(申明申明)一个链表呢一个链表呢?n 如何形成一个链表呢如何形成一个链表呢?n 在链表中指定的位置处在链表中指定的位置处,如何插入一个节点呢如何插入一个节点呢?n 在链表中如何删除一个节点呢在链表中如何删除一个节点呢?n 一个链表中一个链表中,有几个数据
3、元素呢有几个数据元素呢?第24页/共97页定义链表: struct ListNode *first 该链表所有的操作,全部是从该链表所有的操作,全部是从“first”开始,开始, 并且,该指针并且,该指针永远永远指向第一个位置指向第一个位置。第25页/共97页First(2)在空链表的基础上不断的插入节点,从而形成链表。)在空链表的基础上不断的插入节点,从而形成链表。 一般分为:在前插入、在后插入两种一般分为:在前插入、在后插入两种(1)首先形成一个空链表:)首先形成一个空链表:NULL(0)第26页/共97页first(a) 建空表建空表第27页/共97页建立单链表建立单链表头插法建立单链表
4、图示头插法建立单链表图示 first(a) 建空表建空表c1ss 指向新申请的结点指向新申请的结点sdatac1(b) 申请新结点并赋值申请新结点并赋值firstlast(c) 插入第一个结点插入第一个结点 last=slast=sc1执行的语句组为执行的语句组为:snextfirstnext;firstnexts;ci1firstc2c1cis(d) 插入第插入第i个元素个元素头插法头插法第28页/共97页尾插法建表尾插法建表 尾插法建表图示尾插法建表图示 c1ss 指向新申请的结点空间指向新申请的结点空间sdatac1(b) 申请新结点并赋值申请新结点并赋值firstL(a ) 建空表建空
5、表lastfs(c) 插入第一个结点插入第一个结点c1lastlasts;last指向链表的结尾指向链表的结尾c1firstc2last nexts;(d) 插入第二个结点插入第二个结点sr将新建的节点插入到链表的最后将新建的节点插入到链表的最后尾指针尾指针第29页/共97页执行的语句组为执行的语句组为:snextfirstnext;firstnexts;ci1firstc2c1cis 插入第插入第i个元素个元素第30页/共97页第31页/共97页第32页/共97页La1ai1aianpre(a) 寻找第寻找第 i1 个结点个结点es(b) 申请新的结点申请新的结点preLa1ai1aiane
6、s 与与ai连链连链: :snextprenextai-1与与ai断断链链, ,插入插入 e:prenexts;(c) 插入插入第33页/共97页pLa1ai1aianeq 与与ai连链连链: :snextprenextai-1与与ai断断链链, ,插入插入 e:prenexts;(c) 插入插入第34页/共97页第35页/共97页La0ai1aian( ) p第36页/共97页分析分析1数据成员数据成员: 两个指向结点的指针两个指向结点的指针:头指针和尾指针头指针和尾指针 2成员函数成员函数: (1) 构造函数构造函数 /创建并形成一个初始链表创建并形成一个初始链表 (2)析构函数析构函数
7、/删除构造函数所创建的链表删除构造函数所创建的链表 (3)插入元素函数插入元素函数 /在表的第在表的第i 个位置处个位置处,插入数据或在表尾插入元素插入数据或在表尾插入元素 (4)删除元素函数删除元素函数 /删除表中数值为删除表中数值为x的元素的元素 (5)查找元素查找元素 /在表中查找数据为在表中查找数据为x的元素在表中的位置的元素在表中的位置 (6)输出链表输出链表 /从头到尾输出表中的所有的元素从头到尾输出表中的所有的元素 (7)判定链表是否为空判定链表是否为空 /为了进行删除进行的一种判定为了进行删除进行的一种判定 (8) 将链表设置为一个空表将链表设置为一个空表 / (9)计算链表的
8、长度计算链表的长度 /统计链表中元素个数统计链表中元素个数 (10) 将链表元素值写到文件中将链表元素值写到文件中 (11) 将文件中的数据读到链表中将文件中的数据读到链表中 第37页/共97页class LinkList /链表类链表类 private: ListNode *first,*last; /链表的表头指针和尾指针链表的表头指针和尾指针 public: LinkList ( ) LinkList ( ) ; /析构函数析构函数 ListNode *Insert ( int value, int i ); Listnode *insert(intvalue) int Remove (
9、int value ); ListNode *FindIndex ( int value ); void PrintList( ); /遍历单链表遍历单链表 void MakeEmpty ( ); /将链表置为空表将链表置为空表 int Length ( ) const; /计算链表的长度计算链表的长度 int NotNull ( ) ; /判断是否是空表判断是否是空表 void create();单链表的类定义单链表的类定义第38页/共97页第39页/共97页第40页/共97页(一一)数据定义数据定义(类的数据成员说明类的数据成员说明): 一个指向学生结构的头指针一个指向学生结构的头指针;
10、(注意注意:该指针就是链表的头该指针就是链表的头)struct node int Class; /班级 int num; /学号 char name8; /姓名 float kc6; /各课程成绩(6门) float ave; /平均成绩 int order; /名次 node *next; /指针;class cj private: struct node *head; public: 待定义的各功能函数待定义的各功能函数 结点定结点定义义类定义类定义第41页/共97页第42页/共97页第43页/共97页第44页/共97页第45页/共97页第46页/共97页class cj private:
11、 struct node *head; public: cj(); /1:构造函数构造函数,建立一个只有建立一个只有附加头结点附加头结点的的空链表空链表 input(); / 2:向链表中添加学生的信息向链表中添加学生的信息(在表的在表的尾上追加尾上追加) appen(node *p); /3.追加结点追加结点: 在链表尾上链上一个结点在链表尾上链上一个结点(p所指的结点所指的结点) void rf(char *f); /4.读文件,形成链表读文件,形成链表 node *post(int num); /5.定位定位: 提供学号提供学号, 返回指向该结点的一个指针返回指向该结点的一个指针) vo
12、id lookup(int num); / 6.查询查询 提供学号提供学号, 查找学生并输出学生的信息查找学生并输出学生的信息 void Delete(int num); /7.删除删除: 提供学号提供学号, 删除学号是该值的学生删除学号是该值的学生 void modify(int num); /8.修改成绩修改成绩: 提供学号提供学号, 修改修改(重新输入重新输入)学生信息学生信息 void statistic() ; /9.统计函数统计函数,统计平均成绩统计平均成绩 void sort(cj &h); /10.排序排序(降序降序): 按平均成绩排序按平均成绩排序,形成排序的链表形成
13、排序的链表h void Insert(cj &h,node *p); /在有序表在有序表h中结点后仍有序中结点后仍有序(排序的一个辅助函数排序的一个辅助函数: void output(); /11: 输出链表中各结点值输出链表中各结点值 void wf(char *f); /12. 由链表由链表,形成文件形成文件 cj(); / 13(1):析构函数析构函数,程序运行结束时程序运行结束时,删除链表中的各结点删除链表中的各结点, void print1(); /13(2): 输出一个同学的成绩输出一个同学的成绩(标题标题) void print2(node *p); /13(3) 输出一
14、个同学的成绩输出一个同学的成绩 node *gethead()return head; /13(4)获取头指针获取头指针 int Length ( ) const; /13(5) 计算链表的长度计算链表的长度;第47页/共97页第48页/共97页第49页/共97页第50页/共97页第51页/共97页第52页/共97页第53页/共97页第54页/共97页第55页/共97页第56页/共97页第57页/共97页第58页/共97页第59页/共97页第60页/共97页第61页/共97页第62页/共97页第63页/共97页第64页/共97页 case 5:A.output();break; case 6:
15、A.statistic();break; case 7: cout学生人数为学生人数为:()endl; break; case 8:A.sort(B); B.output();break; case 9:A.rf(abc);break; case 10:A.wf(abc);break; default:break; ;cout按任意键继续操作按任意键继续操作!endl;getchar();end:; cout谢谢您使用本系统谢谢您使用本系统!endl; 第65页/共97页第66页/共97页例如:如下的问题例如:如下的问题 已知一个正三角形已知一个正三角形ABC,其内分点,其内分点A1、B1、C
16、1,使得,使得2AC1=C1B、2BA1=A1C、2CB1=B1A,连接,连接CC1、BB1、AA1,三条直线分别相交于,三条直线分别相交于A2、B2、C2(见图(见图1)。)。要求编写程序验证要求编写程序验证 : 三角形三角形A2B2C2面积是三角形面积是三角形 ABC面积的七分之一面积的七分之一. A C1 B2 B1 A2 C2 B A1 C 第67页/共97页运用逻辑思维分析程序设计:运用逻辑思维分析程序设计: 设正三角形设正三角形ABC的边长为的边长为a,则本题目就是求两个三角形的面积,已知,则本题目就是求两个三角形的面积,已知三角形的边长求面积,对于三角形三角形的边长求面积,对于三
17、角形ABC是很容易的,但对于三角形是很容易的,但对于三角形A2B2C2的面积的求解却比较麻烦。的面积的求解却比较麻烦。(如何求呢如何求呢?)对于该问题的逻辑思维及其分析过程:对于该问题的逻辑思维及其分析过程:(1) 三角形三角形A2B2C2的面积的面积(2)求边长(求边长(A2B2、B2C2、C2A2)(3)求交点坐标(求交点坐标(A2、B2、C2)(4)求直线方程(求直线方程(AA1、BB1、CC1)(5)求内分点坐标(求内分点坐标(A1、B1、C1)(6)已知边长已知边长a,确定三角形,确定三角形ABC的顶点坐标(的顶点坐标(A、B、C) A C1 B2 B1 A2 C2 B A1 C 分
18、析分析实实现现第68页/共97页第69页/共97页第70页/共97页1、已知一个三角形、已知一个三角形t,求面积求面积mj;2、已知两顶点、已知两顶点a,b, 求内分点求内分点 (在这里两段的比值为在这里两段的比值为1:2);3、已知两顶点、已知两顶点p1,p2,求直线方程求直线方程line4、已知两直线、已知两直线l1,l2,求交点坐标,求交点坐标5、已知两点、已知两点P1,P2,求距离,求距离第71页/共97页三角形结构(三边形成三角形)三角形结构(三边形成三角形)(a,b,c)struc T double a; double b; double c;直线方程结构直线方程结构:ax+by+
19、c=0struc L double a; double b; double c;点结构点结构:(x,y) struc P double x; double y; ;直线方程结构直线方程结构:y=kx+bstruc L double k; double b;或者或者第72页/共97页第73页/共97页第74页/共97页第75页/共97页第76页/共97页第77页/共97页 A C1 B2 B1 A2 C2 B A1 C 第78页/共97页第79页/共97页注意:注意:每个类有什么数据成员;每个类有什么数据成员;每个类有什么成员函数,都具有什么功能?每个类有什么成员函数,都具有什么功能? 第80页/共97页 class P private: double x; double y; public: / 构造函数,用构造函数,用a,b提供值,形成点提供值,形成点 P(double a,double b); /构造函数,由两直线构造函数,由两直线a,b形成交点形成交点 P(line a,line b); /构造函数,由两顶点构造函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 印刷辅助材料批发考核试卷
- 硕士视角的职业之路
- 郎溪县2025届数学四下期末教学质量检测试题含解析
- 民办合肥财经职业学院《建筑与安装工程计量计价》2023-2024学年第二学期期末试卷
- 铜仁学院《消化与营养》2023-2024学年第一学期期末试卷
- 平顶山职业技术学院《资源分析与环境修复技术》2023-2024学年第二学期期末试卷
- 四川省蓉城名校2025届高三5月定时练习生物试题试卷含解析
- 四川应用技术职业学院《土木工程施工课程设计》2023-2024学年第二学期期末试卷
- 四川省攀枝花市七中2024-2025学年高考历史试题3月月考模拟试题含解析
- 井陉矿区2024-2025学年数学四下期末调研试题含解析
- 故宫博物院笔试试题
- 思政教育融入小学语文教学的策略研究
- 供方准入申请表
- DDI领导力-高绩效辅导课件
- 《烟酒有危害》公开课教案
- 高三生物一轮复习课件:生物变异类型的判断与实验探究
- 先简支后连续T梁桥设计计算书
- 机械制造及其自动化专业毕业设计(1)解读
- a10c疣猪飞行控制器中文说明书
- (完整word版)桩位偏差验收记录表
- 电流滞环跟踪PWM(CHBPWM)控制技术的仿真
评论
0/150
提交评论