程序设计大作业
- 格式:docx
- 大小:2.02 MB
- 文档页数:17
C语言程序设计大作业理论课综合训练任课教师:□□□学生学号:□□□□□□□□□□学生姓名:□□□所在班级:□□□□□□□项目名称:□□□□□□□□□□---------------------------------------------------------教师评语(总分20分):(1)基本要求(12分):(2)创新点(2分):(3)实用性(2分):(4)技术水平(2分):(5)卷面综合(2分):教师签名:2022年6月10日一、项目简介本项目所完成的功能包括求三角形面积、一元二次方程求根和排序,是学习生活中的常用计算工具,具有很强的实用性。
本程序包括5个函数模块,在主函数中实现了菜单功能,在窗口菜单提示下,选择数字键完成所需功能,方便用户操作。
j某mj()是求三角形面积函数模块,键盘输入三角形三边之长a、b、c,根据下面公式计算三角形面积。
p=(a+b+c)/2=p(pa)(pb)(pc)如果两边之和大于第三边不成立,输出错误信息。
root()是一元二次方程求实根模块,键盘输入二次项系数a、一次项系数b、常数项c,根据下面公式计算两个实根。
bb24ac某12=2a如果b-4ac<0,输出无实根信息。
pai某u()是排序函数模块,主要读写磁盘文件数据。
程序运行前,必须先在工作区文件夹(或运行程序文件所在文件夹)建立一个文本文件inpai某u.t某t,文件中输入不超过100个整数,数据之间用空格或用回车换行符间隔。
排序结果输出在文本文件outpai某u.t某t中。
myort()是冒泡法排序模块,pai某u()函数是本函数的调用函数,所用算法为冒泡排序算法。
2二、运行测试结果(1)求三角形面积在窗口菜单提示下选择数字键1输入三边之长(用逗号间隔):3,4,5<Enter>=6.000000再次测试输入三边之长(用逗号间隔):1,2,3<Enter>输入数据错误!!!(2)求一元二次方程实根在窗口菜单提示下选择数字键2,分别进行两组测试。
《C语言程序设计》大作业报告1.目掌握所学C语言程序设计办法,熟悉所学语言开发环境及调试过程,熟悉所学C语言中数据类型,数据构造、语句构造、运算办法,巩固和加深对理论课中知识理解,提高学生对所学知识综合运用能力。
通过综合设计规定达到下列基本技能:1.培养查阅参照资料、手册自学能力,通过独立思考进一步钻研问题,学会自己分析、解决问题。
2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计办法,能纯熟调试程序。
2.作业内容纯熟掌握所学语言基本知识:数据类型(整形、实型、字符型、指针、数组、构造等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序构造(顺序构造、判断选取构造、循环构造);大程序功能分解办法(即函数使用)等。
进一步掌握各种函数应用等。
3.规定:1.规定每个同窗都要认真对待,积极参加。
2.独立完毕,不能抄袭。
3.课程设计结束时每位同窗必要完毕《大作业报告册》,其中包括设计源代码和设计思路。
4.不符合规定程序、设计报告、抄袭设计报告或源程序代码、在设计中完全未参加将作不及格解决。
5.统一格式,A4打印,准时提交。
4.题目:设计规定:编写一种程序,求3x4数组转置矩阵。
规定在main函数里面读数,在change函数里面把矩阵转置。
5.程序设计5.1 设计思路:1是先定义两个数组,一种是a[3][4],另一种是b[4][3]。
2是将随便输入12个数输入到a[3][4]。
3是在change函数中将a[3][4]中值通过for循环镶嵌将数组a[3][4]值赋值给数组b[4][3]。
4在主函数中将数组b[4][3]通过for循环嵌套输出。
5.2 代码# include <stdio.h>int change (int a[3][4],int b[4][3]);main(){ int a[3][4],b[4][3],i,j;printf("please input some 12 numbers:"); for(i=0;i<3;i++){printf("\n");for(j=0;j<=3;j++)scanf ("%d",&a[i][j]);}change (a,b);for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%5d",b[i][j]);printf("\n");}}int change (int a[3][4],int b[4][3]){int m,n;for(m=0;m<3;m++)for(n=0;n<4;n++)b[n][m]=a[m][n]; retrun 0;}5.3 成果6.心得体会编写时注意for循环嵌套,先理清逻辑关系在编写,在看例题后,需要多敲代码,才干越来越纯熟。
C语言程序设计大作业
1. 题目:学生信息管理系统
2. 程序要求:
(1)学生信息录入功能
●用户键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、语文四门
课成绩。
●可插入一个或多个学生信息到当前编辑的班级数据中。
(2)文件保存功能
●学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和重新保存;
●用户输入学生信息可随时保存数据文件。
(3)文件打开功能
●序只能对当前打开的数据文件进行编辑。
(4)查询功能
●浏览所有学生信息
●按学号查询学生信息
●按姓名查询学生信息
●查询一个班总成绩和平均成绩
●查询一个班某一门课总成绩和平均成绩
●查询某一门课分数段(<60,60-69,70-79,80-89,>90)学生数。
(5)报表输出功能
●按学号输出一个班学生信息:学号、姓名、性别、数学、英语、政治、语文成绩、
总成绩,到屏幕和文件。
●按总成绩输出从高到低输出学号、姓名信息。
注:以上功能以菜单形式供用户使用,有一定的容错功能。
3. 开发语言环境:Microsoft VC++6.0 或Turbo C2.0
4.数据结构:数组或链表
5. 程序源代码要求:
(1)函数名、变量名采用英文缩写;
(2)源代码的书写采用递进格式;
(3)程序行和程序段须有注释。
学年学期:20xx - 20xx 学年 1 学期课程名称:C语言程序设计综合训练课程学分:2分考核形式:大作业任课教师:xx题目:学生成绩统计程序学院:xx学院__________________________________ 专业班级:xx_______________________________________ 学号:_______ 学生姓名:提交日期:目录目录 (2)引言 (3)1. 学生成绩管理系统 (4)1.1系统简介 (4)1.2相关代码及知识点介绍 (4)2. 添加学生成绩功能 (5)3. 查找学生成绩功能 (6)4. 排序学生成绩功能 (7)5. 展示学生成绩功能 (9)6. 删除学生成绩功能 (10)7. 附页代码 (11)引言C语言是一种比较常见的计算机语言,许多大型应用软件都是用C语言编写而成的。
其简洁紧凑,灵活方便,数据结构丰富。
在一定程度上,C语言比汇编语言更实用,具有结构化语句,实现了结构化编程,使程序编写变得更容易、更快捷,可以编写出各种类型的程序。
同时,C语言是一门实践性强的学科,在学习的过程中,利用所学知识,编写一些与生活、学习相关的应用程序来提高程序编写能力,增强学习兴趣。
本次使用C语言设计一个学生成绩管理系统,可以实现学生成绩的添加,查找,排序及展示。
在作业中使用的是函数的模块化设计,将四个程序使用四个函数来实现。
与此同时,增加用户界面的交互,可供用户选择想要的功能,实现增删查排等操作。
1. 学生成绩管理系统1.1系统简介该系统主要实现学生成绩的添加,查找,排序,展示和删除五个功能,添加学生成绩主要有6个输入值组成,其中包括学号,姓名,语文,数学,英语,政治等。
查找学生成绩主要通过学号查询。
对学生成绩进行排序,可以分别通过学号,语文,数学,英语,政治,平均分,总分等进行排序。
第四项功能是对学生成绩以表格的形式进行展示。
删除学生成绩是按照学号对表格中的数据进行删除。
1数据处理系统一、软件开发目的该软件主要是使用C语言设计开发数据处理程序,实现对数据的排序、查找、插入、计算、输出等功能。
二、数据结构定义一个11*10的二维数组。
三、软件功能说明1.生成100个随机数:调用库函数rand()或random()产生100个随机数,并存储在二维数组中的前十行。
2.选择法排序:用选择法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
3.冒泡法排序:用冒泡法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
4.插入法排序:用插入法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
5.查找数据:输入待查找数据, 在二维数组中逐个查找,若找到输出数据所在位置的行列号,若无该数值则输出“无此数”。
6.转换二进制:将数组中数据转换为二进制并转存到另一数组中输出。
7.转换为素数之和:对于原数组中的数进行判断:若为偶数,则表示成两个素数的和,并输出。
8.插入数据:输入一个数,将该数插入原数组中,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。
9.删除数据输入一个数,若原数组中存在该数,则删除该数,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。
10.退出系统,结束任务。
四、软件验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
系统菜单功能项:1生成100个随机数2选择法排序3冒泡法排序4插入法排序5查找数据6转换二进制7转换为素数之和8插入数据9删除数据10退出系统注意:要求每执行一个具体的功能之后,程序将重新显示菜单。
2.系统要有一定的可靠性、稳定性,能够实现各功能模块。
2图书借阅管理系统一、软件开发目的该软件主要是使用C语言设计开发一个简单的图书借阅管理系统,实现对图书的借书,还书的管理和数据统计。
Java程序设计大作业
提交作业内容:
1. UML的静态结构图
2. 程序主要流程图
3. 程序代码
4. 程序说明文档
5. 实验总结:总结本次程序调试过程中遇到了哪些问题,如何解决的;通过本次大作业有何收获?存在哪些不足需要改进的地方。
1.计算器模拟程序
功能要求:Windows2000/xp系统中的“计算器”是一个方便实用的计算工具,但没有提供显示计算过程和保持计算过程的功能。
本题所遵循的计算规则与Windows2000/xp系统中的“计算器”相同,除了具有普通的计算功能外,还具有显示计算过程、保存计算过程之功能。
要求保存计算过程和结果到文件的同时,也可把当前时间保存到该文件。
可参考下图。
2. 标准化考试系统
功能要求:设计B/S模式的标准化考试系统。
具体要求如下:
(1)登录功能。
包括输入学号、姓名以及服务器的IP地址。
(2)选择试卷功能
(3)答卷和提交试卷功能
(4)可以查询分数。
程序设计大作业程序设计是计算机科学与技术领域中重要的一门学科,它涵盖了从问题分析到算法设计、编写代码以及测试和调试等多个方面。
作为一个程序设计课程的大作业,学生被要求设计并实现一个满足特定需求的软件系统。
本文将探讨程序设计大作业的重要性、设计和开发过程以及一些有效的实践技巧。
一、大作业的重要性程序设计大作业在学生的学习过程中扮演着重要的角色。
它不仅可以帮助学生巩固所学的知识和技能,而且可以培养学生的创新能力、解决问题的能力以及团队协作精神。
通过完成一个复杂的项目,学生们可以更好地理解软件设计和开发的实际应用,并提高自己的实践能力。
二、设计和开发过程程序设计大作业的设计和开发过程可以分为以下几个阶段:1. 需求分析:在这个阶段,学生需要与老师或项目组合作伙伴一起明确项目的需求和目标。
他们应该详细了解项目的功能要求、用户交互和界面设计等方面,并根据这些需求制定计划。
2. 系统设计:在这个阶段,学生应该针对项目的需求设计一个整体的系统框架。
他们需要确定系统的模块划分、数据结构和算法选择,并绘制相应的系统结构图和类图。
3. 编码实现:在这个阶段,学生根据系统设计开始编写代码。
他们应该遵循良好的编程规范,使用适当的注释和命名方法,确保代码的可读性和可维护性。
4. 测试和调试:在编码完成后,学生需要进行全面的测试和调试工作,以确保程序的正确性和稳定性。
他们应该编写测试用例,并对程序进行功能测试、性能测试和边界测试等。
5. 文档撰写:在项目的最后,学生需要撰写项目报告或用户手册,记录项目的整个开发过程和代码实现。
他们应该清晰地描述项目的架构和实现细节,并提供必要的示例和说明。
三、实践技巧在程序设计大作业中,学生可以采用一些实践技巧来提高效率和质量:1. 团队合作:如果是一个团队项目,学生应该积极参与团队合作,分工协作,确保项目按时完成。
他们可以使用版本控制工具(如Git)来管理代码,进行代码的合并和冲突解决。
程序设计大作业评分标准一、功能实现(40 分)1、核心功能完整性(20 分)作业要求的主要功能是否全部实现,这是最基本也是最重要的考量点。
如果关键功能缺失,会严重影响得分。
功能的实现是否准确无误,能否按照预期的逻辑和规则正常运行。
2、功能拓展与优化(10 分)除了基本功能外,是否有额外的功能拓展,以展示学生的创新和深入思考能力。
对已实现的功能是否进行了优化,提高程序的性能和效率。
3、功能的实用性(10 分)所实现的功能在实际应用场景中是否具有价值和实用性。
是否考虑了用户的需求和使用习惯,使程序具有良好的用户体验。
二、代码质量(30 分)1、代码规范(10 分)变量和函数的命名是否清晰、具有描述性,便于理解代码的逻辑和功能。
代码的排版是否整齐、有良好的缩进,增强代码的可读性。
2、代码结构(10 分)程序是否采用了合理的架构和模块化设计,各模块之间的职责划分是否明确,便于维护和扩展。
代码的逻辑是否清晰,是否避免了复杂和混乱的控制流。
3、代码效率(10 分)对于算法和数据结构的选择是否合理,是否能够有效地利用系统资源,提高程序的运行速度。
是否避免了不必要的重复计算和内存浪费。
三、文档撰写(15 分)1、需求分析(5 分)清晰地阐述程序的需求和目标,包括用户的需求、功能要求和性能要求等。
2、设计文档(5 分)详细描述程序的总体设计、模块设计、数据结构设计和算法设计等,使读者能够理解程序的架构和实现思路。
3、测试文档(5 分)提供充分的测试用例和测试结果,证明程序的功能正确性和稳定性。
四、创新性(10 分)1、技术创新(5 分)是否采用了新的技术、算法或框架,以提高程序的性能或实现独特的功能。
2、思路创新(5 分)在解决问题的思路和方法上是否有独特的见解和创新,展现出与众不同的思考方式。
五、团队协作(5 分)(如果是团队作业)1、分工合理性(2 分)团队成员之间的任务分工是否明确、合理,是否充分发挥了每个成员的优势。
《计算机编程与数字信号处理实习》大作业
班级:
姓名:
学号:
课时:32学时
学分:2。
时间:20180625~20180706
地址:3教403教室
二、能够利用Matlab熟悉地画图,内容包括:X、Y坐标轴上的label,
每幅图上的title,绘画多条曲线时的legend,对图形进行适当的标注等。
(1)在一副图上画出多幅小图;(2)画出一组二维图形;
(3)画出一组三维图形;(4)画出复数的实部与虚部。
程序:number2.m
结果:
1.
2.
-505
-1
-0.5
0.5
1
t (s)
y
1
(
m
)
第一幅图
-505
-1
-0.5
0.5
1
t (s)
y
2
(
m
)
第二幅图-505
-10
10
20
t (s)
y
3
(
m
)
第三幅图
-505
-10
10
20
t (s)
y
4
(
m
)
第四幅图
3.
4.
1
2
3
4
5
6
7-1-0.8-0.6-0.4-0.200.20.40.60.81x
y
1组二维函数
x 轴
一组三维图形
y 轴
z 轴
三、 计算普通褶积与循环褶积,分别使用时间域与频率域两种方法
进行正、反演计算,指出循环褶积计算时所存在的边界效应现象;编写一个做相关分析的源程序。
程序:见number3.m 线性褶积:
246810复
数
5
1015
0510
实部
246810虚部
循环褶积: 图示:
-0.5
0.5
1
子波
子波与反射系数线性褶积
05001000150020002500
-0.5
0.5
1
子波
05001000150020002500
-1.5
-1
-0.5
0.5
1
1.5
频率域反演
边界效应:在本次程序中n1=2011,n2=8再循环褶积中令n=2017,2000时,其
结果出现错误;而将n=2019,2100时其结果正确;由此n>=n1+n2-1时循环褶积等于其线性褶积,可以用线性褶积计算循环褶积。
相关分析: 图片:
分析:绘制图形与matlab 中相关函数绘制图形基本一致。
05001000150020002500
-1.5
-1
-0.5
0.5
1
1.5
时间域正演
510152025303540计算的相关值
matlab 中相关函数计算的相关值
四、 设计一个病态(矩阵)系统,分析其病态程度;找出对应的解
决方法(提示:添加白噪因子)。
分析:实际情况实际判断,在解方程时,能忍受的误差是多少,如果这个
矩阵造成的误差超过能容忍的误差,就可以认为他是病态的。
程序:见number4.m 图示:
020406080100120140160
-0.5
0.5
1子波
020406080100120140160
5
10
15子波频谱
五、 设计一个一维滤波处理程序(1.分别做高通、低通带通、带阻
等理想滤波器进行处理2.窗函数)
100
200
300
400
500
600
700
800
900
1000
-1-0.500.5
1信号
100
200
300
400
500
600
700
800
900
1000
-10-505
10循环褶积
100
200
300
400
500600
700
800
900
1000
-2-101
2信号
100
200
300
400
500
600
700
800
900
1000
-2-101
2反褶积
程序:见number5.m 图片:
50100
-1-0.500.51
1.5理想低通h1(f)
50100
-1-0.500.51
1.5理想高通h2(f)
50
100
-1-0.500.51
1.5理想带通h3(f)
50
100
-1-0.500.51
1.5理想带阻h4(f)
00.5
1
-50
5原始信号
00.5
1-50
5低通滤波后的低频信号
00.5
1
-50
5高通滤波后的高频信号00.51-5
5带通滤波后的信号
00.51
-5
5带阻滤波后的信号
六、 设计一个二维滤波处理程序(分别做高通、低通处理)。
程序:见number6.m 1.地震低通处理 图片:
当 m=0.3 时
当 m=0.6 时
050100
20
40原始信号振幅谱
050100020
40低通滤波后的低频信号的振幅谱050100
020
40高通滤波后的高频信号的振幅谱0501000
20
40带通滤波后的信号的振幅谱050100
20
40低通滤波后的信号的振幅谱
-2500
-2000
-1500
-1000
-500
Original
低通滤波后图形
当 m=0.9 时
2.地震高通处理
图片:
当 m=0.3 时
-2500
-2000
-1500
-1000
-500
0123
4Original
10
20
30
40
50
60
70
80
90
100
500
1000
低通滤波后图形
-2500
-2000
-1500
-1000
-500
0123
4Original
10
20
30
40
50
60
70
80
90
100
500
1000
低通滤波后图形
当 m=0.6 时
当 m=0.9 时
-2500
-2000
-1500
-1000
-500
0123
4Original
10
20
30
40
50
60
70
80
90
100
500
1000
高通滤波后的图
-2500
-2000
-1500
-1000
-500
0123
4Original
10
20
30
40
50
60
70
80
90
100
500
1000
高通滤波后的图
3.图片处理
图片:
-2500
-2000
-1500
-1000
-500
0123
4Original
10
20
30
40
50
60
70
80
90
100
500
1000
高通滤波后的
图
读取的原图
七、验证时间域循环褶积是频率域的乘积;线性褶积则不然。
低通处理
后低通处理
后
低通处理
后低通处理
后
高通处理
后
高通处理
后
高通处理
后高通处理后
程序:见number7.m 图片:
分析:由图像来看线性褶积时间域于频率域计算结果不同,而循环褶积相同
八、请用通俗、易懂的语言说明数字信号处理中的一种性质、一条定理或一个算例(顺便用matlab 对其进行实现)
说明:对于一个在有限区间分布的信号,其频谱在频率域的分布往往是无限区间的。
实际信号处理时,我们通常只能在有限区间内做傅里叶分析;也就是说,我们只能取有限区间来替代理论分析中的无限区间。
图中可以看到,在原始信号的突变点处,逼近信号出现了明显的振荡现象,随着M 的增大,这些振荡并没有消失,而是更加集中于突变点附近。
这种在突变
02468
线性褶积频率域反演
线性褶积时间域正
演
循环褶积频率域反
演
循环褶积时间域正演
点处出现的振荡现象被称为吉布斯(Gibbs)现象。
Gibbs现象产生的原因:它是由于在反变换的计算过程中用有限项近似无限项从而丢失原始信号中的高频成分所致。
程序:见number8.m
图片:。