当前位置:文档之家› vxworks实时多任务程序设计.pdf

vxworks实时多任务程序设计.pdf

vxworks实时多任务程序设计.pdf
vxworks实时多任务程序设计.pdf

万方数据

万方数据

万方数据

万方数据

计算机程序设计(C)综合实践

计算机程序设计(C)综合 实践 设计报告 学院:电子通信与物理学院 设计名称:职工信息管理系统 专业班级:电子信息科学与技术14-2 学生:本良 学号: 201401100211 组号: 140203 指导教师:宋戈 完成时间: 2015年 7月23日

目录 第1部分实训题目与要求 (2) 1. 问题提出 (2) 2. 功能要求 (2) 3. 任务分工 (2) 第2部分设计实训题目功能......................................................................... . (3) 1. 总体设 计...................................................................... (3) 2. 数据结 构...................................................................... (4) 3. 程序设 计...................................................................... (5) 4. 测试与调 试......................................................................

(8) 第3部分实训总结......................................................................... . (12) 1. 个人总 结...................................................................... (12) 2. 结束 语...................................................................... (12) 第4部分参考文献......................................................................... . (13) 《C程序设计综合实践》评分表......................................................................... (14)

测绘程序设计实习报告

测量程序设计实习报告 姓名: XX 班级: XXXX 学号: XXXX 教师评语:

实验名称:使用C#开发环境建立测量程序框架 一、实验的目的与任务: (1)学会用C#窗体程序开发环境建立应用程序框架方法 (2)学会使用常见的Windows控件 (3)根据自身需要设计一个测量程序界面 二、实验的过程与步骤: 1、首先打开visual studio 2010,选择文件→新建→项目。在弹出的对话框中右栏一侧选择windows窗体应用。选择文件存放地址,输入项目名称,点击确定,完成。 2、拖动menuSctrip控件到主窗体,并且键入“文件”、“工具”两个选项,在“文件”下添加一个“打开”选项;在“工具”下添加“近似平差计算”、“高斯消元”两个选项。 3、选择项目→添加windows窗体,输入窗体名称“CLSJ”,点击确定。

4、在CLSJ窗体中拖入SplitContainer控件,将窗体分为左右两部分,调整大小。在拖入一个“TabControl”,新建选项卡。最后,加入“Button”、“TextBox”、“Label”控件。 5、用相同的方法,新建一个名为高斯消元的窗体,然后按照需要进行设计。 三、程序运行效果 四、本实验心得体会

这是第一次接触这种可视化开发编程,刚开始不是很熟悉,对于编程语言来说,在掌握一定语法之后,要多用,多结合实际进行一些简单编程,这样才能提高对一种编程语言的理解。 实验名称:导线计算程序设计及粗差探测 一、实验的目的与任务: (1) 掌握方位角计算的程序设计方法 (2) 掌握符合导线、闭合导线、支导线计算的程序设计方法 (3) 理解粗差探测的程序设计方法 二、实验的设计与开发步骤: 1、考虑到在测量时所用的角度均为度分秒,而在c#计算时只是别度分秒,因此先设计两个函数,可以将度分秒和弧度制进行转化。 2、其次先写一个point 类,包含x ,y 两个成员变量,然后在设计一个方位角函数,用两个point 类当作形参传递进去,根据方位角计算公式παk x y +??=arctan ,(根据象限角和方位角关系对k 进行调节)应该分为四种情况,但是考虑到分母不为0,因此应该在加一种情况,即导线与y 轴重合。 3、然后根据边长,根据方位角,公式 ααsin *cos *1212l y y l x x +=+=进行坐标推算。

D2_《C/C 语言程序设计》计算机实践_题目列表

要求:所有程序至少由二个函数完成 A类-简单题 A1:设计一个菜单程序,选择数字键1~3分别在屏幕中间输出正三角形、菱形和空心的平行四边形,选择数字4结束操作并回到操作系统状态。 A3:从键盘上输入三个矩阵,输出三个矩阵主对角线的和及乘积。 A4:字符左右排序 要求编制函数jsSort(),以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组中。 排序条件:将字符串从中间一分为二,左边部分按字符的ASCII码升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参与处理,仍放在原位置上。 例如,原字符串: dcbahgfe 432198765 则处理后字符串: hgfe abcd 876591234 A5:简单的文件操作 编程完成读出文件 sfile.txt 中的内容,反序写入另一个文件 dfile.txt 中去。 A6:有一个一维数组,内放10个学生成绩,输出各分数段人数、平均分、最高分和最低分,保留小数点后一位。 A7:编写程序求出555555的约数中最大的三位数是多少。 A8:编写程序,实现比较两个分数的大小。 比较方法是:先比较两个数的分母,分母相同比较分子;否则通分后比较。 A9:求这样一个三位数,该三位数等于其每位数字的阶乘之和。 A10:求兔子问题。第1年有1对兔子,每对兔子从出生后第3个年起,就可每年生1对兔子,兔子的寿命是6年,问第n年有多少对兔子? A11:用C实现时钟程序。 A12:有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人多少岁,他说比第3个人大2岁。问第3个人多少岁,他说比第2个人大2岁。问第2个人多少岁,他说比第1个人大2岁。问第1个人多少岁,他说是10岁。请问第5个人多大? A13.用指针编写字符串函数strcpy,strcmp,strcat,strlen。并编写程序加以验证。 A14:给定某个年、月、日,计算出这一天为该年的第几天。要求写出计算闰年的函数和计算日期的函数。

C程序设计实践报告

C程序设计实践报告文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

课程实践报告 设计题目: 程序设计(VC++)实践 设计时间2013-1- 至2013-1- 学院(系): 计算机科学与工程学院 2013年1月 一.实践任务 选择题目,创新性题目可只选择1 题,仅选提高题应不少于3 题,仅选基础题应不少于6 题,也可组合选题,还可自行选择感兴趣的题目(须经指导老师审定)。对于提高题、创新题及游戏题可组成团队开发,但应制定详细的项目分工说明。二.实验步骤及记录(题目,源程序代码及运行结果) 1.与学号对应的题(必做题):基础题 12 题目: 建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串不 等长)。例如将字符串“abcde”交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。 具体要求如下: (1)私有数据成员 char str1[60] :存放被插入的字符串。 char str2[40] :存放待插入的字符串。 char str3[100] :存放插入后的字符串。 (2)公有成员函数 STRING (char *s1, char *s2 ):构造函数,用s1 和s2 初始化str1 和str2。

void process():将str2 中的字符串插入到str1 中,存放到str3 中。void print():输出插入后的字符串。 (3)在主程序中定义STRING 类的对象test 对该类进行测试。 源程序代码: #include<> #include<> class STRING{ char str1[60]; char str2[40]; char str3[100]; public: STRING(char *s1,char *s2){ strcpy(str1,s1); strcpy(str2,s2); } void process(){ char *p1=str1,*p2=str2; for(int i=0;*p2;i=i+2){ for(int k=strlen(str1);k>=i;k--){ str1[k+1]=str1[k]; } *p1=*p2; p1=p1+2;

可视化程序设计实践报告

%%%%大学 可视化程序设计实践 2013 年 7月 26日 目录

1 设计目的 (1) 2 需求分析 (1) 2.1 用户 (1) 2.2 主要功能 (1) 2.3 基本流程 (1) 首先建立一个首页,在首页上链接了4个主页,分别是旅游指南,畅游中国,欧洲之旅以及浪漫之旅。而在每个子页里面我又链接了一个或几个子页,分别详述了中国的几大特色景区以及欧洲的著名的美景,还有被称为浪漫圣地的几座“小岛”。 (1) 3 网站开发过程 (2) 3.1 主页面的设计 (2) 3.2 子页面设计 (3) 4 心得体会 (6) 5 参考文献 (6)

1 设计目的 本课程的设计目的是通过设计一个简单、美观、符合实际的网页页面,能够较全面地理解、掌握和综合运用所学的知识,理解并初步掌握运用Dreamweaver可视化开发工具进行网页开发的方法;了解网页设计制作过程。通过设计达到掌握网页设计、制作的技巧。了解和熟悉网页设计的基础知识和实现技巧。根据题目的要求,给出网页设计方案,利用合适图文素材设计制作符合要求的网页设计作品。熟练掌握Dreamweaver软件的的操作和应用。增强动手实践能力,进一步加强自身综合素质。我本次主要是设计的是一个“乐我旅途”为主题的旅游网页,对各大著名的旅游景点做了介绍。 2 需求分析 2.1 用户 网站的主要浏览者是主要准备旅游的观光者。 2.2 主要功能 建立乐我旅途网站可以用精美的画面向旅游者展示每个景点的大概信息。通过建设网站宣传,提高知名度,吸引更多的旅游观光者来。除此之外,也是希望通过本人建立的网站,可以让更多人了解各个旅游地点的风光以及特色,以此来促进旅游的更好更快发展。 2.3 基本流程 首先建立一个首页,在首页上链接了4个主页,分别是旅游指南,畅游中国,欧洲之旅以及浪漫之旅。而在每个子页里面我又链接了一个或几个子页,分别详述了中国的几大特色景区以及欧洲的著名的美景,还有被称为浪漫圣地的几座“小岛”。

《面向过程程序设计实践》课题资料.doc

任务 18 课题名称 某航空公司飞机购票模拟系统(服务器端) 课题内容 文件信息: 航线信息:航线编码、起点、终点、公里数、飞行时间。 航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。 售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s 以顺序存储结构设计程序能实现以下航空公司服务器端功能: (1)航线的维护(创建、修改、删除(不能删除已出票、售完航班)(2)航班的维护(创建、修改、删除(不能删除已出票、售完航班))。 ))。 (3)显示航班列表。 (4)显示指定航班的售票情况(明细和统计值)。 (5)显示各航班的销售情况。 int hbId; int userId; char userName[NUMBER]; char buytime[NUMBER]; 任务 19 课题名称 某航空公司飞机购票模拟系统(客户端) 课题内容 航班文件信息: 航线信息:航线编码、起点、终点、公里数、飞行时间。 航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。 售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s )。 以链式存储结构设计程序能实现以下顾客端功能: (1)搜索指定航线、指定时间段的航班 (2)购票 (3)退票 (4)输入顾客 ID ,显示顾客的购票信息

主菜单 /****************************************/ /* 模块名称: Menu.c 功能描述:实现菜单功能*/ #include "stdio.h"/* 输入输出函数的头文件 */ #include "shoupiao.c" #include "hangban.c" #include "hangxian.c" void menu(); /* 菜单 */ // 航班 void init_hb(hbnum *hb);// 初始化列表 void create_hb(hbnum *hb);// 从文件中加载数据 void append_hb(hbnum *hb, hbinfo x);/* 添加数据 */ void display_hb(hbnum hb);/* 输出航班信息表 */ void display_xs(hbnum hb);/* 输出航班销售信息表 */ hbinfo search_hb(hbnum hb, int id);// 根据 id 查找航班的售票情况hbnum update_hb(hbnum hb,hbinfo x);// 根据 id 修改航班信息 void dele_hb(hbnum *hb, int id);// 删除航班信息 void InsertSort_hb(hbnum *r);// 排序 void save_hb(hbnum *hb);// 将数据保存到文件中 // 航线 void init_hx(hxnum *hx);// 初始化列表 void create_hx(hxnum *hx);// 从文件中加载数据 void append_hx(hxnum *hx, hxinfo x);/* 添加数据 */ void display_hx(hxnum hx);/* 输出航班信息表 */ hxinfo search_hx(hxnum hx, int id);// 根据 id 查找航班的售票情况hxnum update_hx(hxnum hb,hxinfo x);// 根据 id 修改航线信息 void dele_hx(hxnum *hx, int id);// 删除航班信息 void InsertSort_hx(hxnum *r);// 排序 void save_hx(hxnum *hx);// 将数据保存到文件中 // 售票 void init_sp(spnum *sp);// 初始化列表 void create_sp(spnum *sp);// 从文件中加载数据 void append_sp(spnum *sp, spinfo x);/* 添加数据 */ void display_sp(spnum sp);/* 输出航班信息表 */ spinfo search_sp(spnum sp, int id);// 根据 id 查找航班的售票情况void search_mx(spnum sp, int id); int search_tj(spnum sp, int id); void dele_sp(spnum *sp, int id);// 删除航班信息 void InsertSort_sp(spnum *r);// 排序 void save_sp(spnum *sp);// 将数据保存到文件中 /* 主函数 */ main(){ hbnum hb;

Windows程序设计实践报告

~ Windows程序设计 实践报告 ; BY:08级空间信息与数字技术 60020 马腾

目录 任务一:Windows消息循环机制及API程序设计实践 (3) 一、实践目的 (3) 二、任务概述 (3) 三、windows消息循环 (3) 四、学习收获 (3) 任务二:基于MFC的对话框程序设计 (4) 一、任务概述 (4) 二、MFC消息映射 (4) 三、计算器程序的设计思路 (4) 四、遇到困难及解决 (5) 五、关键代码 (5) 六、运行情况 (6) 七、收获 (6) 任务三:基于MFC的单文档绘图程序设计 (7) 一、任务概述 (7) 二、模块设计及封装 (7) 三、设计的优点 (8) 四、程序风格 (8) 五、运行情况 (8) 六、使用方式 (9) 七、困难及解决 (12)

任务一:Windows消息循环机制及API程序设计实践 一、实践目的 通过实践充分理解Windows的消息循环机制,了解Windows的API函数族的分类及大致功能,并在此基础上了解基本Windows API方式开发的窗口程序的基本过程。任何框架开发环境归根结底都是对Windows API函数的封装与调用。在利用一个框架环境开发Windows程序的过程中,应该明白所使用的框架模块调用了Windows API中的那些功能函数。 二、任务概述 用visual C++开发一个Win32窗口程序,并实现如下功能: 实现菜单功能; 点击某两个菜单可在主窗口中显示或清除文字(文字内容不做要求); 点击某个菜单可弹出一个自定义的对话框(对话框中的元素不做要求), 单击对话框中的“确定”或“取消”按钮,可结束对话框。 三、windows消息循环 Windows多进程的窗口图形操作系统与DOS操作系统最大的区别就是:DOS 采用顺序执行的过程,而Windows采用事件的消息驱动。 用户进行的鼠标操作,键盘输入等操作和各个应用程序之间,应用程序和系统之间的操作都作为一个事件,产生消息,进入到指定的消息队列中,等待取出进行处理。这打破了顺序执行,而采用事件驱动的形式。 四、学习收获 1.了解了Windows的消息循环机制 2.了解了一个窗口程序的生存的始末,从窗口类的定义,注册窗口类,创建窗口,到程序运行的消息循环的主函数。 3.了解了句柄的概念,每个菜单项,窗口都有一个句柄作为自己的标示,作为消息的一部分,告诉系统处理哪个窗口,菜单项的消息。 4.了解了一些简单的API:CheckMenuItem,DialogBox等。 5.了解了消息分类,处理消息的函数里,将消息分为了WM_COMMAND、WM_PAINT

程序设计实践

程序设计实践-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

苏州科技学院 二○一四~二○一五学年第二学期电子与信息工程学院课程设计报告书 课程名称: 班级: 学号: 姓名: 指导教师: 二○一五年三月

1.题目 小型图书信息管理系统 2.功能 1、信息录入,包括记录的追加和插入; 2、信息删除; 3、信息修改; 4、信息排序和查询; 5、信息的保存和装载; 6、简单的帮助。 3.要求 (1)整个系统均用C语言实现; (2)利用指针、链表来实现图书馆的数据结构设计; (3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能; (4)系统的各个功能模块都用函数的形式来实现; (5)可以将图书信息保存在文件中。 (6)可以将图书信息从文件中读取出来。 4.设计内容 整个系统除了主函数外,另外还有6个函数,实现八大功能:输入功能,查找功能,插入功能,保存功能,删除功能,读取功能。各个函数的详细设计说明分别如下: 主函数 main() 利用无限次循环for(;;)实现各函数的调用,系统根据输入的数字选项来调用相应的函数。 初始化函数 book *create() 这是一个无参函数,它的作用是使链表初始化,使head的值为NULL。 输入函数 Insert(book *head) 这是一个无参函数,用来执行图书信息的输入。 算法:先声明一个首节点head,并将head->next设为NULL。每输入一个数据就声明一个新节点p,把p->next设为NULL,并且链接到之前列表的尾端。 N-S

修改函数 change(book *head) 用于修改图书信息。 算法:输入需修改图书的书名,判断是否有本书,若有,再进行修改。 N-S 显示记录函数 void Print(book *head) 这是一个不返回值的有参函数,将记录的输出。 算法:先将p结点的指针指向第一个结点,将p结点的数据输出,再将p结点的指针指向下一结点,将下一结点的数据输出。重复执行此步聚直到p指针指向NULL为止。 N-S 查找记录函数 void search(book *head) 这是一个不返回值的有参函数,形参为“链表头的指针”,实现按书名对某书进行查找,并显示所查找到的记录。 算法:采用线性查找法往下一个节点查找。输入所要查找的图书的名称,设一个指针变量p,先指向第一个结点,当strcmp(p->name,name1) && p != NULL 时,使p后移一个结点,如果p!=NULL,输出p所指的结点。 N-S

并行程序设计开题

并行程序设计开题报告 院系:信息技术科学学院 成员:王亚光2120100319 田金凤1120100119 题目:串匹配算法KPM和矩阵运算的并行算法实现与分析

1.文献综述 1.1消息传递并行程序设计(MPI)介绍 (1)M assage P assing I nterface:是消息传递函数库的标准规范,由MPI论坛开发,支持Fortran和C (2)一种新的库描述,不是一种语言。共有上百个函数调用接口,在Fortran 和C语言中可以直接对这些函数进行调用 (3)MPI是一种标准或规范的代表,而不是特指某一个对它的具体实 (4)MPI是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准 (5)指用户必须通过显式地发送和接收消息来实现处理机间的数据交换。 (6)在这种并行编程中,每个并行进程均有自己独立的地址空间,相互之间访问不能直接进行,必须通过显式的消息传递来实现。 (7)这种编程方式是大规模并行处理机(MPP)和机群(Cluster)采用的主要编程方式。 (8)并行计算粒度大,特别适合于大规模可扩展并行算法,由于消息传递程序设计要求用户很好地分解问题,组织不同进程间的数据交换,并行计算粒度大,特别适合于大规模可扩展并行算法。 (9)消息传递是当前并行计算领域的一个非常重要的并行程序设计方式。 (10)高可移植性。MPI已在IBM PC机上、MS Windows上、所有主要的Unix 工作站上和所有主流的并行机上得到实现。使用MPI作消息传递的C或Fortran 并行程序可不加改变地运行在IBM PC、MS Windows、Unix工作站、以及各种并行机上。 1.2串匹配算法 以字符序列形式出现而且不能将这些字符分成互相独立的关键字的一种数据称之为字符串(Strings)。字符串十分重要、常用的一种操作是串匹配(String Matching)。串匹配分为字符串精确匹配(Exact String Matching)和字符串近似匹配(Approximate String Matching)两大类。字符串匹配技术在正文编辑、文本压缩、数据加密、数据挖掘、图像处理、模式识别、Internet信息搜索、网络入侵检测、网络远程教学、电子商务、生物信息学、计算音乐等领域具有广泛的应用。而且串匹配是这些应用中最好时的核心问题,好的串匹配算法能显著的提高应用的效率。因此研究并设计快速的串匹配算法具有重要的理论价值和实际意义。 串匹配问题实际上就是一种模式匹配问题,即在给定的文本串中找出与模式串匹配的子串的起始位置。本文对已有的基于分布存储系统上的并行的串匹配算法(KMP)进行了分析和实现,并与串行的算法进行了比较。KMP算法首先是由D.E. Knuth、J.H. Morris以及V.R. Pratt分别设计出来的,所以该算法被命名为KMP算法。KMP串匹配算法的基本思想是:对给出的文本串T[1,n]与模式串P[1,m],假设在模式匹配的进程中,执行T[i]和P[j]的匹配检查。若T[i]=P[j],则继续检查T[i+1]和P[j+1]是否匹配。若T[i]≠P[j],则分成两种情况:若j=1,则模式串右移一位,检查T[i+1]和P[1]是否匹配;若1

程序设计实践报告模板

面向对象程序设计实践(Project 2) 报告 题目: 专业软件工程(NIIT) 学生姓名 班级学号 指导教师杨健 指导单位计算机学院/软件学院 日期

评分细则 评分项优秀良好中等差遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简短 评语教师签名: 年月日 评 分 等 级 备 注 评分等级有五种:优秀、良好、中等、及格、不及格

Title(Here,please write the name of your Project) (题目格式:宋体,3号,加粗,居中对齐) 一、D escription and Requirement(格式:Times New Roman,4号,加粗, 两端对齐) (正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 二、Requirement Analysis(格式:Times New Roman,4号,加粗,两端对齐) 在该部分中叙述系统的功能,由此得到相应的模块,并分析需要什么的数据,由此可以指导数据库的设计。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距) 三、High level design(格式:Times New Roman,4号,加粗,两端对齐) 在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型声明),数据库设计的说明(给出数据库的结构,包括有哪些表,每个表有什么字段,分别存储什么样的数据) (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 四、Low level design格式:Times New Roman,4号,加粗,两端对齐) 各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 注意:不要粘贴全部程序,只要把关键算法的程序粘贴过来就可以了。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 五、Tested data and result analysis(格式:Times New Roman,4号,加粗,

程序设计实践的题目和样例

1.Alice喜欢n位数,Bob喜欢能被m整除的数,请问被Alice和Bob都喜欢的数有多少个? 输入:第一行是一个整数K(K<= 10000),表示样例的个数 每一个样例是一行,两个整数n(1<=n<=18),m(2<=m<=1000000) 输出:每行输出一个样例的结果。 样例输入:4 样例输出 5 1 2 450 3 2 300 3 3 0 3 10000 2.给一个字符串,请判断字符串是否出现了所有的英文字母(不分大小写)。 输入:每行一个只含英文字母的字符串,长度不超过1000. 输出:每行输出一个样例的结果,如果出现了所有的字符串,输出“Yes”,否则输出“No”(不要引号)。 样例输入: ProgrammingPratice TheQuickBrownFoxJumpsOverLazyDog 输出:No Yes 提示:巨大输入量,请使用C风格的输入。 3.给你n个数,祛除其中的重复的数,并保持第一次出现的数原有的相对顺序。 比如{3, 2, 2, 3, 1},那么祛除重复元素以后为{3,2,1}。 输入:每一行是一个整数K, K表示样例的个数,不超过100; 每个样例的第一行是一个整数n(1<=n<=10000)表示数的个数;第二行是n个正整数,其值不超过10^9. 输出:每行输出一个样例的结果,每个整数之间用一个空格隔开; 样例输入:输出: 2 3 2 1 5 1 2 3 3 2 2 3 1 3 1 2 3 提示:巨大的输入输出,请使用C风格,避免超时 4、小明很喜欢钓鱼,现在有n个池塘可以钓鱼,第i个池塘首次内能钓到ai条鱼,第i个池塘如果被钓过k次,那么每次下一次能钓到的鱼的数目为max{0,ai - k * bi},现在小明能钓m次鱼,请问他最多能钓到多少条鱼? 输入:第一行是一个整数T(1<=T<=100),表示样例个数,每个样例第一行是n(1<=n<=1000), m(1<=m<=100000); 以后的n行,每行是ai(1<=ai<=10000),bi(0<=bi<=100) 输出:每行输出一个样例结果

c语言程序设计实践报告

中南大学 C语言程序设计实践报告 题目通讯录程序设计 学生姓名 指导教师 学院 专业班级 完成时间

一、任务描述 通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。 实现功能:(1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能 二、算法描述 设计一个实用的的小型通讯录程序必须具备系统以菜单方式工作、信息录入、信息浏览、信息查询、信息修改、系统退出功能,那么就需要这样的函数来实现。因此,我需要自定义这样的函数来解决问题,当然还会调用库函数。在定义函数的过程中会用到选择结构、循环结构等基本语句,以及对结构体数组的定义等。 三、程序设计 /******头文件(.h)***********/ #include "stdio.h" /*I/O函数*/ #include "stdlib.h" /*标准库函数*/ #include "string.h"/*字符串函数*/ #include "ctype.h" /*字符操作函数*/ #define M 50 /*定义常数表示记录数*/ typedef struct /*定义数据结构*/ { char NAME[20]; /*姓名*/ char EMAIL[30]; /*邮箱*/

char TELE1[10]; /*电话*/ char TELE2[10]; /*电话*/ char HOMETOWN[30]; /*籍贯*/ }DATA; /******以下是函数原型*******/ int enter(DATA t[]); /*输入记录*/ int add(DATA t[],int n); /*添加记录*/ int change(DATA t[],int n); /*修改记录*/ int deleter(DATA t[],int n); /*删除记录*/ void list(DATA t[],int n); /*显示记录*/ void search(DATA t[],int n); /*按姓名查找显示记录*/ void qseek(DATA t[],int n); /*快速查找记录*/ void print(DATA temp); /*显示单条记录*/ int find(DATA t[],int n,char *s) ; /*查找函数*/ int menu_select(); /*主菜单函数*/ /******主函数开始*******/ main() { int i; DATA d[M]; /*定义结构体数组*/ int length; /*保存记录长度*/ system("cls"); for(;;)/*无限循环*/ { switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { case 1:length=enter(d);break;/*输入记录*/ case 2:length=add(d,length); break; /*添加记录*/ case 3:length=deleter(d,length);break; /*删除记录*/ case 4:list(d,length);break; /*显示全部记录*/

程序设计实践课题

程序设计实践课题 ?课题要求: 每位同学选择以下4个课题中的任一课题独立完成,最后根据课题完成情况给出最终成绩。 程序设计要求: (1)采用面向对象程序设计思想。 (2)采用模块化程序设计。 (3)必须上机调试通过,生成可执行文件。 (4)程序代码必须具有可读性,关键性算法或者代码必须要有注释。 ?课程最后提交: 1、课程设计报告1份; 2、程序源代码1份。 ?最后评定: 1、按优、良、中、及格、不及格五个等级评定成绩。 2、根据学生日常纪律、源程序及运行结果、文档、答辩情况综合评定课程设计成绩。 3、程序雷同者,视情况扣分或记零分。 ?课题内容: 一、班级成绩管理 1、程序说明 该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。2、程序设计要求 (1)一个班级有N个学生,每个学生有M门课,每门课程有相应的成绩。(2)设置系统登陆密码,只有正确输入密码方可进入管理系统。 (3)成绩显示时,如果输入学号,则显示该学号学生的所有成绩,包括平均分;如果输入0,则显示所有学生的成绩,包括每个学生的平均分。 (4)根据学号和课程号修改成绩时,要求先输入密码,如果密码正确方可修改成绩,否则不予操作;在修改之前需要用户进一步确认,确认无误后再进行操

作。 (5)系统主菜单: a、密码重置 b、成绩录入 c、成绩显示 d、根据学号和课程号修改成绩 e、根据课程号统计平均分 f、根据班级号显示该班每位学生的平均分(按平均分从高到低排序) g、退出系统 (6)执行一个具体的功能之后,程序将重新显示菜单。 二、电话薄 1、程序说明 该程序是一个电话薄管理小程序。具有加入、删除、显示和查询联系人电话号码的功能。 2、程序设计要求 (1)在修改或删除之前需要用户进一步确认,确认无误后再进行操作。 (2)根据姓名首字母查询电话簿数据,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示。 (3)系统主菜单: a、添加电话薄记录 b、显示电话薄内容 c、根据姓名查询电话薄数据 d、根据姓名首字母查询电话簿数据 e、根据姓名修改电话薄数据 f、根据姓名删除电话薄数据 g、退出系统 (4)执行一个具体的功能之后,程序将重新显示菜单。 三、个人财政管理 1、程序说明 管理您的财政支出。

程序设计基础实践报告

福建师范大学闽南科技学 院 程序设计基础实践报告 题目职工工资信息管理系统 学生姓名陈显泽 学院信息科学与工程学院 专业班级土木工程1班 完成时间 2017.4.20 指导教师褚若波

目录 一、课程设计目的和要求................................... 二、课程设计基本内容.................................... 三、程序功能简介........................................ 四、主体内容............................................ 4.1 设计分析...................................... 4.2 程序结构...................................... 4.3 模块的功能及程序说明.......................... 4.4 相关模块源程序................................ 4.5 操作方法(流程)................................ 4.6 试验结果(包括输入数据和输出结果)............. 4.7 设计体会...................................... 4.8 参考文献...................................... 五、用户使用说明........................................ 六、对本设计过程及方法、手段的改进建议..................

《数据结构》程序设计实习题目

《数据结构》程序设计实习题目 1. 分别以顺序表和单链表作为存储结构,实现将线性表就地逆置的操作。(所谓“就地逆置”是指辅 助空间为0(1),即利用原表中的结点空间)。 2. 写一程序将单链表中值重复的结点删除,使得表中各结点值均不相同。 3. 已知一单链表中含有两类字符的数据元素(如:字母、数字),试编写程序将该单链表分成两个单链 表,使得每个链表中只含有同一类的字符。 4. 假设有两个按元素值递增有序的单链表A和B,试编写程序将A和B归并成一个按元素值递减有序的 单链表。 5. 利用线性结构(顺序表或链表)实现两个20位大整数的加法运算。 6. 已知两个以顺序结构存储的线性表A和B,试编写程序实现从A表中删除包含在B表中的元素。 7. 已知两个单链表A和B,试编写程序实现从A表中删除包含在B表中的元素。 8. 已知两个以顺序结构存储的线性表A和B,试编写程序实现:将在B表中但不在A表中的元素插入到 A表。 9. 已知两个单链表A和B,试编写程序实现:将在B表中但不在A表中的元素插入到A表。 10. 试编写程序,对任意输入的一个算术表达式,将式中的数字和运算符分成两类(一类是数字,一类是 运算符),并按逆序输出。(提示:利用栈来实现) 11. 利用栈结构,编写一个程序,对以逆波兰式表示的表达式求值。 12. 编写程序,求得所有包含在串S中而不包含在串T中的字符(S中重复的字符只选一个)构成的新串 R。 13. 编写程序,求任意输入的串S中所含不同字符的总数和每种字符的个数。 14. 一个文本串可用事先给定的字母映射表进行加密。例如:设字母映射表为: abcdefghijkl mn opqrstuvwxyz n g z q t c o b m u hel kpdawxfyi v r s j 则字符串“ encrypt ”被加密为“ tkzwsdf ”。试写一程序将输入的文本串进行加密后输出。 15. 假设两个10 X 10的稀疏矩阵A和B以三元组表的方式存储,试编写程序实现矩阵的相加运算,其结 果存放在三元组表C中。 16. 对给定的整数序列,建立一棵二叉排序树,并按中序遍历输出树中结点。 17. 编写按层次顺序(同一层自左至右)遍历二叉树的算法。 18. 编写一算法,计算二叉树中叶子结点的数目。

程序设计综合实践报告

程序设计综合实践报告 数学与系统科学学院 2015年11月6日

目录 1. 概述 (1) 2. 相关技术 (1) 2.1 数据链表 (1) 2.2 双缓冲 (1) 3. 总体设计与详细设计 (2) 3.1 系统模块划分 (2) 3.2 主要功能模块 (2) 4. 编码实现 (12) 5. 实训中遇到的主要问题及解决方法 (20) 6. 实训体会 (20)

1. 概述 项目:飞机大战 主要功能:本款基于MFC平台所制作的游戏,具有极大的休闲娱乐功能。玩家通过操纵我机,通过发射子弹机会敌机来积分,分数越高说明了玩家坚持的越长。游戏开始界面向玩家进行了游戏按键的功能说明,游戏中设置暂停按键,可以方便玩家继续游戏。游戏还自带无敌模式,以及我机大招,极大地提高了游戏的可玩性。 2. 相关技术 本程序主要运用了链表和双缓冲的技术。链表的应用方便了对数据成员的访问和处理,简化了代码,支持插入和移除表中任意位置上的节点;双缓冲主要用于图像的处理,在内存中重新绘图后复制到前台,同时禁止背景刷新,避免因图像刷新过于频繁导致画面出现闪烁现象。 2.1 数据链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。使用链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。由于常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换,因此链表最大的优点是允许插入和移除表上任意位置上的节点。 在程序运行过程中,根据游戏对象的种类划分不同的链表,每个链表单一的存储一类数据,在进行处理、绘图时,通过对链表的遍历,实现对数据的访问,再根据所要实现的功能,对不同的对象做出不同的处理,对数据成员的插入和移除也变得轻松了许多。 2.2 双缓冲 在图形图象处理编程过程中,双缓冲是一种基本的技术。窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新会引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明显。于是我们就看到了闪烁现象。

C++程序设计实践报告

课程实践报告 设计题目: 程序设计(VC++)实践 设计时间2013-1- 至2013-1- 学院(系): 计算机科学与工程学院 2013年1月

一.实践任务 选择题目,创新性题目可只选择1 题,仅选提高题应不少于3 题,仅选基础题应不少于6 题,也可组合选题,还可自行选择感兴趣的题目(须经指导老师审定)。对于提高题、创新题及游戏题可组成团队开发,但应制定详细的项目分工说明。 二.实验步骤及记录(题目,源程序代码及运行结果) 1.与学号对应的题(必做题):基础题 12 题目: 建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串不 等长)。例如将字符串“abcde”交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。 具体要求如下: (1)私有数据成员 char str1[60] :存放被插入的字符串。 char str2[40] :存放待插入的字符串。 char str3[100] :存放插入后的字符串。 (2)公有成员函数 STRING (char *s1, char *s2 ):构造函数,用s1 和s2 初始化str1 和str2。 void process():将str2 中的字符串插入到str1 中,存放到str3 中。 void print():输出插入后的字符串。 (3)在主程序中定义STRING 类的对象test 对该类进行测试。 源程序代码: #include #include class STRING{ char str1[60]; char str2[40]; char str3[100]; public: STRING(char *s1,char *s2){ strcpy(str1,s1); strcpy(str2,s2); } void process(){ char *p1=str1,*p2=str2; for(int i=0;*p2;i=i+2){ for(int k=strlen(str1);k>=i;k--){ str1[k+1]=str1[k]; } *p1=*p2; p1=p1+2;

相关主题
文本预览
相关文档 最新文档