算法课程设计报告
题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,按照指定的设计),设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。
给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来 。
对有些题目提出算法改进方案,比较不同算法的优缺点。
如果程序不能正常运行,写出实现此算法中遇到的问题,和改进方法;
2 对每个题目要有相应的源程序(可以是一组源程序,即详细设计部分):
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环;
3 最后提供的主程序可以象一个应用系统一样有主窗口,通过主菜单和分级菜单调用课程设计中要求完成的各个功能模块,调用后可以返回到主菜单,继续选择其他功能进行其他功能的选择。最好有窗口展示部分。
4 课程设计报告:(保存在word 文档中,文件名要求 按照"姓名-学号-课程设计报告"起名,如文件名为"张三-001-课程设计报告".doc )按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;
其中包括:
a)需求分析:
在该部分中叙述,每个模块的功能要求
b)概要设计
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。
c)详细设计
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析
测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
5. 课设总结: (保存在word 文档中)总结可以包括 : 课程设计 过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对C课程的认识等内容;
6.实验报告的首页请参考如下格式:
课程设计实验
起止日期:20 -20 学年 学期
系别 班级 学号 姓名
实验题目 □设计性 □综合性
自我评价
教师评语 能够实现实验要求的功能 □全部 □部分算法有新意 □有 □一般程序运行通过 □全部 □部分 算法注释说明 □完善 □仅有功能说明接口参数说明 □有 □无按期上交打印文档资料及源程序 □所有 □部分综合设计说明报告结构 □合理 □不合理用户使用说明 □完整 □不全现场演示操作有准备 □有 □无问题解答流畅 □流畅 □不流畅独立完成实验 □能 □不能体现团队合作精神。 □能够 □不能
成绩
这是张表格,copy过来时没调整好,不过应该看得明白。我们是这样写的,你可以参考一下。
高斯赛德尔法、牛顿 拉夫逊法及PQ分解法进行潮流计算的优缺点
一:牛顿潮流算法的特点
1)其优点是收敛速度快,若初值较好,算法将具有平方收敛特性,一般迭代4~5 次便可以
收敛到非常精确的解,而且其迭代次数与所计算网络的规模基本无关。
2)牛顿法也具有良好的收敛可靠性,对于对高斯-塞德尔法呈病态的系统,牛顿法均能可靠
地敛。
3)初值对牛顿法的收敛性影响很大。解决的办法可以先用高斯-塞德尔法迭代1~2 次,以
此迭代结果作为牛顿法的初值。也可以先用直流法潮流求解一次求得一个较好的角度初值,
然后转入牛顿法迭代。
PQ法特点:
(1)用解两个阶数几乎减半的方程组(n-1 阶和n-m-1 阶)代替牛顿法的解一个(2n-m-2)阶方程
组,显著地减少了内存需求量及计算量。
(2)牛顿法每次迭代都要重新形成雅可比矩阵并进行三角分解,而P-Q 分解法的系数矩阵 B’
和B’’是常数阵,因此只需形成一次并进行三角分解组成因子表,在迭代过程可以反复应用,
显著缩短了每次迭代所需的时间。
(3)雅可比矩阵J 不对称,而B’和B’’都是对称阵,为此只要形成并贮存因子表的上三角或下
三角部分,减少了三角分解的计算量并节约了内存。由于上述原因,P-Q 分解法所需的内存
量约为牛顿法的60%,而每次迭代所需时间约为牛顿法的1/5。
二:因为牛顿法每次迭代都要重新生成雅克比矩阵,而PQ法的迭代矩阵是常数阵(第一次形成的)。参数一变,用PQ法已做的工作相当于白做了,相当于重新算,次数必然增多。
有点啰嗦了。。。。
数据结构课程设计的需求分析怎么写
一 需求分析:
在该部分中根据设计题目的要求,充分地分析和理解问题,叙述系统的功能要求,明确问题要求做什么?以及限制条件是什么?
1.1问题描述
1.2基本要求
(1) 输入的形式和输入值的范围;
(2) 输出的形式;
(3) 程序所能达到的功能;
二 概要设计
说明本程序中用到的所有抽象数据类型的定义。主程序的流程以及各程序模块之间的层次(调用)关系。
1、 数据结构
2、 程序模块
3、各模块之间的调用关系以及算法设计
三 详细设计
实现概要设计中定义的所有数据类型,对每个操作写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);写出出函数和过程的调用关系.
四 测试与分析
测试数据,输出测试的结果,这里的测试数据应该完整和严格。并对结果进行分析。
五 总结
总结可以包括 : 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。
数学与应用数学专业的主要课程有哪些?
我是吉大数学专业的一名同学,学数学学到头秃的那种,接下来给大家介绍一下数学与应用数学的课程。
主干课程有数学分析、高等代数、空间解析几何、实变函数、复变函数、常微分方程、数学物理方程、泛函分析、微分几何、拓扑学、抽象代数。
数学分析、高等代数、空间解析几何这三门课程是在大一上的,是最基础的三门课程,是其他课程的根基,直接点说,就是这三门学不明白,接下来的其他课程将更加学不懂。其中数学分析内容较多,也较为重要,初学可能较为困难,多用些功夫,就会渐入佳境了。下图即为我们院所用的数学分析的教材,也是我们学院老师编著的。
大二会学复变函数、常微分方程和抽象代数,复变函数和数学分析的好多知识都是相关联的,如果大一基础打的好,这个时候学复变函数就会事半功倍。常微分方程是一门很重要的课,应用十分广泛,同时,也需要数学分析中会学到的微积分的知识和高等代数中矩阵的相关知识。由此可见,学好数学分析和高等代数多么重要。
同时,大一、大二还有C语言和物理这两门课,它们对今后数学的学习影响不大,但是C语言也很重要,它差不多是多数大学生都要学的一个基础课程。
因为我现在是大二下学期,所以对后面的课程还不是特别了解,就不一一为大家介绍了。
最后,我想说,数学各个课程之间关联非常强,大家想学好数学,基础一定要打牢。
C语言编程,从键盘输入10个学生的成绩,由高到低排序输出成绩。
//如果只有成绩信息就可以用下面的代码
//如果还需要加入学号,姓名之类的信息,可以用结构体然后对成绩排序即可
#include"stdio.h"
int main()
{
int d[10]={0},i,j,t;//数组d存放10个学生的成绩
for(i=0;i<10;i++)//输入10个成绩(空格分开)
scanf("%d",&d[i]);
for(i=0;i<9;i++)//排序 for(j=i+1;j<10;j++) if(d[i]<d[j]) {
t=d[i],d[i]=d[j],d[j]=t;
}
for(i=0;i<10;i++)//输出10个成绩
printf("%d ",d[i]);
getch();
return 0;
}