最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

记事本代码

IT圈 admin 30浏览 0评论

2024年2月25日发(作者:边小之)

记事本代码

#include

#include

#include //为了以下使用isdigit(string)函数作铺垫

typedef struct node{

char a[100]; //每行100字符

node * next; //关于此处next的作用还不清楚,但不可去掉

}node;

class notepad{

public:

notepad(){

i=1;

line=0;

}

~notepad(){}

void operator_interface();

void input();

void ct_input();

void delete1();

void copy();

void paste();

void open();

void save();

char * find();

void print();

char store[100]; //储存需复制内容

private:

char * ptr_array[100]; //指针数组,记录100行行指针

int linelen[100]; //最大100行

int line; //当前总行数

char d[30]; //记录操作数据

int k,l; //记录当前查找行il

int i; //文档录入初始标记

};

void notepad::operator_interface(){

cout<<"********************************************************"<

cout<<"***0.继续录入文档"<

cout<<"***1.输入文档内容"<

cout<<"***2.删除某些内容"<

cout<<"***3.复制某些内容"<

cout<<"***4.粘贴某些内容"<

cout<<"***5.打开文档内容"<

cout<<"***6.是否保存文档"<

cout<<"***7.获取操作帮助"<

cout<<"***8.我要结束操作"<

cout<<"********************************************************"<

}

void notepad::input(){

-99"<

char e[10];

cin>>e;

char *lin=e;

if(*(lin+2)=='0'&&isdigit(*lin)&&isdigit(*(lin+1))){

line=(*lin-'0')*10+(*(lin+1)-'0');

if(line!=0){

cout<<"请输入各行内容"<

while(i<=line){

cout<<"第"<

node *p=new node;

cin>>p->a;

ptr_array[i]=p->a;

linelen[i]=strlen(p->a);

i++;

}

}

else cout<<"你输入的行数有误"<

}

else cout<<"你输入的行数有误"<

void notepad::ct_input(){

if(line!=0){

int i=line+1;

cout<<"输入要录入的总行数,格式:01-99"<

char e[10];

cin>>e;

char *lin=e;

if(*(lin+2)=='0'&&isdigit(*lin)&&isdigit(*(lin+1))){

line=line+(*lin-'0')*10+(*(lin+1)-'0');

if(line!=0){

cout<<"请输入各行内容"<

while(i<=line){

cout<<"第"<

node *p=new node;

cin>>p->a;

ptr_array[i]=p->a;

linelen[i]=strlen(p->a);

i++;

}

}

else cout<<"你输入的行数有误"<

}

else cout<<"你输入的行数有误"<

}

else cout<<"当前文档并无内容,请先输入1录入文档"<

}

void notepad::print(){

cout<

int j=1;

cout<<"当前文档内容为:"<

while(j<=line){

cout<<"第"<

char *q=ptr_array[j];

while(*q!='0'){

cout<<*q;

q++;

}

cout<

j++;

}

cout<

}

char * notepad::find(){ //暂未解决跨行查找问题

k=1;

cin>>d;

l=strlen(d);

char *n=d;

int c=1;

char *m=ptr_array[k];

while(k<=line){

if(*m=='0'){

k=k+1;

if(k<=line)m=ptr_array[k];

}

if(*m!='0'&&*m!=*n)m++;

while(*n!='0'&&*m!='0'&&*m==*n){

m=m+1;

n=n+1;

c=c+1;

}

if(*n=='0'){

return m-c+1;

}

else {

n=d;

c=1;

}

}

return NULL;

}

void notepad::delete1(){

char * dp1;

char * dp2;

cout<<"请输入要删除的文本前几位字符,注意区分"<

dp1=find();

int l1=k;

cout<<"请输入要删除的文本末几位字符,注意区分"<

dp2=find();

int l2=k;

if(dp1==NULL||dp2==NULL||l1>l2)cout<<"输入错误"<

else{

dp2=dp2+l;

if(l1==l2){

while(*dp2!='0'){

*dp1=*dp2;

dp1++;

dp2++;

}

*dp1='0';

linelen[l1]=strlen(ptr_array[l1]);

}

else {

if(l1+1

for(int

t1=l1+1,t2=l2;t2<=line;t1++,t2++)ptr_array[t1]=ptr_array[t2];

line=line-l2+l1+1;

l2=l1+1;

}

*dp1='0';

char *dp21=ptr_array[l2];

while(*(dp2-1)!='0'){

*dp21=*dp2;

dp21++;

dp2++;

}

linelen[l1]=strlen(ptr_array[l1]);

linelen[l2]=strlen(ptr_array[l2]);

}

if(linelen[l1]==0){

for(int v=l1;v<=line;v++)ptr_array[v]=ptr_array[v+1];

line--;

}

if(linelen[l2]==0){

for(int v=l2;v<=line;v++)ptr_array[v]=ptr_array[v+1];

line--;

}

}

}

void notepad::copy(){

char * cp1;

char * cp2;

cout<<"请输入要复制的文本前几位字符,注意区分"<

cp1=find();

int l1=k;

cout<<"请输入要复制的文本末几位字符,注意区分"<

cp2=find();

int l2=k;

char *pt=store;

if(cp1!=NULL&&cp2!=NULL&&l1<=l2){

cp2=cp2+l;

while(cp1!=cp2){

if(*cp1=='0'){

l1++;

cp1=ptr_array[l1];

}

else {

*pt=*cp1;

pt++;

cp1++;

}

}

*pt='0';

}

else cout<<"输入错误"<

void notepad::paste(){

cout<<"请输入要粘贴位置的前几位字符(在首字符后粘贴)"<

char *pat=find();

if(pat!=NULL){

int choice2;

cout<<"请选择要粘贴内容:1/从内存中0/我自己输入"<

cin>>choice2;

if(!choice2)cin>>store;

char *ppt=store;

for(char *pat1=pat;*(pat1+1)!='0';pat1++); //定位至末尾

int pl=strlen(store);

*(pat1+pl+1)='0';

while(pat1!=pat){ //移位

*(pat1+pl)=*pat1;

pat1--;

}

pat++;

for(int u=1;u<=pl;u++){

*pat=*ppt;

ppt++;

pat++;

}

linelen[k]=linelen[k]+pl;

}

else cout<<"输入错误"<

}

void notepad::open(){

print();

}

void notepad::save(){

cout<<"是否保存文件,1/是0/否"<

char g[10];

int choice1;

cin>>g;

char *choi=g;

if(*(choi+1)=='0'&&isdigit(*choi)){

choice1=*choi-'0';

if(choice1==1)cout<<"文件已保存"<

else if(choice1==0){

for(int w=1;w<=line;w++){ //相当于析构函数的

作用

ptr_array[w]=NULL;

linelen[w]=0;

}

line=0;

}

else cout<<"输入错误"<

}

else cout<<"输入错误"<

void main(){

cout<<"欢迎使用本程序,您可以在要输入文档内容时通过切换输入法实现输入汉字,by

hk"<

notepad b;

or_interface();

char f[10];

int choice;

cin>>f;

char *choic=f;

if(*(choic+1)=='0'&&isdigit(*choic)){ //错误输入处理机制

choice=*choic-'0';

}

else choice=9;

while(choice!=8){

switch(choice){

case 0:

_input();

break;

case 1:

();

break;

case 2:

1();

();

break;

case 3:

{

();

cout<

char *p_t=;

int fzcd=strlen();

cout<<"你所要复制的内容长度为"<

cout<<"你所要复制的内容为"<

while(*p_t!='0'){

cout<<*p_t;

p_t++;

}

cout<

}

break;

case 4:

();

();

break;

case 5:

();

break;

case 6:

();

break;

case 7:

or_interface();

break;

case 8:

break;

default:

break;

}

if(choice==9||(choice>=0&&choice<=7)){ //输入错误时的操作及输入正确时 //的继续操作判断

if(choice==9)cout<<"你输入的操作有误,请重新输入,输入 7 获取操作帮助"<

else cout<<"继续你的操作,输入 7 获取操作帮助"<

cin>>f;

choic=f;

if(*(choic+1)=='0'&&isdigit(*choic)) //错误输入处理机

choice=*choic-'0';

else choice=9;

}

}

cout<<"感谢您的使用"<

}

2024年2月25日发(作者:边小之)

记事本代码

#include

#include

#include //为了以下使用isdigit(string)函数作铺垫

typedef struct node{

char a[100]; //每行100字符

node * next; //关于此处next的作用还不清楚,但不可去掉

}node;

class notepad{

public:

notepad(){

i=1;

line=0;

}

~notepad(){}

void operator_interface();

void input();

void ct_input();

void delete1();

void copy();

void paste();

void open();

void save();

char * find();

void print();

char store[100]; //储存需复制内容

private:

char * ptr_array[100]; //指针数组,记录100行行指针

int linelen[100]; //最大100行

int line; //当前总行数

char d[30]; //记录操作数据

int k,l; //记录当前查找行il

int i; //文档录入初始标记

};

void notepad::operator_interface(){

cout<<"********************************************************"<

cout<<"***0.继续录入文档"<

cout<<"***1.输入文档内容"<

cout<<"***2.删除某些内容"<

cout<<"***3.复制某些内容"<

cout<<"***4.粘贴某些内容"<

cout<<"***5.打开文档内容"<

cout<<"***6.是否保存文档"<

cout<<"***7.获取操作帮助"<

cout<<"***8.我要结束操作"<

cout<<"********************************************************"<

}

void notepad::input(){

-99"<

char e[10];

cin>>e;

char *lin=e;

if(*(lin+2)=='0'&&isdigit(*lin)&&isdigit(*(lin+1))){

line=(*lin-'0')*10+(*(lin+1)-'0');

if(line!=0){

cout<<"请输入各行内容"<

while(i<=line){

cout<<"第"<

node *p=new node;

cin>>p->a;

ptr_array[i]=p->a;

linelen[i]=strlen(p->a);

i++;

}

}

else cout<<"你输入的行数有误"<

}

else cout<<"你输入的行数有误"<

void notepad::ct_input(){

if(line!=0){

int i=line+1;

cout<<"输入要录入的总行数,格式:01-99"<

char e[10];

cin>>e;

char *lin=e;

if(*(lin+2)=='0'&&isdigit(*lin)&&isdigit(*(lin+1))){

line=line+(*lin-'0')*10+(*(lin+1)-'0');

if(line!=0){

cout<<"请输入各行内容"<

while(i<=line){

cout<<"第"<

node *p=new node;

cin>>p->a;

ptr_array[i]=p->a;

linelen[i]=strlen(p->a);

i++;

}

}

else cout<<"你输入的行数有误"<

}

else cout<<"你输入的行数有误"<

}

else cout<<"当前文档并无内容,请先输入1录入文档"<

}

void notepad::print(){

cout<

int j=1;

cout<<"当前文档内容为:"<

while(j<=line){

cout<<"第"<

char *q=ptr_array[j];

while(*q!='0'){

cout<<*q;

q++;

}

cout<

j++;

}

cout<

}

char * notepad::find(){ //暂未解决跨行查找问题

k=1;

cin>>d;

l=strlen(d);

char *n=d;

int c=1;

char *m=ptr_array[k];

while(k<=line){

if(*m=='0'){

k=k+1;

if(k<=line)m=ptr_array[k];

}

if(*m!='0'&&*m!=*n)m++;

while(*n!='0'&&*m!='0'&&*m==*n){

m=m+1;

n=n+1;

c=c+1;

}

if(*n=='0'){

return m-c+1;

}

else {

n=d;

c=1;

}

}

return NULL;

}

void notepad::delete1(){

char * dp1;

char * dp2;

cout<<"请输入要删除的文本前几位字符,注意区分"<

dp1=find();

int l1=k;

cout<<"请输入要删除的文本末几位字符,注意区分"<

dp2=find();

int l2=k;

if(dp1==NULL||dp2==NULL||l1>l2)cout<<"输入错误"<

else{

dp2=dp2+l;

if(l1==l2){

while(*dp2!='0'){

*dp1=*dp2;

dp1++;

dp2++;

}

*dp1='0';

linelen[l1]=strlen(ptr_array[l1]);

}

else {

if(l1+1

for(int

t1=l1+1,t2=l2;t2<=line;t1++,t2++)ptr_array[t1]=ptr_array[t2];

line=line-l2+l1+1;

l2=l1+1;

}

*dp1='0';

char *dp21=ptr_array[l2];

while(*(dp2-1)!='0'){

*dp21=*dp2;

dp21++;

dp2++;

}

linelen[l1]=strlen(ptr_array[l1]);

linelen[l2]=strlen(ptr_array[l2]);

}

if(linelen[l1]==0){

for(int v=l1;v<=line;v++)ptr_array[v]=ptr_array[v+1];

line--;

}

if(linelen[l2]==0){

for(int v=l2;v<=line;v++)ptr_array[v]=ptr_array[v+1];

line--;

}

}

}

void notepad::copy(){

char * cp1;

char * cp2;

cout<<"请输入要复制的文本前几位字符,注意区分"<

cp1=find();

int l1=k;

cout<<"请输入要复制的文本末几位字符,注意区分"<

cp2=find();

int l2=k;

char *pt=store;

if(cp1!=NULL&&cp2!=NULL&&l1<=l2){

cp2=cp2+l;

while(cp1!=cp2){

if(*cp1=='0'){

l1++;

cp1=ptr_array[l1];

}

else {

*pt=*cp1;

pt++;

cp1++;

}

}

*pt='0';

}

else cout<<"输入错误"<

void notepad::paste(){

cout<<"请输入要粘贴位置的前几位字符(在首字符后粘贴)"<

char *pat=find();

if(pat!=NULL){

int choice2;

cout<<"请选择要粘贴内容:1/从内存中0/我自己输入"<

cin>>choice2;

if(!choice2)cin>>store;

char *ppt=store;

for(char *pat1=pat;*(pat1+1)!='0';pat1++); //定位至末尾

int pl=strlen(store);

*(pat1+pl+1)='0';

while(pat1!=pat){ //移位

*(pat1+pl)=*pat1;

pat1--;

}

pat++;

for(int u=1;u<=pl;u++){

*pat=*ppt;

ppt++;

pat++;

}

linelen[k]=linelen[k]+pl;

}

else cout<<"输入错误"<

}

void notepad::open(){

print();

}

void notepad::save(){

cout<<"是否保存文件,1/是0/否"<

char g[10];

int choice1;

cin>>g;

char *choi=g;

if(*(choi+1)=='0'&&isdigit(*choi)){

choice1=*choi-'0';

if(choice1==1)cout<<"文件已保存"<

else if(choice1==0){

for(int w=1;w<=line;w++){ //相当于析构函数的

作用

ptr_array[w]=NULL;

linelen[w]=0;

}

line=0;

}

else cout<<"输入错误"<

}

else cout<<"输入错误"<

void main(){

cout<<"欢迎使用本程序,您可以在要输入文档内容时通过切换输入法实现输入汉字,by

hk"<

notepad b;

or_interface();

char f[10];

int choice;

cin>>f;

char *choic=f;

if(*(choic+1)=='0'&&isdigit(*choic)){ //错误输入处理机制

choice=*choic-'0';

}

else choice=9;

while(choice!=8){

switch(choice){

case 0:

_input();

break;

case 1:

();

break;

case 2:

1();

();

break;

case 3:

{

();

cout<

char *p_t=;

int fzcd=strlen();

cout<<"你所要复制的内容长度为"<

cout<<"你所要复制的内容为"<

while(*p_t!='0'){

cout<<*p_t;

p_t++;

}

cout<

}

break;

case 4:

();

();

break;

case 5:

();

break;

case 6:

();

break;

case 7:

or_interface();

break;

case 8:

break;

default:

break;

}

if(choice==9||(choice>=0&&choice<=7)){ //输入错误时的操作及输入正确时 //的继续操作判断

if(choice==9)cout<<"你输入的操作有误,请重新输入,输入 7 获取操作帮助"<

else cout<<"继续你的操作,输入 7 获取操作帮助"<

cin>>f;

choic=f;

if(*(choic+1)=='0'&&isdigit(*choic)) //错误输入处理机

choice=*choic-'0';

else choice=9;

}

}

cout<<"感谢您的使用"<

}

发布评论

评论列表 (0)

  1. 暂无评论