c++分数类基本操作

c++分数类基本操作
c++分数类基本操作

//编程:建立一个分数类。分数类的数据成员包括分子和分母,操作包括约分、通分、加、减、乘、除、求倒数、比较、显示和输入。

#include

using namespace std;

class fraction{

int above; //分子

int below; //分母

void reduction(); //约分

void makecommond(fraction &); //通分

public:

fraction(int=0,int=1);

fraction add(fraction);

fraction sub(fraction);

fraction mul(fraction);

fraction div(fraction);

fraction reciprocal(); //求倒数

bool equal(fraction); //等于运算

bool greaterthan(fraction); //大于运算

bool lessthan(fraction); //小于运算

void display(); //显示

void input(); //输入

};

fraction::fraction(int i,int j){

above=i,below=j;

}

void fraction::reduction(){ // 约分

int a,b,t;

if(below<0&&above>0)

above=-above,below=-below;

a=abs(above),b=abs(below),t=a%b;

while(t){

a=b,b=t,t=a%b;

}

above/=b,below/=b;

}

void fraction::makecommond(fraction &a){ // 通分

int t;

reduction();

a.reduction();

above*=a.below,a.above*=below,t=below*a.below;

below=a.below=t;

}

fraction fraction::add(fraction a){ // 加法fraction t;

makecommond(a);

t.above=above+a.above;

t.below=below;

t.reduction();

return t;

}

fraction fraction::sub(fraction a){ // 减法fraction t;

makecommond(a);

t.above=above-a.above;

t.below=below;

t.reduction();

return t;

}

fraction fraction::mul(fraction a){ // 乘法fraction t;

makecommond(a);

t.above=above*a.above;

t.below=below*below;

t.reduction();

return t;

}

fraction fraction::div(fraction a){ // 除法fraction t;

makecommond(a);

t.above=above*a.below;

t.below=below*a.above;

t.reduction();

return t;

}

fraction fraction::reciprocal(){ //取倒数fraction t;

t.above=below,t.below=above;

return t;

}

bool fraction::equal(fraction a){ //等于

makecommond(a);

return above==a.above;

}

bool fraction::greaterthan(fraction a){ //大于makecommond(a);

return above>a.above;

}

bool fraction::lessthan(fraction a){ //小于

makecommond(a);

return above

}

void fraction::display(){ // 输出

reduction();

cout<

}

void fraction::input(){ //输入

cin>>above>>below;

if(below==0)

{

cout<<"输入错误!分母不能为零!"<

exit(1);

}

}

int main(){

fraction f1,f2,f3,f4;

cout<<"input f1(分子分母):";

f1.input();

cout<<"input f2(分子分母):";

f2.input();

f3=f1.add(f2);

cout<<"f3=f1+f2=";

f3.display();

f3=f1.sub(f2);

cout<<"f3=f1-f2=";

f3.display();

f3=f1.mul(f2);

cout<<"f3=f1*f2=";

f3.display();

f3=f1.div(f2);

cout<<"f3=f1/f2=";

f3.display();

f4=f3.reciprocal();

cout<<"f4=1/f3=";

f4.display();

if(f1.equal(f2))

cout<<"f1=f2"<

if(f1.greaterthan(f2))

cout<<"f1>f2"<

if(f1.lessthan(f2))

cout<<"f1

return 0;

}

邻接表表示的图的基本操作的实现

邻接表表示的图的基本操作的实现 //采用邻接表完成无权无向及有向图的"建立、输出、深度遍历、广度遍历"操作 #include #include #define OK 1 #define ERROR -1 typedef int Status; typedef int ElemType; //此例中设元素为单值元素,类型为整型 #define MAX_VERTEX_NUM 20 //最大顶点个数 typedef int ElemType; //图顶点数据类型 typedef int QueueElemType;//队列结点数据类型 //链表结点类型定义 typedef struct Qnode { QueueElemType data; struct Qnode *next; }QNode; //队列类型定义: typedef struct Linkqueue { QNode *front,*rear; }LinkQueue; //图的数据类型定义 typedef struct Tablenode//表结点结构 { int adjVex;//邻接点域,存放与vi相邻接的顶点vj的序号j struct Tablenode *next;//指针域,将邻接表的所有表结点链在一起 float weight;//对于带权图,表示权值,对于无权图则可省略此数据域 }TableNode;

typedef struct Headnode//头结点结构 { ElemType vertex;//顶点域vertex,存放顶点vi的信息 struct Tablenode *firstEdge;//vi的邻接表的头指针 }HeadNode; typedef struct Mgraph { struct Headnode vector[MAX_VERTEX_NUM]; //顶点向量 int vexnum; //图中当前顶点数 } MGraph; //队列初始化 Status InitLinkQueue(LinkQueue *Q) { QNode *p; p=(QNode*)malloc(sizeof(QNode));//开辟头结点空间 if(p!=NULL) { p->next=NULL; Q->front=Q->rear=p; return OK; } else return ERROR; } //链式队列的入队操作,在已知队列的队尾插入一个元素e,修改队尾指针rear。 Status InsertLinkQueue(LinkQueue *Q,ElemType e) { QNode *p;

实验二 链表操作实现

实验二链表操作实现 实验日期: 2017 年 3 月 16 日 实验目的及要求 1. 熟练掌握线性表的基本操作在链式存储上的实现; 2. 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点; 3. 掌握线性表的链式存储结构的定义和基本操作的实现; 4. 通过本实验加深对C语言的使用(特别是函数的参数调用、指针类型的应用)。 实验容 已知程序文件linklist.cpp已给出学生身高信息链表的类型定义和基本运算函数定义。 (1)链表类型定义 typedef struct { int xh; /*学号*/ float sg; /*身高*/ int sex; /*性别,0为男生,1为女生*/ } datatype; typedef struct node{ datatype data; /*数据域*/ struct node *next; /*指针域*/ } LinkNode, *LinkList; (2)带头结点的单链表的基本运算函数原型 LinkList initList();/*置一个空表(带头结点)*/ void createList_1(LinkList head);/*创建单链表*/ void createList_2(LinkList head);/* 创建单链表*/ void sort_xh(LinkList head);/*单链表排序*/ void reverse(LinkList head);/*对单链表进行结点倒置*/ void Error(char *s);/*自定义错误处理函数*/ void pntList(LinkList head);/*打印单链表*/ void save(LinkList head,char strname[]);/*保存单链表到文件*/

大学生计算机作业

“没有任何借口”是西点军校奉行的最重要的行为准则,它强化的是每一位学员想尽办法去完成任何一项任务,而不是为没有完成任务去找借口,哪怕看似合理的借口。 在西点,我作为新学生的第一课,是来自一位高年级学员冲着我大声训导。他告诉我不管什么时候遇到学长或者长官问话,只能有四种回答:“报告长官,是;报告长官,不是;报告长官;没有任何借口;报告长官,我不知道。”除此之外不能再多说一个字。 “没有任何借口”看起来似乎很绝对,很不公平,但是人生并不是永远公平。西点就是要让学员明白;无论遇到什么样的环境,都必须学会对自己的一切行为负责!学员在学校只是年轻的军校学生,但是日后肩负的却是和其他人的生死存亡乃至整个国家的安全。在生死关头,你还能到哪里去找借口哪怕最后找到了失败的教训又如何“没有任何借口”的训练,让西点学员养成了毫不畏惧的决心、坚强的毅力、完美的执行力及在限定的时间内把握每一分,没一秒去完成任何一项任务的信心和信念。 在我的前辈学员中,又很多人都是没有任何热借口的诠释者和执行者。伟大的罗文上校是这样,若果不是秉持着没有任何借口这一重要的行为准则,把信送给加西亚将军是不可能的。伟大的巴顿将军是这样的。1916年,作为美国墨西哥远征军总司令潘兴将军副官的巴顿,也有过一次类似

的送信经历,巴顿将军的日记中写道: “有一天,潘兴将军派我去给豪兹将军送信。但我们所了解的关于豪兹将军的情报只是说他已经通过普罗维登西区牧场。我要了两名士兵和三匹马,顺着这个连队的车辙前进,走了不多远,又遇到了第10骑兵团的一支侦查巡逻兵。他们告诉我们不要再往前走了,因为前面的树林里到处都是威利斯塔人。我没有听,沿着峡谷继续前进。遇到了费切特将军指挥着第7骑兵团的一支巡逻队。他们劝我们不要往前走了,因为峡谷里到处都是维利斯塔人。他们也不知道豪兹将军在哪里。但是我们继续前进,最后终于找到豪兹将军。” 我的同学莱瑞·杜瑞松上校也 是这样的。 莱瑞·杜瑞松在第一次奉派外地服役的时候,有一天连长派他到营部去,交代给他7件任务;要去见一些人,要请示上级一些事;还有些东西要申请,包括地图和醋酸盐。杜瑞松下定决心把7件任务都完成,虽然他并没有把握要怎么去做。果然事情并不顺利,问题就出在醋酸盐上。他滔滔不绝地向负责补给的中士说明理由,希望他能从仅有的存货中拨出一点。杜瑞松一直缠着他,到最后不知道是被杜瑞松说服了,相信醋酸盐确实有重要的用途,还是眼见没有其他办法能够摆脱杜瑞松,中士终于给了他一些醋酸盐。

数据结构 图的基本操作实现

实验五图的遍历及其应用实现 一、实验目的 1.熟悉图常用的存储结构。 2.掌握在图的邻接矩阵和邻接表两种结构上实现图的两种遍历方法实现。 3.会用图的遍历解决简单的实际问题。 二、实验内容 [题目一] :从键盘上输入图的顶点和边的信息,建立图的邻接表存储结构,然后以深度优先搜索和广度优先搜索遍历该图,并输出起对应的遍历序列. 试设计程序实现上述图的类型定义和基本操作,完成上述功能。该程序包括图类型以及每一种操作的具体的函数定义和主函数。 提示: 输入示例 上图的顶点和边的信息输入数据为: 5 7 DG A B C D E AB AE BC CD DA DB EC [题目二]:在图G中求一条从顶点 i 到顶点 s 的简单路径 [题目三]:寻求最佳旅游线路(ACM训练题) 在一个旅游交通网中,判断图中从某个城市A到B是否存在旅游费用在s1-s2元的旅游线路,为节省费用,不重游故地。若存在这样的旅游线路则并指出该旅游线路及其费用。 输入: 第一行:n //n-旅游城市个数 第2行:A B s1 s2 //s1,s2-金额数 第3行---第e+2行 ( 1≤e≤n(n-1)/2 ) 表示城市x,y之间的旅行费用,输入0 0 0 表示结束。

输出: 第一行表示 A到B的旅游线路景点序列 第二行表示沿此线路,从A到B的旅游费用 设计要求: 1、上机前,认真学习教材,熟练掌握图的构造和遍历算法,图的存储结 构也可使用邻接矩阵等其他结构. 2、上机前,认真独立地写出本次程序清单,流程图。图的构造和遍历算法 分别参阅讲义和参考教材事例 图的存储结构定义参考教材 相关函数声明: 1、/* 输入图的顶点和边的信息,建立图*/ void CreateGraph(MGraph &G) 2、/* 深度优先搜索遍历图*/ void DFSTraverse(Graph G, int v) 3、/*广度优先搜索遍历图 */ void BFSTraverse(Graph G, int v)4、 4、/* 其他相关函数 */…… 三、实验步骤 ㈠、数据结构与核心算法的设计描述 ㈡、函数调用及主函数设计 (可用函数的调用关系图说明) ㈢程序调试及运行结果分析 ㈣实验总结 四、主要算法流程图及程序清单 1、主要算法流程图: 2、程序清单 (程序过长,可附主要部分)

数据结构 单链表基本操作代码

实验一单链表 #include "stdio.h" #include "stdlib.h" typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; void creatLNode(LinkList &head) { int i,n; LNode *p; head=(LNode*)malloc(sizeof(LNode)); head->next=NULL; printf("请输入链表的元素个数:"); scanf("%d",&n); for(i=n;i>0;i--) { p=(LNode*)malloc(sizeof(LNode)); printf("第%d个元素:",i); scanf("%d",&p->data); p->next=head->next; head->next=p; } } void InsertLNode(LinkList &L) { LNode *p=L; int i,j=0,e; printf("请输入你要插入的位置(超过链表长度的默认插在最后!):"); scanf("%d",&i); printf("请输入你要插入的元素:"); scanf("%d",&e); while (p->next&&jnext; ++j; }

LNode *s; s=(LNode*)malloc(sizeof(LNode)); s->data=e; s->next=p->next; p->next=s; } int DeleteLNode(LinkList &L,int i,int &e) { LNode *p; p=L; LNode *q; int j=0; while (p->next&&jnext; ++j; } if(!(p->next)||j>i-1) { printf("删除位置不合理!\n"); return 0; } q=p->next; p->next=q->next; e=q->data; free(q); return e; } void DeleteCF(LinkList &L) { LNode *p,*s,*r; p=L->next; while(p!=NULL) { r=p; s=r->next; while(s!=NULL) { if(p->data==s->data) { r->next=s->next; s=s->next;

Photoshop基本操作介绍(图文介绍)

第一课:工具的使用 一、Photoshop 简介: Adobe 公司出品的Photoshop 是目前最广泛的图像处理软件,常用于广告、艺术、平面设计等创作。也广泛用于网页设计和三维效果图的后期处理,对于业余图像爱好者,也可将自己的照片扫描到计算机,做出精美的效果。总之,Photoshop 是一个功能强大、用途广泛的软件,总能做出惊心动魄的作品。 二、认识工具栏 1、 选框工具:用于选取需要的区域 ----选择一个像素的横向区域 ----选择一个像素的竖向区域

属性栏: 注:按shift 键+ 框选,可画出正方形或正圆形区域 2、 移动工具 : -----用于移动图层或选区里的图像 3、套索工具: ----用于套索出选区 ----用于套索出多边形选区 ----可根据颜色的区别而自动产生套索选区 4、魔术棒工具: ----根据颜色相似原理,选择颜色相近的区域。 注:“容差”,定义可抹除的颜色范围,高容差会抹除范围更广的像素。 5、修复工具: 且是 ----类似于“仿制图工具”,但有智能修复功能。 ----用于大面积的修复 一新 ----用采样点的颜色替换原图像的颜色 注:Alt+鼠标单击,可拾取采样点。 6、仿制图章工具----仿制图章工具从图像中取样,然后您可将样本应用到其它图像或同一图像的其它部分。 ----仿制图章工具从图像中取样,然后将样本应用到其它图像或同 一图像的其它部分(按Alt键,拾取采样点)。 ----可先自定义一个图案,然后把图案复制到图像的其它区域或其它图像上。

三、小技巧: ①、取消选区:【Ctrl +D 】 ②、反选选区:【Shif+F7】 ③、复位调板:窗口—工作区—复位调板位置。 ④、ctrl+[+、-]=图像的缩放 ⑤空格键:抓手工具 ⑥Atl+Delete = 用前景色填充 Ctrl+Delete = 用背景色填充 第二课:工具的使用二 一、工具栏 自由变换工具:【 Ctrl +T 】 2、使用框选工具的时候,按【Shift 】后再框选,则框选出正圆或正方形。 按【Alt 】后再框选,则选区以鼠标点为中心

envi图像处理基本操作

使用ENVI进行图像处理 主要介绍利用envi进行图像处理的基本操作,主要分为图像合成、图像裁减、图像校正、图像镶嵌、图像融合、图像增强。 分辨率:空间分辨率、波谱分辨率、时间分辨率、辐射分辨率。咱们平时所说的分辨率是指?怎么理解? 1、图像合成 对于多光谱影像,当我们要得到彩色影像时,需要进行图像合成,产生一个与自然界颜色一致的真彩色(假彩色)图像。 对于不同类型的影像需要不同的波段进行合成,如中巴CCD影像共5个波段,一般选择2、4、3进行合成。(为什么不选择其他波段?重影/不是真彩色)。SOPT5影像共7个波段,一般选择7、4、3三个波段。 操作过程以中巴资源卫星影像为例 中巴资源卫星影像共有五个波段,选择2、4、3三个波段对R、G、B赋值进行赋值。 在ENVI中的操作如下: (1)file→open image file→打开2、3、4三个波段,选择RGB,分别将2、4、3赋予RGB。(2)在#1窗口file---〉save image as-→image file。 (3)在主菜单中将合成的文件存为tiff格式(file-→save file as-→tiff/geotiff) 即可得到我们需要的彩色图像。 2、图像裁减 有时如果处理较大的图像比较困难,需要我们进行裁减,以方便处理。如在上海出差时使用的P6、SOPT5,图幅太大不能直接校正需要裁减。 裁减图像,首先制作AOI文件再根据AOI进行裁减。一般分为两种:指定范围裁减、不指定范围裁减。 不指定范围裁减在ENVI中的操作如下: (1)首先将感兴趣区存为AOI文件 file→open image file打开原图像→选择IMAGE窗口菜单overlay→region of interesting 选择划定感兴趣区的窗口如scroll,从ROI_Type菜单选择ROI的类型如Rectangle,在窗口中选出需要选择的区域。在ROI窗口file→Save ROIs将感兴趣区存为ROI文件。

图的基本操作(邻接表)

标头.h #include #include #include #include #define TRUE 1 #define FLASE 0 #define OK 1 #define ERROR 0 #define FALSE 0 #define INFINITY INT_MAX//无穷大 typedef int status; #define MAX_VERTEX_NUM 20 #define MAX_NAME 5 #define MAX_INFO 20 typedef int VRType; typedef int InfoType; typedef char VertexType[MAX_NAME]; enum GraphKind{DG,DN,AG,AN};// 有向图,有向网,无向图,无向图 struct ArcNode { int adjvex; //该弧所指向的顶点的位置 ArcNode *nextarc;//指向吓下一条弧的指针 InfoType *info;//网的权值指针 };//表结点 typedef struct { VertexType data;//顶点信息 ArcNode *firstarc;//第一个表结点的地址,指向第一条依附该顶点的弧的指针 }VNode,AdjList[MAX_VERTEX_NUM]; //头结点 struct ALGraph { AdjList vertices; int vexnum,arcnum;//图的当前顶点数和弧数 int kind; //图的种类标志 }; int LocateVex(ALGraph G,VertexType u) {//初始条件:图G存在,u和G中顶点有相同的特征

Photoshop基本操作介绍(图文介绍)

第一课:工具的使用 、 Photoshop 简介: Adobe 公司出品的 Photoshop 是目前最广泛的图像处理软件,常用于广告、艺术、平面 设计等创作。也广泛用于网页设计和三维效果图的后期处理,对于业余图像爱好者,也 可将自己的照片扫描到计算机,做出精美的效果。总之, Photoshop 是一个功能强大、 用途广泛的软件,总能做出惊心动魄的作品。 、认识工具栏 1、 选框工具 :用于选取需要的区域 选择一个像素的横向区域 选择一个像素的竖向区域

注:按 shift 键 +框选,可画出正方形或正圆形区域 可根据颜色的区别而自动产生套索选区 根据颜色相似原理,选择颜色相近的区域。 5、 修复工具 : 类似于“仿制图工具” ,但有智能修复功能。 用于大面积的修复 用采样点的颜色替换原图像的颜色 注: Alt+ 鼠标单击,可拾取采样点。 6、仿制图章工具 仿制图章工具从图像中取样, 然后您可将样本应用到其它图像或同一 图像的其它部分。 - 仿制图章工具从图像中取样,然后将样本应用到其它图像或同 一图像的其它部分(按 Alt 键,拾取采样点) 。 区域或其 它图像上。 2、 移动工具 : 3、 套索工具 : 用于移动图层或选区里的图像 - - 用于套索出选区 用于套索出多边形选 区 属性栏: 选区相交 单个选区 选区相加 选区相减 4、魔术棒工具 ,定义可抹除的颜色范围,高容差会抹除范围更广的像素。 且是 --------- -

三、小技巧: ①、取消选 区: 【Ctrl +D】 ②、反选选 区: 【Shif+F7 】 ③、 复位调 板: 窗口—工作区—复位调板位置。 ④、 ctrl+[+ 、 -]= 图像的缩放 ⑤空格键:抓手工具 ⑥ Atl+Delete = 用前景色填充 Ctrl+Delete = 用背景色填充 第二课:工具的使用二 模1、糊自工由具变换工具:【Ctrl +T】减淡工具 模糊工具 2、使用框选工具的时候,按【Shift 】后再框选,则框选出正圆或正方形。

单链表的基本操作

上机实验报告 学院:计算机与信息技术学院 专业:计算机科学与技术(师范)课程名称:数据结构 实验题目:单链表建立及操作 班级序号:师范1班 学号:201421012731 学生姓名:邓雪 指导教师:杨红颖 完成时间:2015年12月25号

一、实验目的: (1)动态地建立单链表; (2)掌握线性表的基本操作:求长度、插入、删除、查找在链式存储结构上的实现; (3)熟悉单链表的应用,明确单链表和顺序表的不同。 二、实验环境: Windows 8.1 Microsoft Visual c++ 6.0 三、实验内容及要求: 建立单链表,实现如下功能: 1、建立单链表并输出(头插法建立单链表); 2、求表长; 3、按位置查找 4、按值查找结点; 5、后插结点; 6、前插结点 7、删除结点; 四、概要设计: 1、通过循环,由键盘输入一串数据。创建并初始化一个单链表。 2、编写实现相关功能函数,完成子函数模块。 3、调用子函数,实现菜单调用功能,完成顺序表的相关操作。

五、代码: #include #include typedef char datatype; typedef struct node { datatype data; struct node *next; }linklist; linklist *head,*p; //头插法建立单链表 linklist *Creatlistf() { char ch; linklist *head,*s; head=NULL; ch=getchar(); printf("请输入顺序表元素(数据以$结束):\n"); while(ch!='$') { s=(linklist *)malloc(sizeof(linklist)); s->data=ch; s->next=head; head=s; ch=getchar(); } return head; } //求单链表的长度 void get_length(struct node *head) { struct node *p=head->next; int length=0;

图的基本操作与实现的课程设计报告

图的基本操作与实现的课程设计报 告 中国矿业大学徐海学院计算机系 《软件认知实践》报告 姓名:_学号: 专业:___________________

设计题目:_______________ 指导教师:____________________________ 2013年12月30日

第1章题目概述 第1.1节题目要求. 第1.2节主要难点 第2章系统流程 第3章数据结构和算法 第4章核心代码分析.. 第5章复杂度分析 参考文献 第一章题目概述 第1.1节题目要求 (1) 自选存储结构,输入含n 个顶点(用字符表示顶点)和e 条边的图G ; (2) 求每个顶点的度,输出结果; (3) 指定任意顶点x 为初始顶点,对图G 作DFS 遍历,输出DFS 顶点序列(提示:使用一个栈 实 现 DFS); ⑷指定任意顶点x 为初始顶点,对图G 作BFS 遍历,输出BFS 顶点序列(提示:使用一个队列 实现BFS); (5) 输入顶点x,查找图G:若存在含x 的顶点,则删除该结点及与之相关连的边,并作DFS 遍 历(执行操作3);否则输出信息“无x” ; (6) 判断图G 是否是连通图,输出信息“YES” / “NO”; (7) 如果选用的存储结构是邻接矩阵,则用邻接矩阵的信息生成图G 的邻接表,即复制图G, 然再执行操作(2);反之亦然。 .2 .2 .3 .4 .5 .6 25 25

第1. 2节主要难点 (1)自选存储结构创建一个图:通过用户从键盘敲入的两个数值分别确定图的顶点数和边数,选择邻接矩阵存储结构将图的结点信息存储在一个顺序表中,图的边信息存储在一个二维数组中。 (2)求每个顶点的度:

链表的基本操作(基于C)

#include #include struct Student { char cName[20]; int iNumber; struct Student* pNext; }; int iCount; struct Student* Create() { struct Student* pHead=NULL; struct Student* pEnd,*pNew; iCount=0; pEnd=pNew=(struct Student*)malloc(sizeof(struct Student)); printf("please first enter Name ,then Number\n"); scanf("%s",&pNew->cName); scanf("%d",&pNew->iNumber); while(pNew->iNumber!=0) { iCount++; if(iCount==1) { pNew->pNext=pHead; pEnd=pNew; pHead=pNew; } else { pNew->pNext=NULL; pEnd->pNext=pNew; pEnd=pNew; } pNew=(struct Student*)malloc(sizeof(struct Student)); scanf("%s",&pNew->cName); scanf("%d",&pNew->iNumber); } free(pNew); return pHead; }

void Print(struct Student* pHead) { struct Student *pTemp; int iIndex=1; printf("----the List has %d members:----\n",iCount); printf("\n"); pTemp=pHead; while(pTemp!=NULL) { printf("the NO%d member is:\n",iIndex); printf("the name is: %s\n",pTemp->cName); printf("the number is: %d\n",pTemp->iNumber); printf("\n"); pTemp=pTemp->pNext; iIndex++; } } struct Student* Insert(struct Student* pHead) { struct Student* pNew; printf("----Insert member at first----\n"); pNew=(struct Student*)malloc(sizeof(struct Student)); scanf("%s",&pNew->cName); scanf("%d",&pNew->iNumber); pNew->pNext=pHead; pHead=pNew; iCount++; return pHead; } void Delete(struct Student* pHead,int iIndex) { int i; struct Student* pTemp; struct Student* pPre; pTemp=pHead; pPre=pTemp; printf("----delete NO%d member----\n",iIndex); for(i=1;i

单链表的基本操作 C语言课程设计

课程设计(论文) 题目名称单链表的基本操作 课程名称C语言程序课程设计 学生姓名 学号 系、专业信息工程系、网络工程专业 指导教师成娅辉 2013年6月6 日

目录 1 前言 (3) 2 需求分析 (3) 2.1 课程设计目的 (3) 2.2 课程设计任务 (3) 2.3 设计环境 (3) 2.4 开发语言 (3) 3 分析和设计 (3) 3.1 模块设计 (3) 3.2 系统流程图 (4) 3.3 主要模块的流程图 (6) 4 具体代码实现 (9) 5 课程设计总结 (12) 5.1 程序运行结果 (12) 5.2 课程设计体会 (12) 参考文献 (13) 致谢 (13)

1 前言 我们这学期学习了开关语句,循环语句、链表、函数体、指针等的应用,我们在完成课程设计任务时就主要用到这些知识点,本课题是单链表的简单操作,定义四个子函数分别用来创建链表、输出链表、插入数据以及删除数据,主函数中主要用到开关语句来进行选择调用哪个子函数,下面就是课程设计的主要内容。 2 需求分析 2.1 课程设计目的 学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。 2.2 课程设计任务 输入一组正整数,以-1标志结束,用函数实现:(1)将这些正整数作为链表结点的data域建立一个非递减有序的单链表,并输出该单链表;(2)往该链表中插入一个正整数,使其仍保持非递减有序,输出插入操作后的单链表;(3)删除链表中第i个结点,输出删除操作后的单链表,i从键盘输入。 2.3 设计环境 (1)WINDOWS 7系统 (2)Visual C++ 2.4 开发语言 C语言 3 分析和设计 3.1 模块设计 定义链表结点类型struct node表示结点中的信息,信息包括数据域data(用于存放结点中的有用数据)以及指针域next(用于存放下一个结点的地址),并将链表结点类型名改为NODE。如下所示:

单链表的建立及其基本操作的实现(完整程序)

#include "stdio.h"/*单链表方式的实现*/ #include "malloc.h" typedef char ElemType ; typedef struct LNode/*定义链表结点类型*/ { ElemType data ; struct LNode *next; }LNode,*LinkList;/*注意与前面定义方式的异同*/ /*建立链表,输入元素,头插法建立带头结点的单链表(逆序),输入0结束*/ LinkList CreateList_L(LinkList head) { ElemType temp; LinkList p; printf("请输入结点值(输入0结束)"); fflush(stdin); scanf("%c",&temp); while(temp!='0') { if(('A'<=temp&&temp<='Z')||('a'<=temp&&temp<='z')) { p=(LinkList)malloc(sizeof(LNode));/*生成新的结点*/ p->data=temp; p->next=head->next; head->next=p;/*在链表头部插入结点,即头插法*/ } printf("请输入结点值(输入0结束):"); fflush(stdin); scanf("%c",&temp); } return head; } /*顺序输出链表的内容*/ void ListPint_L(LinkList head) { LinkList p; int i=0; p=head->next; while(p!=NULL) { i++; printf("单链表第%d个元素是:",i);

大学计算机基础第5章到作业及答案

大学计算机基础第五章作业 一、选择题 1.下面有关计算机操作系统的叙述中,______是不正确的。 A操作系统属于系统软件 B操作系统只管理内存,而不管理外存 C UNIX、Windows 2000属于操作系统 D计算机的内存、I/O设备等硬件资源也由操作系统管理。 2.下面几种操作系统中,______不是网络操作系统。 A MS-DOS B Windows 2000 C Linux D Unix 3.下面有关Windows系统的叙述中,正确的是。 A Windows文件夹中只能包含文件。 B 在Windows环境中,安装一个设备驱动程序,必须重新启动后才起作用。 C 在Windows环境中,一个程序没有运行结束就不能启动另外的程序。 D Windows是一种多任务操作系统。 4.进程______。 A与程序是一一对应的。 B是一个程序及其数据,在处理机上执行时所发生的活动。 C是不能独立运行的。 D是为了提高计算机系统的可靠性而引入的。 5.交换技术是对______技术的改进,其目的是为了更加充分地利用系统的各种资源。 A虚拟存储 B Cache C调入调出D自动覆盖 6.Word编辑的文件属于______。 A 系统文件 B 文本文件C二进制文件D输出文件 二、判断题(正确打√错误打×) 1.配置操作系统的目的是提高计算机系统的处理速度。(× ) 2.计算机没有操作系统就不能工作。(×) 3.Linux发行版的发行商拥有其发行版中所有软件模块的版权。(×) 4.引入进程可以改善系统的资源利用率、提高吞吐量,但增加了系统的空间和时间开销。(√) 5.在没有虚存的系统中,采用覆盖技术就可以利用较小的存储空间处理较大的程序。(√ ) 6.文件目录必须常驻内存。(×) 三、填空题 1.配置操作系统主要有两个目的:管理计算机资源和提供用户界面。 2.进程可定义为一个数据结构,及能在其上进行操作的一个程序的执行活动。3.Linux是与Unix类似的、可以免费使用的操作系统。 4.操作系统提供的用户接口大体上有两种:图形用户界面和命令方式。 5.理想情况下,利用虚拟存储器可以得到一个容量上接近外存、速度上接近内存的存储系统。

图的基本操作 实验报告

实验五图的基本操作 一、实验目的 1、使学生可以巩固所学的有关图的基本知识。 2、熟练掌握图的存储结构。 3、熟练掌握图的两种遍历算法。 二、实验内容 [问题描述] 对给定图,实现图的深度优先遍历和广度优先遍历。 [基本要求] 以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列。 【测试数据】 由学生依据软件工程的测试技术自己确定。 三、实验前的准备工作 1、掌握图的相关概念。 2、掌握图的逻辑结构和存储结构。 3、掌握图的两种遍历算法的实现。 四、实验报告要求 1、实验报告要按照实验报告格式规范书写。 2、实验上要写出多批测试数据的运行结果。 3、结合运行结果,对程序进行分析。

五、算法设计 1、程序所需头文件已经预处理宏定义和结构体定义如下 #include #define MaxVerNum 100 struct edgenode { int endver; int inform; edgenode* edgenext; }; struct vexnode { char vertex; edgenode* edgelink; }; struct Graph { vexnode adjlists[MaxVerNum]; int vexnum; int arcnum; }; 2、创建无向图 void CreatAdjList(Graph* G) { int i,j,k; edgenode* p1; edgenode* p2; cout<<"请输入顶点数和边数:"<>G->vexnum>>G->arcnum; cout<<"开始输入顶点表:"<vexnum;i++) { cin>>G->adjlists[i].vertex; G->adjlists[i].edgelink=NULL; } cout<<"开始输入边表信息:"<arcnum;k++) { cout<<"请输入边对应的顶点:"; cin>>i>>j; p1=new edgenode; p1->endver=j; p1->edgenext=G->adjlists[i].edgelink; G->adjlists[i].edgelink=p1;

单链表基本操作实验

实验2 链表的操作 实验容: 1)基础题:编写链表基本操作函数,链表带有头结点 (1)CreatList_h()//用头插法建立链表 (2)CreateList_t()//用尾插法建立链表 (3)InsertList()向链表的指定位置插入元素 (4)DeleteList()删除链表中指定元素值 (5)FindList()查找链表中的元素 (6)OutputList()输出链表中元素 2)提高题: (1)将一个头节点指针为heada的单链表A分解成两个单链表A和B,其头结点指针分别为heada和headb,使得A表中含有原单链表A中序号为奇数的元素,B表中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。 (2)将一个单链表就地逆置。 即原表(a1,a2,。。。。。。 an),逆置后新表(an,an-1,。。。。。。。a1) /* 程序功能 :单链表基本功能操作 编程者 :天啸 日期 :2016-04-14 版本号 :3.0 */ #include #include typedef struct List { int data; struct List *next; }List; void CreatList_h(List *L) //头插法 { int i = 0; int n = 0; int goal; List *p; printf("请输入数据的个数:\n"); scanf("%d",&n); L -> next = NULL; for(i=0;i

{ printf("请输入第%d个数:\n",i+1); scanf("%d",&goal); p = (struct List*)malloc(sizeof(struct List)); p -> data = goal; p -> next = L->next; //将L指向的地址赋值给p; L -> next = p; } } void CreateList_t(List *L) //尾插法 { int i; int n; int goal; List *p; List *q=L; printf("请输入数据的个数:\n"); scanf("%d",&n); for (i=0;i data = goal; q -> next = p; q = p; } q -> next = NULL; } void InsList(List *L,int i,int e) //插入 { List *s; List *p = L; int j = 0; while (p&&jnext; ++j; } s = (struct List*)malloc(sizeof(struct List)); s -> data = e; //插入L中

Photoshop基本操作介绍图文介绍

Photoshop基本操作介绍(图文介绍)

————————————————————————————————作者:————————————————————————————————日期:

第一课:工具的使用 一、Photoshop简介: Adobe公司出品的Photoshop是目前最广泛的图像处理软件,常用于广告、艺术、平面设计等创作。也广泛用于网页设计和三维效果图的后期处理,对于业余图像爱好者,也可将自己的照片扫描到计算机,做出精美的效果。总之,Photoshop是一个功能强大、 用途广泛的软件,总能做出惊心动魄的作品。 二、认识工具栏 1、选框工具:用于选取需要的区域 ----选择一个像素的横向区域 套索工具 移动工具 魔术棒工具 修复工具 仿制图章工具 选框工具 裁剪工具

----选择一个像素的竖向区域 属性栏: 注:按shift 键+框选,可画出正方形或正圆形区域 2、移动工具: -----用于移动图层或选区里的图像 3、套索工具: ----用于套索出选区 ----用于套索出多边形选区 ----可根据颜色的区别而自动产生套索选区 4、魔术棒工具: ----根据颜色相似原理,选择颜色相近的区域。 注:“容差”,定义可抹除的颜色范围,高容差会抹除范围更广的像素。 5、修复工具: 且是 ----类似于“仿制图工具”,但有智能修复功能。 ----用于大面积的修复 一新 ----用采样点的颜色替换原图像的颜色 注:Alt+鼠标单击,可拾取采样点。 6、仿制图章工具 ----仿制图章工具从图像中取样,然后您可将样本应用到其它图像或同一图像的其它部分。 ----仿制图章工具从图像中取样,然后将样本应用到其它图像或同 一图像的其它部分(按Alt 键,拾取采样点)。 单个选区 选区相加 选区相减 选区相交

重庆大学计算机基础网上作业答案

计算机基础参考资料 一、单项选择题(本大题共 0 分,共 50 小题,每小题 0 分) 1.在Excel 中,删除工作表操作时,首先选择要删除的工作表;在选择”开始”菜单的删除选项,选择 B ,完成删除工作表的操作。 A.删除单元格 B.删除工作表 C.删除工作表行 D.全选 2.在Word 中,当多个文档打开时.关于保存这些文档的说法中正确的是 A A.用”文件”菜单的”保存”命令,只能保存活动文档 B.用”文件”菜单的”保存”命令,可以重命名保存所有文档 C.用”文件”菜单的”保存”命令,可一次性保存所有打开的文档 D.用”文件”另存为”全部保存”命令保存所有打开的文档 3.信息技术是(D )的产物,在应用中得以拓展和延伸。 A.计算机技术发展 B.网络技术发展 C.通讯技术发展 D.以上三种综合发展 4.计算机网络按通信距离可以分为局域网、城域网和(B )。 A.无线网 B.广域网 C.移动网 D.专用网 5.人们要使用计算机,首先需要把想要做的事情以命令和数据的形式通过 A 输入计算机。 A.输入设备 B.输出设备 C.打印设备 D.主机 6.Word 编辑状态,下列可以设定打印纸张大小的命令是(B )。 A.“文件”菜单中的“打印预览”命令 B.“文件”菜单中的“页面设置”命令 C.“视图”菜单中的“工具栏”命令 D.“视图”菜单中的“页面”命令 7.幻灯片窗格中可以显示和编辑非文字内容,包括 D 。 A.图片 B.表格 C.影音 D.以上所有 8.Word 可以使用插入( A)对话框向文档中插入艺术字。 A.艺术字 B.对象 C.剪贴画

D.图标 9. D 应用程序不属于 Microsoft Office 2010 组件。 A.Microsoft Word 文字处理 B.Microsoft Excel 数据制表 C.Microsoft Outlook 邮件管理 D.WPS 10.下面哪种不是多媒体播放器软件(D ) A.Windows Media Player B.暴风影音 C.Real Player D.Adobe Reader 11.下面不属于网络安全的基本属性是(D )。 A.机密性 B.可用性 C.完整性 D.正确性 12.Microsoft Word 2010 中获得帮助的方法是(D )。 A.快捷键 F1 B.点击“文件”菜单中“帮助” C.点击窗口右上角的“问号”标志 D.以上所有 13.在E xcel 中,工作簿是指 D 。 A.操作系统 B.不能有若干类型的表格共存的单一电子表格 C.图表 D.在Excel 环境中用来存储和处理工作数据的文件 14.下列关于杀毒软件说法不正确的是D。 A.杀毒软件可以清除特洛伊木马 B.杀毒软件可以清除恶意软件 C.杀毒软件可以清除电脑病毒 D.杀毒软件不需要升级 15.Windows 操作系统内置的多媒体播放器是 B 。 A.Windows Movie Maker B.Windows Media Player C.Windows Internet Explorer D.Windows 录音机 16.编辑幻灯片内容时,需要先 B 对象。 A.调整 B.选择 C.删除 D.粘贴 17.在W ord 中,常用工具栏中的”格式刷”工具可以 C 。 A.清除所选择的文本 B.复制所选择的文本

相关文档
最新文档