(参考)优秀程序设计报告

合集下载

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。

其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。

其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。

掌握了c语言,可以说你就掌握了很多门语言。

学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。

所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。

同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。

在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。

在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。

这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。

比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。

程序设计总结(推荐12篇)

程序设计总结(推荐12篇)

程序设计总结第1篇文件的定义:存储在外部存储介质(外存)上数据的集合。

C语言将每一个与主机相连的输入或输出设备都看作是一个文件文件的使用和管理:在程序运行时由程序在外存上建立或打开一个文件,通过写操作将数据存入该文件;由程序打开外存上的某个已有文件,并通过读操作将文件中的数据读入内存供程序使用文件的路径文件的存储形式文件缓冲区C程序中文件的操作过程(通过库函数实现,已定义在)结构体类型FILE文件指针文件的打开文件的使用方式文件的关闭格式化读函数格式化写函数字符方式读函数字符方式写函数字符串读函数字符串写函数数据块读函数(可用于读写数组、结构变量的值,多用于读写二进制文件)数据块写函数(可用于读写数组、结构变量的值,多用于读写二进制文件)程序设计总结第2篇数组:一组有序的、类型相同的数据的集合,这些数据被称为数组的元素定义:类型说明符数组名[正整数常量表达式],例如float mark[100];char str[200];int a[2+3];初始化:在数组定义时为数组元素赋初值(赋初值的个数不能超过数组总元素的个数)引用:数组名[下标],如a[3]。

程序设计总结第3篇定义:函数是按规定格式书写的能完成特定功能的一段程序。

函数之间地位平等,可互相调用也可自身调用函数的调用:指一个函数暂时中断运行,去执行另一个函数的过程函数的返回:return 表达式或 return (表达式)函数原型声明值传递函数调用的执行过程实参向形参单向值传递嵌套调用:在调用一个函数的过程中,又调用另一个函数递归调用:在调用一个函数的过程中又出现直接或间接的调用该函数本身程序设计总结第4篇变量的作用域:指变量在程序中的作用范围,与变量定义的位置有关。

可分为局部变量和全局变量局部变量(内部变量)全局变量(外部变量)变量的生存期:指变量值存在时间的长短,与变量的存储类型有关。

可分为静态存储和动态存储变量的存储类型内存供用户使用的存储空间变量的具体存储种类局部变量的具体存储种类:自动变量、静态局部变量、寄存器变量自动变量(auto)静态局部变量(static)寄存器变量(register)全局变量的具体存储种类内部函数(静态函数)外部函数编译预处理宏定义带参数的宏定义终止宏定义文件包含条件编译程序设计总结第5篇内存:即内部存储器,由存储单元组成,存储单元的最小单位是字节。

程序设计报告参考模板

程序设计报告参考模板

HUNAN UNIVERSITY程序设计训练报告学生姓名学生学号专业班级指导老师助教年月日目录题1:杨辉三角(ID: ) (3)一、问题描述 (3)二、问题分析 (3)三、算法分析 (4)四、详细设计(从算法到程序) (4)五、调试与测试 (6)六、分析与总结 (6)题1:杨辉三角(ID: )一、问题描述输入层数n(n<=13),打印n层杨辉三角。

二、问题分析杨辉三角是一个等腰三角形的形状,为了保证打印形状,需要逐行打印前导空格和数字。

前导空格和数字的个数按照行号进行变化,数字之间需要用一定的空格分隔,特别是当行数较多时,数字格式需要进行对齐,才能保证形状美观。

杨辉三角中的每个数字可以是上一行相邻两个数之和,或者每一行数字也是一个二项式系数之和。

11 11 2 11 3 3 11 4 6 4 1……三、算法分析1.假定行号为row(1≤row≤n),则每行需要打印的前导空格数为n-row。

2.每行的数字的个数与行号数相等。

如行号为row,则数字为二项式(a+b)m的系数,其中m=row-1,其系数为C(m, j), j=0,..,m, C(m,j)=m!/(j!(m-j)!)。

四、详细设计(从算法到程序)1.主模块设计a)本程序可以用循环结构实现,以行号为循环变量,逐行打印;b)每行打印前导空格和数字,由于每行前导空格的数量可以使用通项公式表示,因此可以编写一个独立打印空格的函数,其具体规格为void prnBlank(int m),而每行的数字同样具有规律性,同理可以使用一个函数来打印每行数字,其具体规格为void prnDigit(int m);c)每行打印完成之后应打印换行符’\n’。

d)根据上述设计,程序主体框架如下:# include <stdio.h>int main(){…for(row=1; row<=n; row++){prnBlank(n-row);prnBlank(row-1);printf(“\n”);}return 0;}2.空格打印函数void prnBlank(int m)根据调用时参数m,循环打印m个空格,由于只是打印,无须返回任何值。

程序设计报告

程序设计报告

程序设计报告
编写程序设计报告是每个软件工程师都必须要掌握的技能。

一个好的程序设计报告应该清晰地描述你的程序设计思路、解决方案以及实现细节。

以下是一个程序设计报告的典型结构和内容:
1. 引言:介绍程序的目的和背景,并概述程序的功能和特点。

可以提到程序的重要性、应用领域以及设计目标等。

2. 需求分析:详细描述用户需求,包括输入要求、输出要求以及其他特殊要求。

此部分应该对程序的功能进行清晰而准确的描述。

3. 设计思路:详细描述你的程序解决问题的思路和方法。

可以包括算法、数据结构、接口设计等内容。

要尽量简洁清晰地描述,并给出示意图或流程图以便于理解。

4. 实现细节:具体描述你的程序的设计和实现过程。

可以包括输入输出的设计、模块设计、函数实现等内容。

要尽量详细地描述代码的逻辑和过程,并给出代码片段进行示范。

5. 测试和验证:描述你对程序进行的测试和验证过程。

要详细描述测试的方法、测试数据、预期结果以及实际结果。

可以使用表格、图表等方式展示测试结果,以便于清晰地展示程序的正确性和健壮性。

6. 总结和展望:总结你的程序设计报告,并给出未来的改进和
优化方向。

可以对实现过程中遇到的问题和解决方案进行总结,也可以对程序的性能和功能进行进一步的改进设想。

编写一个程序设计报告需要对程序的设计和实现有深入的了解,并能够清晰地表达自己的思路和实现过程。

同时,要注重报告的整体结构和语言的流畅性,使读者能够轻松理解你的设计和实现。

程序设计课程设计报告

程序设计课程设计报告

程序设计课程设计报告第一章引言1.1 课程设计背景程序设计课程是计算机科学与技术专业的核心课程之一,旨在培养学生的编程能力和解决问题的能力。

本报告将详细介绍我们小组在程序设计课程中的设计项目。

1.2 设计目标我们的设计目标是实现一个简单的学生成绩管理系统,该系统能够方便地录入、查询和统计学生的成绩信息。

通过这个项目,我们旨在提高学生对程序设计的理解和实践能力。

第二章系统需求分析2.1 功能需求在系统需求分析阶段,我们首先明确了系统的功能需求。

系统应具备以下功能:(1)学生信息的录入和管理;(2)成绩信息的录入和管理;(3)成绩查询和统计功能;(4)用户权限管理;(5)系统设置和维护功能。

2.2 非功能需求除了功能需求,我们还考虑了系统的非功能需求,包括:(1)界面友好,操作简单;(2)系统稳定可靠,能够处理大量数据;(3)系统安全性要求高,确保用户数据的保密性;(4)系统性能要求高,能够快速响应用户的操作。

第三章系统设计与实现3.1 系统架构设计在系统设计阶段,我们采用了三层架构模式进行系统设计。

该模式将系统分为表示层、业务逻辑层和数据访问层三个层次,使系统各个模块的职责清晰明确。

3.2 数据库设计与实现为了存储学生和成绩信息,我们设计了一个关系型数据库,并创建了相应的表结构。

通过使用SQL语句,我们实现了数据的增删改查功能。

3.3 界面设计与实现我们设计了一个简洁直观的用户界面,用户可以通过界面进行学生信息和成绩的录入和查询操作。

界面使用了易于理解的图标和按钮,便于用户进行操作。

第四章系统测试与优化4.1 功能测试在系统开发完成后,我们进行了功能测试。

通过模拟用户的操作,我们验证了系统的各项功能是否正常运行。

4.2 性能测试为了测试系统的性能,我们模拟了大量的数据,并进行了压力测试。

通过监测系统的响应时间和资源占用情况,我们评估了系统的性能状况并进行了优化。

第五章总结与展望5.1 设计总结通过本次课程设计,我们深入学习了程序设计的相关知识,并将其应用于实际项目中。

程序设计报告

程序设计报告

程序设计报告一、引言。

程序设计是计算机科学领域中的重要部分,它涉及到软件开发的方方面面。

本报告旨在对程序设计的相关内容进行分析和总结,以期为程序设计工作提供一定的参考和指导。

二、需求分析。

在进行程序设计之前,首先需要进行需求分析。

需求分析是程序设计的第一步,它的目的是明确用户的需求和期望,为后续的设计和开发工作提供清晰的方向。

通过与用户的沟通和调研,我们可以了解到用户对于软件功能、界面设计、性能要求等方面的需求,从而为程序设计提供基础。

三、设计方案。

在需求分析的基础上,我们可以开始进行设计方案的制定。

设计方案包括整体架构设计、模块设计、数据库设计等内容。

在设计方案阶段,我们需要考虑软件的可扩展性、灵活性、性能等方面的问题,同时也需要考虑到后续的维护和升级工作。

设计方案的合理性和完整性对于程序设计的成功至关重要。

四、编码实现。

设计方案确定之后,我们可以开始进行编码实现工作。

编码实现是程序设计的核心环节,它需要程序员具备扎实的编程技能和丰富的经验。

在编码实现的过程中,我们需要严格按照设计方案进行开发,同时也需要进行代码的测试和调试,确保程序的质量和稳定性。

五、测试与优化。

编码实现完成之后,我们需要进行测试与优化工作。

测试是程序设计过程中不可或缺的环节,它可以帮助我们发现程序中存在的问题和bug,并及时进行修复。

同时,通过测试,我们也可以评估程序的性能和稳定性,为后续的优化工作提供依据。

六、总结与展望。

通过以上的工作,我们完成了程序设计的各个环节。

在未来的工作中,我们还需要不断地改进和完善程序,以适应不断变化的需求和技术。

同时,我们也需要密切关注行业的发展动态,不断学习和积累经验,为程序设计工作注入新的活力。

七、结语。

程序设计是一项复杂而又具有挑战性的工作,它需要设计者具备扎实的理论基础和丰富的实践经验。

通过本报告的分析和总结,我们希望能够为程序设计工作提供一定的参考和帮助,同时也希望能够为相关领域的研究和实践工作贡献一份力量。

《程序设计课程设计》实验报告

《程序设计课程设计》实验报告

《程序设计》课程设计姓名:学号:班级:软件工程14 班指导教师:成绩:1.消除类游戏1.1【问题描述】消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。

当有多处可以被消除时,这些地方的棋子将同时被消除。

1.2【基本要求】现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。

输出说明:棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。

1.4【功能实现】#include <iostream>#include <windows.h>using namespace std;int main(){int m, n, i ,j;int temp;cin >> n >> m;temp = m;m = n;n = temp;int * map = new int[m * n];int * mark = new int[m * n];int * tmap = map;*(tmark + dif) = 0;*(tmark + dif + n) = 0;*(tmark + dif + 2 * n) = 0; }tmap = map + (j+1) + i * n;}//输出cout << endl;tmap = map;for (i = 0; i < m; i++)for (j = 0; j < n; j++)if (* (tmark + i * n + j) == 0) *(tmap + i * n + j) = 0;for (i = 0; i < m; i++){for (j = 0; j < n; j++)cout<< *(tmap + i * n + j)<<" "; cout << endl;}system("pause");return 0;2数字统计2.1【问题描述】某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。

程序设计总结报告

程序设计总结报告

程序设计总结报告作为一名程序设计师,经过一段时间的学习和实践,我对程序设计有了更加深入的理解和认识,现在在这里对这段时间的学习和实践进行一份总结报告。

一、学习过程在学习过程中,我主要使用的学习工具是Python语言。

Python是一门简单易学、应用广泛的编程语言,可以轻松地实现各种应用,因此我选择学习Python。

在学习过程中,我采用了多种学习方式。

首先,我通过编写小程序来熟悉Python的语法和基本概念。

然后,在掌握了基本的编程技能后,我开始着手编写一些有用的实用程序,例如各种实用工具、网络爬虫等。

除了通过编程实现对语言的熟悉外,我还通过阅读经典著作、参加一些技术交流会议、建立技术社区等活动来提高我的编程技能。

二、实践经验在实践过程中,我积累了不少经验。

首先,日常生活中,我们可以从简单的问题出发,逐步增加难度,以便我们更好地理解并学习各种编程语言和技术。

例如,我们可以从最简单的算术运算开始,例如加、减、乘、除等,然后逐步增加难度,例如变量、数据类型、函数等。

其次,我们还可以将所学习的技术应用到实际生活中,例如利用Python编写一个能帮助我们记录家庭开销的程序,这样可以更好地理解所学过的编程技术,并帮助我们更好地应用。

第三,我们还可以结交编程相关的朋友或者参与在技术社区的讨论。

这样可以让我们交流思想,更好地把握行业的新动态。

并且,我们还可以通过这样的互动学习到更多编程技巧,更好地提升自己的编程水平。

三、总结总体来说,通过对编程的学习和实践,我深刻认识到编程是一门非常实用的技术,能够帮助我们更好地解决生活中的各种问题。

通过不断学习和实践,我们可以提升自己的编程水平,并更好地应用这一技能。

同时,我也明白,学习编程需要坚持不懈的学习,技术是不断更新的,我们需要保持自己的学习状态,不断探索、实践和创新。

另外,我们还需要注意与其他编程者进行交流和互动,共同提高我们在编程领域的技能,同时也需要不断学习与进步。

《程序设计》实验报告

《程序设计》实验报告

《程序设计》实验报告实验报告:程序设计一、实验目的本次实验的目的是通过一个简单的程序设计实践项目,让学生了解并掌握C语言的基本语法和程序设计能力。

通过此次实验,学生需要能够利用C语言的各种语法和函数,编写一个完整的、具备一定功能的程序。

二、实验内容本次实验要求学生编写一个简单的学生成绩管理系统。

系统需要实现以下功能:1.从文件中读取学生的信息,并存储在程序中;2.根据学生的成绩,计算每个学生的总分和平均分,并进行排名;3.根据学生的姓名、学号、成绩等信息,能够实现对学生信息的查询;4.能够对学生信息进行排序和修改;5.将学生的信息输出到文件中。

三、实验过程1.定义学生信息的结构体,并定义需要用到的全局变量;2.编写从文件中读取学生信息的函数,并将读取到的信息存储在数组中;3.初始化学生信息、计算每个学生的总分和平均分,并进行排名;4.编写查询学生信息、排序学生信息和修改学生信息的函数;5.编写将学生信息输出到文件中的函数;6.在主函数中根据用户输入调用以上函数,完成学生成绩管理系统的各项功能。

四、实验结果经过编写和调试,最终实现了一个简单的学生成绩管理系统。

用户可以通过菜单选择需要的功能,包括添加学生信息、查询学生信息、修改学生信息、排序学生信息和输出学生信息等。

程序能够准确地读取和存储学生的信息,并能够根据用户的指令完成相应的操作。

五、实验总结通过本次实验,我对C语言的基本语法有了更深入的理解,并通过实践掌握了C语言的一些常用函数和数组的使用。

在编写程序的过程中,我还学会了如何利用文件进行输入和输出,提高了程序的灵活性和实用性。

通过对学生成绩管理系统的设计与实现,我对程序设计的整个过程有了更清晰的认识,增强了我的程序设计能力。

在本次实验中,我还遇到了一些问题和困难。

比如学生信息的存储和读取、学生信息的排序和查询等。

但通过和同学的讨论和老师的指导,我最终解决了这些问题,并成功完成了实验。

在解决问题的过程中,我学会了如何运用调试工具进行程序的调试和错误的定位,提高了解决问题的能力。

程序设计报告

程序设计报告

程序设计报告
程序设计报告
程序设计报告是指对一个程序进行详细的描述和解释的文档。

这个文档通常包括但不限于以下内容:
1. 程序的目标和需求:描述程序的目标和它所要解决的问题。

这部分内容应该明确而清晰,以便读者能够理解程序的核心功能。

2. 程序的设计思路:解释程序的整体设计思想,包括程序的结构、算法和数据结构选择等。

这部分内容应该详细、逻辑清晰,以便读者能够理解程序的实现方式。

3. 程序的实现细节:描述程序的各个模块(或函数)的具体实现细节。

这部分内容应该包括算法和数据结构的具体实现、核心代码的细节以及相关函数的调用关系等。

这部分内容通常以伪代码、源代码或代码片段的形式呈现。

4. 程序的测试与验证:说明程序的测试策略和测试结果。

这部分内容应该包括对程序功能的各个方面进行测试,并记录测试结果。

测试结果应该包括具体的输入数据、期望的输出和实际的输出等。

5. 程序的性能和效果分析:对程序的性能进行评估,并对程序的效果进行分析。

这部分内容应该包括程序的运行时间、内存占用等性能指标的测试结果,以及对程序的功能和效果进行评价。

6. 程序的改进和展望:对程序存在的问题和不足进行分析,并提出改进的建议。

这部分内容应该包括程序的潜在问题和改进的方向,以及对程序可能的扩展和优化的展望。

总之,程序设计报告是对一个程序进行全面评估和描述的文档,在程序实现的基础上进一步完善程序的设计思路和实现细节,并为程序的改进提供有益的建议。

可以说,程序设计报告是一个程序的“使用说明书”,是程序开发过程中不可或缺的一部分。

程序设计实训报告(9篇)

程序设计实训报告(9篇)

程序设计实训报告(9篇)【导语】程序设计实训报告怎么写出亮点?整理了9篇优秀的《程序设计实训报告》通用版范文,有规范的开头结尾写法和标准的书写格式。

是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。

【第1篇】程序设计实训报告程序设计实训报告1一,实训目的:加深对可视化编程技术基本学问的理解,把握运用vb开发应用程序的基本方法及基本技巧。

二,实训时间:20xx年10月20xx年11月三,实训方式:上机操作四,实训类容:这次在杨立雄老师的带领下,利用vb开发工具与数据库sql开发一个使用的小型管理信息系统。

我选择了学籍管理系统。

它的功能要求如下:1,学籍信息输入:实现同学基本状况的输入。

包括各个同学的状况,姓名,家庭号码,家庭住址,学号等各个信息。

2,学籍信息管理:本模块实现了信息的修改,删除,查询。

还有个人信息。

把信息统计这个繁琐的工作简洁化,为同学信息的管理方面提高工作效率。

3,学籍信息查询:通过输入学号便可以查询到这个同学的全部信息,包括姓名,性别,诞生年月,班级,入学日期,联系电话,嘉奖和成果表都一目了然,很大的便利了教工们查询同学信息的过程。

4,统计查询:实现查询全班人数,男女生比例等。

五,实训体会:这次实训,感觉既好玩又有些辛苦。

这还是老师担忧我们适应不了所以没教那么多学问,即使这样我们仍学到了比以前上学时更多的学问,而且这些学问有好多都是我们自己去领悟的到的。

我也知道有人比我们更累,所以我自觉得还是挺好的。

经过这次的实训,我真真实切的感受到了计算机在我们生活中工作中的运用,这些软件,程序能让我们提高工作的效率,更直观更便捷切入主题。

这次我们学习的是数据源的原理及应用的各方面学问,由老师带着我们不断操作。

vb能有效的组织,管理和共享数据库信息,能把数据库信息与ado结合在一起,实现数据库信息的共享。

同时,vb概念清楚,简洁易学,使用。

是适合企业管理人员,数据库管理员使用的首选。

程序设计报告

程序设计报告

程序设计报告背景介绍:在当今数字化时代,计算机科学与技术的快速发展对程序员提出了更高的要求。

程序设计作为一项重要的技能,成为了很多人学习的焦点。

本报告旨在探讨程序设计的重要性以及如何进行高效的程序设计。

重要性:程序设计是计算机科学的核心之一。

它涉及到解决问题、优化算法和实现创新想法。

良好的程序设计能力不仅对计算机科学专业的学生至关重要,也对其他领域的学生具有重要意义。

它可以提高解决问题的能力、培养创新思维和加强团队协作能力。

程序设计的基本原则:良好的程序设计需要遵循一些基本原则。

首先,设计师需要确定问题的需求和目标。

这包括对问题的深入理解、数据分析和系统设计。

其次,设计师需要选择适当的算法和数据结构。

这是程序设计的核心,直接关系到程序的效率和执行速度。

最后,设计师需要测试和调试程序,确保其能够正常运行并符合要求。

高效的程序设计建议:1. 选择合适的编程语言:不同编程语言适用于不同类型的问题。

根据问题的需求和自己的熟悉程度选择合适的编程语言。

常用的编程语言有Python、Java和C++等。

2. 设计可读性强的代码:良好的编码规范和注释能够提高代码的可读性。

有时候我们需要与他人合作开发项目,可读性强的代码可以减少沟通成本并提高团队协作效率。

3. 利用现有的库和框架:编写程序时,可以充分利用已有的库和框架来简化开发流程。

这不仅可以提高效率,还能够避免重复造轮子。

4. 避免冗余代码:冗余代码会增加程序的复杂度和维护成本。

及时清理和整理代码是保持程序高效和可靠的重要步骤。

5. 善用调试工具:调试是程序设计中必不可少的环节。

善用调试工具可以帮助快速定位问题,提高解决问题的效率。

案例分析:以一个简单的背包问题为例,来展示程序设计的过程。

背包问题的目标是在给定的重量和价值限制下,选择合适的物品使得总价值最大。

根据问题的需求和目标,我们可以通过数学建模将背包问题转化为一个优化问题。

然后可以选择动态规划算法来解决该问题。

程序设计报告

程序设计报告

程序设计报告程序设计报告本报告介绍了我设计和实现的一个小型图书管理系统的程序。

该系统具有以下功能:图书的入库管理、图书的查询和借还管理。

通过该系统,可以方便地管理图书的借还和库存情况。

在设计和实现该系统时,我采用了面向对象的编程思想,并使用Java语言进行编码。

整个系统由多个类组成,每个类负责不同的功能模块。

主要包括以下几个类:- Book类:表示图书的数据结构,包含图书的编号、名称、作者等属性。

- BookManage类:负责图书的入库管理,包括图书的添加、删除和修改。

- BookSearch类:负责图书的查询功能,可以按照编号、名称或作者进行图书的查找,并输出相应的结果。

- BookBorrow类:负责图书的借还管理,可以实现图书的借出和归还。

- Main类:程序的入口,负责与用户的交互,接收用户的指令并调用其他类的相应方法。

在实现过程中,我采用了面向对象的编码风格,将每个类的功能划分清晰,并且遵循了单一职责原则。

通过封装和继承等对象的概念,使得整个程序具有良好的可扩展性和维护性。

以下是程序的运行示例:```Welcome to Book Management System! Please enter your choice:1. Add a book2. Delete a book3. Modify a book4. Search books5. Borrow a book6. Return a book0. QuitYour choice: 4Please enter your search keyword: Java Here are the search results:Book No. Name Author----------------------------------1001 Java Programming John Smith 1002 Advanced Java Jane Doe Please enter your choice:1. Add a book2. Delete a book3. Modify a book4. Search books5. Borrow a book6. Return a book0. QuitPlease enter the book number you want to borrow: 1001 The book has been successfully borrowed.Please enter your choice:1. Add a book2. Delete a book3. Modify a book4. Search books5. Borrow a book6. Return a book0. QuitYour choice: 6Please enter the book number you want to return: 1001 The book has been successfully returned.Please enter your choice:1. Add a book2. Delete a book3. Modify a book4. Search books5. Borrow a book6. Return a book0. QuitGoodbye!```通过设计和实现该图书管理系统的程序,我更深入地了解了面向对象的程序设计思想,并且提高了编码能力和问题解决能力。

《程序设计》实验报告

《程序设计》实验报告

《程序设计》实验报告实验报告:程序设计摘要:本实验是关于程序设计的实践,通过实验探讨了程序设计的基本概念、基本方法和基本技巧。

实验过程中,学生需要自主选择并解决具体问题,从而学习和理解程序设计的过程和思想。

1.引言程序设计是计算机科学和工程的重要组成部分,是指根据特定需求编写计算机程序的过程。

这个过程包括定义问题、设计算法、编写程序、测试和调试程序等。

程序设计既是一种艺术,也是一种科学,需要程序员具备一定的逻辑思维能力和编程经验。

2.实验目的本次实验的目的是通过实践掌握程序设计的基本概念、基本方法和基本技巧。

具体来说,实验要求学生选择一个具体问题,然后根据问题的需求设计并编写出解决问题的程序。

3.实验内容3.1选择问题:首先,学生需要选择一个具体的问题进行解决。

这个问题可以是实际生活中遇到的问题,也可以是抽象的数学问题等。

3.2设计算法:针对所选择的问题,学生需要设计一个合适的算法。

算法是解决问题的思路和步骤的描述,通常通过伪代码或流程图表示。

3.3编写程序:根据设计的算法,学生需要用合适的编程语言编写程序,并且确保程序在运行时能够正确、高效地解决问题。

3.4测试和调试:完成编写程序后,学生需要进行测试和调试,以确保程序的正确性和稳定性。

测试可以包括输入输出的验证、负载测试等。

4.实验结果与分析本次实验中,我选择了一个简单的问题进行解决:计算一个整数序列中的最大值。

针对这个问题,我设计了一个简单的算法:遍历序列,依次比较当前元素和已记录的最大值,更新最大值。

我用C++语言编写了解决问题的程序,并进行了测试。

测试结果表明,我的程序能够正确地计算出给定序列的最大值。

通过本次实验,我对程序设计的基本概念、基本方法和基本技巧有了更深入的理解。

我学会了如何选择问题、设计算法和编写程序,以及如何进行测试和调试。

这些都是程序设计中必不可少的一部分,对我今后的学习和工作都具有重要意义。

5.实验总结本次实验是一次很好的学习机会。

程序设计实验报告总结

程序设计实验报告总结

程序设计实验报告总结一、引言程序设计实验是计算机科学专业学生必修的课程之一,通过实验,可以让学生更好地掌握编程技巧和解决问题的能力。

本报告旨在总结我在程序设计实验中所学到的知识和经验,并对实验进行评价和反思。

二、实验内容本次程序设计实验包括以下几个部分:1. 编写一个简单的计算器程序,能够进行加减乘除运算,并可以进行连续计算。

2. 编写一个简单的文本编辑器程序,能够打开、编辑和保存文本文件。

3. 编写一个简单的图形界面程序,能够显示图片和文字,并支持用户交互。

三、实验过程1. 计算器程序在编写计算器程序时,我首先定义了一个Calculator类,其中包含了加减乘除四个方法。

然后,在主函数中利用循环来不断读取用户输入,并调用相应的方法进行计算。

最后输出结果并询问用户是否继续计算。

2. 文本编辑器程序在编写文本编辑器程序时,我首先定义了一个Editor类,其中包含了打开、编辑和保存文本文件三个方法。

在打开文件时,我使用了Java IO库中的FileReader类来读取文件内容;在编辑文件时,则使用了Java Swing库中的JTextArea组件来实现文本编辑功能;在保存文件时,则使用了Java IO库中的FileWriter类来将编辑后的内容写入文件。

3. 图形界面程序在编写图形界面程序时,我首先定义了一个MyFrame类,其中包含了显示图片和文字两个方法。

在显示图片时,我使用了Java Swing库中的JLabel组件来加载图片,并设置其大小和位置;在显示文字时,则使用了Java Swing库中的JTextField组件来实现文本输入功能。

同时,我还为用户提供了一个按钮,用于触发某些操作。

四、实验评价1. 计算器程序计算器程序相对简单,但是能够很好地锻炼我们的编程能力。

通过编写这个程序,我更加熟悉了Java语言的基本语法,并学会了如何定义和调用方法。

2. 文本编辑器程序文本编辑器程序相对复杂一些,但是能够让我们更加深入地理解Java IO和Swing库的使用。

程序设计报告

程序设计报告

程序设计报告篇一:程序设计报告要求每个小组做全本套题目时限:1s【题目描述】有一个字符集合,它只包含a-z这26个小写字母。

根据集合的定义,集合的容量是集合含有不同元素的个数。

由于该集合中包含了非常多的重复字母,因此让你编程计算下该集合的容量,也就是该集合包含了多少不相同的字母。

【输入】有多组样例。

第一行为样例的个数T。

接下来T行,每一行代表一个样例。

这一行为一个字符串,表示一个集合。

规定以’{’开头,以’}’结束。

每个字符用’,’给开,逗号与逗号后的元素空出一个空格。

【输出】每个集合的容量。

一个样例占一行。

【输入样例】2{a, b, c}{a, b, a, b}【输出样例】32B吉利数字时限:1s【题目描述】算卦大湿biboyouyun最近得出一个神奇的结论,如果一个数字,它的各个数位相加能够被10整除,那么称它为吉利数。

现在叫你计算某个区间内有多少个吉利数字。

【输入】第一行为样例个数N。

接下来N行,每一行代表一个输入样例,每个输入样例有2个数,分别代表某个区间的起点a和终点b。

注意所求区间为[a,b],1 =a =b =10【输出】N行。

对于第x个输入样例,在第x行输入该样例所对应的结果。

【输入样例】21 101 20【输出样例】1【Hint】1-10之内无幸运数,1-20内只有19 这1个幸运数C炸弹袭击时限:1s【题目描述】H族的领地是一片富饶之地,有丰富的资源,无数的黄金。

尽管异族侵略者被压制几百多年,他们并没有放弃对这片土地的渴望。

最近,他们研制了一枚重磅炸弹。

试图用它摧毁H族的防御工事。

H族的防御工事由多个基地构成,侵略者试图用炸弹摧毁尽量多的防御基地,现在,他们急需你的帮助。

如果你能为他们解决难题,会有巨大的奖励。

〔该炸弹的攻击范围是一个半径为r单位的圆〕【输入】第一行为样例的个数T。

每个样例中有假设干行,第一行为炸弹的攻击半径r,r有可能不是整数(1 =r =100)第二行是一个整数n,表示H族防御基地的个数(1 =n =100)接下来n行,每行有两个数,代表H族某个防御基地的坐标【输出】只有一个数,代表炸弹能最多摧毁的H族防御基地数量。

程序设计报告

程序设计报告

程序设计报告作为一名程序员,程序设计是我工作中最为重要的部分之一。

无论是开发软件还是网站,程序设计都是不可或缺的步骤。

今天,我将向大家分享一个我最近完成的程序设计项目,并以此为例,谈谈程序设计的一些基本原则和技巧。

这个项目是一个简单的网站开发,用于帮助用户搜索和查询不同城市的旅游景点。

在完成这个项目的过程中,我遵循了以下几个程序设计的基本原则和技巧:1. 良好的代码结构代码结构是程序设计的基石,也是代码可读性和可维护性的关键。

因此,在设计代码结构时,我一直保持一个清晰的逻辑层次结构,按合理的方式构建代码模块,让代码结构更具可读性和可管理性。

2. 遵循编程规范编程规范是程序设计中必不可少的一部分。

我严格遵循了所在公司的编程规范,并使用了有助于代码可读性和可维护性的方法命名变量和函数。

3. 使用注释注释是程序设计过程中很重要的一个环节。

在我的程序设计过程中,我在代码的关键位置添加了注释,使代码更具可读性和可维护性。

4. 追求最佳性能程序性能是考虑程序设计的一个重要方面。

为了确保我的程序在最快的时间内响应用户的请求,我使用了一些可加速代码执行的技术,例如内存缓存等。

5. 测试、分析和优化程序测试和性能优化是程序设计过程中必不可少的一个步骤。

因此,在设计的代码实现后,我使用了一些测试和分析工具,如JUnit 和 Profiler 等,来检测代码处理性能和相关的遗漏或错误,并在后续的优化过程中更正了这些问题。

通过上述这些步骤,我成功地完成了这个项目,并在整个程序设计过程中取得了很好的成果。

它向我展示了程序设计的一个重要点——尽量让代码的逐行阅读和理解像一篇清晰而连贯的文章。

总而言之,程序设计是非常复杂和细节化的,要求程序员具备广泛的技能和知识。

但是,在遵循程序设计的基本原则和技巧的情况下,我们可以成功地完成我们的程序设计项目,并达到客户的预期。

因此,我强烈建议未来的程序设计师在其程序设计之旅中坚持遵循这些原则和技巧,以确保顺利地完成项目,并获得成功。

程序设计实验报告

程序设计实验报告

程序设计实验报告一、实验目的本实验旨在通过一个具体的程序设计实例,让学生掌握软件设计的基本原则和方法,培养学生编写高效、简洁、可维护和易扩充的程序的能力。

二、实验背景本实验涉及一个学生信息管理系统的设计与实现。

学生信息管理系统是一个常见的应用程序,主要功能包括学生信息的录入、查询、修改和删除等操作。

该系统需要能够对学生信息进行存储和管理,为用户提供方便快捷的操作界面。

三、实验内容1.设计数据库表结构根据需求分析,设计数据库表结构,包括学生信息表、课程信息表和成绩表等。

2.编写程序界面使用图形界面编程工具,设计学生信息管理系统的用户界面,包括学生信息的录入、查询、修改和删除等功能。

3.实现数据库操作功能编写程序代码,实现对数据库表的增删改查等操作功能。

4.进行系统测试对学生信息管理系统进行测试,验证系统的功能和稳定性,修复程序中存在的bug。

四、实验步骤1.确定需求根据实验要求,确定学生信息管理系统的需求,包括功能要求和性能要求等。

2.设计数据库表结构根据需求分析,设计学生信息管理系统的数据库表结构,包括学生表、课程表和成绩表等。

3.编写程序界面使用图形界面编程工具,设计学生信息管理系统的用户界面,包括登录界面、主界面和各功能模块界面等。

4.实现数据库操作功能根据设计的数据库表结构和程序界面,编写程序代码,实现对数据库表的增删改查等操作功能。

5.进行系统测试对学生信息管理系统进行测试,验证系统的功能和稳定性,修复程序中存在的bug。

六、实验结果与分析经过实验,成功实现了学生信息管理系统的设计与开发。

该系统具有良好的用户界面和功能完备的操作模块,能够方便快捷地进行学生信息的录入、查询、修改和删除等操作。

根据实际测试结果,该系统在功能和性能上都能满足实际需求。

用户可以通过登录界面进入系统,然后利用系统提供的功能模块进行对学生信息的操作。

系统能够对用户的输入进行合法性检查,确保数据的准确性和完整性。

同时,系统能够对用户的操作进行记录,方便管理员进行管理和查询。

学生程序设计报告c

学生程序设计报告c

学生程序设计报告c1. 引言计算机程序设计是现代信息技术领域中重要的一环,它涉及到数据处理、算法设计、编码技巧等多方面的知识。

作为一名学生程序设计者,研究和掌握程序设计的基本原理和技术,对于提高自身的综合能力和创新能力具有重要意义。

本报告将介绍我在学生程序设计课程中的学习和实践情况,以及对于程序设计的心得体会。

2. 学习内容学生程序设计课程主要包括以下几个方面的内容:2.1 编程语言基础在课程开始的第一阶段,我学习了C语言的基础知识。

包括语法、变量定义、运算符、流程控制语句等。

通过编写简单的程序,我逐渐熟悉了C语言的基本语法和编程思想。

2.2 数据结构与算法在第二阶段,我们学习了数据结构与算法的基本概念和应用。

包括线性表、树、图等基本数据结构的实现和算法的设计与分析。

我们通过实现各种数据结构和算法的程序,提高了我们对于数据结构与算法的理解和应用能力。

2.3 软件工程与实践在第三阶段,我们学习了软件工程的基本原理和实践方法。

包括需求分析、设计、编码、测试等软件开发过程的相关知识和技术。

我们通过开发一个小型软件项目,深入了解了软件开发的流程和方法。

3. 实践项目在学习过程中,我们还进行了多个实践项目。

3.1 简单计算器在学习C语言基础后,我们实现了一个简单的计算器。

该计算器可以进行基本的算术运算,如加法、减法、乘法、除法等。

通过这个小项目,我们巩固了对于C语言语法和函数调用的理解。

3.2 数据结构实现在学习数据结构和算法后,我们实现了多个基本数据结构。

如链表、栈、队列、二叉树等。

通过实现这些数据结构,我们更深入地理解了它们的内部原理和应用场景。

3.3 小型学生信息管理系统在学习软件工程与实践后,我们开发了一个小型学生信息管理系统。

该系统可以进行学生信息的添加、查询、修改和删除等操作。

通过这个项目,我们了解了软件开发的整个流程和各个环节的要求。

4. 心得体会通过学习和实践,我对于程序设计有了更深入的认识和理解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计报告(2013/2014学年第一学期)题目:数码闹钟的设计与实现专业信息安全组长学号姓名 B12040611 丁宏组员学号姓名 B12040612 王亚聪B12040630 葛聪聪指导教师朱立华指导单位计算机学院软件教学中心日期 2013 年 10月 31日数码闹钟的设计与实现一、课题内容和要求“数码闹钟”系统主要是通过MFC窗口化程序设计来绘制数码管以显示当前的系统时间,并且伴随有闹钟功能。

课题的基本要求中要求1、用6个数码管显示当前系统的时、分、秒信息;2、可以满足同时进行多个时间的闹铃设置,时间到,在屏幕上以数码管形式实现屏闪,每秒一次,时长一秒,伴随蜂鸣;3、时间正常显示,以秒为计时单位;4、提供菜单功能,时间表控制以文件形式保存,便于修改闹钟时间。

拓展要求中要求1、能够设置数码闹钟的闹铃次数;2、采用图形界面;3、允许在闹铃响之前至少半个小时取消闹铃设置,半小时内不允许取消设置。

二、需求分析数码闹钟系统的功能框架图如图1所示。

图1 功能框架图( 1 )提供一个基于Windows下的窗口界面,显示了当前日期,时间,已设定的闹钟信息,并提供三个按钮可以进行闹钟的添加与删除;( 2 )通过数据库文件对设定的闹钟与提示信息进行管理和输出;( 3 )提供一个窗口使得闹钟的提示信息可以由用户自己设定和更改;( 4 )关于闹钟的响铃功能,可以根据用户需求,通过一个选择框设置单次提醒还是多次提醒,若设置多次提醒每隔两分钟会弹出对话框提醒,并带有一次响铃。

三、概要设计1 主要的类内变量的定义和函数的声明:class CClock3Dlg : public CDialog{public:int jc; //标志变量,控制多次响铃int fdot; //标志变量,控制冒号的闪烁int clockstop; //标志变量,和flash一起控制响铃时时间闪烁int flash; //标志变量,控制响铃时时间闪烁CRect rect; //绘制背景矩形CRect rec2[6]; //绘制带数字的数码管char cflag; //标志变量,检测时间是否正常运行CRect recd1,recd2; //绘制两个冒号CRect rec[6]; //绘制无数字的数码管int wz[6]; //保存时间各个位数,控制数码管显示_ConnectionPtr m_pConnection; //数据库的连接指针_RecordsetPtr m_pRecordset; //数据库的记录指针int maxbianhao; //记录数据库内最后一条数据的编号int first_h; //第一个响的闹钟的小时位int first_m; //第一个响的闹钟的分钟位int first_s; //第一个响的闹钟的秒数位int first_bianhao; //第一个响的闹钟的编号int m_nian; //当前时间的年int m_yue; //当前时间的月int m_ri; //当前时间的日int m_h; //当前时间的小时int m_m; //当前时间的分钟int m_s; //当前时间的秒int timer; //记录响铃次数CTime ntime; //当前时间CTime timerold; //用于对比当前时间,控制数码管的变化bool sig_clocksound; //控制是否响铃CDirectSound directSound; //声音类的变量,控制对象LPDIRECTSOUNDBUFFER clockSound; //声音类变量,读取铃音CClock3Dlg(CWnd* pParent = NULL);//构造函数void test(); //测试函数void CheckClockTime(); //对比闹钟时间和当前时间void GetFirstClock(); //获取第一个响的闹钟void OnClock(); //闹钟实现函数protected:HICON m_hIcon; //图标句柄void GetCurrentTime(); //获取当前时间void PrintData(); //往列表中输入数据库数据}class AddClock : public CDialog{public:AddClock(CWnd* pParent = NULL); //构造函数_ConnectionPtr m_pConnection; //连接数据库_RecordsetPtr m_pRecordset; //连接数据库中的表单clocklist_RecordsetPtr m_pRecordset2; //连接表单tishiint bianhao; //列表标号// Dialog Data//{{AFX_DATA(AddClock)enum { IDD = IDD_ADD };CButton m_Check;CButton m_Check2;CComboBox m_ComBox;int m_h;int m_m;int m_s;//}}AFX_DATAprotected:void GetClientTime(bool sig); //获取当前时间void SetComboBox(); //设定下拉框bool AddClockList(CString time); //添加闹钟函数int m_nian; //当前时间的年int m_yue; //当前时间的月int m_ri; //当前时间的日}class AddTiShiDlg : public CDialog{public:AddTiShiDlg(CWnd* pParent = NULL); // 构造函数int bianhao; //提示信息的编号// Dialog Data//{{AFX_DATA(AddTiShiDlg)enum { IDD = IDD_DIALOG1 };protected:_ConnectionPtr m_pConnection; //连接数据库的指针_RecordsetPtr m_pRecordset; //记录指针,连接表单tishibool InsertData(); //录入数据CString str_tishi; //提示信息}2 主要函数流程图(1)绘图函数:通过MFC绘图函数在对话框中绘制一个数码管,用于显示当前时间,并根据时间变化,流程图如图2所示;图2 绘制函数(2)读取函数:通过读取数据库信息,填充到对话框的列表中,以便于用户管理和修改闹钟信息和提示信息,流程图如图3所示;图3 读取函数(3)添加函数:通过添加按钮可以向数据库中添加闹钟信息或提示信息并重新读取数据库内容添加到列表中,流程图如图4所示;图4 添加函数(4)闹钟功能的实现函数:这个是本程序最基本的功能,通过拓展后,闹钟可以由用户自定义是否响铃和是否多次提醒,流程图如图5所示。

图5 闹钟实现函数四、源程序代码#include "stdafx.h"#include "Clock3.h"#include "Clock3Dlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifCClock3Dlg::CClock3Dlg(CWnd* pParent /*=NULL*/): CDialog(CClock3Dlg::IDD, pParent){//{{AFX_DATA_INIT(CClock3Dlg)// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);maxbianhao=0;first_h=0;first_m=0;first_s=0;first_bianhao=0;m_h=0;m_m=0;m_s=0;timer=0;sig_clocksound=0;flash=1;clockstop=0;fdot=1;jc=0;}BOOL CClock3Dlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herem_list.ModifyStyle(0L,LVS_REPORT);m_list.ModifyStyle(0L,LVS_SINGLESEL);m_list.ModifyStyle(0L,LVS_SHOWSELALWAYS);m_list.ModifyStyle(0L,LVS_NOSORTHEADER);m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); m_list.InsertColumn(0,"编号");m_list.InsertColumn(1,"时间");m_list.InsertColumn(2,"提示信息");m_list.InsertColumn(3,"闹铃");m_list.InsertColumn(4,"多次");m_list.SetColumnWidth(0,40);m_list.SetColumnWidth(1,150);m_list.SetColumnWidth(2,162);m_list.SetColumnWidth(3,45);m_list.SetColumnWidth(4,45);PrintData();GetCurrentTime();for(int ii=0;ii<6;ii++){InvalidateRect(rec[ii],TRUE);InvalidateRect(rec2[ii],TRUE);}int j=8;for(ii=0;ii<2;ii++)rec[ii].SetRect(205+ii*45,50,245+ii*45,115);for(ii=2;ii<4;ii++)rec[ii].SetRect(205+ii*45+j,50,245+ii*45+j,115);j+=8;for(ii=4;ii<6;ii++)rec[ii].SetRect(205+ii*45+j,50,245+ii*45+j,115);SetTimer(1,1000,NULL);cflag=0;j=8;for(ii=0;ii<2;ii++)rec2[ii].SetRect(205+ii*45,50,245+ii*45,115);recd1.SetRect(293,50,300,115);for(ii=2;ii<4;ii++)rec2[ii].SetRect(205+ii*45+j,50,245+ii*45+j,115);recd2.SetRect(391,50,398,115);j+=8;for(ii=4;ii<6;ii++)rec2[ii].SetRect(205+ii*45+j,50,245+ii*45+j,115);cflag=-1;return TRUE; // return TRUE unless you set the focus to a control}void CClock3Dlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{// CDialog::OnPaint();int ll=23,hh=36;CPaintDC dc(this);CDC dcMem;dcMem.CreateCompatibleDC(&dc);CBitmap bBd[7];BITMAP bitMap[7];CBitmap *pbmpOld;GetDlgItem(IDC_TL)->GetWindowRect(&rect);ScreenToClient(&rect);rect.InflateRect(-1,-7,-1,-1);dc.FillSolidRect(&rect,RGB(0, 0, 0));for(int ii=0;ii<6;ii++){bBd[ii].LoadBitmap(IDB_BITMAP1);bBd[ii].GetBitmap(&bitMap[ii]);pbmpOld=dcMem.SelectObject(&bBd[ii]);if(!flash)dc.StretchBlt(rec[ii].left,rec[ii].top,rec[ii].Width(),rec[ii].Height(),&dcMem,0,0,ll-1,hh,SRCCOPY);elsedc.StretchBlt(rec2[ii].left,rec2[ii].top,rec2[ii].Width(),rec2[ii].Height(),&dcMem,(wz[ii]+1)*ll,0,ll-1,hh,S RCCOPY);}if(cflag&&fdot){bBd[ii].LoadBitmap(IDB_BITMAP1);bBd[ii].GetBitmap(&bitMap[ii]);pbmpOld=dcMem.SelectObject(&bBd[ii]);dc.StretchBlt(recd1.left,recd1.top,recd1.Width(),recd1.Height(),&dcMem,ll*11,0,4,hh,SRCCOPY);dc.StretchBlt(recd2.left,recd2.top,recd2.Width(),recd2.Height(),&dcMem,ll*11,0,4,hh,SRCCOPY);}}}void CClock3Dlg::GetCurrentTime(){ntime=CTime::GetCurrentTime();int aa;aa=ntime.GetHour();wz[0]=aa/10;wz[1]=aa%10;aa=ntime.GetMinute();wz[2]=aa/10;wz[3]=aa%10;aa=ntime.GetSecond();wz[4]=aa/10;wz[5]=aa%10;CString str_day;str_day=ntime.Format(" %Y 年%m 月%d 日%A %H:%M:%S");CString str;str=ntime.Format("%Y");m_nian=atoi(str);str=ntime.Format("%m");m_yue=atoi(str);str=ntime.Format("%d");m_ri=atoi(str);str=ntime.Format("%H");m_h=atoi(str);str=ntime.Format("%M");m_m=atoi(str);str=ntime.Format("%S");m_s=atoi(str);}图6 数码闹钟的主界面void CClock3Dlg::OnAdd() //此函数在单击主界面上的“添加闹钟”后被调用{// TODO: Add your control notification handler code hereAddClock adddlg;adddlg.bianhao=maxbianhao+1;int id=adddlg.DoModal();if(id==IDOK) //IDCANCEL{for(int i=0;i<maxbianhao;i++)m_list.DeleteItem(0);maxbianhao++;PrintData();GetFirstClock();}}void CClock3Dlg::PrintData(){::CoInitialize(NULL);m_pConnection=NULL;m_pConnection.CreateInstance(__uuidof(Connection));m_pConnection->ConnectionString="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=clock.mdb;";m_pConnection->Open(L"",L"",L"",adCmdUnspecified);m_pRecordset=NULL;CString str_SQL;str_SQL.Format("select * from clocklist");_bstr_t bstrSQL=(LPCTSTR)str_SQL;m_pRecordset=m_pConnection->Execute(bstrSQL,NULL,adCmdText);int bianhao=1;CString str_time,str_tishi,str_naoling,str_bianhao,str_duoci;while(!m_pRecordset->adoEOF){m_list.InsertItem(bianhao-1," ");str_time=(char*)(_bstr_t)m_pRecordset->GetCollect("时间");str_tishi=(char*)(_bstr_t)m_pRecordset->GetCollect("提示信息");str_naoling=(char*)(_bstr_t)m_pRecordset->GetCollect("闹铃");str_duoci=(char*)(_bstr_t)m_pRecordset->GetCollect("多次");str_bianhao.Format("%d",bianhao);m_list.SetItemText(bianhao-1,0,str_bianhao);m_list.SetItemText(bianhao-1,1,str_time);m_list.SetItemText(bianhao-1,2,str_tishi);m_list.SetItemText(bianhao-1,3,str_naoling);m_list.SetItemText(bianhao-1,4,str_duoci);m_pRecordset->MoveNext();bianhao++;}maxbianhao=bianhao-1;m_pRecordset->Close();m_pConnection->Close();m_pRecordset=NULL;m_pConnection=NULL;::CoUninitialize();}void CClock3Dlg::OnDelAll() //此函数在单击主界面的全部删除时被调用{// TODO: Add your control notification handler code hereif(IDYES==::MessageBox(NULL,"您确定要全部删除吗?","全删确认",MB_YESNOCANCEL | MB_ICONQUESTION)){::CoInitialize(NULL);m_pConnection=NULL;m_pConnection.CreateInstance(__uuidof(Connection));m_pConnection->ConnectionString="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=clock.mdb;";m_pConnection->Open(L"",L"",L"",adCmdUnspecified);CString str_SQL;str_SQL.Format("delete * from clocklist");_bstr_t bstrSQL=(LPCTSTR)str_SQL;m_pRecordset=m_pConnection->Execute(bstrSQL,NULL,adCmdText);for(int i=0;i<maxbianhao;i++)m_list.DeleteItem(0);maxbianhao=0;m_pRecordset=NULL;m_pConnection=NULL;::CoUninitialize();}}void CClock3Dlg::OnDelSelect() //此函数在单击主界面上的“删除选定”时调用{// TODO: Add your control notification handler code hereint hang=m_list.GetItemCount();CString str;int i=0;bool deled=0;// str.Format("%d",hang);for(i=0;i<hang;i++){if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED ){str.Format(_T("选中了第%d行"), i);//AfxMessageBox(str);deled=1;break;}}if(deled){int j;::CoInitialize(NULL);m_pConnection=NULL;m_pConnection.CreateInstance(__uuidof(Connection));m_pConnection->ConnectionString="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=clock.mdb;";m_pConnection->Open(L"",L"",L"",adCmdUnspecified);m_pRecordset=NULL;CString str_SQL;str_SQL.Format("select * from clocklist");_bstr_t bstrSQL=(LPCTSTR)str_SQL;m_pRecordset=m_pConnection->Execute(bstrSQL,NULL,adCmdText);CString str_time,str_temp;int h,m,s;int bug=12;while(!m_pRecordset->adoEOF){str_time=(char*)(_bstr_t)m_pRecordset->GetCollect("时间");if(m_yue<10)bug--;if(m_ri<10)bug--;str_time=str_time.Mid(bug);AfxExtractSubString(str_temp,str_time,0,':');h=atoi(str_temp);AfxExtractSubString(str_temp,str_time,1,':');m=atoi(str_temp);AfxExtractSubString(str_temp,str_time,2,':');s=atoi(str_temp);if((h==m_h&&(m-m_m>=30||m<=m_m))||m_h>h||m_h<h) {str_SQL.Format("delete * from clocklist where 编号=%d",i+1);_bstr_t bstrSQL=(LPCTSTR)str_SQL;m_pRecordset=m_pConnection->Execute(bstrSQL,NULL,adCmdText);i=i+2;for(j=i;j<=hang;j++){str_SQL.Format("update clocklist set 编号=%d where 编号=%d",j-1,i);_bstr_t bstrSQL=(LPCTSTR)str_SQL;m_pRecordset=m_pConnection->Execute(bstrSQL,NULL,adCmdText);i++;}for(j=0;j<hang;j++)m_list.DeleteItem(0);break;}else MessageBox("时间快到了!不急。

相关文档
最新文档