人人范文网 实习报告

上机实习报告(精选多篇)

发布时间:2020-04-18 21:56:12 来源:实习报告 收藏本文 下载本文 手机版

推荐第1篇:计算机上机实习报告

计算机上机实习报告

姓名:张陆浩 班级:高材11001 学号:201001978 老师:张老师 熊老师 时间:2011年12月24日

一.实验目的: 1.熟悉VB 6.0的开发环境,掌握基本的编程方法,熟悉用VB语言完成一个应用程序的设计过程,掌握有关编辑和调试程序的方法和技巧; 2.主要掌握VB语言中的标准模块的建立﹑数据文件的读出与写入、数组与选择结构的运用,图形操作等内容

3.了解开发简单应用程序的全过程,包括:分析﹑设计﹑编程﹑调试和编写报告.二.实习要求:

(一)。用记事本新建一个文本文件,将本班M名学生N门考试课的成绩输入到这个文件中,建议按如下形式存放(注:20=M

姓名

英语

数学

物理

化学

VB 1

张陆浩

97

98

97

97

98 2

林丹

92

87

79

91

84 3

李宗伟

75

96

83

75

73 4

李永波

89

93

83

86

82

(二)。将N门考试课以及其分数输入到另一个数据文件(文件类型同上题)中,建议以下列形式存放: 编号 课程名称 课程学分 1 英语 5.0 2 数学 4.5 3 物理 5.0 4 化学 4.5 5 VB 4.5

(三)。请编写一个简单的学生成绩管理程序,以完成以下功能: 1.根据以上两文件内容分别计算每个学生N门课程的加权平均分(保留两位小数,四舍五入),按平均分排列名次,平均分相同则名

次并列。用VB创建一个数据文件,存放班级的成绩表。

2.分别统计全班每门课的平均分,并计算各分数段(90分以上;80~89;70~79;60~69;60分以下)的学生数。.3.打印每名学生成绩条(并将结果存放到用VB创建的一个新的数据文件中)。

4.显示所有存在不及格课程的学生的名单(含学号,不及格课程名称,课程的学分及成绩)。

5.屏幕显示优等生名单及打印每门课程成绩分布图。优等生条件(只要满足三个中任一个就可以): a)平均分>=90分

b) 名次在本班位于前四名

c)平均分>=85分,并且至少有一门课的成绩>=95分

三、实习步骤

1、用记事本新建一个学生成绩文本文件(其中包括学生学号,成绩,姓名,课程及成绩)。

2、用记事本新建一个课程学分文本文件。

3、编辑菜单编辑器:编辑四个可拉式菜单,包括学生成绩、成绩处理、成绩编辑、画图。

4、编辑代码:分别编辑打印学生成绩和学分代码,编辑加权平均分、各科平均分、分数段、成绩条、排名、优等生、差等生的代码,还有画各科目成绩人数图的代码。

5、调试程序代码并保存。

6、打印代码。

三.相关数据列表:

(一)。源文件

(1)成绩

学号 姓名 英语 数学 物理 化学 VB 1 张陆浩 97 98 97 97 98 2 林丹 92 87 79 91 84 3 李宗伟 75 96 83 75 73 4 李永波 89 93 83 86 82 5 王仪涵 92 79 89 86 80 6 汪鑫 93 65 86 68 84 7 付海峰 94 91 89 92 80 8 湛龙 86 83 88 80 92 9 盖德 68 79 54 72 71 10 陶菲克 69 76 59 81 75 11 佐佐木 85 83 68 57 71 12 李娜 94 63 62 65 53 13 陈金 86 79 89 94 83 14 兰洋 91 93 92 89 75 15 小志 95 89 93 86 87 16 棃一名 92 86 83 67 59 17 吴凯飞 67 75 57 82 62 18 江方 93 80 73 76 84 19 胡艳 74 68 58 63 71 20 张继原 68 95 68 84 93 (2).学分

编号 课程名称 课程学分 1 英语 5.0 2 数学 4.5 3 物理 5.0 4 化学 4.5 5 VB 4.5 四.运行效果:

(一).学生管理

(1)打开课程成绩及学分

(2) 打开计算的加权平均分﹑排名及各科平均分

(三).编辑

(1) 打开计算的各科人数分布

(2) 打开按学号查找每个学生的成绩 a) 输入要查找学生的学号

b) 得到该生的成绩条

(3) 打开查找到的优等生信息

(4) 打开不及格学生的分布

(四).成绩分布图

五.实习小结

通过两个星期的上机实习,我体会颇深,不仅表现在VB语言程序设计中,而且表现在与人交流和独立自主完成任务的决心中。

本次上机在VB程序设计中我学会了很多以前不会或根本一点都不懂的东西。比如,在程序设计过程中,刚开始我弄不清楚怎样把编辑的文件读到VB中,但是通过询问老师和同学讨论,终于弄清了思路,即先将文件打开,再将数据分别放入若干个数组中,最后再将它读出来。除此之外,我还明白了变量的作用域对编程的重要性和子过程,函数过程数据处理的帮助。而对以前学的,像选择结构,循环结构等也进行了巩固和运用。在数据处理和打印的时候进行了大量运用。为了使程序更人性化化,我还运用了msgbox,inputbox等方法,使我对所学的知识进行了综合的运用。

我相信通过这次实习,我对VB和计算机语言都有了更深刻的认识。虽然在实习的过程中,我发现了自己在编写程序中的不足,像思维不够严密等,但我相信,只要认真、努力就一定会有收获

六 .程序代码

(一).创建标准模块

Type student “定义变量:student” number As String * 9 name As String * 3 score(1 To 5) As Single average As Single rank As Integer End Type Type cla “定义变量:cla” num As String * 9 nam As String * 3 scor As Single End Type Public stu() As student, cla() As cla, sumscor As Integer, subj() As cla Public q(5) As Integer, t(5) As Integer, x(5) As Integer, y(5) As Integer, h(5) As Integer “定义删除空格函数” Public Function deletespace(str As String) As String Dim i% i = InStr(str, " ") Do While i o str = Replace(str, " ", " ") i = InStr(str, " ") Loop deletespace = str End Function Public Sub addave(stu() As student, cou() As course) “定义计算加 For i = 1 To UBound(stu) 权平均分 Dim jqpj!, x!, y! 的子过

x = 0 y = 0 For j = 1 To 5 x = x + cou(j).score y = y + stu(i).score(j) * cou(j).score Next j stu(i).jqpj = y / x Next i End Sub Public Sub mc(stu() As student) “定义计算排名的子过程” For i = 1 To UBound(stu) stu(i).rank = 0 For j = 1 To UBound(stu) If stu(i).jqpj

Private Sub studentscore_Click() CommonDialog1.Filter = "文本文件|*.txt" CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #1 Line Input #1, str1 Print str1 Do While Not EOF(1) Line Input #1, str str = deletespace(Trim(str)) a = Split(str, " ") n = n + 1 ReDim Preserve stu(n) stu(n).number = a(0) stu(n).name = a(1) For i = 1 To 5 stu(n).score(i) = a(i + 1) Next i Loop For i = 1 To n Print stu(i).number; Spc(1); stu(i).name; Spc(3); For j = 1 To 5 Print stu(i).score(j); Spc(3); Next j Print Next i Close #1 End Sub Private Sub clarank_Click() CommonDialog2.Filter = "文本文件|*.txt" CommonDialog2.ShowOpen Open CommonDialog2.FileName For Input As #2 Line Input #2, str2 Print str2 sumscor = 0 Do While Not EOF(2) Line Input #2, str3 str3 = deletespace(Trim(str3)) b = Split(str3, " ") m = m + 1 ReDim Preserve cla(m) cla(m).num = b(0) cla(m).nam = b(1) cla(m).scor = b(2) sumscor = sumscor + Val(cla(m).scor) Loop For k = 1 To m Print cla(k).num; Spc(2); cla(k).nam; Spc(3); cla(k).scor; Spc(3) Next k End Sub (2).分数处理

Private Sub ran_Click() “加权平均分及名次” Form1.Cls For n = 1 To 20 sum = 0 For i = 1 To 5 sum = sum + stu(n).score(i) * cla(i).scor Next i stu(n).average = Format(sum / sumscor, "##.##") Next n For n = 1 To 20 stu(n).rank = 1 For j = 1 To 20 If stu(n).average

Print Spc(7); "英 语"; Spc(1); "数 学"; Spc(1); " 物 理"; Spc(1); "化 学"; Spc(1); "V B" Print "平均分"; For i = 1 To 5 sum = 0 For n = 1 To 20 sum = sum + stu(n).score(i) Next n j = Format(sum / 20, "00.00") Print Spc(2); j; Next i End Sub (3).编辑 Private Sub scor_Click() “计算打印个分数段人数” Form1.Cls Print "范围"; "英 语"; Spc(3); "数 学"; Spc(3); " 物 理"; Spc(3); "化 学"; Spc(3); "V B" For i = 1 To 5 For n = 1 To 20 Select Case stu(n).score(i) Case 90 To 100 q(i) = q(i) + 1 Case 80 To 89 x(i) = x(i) + 1 Case 70 To 79 t(i) = t(i) + 1 Case 60 To 69 h(i) = h(i) + 1 Case Else y(i) = y(i) + 1 End Select Next n Next i Print ">90"; For i = 1 To 5 Print Spc(4); q(i); Next i Print Print "80_89"; For i = 1 To 5 Print Spc(4); x(i); Next i Print Print "70_79"; For i = 1 To 5 Print Spc(4); t(i); Next i Print Print "60_69"; For i = 1 To 5 Print Spc(4); h(i); Next i Print Print "= 95 Then t = t + 1 End If Next j If stu(i).average >= 85 And t >= 2 Or stu(i).average >= 90 Or stu(i).rank

Private Sub Command1_Click() “新建窗体form2” For i = 0 To 4 Picture1(i).Scale (0, 14)-(100, 0) Picture1(i).Line (10, 2)-(92, 2), vbRed Picture1(i).Print "分数段" Picture1(i).Line (10, 2)-(10, 14), vbRed Picture1(i).Print "人数" For j = 2 To 10 Step 2 Picture1(i).CurrentY = j + 2 Picture1(i).CurrentX = 4 Picture1(i).Print j Next j Picture1(i).CurrentX = 10 Picture1(i).CurrentY = 2 Picture1(i).Line (10, 2)-(26, 2 + q(1 + i)), vbGreen, BF Picture1(i).CurrentX = 26 Picture1(i).CurrentY = 2 Picture1(i).Line (26, 2)-(42, 2 + x(i + 1)), vbRed, BF Picture1(i).CurrentX = 42 Picture1(i).CurrentY = 2 Picture1(i).Line (42, 2)-(58, 2 + t(i + 1)), vbGreen, BF Picture1(i).CurrentX = 58 Picture1(i).CurrentY = 2 Picture1(i).Line (58, 2)-(74, 2 + h(i + 1)), vbRed, BF Picture1(i).CurrentX = 74 Picture1(i).CurrentY = 2 Picture1(i).Line (74, 2)-(90, 2 + y(i + 1)), vbGreen, BF Picture1(i).Line (10, 2)-(26, 2), vbGreen Picture1(i).Line (26, 2)-(42, 2), vbRed Picture1(i).Line (42, 2)-(58, 2), vbGreen Picture1(i).Line (58, 2)-(74, 2), vbRed Picture1(i).Line (74, 2)-(90, 2), vbGreen Picture1(i).CurrentX = 10 Picture1(i).CurrentY = 2 Picture1(i).Print " >=90 80-89 70-79 60-69

推荐第2篇:上机实习报告2

数值分析上机实习报告要求

1.应提交一份完整的实习报告。具体要求如下:

(1)要有封面,封面上要标明姓名、学号、专业和联系电话;

(2)要有序言,说明所用语言及简要优、特点,说明选用的考量;

(3)要有目录,指明题目、程序、计算结果,图标和分析等内容所在位置,作到

信息简明而完全;

(4)要有总结,全方位总结机编程计算的心得体会;

(5)尽量使报告清晰明了,一般可将计算结果、图表及对比分析放在前面,程序

清单作为附录放在后面,程序中关键部分要有中文说明或标注,指明该部分的功能和作用。

2.程序需完好保存到期末考试后的一个星期,以便老师索取用于验证、询问或质疑部分内容。

3.认真完成实验内容,可以达到既学习计算方法又提高计算能力的目的,还可以切身体会书本内容之精妙所在,期间可以得到很多乐趣。

4.拷贝或抄袭他人结果是不良行为,将视为不合格。

5.报告打印后按要求的时间提交给任课老师。

数值分析上机试题 2 (选择其中1个题目)

5.用Runge-Kutta 4阶算法对初值问题y/=-20*y,y(0)=1按不同步长求解,用于观察稳定区间的作用,推荐两种步长h=0.1,0.2。

注:此方程的精确解为:y=e-20x

6.实验内容

(1) 实际验证梯形求积公式、Simpson求积公式、Newton-Cotes求积公式的代数精度。

(2) 针对上述三个函数和积分区间[a,b],实验观察梯形求积公式、Simpson求积公式和Newton-Cotes求积公式的复化求积公式的实际计算效果。

y=exp(-x.^2).*sin(10*x)+4; a=1; b=3;

y=sin(5*x)./x.^3;a=2*pi; b=4*pi;

y=sin(5*x)./x.^3;a=2*pi;b=9.4248;

推荐第3篇:CAD上机实习报告

CAD

班级:电子质检1101班 姓名:郭利智 学号:2011110902 指导老师:潘庆杰 上机实习报告

CAD上机实习报告

1.实习任务

用一周的时间对AUTOCAD软件练习的同时,完成机自教研室发的二维图例以及6个练习图,并完成相应的实习报告,并将绘制图形的各个步骤在实习报告中体现出来,将在实习过程中遇到的问题和绘图的关键步骤更具体的按要求写。

2.实习任务图(见附页)

3.实习任务图分析:

在老师所给的这些图中,基本包含了所有AUTOCAD经常使用的画图命令,并且能够进行熟练的操作,为以后的学习和工作打下坚定的基础。因此,画好这些图很有意义。

4.CAD上机实习总结

我们在此CAD培训中,不仅掌握了一些画图命令,更加熟悉了CAD环境和CAD桌面系统操作并且能够熟练的进行操作,进而画出一些简单二维图形,还学会了一些画图的快捷命令,使我的画图速度有所提高,也为我以后的学习和工作提供了有利的条件。

对于AUTOCAD,在绘图过程中,通过老师的讲解和自己的摸索以为自己以前所学的知识,我能熟练的运用有关快捷的命令,比起以前手绘图快了许多。更重要的是掌握了有关字母类的快捷命令,更方便了绘图。

推荐第4篇:成本会计上机实习报告

实习报 告 书 专 用 纸

1 实习目的

还是大一时我们学习了成本会计,当时的我们是很茫然的,老是认为成本会计很难,而且那时的我们也不太认真听讲,就导致了我们现在成本会计实习有点措手不及,但是我们都会认真做好的。成本会计作为我们的专业,我们应该很慎重的学习,学习成本会计的目的就是为了让我们综合复习与巩固成本会计课程所学的理论知识,做到理论联系实际,培养和提高会计核算的实际操作能力。加深对成本会计核算过程以及核算方法的理解和掌握,为毕业后从事会计工作打下坚实基础。这也是为了我们

大一学习成本会计不牢固而做到一个后续工作。而《成本会计》课程是会计学专业的主干课程之一,同时也是一门专业实践性课程。是会计学专业实践教学的重要环节,是对学生掌握成本会计的基本理论和方法进行综合检查的教学形式。这个旨在综合复习与巩固成本会计的有关会计收获理论知识的课程实习,是通过学生对会计实习成本会计资料的演练和操作、熟悉成本会计核算实务的整个流程。所以说我们得好好珍惜此次实习机会的,将来对我们踏上会计岗位打下一定基础。

2 实习内容

由于实习时间不多,在材料费用方面,分配费用比较简单,比如一批材料为几种产品共同使用,应根据一定的分配方法如按材料消耗定额或材料定额费用分配,从而计入各产品成本;人工费用方面,应按成本项目进行归集,生产工人的计入生产成本,车间管理人员的计入制造费用,厂部管理部门的计入管理费用等,若生产多种产品,应按一定的方法如实际工时进行分配后分别计入各成本项目;辅助生产费用方面,在本次实习中,主要运用交互分配法分配,这里用的方法相对来说难度比前面的大,不过最重要的求分配率;制造费用的分配方面,将在生产环节发生的制造费用按一定的方法如工时比例、定额材料比例,分配计入各有关产品的基本生产成本项目中;废品损失计算,在核算时,将不可修复废品的生产成本和可修复废品发生的费用计入“废品损失”账户的借方,将受到的赔款和废品残值计入“废品损失”账户的贷方,然后结转出净损失;完工产品和在产品成本的计算是成本核算的最后一项内容,也是很难很重要的部分在实习中我们要用约当产量法,定额成本法和定额费用分配法来做,在这里我们花费了好多时间

直接分配法也是我们实习的一个方法,在这个方法运用过程中直接分配法是指在各辅助生产车间发生的费用,直接分配给辅助生产以外的各受益单位,辅助生产车间之间相互提供的产品和劳务,不互相分配费用。

如果企业辅助生产车间相互提供产品或劳务能够满足一定的条件,也可以采用一些简单的方法来计算各辅助生产车间产品或劳务的实际单位成本。直接分配法就是这些简化方法中的一种,采用直接分配法分配辅助生产费用,只将各辅助生产车间已归集入帐的费用直接分配给非辅助生产车间受益单位,对于各辅助生产车间相互提供的产品或劳务则不进行交互分配费用。

①直接分配法实质上是代数分配法的一种简化形式,是在满足各辅助生产车间提供的产品或劳务而相应负担的辅助生产费用接近相等的条件下,直接将已归集入帐的辅助生产费用分配给非辅助生产受益单位,各辅助生产车间之间因彼此耗用对方的产品或劳务而应当负担的辅助生产费用接近相等而不用交互分配辅助生产费用。所以,辅助生产车间采用直接分配法分配辅助生产费用的条件是:各辅助生产车间相互提供的产品或劳务而应负担的辅助生产费用接近相等。

②直接分配法的分配等于各辅助生产车间分配前已归集入帐的费用合计除以各该辅助生产车间提供给非辅助生产车间受益单位的产品或劳务总数。给我印象最深刻的还有就是一次交互分配法,它是指企业各辅助生产车间之间有相互服务的情况下,先将各辅助生产车间直接发生的费用进行一次交互分配,然后再进行一次直接的追加分配的一种辅助生产费用分配方法。即:分为两个阶段进行分配。在这一分配方法下,先将各辅助生产车间直接发生的费用,按照提供服务数量的比例,分配给所有受益的基本生产车间、管理部门及辅助生产车间,各辅助生产车间为本车间服务的,亦得同样分配。经过分配后,各辅助生产车间直接发生的费用,虽然已全数分配出去,但同时又接受了其他辅助生产车间及本车间分配来的成本。所以还要将各该辅助生产车间受分配的成本合计数,分别追加分配于各有关基本生产车间和管理部门,但不再分配给各有关辅助生产车间。一次交互分配法在一定程度上反映了各辅助生产车间之间的相互服务关系。 一次交互分配法的计算公式是第一阶段将各辅助生产车间互相提供的服务量按交互分配前的单位成本,在辅助生产车间之间进行第一次交互分配;第二阶段再将各辅助生产车间交互分配后的费用(即原费用加上交互分配转入的费用,减去交互分配转出的费用),按其提供给基本生产车间和其他部门的服务量和交互分配后的单位成本,在辅助生产车间以外的各受益单位之间进行分配。其有关的计算公式为:

(1)交互分配计算公式如下:

交互分配前某项劳务单位成本=某辅助生产车间交互分配的费用总额/该辅助生产车间提供的劳务数量总和 某辅助生产车间应分配劳务费用=该辅助生产车间耗用的劳务数量×交互分配前该项劳务单位成本 (2)对辅助生产以外分配的计算公式如下:

交互分配后某项劳务单位成本=某辅助生产车间交互分配后的费用总额/辅助生产车间以外的各受益单位耗用劳务数量总和 辅助车间以外的受益单位应分配劳务费用=该车间(或部门)耗用劳务的数量×交互分配后该项劳务单位成本 采用这种方法分配费用时,同样是根据各辅助生产成本明细账上归集的费用及其提供的劳务(或产品)的情况,通过编制“辅助生产费用分配表”进行分配的。3实习心得

经过几天的实习,让我感觉到了一定的难度与复杂,最重要的就是大一时成本会计的基础知识没学好,不牢固,我们做过基础会计实习和财务会计实习,但唯有这个成本会计感受到了一定的难度,让我真正体会到成本会计是一项巨大而复杂的工作,它最考验一个人的耐力与细心,每一个过程都是非常的复杂与繁琐,所以一定要养成细心做事的习惯。经过实习,使我比较全面、系统的了解和熟悉了现代成本会计核算各个环节的基本内容,加深了我对成本会计核算基本原则和方法的理解,使我对成本会计操作的基本技能更加熟练,为我们以后的学习和工作打下了坚实的基础;以前没有学懂的一些东西,在这个实习过程中我基本把它们弄懂了,可以说这是对我所学知识的复习和深入。

当然我们在实习中有很大的不足:我们学校的条件有限,导致我们只能在机房进行操作实习,而且网络老断导致我们的实习进行的不是很顺利,所以我们在实习的过程中只是根据实习教材做题训练,虽然在这个过程中我们学会了做一些题,这就使我们缺乏了一定的好的实习环境。不过通过这次的实习也学到了很多东西与方法,也锻炼了我们的耐心与细心,对于我们以后踏上工作培养了良好的品质,我们应该珍惜此次机会。

推荐第5篇:大地测量上机实习报告

题目: 大地测量学上机实习

学 号:

姓 名: 班 级:

专 业: 测绘工程 课程名称: 大地测量学基础 课程老师:

大地测量学上机实习报告

一、实习目的:

了解大地测量学的定义以及作用,让同学们充分了解大地测量学在现代社会的重要地位及其广泛的应用,让同学们体验大地测量的一些解题计算方法与运用。也让同学们对于复杂的测绘计算如何用计算机通过编程来解决,同时对于坐标转化和高斯投影的处理方法进行一定的了解。

二、实习任务:

1、

2、空间坐标转换编程;高斯投影正算编程;

3、高斯投影反算编程;

三、实习时间与地点:

地点:核工楼410教室;

时间:每周四上午一二节课,共三周;

四、实习仪器:

电脑,C++编程软件;

5、实习步骤: 5.1实验方法步骤

1、先了解书本上关于大地主题解算的步骤;

2、根据公式用VC编写程序

3、对编写的程序代码进行调试运行 5.1.1大地坐标空间直角坐标系转换

X(NH)cosBcosL1)空间大地坐标系向空间直角坐标系的转换公式为:Y(NH)cosBsinLZ[N(1e2)H]sinB式中,Na,a为椭球的长半轴,N为椭球的卯酉圈曲率半径a=6378.137km W W1e2sin2B,e2a2b2a2,e为椭球的第一偏心率,b=6356.7523141km。

2)程序代码 #include #include #define PI 3.1415926535897932384626433832795 double rad(double a,double b,double c) {b=b+c/60; a=a+b/60;

a=a/180*PI; return a;} void deg(double d,int *d1,int *d2,double *d3) {d=d/PI; *d1=(int)d; *d2=(int)((d-*d1)*60); *d3=((d-*d1)*60-*d2)*60;} void X1(double a1,double e) {double l,b,h,x,y,z,a,b1,c,n,w; printf("please input L:\n"); scanf("%lf%lf%lf",&a,&b1,&c); l=rad(a,b1,c);

b为椭球的短半轴 printf("please input B:\n"); scanf("%lf%lf%lf",&a,&b1,&c); b=rad(a,b1,c); printf("please input H:\n"); scanf("%lf",&h); w=sqrt((1-e*e*sin(b)*sin(b))); n=a1/w; x=(n+h)*cos(b)*cos(l); y=(n+h)*cos(b)*sin(l); z=(n*(1-e*e)+h)*sin(b); printf("X=%f\nY=%f\nZ=%f\n",x,y,z);} void X2(double a1,double e) {double l,b,h,x,y,z,n,w,m,g,m1,g1,l3,b3;int l1,l2,b1,b2; printf("please input X:\n"); scanf("%lf",&x); printf("please input Y:\n"); scanf("%lf",&y); printf("please input Z:\n"); scanf("%lf",&z); l=atan2(y,x); do{m=(z+a1*e*e*g/sqrt(1+g*g-e*e*g*g))/sqrt(x*x+y*y); m1=atan(m); g1=atan(g); m1=m1/PI*180*3600; g1=g1/PI*180*3600; g=m;} while(sqrt((m1-g1)*(m1-g1))>0.0001); b=atan(m); w=sqrt(1-e*e*sin(b)*sin(b)); n=a1/w; h=sqrt(x*x+y*y)/cos(b)-n; deg(l,&l1,&l2,&l3); deg(b,&b1,&b2,&b3); printf("L=%d°%d'%2.6f''\nB=%d°%d'%2.6f''\nH=%5.6fm\n",l1,l2,l3,b1,b2,b3,h);} void f(int a) {double a1,e,e2;int b,c; printf("please input L,B,H→X,Y,Z:请输入1 或 X,Y,Z→L,B,H:请输入2\n"); scanf("%d",&b); printf("请选择参考椭球面:\n克拉索夫斯基椭球(请输入1) \n或 IUGG 1975椭球(请输入2) \n或 CGCS 2000椭球(请输入3)\n或WGS-84椭球体(请输入4)"); scanf("%d",&c); if (c==1){a1=6378245.0000,e2=0.00669342162297;} else if (c==2){a1=6378140.0000,e2=0.00669438499959;} else if (c==3){a1=6378137.0000,e2=0.00669438002290;} else if (c==4){a1=6378137.0000,e2=0.00669437999013;}; e=sqrt(e2); if (b==1)X1(a1,e); else if(b==2)X2(a1,e);} main() {int a=1; do {f(a); printf("A,B,0\n"); scanf("%d",&a);} while(a); } 调试运行:

5.1.2高斯投影正算

1)由第二条件知 : 位于中央子午线上的点,投影后的纵坐标 x 应等于投影前从赤道量至该点的子午线弧长 X ,即 (8-33) 式第一式中,当 有:

顾及 ( 对于中央子午线 )

得:

依次求得

并代入 (8-33) 式,得到高斯投影正算公式

2)程序代码: #include #include #define PI 3.1415926 #define p 206265 #define e 0.00669437999013 #define e1 0.00673949674227 main() { double m0,m2,m4,m6,m8,a0,a2,a4,a6,a8; double B,X,t,n,N,W,x,y,l; float dd,mm,; int a=6378137; printf("选择WGS-84坐标系\n"); printf("input the B"); scanf("%lf%lf%lf",&dd,&mm,&); B=(dd+mm/60.0+/3600.0)*PI/180.0; W=sqrt(1-e*sin(B)*sin(B)); N=a/W; n=e1*cos(B)*cos(B); t=tan(B); m0=a*(1-e); m2=3/2*e*m0; m4=5/4*e*m2; m6=7/6*e*m4; m8=9/8*e*m6; a0=m0+m2/2+3/8*m4+5/16*m6+35/128*m8; a2=m2/2+m4/2+15/32*m6+7/16*m8; a4=m4/8+3/16*m6+7/32*m8; a6=m6/32+m8/16; a8=m8/128; X=a0*B-a2/2*sin(2*B)+a4/4*sin(4*B)-a6/6*sin(6*B)+a8/8*sin(8*B); printf("X=%lf",X); printf("输入经差l\n"); scanf("%lf",&l);

x=X+(N/(2*p*p))*sin(B)*cos(B)*l*l+(N/(24*p*p*p*p))*sin(B)*cos(B)*cos(B)*cos(B)*(5-t*t+9*n)*l*l*l*l; y=(N/p)*cos(B)*l+(N/(6*p*p*p))*cos(B)*cos(B)*cos(B)*(1-t*t+n)*l*l*l+(N/(120*p*p*p*p*p))*cos(B)*cos(B)*cos(B)*cos(B)*cos(B)*(5-18*t*t+t*t*t*t)*l*l*l*l*l; printf("x=%lf\ny=%lf\n",x,y); return 0; } 运行调试结果:

5.1.3高斯投影反算 公式

BBftftf2MfNf5fy2tf24MfN3f53t2f22429tyfff720MfNNfy6190t2t4y6f45flyy32212tffcosBf6N3cosBffy5120N5fcosBf2)程序代码: #include #include

528t2f224t422f6f8ftf#define PI 3.1415926535897932 #define P 206264.806247096355 void main() { long double RadianToAngle(long double alfa); long double Bf(long double a,long double b,long double x); void GSFS(long double a,long double b,long double Bf,long double y,long double *B,long double *l); long double a,b,x,y,L0; long double FSB,FSL; long double *pointer_B,*pointer_L; long double DH; pointer_B=&FSB; pointer_L=&FSL; a=6378140.0000000000;b=6356755.2881575287; printf("请输入x坐标和y坐标:(输入时x坐标和y坐标之间用逗号隔开)\n"); scanf("%lf,%lf",&x,&y); FSB=Bf(a,b,x); DH=floor(y/1000000); y=y-DH*1000000-500000; GSFS(a,b,FSB,y,pointer_B,pointer_L); FSB=RadianToAngle(FSB); FSL=RadianToAngle(FSL); L0=DH*6-3; printf("\n\t===========================计算结果===========================\n"); printf("\n\t\tB=%-20.10lf\t\tL=%-20.10lf\n",FSB,DH*6-3+FSL); printf("\n\t===============\n"); } long double RadianToAngle(long double alfa) { long double alfa1,alfa2; alfa=alfa*180./PI; alfa1=floor(alfa)+floor((alfa-floor(alfa))*60.)/100.; alfa2=(alfa*60.-floor(alfa*60.))*0.006; alfa1+=alfa2; return(alfa1); } long double Bf(long double a,long double b,long double x) { long double e,m0,m2,m4,m6,m8; long double a0,a2,a4,a6,a8; long double B,FB,Bn1,Bn; int n=0; e=(sqrt(a*a-b*b))/a; m0=a*(1-e*e); m2=3.0/2.0*e*e*m0; m4=5.0/4.0*e*e*m2; m6=7.0/6.0*e*e*m4; m8=9.0/8.0*e*e*m6; a0=m0+m2/2.0+3.0/8.0*m4+5.0/16.0*m6+35.0/128.0*m8; a2=m2/2.0+m4/2.0+15.0/32.0*m6+7.0/16.0*m8; a4=m4/8.0+3.0/16.0*m6+7.0/32.0*m8; a6=m6/32.0+m8/16.0; a8=m8/128.0; B=x/a0; FB=a2/2.0*sin(2*B)-a4/4.0*sin(4*B)+a6/6.0*sin(6*B)-a8/8.0*sin(8*B); do { Bn=B; B=(x+FB)/a0; FB=a2/2.0*sin(2*B)-a4/4.0*sin(4*B)+a6/6.0*sin(6*B)-a8/8.0*sin(8*B); Bn1=B; } while(fabs((Bn1-Bn)*P)>=0.000000000001); return(B); } void GSFS(long double a,long double b,long double Bf,long double y,long double *B,long double *l) { long double e,e1,V,t,u2; long double n0,n2,n4,n6,n8,sin2B,sin4B,sin6B,sin8B,N; e=(sqrt(a*a-b*b))/a; e1=(sqrt(a*a-b*b))/b; V=sqrt(1+e1*e1*cos(Bf)*cos(Bf)); t=tan(Bf); u2=e1*e1*cos(Bf)*cos(Bf); n0=a; n2=1.0/2.0*e*e*n0; n4=3.0/4.0*e*e*n2; n6=5.0/6.0*e*e*n4; n8=7.0/8.0*e*e*n6; sin2B=pow(sin(Bf),2); sin4B=pow(sin(Bf),4); sin6B=pow(sin(Bf),6); sin8B=pow(sin(Bf),8); N=n0+n2*sin2B+n4*sin4B+n6*sin6B+n8*sin8B;

*B=Bf-1.0/2.0*V*V*t*((y/N)*(y/N)-1.0/12.0*(5+3*t*t+u2-9*u2*t*t)*pow((y/N),4)+1.0/360.0*(61+90*t*t+45*pow(t,4))*pow((y/N),6)); *l=1.0/cos(Bf)*((y/N)-1.0/6.0*(1+2*t*t+u2)*pow((y/N),3)+1.0/120.0*(5+28*t*t+24*pow(t,4)+6*u2+8*u2*t*t)*pow(y/N,5)); } 3)运行结果:

7、实习总结:

通过这次大地坐标转换及高斯投影正反算程序代码编写设计的上机操作学习,我更加了解了如何运用计算机编程去处理复杂的测绘计算,并且也知道了对于编程时遇到的一般问题该如何解决,对于坐标转换和高斯正反算的一些理念也有一定的了解。本次实习,利用计算机编程来实现测量数据的处理,让我对坐标系之间的转化,高斯投影正反算的原理以及计算过程有了更深刻的理解和记忆,感觉受益匪浅。不过在本次实习期间,也出现了一些小问题。在编写程序的时候,略显生疏,花费了较多的时间,以后有待提高;对于计算公式中的有的字母,忘记其所代表的具体意义,不过最终通过复习,搞明白每一个字母的含义。

实习就是一个理论与实践相结合的过程,希望自己能在这一方面有更大的进步!

推荐第6篇:linux上机实习报告

目 录

Linux 第一次上机(运行环境RedHat) ................................................................................1 调试运行CD唱片应用程序 .......................................................................................1 运行过程............................................................................................................1 心得体会............................................................................................................3 编写shell脚本,求1到100的和 ..............................................................................3 运行过程............................................................................................................3 源代码 ...............................................................................................................4 编写shell脚本,从键盘输入两个数,求这两个数的和 .................................................4 运行过程............................................................................................................4 源代码 ...............................................................................................................5 等待特定用户登录,每30秒确认一次 .......................................................................5 运行过程............................................................................................................5 源代码 ...............................................................................................................6 找出系统中当前消耗磁盘容量最大的前10个用户,并向他们发送警告邮件 ...............6 运行过程............................................................................................................6 源代码 ...............................................................................................................8 查找输入文件的路径 .................................................................................................8 运行过程............................................................................................................8 源代码 ...............................................................................................................9 Linux 第二次上机(运行环境RedHat) ................................................................................9 定制自己的ls命令。提供至少三种带参数的执行方式................................................9 运行过程............................................................................................................9 源代码 ..............................................................................................................11 调试编译串行口通信程序p6.5.c...............................................................................16 运行过程..........................................................................................................16 Linux 第三次上机(运行环境RedHat,CentOS) ...............................................................16 创建一个系统监听守护进程,一旦接收到其他进程发来的信号,马上给出报告........16 运行过程..........................................................................................................16 源代码 .............................................................................................................18 分别利用本地socket套接字和INTENET套接字实现进程间文件传输 ......................20 本地socket套接字运行过程 .............................................................................20 本地socket套接字服务器server1.c源代码 ........................................................22 本地socket套接字客户端client1.c源代码.........................................................23 INTENET套接字运行过程 ...............................................................................25 INTENET套接字服务器server2.c源代码 ..........................................................28 INTENET套接字客户端client2.c源代码...........................................................29 感谢与收获 ....................................................................................................................30

Linux 第一次上机(运行环境RedHat) 调试运行CD唱片应用程序 运行过程

图表 1第一步,使用./CD 命令运行CD脚本

图表 2进入选项界面

图表 3增加CD

图表 4查找CD

图表 5查询数目

图表 6退出

心得体会

通过运行书上的CD唱片应用程序,进一步地了解到shell编程的方法,以及编写程序的思路。

编写shell脚本,求1到100的和 运行过程

图表 7使用./sum1to100运行

源代码

图表 8使用cat sum1to100查看源代码

编写shell脚本,从键盘输入两个数,求这两个数的和

运行过程

图表 9使用./sumAandB 运行

源代码

图表 10使用cat sumAandB查看源代码

等待特定用户登录,每30秒确认一次 运行过程

已知特定用户是zzx,我首先让root用户登录并运行程序,可以发现每隔30s提醒一次

图表 11使用./checkuser运行

当我切换到zzx用户,并再次运行程序,可得如下结果

源代码

图表 12使用cat checkuser查看代码

找出系统中当前消耗磁盘容量最大的前10个用户,并向他们发送警告邮件 运行过程

由于权限等问题,我们使用root用户运行程序

图表 13使用./mymail运行

运行完毕后,我们就可以查看邮件了

图表 14 root用户收到的邮件

图表 15 zzx用户收到的邮件

图表 16 t1用户收到的邮件

源代码

图表 17 使用cat命令查看

查找输入文件的路径 运行过程

由于权限的问题,我们使用root用户运行程序

图表 18 使用./route运行,并按照要求输入文件名

源代码

图表 19 使用cat route查看源代码

Linux 第二次上机(运行环境RedHat) 定制自己的ls命令。提供至少三种带参数的执行方式 运行过程

图表 20 使用./ls 运行不带参数ls

图表 21使用./ls -l 运行带参数-l 的ls

图表 22 使用./ls -a运行带参数 -a的ls

图表 23使用./ls -al 运行带参数-al的ls 源代码

#include #include #include #include #include #include #include #include #include #include

int do_ls(char *dir,char *filename,int lflag) {

int n; struct stat buf; char out[100]; struct pawd *pw;

struct group *gr; struct tm *t; if(lflag == 0) {

} {

} return 0;

printf(\"%s\\t\",filename); if(lstat(dir,&buf)

case S_IFSOCK:

printf(\"s\"); } for(n=8;n>=0;n--) {

if(buf.st_mode&(1

break;

}

} else { } { case 2:

printf(\"r\"); break; case 1:

printf(\"w\"); break; case 0:

printf(\"x\"); break; default: break; } printf(\"-\"); printf(\" %d\",buf.st_nlink);

pw = getpwuid(buf.st_uid); printf(\" %s\",pw->pw_name); gr = getgrgid(buf.st_gid); printf(\" %s\",gr->gr_name); printf(\" %ld\",buf.st_size); t = localtime(&buf.st_atime); printf(\" %d-%d-%d %d:%d\"

,t->tm_year+1900 ,t->tm_mon+1 ,t->tm_mday ,t->tm_hour

,t->tm_min);

printf(\" %s \",filename);

if(S_ISLNK(buf.st_mode)) {

printf(\" ->\"); if(readlink(filename,out,100)==-1) { } //printf(\"readlink error\\n\");

} printf(\"%s\",out); } printf(\"\\n\"); return 0; int ls_prepare(char *w,int aflag,int lflag) {

struct stat buf; char name[100]; DIR *dir;

struct dirent *pdr; if(lstat(w,&buf)

dir = opendir(w); {

} closedir(dir);

while ((pdr = readdir(dir))!=NULL) if(aflag==0) {

if(pdr->d_name[0]==\'.\')

continue; memset(name,0,100);

strcpy(name,w);

strcat(name,\"/\");

strcat(name,pdr->d_name); do_ls(name,pdr->d_name,lflag); }else

{

} memset(name,0,100); strcpy(name,w); strcat(name,\"/\"); strcat(name,pdr->d_name); do_ls(name,pdr->d_name,lflag); }else { do_ls(w,w,lflag);

} {

} }

return 0; int main(int argc,char **argv) int aflag =0; int lflag =0; char c; int i; while((c = getopt(argc,argv,\"al\"))!=-1) {

} switch(c) { case \'a\': aflag =1; break; case \'l\': lflag =1; break; default: break; }

if(argc == optind ) { ls_prepare(\"./\",aflag,lflag); } else {

} for(i=optind;i

调试编译串行口通信程序p6.5.c 运行过程

由于权限问题,我们在root用户下运行程序

图表 24 使用./mytrunk不带参数运行

图表 25使用./mytrunk /dev/ttyS0 0带参数运行

Linux 第三次上机(运行环境RedHat,CentOS) 创建一个系统监听守护进程,一旦接收到其他进程发来的信号,马上给出报告 运行过程

图表 26首先运行守护进程之后查看 当前进程

图表 27可以发现守护进程-jincheng在后台运行,且 PPID=1,PID=4085

图表 28可以发现守护进程向test.txt发送了start

图表 29向守护进程发送终止信号,终止守护进程

图表 30可以发现后台运行的守护进程没了

图表 31可以发现守护进程又向test.txt发送了end

图表 32具体查看test.txt

图表 33具体查看test.txt的内容

源代码

#include #include #include #include #include #include #include /* Daemonize myself.*/ int fd1; void sigintHandler(int sig) {

if(sig==SIGTERM) { write(fd1,\"end\\n\",5); exit(0); } } int daemon (int nochdir, int noclose) {

pid_t pid;

pid = fork ();

/* In case of fork is error.*/

if (pid

{

perror (\"fork\");

return -1;

}

/* In case of this is parent proce.*/

if (pid != 0)

exit (0);

/* Become seion leader and get pid.*/

pid = setsid();

if (pid

{

perror (\"setsid\");

return -1;

}

/* Change directory to root.*/

if (! nochdir)

chdir (\"/\");

/* File descriptor close.*/

if (! noclose)

{

int fd;

fd = open (\"/dev/null\", O_RDWR, 0);

if (fd != -1)

{

dup2 (fd, STDIN_FILENO);

}

dup2 (fd, STDOUT_FILENO);

dup2 (fd, STDERR_FILENO);

if (fd >2)

close (fd);

}

umask (0027);

return 0;

}

int main(void) { fd1=open(\"test.txt\",O_RDWR | O_TRUNC);

} write(fd1,\"start\\n\",7); daemon(0,0); signal(SIGTERM,sigintHandler); sleep(1000); return 0;

分别利用本地socket套接字和INTENET套接字实现进程间文件传输

本地socket套接字运行过程

图表 34使用./server1运行服务器,显示服务器等待状态

图表 35当在另外一个终端运行客户端程序时,服务器显示客户连接,并要求输入传输文件名称

图表 36当服务器输入文件名称server1.c后客户端显示接收信息,不过接收到的文件重定向到

test.txt中

图表 37 server1.c的内容

图表 38 客户端接收到显示在test.txt的内容,和server1.c的内容比较,完全一致

本地socket套接字服务器server1.c源代码

#include #include #include #include #include #include #include #include int main() {

int filefd,n; ////////////////

char file[100],buf[1024]; ////////////////

int server_sockfd,client_sockfd;

int server_len,client_len;

struct sockaddr_un server_addre;

struct sockaddr_un client_addre;

unlink(\"server_socket\");

server_sockfd =socket(AF_UNIX,SOCK_STREAM,0);

server_addre.sun_family =AF_UNIX;

strcpy(server_addre.sun_path,\"server_socket\");

server_len =sizeof(server_addre);

bind(server_sockfd,(struct sockaddr *)&server_addre,server_len);

listen(server_sockfd,5);

while(1)

{

printf(\"server waiting\\n\");

client_len =sizeof(client_addre);

client_sockfd=accept(server_sockfd,(struct *)&client_addre,&client_len);

if(client_sockfd!=-1)

{

printf(\"you have a client ,please put the filename to transport!!\\n\");

scanf(\"%s\",file);

if((filefd=open(file,O_RDWR))

{

perror(\"can\'t find the file\");

exit(1);

}

printf(\"filefd= %d\\n\",filefd);

printf(\"the file is transported ,please wait...\\n\");

lseek(filefd,0L,0);//每次接受客户机连接,应将用于读的源文件指针移到文件头

write(client_sockfd,file,sizeof(file));//传送文件名

if((n=read(filefd,buf,sizeof(buf)))>0)

{

}

write(client_sockfd,buf,n);

sockaddr

printf(\"you have transport %d bytes and it is end!!\\n\",n);

close(client_sockfd);

}

close(filefd);

} }

本地socket套接字客户端client1.c源代码

#include #include #include #include #include #include

#include #include int main() {

int filefd,n,oldfilefd; /////////////////

char file[100],buf[1024];

int sockfd;

int len;

struct sockaddr_un addre;

int result;

sockfd =socket(AF_UNIX, SOCK_STREAM,0);

addre.sun_family =AF_UNIX;

strcpy(addre.sun_path,\"server_socket\");

len=sizeof(addre);

result=connect(sockfd,(struct sockaddr *)&addre,len);

if(result == -1)

{

perror(\"oops:client1\");

exit(1);

}

if(result!= -1)

{

oldfilefd=open(\"test.txt\",O_RDWR);

filefd=dup(oldfilefd);

read(sockfd,file,sizeof(file));

printf(\"the filename you receive is:%s\\n\",file);

if((n=read(sockfd,buf,sizeof(buf)))>0)

{

write(filefd,buf,n);

}

printf(\"you have received a file which is %d bytes,but the file\'s context cover the test.txt,so please check into test.txt!!\\n\",n);

close(sockfd);

}

close(filefd);

exit(0); }

INTENET套接字运行过程

图表 39使用./server2运行服务器,显示服务器等待状态

图表 40当在另外一个终端运行客户端程序时,服务器显示客户连接,并要求输入传输文件名称

图表 41当服务器输入文件名称server2.c后客户端显示接收信息,不过接收到的文件重定向到

test.txt中

图表 42 server2.c的内容

图表 43客户端接收到显示在test.txt的内容,和server2.c的内容比较,完全一致

INTENET套接字服务器server2.c源代码

#include #include #include #include #include #include #include #include #include

int main() { int filefd,n;////////////////

char file[100],buf[4096];/////////////////// int server_sockfd,client_sockfd;

int server_len,client_len; struct sockaddr_in server_addre; struct sockaddr_in client_addre; server_sockfd =socket(AF_INET,SOCK_STREAM,0); server_addre.sin_family=AF_INET; server_addre.sin_addr.s_addr=inet_addr(\"127.0.0.1\"); server_addre.sin_port =9734; server_len=sizeof(server_addre); bind(server_sockfd,(struct sockaddr *)&server_addre,server_len); listen(server_sockfd,5); while(1)

{

printf(\"server waiting\\n\");

client_len =sizeof(client_addre);

client_sockfd=accept(server_sockfd,(struct *)&client_addre,&client_len);

if(client_sockfd!=-1)

{

printf(\"you have a client ,please put the filename to transport!!\\n\"); scanf(\"%s\",file);

if((filefd=open(file,O_RDWR))

sockaddr

perror(\"can\'t find the file\");

exit(1);

}

printf(\"filefd= %d\\n\",filefd);

printf(\"the file is transported ,please wait...\\n\");

lseek(filefd,0L,0);//每次接受客户机连接,应将用于读的源>文件指针移到文件头

write(client_sockfd,file,sizeof(file));//传送文件名

if((n=read(filefd,buf,sizeof(buf)))>0)

{

write(client_sockfd,buf,n);

}

printf(\"you have transport %d bytes and it is end!!\\n\",n);

close(client_sockfd);

}

close(filefd);

} }

INTENET套接字客户端client2.c源代码

#include #include #include #include #include #include #include #include #include

int main() {

int filefd,n,oldfilefd;//////////////////// char file[100],buf[4096]; int sockfd; int len; struct sockaddr_in addre; int result; sockfd =socket(AF_INET,SOCK_STREAM,0); addre.sin_family =AF_INET; addre.sin_addr.s_addr =inet_addr(\"127.0.0.1\"); addre.sin_port =9734; len =sizeof(addre);

result=connect(sockfd,(struct sockaddr *)&addre,len);

if(result == -1)

{

perror(\"oops:client2\");

exit(1);

}

if(result!=-1) {

oldfilefd=open(\"test.txt\",O_RDWR);

filefd=dup(oldfilefd);

read(sockfd,file,sizeof(file));

printf(\"the filename you receive is:%s\\n\",file);

if((n=read(sockfd,buf,sizeof(buf)))>0)

{

write(filefd,buf,n);

}

printf(\"you have received a file which is %d bytes,but the file\'s context cover the test.txt,so please check into test.txt!!\\n\",n);

close(sockfd); } close(filefd);

exit(0); }

感谢与收获

通过这几次上机实习,使我更加扎实的掌握了有关Linux C编程方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过编程,使我们掌握的知识不再是纸上谈兵。

过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上披荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!

实践课诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。

我认为,在这学期的课程设计中,不仅培养了独立思考、动手操作的能力,在各种

其它能力上也都有了提高。更重要的是,在课程设计上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

推荐第7篇:上机实习实践报告

时代在进步,社会在发展,而随之而来的竞争也非常严峻的摆在了我们的面前,现代社会所需要的已经不再是单纯的知识型人才。时代赋予人才新的定义:不仅能够驾驭新科技,具有创新意识,更要有将科技应用于实践的能力。专业组织的这次实践,让那个我获益匪浅。 我们都知道,天下没有免费的午餐,守株能待兔最终会遭到失败——只有全心投入,才能有真切的感受。同时,我也想通过亲身体验实践让自己更进一步了解自己所学的专业知识,在实践中增长见识,锻炼自己的才干,培养自己的韧性,更为重要的是检验一下自己所学的东西能否被社会所用,自己的能力能否被社会所承认。想通过实践,找出自己的不足和差距所在,为将来的努力制定一个方向。

上机实践使同学们找到了理论与实践的最佳结合点。尤其是我们学生,只重视理论学习,忽视实践环节,往往在实际工作岗位上发挥的不很理想。通过实践所学的专业理论知识得到巩固和提高。就是紧密结合自身专业特色,在实践中检验自己的知识和水平。通过实践,原来理论上模糊和印象不深的得到了巩固,原先理论上欠缺的在实践环节中得到补偿,加深了对基本原理的理解和消化。

在此期间,我经历了一次次的失败和成功,更加锻炼了我的心理素质。刚开始做程序,总觉得无从下手,但后来慢慢深入才发现,这也是件有趣的事情。自己做的程序要符合使用者的要求,而且对自己的程序设计要想到周到,怎样做到更加人性化是我努力的方向,因此,我对自己的程序进行了全面的测试。这个过程,让我知道了自己的长处和短处,同时锻炼了我的思维,没有失败哪来成功,在我的不断努力下,我终于完成了自己的作品,经历了这些,我终于发现只有不断努力、不放弃才能走向成功。

以上是我的社会实践个人总结。在劳累忙碌的十几天里,我也体会到了实践的快乐,同时也感到了所学知识的不足,在以后的日子里必须继续更加努力学习,学好专业知识,全面发展自己,在实践中长知识求发展。在以后的日子里,不可避免的,我还将面对更多的问题,将承担更大的责任,并在其中更加成熟和真正走入社会。而这次社会实践,就算是我走向社会的第一步吧。

推荐第8篇:arcgis上机实习报告

课程实习报告

实习课程:《ArcGIS专业技能训练实习报告》

名:

号:

业:

级:

2012年 6月

20日

ArcGIS专业技能训练实习报告

实习目的:

通过学习Arcgis这款Gis应用软件熟练我们的实际应用能力,深入理解GIS软件应用的核心部分,通过熟练Arcgis能掌握类似相关软件操作,加强动手能力。

实习步骤:

1.对Arcgis软件整体掌握,并与之前各类软件操作对比和学习。

2.具体对软件操作掌握空间数据的采集与组织、数据的处理与变、数据的可视化表达。

3.Arcgis的空间分析能力的掌握:矢量数据的空间分析、栅格数据的空间分析、三维分析、地统计分析、水文分析等。4.掌握Arcgis的空间分析建模。

实习内容:

根据练习内容,选择了练习第

3、

4、

5、

7、12章的内容,其余在课下自己练习完成,这些章内容分别为:空间数据的采集与组织、数据的处理与变换、数据的可视化表达、矢量数据空间分析、空间分析建模

Geodatabase是一种采用标准关系数据库技术来表现地理信息的数据模型。Geodatabase支持在标准的数据库管理系统(DBMS)表中存储和管理地理信息。 一. 基于Geodatabase的数据库设计

Geodatabase支持面向对象的矢量数据模型,它将地理数据组织成一个数据对象的结构体系。在Geodatabase模型中,实体被表示为属性,行为,关系的对象。Geodatabase还允许用户定义对象之间的关系,以及保持对象之间参照完整性的规则。Geodatabase也定义了简单的对象,地理要素,几何网络,注记要素等多种对象类型。 二. Geodatabase中的信息类型

1.表(table):是记录的集合,每个记录(行)中包括许多列(字段);

2.对象类(object claes):对象表示一个没有空间几何的实体,没有位置相关信息,但是可以通过关系类与要素联系起来,一个对象类作为一个表存储在Geodatabase中,一个对象是表中的一行。 3.要素类(feature claes):表示有空间几何的实体,有位置相关信息。要素类是具有相同的属性和相同的几何表示类型的要素集合。 1)简单要素类:没有拓扑关联,包括点,线,多边形,注记等多种类型,以要素的方式管理,存放在要素集内外均可。

2) 复杂要素类则是有拓扑关联的若干个要素类的组合,必须存放在同一个要素数据集中,例如拓扑要素、几何网络等类型。

4.子类(subtype):在要素类内部可以划分若干个次一级的组,每个组是一个子类。每个子类有其自己的完整性规则和GIS行为。 5.要素数据集(feature database):要素数据集是一个具有相同空间参照的要素类的集合。

6.关系(relationships):是一种表(或要素类)与表(或要素类)之间的联系机制。关系类建立在对象(或要素)类之间,由一个对象(或要素)类指向另一个对象(或要素)类。

7.栅格数据集(raster data sets):影像作为栅格表来管理。

8.拓扑关系(topology):拓扑关系将参与拓扑的各个要素类集成在一个拓扑图中作为一个拓扑单元来管理,规定同一个要素类中的各个要素如何与其他要素共享几何或不同要素类之间如何共享几何。9.元数据:对数据库中各个数据元素的描述。

10.几何网络(geometric network):若干个要素类作为一个整体参与到几何网络的构造, Geodatabase通过拓扑关联保证参与到几何网络中的各个要素类的空间几何的连通性。几何网络将导致保证网络连通性的行为。

三. Geodatabase的优势:

1.所有图形数据和属性数据统一存储在商业DBMS中。

2.便于使用DBMS支持的多用户并发访问、事务管理、失败事务恢复、用户权限策略等机制,有利于空间信息共享、数据安全,提高了数据库性能。

3.支持智能化的要素、规则和关系。4.完善的用户支持。

四.Geodatabase数据库设计的内容

1.基本内容是规定 构成数据库的要素类、栅格数据集、其他表,以及表之间的各种关系。

2.其中,要素(或对象)类之间的关系通过要素数据集、关系类、拓扑来管理。

3.一个要素数据集中的各个要素类具有相同的空间参照;拓扑类、几何网络中的要素类受拓扑完整性约束。 五

Geodatabase数据库设计的步骤

1.用户视图建模 2.定义实体和关系 3.明确实体的表示 4.匹配到Geodatabase模型 5.组织地理数据集

六.将地理实体表示为Geodatabase数据类型

要在识别地理实体并决定其几何表示类型之后,决定数据如何在Geodatabase中表示。 具体包括两方面处理:

1.决定各种地理实体的表示类型及其拓扑关系;2.决定各实体的属性字段。

决定实体的表示类型的依据是其几何表示类型:点实体用点要素、简单节点、复合节点表示,线实体用线要素、简单边、复合边表示,面实体用多边形要素表示,表面实体用TIN或栅格数据集表示,空间位置无关的实体用对象(表)表示。

 其中点、线、面实体的离散分布有两种:

1.独立分布的实体,与其他要素无关,可以表示为简单的点、线、面要素;

2.与其他要素的分布相关,这种点、线实体可以表示为节点、边要素,面实体表示为有拓扑关系的多边形要素。

 考虑要素之间的拓扑关系,定义复合要素类:平面拓扑和几何网络。 平面拓扑强制保证要素不能相互交叉而没有交点。如土地或区划系统,采用平面拓扑管理要素间的公共边。

 几何网络强制保持网络要素之间的连通性,是网络编辑易于操作。如对于线状系统,交通网络,多采用几何网络表示。  确定对象的属性类型

1.主要依据要素(或对象)的专题性质而定。

2.每个实体可能有多种属性,依据相关原则确定每种属性(字段)的数据类型,使用默认值、域等工具保证数据的完整性。六. 将数据组织到Geodatabase地理数据集

1.工作包括:

(1).划分要素类和子类 (2).规定要素类的拓扑关系 (3.)构建地理数据集 (4.)组织地理数据库

(1)划分要素类和子类

下列情况下必须建立单列的要素类:

1) 当各组相关要素的属性字段组合根本不同时 2)当各组相关要素需要有特有的定制行为时 3)当需要对各组要素赋予不同存取权限时

4)当有些要素要采用版本管理存取而另一些要素不需要版本管理时 (2)规定要素类的拓扑关系

1)将相关要素分组为几何网络好或平面拓扑

2)如果要素类是独立点、线、面要素,那么它不参与几何网络或者平面拓扑

3)如果要素类是简单边、简单节点、复合边、复合节点,那么它参与几何网络的构成

4) 如果要素类是拓扑关联的多边形要素类,其内部各个要素必须满足特定的拓扑关系 (3)构建地理数据集

1)要素数据集是一个容器,使用它可以将相似的要素类组合在一起。 2)将具有相同空间参照的要素类组织到同一个要素数据集中是有利的,因为不同要素数据集在运算过程中可能会出现细微的差别而引起数据不一致。 3) 同时参加到平面拓扑或几何网络中的各个要素类必须被组织到同一个要素数据集中。

(4)最后将要素数据集和要素类组合起来。

1)确定了各要素及其拓扑联系之后,最后需要将它们组合到地理数据库中。 2)如果企业用户包括多个部门,不同部门使用不同的数据集。地理数据库可以安装企业组织结构部署。

4) 如果使用personal Geodatabases,由于数据库容量的限制,必须对数据库按专题或空间进行分割。 七. Geodatabase的建库步骤

1.在F盘中建立自己的文件夹070141;2.在自己的文件夹中建立个人数据库database; 截图说明

3.在personal database中建立点要素a,线要素aa,面要素aaa。 八. Geodatabase的拓扑建立

若干个要素类作为一个整体参与到几何网络的构造, Geodatabase通过拓扑关联保证参与到几何网络中的各个要素类的空间几何的连通性。几何网络将导致保证网络连通性的行为。

1.右键单击数据库database,点击new再点击Feature Dataset

截图说明:

出现对话框New Feature Dataset 在name中填写名字topology; 2.点击“下一步”出现如下对话框,点击对话框中的Import,又出现对话框在Ext文件夹中点击Blocks.shp,点击Add即可添加数据;

截图说明;

再点击继续点击下一步,下一步,Finish,即可建立topology; 3.右键单击topology,点击Import,再点击Feature Cla(mulitiple)

截图说明:

出现如下对话框,在对话框中点击第一个图标浏览,在出现的对话框中加入Ex1中的两个数据Blocks.shp和Parcels.shp,点击Add;

点击ok,则topology中增加了Blocks.shp和Parcels.shp两个数据项; 4.右键单击topology中的Blocks,点击Properties 截图说明:

出现如下对话框, 在对话框中的子类SubtypeField一栏下拉选择Res,在Subtype中设置Code和Description为0,nonres ; 1 , res; 点击确定;

截图说明:

4.同理设置Parcels的Properties;

5.右键单击topology,点击new,再点击Topology:

6.在出现的如下对话框中点击下一步

7在.出现的如下对话框中点击下一步

8.在出现的New Topology如下对话框中点击Select All 截图说明:

9.在出现的New Topology如下对话框中,在Enter the number of ranks中填1;

10.点击下一步,在出现的New Topology对话框中,点击Add Rule,再Add Rule中的三栏中选择Parcels,Must Not Overlap With,Blocks ,点击ok; 截图说明:

点击下一步,再点击Finish.再出现的对话框是否拓扑查询,点击否。则在Topology中建立了topology-Topology。

11.打开ArcMap,将topology-Topology拖到ArcMap的Layers中,则在Layers中添加了topology-Topology,Blocks和Parcels;截图说明:

12.点击工具栏中的View,点击Toolbars,再点击Topology,将出现进行拓扑操作的Topology工具栏;在Editor下拉菜单中点击Starting Editor,将工具激活;

截图说明:

13.点击Topology工具栏的Topology Editor Tool图标,双击弧线段,在结点处进行操作即可

拓扑结果图:

推荐第9篇:上机实习报告格式

文献检索实习报告(参考格式)

课程名称:文献检索日期:

学院:班号:姓名:学号:

实验名称:电子图书等资源检索。

实验目的:掌握图书资源如何检索和利用,熟悉人名录或机构名录的检索。 实验内容:

1、用CALIS检索你们自己任课教师的编著发表情况。

2、用超星检索自己所在专业的某一方面的图书出版情况,并采集某一本书的一段文字,一个图。(以超星为例)

(1).登陆四川理工学院图书馆主页。

(2).找到电子资源,点击进入图书馆电子资源界面。

(3).找到热门资源中的“超星数字图书馆”,并点击“本地”,进

入超星数字图书馆。

(4).找到“浏览器”,点击并下载超星星浏览器。

(5).下载好“超星星浏览器”后就可以浏览图书了。

(6).例如查

3、利用物竞化学品数据库检索某一具体化学物质的相关数据。

4、用万方数据库检索我国某一位院士/科学家/某学科领域著名学者的名录。

实习报告要求:用自己姓名作为文件名称,将作业发送给各班指定的同学。

推荐第10篇:c语言上机实习报告

苏州科技大学上机实习报告 程序设计语言(C语言)

实验一: Visual C++实验环境

一、实验任务

实验一

二、实验目的

1.了解C程序结构,熟悉VC++ 6.0开发环境。

2.熟悉在VC++ 6.0开发环境中编辑、编译、连接、运行和调试C语言程序。 3.通过运行简单的C语言程序,初步连接C语言源程序的特点。

三、实验环境

硬件:PC兼容机 CPU Core i5,内存4GB; 操作系统:中文版 Windows 7;

应用软件 Visual C++ 6.0程序开发环境。

四、实验准备及作业提交方法

1.提交位置

在计算机硬盘 (E盘) 上新建以学生“学号姓名”命名的文件夹,本次实验学生编写的程序文件先保存到上述文件夹中,待上机实验结束时,将文件夹通过校园网络提交到规定服务器位置上。 2.提交内容

本次作业需提交2类文件:.c文件、上机实习报告.doc

五、实验内容(因实验内容较多,本实验报告中仅体现部分内容)

1.编写一个程序,输出以下信息:

*****************************

Welcome to the world of C !

***************************** 【源程序代码】

电子与信息工程学院上机实习报告

第1页 2.编写程序求两数之和

【源程序代码】

3. 编写程序。

【源程序代码

六、思考与实践

6.【修改后源程序代

码】 7.【源程序代码】

七、实验分析总结

有时候多个错误只要改第一个就行了。不能忘记尾部的‘;’。C语言要敢于动手尝试,不能逃避困难。

第11篇:《数值分析》上机实习报告

数值分析上机实验报告

姓 名:班 级:学 号:院 系:机械工程学院指导教师:C语言)

2006级 2006050349

( for(j=0;j

}

void gu(float a[N][N],float b[N]) /* 子函数高斯消去法*/ { int i,j;

{

} printf(\"Household变换的结果:\"); /*输出Household变换的结果*/ for(i=0;i

for(j=0;j

} if (j%N==0) printf(\"\\n\"); s=0.0; for(i=j+1;i

} for(i=0;i

} for(k=0,i=0;i

q[i]=y[i]-k*u[i]; for(i=0;i

} x[N-1]=y[N-1]/u[N-1]; for(i=N-1;i>=0;i--) x[i]=(y[i]-a[i][i+1]*x[i+1])/u[i]; printf(\"消去法的结果:\\n\"); /*输出消去法的结果*/ for(i=0;i

} printf(\"\\n\"); }

void sor(float a[N][N],float b[N]) /*子函数超松驰法*/ { float a1[N][N]; int i,j,k,m; float x[N],temp[N][N]; float w=1.4,h=0,g=0; for(m=0;m

{ for(j=1;j

q[i]=a[i][i-1]/u[i-1]; u[i]=a[i][i]-q[i]*a[i-1][i]; y[i]=b[i]-q[i]*y[i-1]; if (i==5) printf(\"\\n\"); printf(\"x%d=%9.6f \",i,x[i]);

} g=(h+b[i-1])*w; x[i-1]=(1-w)*x[i-1]+g; h=0.0;g=0.0; } } printf(\"超松弛法的结果:\\n\"); /*输出超松弛法的结果*/ for(i=0;i

{ 2.115237,19.141823,-3.125432,-1.012345,2.189736,1.563849,-0.784165,1.112348,3.123124}, {-1.061074,-3.125432,15.567914,3.123848,2.031454,1.836742,-1.056781,0.336993,-1.010103}, {1.112336,-1.012345,3.123848,27.108437,4.101011,-3.741856,2.101023,-0.71828,-0.037585}, {-0.113584,2.189736,2.031454,4.101011,19.897918,0.431637,-3.111223,2.121314,1.784317}, {0.718719,1.563849,1.836742,-3.741856,0.431637,9.789365,-0.103458,-1.103456,0.238417}, {1.742382,-0.784165,-1.056781,2.101023,-3.111223,-0.103458,14.713846,3.123789,-2.213474}, {3.067813,1.112348,0.336993,-0.71828,2.121314,-1.103456,3.123789,30.719334,4.446782}, {-2.031743,3.123124,-1.010103,-0.037585,1.784317,0.238417,-2.213474,4.446782,40.00001}}, b[N]={2.1874369,33.992318,-25.173417,0.84671695,1.784317,-86.612343,1.1101230,4.719345,-5.6784392}; housholder(a); /*调用househloder函数*/ gu(a,b); /*调用消去法求解*/ sor(a,b); /*调用超松驰法求解*/ }

四、运行结果

Household变换的结果: 12.3841 -4.8931 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -4.8931 25.3984 6.4941 0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 6.4941 20.6115 8.2439 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 8.2439 23.4229 -13.8801-0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 -0.0000 -13.880129.6983 4.5345 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 4.5345 16.0061 4.8814 0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 4.8814 26.0133 -4.5036 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 -4.5036 21.2540 4.5045 0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 4.5045 14.5341 消去法的结果:

x0= 1.075799 x1= 2.275744 x2=-2.855514 x3= 2.293097 x4= 2.112633 x5=-6.423833 x6= 1.357923 x7= 0.634245 x8=-0.587266 超松弛法的结果:

x0= 1.073409 x1= 2.272580 x2=-2.856600 x3= 2.292511 x4= 2.112164 x5=-6.422582 x6= 1.357802 x7= 0.634259 x8=-0.587042

五、问题讨论: 1.算法分析

SOR方法的矩阵形式为: X(m)=(E-ωL)-1((1-ω)E+ωR)x(m-1)+(E-ωL)-1ωg 若记 Lω=(E-ωL)-1((1-ω)E+ωR),SOR收敛的充要条件是S(Lω)

数组作为子函数参数时,实现的是地址传递,会改变原数组中元素的值,因此主函数调用housholder变换子函数后,原数组a[9][9]中的值已经改变为三对角阵。以下的消去法、超松弛法子函数调用的是已经三对角化后的a[9][9]的值。

调用时由于没有定义housholder变换子函数中数组a[][]的大小,运行时出现以下错误提示: error C2087: \'\' : miing subscript error C2133: \'a\' : unknown size 修改大小为a[N][N]时(N为宏定义常数9),运行正常。

Xn1 , Zk mkmax(Xn) sa[0]=a[0][0]-x; if(sa[0]==0) sa[1]=a[0][1]*a[0][1]; else sa[1]=a[1][1]-x-a[0][1]*a[0][1]/sa[0]; for(i=2;i

}

float duifen(float a[N][N]) /*对分法求取方程的解的子函数*/ { float 1=0,2=23,=0,h=0,g=0; float l,ll; h=f(a,2); while(1) {

1=; g=f(a,); =0.5*(+23); l=0.5*(1+23); if(g-h==1) break; { if (sa[i-1]*sa[i-2]!=0) sa[i]=a[i][i]-x-a[i-1][i]*a[i-1][i]/sa[i-1]; else if(sa[i-2]==0) sa[i]=a[i][i]-x; if(sa[i-1]==0) sa[i]=-1; } { if(sa[i]>=0) hh+=1; else hh+=0; } for(i=0;i

float fanmi(float a[N][N]) /*反幂法求解方程的解的子函数*/ {

float mk=0,t,t1; float z[N],yy[N],a3[N][N]; int i,j,k,m,tt; float h=0; float l[N]={0,}; t1=duifen(a); /*调用对分法求取方程的解*/ for(i=0;i

for(m=0;m-1;i--) { for(j=i+1;j

}

printf(\"反幂法的解的特征向量是:\\n\"); {if(m==5) printf(\"\\n\"); printf(\"%-10.6f\",z[m]); } /*输出反幂法的解的特征向量*/ return 0; for(m=0;m

printf(\"\\n\"); main() { float a[N][N]={{12.3841,-4.8931},{-4.8931,25.3984,6.4941},{0,6.4941,20.6115,8.2439}, {0,0,8.2439,23.4229,-13.8801},{0,0,0,-13.8801,29.6983,4.5345},{0,0,0,0,4.5345,16.0061,4.8814}, {0,0,0,0,0,4.8814,26.0133,-4.5036},{0,0,0,0,0,0,-4.5036,21.2540,4.5045},{0,0,0,0,0,0,0,4.5045,14.5341}};

printf(\"对分法的结果是:\\n\"); printf(\"d=%f\",duifen(a)); /*调用对分法并输出对分法近似解*/ fanmi(a); /*调用反幂法求解*/ }

四、运行结果 对分法的结果是: d=21.916260 反幂法的结果是: d=21.928129 反幂法的解的特征向量是:

0.157066 -0.306359 0.282201 0.285925 0.198640 0.533758 0.462842 1.000000 0.611843

五、问题讨论 1.算法分析

1) 对分法简单可靠,数值稳定性较高,对于求少量几个特征值特别适宜.但收敛速度较慢.2) 反幂法是结合对分法使用的,近似值较恰当,其收敛速度是很快.只要迭代两次就可得到较满意的结果.但在运用中需把一般矩阵化为Heebberg阵才可计算.2.上机出现情况

当把对分法及反幂法全部写在主函数中,实现题目全部要求时,主函数过于冗长,不利于纠错,也不利于实现共享,通过修改对分法及反幂法为子函数调用,以便于调试,亦有利于共享。

for(j=0;j

}

b[0]=2*h*b[0]; a[i][i-1]=1; a[i][i]=4; a[i][i+1]=1; b[N-1]=2*h*b[N-1]; for(i=1;i

u[0]=a[0][0]; /*消去法求c[i]*/ y[0]=b[0]; for(i=1;i

} c[N-1]=y[N-1]/u[N-1]; for(i=N-2;i>=0;i--)

for(i=0;i

} s=0.0; for(i=0;i

b[N-1]=b[N-1]+b[N-2]; q[i]=a[i][i-1]/u[i-1]; u[i]=a[i][i]-q[i]*a[i-1][i]; y[i]=b[i]-q[i]*y[i-1]; c[i]=(y[i]-a[i][i+1]*c[i+1])/u[i]; e=fabs(*x-i); if(e>=2)

w[i]=0; w[i]=0.5*fabs(e*e*e)-e*e+2.0/3.0; w[i]=(-1.0/6.0)*fabs(e*e*e)+e*e-2*fabs(e)+4.0/3.0; else if(e

} *x=s; *x1=(c[(int)(m+1)]-c[(int)(m-1)])/2.0; void main() {

}

四、运行结果

三次样条插值求得的结果是: f(4.563)=1.517932 f\'(4.563)=0.249350

五、问题讨论:

样条插值效果比Lagrange插值好,由于样条插值不必经过所有点,所以没有Runge现象.而且插值函数比较光滑。

其基本思想是对均匀分划的插值函数的构造,三次样条函数空间中不取1,x,,x,x,(x-xj)+为基函数,而取B样条函数Ω3(x-xj/h)为基函数.由于三次样条函数空间是N+3维的,故我们把分点扩大到N1X-1,XN+1,则任意三次样条函数可用Ω3(x-xj/h)线性组合来表示 S(x)= 不同插值问题,若能确定cj由解的唯一性就能求得解S(x).

2

33float b[N]={1,0,0.69314718,1.0986123,1.3862944,1.6094378,1.7917595, 1.9459101,2.079445,2.1972246,2.3025851,0.1}; float x,x1; float h; h=1; x=4.563; scyt(&x,&x1,b,h); /*调用三次样条插值子函数*/ printf(\"f(4.563)=%.6f\\n\",x); printf(\"f\'(4.563)=%.6f\\n\",x1); printf(\"三次样条插值求得的结果是:\\n\");

cjΩ3(x-xj/h) 这样对

j1 7

4float z; z=pow(x,7)-28*pow(x,4)+14; return(z); float z; z=7*pow(x,6)-112*pow(x,3); return(z); x=fabs(f1(a))>fabs(f1(b))?a:b; /*初始值的选择*/ } main() { float a,b;

/*变量定义及赋初值*/ float min; float result; a=0.1; b=1.9; min=1e-5; result=ndf(a,b,min); /*调用牛顿法子函数*/ printf(\"用牛顿法求方程在取初值为(0.1,1.9)区间端点时的近似根为:\\n\"); printf(\"x=%.6f\\n\",result); }

四、运行结果

用牛顿法求方程在取初值为(0.1,1.9)区间端点时的近似根为: x=0.845497

五、问题讨论

1.Newton法收敛速度比较快,是平方收敛,但它是局部收敛。2.采用newton法求方程平方收敛,较为精确。但需求函数导数。

3.初始值取为区间端点xo时,取使f(xo)f´´(xo)>0的一个,本例中取为xo=1.9。

(k)

(0)

(0)

3x1.

42float z; z=pow(3,y)*pow(y,1.4)*(5*y+7)*sin(y*y); return(z); s=0; for(i=1;i

} {

} z=t[i+1][0]; return(z); for(j=1;j

}

四、运行结果

用Romberg算法求积分的结果(允许误差为0.00001): I=440.536011

五、问题讨论: 1.算法分析

1) Romberge算法的优点是: 把积分化为代数运算,而实际上只需求T1,以后用递推可得.算法简单且收敛速度快,一般4或5次即能达到要求.2) Romberge算法的缺点是: 对函数的光滑性要求较高,

计算新分点的值时,这些数值的个数成倍增加。

2.上机出现问题

本程序一开始编写时,是利用函数的递归调用来实现,编译正常通过,但运行时出现异常,经分析可能是多次递归产生误差,改用数组代替递归来存放Tij的值时,运行正常。

(i)float a,b; /*变量定义及初始化*/ float min; float result; float (*p)(float); a=1; b=3; min=1e-5; p=f; result=lbg(a,b,min,p); /*调用龙贝格法求积分子函数*/ printf(\"用Romberg算法求积分的结果(允许误差为0.00001):\\n\"); printf(\"I=%.6f\\n\",result);

} } for(i=0;i

} fkt(work1,work2); *t=ttemp+temp[i]; for(j=0;j

} }

四、运行结果

定步长四阶Runge-Kutta法求微分方程组解的结果: T Y1 Y2 Y3 0.025000| 0.025000| 0.151579| 8.346120 0.045000| 0.045000| 0.312984| 7.538067 0.085000| 0.085000| 0.560777| 4.944312 0.100000| 0.100001| 0.629078| 4.178828

五、问题讨论: 1.算法分析

1) Runge_Kutta方法的优点: 精度高,不必用别的方法求开始几点的函数值。

可根据f\' (t,y)变化的情况与需要的精度自动修改步长。 程序简单,存储量少。 方法稳定。

rgkt(n,&t,step,&y,work1,work2,work3); /*调用Runge-Kutta算法求解*/ if(i==49||i==89||i==169||i==199) printf(\"%9.6f|%9.6f|%9.6f|%9.6f\\n\",t,y[0],y[1],y[2]); 2) Runge_Kutta方法的缺点: 每步要计算函数值f(t,y)四次,在f(t,y)较复杂时,工作量大, 且每一步缺乏可靠的检查。

2.上机出现情况

当用主函数实现题目全部要求时,主函数过于冗长,不利于修改和纠错,也不利于实现共享,通过修改Runge_Kutta法及函数表达式为子函数调用,并把一些条件语句放进子函数中,主函数只控制初始值及结果精度要求,经如此修改后便于阅读和调试。

第12篇:计算方法与实习上机报告

计算方法与实习

——上机报告

学院:电子工程学院

2015.1.4

学号:13020130016

姓名: 刘

习题一:

1 舍入误差及稳定性

一、实验目的

(1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; (2)通过上机计算,了解舍入误差所引起的数值不稳定性

二、实验内容

21、用两种不同的顺序计算n,分析其误差的变化

n110000

2、已知连分数fb0a1,利用下面的算法计算f:

b1a2/b2a3/(...an/bn)ai

1(in1,n2,..., 0fd0 di1写一程序,读入n,b0,b1,...,bn,a1,...,an,计算并打印f dnbn,dibi

3、给出一个有效的算法和一个无效的算法计算积分

xnyndx

(n0,1,..., 104x1N11311

4、设SN2,已知其精确值为

22NN1j2j1(1)编制按从大到小的顺序计算SN的程序 1(2)编制按从小到大的顺序计算SN的程序

(3)按两种顺序分别计算S1000,S10000,S30000,并指出有效位数

三、实验步骤、程序设计、实验结果及分析

21、用两种不同的顺序计算n,分析其误差的变化

n110000(1)实验步骤:

分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h和math.h (2)程序设计: a.顺序计算

#include #include void main() { double sum=0; int n=1; while(1) {

sum=sum+(1/pow(n,2));

if(n%1000==0) printf(\"sun[%d]=%-30f\",n,sum);

if(n>=10000) break;

n++; } printf(\"sum[%d]=%f\\n\",n,sum); } b.逆序计算

#include #include void main() { double sum=0; int n=10000;

while(n!=0) {

sum=sum+(1/pow(n,2));

if(n%200==0)

printf(\"sum[%d]=%-10f\",n,sum);

if(n

n--; } printf(\"sum[%d]=%f\\n\",n,sum); }

(3)实验结果及分析: 程序运行结果: a.顺序计算

b.逆序计算

结果分析:两种不同顺序计算结果是一样的,顺序计算误差从一开始就很小,而逆序计算误差最开始十分大,后来结果正确。

2、已知连分数fb0(1)实验步骤: 利用 dnbn,dibia1,计算f:

b1a2/b2a3/(...an/bn)ai1,0

(in1,n2,...,fd0,计算f

di1(2)程序设计 #include #include void main() { int i=0,n; float a[100],b[100],c[100]; printf(\"please input n=\"); scanf(\"%d\",&n);

printf(\"\\nplease input a[0] to a[n-1]:\\n\"); for(i=1;i

printf(\"a[%d]=\",i);

scanf(\"%f\",&a[i]); }

printf(\"\\nplease input b[0] to b[n-1]:\\n\"); for(i=0;i

printf(\"b[%d]=\",i);

scanf(\"%f\",&b[i]); }

d[n]=b[n]; for(i=n-1;i>=0;i--)

c[i]=b[i]+a[i+1]/c[i+1]; printf(\"\\nf=%f\\n\",c[0]); } (3)实验结果 程序运行结果:

3、给出一个有效的算法和一个无效的算法计算积分

xnyndx

(n0,1,..., 104x11(1)实验步骤

利用C语言编写程序,分别使用数值稳定的和数值不稳定的计算公式所建立的递推公式进行计算。

(2)程序设计 #include #include main() { double y_0=(1/4.0)*log(5),y_1; double y_2=(1.0/55.0+1.0/11.0)/2,y_3; int n=1,m=10; printf(\"有效算法输出结果:\\n\"); printf(\"y[0]=%-20f\",y_0); while(1) {

y_1=1.0/(4*n)+y_0/(-4.0);

printf(\"y[%d]=%-20f\",n,y_1);

if(n>=10) break;

y_0=y_1;

n++;

if(n%3==0) printf(\"\\n\"); } printf(\"\\n无效算法的输出结果:\\n\"); printf(\"y[10]=%-20f\",y_2); while(1) {

y_3=1.0/n-4.0*y_2;

printf(\"y[%d]=%-20f\",m-1,y_3);

if(m

y_2=y_3;

m--;

if(m%2==0) printf(\"\\n\"); } } (3)实验结果及分析 程序运行结果:

结果分析:无效算法数值不稳定,误差造成的影响特别大

4、设SN

j2N11311,已知其精确值为

22NN1j21(1)实验步骤

先编程按从大到小的顺序计算SN的程序,再编程按从小到大的顺序计算SN的程序,然后按两种顺序分别计算S1000,S10000,S30000。 (2)程序设计 #include main() {

int N; double SN[30000]; SN[30000]=(3.0/2.0-1.0/30000.0-1/30001.0)/2.0;

for(N=30000;N>=2;N--)

SN[N-1]=SN[N]-1.0/(N*N-1); printf(\"从大到小顺序计算\\nSN[1000]=%f\\nSN[10000]=%f\\nSN[30000]=%f\\n\",SN[1000],SN[10000],SN[30000]);

SN[2]=(3.0/2-1.0/2.0-1/3.0)/2.0; for(N=3;N

SN[N]=SN[N-1]+1.0/(N*N-1); printf(\"从小到大顺序计算\\nSN[1000]=%f\\nSN[10000]=%f\\nSN[30000]=%f\\n\",SN[1000],SN[10000],SN[30000]); } (3)实验结果及分析 程序运行结果:

结果分析:不同顺序计算所得结果是一样的。

四、总结

通过这次上机,学习了解了舍入误差在不同算法时对结果的影响不同,稳定的算法才能获得正确的结果。

习题二:

一、实验目的

(1)通过对二分法与牛顿迭代法做编程练习和上机运算,进一步体会二分法和牛顿法的不同。

(2)编写割线迭代法的程序,求非线性方程的解,并与牛顿迭代法作比较。

二、实验内容

1、用牛顿法求下列方程的根 (1)xe0

(2)xe10 (3)lgxx20

2、编写割线法程序求解第一问的方程

三、实验步骤、程序设计、实验结果及分析

1、牛顿法 (1)实验步骤

通过定义牛顿法求方程的子函数,用main函数调用子函数求根 (2)程序设计 #include #include typedef float (*p)(float );

float ff1(float x) {

return x*x-exp(x); } x2xfloat ff2(float x) {

return x*exp(x)-1; } float ff3(float x) {

return log(x)+x-2; } float

answer(float(*p)(float)) {

int k=2;

float m=1,n=-1,x2,a,b,c;

if (p==ff3)n=2;

printf(\"x[0] = %.4f, x[1] = %.4f, \",m,n);

while (1)

{

if (fabs(m-n)

a=p(n)*(n-m);

b=p(n)-p(m);

c=a/b;

x2=n-c;

m = n;

n = x2;

printf(\"x[%d] = %.4f, \",k,x2);

k++;

if (k%3==0) printf(\"\\n\");

}

if (k%3!=0) printf(\"\\n\");

printf(\"iteration times: %d, roots: %.4f\\n \",k-2,n); return 0; } main() { printf(\"x*x-exp(x),\\n\"); answer(ff1); printf(\"x*exp(x)-1,\\n\"); answer(ff2); printf(\"lg(x)+x-2,\\n\"); answer(ff3); return 0; } (3)实验结果及分析

2、割线法 (1)程序设计 #include #include float gexian(float,float); float f(float); main() {

int i,j;

float x1=2.2;

float x2=2,x3;

scanf(\"%d\",&i);

if(i==1) printf(\"%f\",x1);

else if(i==2) printf(\"%f\",x2);

else

{

for(j=3;j

{

x3=gexian(x1,x2);

x1=x2;

x2=x3;

}

printf(\"%f\",gexian(x1,x2)) ;

} } float f(float x) { return (x*x-exp(x)); }

float gexian(float x1,float x2) { return (x2-(f(x2)/(f(x2)-f(x1)))*(x2-x1)); } (3)实验结果及分析

四、总结

了解和学习了二分法和牛顿迭代法的思想以及程序设计的方法,比较了迭代法和牛顿法的特点:牛顿法收敛速度较快,但对初值选取要求较高;割线法计算量少。

习题三:

3 线性方程组数值解法

一、实验目的

(1)熟悉求解线性方程组的有关理论和方法;

(2)会编制列主元消去法,LU分解法,雅可比及高斯-赛德尔迭代法的程序; (3)通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。

二、实验内容

1、用列主元消去法解方程组

2、用LU分解法解方程组

三、实验步骤、程序设计、实验结果及分析

1、用列主元消去法解方程组 (1)程序设计 #include #include void ColPivot(float*,int,float[]); void ColPivot(float*c,int n,float x[]) { int i,j,t,k; float p; for(i=0;i

k=i;

for(j=i+1;j

if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))

k=j;

if(k!=i)

for(j=i;j

{

p=*(c+i*(n+1)+j);

*(c+i*(n+1)+j)=*(c+k*(n+1)+j);

*(c+k*(n+1)+j)=p;

}

for(j=i+1;j

{

p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));

for(t=i;t

*(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));

} } for(i=n-1;i>=0;i--) {

for(j=n-1;j>=i+1;j--)

(*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));

x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i)); } } void main() { int i; float x[4]; float c[4][5]={1,1,0,3,4,2,1,-1,1,1,3,-1,-1,3,-3,-1,2,3,-1,4};

ColPivot(c[0],4,x); for(i=0;i

printf(\"x[%d]=%f\\n\",i,x[i]); } (2)实验结果及分析

(1)题

(2)题

2、用LU分解法解方程组 (1)程序设计 #include void main() { float x[4]; int i; float a[4][5]={48,-24,0,-12,4,

-24,24,12,12,4,

0,6,20,2,-2,

-6,6,2,16,-2 }; void DirectLU(float*,int,float[]); DirectLU(a[0],4,x); for(i=0;i

for(i=r;r

for(k=0;k

*(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i));

for(i=r+1;i

{

for(k=0;k

*(u+i*(n+1)+r)-=*(u+i*(n+1)+k)*(*(u+k*(n+1)+r));

*(u+i*(n+1)+r)/=*(u+r*(n+1)+r);

}

} for(i=n-1;i>=0;i--) {

for(r=n-1;r>=i+1;r--)

*(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*x[r];

x[i]=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i)); } }

四、总结

掌握了用列主元消去法和LU分解法求解方程组程序编写的技巧。

习题四:

4 插值法

一、实验目的

(1)熟悉拉格朗日插值法多项式和牛顿插值多项式,注意其不同点; (2)掌握三次样条插值解决一些实际问题。

二、实验内容

1、按所给数据做二次插值,并求给定点的函数值

2、按所给数据做五次插值,并求给定点的函数值

3、牛顿前插公式计算函数值

三、实验步骤、程序设计、实验结果及分析

1、二次插值 (1)程序设计 #include float Lagrange(float x[],float y[],float xx,int n)

//n为(n+1)次插值; { int i,j; float *a,yy=0;

a=new float[n]; for(i=0;i

a[i]=y[i];

for(j=0;j

if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]);

yy+=a[i]; } delete a; return yy; } void main() { float x[5]={-3.0,-1.0,1.0,2.0,3.0}; float y[5]={1.0,1.5,2.0,2.0,1.0}; float xx1=-2,xx2=0,xx3=2.75,yy1,yy2,yy3; yy1=Lagrange(x,y,xx1,3); yy2=Lagrange(x,y,xx2,3); yy3=Lagrange(x,y,xx3,3); printf(\"x1=%-20f,y1=%f\\n\",xx1,yy1); printf(\"x2=%-20f,y2=%f\\n\",xx2,yy2); printf(\"x3=%-20f,y3=%f\\n\",xx3,yy3); } (2)实验结果

2、五次插值 (1)程序设计 #include float Lagrange(float x[],float y[],float xx,int n)

//n为(n+1)次插值; { int i,j; float *a,yy=0;

a=new float[n]; for(i=0;i

a[i]=y[i];

for(j=0;j

if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]);

yy+=a[i]; } delete a; return yy; } void main() { float x[6]={0.30,0.42,0.50,0.58,0.66,0.72}; float y[6]={1.04403,1.08462,1.11803,1.15603,1.19817,1.23223}; float xx1=0.46,xx2=0.55,xx3=0.60,yy1,yy2,yy3; yy1=Lagrange(x,y,xx1,6); yy2=Lagrange(x,y,xx2,6);

yy3=Lagrange(x,y,xx3,6); printf(\"x1=%-20f,y1=%f\\n\",xx1,yy1); printf(\"x2=%-20f,y2=%f\\n\",xx2,yy2); printf(\"x3=%-20f,y3=%f\\n\",xx3,yy3); }

(2)实验结果

3、牛顿前插公式计算函数值 (1)程序设计 #include #define N 3 void Difference(float y[],float f[4][4],int n) {

int k,i; f[0][0]=y[0];f[1][0]=y[1];f[2][0]=y[2];f[3][0]=y[3]; for(k=1;k

for(i=0;i

f[i][k]=f[i+1][k-1]-f[i][k-1]; return; } void main() { int i,k=1; float a,b=1,m=21.4,t=1.4,f[4][4]={0}; float x[5]={20,21,22,23,24}; float y[5]={1.30103,1.32222,1.34242,1.36173,1.38021}; Difference(y,f,N); a=f[0][0]; for(i=1;i

k=k*i;

b=b*(t-i+1);

a=a+b*f[0][i]/k; } printf(\"x(k)\\n\"); for (i=0;i

printf( \"%-20f\",x[i]); printf(\"\\ny(k)\\n\");

for (i=0;i

printf(\"%-20f\",y[i]); for(k=1;k

printf(\"\\nF(%d)\\n \",k);

for(i=0;i

{

printf(\"%-20f\",f[i][k]);

} } printf (\"\\n\"); printf(\"f(%f)=%-20f\",m,a); printf (\"\\n\"); } (2)实验结果

四、总结

学习了插值法,学会了利用插值法编程求多项式的解,可以求解很多问题,让求解多项式解变得非常简单。

习题五:

5 曲线拟合

一、实验目的

(1)了解最小二乘法的基本原理,通过计算机解决实际问题; (2)了解超定方程组的最小二乘解法。

二、实验内容

1、分别用抛物线yabxcx2和指数曲线yaebx拟合所给数据,并比较这两个拟合函数的优劣。

2、按所给实验数据,用形如yabx的抛物线进行最小二乘拟合。

三、程序设计、结果分析

1、分别用抛物线yabxcx和指数曲线yae拟合所给数据 a.抛物线

(1)程序设计: #include #include void main() { int i; float a[3]; float x[15]={1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8};

2bx2 float y[15]={33.4,79.50,122.65,159.05,189.15,214.15,238.65,252.50,267.55,280.50,296.65,301.40,310.40,318.15,325.15}; void Approx(float[],float[],int,int,float[]); Approx(x,y,15,2,a); for(i=0;i

printf(\"a[%d]=%f\\n\",i,a[i]); } void Approx(float x[],float y[],int m,int n,float a[]) { int i,j,t; float *c=new float[(n+1)*(n+2)]; float power(int,float); void ColPivot(float *,int,float[]); for(i=0;i

for(j=0;j

{

*(c+i*(n+2)+j)=0;

for(t=0;t

*(c+i*(n+2)+j)+=power(i+j,x[t]);

}

*(c+i*(n+2)+n+1)=0;

for(j=0;j

*(c+i*(n+2)+n+1)+=y[j]*power(i,x[j]); } ColPivot(c,n+1,a); delete c; }

void ColPivot(float *c,int n,float x[]) { int i,j,t,k; float p; for(i=0;i

k=i;

for(j=i+1;j

if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))

k=j;

if(k!=i)

for(j=i;j

{

p=*(c+i*(n+1)+j);

*(c+i*(n+1)+j)=*(c+k*(n+1)+j);

*(c+k*(n+1)+j)=p;

}

for(j=i+1;j

{

p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));

for(t=i;t

} } for(i=n-1;i>=0;i--) {

for(j=n-1;j>=i+1;j--)

(*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));

x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i)); } }

float power(int i,float v) { float a=1; while(i--)a*=v; return a; } (2)实验结果

2、最小二乘拟合 (1)程序设计 #include #include void main() { int i,n; float a[2]; float x[15]={1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8},z[15]; float y[15]={33.4,79.50,122.65,159.05,189.15,214.15,238.65,252.50,267.55,280.50,296.65,301.40,310.40,318.15,325.15}; for(n=0;n

//增加了数组z;

{z[n]=log(y[n]/x[n]);} void Approx(float[],float[],int,int,float[]); Approx(x,z,15,1,a);

//变成一次拟合;

//for(i=0;i

//printf(\"a[%d]=%f\\n\",i,a[i]); printf(\"a=exp(a[0])=%f\\n\",exp(a[0])); printf(\"b=-a[1]=%f\\n\",-a[1]); } void Approx(float x[],float y[],int m,int n,float a[]) { int i,j,t; float *c=new float[(n+1)*(n+2)]; float power(int,float); void ColPivot(float *,int,float[]); for(i=0;i

for(j=0;j

{

*(c+i*(n+2)+j)=0;

for(t=0;t

*(c+i*(n+2)+j)+=power(i+j,x[t]);

}

*(c+i*(n+2)+n+1)=0;

for(j=0;j

*(c+i*(n+2)+n+1)+=y[j]*power(i,x[j]); } ColPivot(c,n+1,a); delete c; }

void ColPivot(float *c,int n,float x[]) { int i,j,t,k; float p; for(i=0;i

k=i;

for(j=i+1;j

if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))

k=j;

if(k!=i)

for(j=i;j

{

p=*(c+i*(n+1)+j);

*(c+i*(n+1)+j)=*(c+k*(n+1)+j);

*(c+k*(n+1)+j)=p;

}

for(j=i+1;j

{

p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));

for(t=i;t

} } for(i=n-1;i>=0;i--) {

for(j=n-1;j>=i+1;j--)

(*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));

x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i)); } }

float power(int i,float v) { float a=1; while(i--)a*=v; return a; } (2)实验结果

四、总结

通过曲线拟合,最小二乘法的基本原理的学习,我学会了利用计算机解决现实实际问题中的曲线拟合。

习题六:

6 数值积分

一、实验目的

(1)通过实际计算体会各种方法的精确度; (2)会编写用龙贝格算法求定积分的程序。

二、实验内容

编写复化柯特斯求积分公式,并计算例题1例题2,观察n为多少时有6位有效数字。

三、程序设计、实验结果及分析 (1)程序设计 #include #include float Cotes(float(*f)(float),float a,float b,int n) { int k; float c,c1=0,c2,c3,c4; float h=(b-a)/n; c2=(*f)(a+h/4); c3=(*f)(a+h/2); c4=(*f)(a+3*h/4); for(k=1;k

c1+=(*f)(a+k*h);

c2+=(*f)(a+k*h+h/4);

c3+=(*f)(a+k*h+h/2);

c4+=(*f)(a+k*h+3*h/4); } c=h/90*(7*((*f)(a)+(*f)(b))+14*c1+32*c2+12*c3+32*c4); return c; } float f(float x) { return 1/sqrt(1+x*x*x); } void main() { int i,n=4; float c; for(i=0;i

c=Cotes(f,0,1,n);

printf(\"C(%d)=%f\\n\",n,c);

n*=2; } } #include #include float Cotes(float(*f)(float),float a,float b,int n) { int k; float c,c1=0,c2,c3,c4; float h=(b-a)/n; c2=(*f)(a+h/4); c3=(*f)(a+h/2); c4=(*f)(a+3*h/4); for(k=1;k

c1+=(*f)(a+k*h);

c2+=(*f)(a+k*h+h/4);

c3+=(*f)(a+k*h+h/2);

c4+=(*f)(a+k*h+3*h/4); } c=h/90*(7*((*f)(a)+(*f)(b))+14*c1+32*c2+12*c3+32*c4); return c; } float f(float x) { // return 1/sqrt(1+x*x*x);

if (x==0)return 1;

else return sin(x)/x; } void main() { int i,n=4; float c; for(i=0;i

c=Cotes(f,0,5,n);

printf(\"C(%d)=%f\\n\",n,c);

n*=2; } }

(2)实验结果及分析

四、总结

学习了复化辛卜生公式,自适应梯形公式,龙贝格算法,运用求解定积分并控制精度的方法。

习题七:

7 常微分方程数值解法

一、实验目的

(1)熟悉求解常微分方程初值问题的有关方法和理论,主要是改进欧拉公式,四阶龙格-库塔法和阿当姆斯方法;

(2)编制上述方法计算机程序,包括求解微分方程组的计算程序; (3)针对实习题编制程序,并上机计算其所需要的结果;

(4)体会各种解法的功能,优缺点及适用场合,会选取适当的求解方法。

二、实验内容

1、分别用改进欧拉法与四阶龙格-库塔公式(取h0.1)求解下列微分方程初值问题

2、用四阶龙格-库塔公式(取h0.1)解下列微分方程组初值问题

三、实验步骤、程序设计、实验结果及分析

1、分别用改进欧拉法与四阶龙格-库塔公式(取h0.1)求解下列微分方程初值问题 a.改进欧拉法 (1)程序设计 #include void ModEuler(float(*f)(float,float),float x0,float y0,float xn,int n) { int i; float yp,yc,x=x0,y=y0,h=(xn-x0)/n; printf(\"x[0]=%f\\ty[0]=%f\\n\",x,y); for(i=1;i

yp=y+h*(*f)(x,y);

x=x0+i*h;

yc=y+h*(*f)(x,yp);

y=(yp+yc)/2;

printf(\"x[%d]=%f\\ty[%d]=%f\\n\",i,x,i,y); } } float f(float x,float y) { //return x*x+y*y;

//题(1)

//return 1/(1+y*y);

//题(2)

return y-2*x/y;

//题(3) } void main() { float xn=1.0,x0=0,y0=1;

ModEuler(f,x0,y0,xn,10); }

(2)实验结果及分析 (1)

(2)

(3)

b.四阶龙格-库塔公式 (1)程序设计 #include void Runge_Kutta(float(*f)(float x,float y),float a,float b,float y0,int N) { float x=a,y=y0,K1,K2,K3,K4; float h=(b-a)/N; int i; printf(\"x[0]=%f\\ty[0]=%f\\n\",x,y); for(i=1;i

K1=(*f)(x,y);

K2=(*f)(x+h/2,y+h*K1/2);

K3=(*f)(x+h/2,y+h*K2/2);

K4=(*f)(x+h,y+h*K3);

y=y+h*(K1+2*K2+2*K3+K4)/6;

x=a+i*h;

printf(\"x[%d]=%f\\ty[%d]=%f\\n\",i,x,i,y); } } float f(float x,float y) { //return x*x+y*y;

//题(1)

//return 1/(1+y*y);

//题(2)

return y-2*x/y;

//题(3) } void main() { float a=0,b=1.0,y0=1; Runge_Kutta(f,a,b,y0,10); } (2)实验结果 (1)

(2)

(3)

2、四阶龙格-库塔公式解微分方程组初值问题 (1)程序设计 #include void Runge_Kutta(float(*f)(float x,float y,float z),float (*g)(float x,float y,float z),float a,float b,float y0,float g0,int N) { float x=a,y=y0,z=g0,K1,K2,K3,K4,l1,l2,l3,l4; float h=(b-a)/N; int i; printf(\"x[0]=%f\\ty1[0]=%f\\ty2[0]=%f\\n\",x,y,z); for(i=1;i

K1=(*f)(x,y,z);l1=(*g)(x,y,z);

K2=(*f)(x+h/2,y+h*K1/2,z+h*l1/2);l2=(*g)(x+h/2,y+h*K1/2,z+h*l1/2);

K3=(*f)(x+h/2,y+h*K2/2,z+h*l2/2);l3=(*g)(x+h/2,y+h*K2/2,z+h*l2/2);

K4=(*f)(x+h,y+h*K3,z+h*l3);l4=(*g)(x+h,y+h*K3,z+h*l3);

y=y+h*(K1+2*K2+2*K3+K4)/6;

z=z+h*(l1+2*l2+2*l3+l4)/6;

x=a+i*h;

printf(\"x[%d]=%f\\ty[%d]=%f\\tz[%d]=%f\\n\",i,x,i,y,i,z); } } float f(float x,float y,float z) {

return 120-2*y+2*z;

} float g(float x,float y,float z) {

return 2*y-5*z;

} void main() { float a=0,b=1.0,y0=0,g0=0; Runge_Kutta(f,g,a,b,y0,g0,10); }

(2)实验结果

四、总结

通过这次学习,我掌握了根据不同场合选择不同方法计算求解问题的方法,主要学习了改进欧拉法和四阶龙格-库塔法求解微分方程的求解问题方法。

计算方法上机汇总:

通过对这门课的学习,我们学习了很多计算方程、曲线拟合、求解微分方程的方法。而实习

课让我们将所学的原理应用到实践中去,上机编写程序的过程中我们不断的运用已学知识,掌握了求解各种实际问题的方法,并且体会了不同的方法的不同结果,从而在不同的场合,要用合适的计算方法来求解问题。我们求解的问题包括误差分析,线性方程组的求解,微分方程的求解等问题。在选择合适的计算方法的时候要考虑方法的收敛性,稳定性,以及哪种方法计算速度快,最终结果误差小。这门课与计算机密切结合并且实用性极强,能够将所学的知识在实践中得到应用,加强了我对专业学习的信心。

参考文献:

【1】孙志忠.计算方法典型例题分析.第二版.北京:科学出版社,2005 【2】孙志忠,袁慰平,计算方法与实习.第二版.南京:东南大学出版社,2011 【3】谭浩强.C程序设计.第四版.北京:清华大学出版社,2010 ◆ 《数值计算方法》 合肥工业大学数学与信息科学系 编 合肥工业大学出版社 ◆ 《计算方法》 邓建中等编,西安交大出版社,1985。

◆ 《数值计算和C程序集》蒋长锦编著,中国科学技术大学出版社,1998。 ◆ 《计算方法引论》徐萃薇编,高等教育出版社,1999。

◆ 黄友谦,程诗杰,陈浙鹏,《数值试验》,北京:高等教育出版社,1989

◆ 蔡大用,《数值分析与实验学习指导》,北京:清华大学出版社与施普林格出版社,2001 ◆ 肖筱南,《值计算方法与上机实习指导》,北京:北京大学出版社,2004

A.Quarteroni, R.Sacco, F.Saleri,《Numerical Mathematics》, New York:Springer-Verlag, 2000

第13篇:长江大学VB上机实习报告

计算机上机实习报告

学院:石油工程学院 班级:储运11204 姓名:魏亚荣

学号:XXXXXXX 班内序号:XX 指导教师:XXX

第 1 页

计算机上机实习报告

目录

一.系统名称----------------------------3 二.实习目的----------------------------3 三.系统功能概要----------------------3 四.系统设计分析----------------------3 五.窗体设计与程序代码------------5 六.心得体会---------------------------16

计算机上机实习报告

一、系统名称----班级学生成绩管理系统

二、实习目的:

综合应用所学理论知识,联系实际开发一个具备简易功能的班级学生成绩管理系统。熟悉程序编写与调试,熟悉数据文件的创建、打开、读写、关闭等相关操作,同时让我们熟悉VB 6.0的开发环境,掌握基本的编程方法,熟悉用VB语言完成一个应用程序的设计过程,掌握有关编辑和调试程序的方法和技巧。

三、系统功能概要

1、用记事本新建一个文本文件,将本班的M名学生的有关信息及本学期的N门考试课的成绩(要求用假想分数,并要求将自己的每门课的放在第一列)输入到这个文件中,建议按如下形式存放(注:20≤M≤50、5≤N≤8,下文以M=10,N=5为例): 序号

姓名

幸运日

出生日期

英语

VB 数学

体育

专业课

作者自己

1992.12.19 99

100 98

98

100 10

张某

1993.08.06 77

76 80

89

85 5

李某

1994.11.16 89

88 99

97

95 3

王某

1993.06.04 56

76 43

54

77 2

刘某

1994.01.05 82

87 85

79

89 1

孙某

1994.01.15 45

56 66

65

68 4

赵某

1992.01.05 82

96 56

85

55 6

陈某

1993.12.25 86

86 66

86

87 9

周某

1666.12.23 56

96 65

56

56 8

钱某

1994.03.03 56

65 56

56

56

2、将本学期的N门课程及其学分(16学时为1个学分)输入到另一个数据文件(文件类型同上题)中,建议如下列形式存放:

编号

课程名称

课程学分

英语

5.0 2

vb程序设计

4 3

数学

4.5 4

体育

3.0 5

专业课

10.0 1)找出“出生日”与幸运日相同的人,并打印出其信息(每行输出一个人信息) 2)统计出分别拥有幸运数字1,2,3,4,5,6,7,8,9,0的人数 3)能查出任何一个你感兴趣的人的信息 4)可新添加一个人的信息 5)和删除一个人的信息

计算机上机实习报告

6)可以对某个人的幸运数字进行修改,只改变其幸运数字,其他信息不变

7)根据以上两文件内容分别计算每个学生N门课的加权平均分(保留2位小数,4舍5入),按平均分排列名次,平均分相同则名次并列,如第

1、

2、

2、

4、

5、

5、7…名。用VB创建一个数据文件,存放班级的成绩表,建议按以下形式存放。

学号

姓名

英语

vb程序设计

数学

平均成绩

名次

张某

76

89

89

80.5

2 2

李某

91

96

67

78.2

3 3

王某

75

58

56

88.8

1 4

赵某

58

67

77

68.5

4

8)分别统计全班每门课的平均分,并计算各分数段(60分以下;60~69;70~79;80~89;90分以上)的学生人数。用VB创建一个新的数据文件,在该文件中存放数据的格式如下:

范围.

英语

VB

.>=90

.80-89

...............................9) 打印每名学生成绩条(并将结果存放到用VB创建的一个新的数据文件中)。

10)打印所有存在不及格课程学生的名单(含学号、不及格课程名称、课程的学分及成绩)。 11)打印优等生名单(学号、N门课成绩、平均分名次) 优等生条件:

a)平均分  90分

b) 名次在本班位于前三名

c)平均分85分,并且有二门课的成绩都  95分

选做内容:打印每门课成绩分布图

明:所有输出结果应写入用VB创建的文件中,格式要整齐,并有适当的文字说明。 实习报告要求:应包括分析设计与说明、部分过程(函数)的源程序清单、程序调试过程中遇到的问题及解决方法,有待改善或改进的意见,对本次实习的意见与建议、收获等。其中原始数据及程序运行的结果应作为附录附于实习报告之后。

四、系统设计分析:

1、该成绩管理系统中要同时表示学生的学号、姓名、成绩等一些信息,及课程、课程学分等一些信息,由于每项信息的意义不同,数据类型也不同,但还要同时作为一个整体来描叙和处理,因此需要通过用户自定义来解决。所以在编程之前新建一个标准模块用来定义自定义类型。

2、为了便于后面执行求加权平均分、排名等命令,在Form1发生Load事件时应将学生信息和课程信息读取并放到两个数组中,由于这两个数组在该管理系统的全程序都要用到,因此应定义为全局类型。如是在标准模块中定义两个数组。

3、由于原始数据文件中相邻的两列之间空格的长短不一,因此在调用Split函数之前应窗体通用模块中自定义一个space1函数将原始数据文件中相邻的两列之间空格数变为相同。

4、在编写程序时,由于该系统的程序代码较多,因此在编写时要合理。

5、在打印成绩条、不及格名单、优等生等信息时,应边用write语句分别将数据存入一个新的文件中。

计算机上机实习报告

6、实习必须按着老师的严格要求完成所有的实习任务,并整理成文件打印。

五.窗体设计与程序代码

1.此次窗体设计使用了11个命令按钮分别对应不同的系统功能要求,具体界面如下

2.程序代码

⑴统计“出生日”与幸运日相同的人

Dim stu() As student, n%, kc() As kecheng, x% Private Sub Command1_Click() Cls For i = 1 To UBound(stu())

If Right(stu(i).birthday, 2) = stu(i).luckyday Then

Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday;

For j = 1 To 5

Print stu(i).score(j);

Next j

Print

End If Next i End Sub

计算机上机实习报告

⑵统计不及格学生的名单

Private Sub Command10_Click() Cls Print "序号"; Spc(3); "姓名"; Spc(3); "成绩"; Spc(3); "学分"; Spc(3); "课程"; For i = 1 To UBound(stu())

For j = 1 To 5

If stu(i).score(j)

Print Tab(0); stu(i).num; Spc(3); stu(i).name; Spc(2); stu(i).score(j); Spc(3); kc(j).xf; Spc(3); kc(j).km;

End If

Next j Next i End Sub

⑶打印优等生名单

Private Sub Command11_Click() Cls Print "学号""英语"; Space(3); "VB"; Space(3); "数学"; Space(3); "体育"; Space(3); "专业课"; Space(3); "排名"

计算机上机实习报告

Dim zxf%, i%, j%, k% For i = 1 To UBound(kc())

zxf = zxf + kc(i).xf Next i For j = 1 To UBound(stu())

For k = 1 To 5

stu(j).average = stu(j).average + stu(j).score(k) * kc(k).xf / zxf

stu(j).average = Format(stu(j).average, "0.00")

Next k Next j For m = 1 To UBound(stu())

stu(m).rank = 1

For n = 1 To UBound(stu())

If stu(m).average

stu(m).rank = stu(m).rank + 1

End If

Next n Next m For i = 1 To UBound(stu())

k = 0

For j = 1 To 5

If stu(i).score(j) >= 95 Then

k = k + 1

End If

Next j

If stu(i).average >= 90 Or stu(i).rank = 85 And k >= 2) Then

Print stu(i).num; Space(3); stu(i).name;

For m = 1 To 5

Print stu(i).score(m); Spc(4);

Next m

Print stu(i).rank

End If Next i End Sub

计算机上机实习报告

⑷统计各幸运数字的人数 Private Sub Command2_Click() Cls For i = 0 To 9

Dim luckypeople%

For j = 1 To UBound(stu())

If Val(stu(j).luckyday) = i Then

luckypeople = luckypeople + 1

End If

Next j

Print "幸运数字为" & i; "的人数为:" & luckypeople

luckypeople = 0 Next i End Sub ⑸查询信息

Private Sub Command3_Click() Cls Dim rm As String, i%, j% rm = InputBox("请输入你想要查询的同学的姓名") For i = 1 To UBound(stu())

If Trim(stu(i).name) = rm Then

Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday;

For j = 1 To 5

Print stu(i).score(j);

Next j

End If Next i End Sub

计算机上机实习报告

⑹添加信息

Private Sub Command4_Click() Cls Dim xinxuesheng As String xinxuesheng = InputBox("请依次按照序号,姓名,幸运日,出生日期,英语,vb,数学,体育,专业课的顺序输入新同学的信息,中间用空格隔开") Open "e:\vb作业1.txt" For Append As #1 Print #1, xinxuesheng Print Close #1 Do While InStr(Trim(xinxuesheng), " ") 0

xinxuesheng = Replace(Trim(xinxuesheng), " ", " ") Loop a = Split(xinxuesheng, " ") n = n + 1 ReDim Preserve stu(n) stu(n).num = a(0) stu(n).name = a(1) stu(n).luckyday = a(2) stu(n).birthday = a(3) For i = 1 To 5

stu(n).score(i) = a(3 + i) Next i For i = 1 To UBound(stu())

Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday;

For j = 1 To 5

Print stu(i).score(j);

Next j

Print Next i

计算机上机实习报告

End Sub

⑺删除信息

Private Sub Command5_Click() Cls Dim rm As String rm = InputBox("请输入你要删除的同学的姓名") For i = 1 To n

If Trim(stu(i).name) = rm Then

Exit For

End If Next i

For j = i To n1) For i = 1 To UBound(stu())

Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday;

For j = 1 To 5

Print stu(i).score(j);

Next j

Print

计算机上机实习报告

Next i End Sub

⑻修改幸运数字

Private Sub Command6_Click() Cls Dim rm As String, shuzi As String, i%, j% rm = InputBox("请输入你要修改的同学的姓名") shuzi = InputBox("请输入你要修改后的幸运数字") For i = 1 To UBound(stu())

If Trim(stu(i).name) = rm Then

stu(i).luckyday = shuzi

Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday;

For j = 1 To 5

Print stu(i).score(j);

Next j

End If Next i End Sub

计算机上机实习报告

⑼计算每个学生的平均分 Private Sub Command7_Click() Cls Dim zxf%, i%, j%, k% For i = 1 To UBound(kc())

zxf = zxf + kc(i).xf Next i For j = 1 To UBound(stu())

For k = 1 To 5

stu(j).average = stu(j).average + stu(j).score(k) * kc(k).xf / zxf

stu(j).average = Format(stu(j).average, "0.00")

Next k Next j For m = 1 To UBound(stu())

stu(m).rank = 1

For n = 1 To UBound(stu())

If stu(m).average

stu(m).rank = stu(m).rank + 1

End If

Next n Next m Open "e:\成绩单.txt" For Append As #3 Print #3, "序号"; Space(3); "姓名"; Space(3); "幸运日"; Space(3); "出生日期"; Space(4); "数学"; Space(4); "英语"; Space(4); "vb"; Space(4); "物理"; Space(3); "专业课"; Space(3); "平均分"; Space(3); "排名" For i = 1 To UBound(stu())

Print #3,

Print #3, stu(i).num; Space(3); stu(i).name; Space(3); stu(i).luckyday; Space(3); stu(i).birthday; Space(3);

For j = 1 To 5

计算机上机实习报告

Print #3, stu(i).score(j); Space(3);

Next j

Print #3, stu(i).average; Space(3); stu(i).rank; Next i Close #3 End Sub

⑽统计成绩分布

Private Sub Command8_Click() Cls Dim i%, j%, bsix%, %, se%, en%, anine%, a(1 To 25) As Integer, b(1 To 5) As Integer, c(1 To 5) As Integer, d(1 To 5) As Integer, e(1 To 5) As Integer, o(1 To 5) As Integer, p(1 To 5) As Integer, q(1 To 5) As Integer, r(1 To 5) As Integer, s(1 To 5) As Integer For i = 1 To 5

kc(i).zf = 0

For j = 1 To UBound(stu())

kc(i).zf = kc(i).zf + stu(j).score(i)

Next j

kc(i).average = kc(i).zf / UBound(stu())

kc(i).average = Format(kc(i).average, "0.00")

Print kc(i).average Next i Open "e:\成绩分布.txt" For Append As #4 Print #4, "范围"; Space(8); "数学"; Space(3); "英语"; Space(3); "vb"; Space(3); "物理"; Space(3); "专业课"

计算机上机实习报告

For i = 1 To 5

For j = 1 To UBound(stu())

If stu(j).score(i) >= 90 Then

o(i) = o(i) + 1

ElseIf stu(j).score(i) >= 80 Then

p(i) = p(i) + 1

ElseIf stu(j).score(i) >= 70 Then

q(i) = q(i) + 1

ElseIf stu(j).score(i) >= 60 Then

r(i) = r(i) + 1

Else

s(i) = s(i) + 1

End If

Next j Next i Print #4, ">=90"; Spc(8); For i = 1 To 5

Print #4, o(i); Spc(4); Next i Print #4, Print #4, ">=80"; Spc(8); For i = 1 To 5

Print #4, p(i); Spc(4); Next i Print #4, Print #4, ">=70"; Spc(8); For i = 1 To 5

Print #4, q(i); Spc(4); Next i Print #4, Print #4, ">=60"; Spc(8); For i = 1 To 5

Print #4, r(i); Spc(4); Next i Print #4, Print #4, "其他"; Spc(8); For i = 1 To 5

Print #4, s(i); Spc(4); Next i Print #4, Close #4 End Sub

计算机上机实习报告

⑾打印学生成绩条

Private Sub Command9_Click() Dim stu(1 To 20) As String Open "e:\成绩单.txt" For Input As #5 For i = 1 To 20 Line Input #5, stu(i): Print stu(i) Next i Close #5 End Sub

⑿文本信息的输入

Private Sub Form_Load() Dim str1 As String, a() As String, i%, str2 As String, b() As String Open "e:\学生信息.txt" For Input As #1 Line Input #1, str1 Print str1

计算机上机实习报告

Do While Not EOF(1)

Line Input #1, str1

Do While InStr(Trim(str1), " ") 0

str1 = Replace(Trim(str1), " ", " ")

Loop

a = Split(str1, " ")

n = n + 1

ReDim Preserve stu(n)

stu(n).num = a(0)

stu(n).name = a(1)

stu(n).luckyday = a(2)

stu(n).birthday = a(3)

For i = 1 To 5

stu(n).score(i) = a(3 + i)

Next i

Cls Loop Close #1 Open "e:\学分.txt" For Input As #2 Line Input #2, str2 Print str2 Do While Not EOF(2)

Line Input #2, str2

Do While InStr(Trim(str2), " ") 0

str2 = Replace(Trim(str2), " ", " ")

Loop

b = Split(str2, " ")

x = x + 1

ReDim Preserve kc(x)

kc(x).bh = Val(b(0))

kc(x).km = b(1)

kc(x).xf = b(2) Loop Close #2 Cls End Sub

六.心得体会

1.通过这次上机实习,我受益匪浅,不仅更加熟悉VB的操作和运行环境,同时将课堂上所学的知识进行了系统化的整

计算机上机实习报告

理与疏导;

2.在此次上机实习中,我切身体会到了编程对我们现代生活的重要性,编程能大大地方便我们日常的生活,使我们上网,工作更快捷,一个人就能干许多人的事情,大大地节约了人力,这将使计算机的应用更加普遍和普及,使社会的生产效率越来越高。

第14篇:会计模拟上机实习报告

会计综合模拟实训

实习报告

专业班级:会计0901班

学号:姓名:指导老师:

新学期伊始,我参与学习了为期两周的会计综合模拟实习,收获颇丰,学而时习之,不亦说乎?希望在此对本次实习做一个较为全面的总结,并表达自己的学习体会和感想,从中发现自身的不足,为将来的会计学习助力。

首先,本次会计模拟实习的内容是,分析湖南湘滨食品厂2010年12月份的各个经济业务往来并填写相关的原始凭证和记账凭证,再根据记账凭证登记有关的日记账和明细账分类账户。月末,汇总各生产产品,人员工资分配,编制“汇总记账凭证”(科目汇总表),再根据“汇总记账凭证”(科目汇总表)登记总分类帐户,最后,进行年终结算,结算本年利润,编制资产负债表,利润表和现金流量表,并进行利润分配。学习目的在于通过对企业会计模拟实训的操作,系统地掌握企业会计核算的整体流程,从而加强对所学会计理论和知识的理解与认识,完成从理论到实践的认知过程。实训的内容涵盖了会计操作的全部基本技能——从建账、填制和审核原始凭证、记账凭证到登记账簿;从日常会计核算、成本计算到编制会计报告、年终结账。 以一个模拟企业的特定会计期间为范围,将经济业务的来龙去脉与企业的生产经营有机地结合起来。

其次,我想重点谈一谈本次模拟实习中遇到的问题。

理论知识需要实际操作来巩固和完善,通过本次实习,我深深的感到惭愧,自己的在中级财务会计和成本会计两门课的理论学习中没能扎实的掌握知识,有许多遗漏,所以在实习期间,一个人又当会计,又当出纳,业务的登记遇到了很多问题。例如,一开始对于填制原始凭证十分陌生,尤其是对于职工差旅费的登记,以及职工工资分配的计算,让我有了不知所措的感觉。以及对于记账凭证的填制,一开始非常不上手,有些业务不知该填什么科目,只好一个一个的试,于是比其他同学要慢了一大截,实在不会的地方只好向周围的同学求助。幸好周围的杜丹同学和文秋艳同学十分优秀,她们非常耐心的帮我解决了问题。做过大概三十笔业务后,我渐渐对简单经济业务的原始凭证,记账凭证,相关明细账和日记账的登记有了积累,做起来了快多了。对于会计模拟实习的最大感触是,山穷水复疑无路,柳暗花明又一村。实习过程深入浅出,很多问题一开始非常棘手,让人不知从何下手,渐渐会了之后,发现其实十分简单,有些繁杂的只是计算上的繁琐,什么业务该用什么科目,什么分配该用什么方法,什么内容该归入什么什么汇总。。。。。。理清了来龙去脉,做起帐来就能豁然开朗,然而理清头绪的代

价,就刚入手时一步一个脚印,解决一个又一个“卡壳”的过程。

年末登记汇总的期间,也是我们最焦头烂额的时候。大家一开始都不知道该从何下手,只是依稀记得一些成本会计的知识,但汇总出来的结果答案都不一样。而我更是感到十分无助,不知道该怎么做的时候,甚至想要放弃,想到大家都做的那么快,而我被落在后面,一起合作讨论也无从问起了,只好一个人对着电脑发呆。

但是学习就是为了发现问题和解决问题的,我告诉自己,不要怕比别人差,就怕落后了就灰心丧气,不思进取。所以,我回到寝室后,利用晚上空闲的时间又将成本会计浏览了一遍,将费用在各种产品以及期间费用之间的归集和分配,生产费用在完工产品和再产品间的分配认真复习了一下,理清了各种费用的归集和分配方法,结合本次模拟实习的实例,渐渐对完成企业会计模拟实习有了些许信心,虽然还是效率不高,最后实习结束了,距离该完成的目标还差了好大一截,但是毕竟,我告诉自己,这次实习我收获很大,触动也很大,在实习结束后,我开始翻出曾经学过的基础会计,中级财务会计,高级财务会计以及成本会计的书,在发现自己缺陷的地方重点学习,攻破难点,并把知识点串联起来,形成连贯性的,有逻辑的会计思维体系,相信只有这样,才能使我将来对会计的深造以及应用有更大的帮助。

接下来,我再来谈一谈本次会计模拟实习的心得体会。

在实习期间,我曾觉得整天要对着那枯燥无味的账目和数字而心生烦闷、厌倦,以致于登账登得错漏百出。愈错愈烦,愈烦愈错,这只会导致“雪上加霜”。反之,如果你用心地做,反而会左右逢源,越做越觉乐趣,越做越起劲。梁启超说过:凡职业都具有趣味的,只要你肯干下去,趣味自然会发生。因此,做账切忌:粗心大意,马虎了事,心浮气躁。

对于会计账目的登记,要根据经济业务逐日逐笔的完善每一笔业务,原始凭证,记账凭证,以及相关日记账和明细账都要一笔业务都做完,不然分开做的结果就是容易丢三落四,效率低下。刚开始,我并不熟悉流程,登记了原始凭证和记账凭证后,没有登记明细账和日记账,到了第十几笔业务后,才开始补做。这样虽然也只是对记账凭证的细化抄录,但是时隔几个经济业务日后,就忘记了之前业务的细节,要反复查看旧账,而且抄录工作也非常繁琐。在实训的过程中,

我深深感觉到自身所学知识的有限。有些题目书本上没有提及,所以我就没有去研究过,做的时候突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但还是浪费了许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在每次实训中必不可少的部分,是同学之间的互相帮助与交流。会计的学习繁琐但并非无章可循的死记硬背,掌握了逻辑要领,对知识进行对比总结,区分相同与特殊,同时,对实务的实践也是必不可少的锻炼,相信这样系统的学习方法,将会对我的会计学习有很大帮助。

两个星期的实训是在我们充实、奋斗的过程中完成的,记得实训的开始是那样的忙碌和疲惫,甚至是不知所措,因为我们的自学能力和结合能力没有很快的结合与适应,只能依靠老师的引导和帮助,现在的我们可以称得上是一个基本会计人员了。学校实训的目的就是要加强我们能力培养和职业道德意识的提高,实训就是我们适应社会工作的垫脚石!

希望在接下来的日子里,能有更多实训的机会,使我能不断地查漏补缺,丰富和熟悉专业知识,做到信手拈来,为以后走向社会奠定良好的基础。通过实训,我对会计核算的感性认识进一步加强。我们这次实训是综合性训练,既是主管会计、审核、出纳,又是其他原始凭证的填制人,克服了分岗实习工作不到位的不完整、不系统现象。加深理解了会计核算的基本原则和方法,将所有的基础会计、财务会计和成本会计等相关课程进行综合运用,了解会计内部控制的基本要求,掌握从理论到实践的转化过程;熟练掌握了会计操作的基本技能;将会计专业理论知识和专业实践,有机的结合起来,开阔了我们的视野,增进了我们对企业实践运作情况的认识,为我们毕业走上工作岗位奠定坚实的基石。

第15篇:国贸上机模拟实习报告

这次国贸模拟为期三个星期。在此次实习中,我感觉收获很多,我开始逐渐熟悉外贸实务的具体操作流程,增强感性认识,从中进一步了解、巩固与深化已经学过的进出口贸易的的运作方式;切身体会到国际贸易中不同当事人面临的具体工作与他们之间的互动关系;学会填制各种单据,并为商品的进出口报关做准备。在实习中,我们能够充分发挥主观能动性,真正理解并吸收课堂中所学到的知识,为将来走上工作岗位打下良好基础。

此次我们实训的软件是顺普国际贸易实训软件,顺普国际贸易实训仿真互动平台是专门为高等院校精心打造一流的国际贸易、国际商务、国际物流实验室的十分有效的实训软件。该软件系统集商务、通关、物流为一体,构建了门类齐全、形式丰富的国际贸易技能实习的平台,从而为学校教学工作起到十分重要作用。在本次实习中,我们充分利用了顺普系统中提供的各项资源。在模拟中,对于不同角色,我们需要缮制不同的单据,费用计算也不尽相同,在系统界面右侧我们可以查询到各种所需资料,有选择性的对信息进行筛选,结合所学知识得到自己所需要的信息。

这次实习内容不同于平时上课,平时上课只是老师一味的交给我们应该学习什么,并给我们举例子,让我们理解,但是好像收获并不大。但是这次实习则不同,我们可以担任出口方,也可以担任进口方,充分了解了进出口流程。随着老师的讲解,我们慢慢的知道了如何填制,如何操作。我们对国际贸易的业务流程及操作有了更进一步的了解和感触,现在我们对贸易的理解已经不在停留在单纯的理论层面。本次模拟训练给我最大的体会就是操作细节的细腻及流程的缜密,各个流程相互衔接,此流程的疏忽将会导致彼此流程无法完成,某一细节的不慎错误或纰漏将会导致整个流程操作前功尽弃,这为未来的实际工作敲响了警钟:做贸易一定要仔细谨慎。

我知道贸易实务工作是一项热情的事业,并且要持之以恒的品质精神和吃苦耐劳的品质。我觉得重要的是在这段实习期间里,我第一次真正的融入了社会,在实践中了解社会掌握了一些与人交往的技能,并且在次期间,我注意观察了老师之间是怎样的沟通与交流的,怎样处理之间的关系。利用这次难得的机会,也打开了视野,增长了见识,为我们以后进一步走向社会打下坚实的基础。

实习期间,我从末出现无故缺勤。我勤奋好学.谦虚谨慎,认真听取老师的指导,对于别人提出的工作建议虚心听取。并能够仔细观察、切身体验、独立思考、综合分析,并努力学到的知识应用到实际贸易操作中去,尽力做到理论和实际相结合的最佳状态,培养了我执着的好学精神和勤奋踏实的工作作风。也培养了我的耐心和素质。能够做到对知识的熟练,与同学友好相处,尊重老师,工作认真负责,责任心强,能保质保量完成工作任务。并始终坚持一条原则:要么不做,要做就要做最好。 当然,在模拟中我们也遇到了一些问题,主要在于,上机效率低。连续两周时间,每天下午只做一两个流程,这就使得有大部分时间空余,当然,指导教师是希望同学们更多的摸索软件,更多的了解流程,但是实际情况却事与愿违,大部分都在做着与模拟无关的事情。

通过此次实习,让我学到了很多课堂上更本学不到的东西,对国际贸易实际操作有了进一步的了解,加强了自己对贸易实务操作流程的认识。同时也懂得了贸易实务操作应支持仔细认真的工作态度,要有一种平和的心态和不耻下问的精神,不管遇到什么事都要去思考,多听别人的建议,不要太过急燥,要对自己所做事去负责,不要轻易的去承诺,承诺了就要努力去兑现。此次实习让我对实际的贸易操作有了一个新的开始,更好地为我们今后的工作积累经验。

第16篇:会计信息系统上机实习报告

本次会计信息系统实习,我们主要了解了金蝶软件的具体操作过程和应用。我们在老师的指引下创建模拟的会计电算化工作环境,完成了会计电算化中从建立帐套、系统初始化、基础设置、出纳管理、工资结算、固定资产、会计报表等过程的操作训练。

一、实习内容: (1)账务处理模块。

账务处理模块主要是以会计凭证为原始数据,按会计科目,统计指标体系对记账凭证所载的经济内容,进行记录、分类、计算、加工、汇总,输出总分类账、明细分类账、日记账及其他辅助账簿、凭证和报表。

账务处理模块主要包括:①账务初始(建账);②凭证处理(输入、审核、汇总);③查询;④对账;⑤结账;⑧打印输出;⑦其他辅助功能。

账务初始是根据程序要求和内部管理需要自定义会计科目体系、记账凭证格式、账簿体系的过程。相当于手工状态下设立一套新的账务核算体系,是用计算机建账的过程。

凭证处理包括凭证的输入、修改、审核、汇总、打印等内容。

查询是设定查询条件标志,灵活迅速查询某会计期间的会计凭证及有关明细分类账、总账的有关内容。例如:寻找特定内容的会计凭证,查找会计科目的发生额或余额等。

对账功能一部分是由会计核算软件在设计时由程序自动检查核对,如总账、明细账、日记账之间的账账核对;另一部分则提供给用户进行核对,如与银行对账单核对,与往来账核对,与其他辅助账核对等,并能做出调节表等相关资料。

结账功能由程序完成,按国家会计制度规定,按会计科目分级进行计算、汇总,结出借贷发生额和余额,结束当期核算,开始下一个会计核算循环。结账还包括会计信息跨年度结转,开始一个新的会计年度的特殊内容。

打印输出功能是打印记账凭证、账簿等会计信息资料,以便用户使用和归档保管。

(2)出纳管理

系统还提供了单位出纳人员所需要的现金和银行日记账、银行对账、资金日报表,账务系统银行日记账与银行对账及支票管理等实用功能。规范的引入和导出接口,自动对账、一次性可选取消所有已勾对的标志及借助排序器实现一对多功能等可充分提高出纳人员的工作效率。出纳系统与账务系统功能分离但数据却可紧密连结共享,合理的数据共享模式可使得会计与出纳人员更能高效的独立工作。

(3)报表处理模块。

报表处理模块是按国家统一的会计制度规定,根据会计资料而编制会计报表,向公司管理者和政府部门提供财务报告。会计报表按其汇编范围可分为个别报表、汇总报表以及合并报表。

报表处理模块包括:①报表定义;②报表计算;③报表汇总;④报表查询;⑤报表输出。 报表定义是依据会计软件,建立一个新的报表体系所做的工作。主要包括:定义报表名称,描述空白表格的格式,定义报表项目填写内容的数据来源和报表项目及运算关系,确定表格项目审核校验及报表间项目的勾稽关系,检查公式以及汇总报表的汇总范围等步骤。

经过报表定义之后,就可以按规定计算或汇总产生所需要的会计报表,通过审核校验确认后,可以打印、复制、查询,输出会计报表。

(4)工资核算模块。

工资核算模块以计提发放职工个人工资的原始数据为基础,计算职工工资,处理工资核算。

工资核算模块包括:①设计工资项目及项目计算公式;②录入职工工资基础资料;③增减变动及修改;④计算汇总;⑤查询;⑥打印输出。 工资核算模块,首先设计工资的项目及项目计算公式,按项目录入职工应发、扣减、实发金额,按使用者的要求计算配发不同面值的零、整钱数。

该模块应具备自行定义工资的项目,选择分类方式,灵活修订工资项目,调整职工个人基础资料,定义工资计算公式(如代扣个人所得税计算公式)进行汇总计算。自动制作转账凭证,填制分录,进行工资分配,计算工资福利费。

(5)固定资产核算模块。

固定资产核算模块主要是用于固定资产明细核算及管理。

固定资产核算模块包括:①建立固定资产卡片;②建立固定资产账簿;③录入固定资产变动情况;④计提固定资产折旧;⑤汇总计算;⑥查询及打印输出;⑦编制转账凭证。

此模块主要是根据财务制度的规定,建立固定资产卡片,确定固定资产计提折旧的系数、方法,录入固定资产增减变动情况,汇总计算固定资产原值、累计折旧及净值。按预先设计自动编制转账分录,完成转账的记录,打印输出固定资产明细账和资料卡片,详细反映固定资产价值状况。

二、实习流程

1、首先进行帐套管理练习,包括根据要求建立帐套和帐套恢复与备份

2、系统初始化,包括在KIS专业版系统设置系统属性、用户管理和基础资料设置(其中有些同学因为会计期间设置错误导致后面的账务处理出现问题)。

3、账务处理联系,包括账务处理、出纳管理、报表与分析、工资管理、固定资产等五个部分。

4、自动转账并生成利润表、利润分配表和资产负债表。

三、实习心得

会计是一门实践性比较强的科目,会计信息系统的实验课为我们提供了一个把理论知识转化为实践应用的平台。通过这门课的学习,我们增强了动手能力,对会计信息系统以及相关的会计知识有了更深层次的认识。

(一)实验收获

本学期的金蝶K3软件实训让我收获颇丰。在此之前,我已经学习了一定的理论知识,但并没有将其运用到实际中去。而通过这段时间的实验室模拟实习,我对该软件有了一定程度的认识,能够将我所学的理论知识和实际相结合,并对理论知识有了深层次的理解。此外,在这次试验之中,我还体会到了互相合作的重要意义。

(二)实验中遇到的问题

1.开始实验时,对实用的软件并不熟悉以致出现了许多的问题。

2.就是基础资料的录入,因为基础资料是运行K3的基石,就如同建造房子之前要准备好材料一样。但是基础资料的录入过程比较繁琐,在做到后面的时候才发现有很多的基础资料被忘记录入了。

3.在凭证和总账处理模块,出现了很多的问题。

所幸的是,以上出现的问题通过询问他人最终被解决了,这是我认识到了做任何事情都不是埋头苦干,适当的时候也需要他人的援助。

(三)心得体会

在这次实验过程中,提升了我们的耐心与信心。在软件造作过程中,基础数据及资料的输入是一个较为让人痛疼的事情,倘若基础数据或资料输入有误,则后头的操作即使步骤正确也无法得到所需的结果,检查的时候也难以发现是哪一步出了错,其后果只有重新开始做。因此,在操作每一步骤时,都应非常的细心,以免出现不应该出现的错误。 总之,这次实验课让我增长了许多知识。先进的科技技术和经营管理是推动现代化经济和企业高速发展的两个车轮,二者缺一不可。没有先进的管理水平,先进的科学技术无法推广,也不能充分发挥它的作用。希望在今后的生活学习和工作中能充分发挥自己的作用,将所学到的知识运用到实践中,从而做出自己应做出的贡献。

第17篇:电算化会计上机实习报告

电算化实习报告

20121001133 084121

于洋

一,实习时间:

1月10日上午、下午 8:30——17:30 1月11日下午、晚上

14:00——20:30 1月12日全天

8:30——20:30 1月14日全天

8:30——20:30 1月15日全天

8:30——20:30 1月16日上午

8:30——12:00,晚上18:00——20:30

二,实习地点

综合楼413 三,实习操作过程报告

金蝶系统: 总账系统

练习一

建账

目的:掌握建账的基本程序及注意事项。

要求:按照下述给出的资料在K/3中间层建立一个账套并对其进行系统设置,启用账套。 资料:

(一)新建公司机构及账套

1、公司机构代码:01

2、公司名称:广东非凡

3、账套号:

4、账套名:非凡工业

5、账套类型:工业企业

6、数据实体:系统会自动给出,不需客户命名

(二)设置账套参数

1、公司名称:广东非凡工业有限公司

2、记账本位币:人民币 货币代码:RMB

3、账套启用期间:2010年12月1日 此处设置失败于实习第一天中午重新建账

(三)添加用户

添加学生本人姓名(必须输入自己真实姓名),设置为系统主管,并设定密码。 用户名 认证方式 用户组 权限

于洋 密码认证(设密码) Administrators(系统管理员组) 不需授权 路人甲 密码认证(设密码) Users(一般用户组) 授予所有权限

登陆界面

练习二

账套初始化

目的:掌握对账套进行初始化的步骤及各操作要点。

要求:根据下述给出的资料按顺序完成账套系统基础资料的维护及初始数据录入并结束初始 化工作。 资料:

一、从模板中引入会计科目(该企业为工业企业)

二、设置总账系统参数 设置“本年利润”科目代码

对以下账套选项打“√”:

1、启用往来业务核销

2、新增凭证自动填补断号

三、系统资料维护

(一)增加两种币别。注意汇率小数点的切换(切换到英文标点状态)

(二)增加凭证字为“记”字。

(三)增加两个计量单位组及相应组里的计量单位。

(四)增加支票结算方式。

(五)新增相关核算项目资料 (1)新增“客户”资料:

(2)新增“部门”资料:

(3)新增“职员”资料:

(4)新增“供应商”资料:

(六)会计科目维护 (1)增加会计科目

(2)会计科目的修改:

(七)新增“物料”资料:

四、初始余额录入

六、试算平衡结束初始化工作。

练习三

日常账务处理练习

目的:掌握K/3财务系统日常账务处理工作

要求:①根据下述资料录入记账凭证,对其进行审核、过账并查看各种账表; ②进行往来业务核销;

③利用自动转账功能结转有关费用;

④进行期末调汇、结转损益等业务处理并进行期末结账。 资料:

一、录入记账凭证(示例)

建立摘要库

凭证处理模块

二、凭证其他相关操作及账簿查询(此部分,根据电脑情况选做)

1、将前面所做的所有记账凭证审核、过账。

三、往来管理

①利用核销管理功能进行应收账款、应付账款的核销。 利用自动核销功能即可。

②查看往来对账单及账龄分析表。

四、制作几张自动转账凭证

此处按照老师所给公式即可

五、期末处理

1、进行当月的期末调汇操作,生成凭证并审核过账

2、结转当期损益 (注意先将当月未过账凭证全部过账)

3、将结转损益的记账凭证过账

报表系统练习

目的:掌握系统预置报表的查询技巧及基本的修改操作,并能制作简单的自定义报表。 要求:①查看资产负债表及损益表;

②根据要求制作自定义报表。

固定资产管理系统练习

目的:掌握固定资产管理系统的操作流程及常用操作功能 要求:①对固定资产系统进行初始化;

②完成固定资产新增、减少及其他变动等的日常操作,查看各种账表; ③期末计提折旧,进行固定资产子系统与总账系统的对账并结账。 资料:

一,系统维护

二,基础资料

固定资产管理模块

由于固定资产已经结账,所以固定资产模块打不开

工资管理系统练习

目的:掌握工资管理系统的处理流程及日常工作的具体操作方法 要求:①对工资系统进行初始化设置,添加基础资料;

②设置工资项目、定义工资计算方法、录入工资数据进行工资计算 ③计算个人所得税、分配工资费用 ④查看各种工资报表,结账。 资料:

一、建立工资类别方案

二、系统维护

系统参数:要求结账与总账期间同步。

三、设置

(一)导入或新增部门资料: 部门资料在前面已做好。

(二)导入并修改或新增职员资料:

(三)增加银行资料:

(四)工资项目设置:

(五)工资计算公式设置:

在后续中出现的基金计算公式

(六)所得税设置:

四、工资业务

(一)设置工资数据输入过滤器 过滤器名称:全体员工 计算公式:全体员工 工资项目:全选

(二)工资数据录入:

(三)利用“工资计算”功能计算工资。

(四)所得税计算

所得税计算由前面所设公式计算得出,但要手动添加所得税扣除进工资条。

(五)工资费用分配:

(六)福利费用分配:

六、变动

练习将行政部张华转为销售一部。

七、查看各种工资报表

应收款管理系统

目的:掌握应收款管理系统的操作流程及日常发生业务的具体处理方法 要求:①对应收款系统进行正确的初始化设置,录入初始数据; ②对日常发生的各种赊销等欠款业务、收款业务进行处理; ③对发生坏账、坏账收回等特殊业务进行处理; ④进行往来业务核销,查看各种账表,期末结账。 资料:

一、系统维护

1、系统设置:

2、其他参数:

单据审核人与制单人可同为一人。

二、初始数据录入

三、结束初始化

四、日常业务处理

(一)练习各种单据的制作 发票:

其他应收单:

收款单

应收票据

(二)将以上各种单据通过“凭证处理”功能生成记账凭证。

选择已审核过的单据,经过“过滤”,“按单”生成凭证,并保存,对于相关的分录要及时进行调整。

(三)坏账处理。

(四)计提当年坏账准备。注意:

坏账准备只能一年计提一次,如年中计提了坏账准备,则年末将不能再计提。如要取消计提的坏账准备,只需删除坏账准备的计提凭证即可。

(五)核销往来业务。

(六)查看往来对账单及账龄分析表等有关账表。

五、期末结账现金管理系统练习

目的:掌握现金管理系统日常业务处理方法

要求:①录入现金管理系统初始数据,进行系统设置; ②录入现金日记账,进行库存现金盘点、现金对账

③录入银行存款日记账、银行对账单记录,进行银行存款对账、编制银行存款余额调 节表;

④进行现金管理系统期末扎账。 资料: 系统参数

一、初始数据录入

二、现金处理

1、登记现金日记账:(从总账引入)

三、银行存款处理

1、登记银行存款日记账:(从总账引入)

2、录入银行对账单

3、进行建行账户的银行对账

4、生成银行存款余额调节表。

现金流量表系统练习

用友系统:

1.建立地飞电机厂账套。————账套号代码为001,账套名称为地飞电机厂,单位名称为地飞电机厂,单位主管为:学生本人姓名(必须输入自己真实姓名);凭证制单人必须为学生本人;会计科目为:3-2-2-2式结构;结账本位币为“人民币”,采用预设会计科目形式;自己设立密码管理

第一部分

一、初始资料

(一) 科目一览表——会计科目模块

(二)期 初 余 额 表——期初余额模块

(三)凭证类别一览表——凭证管理模块

结算方式

(六)部门期初一览表——部门管理模块

(七)个人往来期初——个人往来管理模块

(八)单位往来 目录——单位往来模块(含客户和供应商)

此处由于客户与其供应商的区分不明显,所以我们选择将18个有往来的公司均设为供应商和客户。

二、经济活动业务

此部分选择30个业务,最终生成41个会计分录,将会计分录利用凭证输入模块输入并保存,新建立一个用户来进行审核并记账。

在最后的结转本年利润时,生成了3个会计分录,即有关利润分配和提取盈余金的,在最后的审核及记账结束后,我又查看了总账的相关科目余额,为平。

四,实习心得:

这次的实习机会对我来说真的很珍贵,因为在平时很难下载到完整版的金蝶和用友软件,对于对电算化尚处于纸上谈兵阶段的我来说,这是个难得的机会。

这次的电算化实习对我来说也是一波三折的,这些有益的或者令人苦恼的问题都是我们宝贵的经验财富。

(一)账套出错返工。

在实习的第一天的那个上午,大家都处于同一个进度,所以我们小组三人以极快的速度向前赶着,并且由于接下来的考试也很重要,所以我们选择抓紧一切时间去赶进度,特别是我,中午没休息,终于将7个总账模块中的业务成功生成了凭证,但是下午我们进行过账的时候却发现问题出现了——在最初建立账套的时候,我小组三人会计期间全部选错,选为“2010年第一期”,所以当我们录完12期的凭证要过账时却发现“没有适合本期的凭证”,在老师的帮助下,我们终于发现了这个错误,老师说让我们做2010年1期的,但是我们不愿意和别的同学拉开差距,所以我们选择重新从建账开始做。

(二)保存进度的问题

由于我们学校的实习教室电脑设为写保护,所以我们每次开机,关机都涉及到保存的问题,在第一天的时候,由于当时坐得离老师远并且急于赶进度,对于老师讲的保存的方法没有听得太过清楚,我们对于保存进度的问题存在争议,最后晚上我们在获得其他同学的帮助下成功地将我们的成果保存。

(三)关于某些棘手问题的处理

由于是第一次上机实习,这毕竟与课本上存在很大差异,所以我们属于摸着石头过河,在两个系统的进程里,我们遇到了许许多多的问题,有时甚至根本无从下手,所以我们采取了讨论的方式外加询问老师同学,将这些困难一一肃清,我认为这次实习中存在的问题都会是以后的职业生涯中可能遇见的问题,所以我们很重视,也很庆幸。

(四)用友系统与金蝶系统的差异

我们先做的金蝶系统,在紧张地完成了21页的任务后,我们于15日上午开始了用友系统的处理,在处理的同时,我们不自觉地将两者进行了对比,我们发现,与用友系统相比,金蝶系统的功能更为实用,所能操作的业务也更多,但同时也更难操作,用友的优点则是便于理解与操作,并且模块设计尤为清晰,我们开玩笑说“用金蝶的公司不缺钱,用用友的公司不缺人。”

(五)制作报表的困难

在金蝶系统的处理中,我们遇到的最大的问题在于两张报表的制作,由于以前的报表是由excel制作,但是这次的却要求在系统中直接取数,而且我们的电脑做不了两张报表,所以我们选择将这最难的报表放到最后来做,所幸,在15日上午,我们组进度最慢的同学也成功地做完了报表。

总结:

这次的实习不同以往,对于我来说,在几门考试的压力下,全天候的实习所带来的紧迫感更是无与伦比的,这几天大家都过得十分辛苦,甚至在打实习报告的最后几十字时,我的内心充满了激动。时间紧,任务重,所以我们用了最大的努力将这次实习圆满地完成,这个过程,我们尽力了。我相信,这几天的收获将一直在我们的职业生涯中熠熠生辉!

第18篇:西南交通大学计算机上机实习报告

计算机实习报告

一、实习目的

计算机办公软件的使用是交通运输、交通工程等专业学生的基本功,本实习的目的是使学生能够通过短时间的集训式训练,熟练掌握办公软件的使用方法、CAD的基本使用方法以及SPSS的使用。本实习是交通运输、交通工程等专业学生非常重要的一个学习环节。本次实习的目的是:

将在第一学年中课堂所学习到的计算机知识在实践中综合运用,以期能够熟练掌握办公室自动化软件、CAD、SPSS的使用方法,为以后的进一步学习和工作打下文档编辑和制作的基础。

二、实习内容

1、办公室自动化

1、能运用办公室自动化软件的文字编辑软件实现基本的图文编辑、制表、格式修饰以及排版打印操作。

2、利用电子表格软件实现工作表的建立、编辑与格式化,利用电子表格软件中的函数与公式对工作表的数据进行处理,实现数据管理和分析。

3、利用演示文稿软件制作演示文稿,掌握不同视图方式在演示文稿的制作和显示中的不同作用和优势,掌握演示文稿编排的基本操作、动画效果制作和母版的基本操作。

2、制图软件使用

1、熟悉CAD的操作界面:标题栏、菜单栏与快捷菜单、工具栏、绘图窗口、命令行与文本窗口、状态行。

2、掌握CAD的基本功能:绘制与编辑图形、标注图形尺寸、输出与打印图形。

三、实习环境与方式

1、实习环境 (1)软件

winXP操作系统环境,以及办公自动化软件。

(2)硬件

能够安装需要的办公自动化软件的计算机。

2、实习方式

由带队老师统一组织,在校内机房进行。

四、实习心得和体会

在时间不长的几天实习中,确确实实感觉受益良多,这次实习的内容实际上趋于简单,而且我一开始认为这几个软件已经被用得熟透了,没有什么好学习的,因此一开始抱着很随便的态度,感觉随便糊弄一下就好了。

但一开始接触实习指导书上的内容,我就知道,井底之蛙四字何谓,看上去很简单的办公软件却还有许多我未曾掌握的功能和用途,word的使用还算顺利,因为大部分的功能和我经常使用的WPS基本相同,只是有些功能的位置不太一样,还有操作的界面也有不同,但上手还不算太难,我只是有些困惑,如果在学校里练习的是微软公司的办公软件,但是以后工作又经常用WPS系列软件岂不是会很难使用,因为位置不同,做一个操作都需要去找,很麻烦。

Word的使用还算比较便利,也很高效,随时都可以对文档做出各种各样的修改,小到每一个字符的特殊用法,大到页面布局、段落格式的大局设定,都让我能深切感受到自动化软件带来的高效率,让我更深入的了解了word的功能和作用。

Excel是一个非常尴尬的点,因为我之前实际上对它了解不多,但基本功能还是会使用,于是就成了半吊子打水的货色,内里了解不深,但想要去系统学习的时候又觉得没有必要,总有种错觉,感觉自己会使用它,这次的实习给我好好上了一课,我学习到了很多excel的新用法、新功能。

Excel不仅能够快速的处理数据,还能够对数据进行系统的分析、排序,结果一目了然,更能插入各种让人感觉更加直观的数据分析图,针对不同的用途有不同的使用方法,和word等软件还有联动使用效果,真是一款不可多得的好软件,但想用好它还真不容易,须得好好练习。

Excel最让我记忆深刻的一点就是它的公式应用,我之前是知道可以用公式的,但也仅限于那几个简单的,求和公式、求平均值公式等等,我却万万没想到,这公式居然能和变成联系起来,使用IF、MOD等公式来达到特殊的要求和效果,居然与刚学习的C++编程的内容联系了起来,让我顿时眼前一亮,设计出excel的人真是个天才。

至于PPT,收益就没有前两个让人欣喜了,感觉讲的东西很浅显,内容也比较狭窄,浅陋,既没有详细的指导,也没有PPT使用的一些重点技巧,感觉指导书上的这一部分非常让人失望,希望可以得到改进,只介绍如何做动画效果和做PPT的一些基本要求,我感觉对于软件的操作、技巧的熟练帮助几乎为零,所以希望可以加强这方面,毕竟PPT还有很多内容和技巧都没有掌握,但是又没处学习,就感觉很难受了。

不过PPT部分还是学到了如何制作动画路径,以前做的时候,也没有能注意到这个高端的效果,在实习中,才学会了应用它的技巧。

CAD部分就很有意思了,也很有意义,毕竟是完全没接触的东西,而且虽然它的操作界面外表不佳,但只要轻轻上手,就能立刻感觉到他的强大,我几乎觉得这个软件在2D绘图方面具有统治性地位,精度过人,而且能对图形进行各种各样的操作,功能强大,任何图形都能绘出,加上环形阵列等高级操作,既节省时间又能有极佳的表现,真是再好也没有了,佩服之至。

我也认真求教,CAD的多点分割图形和多段线构图都学习了一下,还接触了一下阵列和捕捉对象的知识,越是深入,越感觉这款软件对绘图的贡献,它的必要性也越来越明显,真是一款不可或缺的绘图软件。

五、实习总结

为期几天的实习并不能真的教会我太多东西,但它给我们打开了大门,让我了解到了很常见的办公软件也有着令人侧目的强大功能,外表不堪过眼的软件,功能性确是无法想象的强大,我真正了解了掌握软件的必要性,这次实习最大的收获就是让我知道了我自己应该去了解,去熟悉软件,为以后的工作学习打好基础。

在这次实习中,我逐渐了解了办公软件的重要性,为期一周的实习匆匆划过,在这个过程中我学到很多课本中学习不到的东西。令我感觉最深的是理论与实践的差别。在课本上学到的很多知识,当你要真正的将它运用到实际生活中却是那么的难!看似简单的问题,当自己亲自去操作时,你会发现理想与现实的差别是那么大!只有在实践中一次又一次的尝试,一次又一次的失败,并一次又一次的总结才能真正学好各种技能,才能把自己想要表达的东西顺利地表达出来。短短的一个星期,学到的东西不比上课时在课堂上学到的少,我很荣幸得到如此宝贵的机会,为我以后的学习打下了不可或缺的基础。其次,通过这次实习我感觉到学习计算机软件的乐趣,它的实用性很大,可以为我们生活中解决很多很多生活中难以解决的问题。我开始对计算机软件有了从未有过的兴趣。虽然这一次的实习时间有些短了,但是我觉得实习给我们的收获却是无价的,无限的。我深信这次实习,对我的软件学习以及今后的计算机等级考试的学习和考试会起到很大的促进作用,这对我今后的学习和工作将产生很大的影响。

第19篇:上机实习报告—停车场管理

实习报告

题目:停车场管理

班级:计算机学院12052313 姓名:卢魏旭 学号:12051521 完成日期:2012年10月

一、需求分析

以栈模拟停车场,以队列模拟停车场以外的便道,每一组输入的数据包括三个数据项:汽车“到达”或“离去”的信息,汽车牌照号码以及到达或者离去的时刻,对每一组数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上不计费),栈以顺序结构实现,队列以链表结构实现。

附加要求,便道上的车可以直接开走,此时排在它前面的汽车先让开,再一次排到队尾。

二、概要设计

为实现上述程序功能,以顺序存储结构实现栈的功能,也就是停车场, 栈的抽象数据类型定义为: ADTStack {

数据对象:D={a|ai|ai-1,ai

操作结果:将车牌号及时间入栈,返回位置pos Popstack($S,num,&time) 初始条件:栈S存在

操作结果:取出栈内元素

此外以链式存储结构实现队列的功能,也就是便道 队列的抽象数据类型定义为: ADT Quene { 数据对象:D={a|ai|ai-1,ai

基本操作:

creatquene(&Q)

操作结果:建立一个空队列

Pushquene(&Q,num)

初始条件:队列Q存在

操作结果:将一个元素入队列 Popquene(&Q,num)

初始条件:队列Q存在

操作结果:从队列中取出一个元素 }

三、详细设计

#include #include #include #define stacksize 2 typedef struct Stack { int time; int number; }*Stackptr; typedef struct linkstack { Stackptr base; Stackptr top; }; typedef struct Quene { int time; int number; struct Quene *next; }*Queneptr; typedef struct linkquene { Queneptr front; Queneptr rear; }; void creatstack(linkstack &S) { S.base=(Stackptr)malloc(stacksize*sizeof(Stack)); S.top=S.base; } void creatquene(linkquene &Q) { Q.front=Q.rear=(Queneptr)malloc(sizeof(Quene)); Q.front->next=NULL; } void showstack(linkstack S) { while(S.top-S.base>=stacksize-1) {

S.top--;

printf(\"number=%d time=%d\\n\",S.top->number,S.top->time); } } void showquene(linkquene &Q) { Quene *q; if(Q.front!=Q.rear) {

q=Q.front->next;

while(q->next!=NULL)

{

printf(\"number=%d time=%d\\n\",q->number,q->time);

q=q->next;

}

printf(\"number=%d time=%d\\n\",q->number,q->time); } else

printf(\"便道上没有车辆!\\n\"); }

int Pushstack(linkstack &S,int num,int time,int &pos) //入停车场 { if(S.top-S.base>=stacksize)

return 0; else {

S.top->number=num;

S.top->time=time;

S.top++;

pos=S.top-S.base;

return 1; } }

void stacktostack(linkstack &outS,linkstack &inS) /*出停车场时先把后进来的

车开到一个临时栈内*/ { inS.top->number=outS.top->number; inS.top->time=outS.top->time; }

int Popstack(linkstack &S,int num,int &time0) //出停车场 { int flag=0,i,m=S.top-S.base; linkstack S1; creatstack(S1); S.top--; for(i=0;i

stacktostack(S,S1);

if(S.top->number==num)

{

flag=1;

break;

}

i++; } if(flag) {

time0=S.top->time; //找到后将刚进来的时候的时间赋值给time0

while(S1.top!=S1.base)

{

S1.top--;

stacktostack(S1,S);

S.top++;

}

stacktostack(S1,S);

return 1; } else

S.top=m+S.base;

return 0; } void Pushquene(linkquene &Q,int num,int time,int &pos) //停车场满后入便道 { Quene *p; linkquene q=Q; p=(Queneptr)malloc(sizeof(Quene)); p->number=num; p->time=time; p->next=NULL; Q.rear->next=p; Q.rear=p; p->next=NULL; pos=0; while(q.front->next!=NULL) {

pos++;

q.front=q.front->next; } } void Popquenetostack(linkquene &Q) //将便道上的车开出来开进停车场,其实就是删除队列中的对头元素 { Quene *p; p=Q.front->next; Q.front->next=p->next; if(Q.rear==p)

Q.rear=Q.front; } int Popquene(linkquene &Q,int num) //直接将车从便道上开走 { Quene *q,*p; q=Q.front->next; int flag=0,temp; temp=q->number; while(q->number!=num) {

Q.rear->next=q;

Q.rear=q;

q=q->next;

if(temp==q->number)

{

flag=1;

break;

} } Q.rear->next=NULL; if(flag)

return 0; //未找到

else {

Q.front->next=q->next;

if(Q.front->next==NULL)

Q.front=Q.rear;

return 1; } } void Input(linkstack &S,linkquene &Q,char ch,int num,int time) { int pos,time0; switch(ch) {

case \'A\':

if(Pushstack(S,num,time,pos))

{

printf(\"%d号汽车停在停车场里的第%d个车位上\\n\",num,pos);

break;

}

else

{

Pushquene(Q,num,time,pos);

printf(\"%d号汽车停在便道上的第%d个车位上\\n\",num,pos);

break;

}

case \'D\':

if(Popstack(S,num,time0))

{

printf(\"%d号汽车出停车场,\",num);

printf(\"\\n停车时间:o%d分钟\\n停车费用为%g元a\\n\",time-time0,(time-time0)*0.05);

if(Q.front!=Q.rear)

{

Quene *q;

q=Q.front->next;

while(Pushstack(S,q->number,q->time,pos)&&Q.front!=Q.rear) //当停车场没停满时

{

S.top--;

S.top->time=time; //进停车场再计时

printf(\"%d号汽车出便道进入停车场,停在第%d个车\\n\",S.top->number,pos);

S.top++;

Popquenetostack(Q); //让便道上的车出列进入停车场

}

}

//

showstack(S);

}

else

{

if(Q.front!=Q.rear&&Popquene(Q,num))

printf(\"便道上的号车开走了\\n\",num);

else

printf(\"停车场和便道上均无此车\\n\");

}

break;

case \'E\':break; } printf(\"\\n\"); }

void main() { char c=\'X\'; char cs[10]; int number,time; linkstack S; linkquene Q; creatstack(S); creatquene(Q); while(c!=\'E\') {

printf(\"输入操作数\\n\");

scanf(\"%c%d%d\",&c,&number,&time);

gets(cs);

if(c!=\'A\'&&c!=\'D\'&&c!=\'E\')

{

printf(\"输入有误!\\n\");

continue;

}

printf(\"\\n\");

Input(S,Q,c,number,time); } printf(\"结束!\\n\"); showstack(S); system(\"pause\"); }

四、调试分析

1、本次作业是一个简单的停车场管理,涉及到停车场停车开车以及便道上停车的问题,在Input()函数中调用根据输入的信息调用各个函数进行相应的分析,刚开始遇到很多问题,比如在出栈和入栈时,由于栈内存放的是结点的指针,而我当时直接是用S.top=p来赋值,导致在从停车场开车走时找不到车辆的车牌号和对应的时间,返回给我的是一串地址,后来明白是要对S.top所指结点的各个元素分别赋值才可以。

2、本次程序没有太多出色的算法,基本上就是要对栈和队列的熟练使用,明白其用法,程序中的stacktostack()比较重要,在停车场中开车走时要使用一个临时的栈来存放场内的车,然后再按顺序放回去。

3、对指针的掌握熟悉了一点,栈和队列都采用指针来操作,每一个栈内存放一个车辆结点的地址信息,使用起来非常的方便。

4、本程序中除了基本操作的算法以外,只有一个Input()函数,其时间复杂度

2在停车场开车后从便道入场这里最大为O(n),其他算法都是对栈或者队列的遍历,为O(n);

5、经验体会,这种程序不复杂,就是需要仔细,在入队和出队以及入栈和出栈时很容易出错,当数据出现错误的时候,可以用一个遍历函数来检测栈内或队列内的数据。

五、用户手册

1、本程序的运行环境为DOS操作系统,执行文件为:停车场管理.exe。

2、进入演示程序后即显示文本方式的界面

3、按照A 1 1的形式输入信息A代表停车,D代表开车走,E代表结束输入,第一个数字代表车牌好,第二个数字代表停车或者开车走的时刻。回车即确定输入。每次输入后,若是停车,则显示停车的位置,若是开车走,则会显示车是从停车场内开走还是从便道上开走,若是从停车场内开走,显示停了多长的时间,以及相关的停车费用。

六、测试结果 如图所示

七、附录

源程序文件名清单:

停车场管理.c++ //主程序

八、验收过程

1、验收时间:周一晚上机时间,6:00—9:00;

2、验收地点:一教115机房;

3、验收教师:王立波;

4、流程概要:

1)第一次验收时老师让我把“从便道上直接开车走”这个功能实现。 2)第二次验收时,在从便道上直接开车走这个功能上出了点问题,我是创建了一个新的结点来保存要插入到队尾的车辆信息,而老师认为应该直接把结点链接到队尾就行不需要创建新结点,这样可以节省空间,经过一番修正,达到了老师的要求,学会了如何链接队列元素。

3)学生解答结束后,老师对本程序给出评分。 4)验收结束。

第20篇:上机实习报告总结结尾

上机实习报告总结结尾

一.首页

代码如下;

using System;

using ;

using ;

using ;

using ;

using ;

using ;

namespace WindowsApplication1

{

public partial cla Form5 : Form {

public Form5()

{

InitializeComponent();

}

private void button1_Click(object sender, {

logo from = new logo();

(); EventArgs e)

} private void button2_Click(object sender, EventArgs e) {

Form2 from = new Form2();

();

} private void button3_Click(object sender, EventArgs e)http:///shijuan/ 试卷 {

Form3 from = new Form3();

();

} private void button4_Click(object EventArgs e) {

Form4 from = new Form4();

();

}

}

}

二.登录模块

代码如下:

using System;

using ;

using ;

using ;

sender,

using

;

using ;

using ;

using ;

namespace WindowsApplication1

{

public partial cla logo : Form

{

public logo()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

} private void button1_Click(object sender, EventArgs e) { string

connstring

=

@\"Data Source=panlunzhao;Initial Security=True\";

Catalog=;Integrated

SqlConnection conn = new SqlConnection(connstring); ();

string username = (); string paword = (); SqlCommand comm = ();

= \"select * from manage where username=\'\" + username + \"\' and paword=\'\" + paword + \"\'\";

SqlDataReader sqlda = ();

if (())

{ ifhttp:///gongzuobaogao/

(sqlda.ToString().Trim() == paword) {

//(\"恭喜您登陆成功!\", \"登陆成功!\", , );

//Form2 f = new Form2();

//();

Form3 from = new Form3();

();

}

else { (\"密码错误,请重新输入!\", \"错误

\", , ); }

}

else { (\"此用户不存在,请您注册!\", \"注册\", , ); }

();http:///dangtuangongzuozongjie/ 党团工作总结

();

} private void button2_Click(object sender, EventArgs e) {

= \"\";

= \"\";

}

}

}

三.会员管理模块

代码如下:

using System;

using ;

using ;

using ;

using ;

using ;

using ;

using ;

namespace WindowsApplication1

{

public partial cla Form2 :

Form

{

protected SqlConnection conn;

protected SqlCommand cmd;

string connstring = @\"Data Sou/article/ 述职报告rce=panlunzhao;Initial

Catalog=;Integrated Security=True\";

public Form2()

{

InitializeComponent();

}

private void Form2_Load(object sender, EventArgs e)

{

load1();

load();

}

protected void load1()

{

string sql = \"select *from customer\";

conn = new SqlConnection(connstring);

();

SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet();

(ds, \"book\");

= ;

}

protected void load()

{

conn = new SqlConnection(connstring);

();

string sql_select = \"SELECT ID FROM customer \"; cmd = new SqlCommand(sql_select, conn);

SqlDataReader dr = ();

();

while (())

(dr);

();

}

private DataTable BindData(string sql)

{

string sql_select = sql;

conn = new SqlConnection(connstring);

SqlDataAdapter ad = new SqlDataAdapter(sql_select, conn); DataSet ds = new DataSet();

(ds, \"customer\");

return ;

} private void button1_Click(object sender, EventArgs e) {

string sql = \"select * from customer where ID=\'\" + () + \"\'\";

conn = new SqlConnection(connstring);

();

SqlCommand cmd = new SqlCommand(sql, conn);

SqlDataReader ds = ();

();

= ds.ToString();

http:///xuexiaogongzuozongjie/ 学校工作总结 = ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= (bool)ds;

} private void update_Click(object sender, EventArgs e) {

string sql = \"customer set

name=@name,Levels=@Levels,Birthday=@Birthday,Degree=@Degree,Addre=@Addre,Telephone=@Telephone,Email=@Email,Score=@Score where ID=@ID\"; conn = new SqlConnection(connstring);

();

cmd = new SqlCommand(sql, conn);

(\"@ID\", ).Value = ();

(\"@name\", , 20).Value = ();

(\"@Levels\", ).Value = ();

(\"@Birthday\",

).Value = ();

(\"@Degree\", ,

20).Value = ();

(\"@Addre\", , 256).Value = ();

(\"@Telephone\", ,

50).Value = ();

(\"@Email\", , 50).Value = ();

(\"http:///yundonghuiyanjianggao/ 运动会演讲稿 @Gender\", ).Value = (bool);

(\"@Score\", ).Value = ();

();

SqlDataReader ds = ();

();

load1();

}

private void _Click(object sender, EventArgs e) {

string sql_ = \" into

customer(Name,Levels,Gender,Birthday,Degree,Addre,Telephone,Email,Score)

values(@Name,@Levels,@Gender,@Birthday,@Degree,@Addre,@Telephone,@Email,@Score)\";

cmd = new SqlCommand(sql_, conn);

try

{

();

(\"@Name\", ,

20).Value = ();

(\"@Levels\",

).Value = (()); (\"@Birthday\",

).Value =

(());

(\"@Degree\", ,

20).Value = ();

(\"@Addre\", , 256).Value = ();

(\"@Telephone\", ,

50).Value = ();

(\"@Email\", ,

50).Value = ();

(\"@Score\", ).Value = (());

if ()

{

(\"@Gender\",

).Value = \"true\";

}

else

{

(\"@Gender\",

).Valuhttp:///yuegongzuozongjie/ 月工作总结 e = \"false\";

}

int count = ();

if (count == 1)

{

if ((\"确认添加读者吗?\", \"提示\", , ) == ) return;

(\"添加成功!!\", \"提示!\"); }

else

{

(\"添加失败\", \"提示\",

, );

}

}

catch (Exception ex)

{

();

}

finally

{

();

}

}

}

}

四.增加、删除、修改图书模块

代码如下:

using System;

using ;

using ;

using ;

using ;

using ;

using ;

using ;

namespace WindowsApplication1

{

public partial cla Form3 : Form

{

protected SqlConnection conn;

protected SqlComhttp:///shijicailiao/ mand cmd;

事迹材料

string connstring = @\"Data Source=panlunzhao;Initial Security=True\";

public Form3()

{

InitializeComponent();

}

Catalog=;Integrated

private void textBox7_TextChanged(object sender, EventArgs e) {

} private void label6_Click(object sender, EventArgs e) {

} private void select_Click(object sender, EventArgs e) {

string book_name = ();

string pre = ();

string Author = ();

StringBuilder sb1 = new StringBuilder();

(\"select * from book where \");

if ()

((\"Name LIKE \'%{0}%\'\", book_name));

if ( && ) (\"AND \");

if ()

{

((\"Pre = \'{0}\'\", pre)); }

if ( && ) (\"AND \");

if ()

{

((\"Author LIKE \'%{0}%\'\", Author));

}

= Binhttp:///banzhurengongzuojihua/ 班主任工作计划 dData(()); } private void reset_Click(object sender, EventArgs e) {

= true;

= false;

= false;

= \"\";

= \"\";

= \"\";

} private void button1_Click(object sender, EventArgs e) {

string sql = \"select * from book where ISBN=\'\" + () + \"\'\";

conn = new SqlConnection(connstring);

();

SqlCommand cmd = new SqlCommand(sql, conn);

SqlDataReader ds = ();

();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString(http:///shiyongqigongzuozongjie/ 试用期工作总结 );

= ds.ToString();

= ds.ToString();

= ds.ToString();

= (bool)ds;

= ds.ToString();

} private void button2_Click(object sender, EventArgs e) {

string sql = \" into

book(ISBN,name,author,pre,publishdate,price,pages,barcode,cd,storage)

values(@ISBN,@name,@author,@pre,@publishdate,@price,@pages,@barcode,@cd,@storage)\";

conn = new SqlConnection(connstring);

();

cmd = new SqlCommand(sql, conn);

(\"@isbn\", , 10).Value = ();

(\"@name\", , 256).Value = ();

(\"@author\", , 100).Value = ();

(\"@pre\", , 50).Value = ();

(\"@publishdate\", ,

50).Value = ();

(\"@price\", , 50).Value = ();

(\"@pages\", , 50).Value

= ();

(\"@barcode\", SqlDbTypehttp:///dangxiaoxuexixindetihui/ 党校学习心得体会 .NVarChar,

50).Value = ();

(\"@cd\", , 50).Value = (bool);

(\"@storage\", ,

50).Value = ();

();

load1();

load();

}

private void save_Click(object sender, EventArgs e)

{

string sql = \"book set

name=@name,author=@author,pre=@pre,publishdate=@publishdate,price=@price,pages=@pages,barcode=@barcode,cd=@cd,Storage=@Storage where ISBN=@ISBN\";

conn = new SqlConnection(connstring);

();

cmd = new SqlCommand(sql, conn);

(\"@isbn\", , 10).Value = ();

(\"@name\", , 256).Value = ();

(\"@author\", , 100).Value = ();

(\"@pre\", , 50).Value = ();

(\"@publishdate\", ,

50).Value = ();

(\"@price\", , 50).Value = ();

(\"@pages\", , 50).Value = ();

(\"@barcode\", ,

50).Value = ();

(\"@cd\", , 50).Value = (bool);

(\"@storage\", ,

50).Value = ();

();

SqlDataReader ds = ();

();

load1();

}

private void quxiaosave_Click(object sender, EventArgs e) {

= \"\";

= \"\";

= \"\";

= \"\";

= \"&http:///shenbaocailiao/ 申报材料quot;;

= \"\";

= \"\";

= \"\";

= false;

= \"\";

}

private void _Click(object sender, EventArgs e) {

string sql = \" from book where isbn=@isbn\"; conn = new SqlConnection(connstring);

cmd = new SqlCommand(sql, conn);

();

(\"@isbn\", , 10).Value = ();

();

load1();

load();

}

private void Form3_Load(object sender, EventArgs e) {

load();

load1();

}

protected void load()

{

conn = new SqlConnection(connstring);

();

string sql_select = \"SELECT DISTINCT FROM ORDER BY \";

cmd = new SqlCommand(sql_select, conn);

SqlDataReader dr = ();

();

while (())

(dr);

();

= \"SELECT DISTINCT FROM ORDER BY \";

SqlDataReader ds = ();

();

while (())

(ds);

();

= \"SELECT DISTINCT FROM ORDER BY \";

SqlDataReader st = ();

();

while (())

(st);

();

}

protected void load1()

{

string sql = \"select *from book\";

conn = new SqlConnection(connstring);

();

SqlDataAdapter da = http:///qingkuangbaogao/ 情况报告new SqlDataAdapter(sql, conn); DataSet ds = new DataSet();

(ds, \"book\");

= ;

}

private DataTable BindData(string sql)

{

string sql_select = sql;

conn = new SqlConnection(connstring);

SqlDataAdapter

ad

=

new SqlDataAdapter(sql_select, conn); DataSet ds = new DataSet();

(ds, \"Book\");

return ;

}

private void all_Click(object sender, EventArgs e)

{

string sql = \"select *from book\";

conn = new SqlConnection(connstring);

();

SqlDataAdapter da = new SqlDataAdapter(sql, conn);

DataSet ds = new DataSet();

(ds, \"book\");

= ; }

}

}

五.借书模块

代码如下:

using System;

using ;

using ;

using ;

using ;

using ;

using ;

using ;

namespace WindowsApplication1

{

public partial cla Form4 : Form

{

protected SqlConnection conn;

protected SqlCommand cmd; string

connstring

=

@\"Data Source=panlunzhao;Initial Catalog=:///banjigongzuojihua/ 班级工作计划 F;Integrated Security=True\";

public Form4()

{

InitializeComponent();

}

private void Form4_Load(object sender, EventArgs e)

{

try

{

conn = new SqlConnection(@\"Data

Source=panlunzhao;Initial Catalog=;Integrated

Security=True\");

();

();

}

catch (Exception exp)

{

(\"无法建立数据连接:\" + ); ();

}

}

protected void InitData()

{

cmd = new SqlCommand(\"select distinct from Book order By \", conn);

SqlDataReader reader1 = ();

();

while (())

(reader1);

();

cmd = new SqlCommand(\"select id from reader order by\",conn);

SqlDataReader reader2 = ();

();

while (())

(reader2);

();

} private void select_Click(object sender, EventArgs e) http:///chengxinyanjianggao/ 诚信演讲稿 {

string sql = \"select * from book where ID=\'\" +

() + \"\'\";

conn = new SqlConnection(connstring);

();

SqlCommand cmd = new SqlCommand(sql, conn);

SqlDataReader ds = ();

();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= ds.ToString();

= (bool)ds;

= ds.ToString();

} private void jieshu_Click(object sender, EventArgs e) {

string sql = \"select * from reader where ID=\'\" + () + \"\'\";

conn = new SqlConnection(connstring);

();

SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet();

(ds, \"book\");

= ;

string sql_up = \"book set Storage=Storage-1 where ID=\'\" + () + \"\'\";

cmd = new SqlCommand(sql_up, conn);

();

DataSet hs = new DataSet();

(hs, \"book\");

= ;

if ( == \"\")

return;

= \"SELECT * FROM WHERE =\" + ;

SqlDataReader reader1 = null;

try

{

reader1 = ();

if (())

{

textBhttp:///gerengongzuojihua/ = reader1.ToString();

}

else

{

(\"没有符合条件的记录\", \"提示\", , );

}

}

catch (Exception exp)

{

(\"数据访问错误:\" + +

, \"错误\", , ); }

finally

{

if (reader1 != null && !)

个人工作计划

();

}

}

}

}

总结

此次实训综合考查了所学的c#知识,让我知道一个项目从构思、设计、实结题报告现、测试的过程。在实训中也综合运用了所学的知识,也涵盖了数据库的知识,用数据库存放数据,用脚本实现功能。

上机实习报告
《上机实习报告.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档