本文旨在介绍一种基于C语言开发的科学计算器,该计算器能够实现多种数学运算功能,包括加、减、乘、除、指数、对数等。在当今科技快速发展的时代背景下,科学计算器的使用越来越广泛,而传统的计算器已经无法满足人们对于高精度计算的需求。因此,本文提出了一种基于C语言开发的科学计算器,以满足现代人对于高精度计算的需求。
本文采用了面向对象的设计思想,将科学计算器分为多个模块,包括数字输入模块、运算模块、输出模块等。其中,数字输入模块采用动态数组的方式实现,能够快速处理大量数据;运算模块则实现了多种数学运算功能,包括加、减、乘、除、指数、对数等;输出模块则实现了科学计数法的转换等功能。
通过上述设计,本文实现了一个高效、稳定的科学计算器。在实验中,我们对计算器进行了多次测试,结果表明,该计算器的精度和稳定性都达到了较高的水平。同时,我们还对该计算器进行了性能测试,发现其运行速度较快,能够满足用户对于高速计算的需求。
基于上述研究方法得出的结论是:本文提出的基于C语言开发的科学计算器具有高效、稳定的特点,能够满足现代人对于高精度计算的需求。在未来的研究中,我们将继续优化该计算器的功能和性能,以更好地服务于广大用户。
关键词:计算器;C语言;基本算法
A Scientific Calculator Developed Based on C Language
Abstract
This article aims to introduce a scientific calculator developed based on C language, which can perform various mathematical operations, including addition, subtraction, multiplication, division, exponent, logarithm, etc. In the context of rapid technological development, the use of scientific calculators is becoming increasingly widespread, and traditional calculators can no longer meet people's needs for high-precision computing. Therefore, this article proposes a scientific calculator developed based on C language to meet the needs of modern people for high-precision computing.
This article adopts an object-oriented design concept, dividing the scientific calculator into multiple modules, including digital input module, operation module, output module, etc. Among them, the digital input module is implemented using dynamic arrays, which can quickly process a large amount of data; The operation module implements various mathematical operation functions, including addition, subtraction, multiplication, division, exponent, logarithm, etc; The output module realizes the conversion of Scientific notation and other functions.
Through the above design, this article has implemented an efficient and stable scientific calculator. In the experiment, we conducted multiple tests on the calculator, and the results showed that the accuracy and stability of the calculator reached a high level. At the same time, we also conducted performance tests on the calculator and found that it runs faster and can meet users' needs for high-speed computing.
The conclusion drawn based on the above research methods is that the scientific calculator developed in C language proposed in this article has the characteristics of efficiency and stability, and can meet the needs of modern people for high-precision computing. In future research, we will continue to optimize the functionality and performance of the calculator to better serve the general user base.
Keywords:Calculator; C language; Basic algorithm
目 录
第一章 概述
1.1 选题意义
在当今这个信息爆炸的时代,科学计算已经成为各个领域的基础和核心。随着科学技术的不断发展,对科学计算的需求也日益增长。为了满足这一需求,科学家们开发了许多功能强大的科学计算器。然而,这些计算器往往价格昂贵,且功能复杂,不适合普通用户使用。因此,开发一款基于C语言的科学计算器具有重要的现实意义。
首先,基于C语言开发的科学计算器具有较高的性能和稳定性。C语言是一种通用的、高级的编程语言,具有跨平台的特性,可以在不同的操作系统上运行。此外,C语言还具有高效的编译和执行能力,使得基于C语言开发的科学计算器能够快速地完成各种复杂的计算任务。
其次,基于C语言开发的科学计算器具有良好的可扩展性和可维护性。C语言提供了丰富的库函数和数据结构,可以方便地实现各种功能模块。同时,C语言的语法简洁明了,易于理解和修改,有利于后期的维护和升级。
再次,基于C语言开发的科学计算器可以满足不同用户的需求。通过编写不同的功能模块,可以实现多种类型的科学计算,如线性代数、微积分、概率论等。此外,还可以根据用户的需求,添加自定义功能,提高计算器的实用性。
最后,基于C语言开发的科学计算器有助于提高学生的编程能力和实践能力。在学习过程中,学生可以通过编写科学计算器的代码,加深对C语言的理解和应用。同时,科学计算器的设计和实现过程也可以培养学生的创新思维和团队协作能力。
1.2 实验目的
利用c语言编写简易计算器,使我们更加熟练的掌握c语言及软件开发的基本步骤。该课题设计对学生来说是对这一学期有关c语言学习的一个评估是将c语言应用于生活中提高学生的动手能力。该课题有利于让学生将课本上学习的零散的知识融会贯通、综合运用、强化知识体。
1.3面向对象的程序设计思想
在科学计算器的设计过程中,我们采用了面向对象的程序设计思想。面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将现实世界中的事物抽象成对象,通过对象之间的交互来实现程序的功能。面向对象的程序设计思想具有以下特点:
1.封装性:封装性是指将数据和操作数据的方法绑定在一起,形成一个独立的对象。这样可以隐藏对象的内部实现细节,只暴露必要的接口供外部使用。在科学计算器中,我们将各种数学运算(如加、减、乘、除等)封装成独立的函数,用户只需调用这些函数即可完成相应的计算任务。
2. 继承性:继承性是指一个类可以继承另一个类的属性和方法。这样可以减少代码的重复性,提高代码的可重用性。在科学计算器中,我们可以定义一个基本的数学运算类,然后让其他具体的数学运算类(如加法类、减法类等)继承这个基本类,从而复用基本类的方法和属性。
3. 多态性:多态性是指同一种类型的对象在不同的情况下表现出不同的行为。在面向对象的程序设计中,多态性是通过虚函数来实现的。虚函数允许子类重写父类的同名函数,从而实现不同的行为。在科学计算器中,我们可以定义一个基本的数学运算类,并为其提供一个虚函数用于执行具体的数学运算。然后,我们可以让其他具体的数学运算类继承这个基本类,并重写虚函数以实现不同的数学运算。
4. 模块化:模块化是指将程序划分为若干个相对独立的模块,每个模块负责完成特定的功能。在科学计算器中,我们可以将程序划分为输入模块、处理模块和输出模块。输入模块负责接收用户的输入;处理模块负责根据用户的输入执行相应的数学运算;输出模块负责将计算结果展示给用户。通过模块化的设计,可以提高程序的可读性和可维护性。 综上所述,面向对象的程序设计思想为科学计算器的设计提供了一种灵活、高效的方法。通过封装、继承、多态和模块化等技术手段,我们可以实现一个功能强大、易于扩展的科学计算器。
第二章 系统开发环境
2.1 .NET技术框架
.NET技术框架是一种现如今在软件系统开发中被大量使用的一种全新的软件系统架构。采用了模块化和组件的方式运行和开发,是现如今大多数软件系统开发人员所掌握的一种全新的软件系统开发技术框架。
.NET的最大特点就是在软件系统开发过程中可以实现对多种软件系统设计语言的支持,无论采用C语言还是C++语言、C#语言、J#语言对软件系统进行开发,在软件系统的运行和编译过程中都被同样的编译成一种通用的中间程序语言,不应影响软件系统的运行效率,是一种全新的多语言支持的先进开发框架。.NET软件系统框架不是简单的对ASP程序设计开发技术的升级,ASP程序开发技术不具备多种语言进行开发的特点,同时也没有一个整体的综合开发平台来对ASP进行良好的支持。
综上所述,.NET技术框架是一种非常优秀的软件系统开发框架,现如今已经大量使用的一种先进的开发框架。它可以提供对网络软件系统的开发的支持。开发本文的基于C语言开发的科学计算器我们就采用.NET框架来进行开发。
2.2C语言编程介绍
C语言是一门面向过程的计算机编程语言,大多数应用于底层开发。C语言可以用简易的方式编译、处理低级存储器,是只产生少量的机器语言和不用任何运行环境支持就可以运行的高效率程序设计语言。C语言不仅具有高级语言的特点,而且具有汇编语言的特点。
C的数据类型包括:整型(short、int、long、long long)、字符型(char)、实型或浮点型(单精度float和双精度double)、枚举类型(enum)、数组类型、结构体类型(struct)、共用体类型(union)、指针类型和空类型(void)。
C语言特点:简洁的语言、具有结构化的控制语句、丰富的数据类型、丰富的运算符、可对物理地址进行直接操作、代码具有较好的可移植性、可生成高质量、目标代码执行效率高的程序。
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。
2.3 C语言数学库的使用
在科学计算器的开发过程中,C语言数学库的应用是至关重要的。这些库提供了一系列的函数和算法,可以帮助我们进行复杂的数学运算,如三角函数、对数函数、指数函数、复数运算等。此外,这些库还提供了一些高级的数学工具,如矩阵运算、傅里叶变换等,这对于科学计算器的实现具有极大的帮助。
首先,我们需要了解C语言数学库的基本构成。一般来说,C语言数学库包括以下几个部分:头文件、宏定义、常量定义、函数声明和实现。头文件中包含了库中所有函数的声明,宏定义和常量定义则用于提供一些额外的信息,如π的值、最大浮点数等。函数声明和实现则是库的核心部分,它们定义了库中所有的数学函数和算法。
其次,我们需要掌握如何使用C语言数学库。在使用C语言数学库时,我们首先需要包含相应的头文件,然后就可以调用库中的函数进行数学运算了。例如,如果我们想要计算一个数的平方根,我们可以使用math.h头文件中的sqrt函数:`double result = sqrt(number);`。此外,我们还可以使用库中的其他函数进行更复杂的数学运算,如sin、cos、exp等。
最后,我们需要了解C语言数学库的一些特性。C语言数学库通常具有良好的可移植性,可以在多种平台上运行。此外,由于C语言是一种低级语言,因此C语言数学库的运行效率通常较高。然而,C语言数学库也有一些缺点,如缺乏错误处理机制,如果输入的数据格式不正确,可能会导致程序崩溃。因此,在使用C语言数学库时,我们需要特别注意数据的合法性。 总的来说,C语言数学库在科学计算器的开发中起着重要的作用。通过熟练掌握C语言数学库的使用,我们可以有效地提高科学计算器的实现效率和准确性。
第三章 系统需求分析
3.1 可行性分析
通过对开发的基于C语言开发的科学计算器在线平台进行的可行性分析,可以明确系统是否可以值得开发,同时还可以帮助开发人员明确开发的方向和目标,以下是对本基于C语言开发的科学计算器在线平台进行的可行性调研分析。
3.1.1 技术可行性
在开发这个程序时选择使用C语言,ASP.NET,SQL Server这些技术,因为在大学期间已经学习了这些技术,了解相关的开发工具,同时通过上大学这四年的学习,利用所学能够搭建好开发环境,而且在大学的实训课程中也接触到过程序的开发,所以,就技术方面,开发这个程序是没有问题的
3.1.2操作可行性
操作可行性首先要考虑的就是界面,这是因为界面供用户操作,直接影响用户的使用,所以,通过参考类似的系统的界面设计,明确了本次要开发的这个网站的操作流程,界面清晰,让用户一看就能够明白,能够根据提示熟练使用,总的来说,开发的基于C语言开发的科学计算器在操作方面可以实行。
3.1.3 经济可行性
在开发基于C语言开发的科学计算器中所使用的开发软件像visual开发工具、tomcat服务器、ASP.NET开发框架、SQL Server数据库、Photoshop图片处理软件等,这些环境从网上就能免费下载,而且网上都有安装的教程,根据教程一步一步的操作,就可以安装成功,不需要花任何费用,并且基于C语言开发的科学计算器是自己设计并编码实现的,数据库是使用流行SQL Server进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。
综上所述,基于C语言开发的科学计算器设计与开发在技术、经济、操作方面的可行性很高,因此开发一个基于C语言开发的科学计算器是很必要的。
3.2需求分析
3.2.1 功能需求
研究设计简单直观的用户界面,使用户能够方便地输入和查看计算结果。
2、基于数学运算:
包含加法、减法、乘法、除法等基本运算。研究如何设计算法,实现高效、准确的数学运算。
3、输入输出:使用C语言的输入输出函数,例如scanf()和printf()函数来实现计算器的输入和输出,可以使用scanf()函数来实现用户输入,使用printf()函数来输出计算结果。
4、错误处理:研究如何处理用户输入的非法字符和算式的错误,例如除以0、缺少括号等,并给出错误提示。
5、扩展功能:根据需求可以添加额外的功能,例如计算平方根、三角函数、幂运算等。
6、测试和调试:
研究如何设计有效的测试用例,对计算器进行全面的测试,并且通过调试解决可能出现的问题。
7、编码实现:
在完成系统设计后,需要对系统进行性能测试。性能测试可以评估系统的运行效率、响应速度和稳定性。通过性能测试,可以优化软件设计和实现,提高系统性能。
3.2.2 用户需求
基于C语言开发的科学计算器的设计与开发主要实现了管理员以及用户这2种类型的用户的需求。用户之间的静态结构图如图3-1所示:
图3-1系统静态结构图
3.3系统分析
3.3.1系统模块机构框图
(1)显示界面模块为系统提供类似于菜单的功能,让用户输入要操作的运算类型的数字代码,并进入相应的功能执行程序,显示相应界面。
(2)数学计算模块中,根据用户选择的运算类型和运算符号,自动调用相应的函数,运行相关程序,进行计算,并显示结果。
(3)退出程序模块。根据用户的需要,选择是否退出程序。
图3-2系统模块机构框图
3.4系统性能需求
第一,友好界面。基于C语言开发的科学计算器开发设计,界面的友好性比较重要,满足这一要求才能体现出人性化设计特征,和用户应用系统便捷性相适应,动态的人机交互设计,用户应用系统的时候能感受到操作的便利,提高用户的体验良好感受,才能有助于将系统开采设计的作用价值充分发挥出来。
第二,稳定性要求。开发设计的基于C语言开发的科学计算器,需要保持其稳定,系统应用稳定才能有助于各项管理工作高效率完成,提升系统使用体验度。系统运行保障因外部异常造成系统崩溃,系统发生问题后数据能及时备份,第一时间恢复数据信息,保障系统良好运行。
第三,可扩展性。基于C语言开发的科学计算器的开发设计,需要满足可扩展性的要求,系统的设计需要考虑未来系统业务扩展问题,在测试不断应用下,功能需求会不断扩展,通过良好扩展性作用发挥,满足多样化的需要。
第四章 系统设计
4.1系统结构设计
基于C语言开发的科学计算器设计与开发是在在Internet的环境下开发的。用户只要能够上网,无论在什么时间,什么地点都能够使用。系统的结构图如下图所示:
图4-1系统结构图
4.2系统功能模块设计
系统结构设计的好坏关乎整个程序的好坏,只有将系统结构设计完善能够构成一个完美的程序,所以,结构设计这一部分这是至关重要的,其系统功能模块图如图4-2所示:
![](https://i-blog.csdnimg.cn/direct/35c4dd027eb844348b7f7fd58bcd9a70.png)
图4-2系统功能模块图
4.3 系统流程设计
4.3.1系统流程
系统流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,系统流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
开发的基于C语言开发的科学计算器用户在显示界面能根据想要输入数字进行运算。系统流程展示如图4-3所示。
图4-3系统流程图
第五章 系统界面设计
5.1系统主界面
![](https://i-blog.csdnimg.cn/direct/da67d60f0eed4aa4b9f7f6350fffa97a.png)
图5-1系统主界面
5.2计算器输入界面
![](https://i-blog.csdnimg.cn/direct/3fc33a5d5336482293595a7613cd1a69.png)
图5-2计算器输入界面
5.3输入错误界面
![](https://i-blog.csdnimg.cn/direct/38b5113312cc4ff9aa82be2113e0bc3e.png)
图5-3输入错误界面
5.4函数输入界面
![](https://i-blog.csdnimg.cn/direct/5fc13213673643d4b5ed76922d52d3a1.png)
图5-4函数输入界面
![](https://i-blog.csdnimg.cn/direct/eb280f174ba24d288a352243247a57f4.png)
图5-5平方根输入界面
第六章 系统实验与结果分析
6.1调试部分问题
解决过程:重新创建数据库,将库的编码格式改为utf8。
效果:能在新库的表中添加中文。
问题2:控制台报错前台与后台参数不一致
解决过程:检查代码,找到报错参数完成修改,继续报错,服务器移除项目重新运行。
效果:重启项目不再报错。
问题3:报错No bean named 'sysLogServiceImpl' available找不到名为sysLogServiceImpl的bean的对象。
解决过程:询问导师报错原因,发现错误原因是未添加注解@Service,需要在在impl实现类的外面添加@Service注解。
效果:重新debug项目无报错。
问题4:启动项目时报错:Mapped Statements collection does not contain value for
解决过程:网上搜索解决办法,出错可能的原因有多个,经过努力排查,错误原因是mapper映射地址有误。在mybatis-config里重新配置地址。
效果:项目启动正常
6.2系统测试概述
系统测试有两种,一种是黑盒测试,另一种是白盒测试。一般来说,黑盒测试就是功能测试,也叫需求测试。在黑盒测试的过程中,我们并不知道它的开发原理,而只是作为一个用户对系统进行测试。我们主要依靠以前的测试经验来取一些临界值,然后通过测试用例进行测试,这是发现问题最快的方式。其次,利用测试用例找出一些具有代表性的数据对系统进行测试。黑盒测试过程中常用的测试工具有WinRunner和Autorunner;白盒测试称为结果测试,即逻辑驱动测试。在白盒测试的过程中,我们主要是按照系统开发的原则进行测试,主要是作为开发人员测试代码是否完成了其特定的功能,以及具体的路径是否正确。当然,这种测试方法费时费力,因为每个函数都有不止一条运行路径,通过测试程序中运行的路径,我们可以检测到开发的代码是否有错误,是否达到了预期。在白盒测试过程中,常用的测试工具有JContact、C++Test和CodeWizard。
6.3测试结果
在测试每个功能的过程中,我们应该严格按照指定的测试计划逐步进行测试,不能急于实现,并且每个测试的结果都应该充分记录下来,最好的选择是自动化测试,这样可以更准确、更快地完成,而不是依赖手动测试,因为这样可以避免问题,它还可以防止疲劳和问题。进行测试时,必须保持高度专注,密切关注测试结果,并及时纠正任何异常情况;最后,在测试完成后,应该正确保存文档以备将来使用。经过测试可以发现,原来开发的系统是清晰的,只有对其进行细化,编程的过程才会变得更加顺利。只有有了良好的结构,后期的编程工作才能顺利完成,同时也可以大大降低时间和精力成本。
结 论
在本次系统设计的过程中,我们将深入探讨基于C语言开发的科学计算器,从选题意义、实验目的到系统分析,并详细阐述每一章的内容,以及该系统的硬件和软件环境。其中包含了:需求分析+功能需求+系统功能模块图,以此表示系统的功能的流程、模块的处理过程。绘制总体各个结构+流程图,并根据功能细致设计的需要,再来设计数据库的表结构,实现程序接口,然后完成调试。最后,本文进行了总结,并提出了下一步的发展方向。
在这次设计中,我通过不断地探索和学习,掌握了C语言和框架,并创建了一个基于C语言开发的科学计算器,这让我对编写系统的必要性和运行环境有了更深入的了解。为了更好地完成这个项目,我花费了大量的时间,不仅丰富了自己的知识面,并且学习并积累了许多宝贵经验。系统刚开始时,我对NET框架这个技术只是稍微有些了解,但是通过这次基于C语言开发的科学计算器设计,让我更加深入地去探讨了,NET框架运转的原理,从中学到了如何去配置服务器环境和连接数据库。在基于C语言开发的科学计算器设计的过程中,我还学会了使用dreamweaver来建设一个简单的页面,这样可以极大程度提高我的实际操作能力,也因此激发了我对这个领域的浓烈兴趣。
系统的这一次发展提升了我自己的能力,也学到了框架如何实现基本功能。同时在编程代码各方面也做了的很多尝试,从关注代码错误到做一些小的修改,都有了很大的提高。同时,在撰写论文时,还查阅了大量的参考资料,对论文的结构和文献资料进行了总结和分析。已作出努力,尽量减少错误和走弯路,从一开始的系统功能概念化到逐一实施,并进行了广泛的研究报告。也许后续操作过程中还有很多实现不完美的功能,但我依然会继续学习,努力在以后的软件开发、编号代码中吸取教训,总结不完美之处,努力的在软件开发越来越强。以上是我在本次设计中的总结,希望在未来取得更好的成绩。
参考文献
[1]基于ASP.NET的学生信息管理系统设计[J]. 冯楚帆. 电子技术与软件工程. 2017(08)
[2]ASP.NET基础与案例开发详解[M]. 清华大学出版社 , 易巍, 2018
[3]C#.NET网络程序设计实用教程[M]. 清华大学出版社 , 于国防, 2015
[4]基于.NET的班级日常工作管理系统设计与实现[J]. 窦立君. 电脑编程技巧与维护. 2016(18)
[5]ASP.NET 4.5动态网站设计教程[M]. 清华大学出版社 , 李春葆, 2015
[6]数据库原理与应用教程[M]. 清华大学出版社 , 尹志宇, 2016
[7]陈鑫影.C语言程序设计的创新型教学改革研究[J].科技风,2023(29):110-112.DOI:10.19392/j.cnki.1671-7341.202329036.
[8]于刚,贾志娟.面向新工科的C语言程序设计教学模式改革实践与研究[J].互联网周刊,2023(20):46-48.
[9]周鹏,曹冰玉.混合教学模式下以OBE为导向的“C语言程序设计”教学改革研究[J].科学咨询(教育科研),2023(09):26-28.
[10]潘延龙.基于深度学习的C语言代码缺陷定位方法实现研究[J].电脑编程技巧与维护,2023(09):101-104.DOI:10.16184/j.cnki.comprg.2023.09.046.
[11]顾轶超,姜军,曾志恒等. 一种面向C语言指针安全的编译检查方法及系统[P]. 江苏省:CN116661796A,2023-08-29.
[12]张赛. 基于静态分析的c语言程序安全验证方法研究[D].天津理工大学,2023.
[13]赵江波,豆敬猛,闫文科. 一种基于C语言的嵌入式图形显示框架设计方法[P]. 河南省:CN116243917A,2023-06-09.
[14]丁金平. 科学计算器[P]. 广东省:CN307170893S,2022-03-15.
[15]陈晓东, 基于C语言的图书信息智能采集管理系统V1.0. 湖北省,武汉东湖学院,2022-01-01.
[16]Obaid A M. Solving the Widlar current source transcendental equation using normal scientific calculators[J]. Physics Education,2021,56(5).
[17]Kissane B,B K. Integrating technology into learning mathematics: the special place of the scientific calculator[J]. Journal of Physics: Conference Series,2020,1581(1).
[18]王丽滨,赵云鹏.基于STM32科学计算器系统的设计与实现[J].卫星电视与宽带多媒体,2020(07):68-69.
[19]张亚.基于LabVIEW系统开发的科学计算器[J].电子世界,2019(22):48-49.DOI:10.19353/j.cnki.dzsj.2019.22.018.
致 谢
毕业设计是大学对我们大学四年学习成果的检测,也是作为学生的最后一次作业,所以,我在做这次设计时,很用心。虽然遇到了重重困难,但身边的老师、同学给了我帮助,父母给了我支持,让我信心倍增,所以,我对他们要致以崇高的谢意。
首先是对我本次毕业设计给予我最多的指导老师**老师,在大学平时的课堂学习中,教会了我很多专业知识,还让我学会了如何去独立的思考,而在本次设计中,又给了我耐心的指导,从功能设计、论文写作等多方面都给了我建议,让我有了更多、更好的思绪。当遇到问题时,指导老师不会直接给我答案,而是给我提示,锻炼我让我自己发现问题,这一点,对我来说尤为重要,让我不仅解决了问题,最重要的是教会了我如何处理问题,这是课堂上所学习不到的,也对我今后的工作有很大的作用。所以,我要郑重的向我的指导老师表示感谢,**老师谢谢您,您对我的帮助终身难忘。
然后我还要对帮助我的同学表示感谢,在大学期间我认识了很多新的同学,同学们一起学习、一起吃饭、一起打闹,给我的大学生活带来了色彩,还有就是通过这次设计,也让我认识到了人多力量大,互相讨论,互相学习,解决了很多问题。在此,感谢我的同学们。
最后我要谢谢我的父母,无论何时都信任我、支持我,我永远爱你们。