关于中南大学数据结构/C++课设题目的一点思考(一·简单题)

前言

这些分析都只是我个人的思考,不保证这些思路一定是相对方便的思路,同时也不保证这样实现是不是有纰漏。如果有问题,欢迎带上你的结果和思考我们一起讨论,拒绝伸手!
另外我这个人有个破毛病,就是忘得快,所以之前刚开始写代码时候的挣扎、疑惑都已经忘了,所以有很多没注意到的点是很正常的,欢迎指点建议。

分析

这个部分的题目比较简单,多半没什么算法或者只有一点简单的算法。当然简单与否这是相对而言的,要相对上学期的期末考来说,这里面的题没有一个不麻烦的;但是相对其他的课设题目和其他的问题来说,这个还是简单的。不过虽然这样说,这些题目还是有这几个问题需要处理:

一.目标不清晰

部分题目并没有给出精确的要求,所以程序要多好,给分高不高,这个看自己要求和老师的看法了。

二.麻烦

从代码量来说,这部分的代码有可能是课设里面最多的,但是从技术角度来说难度又不大。这样的写代码过程就我个人而言并不舒服。不过之前没写什么代码的同学就可以通过这个感受一下程序员的工作日常、做稍微大一点的项目的感觉。

技巧

首先开watch窗口,写printf、cout自然不用说,其次对于需要不断使用一堆重复的复杂数据的时候,可以将其写入txt文件里面,然后采用freopen(“in.txt”, “r”, stdin ) 将输入流重定义一蛤,之后再开程序就不用你手动操作了,还不是美滋滋。(看不懂这句话的问问度娘freopen的用法吧)。

闲话说了一堆,那么正式开始。

正文

1.运动会分数统计

n个学校,然后还带校名,学校有自己的学生。
我想到这么几种实现的方法:
1,用广义表
2,用树形结构,学校一组,项目一组(只用学校一组遍历是很慢的过程;不过考虑到计算机在正常情况1s能做108左右次计算,正常人手打的数据应该是没问题的啦)

这些思路里可能用到的库模板:pair <

题目: 1、自拟题目的原则: (1)计的能够体现面向对象基本思想:类、继承、多态性、模板等。 (2)根据自己对面向对象基本概念、原理和机制的理解,自拟题目计内容。 (3)选的难易程度要适当,以在规定时间内经过努力可以完成为宜。 2、参考选: 参考选多为管理系统类,家也可自拟游戏类或数学计算等其他类型题目,只要能体现oop思想。 (1)复数计算器 运用C++语言描述数据类、复数类,每个类应包含数据成员和成员函数。计基类和派生类,并运用多态性和虚函数的知识。注重面向对象程序计理论知识的理解与实际的动手编程能力,要求学生计具有继承与派生以及多态性的类,理解面向对象程序计的核心的概念。 本计要实现的主要功能如下: 1)建立数据类、复数类 2)数据、复数信息的初始化 3)复数信息的输出 4)将复数信息保存为文件 5)求复数的绝对值 6)实现复数的加、减、乘、除、乘方、自加、自减等运算 (2)字符串处理系统 运用C++语言描述数据类、字符串类,每个类应包含数据成员和成员函数。计基类和派生类,并运用多态性和虚函数的知识。注重面向对象程序计理论知识的理解与实际的动手编程能力,要求学生计具有继承与派生以及多态性的类,理解面向对象程序计的核心的概念。 本计要实现的主要功能如下: 1)建立数据类、字符串类 2)数据、字符串信息的初始化 3)字符串信息的输出 4)将字符串信息保存为文件 5)获得字符串长度 6)在字符串中查找个字符 7)在字符串中查找另外个字符串 8)比较字符串 (3)学生信息管理 运用C++语言描述学生类,每个类应包含数据成员和成员函数。计基类和派生类,并运用多态
C++题目,包括1、输出10至99之间每位数的乘积于每位数的和的数,例如对于数字12,有1*22+7,故输出该数。 2、求任意n个数中的最数和最小数:先输入个正整数n(个数),而后再输入任意n个实数,找出这n个数中的最数及最小数并显示出来。3、对两个有序数组进行合并:有如下数组A、B,并假两个数组的元素都已经有序(从到小降序排列)。编程序,合并A、B数组形成个新的数组C,并使C的元素仍有序(从到小降序排列)。 int A[10]={123, 86,80, 49,33,15,7,0,-1,-3}; int B[10]={100,64,51,50,27,19,15,12,5,2}; 4、有个分数序列:1/2,1/3,1/4,1/5,1/6,1/7,……,编写函数求序列前n项之和,要求在主程序中提示用户输入整数n,并判断所输入数是否合法(于1为合法),如果合法则调用求和函数并输出结果。 5、计算两个日期之间的间隔天数:从键盘输入两个日期(如以year1,month1,day1以及year2,month2,day2的方式来输入它们),而后计算出这两个日期的间隔天数并在屏幕上显示出结果。 要求编制具有如下原型的函数difs2Date: long GetDayDifference(int y1,int m1,int d1,int y2,int m2,int d2); 并在主函数中调用向屏幕上输出计算结果。7、声明并定义个日期类CDate,其中数据成员m_iYear,m_iMonth,m_iDay,分别表示年、月、日,成员函数SetDate()用来置年、月、日,成员函数IsLeapYear()用来判断当前的年份是否为闰年,构造函数带有默认形参值,可接收外部参数对m_iYear, m_iMonth, m_iDay进行初始化,另要求编写测试程序,定义个CDate类对象,将其日期置为2005年1月1日, 调用成员函数IsLeapYear()判断该年份是否为闰年,并输出判断结果. 说明:闰年的年份可以被4整除而不能被100整除,或者能被400整除. 8、编写个程序计算两个给定长方形的面积,其中在计类成员函数GetTotalArea()(用于计算两个长方形的总面积)时使用对象作为参数。 9、个时间类Time,包括3个数据成员,时(h)、分(m)、秒(s),另外包括存取各数据成员和置时间的成员函数,按上、下午各12小时或按24小时输出时间的成员函数,以及默认构造函数,默认时间值为0时0分0秒。 10、编写个程序,输入3个学生的英语和计算机成绩,并按总分从高到低排序(要求个学生类Student)。 11. 求解元二次方程。 元二次方程的定义为: ax2+bx+c=0 (1)如果b2 -4ac>0,方程有两个不同的实根,分别是: (2)如果b2 -4ac< 0,方程没有实根,但有虚根; (3)如果b2 -4ac= 0,方程有个实根。 请你编写个程序,使其能求出多个二次方程的根。该程序要询问用户是否想继续解下个方程。用户输入1来继续,输入其它数字,则终止程序。程序要求用户输入a,b和c,然后根据前面的条件计算,并输出答案。 要求:使用类实现, (1) a,b,c为该类的私有成员变量; (2) 求根的实现为该类的成员函数,形式为: //函数返回值:实根的个数; //参数:x- 用以返回实根值的数组; int CalResult(double x[]); (3) 该类还包含有参构造函数、析构函数。
从键盘输入矩阵 从文本文件中输入矩阵(需要手动输入行列数) 矩阵相乘 求信息矩阵 求各精矿及尾矿的理论产率 习: 某选矿车间某班取样化验数据如表1,利用矿量平衡和金属平衡可以列出含四个方程的线性方程组,请利用行线性变换编程求出各精矿及尾矿的理论产率 求多项式回归的相关矩阵和模型参数,回归模型相对误差等 相对误差r3>0.1,在允许相对误差为0.1的情况下认为模型不合理 习第六 2 因变量y是自变量x的非线性函数,已得到实测数据见表2,假定y可以用x的3 次多项式近似表示,即y对x的多项式回归模型为 y=b0+b1x+b2x2+b3x3 请求出模型蚕数b0、b1、b2和b3,计算模型值ym与相对误差r%并填入表2中。 功能七:求方程组的解和系数矩阵的逆矩阵 习第三: 请用行线性变换求下面三元次线性方程组的解和系数矩阵的逆矩阵。 功能8,求矛盾线性方程组的相关矩阵和解(最小二乘法) 习第四 在表1中增加两种组分的化验品位如表2,可以列出六个线性方程,显然是矛盾的方程 组,请用最小二乘法求精/尾矿产率的最小二乘解,并填入表2相应位置。 求多元线性回归模型的相关矩阵和模型参数 习第五: 对6个红薯品种的研究测定了比叶重、气孔密度、叶绿素含量和光合速率如表3,假定光合速率对比叶重、气孔密度、叶绿素含量有线性相关关系,即回归模型可以表示为 y=b0+b1*x1+b2*x2+b3*x3 求回归模型参数,并计算出模型值和相对误差填入表3中。 习6和习7 6. 矩阵类的load函数要求输入文本数据文件中数据的行列数,而从文本数据文件 无法直接判断数据文件中数据的行列数,除非先用其它方式打开来看才知道,很不方便。请修改load函数,使load函数能自动探测文本数据文件中数据的行列数,省去人工输入行列数。 7矩阵类中添加保存数据为文本数据文件的save()成员函数及相应菜单功能,保存数据前要输入文件名, 注意保存的格式要使原有的load函数能正确读取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值