昆明理工大学高级程序设计大作业报告
高级语言程序设计实验报告
![高级语言程序设计实验报告](https://img.taocdn.com/s3/m/5bb86d872dc58bd63186bceb19e8b8f67d1cef45.png)
高级语言程序设计实验报告高级语言程序设计实验报告引言高级语言程序设计是计算机科学与技术专业中的一门重要课程,通过学习高级语言的基本概念和编程技巧,可以培养学生的程序设计能力和逻辑思维能力。
本实验报告将介绍我在高级语言程序设计实验中所完成的任务和所获得的收获。
实验目的本次实验的主要目的是通过使用高级语言编写程序,实现一个简单的计算器功能。
通过这个实验,我们可以进一步熟悉高级语言的语法和使用方法,加深对程序设计的理解,并培养我们的编程能力。
实验过程在实验过程中,我首先选择了一种高级语言,这里我选择了Python作为我的编程语言。
Python是一种简单易学且功能强大的高级语言,非常适合初学者。
然后,我开始设计计算器的功能和界面。
首先,我定义了一个函数来处理用户输入的表达式,并进行相应的计算。
这个函数使用了Python的内置函数eval()来实现表达式的计算功能。
在这个函数中,我还添加了一些错误处理的机制,以防止用户输入错误的表达式。
接下来,我设计了一个简单的用户界面,使用了Python的tkinter库来实现。
在这个界面中,我添加了一些按钮和文本框,用于用户输入和显示计算结果。
通过点击按钮,用户可以输入数字和运算符,并实时显示在文本框中。
当用户点击“计算”按钮时,程序会调用之前定义的函数来计算表达式,并将结果显示在文本框中。
在实验过程中,我遇到了一些问题和挑战。
例如,如何处理用户输入错误的表达式,如何设计一个简洁而美观的用户界面等等。
为了解决这些问题,我不断学习和尝试,查阅相关的教程和资料,并与同学们进行交流和讨论。
最终,我成功地完成了这个实验,并得到了一个功能完善且易于使用的计算器程序。
实验结果通过这个实验,我成功地实现了一个简单的计算器功能,并完成了实验报告所要求的任务。
这个计算器程序可以进行基本的四则运算,并能够处理用户输入的错误表达式。
用户界面简洁明了,操作简单方便。
我还通过一系列的测试用例验证了程序的正确性和稳定性。
C语言程序设计大作业报告模板样本
![C语言程序设计大作业报告模板样本](https://img.taocdn.com/s3/m/6fc50d29f705cc17552709ef.png)
《C语言程序设计》大作业报告1.目掌握所学C语言程序设计办法,熟悉所学语言开发环境及调试过程,熟悉所学C语言中数据类型,数据构造、语句构造、运算办法,巩固和加深对理论课中知识理解,提高学生对所学知识综合运用能力。
通过综合设计规定达到下列基本技能:1.培养查阅参照资料、手册自学能力,通过独立思考进一步钻研问题,学会自己分析、解决问题。
2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计办法,能纯熟调试程序。
2.作业内容纯熟掌握所学语言基本知识:数据类型(整形、实型、字符型、指针、数组、构造等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序构造(顺序构造、判断选取构造、循环构造);大程序功能分解办法(即函数使用)等。
进一步掌握各种函数应用等。
3.规定:1.规定每个同窗都要认真对待,积极参加。
2.独立完毕,不能抄袭。
3.课程设计结束时每位同窗必要完毕《大作业报告册》,其中包括设计源代码和设计思路。
4.不符合规定程序、设计报告、抄袭设计报告或源程序代码、在设计中完全未参加将作不及格解决。
5.统一格式,A4打印,准时提交。
4.题目:设计规定:编写一种程序,求3x4数组转置矩阵。
规定在main函数里面读数,在change函数里面把矩阵转置。
5.程序设计5.1 设计思路:1是先定义两个数组,一种是a[3][4],另一种是b[4][3]。
2是将随便输入12个数输入到a[3][4]。
3是在change函数中将a[3][4]中值通过for循环镶嵌将数组a[3][4]值赋值给数组b[4][3]。
4在主函数中将数组b[4][3]通过for循环嵌套输出。
5.2 代码# include <stdio.h>int change (int a[3][4],int b[4][3]);main(){ int a[3][4],b[4][3],i,j;printf("please input some 12 numbers:"); for(i=0;i<3;i++){printf("\n");for(j=0;j<=3;j++)scanf ("%d",&a[i][j]);}change (a,b);for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%5d",b[i][j]);printf("\n");}}int change (int a[3][4],int b[4][3]){int m,n;for(m=0;m<3;m++)for(n=0;n<4;n++)b[n][m]=a[m][n]; retrun 0;}5.3 成果6.心得体会编写时注意for循环嵌套,先理清逻辑关系在编写,在看例题后,需要多敲代码,才干越来越纯熟。
《高级程序设计》课程设计报告
![《高级程序设计》课程设计报告](https://img.taocdn.com/s3/m/8b0a9270f5335a8102d2203e.png)
《高级程序设计》课程设计报告本课程设计报告包括一下几个部分:一:课程设计目的二:课程设计要求三:软件功能分析四:数据库设计用到的主要的代码五:程序的设计用到的主要的存储过程六:程序的设计用到的主要的代码七:课程设计的心得体会一:课程设计目的通过课程设计使本学期学习的知识掌握的更加的牢固,并且能熟练的应用自己在过去的一年当中学习过的VISUAL BASIC 6.0 和SQL SERVER 2000数据库管理与开发的知识进行实际当中的项目的开发,进一步的掌握可视化数据库编程的基本思想和方法。
在实践当中更加的灵活的运用所学知识。
锻炼自己的分析问题,解决问题的能力,为将来自己能够开发大型的软件奠定基础。
二:课程设计要求1:上机前做好充分准备,包括程序模块图,程序界面方式,源程序清单,调试步骤,测试方法,运行结果的分析等。
2:课程设计具体要求如下:(1) 设计说明:用来说明程序模块功能、结构、主要包括程序名、功能、原理计算说明,主要用于符号说明。
(2) 调试说明:便于学生总结经验,提高编程及调试能力,包括调试情况,如对数据库操作时遇到的问题及解决方法,对程序设计技巧的总结及分析等。
对运行结果的分析、课程设计心得体会等。
(3) 使用说明:程序提供给用户时必须做出的说明,使用方法、操作步骤等。
三:软件功能分析为了提高对学生档案的管理,设计合理有效的学生档案管理系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少不必要的时间和人力等方面的工作量。
系统开发的总体任务是使学生档案当中的各个表更加的规范,更加的系统,更加的条理清楚。
本次课程设计所要求达到的功能分析具体如下:1:学籍的各项基本的信息的输入,如学生的高考用的考试号,在学校的所在的班级,所学的基本的课程信息,考试成绩等。
2:学生的基本的信息的查询,如学生的学号,姓名,班级,所属的专业,学习的基本的课程,学生的考试成绩。
3:学生信息的修改。
4:学校的专业和所对应课程的输入。
语言大作业报告
![语言大作业报告](https://img.taocdn.com/s3/m/65fee8db26fff705cc170ae3.png)
昆明理工大学《程序设计基础》课程综合设计实践教学课题报告课程名称:C语言程序设计综合作业(1)课题名称:学生成绩表程序设计组长:学号 201011103109 姓名达娃战堆组员:学号姓名学号姓名学号姓名学号姓名学院:理学院专业班级电子科学与技术101指导教师:刘领兵昆明理工大学计算中心2011年6 月1 日昆明理工大学计算中心《程序设计基础》课程综合设计实践教学课题考核表课题名称:学生成绩表程序设计学院:理学院专业班级电子科技与技术101学号姓名小组编号题号承担及完成的内容成绩备注小组自评教师萍定201011103109达娃战堆全部设计说明与功能描述(基本思路及关键语句说明)1:该程序首先是对程序中要产生的一些函数的定义,再在主函数中对它们进行调用。
从而形成一套有条理的程序设计,并且能够很好的达到程序设计的目的。
程序中,我们运用了语句,结构体等,方便的执行了对数据的操作。
处理10名同学的信息,包括每个学生的姓名、学号、三门成绩,另外要求出这10名同学三门成绩的平均分,再根据平均分进行排序,输出这10名学生的成绩表,在输出平均分在前三名的学生的成绩表。
基本思路:先定义结构体类型和变量,再对此结构体进行引用,同时惊醒数据的接收、进行平均分处理,最后对平均分进行排序,并输出结果。
2:关键语句说明:排序程序paix(stu); //排序printf("The paix is:\n");printf("Num Name Sex Age Math English Computer Average\n"); //结果输出for(i=0;i<N;i++)printf("%-8s%-8s%-8s%8d%8.1f%8.1f%8.1f%8.1f\n",stu[i].num,stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].ave);}教师评语教师签名:200 年月日第一部分系统概述:一、程序功能:本程序就是为了更好更快的管理学生的成绩,从而方便管理和查看。
昆 明 理 工大学理学院 程序设计报告
![昆 明 理 工大学理学院 程序设计报告](https://img.taocdn.com/s3/m/0353a7eb700abb68a982fb6c.png)
昆明理工大学理学院
信息与计算科学专业操作性实验报告
年级: 07级姓名:学号:指导教师:朱志宁
实验课程名称: java程序设计开课实验室:理学院机房
实验内容:
1.实验/作业题目:
网络通讯
2.实验/作业课时: 2课时
3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能):实验环境: eclipse
实验内容:利用java网络通讯相关技术,实现服务器端与客户端文本信息传递,并实时显示。
实验要求:独立完成,学会使用java的通讯技术。
4.程序结构(程序中的函数调用关系图)
5.算法描述、流程图或操作步骤:
6.实验数据和实验结果(用屏幕图形表示,可另加附页):
7.改进建议:
评分标准学风--报告格式规范,文字清晰观察能力--正确描述和理解需要操作的问题操作能力--正确输入程序,熟悉编程环境调试能力--熟练使用调试功能解决程序错误
第1页。
大作业
![大作业](https://img.taocdn.com/s3/m/176438a165ce050876321336.png)
昆明理工大学电力工程学院学生实验报告
实验课程名称:微机实验原理与应用
开课实验室:年月日
六、实验结果分析
昆明理工大学电力工程学院学生实验报告
实验课程名称:微机实验原理及应用
开课实验室:年月日
六、实验结果分析
程序分析:首先正数计数器BL、程序计数器CX清零,指针指向数据段首
昆明理工大学电力工程学院学生实验报告
实验课程名称:微机实验原理及应用
开课实验室:年月日
六、实验结果分析
DEBUG是汇编语言的调试指令,当程序出现语法错误时,运行中无法形成EXE文件,可以直接检查程序。
但是若出现逻辑错误,则在程序中无法看出,需要用DEBUG来检查内存和寄存器的内容。
各种不同的指令有不同的作用,如。
高级语言程序设计实验报告
![高级语言程序设计实验报告](https://img.taocdn.com/s3/m/677883110812a21614791711cc7931b765ce7b1d.png)
高级语言程序设计实验报告标题:高级语言程序设计实验报告摘要:本实验旨在通过实践操作,使学生掌握高级语言程序设计的基本原理和方法,提高其编程能力和解决问题的能力。
本文主要介绍实验过程中的设计思路、程序运行结果及经验体会。
一、实验目的本实验的主要目的是通过实践操作,使学生掌握高级语言程序设计的基本原理和方法,提高其编程能力和解决问题的能力。
具体目标包括以下几个方面:1.了解高级语言的程序设计思想和基本语法;2.掌握面向对象程序设计的基本原理和方法;3.熟练掌握常见数据结构和算法的设计与实现;4.掌握软件测试的基本方法和流程。
二、实验内容本实验的主要内容包括以下几个方面:1. 面向对象程序设计2.数据结构与算法设计3.文件操作4.软件测试三、实验过程在本次实验中,我们使用C++语言进行编程操作。
首先,我们进行了面向对象程序设计的基本训练,了解了类、继承、封装、多态等概念。
通过实践操作,我们掌握了如何使用类来实现各种功能,并深入了解了类与对象之间的关系。
接下来,我们进行了数据结构与算法的设计实践。
在这个环节中,我们学习了常见的数据结构和算法,并掌握了它们的基本原理和实现方法。
通过编写各种常见的算法,比如排序算法、查找算法等,我们进一步加深了对数据结构和算法的理解。
随后,我们进行了文件操作的训练,了解了如何在C++中读取和写入文件。
通过这个练习,我们更加深入了解了文件操作的原理和方法,对文件读取和写入的各种问题有了更深入的认识。
最后,我们进行了软件测试的培训,在实践中了解了测试的基本方法和流程。
通过运用各种测试工具和技巧,我们成功地测试了我们的程序,并对程序的问题做了相应的修改和优化。
四、实验结果通过本次实验,我们成功掌握了高级语言程序设计的基本原理和方法,提高了自身的编程能力和解决问题的能力。
我们的程序能够正确地实现各种常见的数据结构和算法,具有较高的可靠性和实用性。
同时,我们深入理解了文件操作的原理和方法,能够熟练地读取和写入各种类型的文件。
昆明理工大学程序设计与应用设计报告
![昆明理工大学程序设计与应用设计报告](https://img.taocdn.com/s3/m/2d0f8126bd64783e09122bb9.png)
昆明理工大学程序设计与应用设计报告题目基于JAVA的日历记事本设计专业自动化班级自动化132学号 201310401250学生姓名杨潇谊指导教师汤占军设计时间 2014年6月30日-7月10日教师评分2014年 7 月 10 日目录1.概述………………………………………………………………页码21.1课程设计目的………………………………………………………………页码21.2.课程设计内容…………………………………………页码32.系统需求分析…………………………………………………………页码32.1系统目标……………………………………………………………………页码3 2.2主体功能……………………………………………………………………页码4 2.3开发环境……………………………………………………………………页码4 3系统的概要设计………………………………………………………………页码43.1系统的功能模块划分与系统流程图………………………………………页码5 4.详细设计……………………………………………………………………页码5 5.调试…………………………………………………………………………页码25 5.1调试中遇到的问题…………………………………………………………页码255.2系统运行…………………………………………………………………页码266.总结…………………………………………………………………………页码27 附录……………………………………………………………………………页码28 参考文献………………………………………………………………………页码日历记事本1 概述1.1 课程设计目的1) 巩固和提高java编程技术。
2)培养掌握成学设计的基本思路和方法。
3)加强研发、调试程序的能力。
4)增强分析、解决问题的能力。
5)提高科技论文写作能力。
1.2 课程设计内容设计GUI界面的日历记事本。
系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。
昆明理工大学期末大作业1
![昆明理工大学期末大作业1](https://img.taocdn.com/s3/m/6ff8630690c69ec3d5bb754c.png)
昆明理工大学期末大作业楚雄应用技术学院(高职)计算机网络专业 2009级第二学年第四学期科目:《网络安全》姓名:学号:一、评分标准1.大作业考试占期末考试的50%。
2.平时成绩占期末考试的10%。
3.上机实验及报告占期末考试的40%。
二、考试要求1.上交电子档,每篇文章不得少于3000字2.注重文章结构及条理。
3.注重实验环境及过程,截取实验过程的主要图形。
4.采用除系统之外的软件,请一块打包上交。
请学习委员在7月1日前收好全班设计(大作业、上机实验报告)上交给我,请使用DOC文档。
5.本次考试必须先做实验,后完成论文。
6.本次考试的实验是信息安全对抗,不得做非法实验。
违反相关法律,后果自负,本人不承担任何连带责任。
三、题目(根据自己的爱好,任选4题)1.使用WinMaiL/Serv-U与花生壳客服端构建域名为的邮件服务器。
2.网页木马深度剖析及手工清除。
(禁止上交挂马上交实验结果)3.SSL协议原理及WEB安全实现。
4.软件破解原理及实践过程。
5.VPN原理及Windows 2000环境下架设实验过程。
6.一种网络攻击理论与实践对抗。
(辅助软件自选,禁止非法攻击)7.SET协议体系及局域网电子商务实现8.局域网扫描实验与管理实现。
(辅助软件自选,禁止非法攻击)9.SNMP协议及网络管理实现。
(辅助软件自选)10. 瑞星个人防火墙深度分析与实践。
11. PGP软件应用实践。
(选此题必须发送一封存加密问候信,我的邮件:yncxdmz@)12. IE安全配置实践。
13.一款网络入侵检测系统的分析与实践。
14.一款磁盘安全分区工具的应用与实践。
15.WinGate代理服务器的应用与实践。
16. 采用Boson配置路由器防火墙。
17.机房管理的实践过程。
18.一款缺陷和漏洞攻击程序应用与对抗。
(辅助软件自选,禁止非法攻击)19.采用Boson配置路由器身份验证和过滤。
20.采用Boson配置基于时间的访问控制列表。
高级语言程序设计大作业
![高级语言程序设计大作业](https://img.taocdn.com/s3/m/9b5cb603f12d2af90242e6b5.png)
高级语言程序设计大作业班级:001112二零一二年十一月二十四1. 需求分析1.1. 问题描述用C#语言编写“电视机-遥控器”仿真程序,实现:1、电视机可以打开、关闭、搜索节目、调节音量、加减换台。
2、遥控器可以遥控电视机进行打开、关闭、搜索节目、调节音量、加减换台、数字换台(输入1、2、3….可以切换频道)。
3、通过遥控器可以进行数字换台,通过操作电视机不能进行数字换台。
4、搜索电视频道用随机数实现,也即,每一次搜索到的频道数不同。
5、使用遥控器上的数字换台时,如果没有相应频道(如:选择45,而保存的频道只有29个)应给出相应提示。
6,实现每个频道音量单独调整(选做)。
1.2. 对问题的理解这个问题的设定主要是老师为了考察一下我们这些初接触面向对象语言(C#)的学生面向对象的思想是否初步形成,题目以日常生活中我们频繁接触的电视机和遥控器作为仿真对象,通过建立一些类及其属性和方法,来实现对真实电视机和遥控器的功能及交互关系的仿真。
这个题目首先需要电视机和遥控器的两个类,而电视机上的控制功能遥控器都能实现,但是我认为又不将遥控器类设计成对电视机类的继承。
因为频道的储存存在于电视机类中,遥控器和电视机控制频道和音量都是存储于这个二维数组,所以在遥控器类中应将各种方法的参数设为对电视机类的引用,在遥控器类中增加频道搜索功能。
和多种换台模式2.程序设计2.1. 概要设计根据题目的要求,我要实现的功能应该有:电视机的打开,关闭,音量调节,加减换台。
遥控器对电视机的打开,关闭,搜索节目,调节音量,加减换台,“--”(包括“-”,“1--”)键数字换台、0~9数字键盘换台.2.2. 详细设计;对于电视机类,根据题目要求和我对自己家中老“春兰”牌彩电的了解,设计了符合题目要求的“春兰”彩电和遥控器的仿真,详细设计如下:定义二维数组Channel[200,2]用来存储最多200个台(0~199)和每个台的可单独调节的音量。
昆明理工大学 java 实验报告 封装、继承和多态
![昆明理工大学 java 实验报告 封装、继承和多态](https://img.taocdn.com/s3/m/4d4e78176c175f0e7cd137cf.png)
昆明理工大学信息工程与自动化学院学生实验报告(2011 —2012 学年第 1 学期)课程名称:java程序设计开课实验室:信自楼机房445 2011 年11月 3日年级、专业、班计科093 学号200910405310姓名孙浩川成绩实验项目名称封装、继承和多态指导教师周兰江教师评语该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□该同学的实验能力: A.强□ B.中等□ C.差□该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□实验报告是否规范: A.规范□ B.基本规范□ C.不规范□实验过程是否详细记录: A.详细□ B.一般□ C.没有□教师签名:年月日一、上机目的及内容上机内容1.把一个数转为二、十六、八进制。
2.获取计算机中的一个日期。
3.产生30个随机数,从小到大排列。
上机目的1.熟悉C++中讲到的类和对象的基本概念,为java程序设计奠定基础。
2.掌握java语言基本知识,实现进制转换、获取日期,排序等程序。
二、实验原理及基本技术路线图(方框原理图或程序流程图)1.把一个数转为二、十六、八进制。
调用java API中的Integer.toHexString(int),Integer.toOctalString(int),Integer.toBinaryString(int) 函数进行进制转换。
2.获取计算机中的一个日期。
调用java API 中 java.text.SimpleDateFormat,java.util.Calendar,java.util.Date 函数,获取计算机中的日期、时间。
3.产生30个随机数,从小到大排列。
使用java API中的Math.random()函数产生30个随机数,再用冒泡法从小到大排序。
三、所用仪器、材料(设备名称、型号、规格等或使用软件)1台PC及eclipse软件四、实验方法、步骤(或:程序代码或操作过程)1.进制转换public class exchange {String octal;String hexadecimal;String binary;public static void main(String[] args) {exchange exc = new exchange();System.out.println("5310转成二、八、十六进制");exc.convert(5310);}public void convert(int num) {octal = Integer.toOctalString(num);System.out.println("Convert to Octal is:\t" + octal);hexadecimal = Integer.toHexString(num);System.out.println("Convert to Hexadecimal is:" + hexadecimal);binary = Integer.toBinaryString(num);System.out.println("Convert to Binary is:\t" + binary);}}2.获取系统日期import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class GetDate {public String getDate() {SimpleDateFormat Format;Date date;Calendar MyDate = Calendar.getInstance();MyDate.setTime(new java.util.Date());date = MyDate.getTime();Format = new SimpleDateFormat( "yyyy-MM-dd HH:mm "); String gRtnStr = Format.format(date);return gRtnStr;}public static void main(String[] args){GetDate gd=new GetDate();String time=gd.getDate();System.out.println("当前日期为: "+time);}}3.产生30个随机数,从小到大排列public class PaiXu{private int num[] ;public PaiXu(int max){this.num = new int[max] ;System.out.println (max + "个随机数是: ") ;for (int i = 0; i<max; i++){num[i] = this.getRandomNum() ;System.out.print (num[i] + " ") ;}System.out.println () ;this.getTop10(this.num) ;}public int getRandomNum(){//产生0-99的随机数return ((int)(Math.random()*100)) ;}public void getTop10(int[] num){//进行冒泡排序并且输出int temp = 0 ;for (int j = 0; j<num.length; j++){for (int i = 0; i<num.length; i++){if(num[i] > num[j]){temp = num[i] ;num[i] = num[j] ;num[j] = temp ;}}}System.out.println ("排序后的数字是: ") ;for (int i = 0; i<num.length; i++){System.out.print (num[i] + " ") ;}System.out.println () ;}public static void main(String[] args){ new PaiXu(30) ;}}五、实验过程原始记录( 测试数据、图表、计算等)1.进制转换运行结果2.获取计算机中的一个日期3.产生30个随机数,从小到大排列六、实验结果、分析和结论(误差分析与数据处理、成果总结等。
昆明理工大学 c++多态性实验报告
![昆明理工大学 c++多态性实验报告](https://img.taocdn.com/s3/m/d4d665fdf61fb7360b4c651c.png)
昆明理工大学信息工程与自动化学院学生实验报告(2010—2011学年第2学期)课程名称:双语版C++程序设计上机教室:计算中心202 2010年6 月 4 日内容:1.定义Point类,有坐标一x,一y两个成员变量;对Point类重载“++”(自增)、“一一”(自减)运算符,实现对坐标值的改变。
2.定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。
观察虚函数的作用。
3.(选做)对实验六中的people类重载“一一”运算符和“:”运算符,“:=”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。
目的:1.掌握运算符重载的方法。
2.学习使用虚函数实现动态多态性。
二、上机步骤:打开计算机进入WindowsXP→在D盘建立自己的工作目录→进入Microsoft Visual C++ 6.0→文件/新建/文件/C++ Source File/位置/命名→输入源程序→编译/组建→运行三、源代码:#include <iostream>using namespace std;class point{private:int X;int Y;public:point(int A=0,int B=0){X=A;Y=B;}point operator++();point operator++(int);point operator--();point operator--(int);void output(){cout<<'('<<X<<','<<Y<<')'<<endl;}};point point :: operator++(){X++;Y++;return *this;}point point :: operator++(int i){point temp;temp.X=X++;temp.Y=Y++;return temp;}point point :: operator--(){X--;Y--;return *this;}point point :: operator--(int i){point temp;temp.X=X--;temp.Y=Y--;return temp;}int main(void){point D1(5,5);cout<<"原始坐标为:";D1.output();++D1;cout<<'\t'<<"进行了前缀自加后坐标为:";D1.output();D1++;cout<<'\t'<<"进行了后缀自加后坐标为:";D1.output();--D1;cout<<'\t'<<"进行了前缀自减后坐标为:";D1.output();D1--;cout<<'\t'<<"进行了后缀自减后坐标为:";D1.output();return 0;}四、程序运行结果:六、总结:。
(完整word版)高级程序设计实验报告
![(完整word版)高级程序设计实验报告](https://img.taocdn.com/s3/m/b54fc3c102d276a200292eb9.png)
高级程序设计实验报告班级学号:姓名:实验名称:指导老师:日期:实验十一文件和流I/O一、实验题目:文件和流I/O二、实验内容:1.掌握磁盘的基本操作2.掌握目录的基本操作3.文件的基本操作4.文本文件的读取和写入5.字符串的读取和写入6.二进制文件的读取和写入I7. 二进制文件的读取和写入2三、主要程序代码:1. using System;using System.IO;using System.Collections.Generic;using System.Text;namespace实验1{class Test{public static void Main(){DriveInfo[] allDrives = DriveInfo.GetDrives();foreach (DriveInfo d in allDrives){Console.WriteLine("Drive {0}", );Console.WriteLine(" File type: {0}", d.DriveType);if (d.IsReady == true){Console.WriteLine(" Volume label: {0}", d.VolumeLabel);Console.WriteLine(" File system: {0}", d.DriveFormat);Console.WriteLine(" Available space to current user:{0, 15}bytes",d.AvailableFreeSpace);Console.WriteLine("Total available space: {0, 15} bytes",d.TotalFreeSpace);Console.WriteLine( " Total size of drive: {0, 15} bytes ", d.TotalSize); }}Console.ReadKey();}}2. using System;using System.IO;namespace实验11{class Program{static void Main(string[] args){String path0 = @"C:\WINDOWS\security";String path1 = @"C:\WINDOWS";try{Console.WriteLine("应用程序当前工作目录为:\n{0}",Directory.GetCurrentDirectory());string [] subdirectotyEntries=Directory.GetDirectories(Directory.GetDirectoryRoot(Directory.GetCurrentDirectory()));Console.WriteLine("根目录中子目录总数为{0},子目录名称分别为:",subdirectotyEntries.Length);foreach (string subdirectory in subdirectotyEntries)Console.WriteLine(" {0}", subdirectory);string[] dirs =Directory.GetFiles(path0);Console.WriteLine("目录{0}下的总文件总数为 {1}。
Linux报告 昆明理工大学欧阳鑫
![Linux报告 昆明理工大学欧阳鑫](https://img.taocdn.com/s3/m/9e88bdf5102de2bd960588d2.png)
昆明理工大学信息工程与自动化学院学生实验报告(2016 —2017 学年第二学期)课程名称:Linux操作系统及程序设计开课实验室:呈贡校区信自楼 2017 年6 月 3 日目录上机一:Linux及开发环境安装…………………………………………… .. ? 页上机二:Linux的文件及目录操作1…………………….………………………. ? 页上机三:Linux的文件及目录操作2………………………………………… .. ? 页上机四:Linux进程及网络开发1…………….….………………………………. ? 页上机五:Linux进程及网络开发2……………………….………………………. ? 页上机一:Linux及开发环境安装一、实验目的及要求安装虚拟机,并在虚拟机上安装ubuntu系统二、实验环境和相关软件及版本Windows7,VMware-workstation-full-10.0.4-2249910,vm10keygen,ubuntu-16.04-desktop-amd64三、实验内容及步骤(一)安装虚拟机双击打开下载好的VMware Workstation应用程序弹出安装向导勾选我接受许可协议中的条款选择典型安装选择安装路径点下一步继续进行安装在桌面创建快捷方式点下一步继续弹出注册码页面打开VMware注册机并点击Generate获取注册码输入注册码安装完成并打开(二)安装ubuntu打开VMware Workstation并点击创建新的虚拟机安装光盘映像文件设置用户名和密码命名虚拟机制定磁盘容量准备创建虚拟机安装中安装成功并登录四、实验结果、分析和结论本次实验我成功安装了虚拟机,对Linux有了第一次比较接近的认识,在课上学习是比不上自己实际动手操作的,在这个过程中我感觉自己对Linux 产生了一些兴趣,受益良多。
上机二:Linux的文件及目录操作1一、实验目的及要求掌握文件及目录操作的基本命令,并在虚拟机上启动命令行加以实现二、实验环境和相关软件及版本Windows 7 、VMware 、ubuntu三、实验内容及步骤1、用ls命令显示当前目录下的文件2、用mkdir创建一个目录文件3、用rmdir删除一个目录文件删除空目录删除非空目录4、用ls –l命令显示当前目录下的文件的文件属性5、用mv命令改变文件名6、用chmod 命令改变文件属性(改为可执行文件)7、用cp命令复制文件8、用gzip命令压缩文件成.gz文件9、用gzip –dv 命令解压文件四、实验结果、分析和结论通过这次实验,我第一次在Linux系统下使用命令,基本掌握了文件和目录的创建和删除、文件复制、文件编辑、文件重命名、显示和改变文件属性、压缩文件和解除压缩等基本命令,但是对于这些命令还不熟悉,需要多加使用以此巩固。
Web程序设计用大作业报告模板
![Web程序设计用大作业报告模板](https://img.taocdn.com/s3/m/3f846cd6de80d4d8d05a4fac.png)
武汉工业学院Web高级程序设计大作业报告专业信息系统与信息管理学号090502227姓名吴思敏日期20121019一、需求分析1引言随着网络与信息技术的发展,很多陌生人之间都有了或多或少的联系。
如何更好地管理这些信息是没跟人必须面临的问题,特别是那些很久没有联系的朋友,再次见面无法马上想起关于这个人的记忆,造成一些不必要的尴尬。
基于上述种种原因,开发一套通讯录管理系统很重要,我们结合这次课程设计开发以下的通讯录管理系统方案。
2编写目的本系统主要是为了更好的管理每个人的通讯录,给每个人提供一个井然有序的管理平台,防止手工管理混乱,造成不必要的麻烦。
3功能需求通过对自己及朋友的通讯录的询问以及了解,一个完整的通讯录管理系统应该包括:数据集模块,登录窗体模块,系统管理模块,主窗体模块,通讯录数据管理模块,信息管理模块,登录信息查询模块。
本系统主要实现我们信息的管理,包括我们平时朋友信息的添加、修改、查询和删除,及一些辅助项目的管理,如登录系统用户管理和用户组管理。
二、系统框架本系统将实现多用户对各自通讯录的管理功能,包括:添加联系人、修改联系人、删除联系人、查找联系人。
为了体现多用户的特性,还必须包含一个用户管理子系统,作用是对用户的信息进行管理。
具体功能模块如图所示登录的处理模块处理流程图如图主窗体处理流程图如图新增联系人处理模块新增联系人窗体流程图如图NYNY添加命令三、模块设计登陆界面的实现登录窗体如图获取配置信息联系人数量<MAX分组数量<MAX加载分组信息等待用户命令添加联系人禁用添加联系人功能禁用添加分组功能主窗体的实现主窗体设计如图新增联系人实现新增联系人设计如图四、编码实现存储过程代码查找联系人模块使用储存过程来搜索数据,查找联系人的储存过程如下ALTER PROCEDURE [查找联系人](@name varchar(50),@phone varchar(50),@user varchar(50))ASif len(@user)=0 return 1if len(@name)=0 and len(@phone)=0beginselect 姓名,组别,工作单位,联系电话,电子邮箱? from [联系人]returnendif len(@name)<>0 and len(@phone)=0beginset @name='%'+@name+'%'select姓名,组别,工作单位,联系电话,电子邮箱? from [联系人]where 姓名like @namereturnendif len(@name)=0 and len(@phone)<>0beginselect姓名,组别,工作单位,联系电话,电子邮箱? from [联系人]where 联系电话like @phonereturnendif len(@name)=0 and len(@phone)<>0beginselect姓名,组别,工作单位,联系电话,电子邮箱? from [联系人]where 联系电话like @phone and 姓名like @namereturnend登录窗体实现代码如下private void btnOK_Click(object sender, EventArgs e){try{if (txtUserName.Text.Trim() == "" ||txtPassword.Text.Trim() == ""){MessageBox.Show("用户名不能为空,登录失败", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}//验证用户SqlConnection conn = newSqlConnection("server=.;database=通讯录管理系统;uid=sa;pwd=521125;");StringBuilder sql = new StringBuilder();sql.AppendFormat("select count(*) from 用户where 用户名=杨雪 and 密码='01'", txtUserName.Text.Trim(),txtPassword.Text.Trim());SqlCommand cmd = new SqlCommand(sql.ToString(), conn);conn.Open();int result = Convert.ToInt32(cmd.ExecuteScalar()); conn.Close();if (result == 1){//登陆成功frmMain f = new frmMain();f.tsslUserName.Text = txtUserName.Text.Trim();f.Show();this.Hide();}else{MessageBox.Show("用户名错误!", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}catch (Exception ee){MessageBox.Show("发生错误!"+ ee.Message, "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}主窗体实现代码如下public partial class frmMain : Form{private string strConn = "server=.;database=通讯录管理系统;uid=sa;pwd=521125;";public frmMain(){InitializeComponent();}private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){LoadList();}//主窗体加载事件private void frmMain_Load(object sender, EventArgs e){LoadGroup();if (trvGroup.Nodes.Count > 0){trvGroup.SelectedNode = trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}/加载分组信息到TreeViewprivate void LoadGroup(){try{trvGroup.Nodes.Clear();SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "select 组别from 联系人where 用户名='" + tsslUserName.Text + "'";conn.Open();SqlDataReader sdr = cmd.ExecuteReader();while (sdr.Read()){trvGroup.Nodes.Add(sdr[0].ToString());}sdr.Close();conn.Close();}catch{ }}//加载当前分类的联系人信息private void LoadList(){if (trvGroup.Nodes.Count == 0){lvContact.Clear();return;}if (trvGroup.SelectedNode.Index >= 0){string strGroup = trvGroup.SelectedNode.Text;try{lvContact.Clear();lvContact.Columns.Add("姓名", 100);lvContact.Columns.Add("工作单位", 150);lvContact.Columns.Add("联系电话", 100);lvContact.Columns.Add("电子邮箱", 150);SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "select 编号,姓名,工作单位,联系电话,电子邮箱from 联系人where 组别='" + strGroup + "'and 用户名='" + tsslUserName.Text + "'";conn.Open();SqlDataReader sdr = cmd.ExecuteReader();int count = 0;while (sdr.Read()){ListViewItem lvi = new ListViewItem();lvi.Text = sdr["姓名"].ToString();lvi.SubItems.Add(sdr["工作单位"].ToString());lvi.SubItems.Add(sdr["联系电话"].ToString());lvi.SubItems.Add(sdr["电子邮箱?"].ToString());lvi.Tag = sdr["编号"];lvi.ImageIndex = 0;lvContact.Items.Add(lvi);count++;}tsslCount.Text="共计"+count.ToString()+"个联系人";sdr.Close();conn.Close();}catch{ }}}//详细信息在工具栏上的事件private void详细信息ToolStripMenuItem_Click(object sender, EventArgse){lvContact.View=View.Details;}//详细信息在菜单栏上的事件private void详细信息ToolStripMenuItem1_Click(object sender, EventArgs e){lvContact.View=View.Details;}//添加方法在主窗体中的实现private void Add(){frmAdd f=new frmAdd();if(f.ShowDialog(this)==DialogResult.OK){LoadGroup();if(trvGroup.Nodes.Count>0){trvGroup.SelectedNode=trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}}//编辑方法在主窗体的实现private void Edit(){if(lvContact.SelectedItems.Count==1){string id=lvContact.SelectedItems[0].Text.ToString();frmEdit f=new frmEdit(id);if(f.ShowDialog(this)==DialogResult.OK){LoadGroup();if(trvGroup.Nodes.Count>0){trvGroup.SelectedNode=trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}}}//删除方法在住窗体中的实现private void Delete(){if(lvContact.SelectedItems.Count<1){return;}if(MessageBox.Show("是否要删除选中的联系人","删除确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes) {string strWhere="";foreach (ListViewItem lvi in lvContact.SelectedItems){strWhere+=lvi.Text.ToString();}try{SqlConnection conn=new SqlConnection(strConn);SqlCommand cmd=new SqlCommand();cmd.Connection=conn;mandText = "delete from 联系人where 姓名='" + strWhere + "'";conn.Open();cmd.ExecuteNonQuery();conn.Close();LoadGroup();if(trvGroup.Nodes.Count>0){trvGroup.SelectedNode=trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}catch{ }}}//搜索方法在主窗体中的实现private void Search(){frmSearch f = new frmSearch();if (f.ShowDialog() == DialogResult.OK){LoadGroup();if (trvGroup.Nodes.Count > 0){trvGroup.SelectedNode = trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}}}新增联系人实现代码如下public partial class frmAdd : Form{private string strconn = "server=.;database=通讯录管理系统;pwd=521125";private string strUserName= "";private int groupCount = 0;private int contentCount = 0;private string txtFilePath = "";public frmAdd(){InitializeComponent();}private void textBox2_TextChanged(object sender, EventArgs e) {}private void frmAdd_Load(object sender, EventArgs e){//获取用户名strUserName = ((frmMain)(this.Owner)).tsslUserName.Text;try{SqlConnection conn = new SqlConnection(strconn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;//获取配置信息mandText = "selete * from 用户名where 用户名='" + strUserName + "'";conn.Open();SqlDataReader sdr = cmd.ExecuteReader();if (sdr.Read()){groupCount = Convert.ToInt32(sdr["组别数量最大值"]);contentCount = Convert.ToInt32(sdr["联系人数量最大值"]);}sdr.Close();//获取联系人数mandText = "select count(*) from联系人 where 用户名='" + strUserName + "'";int count = Convert.ToInt32(cmd.ExecuteScalar());if (count >= contentCount){MessageBox.Show("联系人的个数已经达到上限如需继续添加联系人,请联系管理员.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);btnOK.Enabled = false;}conn.Close();}catch { }pic.Image =通讯录管理系统.Properties.Resources.main1;//加载组别LoadGroup();}protected void LoadGroup(){try{cmbGroup.Items.Clear();SqlConnection conn = new SqlConnection(strconn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "selete disinct 组别 from 联系人"; conn.Open();SqlDataReader sdr = cmd.ExecuteReader();while (sdr.Read()){cmbGroup.Items.Add(sdr[0].ToString());}sdr.Close();conn.Close();if (groupCount > 0 && cmbGroup.Items.Count == groupCount){cmbGroup.DropDownStyle =ComboBoxStyle.DropDownList;}else{cmbGroup.DropDownStyle = ComboBoxStyle.DropDown; }}catch { }}private void pic_Click(object sender, EventArgs e){if (dlg.ShowDialog() == DialogResult.OK){pic.Image = Image.FromFile(dlg.FileName);txtFilePath = dlg.FileName;}}private void btnOK_Click(object sender, EventArgs e){#region获取信息//用户名strUserName = ((frmMain)(this.Owner)).tsslUserName.Text;//姓名string name;if (txtName.Text == ""){MessageBox.Show("联系人姓名不能为空", "添加失败",MessageBoxButtons.OK, MessageBoxIcon.Error);return;}else{name = txtName.Text;}string group;if (cmbGroup.Text.Trim() == ""){group = "未分组";}else{group = cmbGroup.Text.Trim();}//电话string phone = txtPhone.Text.Trim();//工作单位string company = txtCompany.Text.Trim();//emailstring email = txtEmail.Text.Trim();//照片byte[] b = null;if (txtFilePath != ""){try{FileStream fs = new FileStream(txtFilePath, FileMode.Open, FileAccess.Read);int len = Convert.ToInt32(fs.Length);b = new byte[len];fs.Read(b, 0, len);fs.Close();}catch{b = null;}}#endregion获取信息#region添加数据try{SqlConnection conn = new SqlConnection(strconn);SqlCommand cmd_maxid = new SqlCommand();cmd_maxid.Connection = conn;//获取最大编号cmd_mandText = "selete isnull(max(编号),0)+1 from 联系人";conn.Open();int maxid;try{maxid =Convert.ToInt32(cmd_maxid.ExecuteScalar());}catch{maxid = 1;}//insertSqlCommand cmd_insert = new SqlCommand();cmd_insert.Connection = conn;cmd_mandText = "insert into联系人(编号,用户名,组别,姓名,工作单位,联系电话,电子邮箱,照片)values(@编号,@用户名,@组别,@姓名,@工作单位,@联系电话,@电子邮箱,@照片)";cmd_insert.Parameters.Add("@编号", SqlDbType.Int);cmd_insert.Parameters.Add("@用户名",SqlDbType.VarChar, 50);cmd_insert.Parameters.Add("@组别", SqlDbType.VarChar, 50);cmd_insert.Parameters.Add("@姓名", SqlDbType.VarChar, 50);cmd_insert.Parameters.Add("@工作单位",SqlDbType.VarChar, 500);cmd_insert.Parameters.Add("@联系电话",SqlDbType.VarChar, 200);cmd_insert.Parameters.Add("@电子邮箱",SqlDbType.VarChar, 200);cmd_insert.Parameters.Add("@照片", SqlDbType.Image);cmd_insert.Parameters["@编号"].Value = maxid;cmd_insert.Parameters["@用户名"].Value = strUserName; cmd_insert.Parameters["@组别"].Value = group;cmd_insert.Parameters["@姓名"].Value = name;cmd_insert.Parameters["@工作单位"].Value = company; cmd_insert.Parameters["@联系电话"].Value = phone;cmd_insert.Parameters["@电子邮箱"].Value = email;if (txtFilePath == ""){cmd_insert.Parameters["@照片"].Value =DBNull.Value;}else{cmd_insert.Parameters["@照片"].Value = b;}cmd_insert.ExecuteNonQuery();conn.Close();DialogResult = DialogResult.OK;}catch (Exception ee){MessageBox.Show(ee.Message);return;}#endregion添加数据}private void btnCancel_Click(object sender, EventArgs e){DialogResult = DialogResult.Cancel;}}五、系统测试和发布软件支持:本软件开发是使用c#编写设备支持:推荐配置:WindowsXP数据库:Microsoft SQL Server 2005五、实验总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我们仍感慨颇多,的确,从理论到实践,学到很多很多的东西。
Linux程序设计报告
![Linux程序设计报告](https://img.taocdn.com/s3/m/4a4f7f3877232f60ddcca195.png)
昆明理工大学信息工程与自动化学院学生上机报告(2012 —2013 学年第二学期)课程名称:Linux程序设计开课实验室:呈贡校区信自楼444 2013年5 月 6 日目录上机实验一:虚拟机及Linux安装……………………………………………….2页上机实验二:Linux下Shell程序开发……………….…………………………14页上机实验三:Linux下多进程多线程程序开发…………………………………20页上机一:虚拟机及Linux安装一、上机目的1、安装虚拟机2、在虚拟机上安装Red Hat Enterprise Linux 5二、相关技术阐述根据四的步骤一步一步安装实现,其中在安装虚拟机过程中用到下面代码:(1)su(2)chmod +w /etc/inittab(3)vi /etc/inittab(4)reboot三、所用软件系统VMware Workstation 、Red Hat Enterprise Linux 5四、源代码或上机步骤1、虚拟机(VMware Workstation)安装过程(1) 单击VMware-workstation-full-9.0.2可执行文件,进入安装:(2)进入一下界面:(3)选择安装目录(4)点击下一步(5)点击下一步(6)单击continue(7)加载过程(8)输入序列号,进入到下面界面(9)安装汉化包,一直点击下一步到完成(10)点击完成后进入Red HatEnterprise Linux 5安装界面,如2-(1)2、Red Hat Enterprise Linux 5安装(1)打开VMware Workstation安装Red Hat Enterprise Linux 5界面(2)新建虚拟机,然后单击下一步(3)选择安装包,然后单击next (4)设置登录信息,单击next (5)单击next 到finish进入安装界面安装界面数据加载进入linux虚拟机界面,登录虚拟机五、运行结果(1)输入用户名和密码后回车,开始登录输入账号:输入密码:进到界面:(2)Application下选择Accessies再选择Terminal终端,进入到终端登录窗口(3)输入配置命令[szk@localhost~]$ suPassword:su: incorrect password[szk@localhost ~]$ chmod +w /etc/inittab[szk@localhost ~]$ vi /etc/inittab进入权限修改页面:# 4 - unused# 5 -X11# 6 -reboot (DoNOT setinitdefaultto this)#id:5:initdefault:#Systeminitializat ion.将5改为3(按下i可修改):id:3:initdefault# Runxdm inrunlevel 5x:5:respawn:/etc/X11/prefdm-nodaemon:wq!进入重新启动界面:reboot进入到编辑页面:六、分析和结论通过实验,对虚拟机的安装过程有了一个初步的了解和认识,在实验中对配置文件下的/etc/inittab文件的配置命令有了清楚的了解。
高等程序设计实验报告【Word版 可编辑】20p
![高等程序设计实验报告【Word版 可编辑】20p](https://img.taocdn.com/s3/m/7baaac3902020740be1e9bc4.png)
static int GetDays(const Date &d);//日期d当前月份的天数
static int DateToNum(const Date &d);//返回从公元1年1月1日起的天数
static Date NumToDate(int n);//由从公元1年1月1日起的天数返回日期
{
if((mounth==5)||(mounth==7)||(mounth==10)||(mounth==12))
{
if(date>=a)
using namespace std;
class J
{
private:
int a[5];
public:
J(int s[])
{
for(int i=0;i<5;i++)
a[i]=s[i];
}
void paixu()
{
for(int i=0;i<4;i++)
{
for(int j=0;j<4-i;j++)
static int GetDays(int y);//年份y的天数
static int GetDays(const Date &d);//日期d当前月份的天数
static int DateToNum(const Date &d);//返回从公元1年1月1日起的天数
static Date NumToDate(int n);//由从公元1年1月1日起的天数返回日期
提示:可仿照第4题编程实现,可将时间转换成秒数,将秒数转成时间进行辅助编程。
阶段性实验报告
![阶段性实验报告](https://img.taocdn.com/s3/m/3f1dd227453610661ed9f44c.png)
学院名称:专业年级:
学生姓名:学号:
联系电话:Email:
实验项目名称:
基础训练
指导教师
ቤተ መጻሕፍቲ ባይዱ实验目的:
通过上机练习,进一步掌握课堂理论以及上机调试程序的基本技能,能顺利编写简单C程序。
实验内容:完成实验一、二、三、四、五要求的内容,即:
1.数据类型、运算符和表达式
2.数据的输入和输出
3.选择结构
4.循环结构
实验结果:(不够填写时可另附页)
主要填写按时完成习题、实验内容,以及掌握知识的体会、自我评价,也可以将程序或运行结果抓图说明。
1.数据类型、运算符和表达式:
2.数据的输入和输出:
3.选择结构:
4.循环结构:
5.体会及自我评价:
教师评语:
成绩
教师签字
2010年4月10日
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学(中/高级程序设计项目训练)大作业报告
指导教师:潘晓露完成时间2015 年9 月12 日
给自己打分:75
自我评价:高级程序设计项目训练课程时间有限需要学习的东西也比较多,自己基础不扎实跟不上老师节奏、出现一些错误不会调试程序出现异常就卡在哪里了,以后在这方面需要加强学习巩固基础知识。
一、大作业内容(以下为提示,自己增加内容,不要罗列程序代码)
1、描述所完成的程序功能,需要实现的目标
程序功能:创建winform窗体应用菜单项中包含如下
1.简单的TextEdit字体颜色字号处理。
2.输入整数通过算法实现阶乘计算显示计算结果。
3.个人财务管理,连接数据库实现财务收支项目查询显示、增加收支项目、删除收支项目、计算显示收支金额和余额。
2、程序的功能框图,描述C#整个程序的结构。
功能款图:
C#的程序结构:
3、选一个或几个算法,描述数学原理及流程图。
输入一个数计算阶乘的算法:
private int fac(int i)
{
if (i < 0) return -1;//判断传入参数是否小于零,小于零则返回-1
if (i == 0) return 0;//判断传人参数是否为零,为零则返回0
int result = 1;//创建int变量存储计算结果,赋初值为1
for (int n = i; n > 0; n--)//通过for循环计算阶乘
{
result = result * n;
}
return result;//返回计算结果
}
流程图:
4、程序设计思路及运行显示效果,重点说明自己的独到设计。
运行效果:
设计思路:根据老师讲授的说明文档,使用控件,通过练习菜单下的目录创建新的窗体实现需要的功
能和效果显现及提醒输入。
5、逐个描述在本次程序设计中所学习到的比较重要的新函数,新类。
(选一个类,列表说明类的结构(成员变量和函数及功能))
学习到的比较重要的新函数:
public static DataSet Query(string strQuery)
{
//打开数据库连接
string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\用户目录
\\Documents\\FinancialAffiars.mdb";//数据库路径
OleDbConnection db = new OleDbConnection(str);//建立链接对象
db.Open();
OleDbDataAdapter da = new OleDbDataAdapter(strQuery, db);
DataSet ds=new DataSet ();
da.Fill (ds ,"ds");
db.Close ();
return ds ;
}
DataSet 是从数据源中检索到的数据在内存中的缓存,函数中通过数据库的路径打开数据库链接,创建数据库连接的对象,打开数据库,创建DataSet的对象,在DataSet中添加或刷新行以匹配使用 DataSet 和 DataTable名称的数据源中的行。
然后关闭连接的数据库,返回检索的的数据。
传递的参数是对于数据库的SQL语句。
6、在短学期学习中遇到的问题(编译错误/逻辑错误)及解决方法,你对程序进行的个性化修改
下面这行代码抛异常:我用这种方法计算余额,后来才发现当查询时的收入或支出的字符串为空就抛异常,原因就是不能转换空字符串。
int i=Convert.ToInt32 (LbIncome.Text)-Convert.ToInt32 (LbExpense.Text);
解决方法:在转换前做收支是否为空字符串判断,为空则赋值为“0”,就不会抛异常了。
if (LbIncome.Text == "")//判断收支是否为空,为空则赋值为0,不然类型转换时会抛异常
LbIncome.Text = "
if (LbExpense.Text == "")
LbExpense.Text = "0";
int i=Convert.ToInt32 (LbIncome.Text)-Convert.ToInt32 (LbExpense.Text);
二、心得、建议和意见
通过短学期高级程序设计项目训练课程的学习,我学会了许多C#和winForm的编程知识,同时获得了许多在Visual Studio 2012 中调试程序的方法,更深刻的认识到编程中细节和变量名的命名和使用规则的重要性,看书不如实际的敲代码理解得更好。
希望老师上课时讲慢一点。