文档视界 最新最全的文档下载
当前位置:文档视界 › 简单行编辑程序——课程设计

简单行编辑程序——课程设计

简单行编辑程序——课程设计
简单行编辑程序——课程设计

简单行编辑程序

题目:简单行编辑程序

班级:计算机科学与技术(非师范)

姓名:

学号:

完成日期:2010-6-25

1.需求分析

以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定:

文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。

(1) 输入的形式和输入值的范围;

无范围

(2) 输出的形式;

字符串

(3) 程序所能达到的功能;

实现以下4条基本编辑命令:

(1)行插入。格式:i<行号><回车><文本><回车>

将<文本>插入活区中第<行号>行之后

(2)行删除。格式:d<行号1>[□<行号2>]<回车>

删除活区中第<行号1>行(到第<行号2>行)。两种格式的例子是:“d10↙”和“d10□14↙”

(3)活区切换。格式:n<回车>

将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。

(4)活区显示。格式:p<回车>

(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。

2.概要设计

说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。

typedef struct text

{

char string[80];//存储每一行的元素

struct text *next;//指向后一个节点的指针

struct text *pre;//指向前一个节点的指针

int num;//每一行元素的长度

int flat;//确定此行是否被删除的标志

}text;

FILE *fp,*out;//fp是执行被打开的文件,out指向被写入的文件

text *head;//链表的头指针

int n=0,sum,delnum,xiugai=0,page=0;

//file://修改用来指示文件是否被修改过,如果修改过才回存盘。page用来计算显示的

//file://页数.delnum用来存储被删除的字节数,sum存储一页的总字节数

3.详细设计

实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);画出函数和过程的调用关系图。

cmd=getchar();

printf("\n请输入命令(按E键退出):");

cmd=getchar();

switch(cmd)

{

case 'e':

case 'E':

if(xiugai==1)

saveall();

freemem();

if(fp) fclose(fp);

if(out) fclose(out);

system("cls");

return 0;

case 'o':

case 'O':

Openfiles();

break;

case 'p':

case 'P':

Createlist();

display();

break;

case 'n':

case 'N':

saveanddisplay(10);

break;

case 'd':

case 'D':

del();

break;

case 'i':

case 'I':

insert();

break;

default:printf("\n\n\n!!!输入错误!!!");

4.调试分析

当我调试程序时发现前面的子程序调用后面的子程序竟然是错误的,明明已经定义了的子程序竟然没有定义这令我大为不解不过后来当我把被调用的程序放到前面,程序就顺利运行了。

5.用户使用说明

说明如何使用你编写的程序,详细列出每一步的操作步骤。

当你使用这个程序时,会出现一个简单的提示界面,你可以选择相应的help选项,来看操作说明。

6.测试结果

列出你的测试结果,包括输入和输出。这里的测试数据应该完整和严格,最好多于需求分析中所列。

7.附录

带注释的源程序。如果提交源程序软盘,可以只列出程序文件名的清单。

#define NULL 0

#define OK 0

#include

#include

#include

#include

#include

#include

typedef struct text

{

char string[80];//存储每一行的元素

struct text *next;//指向后一个节点的指针

struct text *pre;//指向前一个节点的指针

int num;//每一行元素的长度

int flat;//确定此行是否被删除的标志

}text;

FILE *fp,*out;//fp是执行被打开的文件,out指向被写入的文件

text *head;//链表的头指针

int n=0,sum,delnum,xiugai=0,page=0;

//file://修改用来指示文件是否被修改过,如果修改过才回存盘。page用来计算显示的//file://页数.delnum用来存储被删除的字节数,sum存储一页的总字节数

void byebye()//没有具体用处,只是写着玩的,在屏幕上显示一个bye

{

puts("\t\t\t******** * * ********");

puts("\t\t\t* * * * * ");

puts("\t\t\t* * * * * ");

puts("\t\t\t* * * * * ");

puts("\t\t\t******** * ********");

puts("\t\t\t* * * * ");

puts("\t\t\t* * * * ");

puts("\t\t\t* * * * ");

puts("\t\t\t******** * ********");

}

void HELP()//帮助函数,显示一些命令的格式

{

printf("\n\t**********************************************************\n"); printf("\t** 打开文件: o<行号><文件名><回车> **\n");

printf("\t** 行插入格式: i<行号><回车><文本><回车> **\n");

printf("\t** 行删除格式: d<行号1>[<空格><行号2>]<回车> **\n");

printf("\t** 活区切换格式: n<回车> **\n");

printf("\t** 活区显示格式: p<回车> **\n");

printf("\t** 注意:在执行所有命令前必须先用o命令打开文件,并 **\n");

printf("\t** 用p命令显示出来!!! **\n");

printf("\t**********************************************************\n"); system("pause");

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

}

void ABOUT()//也是写着玩的

{

printf("\n\t\t*****************************************\n");

printf("\t\t** welcome to the program **\n");

printf("\t\t** all work and no play make jack adull boy **\n"); printf("\t\t** enjoy your work **\n"); printf("\t\t*****************************************\n");

system("pause");

system("cls");

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

}

void Createlist()//建立一个十个节点的链表,是文本中的一页

{

text *p1,*p2;

p1=p2=(text *)malloc(sizeof(text));

head=NULL;

while(n<10)

{

n=n+1;

if(n==1) head=p1;

else

{

p2->next=p1;

p1->pre=p2;

p1->flat=0;

}

p2=p1;

p1=(text *)malloc(sizeof(text)); }

p2->next=NULL;

}

void freemem()//释放链表所占的内存{

text *p;

for(p=head;head!=NULL;)

{

head=p->next;

free(p);

p=head;

}

}

int Openfiles()//打开文件的函数{

char name[30],outname[30];

puts("请输入要打开的文件名:");

scanf("%s",name);

if((fp=fopen(name,"r+"))==NULL)

{

printf("打不开原文件! \n");

exit(0);

}

puts("请输入要写入的文件名:");

scanf("%s",outname);

if((out=fopen(outname,"w+"))==NULL)

{

printf("打不开目标文件!\n");

exit(0);

}

return 0;

}

int display()//从文件中读入到链表中,并显示出来{

int i;

char conti='y';

text *p;

while((!feof(fp))&&(conti=='y'||conti=='Y'))

{

page++;

printf("\t\t第%d页\n",page);

for(i=0,p=head,sum=0;(i<10)&&(!feof(fp));i++,p=p->next)

{

fgets(p->string,sizeof(p->string),fp);

puts(p->string);

p->flat=1;

p->num=strlen(p->string);

sum=sum+p->num;

}

puts("Continue?(Y/N):");

conti=getche();

if(feof(fp))

{

puts("\n文件已经结束!");

return 0;

}

}

return 0;

}

int saveanddisplay(int hang)//命令n执行的函数,用来将活区的内容显示并读入下一页内容{

int i,endflat=0;

char conti='y';

text *p=NULL;

page++;

for(i=0,p=head;inext) //file://将活区写入文件

if(p->flat==1)

{

fputs(p->string,out);

p->flat=0;

}

if(!feof(fp))

printf("\t\t第%d页\n",page);

for(i=0,p=head,sum=0;(i<10)&&(!feof(fp));i++,p=p->next)//从文件读入活区 if(fgets(p->string,sizeof(p->string),fp))

{

puts(p->string);

p->flat=1;

p->num=strlen(p->string);

sum=sum+p->num;

}

if(feof(fp))

printf("文件已经结束!");

return 0;

}

int saveall()//退出编辑函数后执行的函数,将所有的内容存盘

{

int i,endflat=0;

char conti='y';

text *p;

for(i=0,p=head;i<10;i++,p=p->next) //file://将活区写入文件

if(p->flat==1)

{

fputs(p->string,out);

p->flat=0;

}

while(!feof(fp))//将其余的内容写入文件

fputc(fgetc(fp),out);

return 0;

}

int del()//删除d命令对应的函数,用来删min-max中的行,用结构体中的flat表示是否被删除{

text *p1,*p2,*p3;

int min,max,i;

xiugai=1;

scanf("%d %d",&min,&max);

if(head==NULL)

{

printf("\nlist null!\n");

return 0;

}

p1=p2=head;

for(i=0;i

p1=p1->next;

for(i=0;i

p2=p2->next;

for(delnum=0;p1!=p2;p1=p1->next)/*删除中间的节点,将flat赋值0*/ {

p1->flat=0;

delnum=delnum+p1->num;

}

for(i=0,p3=head;i<10;i++,p3=p3->next)//显示删除后的结果

if(p3->flat==1)

puts(p3->string);

saveanddisplay(10);//将删除后的结果存盘并显示下一页内容(十行)

xiugai=1;

return 0;

}

int insert()//插入i命令对应的函数,在i行后插入文本

{

int hang,i,increhang=1,number=1;

text *p,*p1,*p2;

xiugai=1;

scanf("%d",&hang);

p=p1=NULL;

for(i=0,p1=head;inext);//找到要插入行的前一列 p=(text *)malloc(sizeof(text));//为插入行分配空间

p->flat=1;

p->next=p1->next;//从此行向下四行将插入行插入到链表中

p->pre=p1;

p1->next->pre=p;

p1->next=p;

p->string[0]=getchar();

p->string[0]=getchar();

for(i=1;(i<80)&&(p->string[i-1]!='^');i++)

{

p->string[i]=getchar();

if((i+1==80)&&(p->string[i]!='^'))//如果插入的内容超过一行

{ //file://的容量,则分配下一行空间

p1=p; //file://并将其连入链表

p=(text *)malloc(sizeof(text));

p->flat=1;

p->next=p1->next;

p->pre=p1;

p1->next->pre=p;

p1->next=p;

i=0;

increhang++;

}

p->num=i;

}

p->string[i-1]='\n';

p->string[i]='\0';

puts("修改后的链表:");

for(p2=head;p2!=NULL;p2=p2->next)//显示出修改后的链表

puts(p2->string);

saveanddisplay(10+increhang);//将修改后的链表存盘并显示下一页内容 xiugai=1;

return 0;

}

int EDIT()//编辑函数,用来接受处理编辑命令

{

char cmd;

do

{

cmd=getchar();

printf("\n请输入命令(按E键退出):"); cmd=getchar();

switch(cmd)

{

case 'e':

case 'E':

if(xiugai==1)

saveall();

freemem();

if(fp) fclose(fp);

if(out) fclose(out);

system("cls");

return 0;

case 'o':

case 'O':

Openfiles();

break;

case 'p':

case 'P':

Createlist();

display();

break;

case 'n':

case 'N':

saveanddisplay(10);

break;

case 'd':

case 'D':

del();

break;

case 'i':

case 'I':

insert();

break;

default:printf("\n\n\n!!!输入错误!!!");

}

}while(cmd!='e'&&cmd!='E');

return 0;

}

int main()//主函数,用来接受命令

{

char cmd;

do

{

printf("\n\t\t****************************\n"); printf("\t\t** 1 EDIT **\n");

printf("\t\t** 2 HELP **\n");

printf("\t\t** 3 ABOUT **\n");

printf("\t\t** 4 EXIT **\n");

printf("\t\t****************************\n");

printf("\n\n请选择1,2,3,4:");

cmd=getche();

switch(cmd)

{

case '4' : system("cls"); byebye(); break;

case '2' : system("cls"); HELP(); cmd=0; break; case '3' : system("cls"); ABOUT(); cmd=0; break; case '1' : EDIT(); cmd=0; break;

default : printf("\n\n\n!!!输入错误!!!\n");

}

}while(cmd!='4');

return 0;

}

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

C++课设:简单画图程序

简单画图程序 1.基本功能描述 本次课程设计的任务是利用计算机和VC开发环境编写一个简单画图程序,该程序的设计指标(即主要功能)有:①用鼠标拖动绘制圆、椭圆、矩形,线等基本图形;②能控制画笔的线宽和颜色;③能对图形进行颜色填充;④在鼠标移动的过程中能实时显示当前绘制的图形。 除了以上几点功能,我有另外添加了工具栏、铅笔、橡皮等功能来使程序更方便地让用户使用,简化了人机交互的过程。 2.设计思路 首先是界面的问题,既然课设的题目是简单画图,那在建立工程的时候就要选择文档结构而不是以前做的基于对话框。可选择单文档结构或多文档结构,但想到画图界面一般只有一个,从简洁的角度考虑,选择单文档结构。而且用户界面在设计的时候要尽可能简单美观,一目了然,对相应功能有图标提示,使用户方便使用。 然后便是画图功能的具体实现。分析课设要求,可以发现功能一要求的的椭圆、矩形、直线可以分别通过Ellipse();、Rectangle();、MoveTo();、LineTo();这四个函数来实现。功能二控制画笔线宽和颜色可以给二者分别关联参数,通过改变线宽参数值来控制线宽,通过调用通用对话框改变颜色参数值来控制颜色。功能三对图形进行颜色填充虽以前未接触过,但查阅资料后发现可以调用ExtFloodFill();并合理设定参数值来实现。功能四的实时显示功能可以通过调用MouseMove();函数来实现。 这些功能需要建立菜单资源来表示各个功能选项,并建立相应的消息响应函数来进行实现。另外,画图程序主要是通过鼠标来进行操作,所以要对鼠标消息的响应及处理函数多下功夫来思考和编写。 至于额外添加的功能,工具栏通过添加工具栏资源和关联相应菜单中画图功能ID实现;铅笔、橡皮的功能则是利用MouseMove();函数,在其中做了一些改动来实现。

C++课程设计简易文本编辑器

目录 第一章课程设计目的和要求 (1) 1.1课程设计的目 (1) 1.2基本要求 (1) 第二章课程设计任务内容 (2) 2.1设计背景 (2) 2.2简易文本编辑器设计内容 (2) 第三章详细设计 (3) 3.1总体结构图 (3) 3.2函数分析 (3) 3.3主函数程序流程图 (4) 3.4子函数流程图 (5) 第四章程序编码与调试 (7) 4.1程序编码 (7) 4.2编码调试 (8) 4.3运行结果 (9) 第五章课程设计心得与体会 (11) 附录1 参考文献 (12) 附录2 源程序代码 (13)

第一章课程设计目的和要求 C语言课程设计是一门实践性非常强的课程,不但要注重c语言程序设计基本知识的学习,更要注重程序设计技能的培养,使学生能够允许渐进地把握c语言程序设计的技能。通过课程设计,培养学生阅读和编写程序的能力,培养计算机程序设计的能力和素质,以及思维方法。初步积累编程经验,打下良好的计算机应用基础。 1.1课程设计的目 1.通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力, 能更好的巩固《c语言程序设计》课程学习的内容 2.掌握工程软件设计的基本方法,强化上级动手编程能力,闯过理论与实践相 结合的难关!更加了解了c语言的好处和其可用性。 3.掌握基本的程序设计过程和技巧,掌握基本的分析问题合理性,通过计算机 求解问题的能力,具备初步的高级语言程设计能力。为后续个门计算机课程 的学习和毕业设计打下结实基础。 4.通过c语言课程设计,使学生了解高级程序设计语言的结构。 1.2 基本要求 1.基本要求: ①要求用VC中的MFC控件打开和保存文件。 ②要求在设计的程序中至少能完成六种编辑功能。 ③完成的程序界面要美观,能够完成六种编辑的全过程。 2.创新要求: ①在记事本中增加工具栏,工具栏中应有常使用的工具按钮; ②在记事本中增加状态栏;

程序设计基础课程设计

设计题目:学生成绩管理系统班级:计0902 姓名:付乐颖 学号:20091221067 完成日期:2010.10.15

1. 课程设计目的和要求 随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。 本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。 2. 课程设计任务内容 学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。

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

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

简易文本编辑器说明书

中北大学 课程设计说明书 学院、系: 专业: 班级: 学生姓名:学号: 设计题目:简易文本编辑器 起迄日期: 2016年12月16日~2016年12月29日指导教师: 日期: 2016年12月29日

1 设计目的 通过用户调查分析及实际需求,开发出一个文本编辑器,可以方便用户对文本进行编辑。系统需要实现如下基本功能: (1)具有图形菜单界面; (2)查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除;(3)可正确存盘、取盘; (4)正确显示总行数。 2 任务概述 要设计一简易的文本编辑器,要求有图形菜单界面,也就是菜单选择的界面,要实现的功能有对文本进行存盘,取盘,在某一个盘中新建一个TXT的文件,在里面输入内容,对这个文件进行取盘,显示出文本内容,并在显示的时候显示行数,具有对文本进行查找、替换、插入、移动、删除等功能。 为实现数据的有序存储,该编辑器应该用顺序表来存储输入的信息。顺序表是数据结构中线性表的一种,它是用一块地址连续的存储空间依次存储线性表的元素。其特点为:在顺序表上逻辑关系相邻的两个元素在物理位置上也相邻;在顺序表上可以随即存取表中的元素。在编辑器的主界面中应有如下提示信息: ⑴显示当前文本信息:从文件中读出文本,在某一个盘中创建一个文本文件,所以要读出来, 显示到显示器上,并统计出行数。 ⑵查找文本信息:因为在下面做插入,删除,移动之类的都需用到查找,在查找的时候,也要 调用一个字符匹配模式的程序,来判断查找的内容是否符合所要查找的内容。 ⑶删除文本信息:首先在数组中查找要删除的信息,查找的时候调用匹配模式的子函数,如果 找到该信息,提示是否确认删除该信息,通过确认来删除信息,如果未找到要删除的信息,提示未找到该信息; ⑷插入文本信息:首先调用字符匹配模式的子函数找到插入点,如果找到该插入点,提示输入 插入信息,确认插入信息后,选择是否在这个位置插入,如果是的话执行插入,不是的话再往下查找下一个插入点。 ⑸替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息,提示输入要替换的 信息内容,否则提示未找到要被替换的信息; ⑹保存文本信息:在这里使用文件写入读出的功能,把你修改完的内容保存到你所建立的文 本中。 ⑺显示文本内容:读出文件中的所有字符,显示到显示器上。 ⑻退出 3 模块划分 (1)系统主要包含主程序模块和其他操作模块。其调用关系如图(一)所示。

简单行编辑器 数据结构 课程设计汇总

中国矿业大学徐海学院计算机系《软件认知实践》报告 姓名:学号: 专业: 设计题目:简单行编辑器 指导教师: 2012年12月25

目录 第1章题目概述 (1) 第1.1节题目要求 (1) 第1.2节主要难点 (2) 第2章系统流程图 (3) 第3章数据结构和算法 (4) 第4章核心代码分析 (6) 第5章复杂度分析 (10) 第6章总结 (11) 参考文献 (13)

第1章题目概述 在这次课程设计中我选的题目是文本编辑,文本编辑几乎是每个使用电脑 的人都会遇到的问题,特别是网络小说作家们。在文本的编辑中,我们会时常 遇到文本信息的统计问题、小型子串的查找问题、子串的查找和删除问题等。 如果靠人自己去观察和执行相关操作的话,不仅累人,而且很容易出错。而使 用计算机程序去实现的话,则会省力不少,而且相对来说非常精确。本程序使 用了较快速的查找算法,可以大大提高检索的效率,相信这可一极大的方便用 户用电脑编辑文本文件。 第1.1节题目要求 文章编辑 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标 点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章; 实现功能 (1)文章内容的输入:包括字母、标点符号、数字等; (2)文章内容的统计:包括文章中大写字母、小写字母、数字、标点符

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

简单画图程序-课程设计

简单画图程序-课程设计 目录 1. 基本功能描 述 ............................................................. 1 2. 设计思路 ................................................................. 1 3. 软件设 计 (3) 3.1 设计步 骤 (3) 3.2 界面设 计 (6) 3.3 关键功能的实 现 ...................................................... 7 4. 结论与心 得体会 ........................................................... 8 5. 参考文 献 ................................................................. 9 6. 思考 题 (9) 7. 附 录 ..................................................................... 9 7.1 调试报 告 (9)

7.2 测试结 果 (10) 7.3 关键源代 码 (1) 武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书 简单画图程序 1. 基本功能描述 1) 在菜单处的有相应的菜单项,可以选择绘制的图形形状,如直线、矩形及椭圆,可 -5可供选择,还可以选择线色以及填充色,通过弹出的颜色对话框选择以选择线宽,有1 需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔以及画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,鼠标弹起,此图形则绘制完毕。 3) 增添了工具栏,有相应的选择项,可以更方便地实现相应的功能。 2. 设计思路 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,则改变画笔和画刷的属性。 3) 鼠标的按下响应LButtonDown(),定义起点的坐标,鼠标的拖动响应MouseMove()改变终点的坐标,鼠标的弹起响应LButtonUp(),刷新,得到绘制图形。

程序设计基础课程设计

1 矩阵的操作(6人) 设有两个矩阵A=(a ij)m×n,B=(b ij)p×q 实现要求: ⑴编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的数组和对应矩阵的行数、列数。(不能使用全局变量) ⑵编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出。 ⑶求矩阵的转置,矩阵的转置A’=(a ji)n×m,转置前输出原矩阵,转置后输出转置矩阵。 ⑷求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C。 C=A+B=(c ij)m×n,其中c ij=a ij+b ij ⑸求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B 如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D。 D=A×B=(d ij)m×q,其中d ij=∑a ik×b kj,k=1,2,……,n ⑹设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。

2 数据汇总 (6人) 问题描述: 在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。 假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: ⑴编写实现将数据记录插入到数据文件的最后的函数; ⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; ⑶统计每台收款机的销售总额; ⑷编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; ⑸以商品为单位,统计每种商品的销售总额。 ⑹设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。

JAVA课程设计画图软件

package hh; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import java.awt.geom.*; class Point { int x,y; Color col; int tool; int boarder; Point(int x, int y, Color col, int tool, int boarder) { this.x = x; this.y = y; this.col = col; this.tool = tool; this.boarder = boarder; } } /* *BasicStroke *Choice *validate(); **/ class paintboard extends Frame implements ActionListener, MouseMotionListener, MouseListener, ItemListener { int xx0=0,yy0=0; int xx1=0,yy1=0; int type=6; int x = -1, y = -1; int con = 1; //画笔大小 int Econ = 5; //橡皮大小 int toolFlag = 0; //toolFlag:工具标记 //toolFlag工具对应表: //(0--画笔);(1--橡皮);(2--清除);

//(3--直线);(4--圆);(5--矩形); Color c = new Color(0,0,0); //画笔颜色 BasicStroke size = new BasicStroke (con,BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);//画笔粗细 Point cutflag = new Point(-1, -1, c, 6, con);//截断标志 Vector paintInfo = null;//点信息向量组 int n = 1; // *工具面板--画笔,直线,圆,矩形,多边形,橡皮,清除*/ Panel toolPanel; Button eraser, drLine,drCircle,drRect; Button clear ,pen; Choice ColChoice,SizeChoice,EraserChoice; Button colchooser; Label 颜色,大小B,大小E; paintboard(String s)//构造函数 { super(s); addMouseMotionListener(this); addMouseListener(this); paintInfo = new Vector(); /*各工具按钮及选择项*/ //颜色选择 ColChoice = new Choice(); ColChoice.add("黑色"); ColChoice.add("红色"); ColChoice.add("蓝色"); ColChoice.add("绿色"); ColChoice.addItemListener(this); //画笔大小选择 SizeChoice = new Choice(); SizeChoice.add("1"); SizeChoice.add("3"); SizeChoice.add("5"); SizeChoice.add("7"); SizeChoice.add("9"); SizeChoice.addItemListener(this); //橡皮大小选择 EraserChoice = new Choice();

行编辑程序

计算机系 上机实验报告 实验项目名称行编辑程序 所属课程名称数据结构 实验类型综合型实验 班级 完整学号 姓名 成绩

实验概述: 【实验目的】 1.练习行编辑程序并写出栈的逻辑结构表示 2.掌握栈的特点并实现栈的存储表示 3.用栈解决行编辑的问题 【实验环境】(使用的软件) Visual C++ 6.0 控制台编程环境 实验内容(不够附页): 【实验方案设计与实验过程】(分析、设计、实验步骤、测试数据、实验结果)一、分析 行编辑程序的功能:接受用户从终端输入的程序或数据,并存入用户的数据区。 较好的做法:设立一个输入缓冲区,用来接收用户输入的一行字符,然后逐行存入用户数据区。 例如,当用户发现刚刚键入放入一个字符是错的时,可补符进一个退格符“#”,以表示前一个字符无效;如果发现当前键入的行内差错较多或难以补救,则可以键入一个退行符“@”,以表示当前行中的字符均无效。 二、设计 使用栈结构实现输入缓冲区 从终端接收一个字符进行判断: 1、不是“#”也不是“@”则压入栈顶 2、是“#”,则栈顶元素出栈 3、是“@”,则栈清空 4、接收到行结束符或全文结束符将数据送入用户数据区 三、实验步骤

四、测试数据 【实验小结】(实验过程中出现的问题、结果分析、出错原因分析等)(实验过程中出现问题举例) 1.问题: 在程序实现过程中,编译时没有出现错误: 但在运行结果时却出现如下错误: 仔细检查程序,发现是由于少写了如下一段程序:case'@':{ while(!StackEmpty(S)) Pop(S,c); };break;//构造空栈S 加上以上语句,再编译执行,程序运行正常。 成绩: 批阅日期:

C语言学习知识必背18个经典编辑程序

C语言必背18个经典程序 1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ } printf("\n");/*每一行后换行*/ } } 2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....*/ main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } } 3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。*/ #include "math.h" main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) {leap=0;break;} if(leap) /*内循环结束后,leap依然为1,则m是素数*/

《测量程序设计课程设计》指导书-2015

测量数据处理程序设计指导书 设计名称:测量数据处理程序设计 计划周数:2周 适用对象:测绘工程专业本科 先修课程:测量学,测量平差基础,大地控制测量,测量程序设计 一、设计目的 测量数据处理程序设计是学生在系统学习完大地控制测量学、测量平差基础、测量程序设计等相关课程之后,为了系统理解控制网平差的整体过程及综合运用科学工具而安排的。通过课程设计主要达到以下几个目的:掌握控制网平差课程设计具体内容、方法和步骤;通过理论联系实际,进一步巩固已学到的专业理论知识,并加深对理论的认识;培养学生对编写代码,上机调试和编写说明书等基本技能;锻炼学生阅读各类编程参考书籍及加以编程运用的能力。 二、设计内容及日程 在VB、 VC软件或matlab科学计算软件的平台上,选择的具体课程设计题目,进行程序设计与实现,共计10个工作日,工作程序如下: 三、设计的组织: 1.设计领导 (1)指导教师:由教研室指派教师、实验员兼任。

职责:全面组织设计大纲的实施,完成分管工作及相关技术指导。 (2)设计队长:学生班长兼任。 职责:协助教师做好本班学生的人员组织工作。 (3)设计组长:每组一人。 职责:组织执行下达的设计任务,安排组内各成员的工作分工。 2.设计分组 学生实习作业组由3~4人组成(含组长一人)。 四、设计内容 在VB、VC或MATLAB 软件平台上,按选择的设计题目进行相关程序开发 1、闭合导线简易平差、附合导线简易平差支导线计算 2、闭合水准网计算、附合水准网简易平差 3、地形图编号(新、旧两种方法) 4、误差椭圆的参数的计算与绘制误差椭圆 5、水准网严密平差 6、高斯正反算计算 7、高斯投影换带计算 8、七参数大地坐标转换(WGS84-bj54坐标转换、WGS84-CGCS2000坐标转换) 9、四参数坐标转换(西安80-bj54坐标转换、CGCS2000-bj54坐标转换、CGCS2000-西安80坐 标转换(平面) 10、大地高转换为正常高的计算 11、工程投影变形超限的处理 12、遥感图像数据处理 13、曲线(曲面)拟合 14、摄影测量空间后方交会 15、****管理信息系统设计与开发 五、上交成果 1) 小组利用vb、vc或matlab编写的软件包一个及测试数据一份 2)小组关于所开发程序设计说明书一份 3) 个人课程设计的心得一份 4)小组答辩PPT一份

课程设计常用数学软件

《常用数学软件介绍》课程设计用Matlab求解下列各题,要求:抄题,写出程序、运行结果,根据要求贴上运行图。 1、求矩阵 211 020 413 A - ?? ? = ? ? - ?? 的逆矩阵1 A-及特征值和特征向量。 解: >> clear; A=[-2 1 1;0 2 0;-4 1 3]; inv(A) [V,D]=eig(A) ans = Columns 1 through 2 Column 3 -1.5000e+000 5.0000e-001 5.0000e-001 0 5.0000e-001 0 -2.0000e+000 5.0000e-001 1.0000e+000 V = Columns 1 through 2 Column 3 -7.0711e-001 -2.4254e-001 3.0151e-001 0 0 9.0453e-001 -7.0711e-001 -9.7014e-001 3.0151e-001 D = -1 0 0 0 2 0 0 0 2 2、化方阵 222 254 245 A - ?? ? =- ? ? -- ?? 为对角阵。 解:A=[2 2 -2;2 5 -4;-2 -4 5]; >> diag(diag(A)) ans = 2 0 0 0 5 0 0 0 5 3、已知 422134 305,203 153211 A B - ???? ? ? =-=-- ? ? ? ? - ???? ,在MA TLAB命令窗口中建立A、B矩阵并对

其进行以下操作: (1) 计算矩阵A 的行列式的值det()A (2) 分别计算下列各式:1122,*,.*,,,,T A B A B A B AB A B A A --- 解: (1)、 A=[4 -2 2;-3 0 5;1 5 3]; >> det(A) ans = -158 (2)、 ans = 7 -7 0 -4 0 13 0 11 5 ans = 12 10 24 7 -14 -7 -3 0 -8 ans = 4 -6 8 6 0 -15 2 -5 3 ans = -2.2204e-016 -6.6613e-016 2.0000e+000 -2.7143e+000 -8.0000e+000 -8.1429e+000 2.4286e+000 3.0000e+000 2.2857e+000 ans = 4.8734e-001 4.1139e-001 1.0000e+000 3.6709e-001 - 4.3038e-001 2.7756e-017 -1.0759e-001 2.4684e-001 1.3878e-017 ans = 24 2 4 -7 31 9 -8 13 36 ans = 4 -3 1 -2 0 5 2 5 3 4、在MA TLAB 中分别利用函数rank 、函数inv 求下列矩阵的秩: (1) 16323540,11124A -?? ?=- ? ?--?? 求 rank(A)=?

C语言课程设计 简单的行编辑器.

语言程序设计报告 姓名: 班级: 学号: 指导教师: 课题:简单的行编辑器

简单的行编辑器 一.题目要求 1.设置一个简单的行编辑器,每行以回车结束。 2.数据以文件形式存储。 3.编辑器具有查找,替代,修改数据的功能。 二.需求分析 根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需要文件具有查找,替换,修改数据的功能。 三.总体设计 根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 编辑,查找,修改,,删除,替换,保存,退出。 四.详细设计 1.主函数 为了各模块的独立性,主函数一般设计得比较简单,本系统主要用主函数打开上次保存的数据和进入主菜单函数 流程图

程序 main() pfile=fopen("Linedit.txt","a+"); readfile(lines,pfile); fclose(pfile); menu(lines); } int readfile(char (*lines)[MAXC],FILE *pfile) { int i=0; while(!feof(pfile)){ fgets(lines[i],MAXC,pfile); /*if(!strstr(lines[i],"\n")) return 1;*/ i++; } return 0; } 2. 主菜单函数 流程图 程序 void menu(char (*lines)[MAXC]){ int selection; do{

system("cls"); puts("\t\t***********************MUNU******************\n\n"); puts("\t\t1.Edit new line"); puts("\t\t2.Replace line"); puts("\t\t3.Delete line"); puts("\t\t4.Search line"); puts("\t\t5.Modify data"); puts("\t\t6.Save"); puts("\t\t0.Exit"); puts("\n\n\t\t********************************************\n"); printf("Please select a number:[ ]\b\b"); do{ scanf("%d",&selection); if(selection<0||selection>6) { printf("Invalid selection!Please try again "); printf("and select a number:[]\b\b\n"); } else break; }while(true); switch(selection) { case 1:edit(lines);break; case 5:modify(lines);break; case 3:mydelete(lines);break; case 4:search(lines);break; case 2:replace(lines);break; case 6:savetofile(lines);break; case 0:myexit(lines); } } while(true); } 3.各功能模块设计 (1)编辑模块 流程图

C++面向对象程序设计课程设计报告

. 课程设计 课程名称C++面向对象程序设计题目名称公司人员管理系统 专业班级13级计算机科学与技术一班学生林涛、甑德胜、梁增辉 吴志伟、齐、江靖 学号51302011015、51302011016、51302011001 51302011037、51302011006、51302011009指导教师郭有强 二○一四年六月二十日

目录 一、引言 (2) 二、课程设计报告 (4) 1、问题描述 (4) 2、系统总体方案 (4) 3、设计思路和主要步骤 (5) 4、各功能模块和流程图 (5) (1)各功能模块 (5) (2)流程图 (6) 三、系统测试 (9) 四、心得体会 (15) 五、参考文献 (17) 附:程序设计代码 (18)

一、引言 1985年,管理信息系统的创始人,高登?戴维斯给出的管理信息系统的定义是:“它是一个利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户一机器系统。它能提供信息,支持企业或组织的运行、管理和决策。”这个定义说明了管理信息系统的组成要素:计算机硬件、软件、数据库、模型库和用户。 随着我国社会的不断进步,人们对管理信息系统越来越重视,再加之管理信息系统在管理方面所产生的巨大影响,也使得人们越来越关注管理信息系统的发展趋势。由于管理信息系统的发展受到以上各种变革因素的制约,传统的管理信息系统必然向现代管理信息系统发展,在这个发展过程中,管理信息系统的发展将会呈现出以下趋势: 管理信息系统将会越来越注重以人为本。管理科学的发展有科学管理理论、行为管理理论和现代管理理论三个发展阶段,正在向着越来越人性化的方向发展,即以人为本。基于管理学的这一研究视角,管理信息系统也将向着更加人性化的方向发展。在今后的管理信息系统中将会越来越注重人的因素,以人为出发点和中心,围绕着激发和调动人的主动性、积极性、创造性展开的,以实现人与社会共同发展的一系列管理活动。而且这种人性化还会贯穿于管理信息系统的开发设计与研究中,具体表现为今后的管理信息系统将具有更加友好的人机界面,易于人们操作,也会考虑到不同用户的不同需求,更加个性化。 管理信息系统向智能化方向发展。随着人工智能技术的发展,数据仓库、数据挖掘技术在管理信息系统中的应用,管理信息系统必将向着智能化方向发展,如产生了很多的决策支持系统、专家系统等等。智能化的管理信息系统具有思维模拟活动,它具有很高的自学习、自组织和进化性,并具有知识创新功能,可以解决非结构化事务,在决策中处于主导地位,是人的向导,在体系上将是大规模分布式计算模式,以基于网络神经元构件的智能网为主。 管理信息系统向集成化方向发展。随着当前系统集成技术的提高,集成技术和方法也逐步地运用到管理信息系统中。由于管理信息系统将包含多个子系统,因此将这些功能集合在一起以便更好地发挥它的作用,这就是集成化的管理信息系统。集成化的管理信息系统将管理信息系统的各个子系统有机地结合起来,达到互通信息、共享数据资源的目的,其支撑技术是数据库和计算机网络。集成管

Java画图软件设计报告

佛山科学技术学院 《可视化编程技术》课程设计报告 画图软件设计 学生姓名:周敏婷 学号: 2011914123 年级专业:11级教育技术学2班指导老师:容汝佳 学院:教育科学学院 广东★佛山 提交日期:2013年6月

目录 1. 前言 (2) 2.概要设计 (3) 2.1 开发环境 (3) 2.2 画图软件功能 (3) 2.3 界面设计 (3) 2.4 类的框架结构图 (4) 3. 详细设计 (4) 3.1 使用的JAVA类的说明 (4) 3.2 类的主要方法 (5) 3.2.1 颜色选择

器 (5) 3.2.2 控制画笔样式 (5) 3.2.3 选取颜色按钮的监听件类 (6) 3.2.4 设计总体认识 (6) 3.2.5 程序流程图 (7) 4. 运行结果 (7) 5. 测试分析 (8) 5.1 程序运行情况 (8) 6. 源程序 (8) 参考文献 (14) 设计总

结 (14)

摘要:该程序是一个图形界面的简单的java画图软件,具有良好的界面,使用人员能快捷简单地进行操作。该画图软件操作较为简单,只需要一直按着左键就能根据你鼠标移动的方面,画出你想要的图案。你也可以选择你自己想到的颜色和画笔的粗细。而且可以显示你当前的画笔的状态。界面为灰白对称。是一个非常简单的作图工具,让人能轻松上手。 关键字:java,画图类,方法,事件 1 前言 随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的画图工具,可以实现简单的画图作图功能,满足日常基本的工作学习和娱乐需要。 Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。 Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet 所需的应用程序编程接口(API)。Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。还有Java 2 企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。 Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java语言去掉了C++语言的一些容易引起错误的特性。Java语言的特点有:面向对象、跨平台、安全性、多线程和图

相关文档
相关文档 最新文档