神秘国度的爱情故事 (精选范文)

合集下载

一个跨越国界的恋情故事

一个跨越国界的恋情故事

一个跨越国界的恋情故事
学芝
【期刊名称】《健康生活》
【年(卷),期】2011(000)003
【摘要】等着我,我会归来,在岁月那边。

一切虽然很遥远,又像在眼前,穿过茫茫的风雪,和秋雨绵绵,即使音讯全阻断,希望仍蔓延……
【总页数】4页(P47-50)
【作者】学芝
【作者单位】不详
【正文语种】中文
【中图分类】C913.1
【相关文献】
1.人与异类婚恋故事的情节结构分析——兼谈人仙恋与人妖恋情节之异同
2.生与死的恋情——“人鬼夫妻”型故事解析
3.从写一个“好故事”到“写好”一个故事
4.从写一个“好故事”到“写好”一个故事
5.飞来的恋情——柯姑娘与兵哥哥的故事
因版权原因,仅展示原文概要,查看原文内容请购买。

七夕的神奇魔法 一个神秘的爱情故事

 七夕的神奇魔法 一个神秘的爱情故事

七夕的神奇魔法一个神秘的爱情故事七夕的神奇魔法一个神秘的爱情故事月下,一轮皎洁的明月挂在天空,犹如一颗眼泪般,静静地注视着这个世界。

这是一个特殊的夜晚,七夕节的夜晚,也是爱情的日子。

在这个晚上,世界上的每一对恋人都渴望着一份神奇的魔法,一份能够让他们的爱情更加奇妙的魔法。

故事发生在一个古老而神秘的小镇上。

这个小镇被传说是有七夕之神在守护的地方。

据说,只要在七夕之夜来到这里,且坚定地对着七夕之神许下心愿,他会给予你一种神奇的魔法,让你的愿望在爱情中实现。

马克和凯莉是这个小镇上最年轻、最美丽的一对情侣。

他们相识于高中时,互相吸引,相爱以后,每年的七夕他们都会来到这个小镇,追寻着那份神秘的魔法。

今年,他们来到小镇时正值七夕的前一天,马克为凯莉准备了一份惊喜。

他带着她来到山顶上的一个寺庙,那里据说是七夕之神出现的地方。

月色洒在他们身上,一切都显得那么宁静而神奇。

马克拿出一个小小的纸条递给了凯莉。

纸条上写着:“亲爱的凯莉,七夕之神的魔法就藏在这个小镇上,只要我们愿意,他会给我们带来一种让我们更加相爱的魔法。

你有什么愿望,可以许下来。

”凯莉轻轻地抚摸着马克的脸庞,眼睛里充满了情感。

她小心翼翼地把纸条放到了嘴唇上,然后面对着空荡荡的寺庙,坚定地许下了她的愿望。

就在那一刻,寺庙里突然升起了一束奇异的光芒,像是一道神奇的魔法束缚住了马克和凯莉。

他们觉得自己的身体变得轻飘飘的,手牵着手,向着光芒的方向漂浮而去。

当他们重新睁开眼睛的时候,发现自己已经置身于一个与世隔绝的花园中。

这个花园美丽而宁静,各种鲜花散发着迷人的香气,鸟儿在树梢上歌唱。

在花园的正中央,是一棵高耸入云的七夕神树。

凯莉和马克惊讶地望着眼前的场景,心中充满了疑惑和欢喜。

他们开始四处探索,寻找着这个花园的秘密。

而随着他们的脚步,他们发现这个花园里有一些小纸条。

马克轻轻拣起一张小纸条,上面写着:“爱情是一种神奇的魔法,它能让人变得更美好。

只要你们相信,并用心去守护,爱的魔力将会带给你们幸福。

神秘国度的爱情故事(精选范文)

神秘国度的爱情故事(精选范文)

神秘国度的爱情故事(精选范文)软件综合课程设计神秘国度的爱情故事活期储蓄帐目管理二〇一四年六月神秘国度的爱情故事1.问题陈述输入要求:输入由若干组测试数据组成。

每组数据的第1行包含一正整数n(1≤n≤50000),代表神秘国度中小村的个数,每个小村即从0到n-1编号。

接下来有n-1行输入,每行包含一条双向道路的两端小村的编号,中间用空格分开。

之后一行包含一正整数m(1≤m≤500000),代表着该组测试问题的个数。

接下来m行,每行给出a,b,c 三个小村的编号,中间用空格分开。

当n为0时,表示全部测试结束,不要对该数据做任何处理。

输出要求:对每一组测试给定的a,b,c,在一行里输出答案,即:如果c在a 和b 之间的路径上,输出yes,否则输出no。

2.程序代码//神秘国度的爱情故事代码#include<iostream>using namespace std;#define maxnode 100 //图中顶点的最大个数typedef char elemtype; //顶点的数据类型struct node //定义边的表结点{ int adjvex; //邻接点在顶点向量中的下标 struct node *next; //指向下一邻接点的指针};typedef struct //定义顶点结点{ elemtype vertex; //顶点信息node *firstarc; //指向第一邻接点的指针 }vernode;typedef struct{ vernode vertices[maxnode];//定义邻接表int vexnum,arcnum; //顶点和边的数目}algraph;algraph creatgraph(algraph g){//建立图函数int i,j,k; //i,j,k用于边和顶点的建立 node *p; //用于新生成顶点的指针cout<<输入小村的个数:<<endl;cin>>g.vexnum;g.arcnum=g.vexnum-1;for(i=0;i<g.vexnum;i++){g.vertices[i].firstarc=null;}cout<<输入道路两端小村的编号(<<g.vexnum-1<<次,中间用空格分开):<<endl;for(k=0;k<g.arcnum;k++){cin>>i>>j;p=(node*)malloc(sizeof(node));p->adjvex=j;p->next=g.vertices[i].firstarc;g.vertices[i].firstarc=p;//用头插法p=(node*)malloc(sizeof(node));p->adjvex=i;p->next=g.vertices[j].firstarc;g.vertices[j].firstarc=p;}return g;}int visited[maxnode]; //用于深度遍历记住遍历过的顶点algraph g; //全局图int w; //记住c【j】点int count=0; //计数器,深度优先后,保存是否在ab间int count1=0; //辅助计数器,判断abc是否重复void dfs(algraph g,int a,int b,int c){//g为邻接表存储的图,从第v个顶点出发递归的深度优先遍历函数if(a==c||b==c)count1++; //如果遍历到a或b点辅助计数器加一visited[c]=1; node *p;p=(node*)malloc(sizeof(node)); //为p申请空间p=g.vertices[c].firstarc; //指向c的第1邻接点的指针while(p!=null){if(!visited[p->adjvex]){ dfs(g,a,b,p->adjvex); } //访问p的顶点向量中的下标if(p->adjvex==w&&count1==1)count=1; //如果辅助计数器为一且遍历返回到c时计数器为一if(count==1)break;p=p->next; //遍历到已被遍历的顶点从此顶点的下一邻接点}}void if(algraph g){ //判断c是否在a和b之间,原理是判断是否在一次探测,还是产生回溯int d; //d为判断的次数cout<<输入测试的次数:<<endl;cin>>d;值 int a[10],b[10],c[10]; //记住每次用于测试a、b、c的cout<<输入a,b,c三个小村的编号(<<d<<次,中间用空格分开):<<endl;for(int i=0;i<d;i++){ cin>>a[i]>>b[i]>>c[i]; }cout<<显示测试结果:<<endl;for(int j=0;j<d;j++){w=c[j];dfs(g,a[j],b[j],c[j]);if(count==1)cout<<yes恭喜你将找到命中的恋人<<endl;//在遍历a 或b后又重新遍历到cif(count==0)cout<<no你将与她错过 <<endl; //在遍历了a和遍历了b之后又从新遍历到cfor(int k=0;k<=g.vexnum;k++)visited[k]=0;count=0;count1=0; //计数器清0}}void main(){cout<< 《故事背景介绍》\n<<endl;cout<< /* 欢迎来到神秘国度,在神秘国度里你将找到命中的恋人*/\n<<endl;cout<< 。

七夕神秘传说点亮你的爱情

七夕神秘传说点亮你的爱情

七夕神秘传说点亮你的爱情七夕,这个浪漫的节日,历经千年的传承,蕴含着一段段神秘的爱情传说,点燃了世间无数动人的爱情故事。

在这个特殊的日子里,让我们一同踏进爱情的神秘世界,感受那些令人心动的故事,或许能够点亮你内心深处的爱情之火。

早在古代,就有一对令人艳羡的神仙姐弟——织女和牛郎。

他们一见钟情,却因身份不同无法相守。

织女被迫返回天界,但这份纯真的感情让他们拼尽一切努力,终于得到了天帝的同意,只有在每年的七夕之夜,才能相见。

于是,织女披上婚纱,步出天界,与牛郎共度浪漫的一夜。

这个故事传承至今,成为人们追求真爱的见证,也让我们相信,真挚的爱情是可以跨越时空和身份的。

在中国古代文化中,七夕也有另外一个故事,那就是“鹊桥相会”。

相传,每年的七夕之夜,天上的鹊桥会连接起牛宿和织女星,让他们可以相聚。

人们将这一天视为神仙姐弟相会的时刻,纷纷在庭院里摆放桃木桥,以示对爱情的向往。

而这座桥中最有名的,当属牛郎织女相会的银河桥,让人们无限遐想。

除了中国,世界各地也有自己独特而神秘的爱情传说。

比如,希腊神话中的英勇喜马拉雅英雄奥菲斯与妻子尤丽狄丝,他们的爱情被人们誉为是世界上最动人的爱情之一。

奥菲斯在妻子死后毅然决然地闯入地狱,用自己的琴声打动了冥王,得到了允许,将妻子带回阳世。

这段感人至深的故事流传至今,让我们相信爱情是无坚不摧的力量,也让我们明白,只要我们愿意付出,爱情的神奇力量就会带领我们穿越难关。

爱情,永远是人们心中最温暖的话题。

在爱情的世界里,故事层出不穷,每个人都可以成为爱情的主角。

不论是现实中的平凡爱情还是神秘的传说,每一刻都散发着独特的光芒。

正如七夕这个浓郁的节日,每年都能燃起人们对爱情的热情。

人们期待着一种真挚、纯粹、宽容的爱情,期待七夕的夜晚,让那颗追逐真爱的心得以满足。

让我们一同点亮内心深处的爱情之火,跟随这七夕的神秘传说,追寻属于自己的浪漫故事。

在这个特殊的日子里,抛去俗世的纷扰,释放内心的渴望,让爱在这天空之下悄悄绽放。

一个神秘的国度

一个神秘的国度

一个神秘的国度
在一个神秘的国度
存在一座叫MOBB的魔“发”城堡
它的名字源自于一名少女对母亲深深的爱意
以及对美好幸福生活的追求
城堡建造者Mr.李河伟在一次环球旅行遇到一位叫麦布的法国姑娘Mr.李被麦布对母亲爱的故事深深感动
就以麦布姑娘的名字命名了城堡
Mr.李想哪种魔法才能让人们不用折磨自己头发的同时
又拥有一头完美的秀发呢
还能使他们随时塑造自己的百变造型..
在Mr.李的带领下
听说后来住在里面的人都新学会了一种魔“发”
所有美丽的女子,都应得到美好的事物,用美好赢得美丽他们辛勤劳作变出各种不同时下最流行的发型
MOBB 是美丽的化身 无论细节还是整体
都贴合像MOBB 一样需要爱 需要更美丽的女人
MOBB 给你最好的自己
用魔“发”给世界各地的人们变幻造型 给你每天不同的自己
还能看出这是一个人吗?
MOBB神奇魔“发”可以让人们瞬间年轻美丽
更加自信时尚脱发掉发白发什么的都不是问题~
在自己的秘密花园
安静独处
不被打扰的时空
比风声还轻
没有束缚的世界心情彻底放松
可以什么都不想
像微风中的花呼吸着
也可以什么都想
像蓝天里的一朵云随时改变形状
每一次改变都是一段美丽的时光
每一次相遇
都是一场心灵的逃逸
改变与美丽相遇心灵逸入淡淡的预约之境
MOBB迈博让你遇见
最美的自己。

爱情故事跨越时空的相思

爱情故事跨越时空的相思

爱情故事跨越时空的相思在广袤的时空中,爱情的力量如一束绚丽的光芒,将相思之情穿越时空的阻隔,奇迹般地连接了彼此的心灵。

这是一个让人心动的爱情故事,让我们一同探索爱情的力量如何超越时间与空间。

第一章:相遇之初在一个寒冷的冬日,女主角莉娜来到了一座小镇。

她是一个现代女性,自信而独立。

然而,这个小镇却充满了古老的魅力,仿佛时间在这里静止了。

在一次偶然的机会下,莉娜遇见了一个名叫亚历克斯的年轻画家。

他们的眼神交汇,灵魂仿佛互相认知。

于是,爱情的种子在时空中发芽。

第二章:相思之约尽管时空的限制,莉娜和亚历克斯决定放下一切,勇敢地追寻彼此的爱情。

他们发誓要共同创造一个属于他们的时空胡同,在这里,时间与空间无法阻挡他们的相思。

每天晚上,当月光洒过窗台,莉娜和亚历克斯相约心灵旅行。

他们分享彼此的日常,交换琐事,就像身边的人一样。

第三章:相聚与别离时间流转,命运却开始嬉笑捉摸。

莉娜和亚历克斯发现他们所处的时空相差悬殊,让两颗相爱的心对峙在行星间。

但他们从未停止寻找时间旅行的可能性。

最终,莉娜找到了一个可以穿越时空的科学家,他们联手尝试用科技将两个时空连接起来。

第四章:爱情的纽带经过不懈努力,莉娜和亚历克斯终于寻找到了穿越时空的方法。

在那个神秘的时空胡同中,他们对彼此的相思之情更加深刻了解。

尽管时间仓促,他们依旧坚信爱情的力量,决心让彼此的相遇变成永恒。

第五章:跨越时空的相守莉娜和亚历克斯决定做出牺牲,放弃现实世界的束缚,选择永远留在那时空胡同中。

他们在那里建起了一个美丽的家园,用色彩和音符诉说着爱情故事。

他们的爱情跨越了时空的阻隔,成为了人们长久以来讲述的美丽传说。

结语:爱情是伟大的力量,它可以超越时空与空间的限制。

在这个爱情故事中,我们看到了莉娜和亚历克斯为了彼此愿意付出一切的勇气和决心。

他们相信,只要有爱,就能跨越一切困难和阻碍,让爱情的火焰燃烧在心中,永不消失。

无论是现实世界还是时空胡同,他们的相思之情永远存在于彼此的心灵深处。

神秘的爱情故事

神秘的爱情故事

神秘的爱情故事也许,从男孩看到女孩的第一眼就爱上了她。

那时,他们还都是青春期的孩子。

早熟的女孩心中根本没有这个其貌不扬的男孩,但还是愿意把这当做少女时代美好的记忆。

一晃,三年过去了。

女孩上了高中,那是冲着大学去的。

男孩的成绩却只够上职专,他们注定没有机会牵手。

接下来,女孩上了大学,男孩开了出租车。

再往后,女孩出了国,博客里贴的全是她在国外拍的照片,一下子德国,一下子法国,一下子比利时,时不时还会有金发碧眼的外国男友相伴左右。

男孩和女孩彻底成为两个世界的人,毫无疑问。

后来,那是一段没有人见证的“后来”。

认识男孩和女孩的人发现,男孩在寻找一切机会出国。

目标瞄准女孩的居住地法国,拒签;然后是欧洲境内随便什么国家,还是拒签;接着是韩国日本马来西亚……男孩想得很简单,到哪个国家并不重要,重要的是,一定要先出去,才能追随在女孩的身边。

屡战屡败的男孩依旧不屈不挠地屡败屡战。

身边的人都劝他放弃。

她不爱你。

她心里根本没有你。

她已经有男朋友了。

你对她来说什么都不是。

你本将心托明月,奈何嫦娥想八戒……男孩不听,此时的他所追随的,已不再是那个扎着两条小辫子的女孩了;而是他的爱情,他的梦想,他的全部。

从第一眼到现在,十九年过去了。

边开出租车边听教学碟的男孩,终于考出了雅思5.5的傲人成绩,澳大利亚将迎来一个痴情的中国男人。

送行酒会上,有人祝贺男孩终于实现了梦想,也有人预测这只是万里长征的第一步。

曾经年少的男孩如今已是壮年,此刻醉步蹒跚,拿起话筒唱着《我是一只小小鸟》,歌声既悲壮又幸福。

无法想象这份对爱的追随会以怎样的结局收场,也许只是一份和爱有关的记忆。

16岁的时候喜欢过一个男孩子,他在我的前排坐。

很奇怪的是,这样的前后桌维持了一个学期,我们始终未曾说过一句话。

我喜欢他,这个秘密连我最好的朋友都不知道。

暑假在盛夏的知了声中轰鸣而至,那个夏天的雨水格外多,整个暑假都湿漉漉地带着一股子因长久不见日光而发霉的气味。

我去学校传达室查找同学寄来的一封信,却在准备回家时遭遇一场暴雨,无奈只好与传达室百无聊赖的阿姨东拉西扯地聊着这可恶的天气。

表达爱意的睡前故事

表达爱意的睡前故事

表达爱意的睡前故事
在一个遥远的国度,有一个叫做花溪的小村庄。

村子里的居民们以种植美丽的花朵为生。

在这个村子里,有一个叫做雪儿的少女。

她有着黑亮的头发,晶莹剔透的眼眸,以及如花瓣般柔软的嘴唇。

雪儿在村子里的一家花店里工作,她每天都会早早地起床,去照顾那些盛开的花朵。

她的双手就像被花朵染过一样,白皙而美丽。

村子里的人们都很喜欢到花店里买花,因为雪儿总是会为他们推荐最适合的花束。

有一天,一个穿着白色袍子的精灵来到了花溪村。

他听说了雪儿的名字,决定要考验考验这个善良的女孩。

精灵变成了一个贫穷的旅行者,来到了花店前。

“请问这里有最美丽的花朵吗?”旅行者问雪儿。

“是的,我们这里有各种各样的美丽花朵。

”雪儿微笑着回答。

“那么,我想买一束最美丽的花朵,送给我心爱的人。

”旅行者说。

雪儿为旅行者推荐了一束最美丽的花朵,但旅行者却说:“这束花很美,但我希望这束花能永远保持新鲜。


雪儿有些为难,但她决定去找精灵帮忙。

精灵告诉雪儿,只有用爱意才能让花朵永远保持新鲜。

雪儿明白了,她决定用自己的爱来守护这束花。

从那天起,雪儿每天都会用心照顾那束花,就像照顾自己的心一样。

每当有人来买花时,她都会告诉他们:“这束花是爱意的象征,它
永远会保持新鲜。


时间过去了很久,那个贫穷的旅行者终于带着他的心爱的人来到了花店。

当他们看到那束永远保持新鲜的花朵时,感动得流下了眼泪。

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

软件综合课程设计神秘国度的爱情故事活期储蓄帐目管理二〇一四年六月神秘国度的爱情故事1.问题陈述输入要求:输入由若干组测试数据组成。

每组数据的第1行包含一正整数n(1≤n≤50000),代表神秘国度中小村的个数,每个小村即从0到n-1编号。

接下来有n-1行输入,每行包含一条双向道路的两端小村的编号,中间用空格分开。

之后一行包含一正整数m(1≤m≤500000),代表着该组测试问题的个数。

接下来m行,每行给出a,b,c 三个小村的编号,中间用空格分开。

当n为0时,表示全部测试结束,不要对该数据做任何处理。

输出要求:对每一组测试给定的a,b,c,在一行里输出答案,即:如果c在a和b 之间的路径上,输出yes,否则输出no。

2.程序代码//神秘国度的爱情故事代码#include&lt;iostream&gt;using namespace std;#define maxnode 100 //图中顶点的最大个数typedef char elemtype; //顶点的数据类型struct node //定义边的表结点{ int adjvex; //邻接点在顶点向量中的下标 struct node *next; //指向下一邻接点的指针};typedef struct //定义顶点结点{ elemtype vertex; //顶点信息node *firstarc; //指向第一邻接点的指针 }vernode;typedef struct{ vernode vertices[maxnode];//定义邻接表int vexnum,arcnum; //顶点和边的数目}algraph;algraph creatgraph(algraph g){//建立图函数int i,j,k; //i,j,k用于边和顶点的建立 node *p; //用于新生成顶点的指针cout&lt;&lt;输入小村的个数:&lt;&lt;endl;cin&gt;&gt;g.vexnum;g.arcnum=g.vexnum-1;for(i=0;i&lt;g.vexnum;i++){g.vertices[i].firstarc=null;}cout&lt;&lt;输入道路两端小村的编号(&lt;&lt;g.vexnum-1&lt;&lt;次,中间用空格分开):&lt;&lt;endl;for(k=0;k&lt;g.arcnum;k++){cin&gt;&gt;i&gt;&gt;j;p=(node*)malloc(sizeof(node));p-&gt;adjvex=j;p-&gt;next=g.vertices[i].firstarc;g.vertices[i].firstarc=p;//用头插法 p=(node*)malloc(sizeof(node));p-&gt;adjvex=i;p-&gt;next=g.vertices[j].firstarc;g.vertices[j].firstarc=p;}return g;}int visited[maxnode]; //用于深度遍历记住遍历过的顶点algraph g; //全局图int w; //记住c【j】点int count=0; //计数器,深度优先后,保存是否在ab间 int count1=0; //辅助计数器,判断abc是否重复void dfs(algraph g,int a,int b,int c){//g为邻接表存储的图,从第v个顶点出发递归的深度优先遍历函数if(a==c||b==c)count1++; //如果遍历到a或b点辅助计数器加一visited[c]=1; node *p;p=(node*)malloc(sizeof(node)); //为p申请空间p=g.vertices[c].firstarc; //指向c的第1邻接点的指针 while(p!=null){if(!visited[p-&gt;adjvex]){ dfs(g,a,b,p-&gt;adjvex); } //访问p的顶点向量中的下标if(p-&gt;adjvex==w&amp;&amp;count1==1)count=1; //如果辅助计数器为一且遍历返回到c时计数器为一if(count==1)break;p=p-&gt;next; //遍历到已被遍历的顶点从此顶点的下一邻接点}}void if(algraph g){ //判断c是否在a和b之间,原理是判断是否在一次探测,还是产生回溯int d; //d为判断的次数cout&lt;&lt;输入测试的次数:&lt;&lt;endl;cin&gt;&gt;d;值 int a[10],b[10],c[10]; //记住每次用于测试a、b、c的cout&lt;&lt;输入a,b,c三个小村的编号(&lt;&lt;d&lt;&lt;次,中间用空格分开):&lt;&lt;endl;for(int i=0;i&lt;d;i++){ cin&gt;&gt;a[i]&gt;&gt;b[i]&gt;&gt;c[i]; }cout&lt;&lt;显示测试结果:&lt;&lt;endl;for(int j=0;j&lt;d;j++){w=c[j];dfs(g,a[j],b[j],c[j]);if(count==1)cout&lt;&lt;yes恭喜你将找到命中的恋人&lt;&lt;endl;//在遍历a 或b后又重新遍历到cif(count==0)cout&lt;&lt;no你将与她错过 &lt;&lt;endl; //在遍历了a和遍历了b之后又从新遍历到cfor(int k=0;k&lt;=g.vexnum;k++)visited[k]=0;count=0;count1=0; //计数器清0}}void main(){cout&lt;&lt; 《故事背景介绍》\n&lt;&lt;endl;cout&lt;&lt; /* 欢迎来到神秘国度,在神秘国度里你将找到命中的恋人*/\n&lt;&lt;endl;cout&lt;&lt; 。

请按照提示信息寻找爱情。

\n&lt;&lt;endl; g=creatgraph(g);//调用图建立函数if(g);//调用判断函数 }3.运行结果4.设计体会与总结通过此次的课程试验的练习,我有了很大的收获,同时也加深了对数据结构这门课程的理解,比如说:图的邻接表存储,深度优先搜索树等。

在这次课程设计中,我感受最深的是学会了用”二分查找”的方法查找问题。

通过这次课程设计,我对c++编程有了更新的认识。

以前编程只是注重如何编写函数能够完成所需要的功能,凭单纯的意识和简单的语句来堆砌出一段程序。

现在编程有了深刻的感觉。

在编写一个程序之前,自己能够综合考虑各种因素,选取我们需要的数据结构,在编写每一个函数之前,仔细斟酌比对,挑选出最适合当前状况的算法。

这样,即使在完整的程序还没有写出来之前,我们心中已经有了明确的原图了,这样在无形中就提高了我们编写的程序的质量。

另外,还体会到深刻理解数据结构的重要性。

只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。

了解典型数据结构的性质也是非常有用的,而它往往是我们编写程序的关键。

活期储蓄帐目管理1.问题陈述活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:(1)能比较迅速地找到储户的帐户,以实现存款、取款记账;(2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。

2.需求分析需要先建立结本程序点类模板,然后使用链表的基本操作应用实现各个程序的实现,头插法先建立链表使之成当前操作数据基础,然后可以使用节点的删除进行储户的销户,结点的插入的应用成为程序的开户(注意:建立新的用户要先确认新建的用户号不可以与之前的用户号码相同, 引起系统错误!本程序应用链表节点的比较改进程序。

)。

储户的存取也是应用节点的比较查找之后进行的账户钱数加减。

程序的执行命令操作:(1)建立节电类模板,构建链表 (2)输入储户信息(3)执行各项操作(数据测试):①查询储户信息②开户③储户支取信息查询④储户的程序销户⑤程序完成 (4)程序退出3.概要设计(1)结构设计说明1.本程序主要应用数据结构节点类模板,首先构建节点类模板,在建立已有储户数据中对头结点(*head)分配动态存储空间,对头结点的邻接点(head-&gt;next)赋初值,循环插入新结点建立储户数据(头插法)。

在账号循环插入中进行账号重复判断。

2.在查找账户的过程中,应用结点下移继续查找,实现账户正确查找应用。

3.在销户过程中,进行结点删除,从而实现储户的销户。

4.在开户过程中,定义新结点,分配新的存储空间,进行结点插入,在账号循环插入中进行账号重复判断,完成开户过程。

5.在存取记录过程中,应用结点下移进行循环查找账户信息,显示账户信息。

6.主函数测试。

(2)程序流程图4.详细设计//活期储蓄帐目管理#include&lt;iostream&gt; #include&lt;string&gt; using namespace std;template&lt;class t&gt;//构建节点类模板string name; cout&lt;&lt;请输入账户号(八位整数): ;cin&gt;&gt;number; number=number;class node {public:node&lt;t&gt; *next;// t 可省指针 string name; t data;long int number; };template&lt;class t&gt; class savinglist {public:savinglist(){};node&lt;t&gt; * creatsavinglist(); void searchaccount(long int x);node&lt;t&gt; * deleteaccount(long int x);node&lt;t&gt; * insertaccount(long int x);private:node&lt;t&gt; *head; };template&lt;class t&gt; //建立已有储户数据 node&lt;t&gt; * savinglist&lt;t&gt;::creatsavinglist() {head=new node&lt;t&gt;;//初值int k=1;//分配动态空间node&lt;t&gt; *p,*q;head-&gt;next=null;// 赋初值 long int number,number; int data;if(!q)cout&lt;&lt;请输入姓名: ; cin&gt;&gt;name;cout&lt;&lt;请输入账户余额: ; cin&gt;&gt;data;while(number/1e7&gt;=1 &amp;&amp; number/1e7&lt;=10){ p=new node&lt;t&gt;; q=new node&lt;t&gt;;p-&gt;number=number;//节点初值p-&gt;name=name; p-&gt;data=data;p-&gt;next=head-&gt;next;//将p插入连中head-&gt;next=p;cout&lt;&lt;是否继续输入信息按1继续输入按0退出&lt;&lt;endl; cin&gt;&gt;k; if(k==0) break;cout&lt;&lt;请输入账户号(八位整数): ;cin&gt;&gt;number; q=head-&gt;next;while(q)//账号的重复判断 {if(q-&gt;number==number) {cout&lt;&lt;账号已存在 !&lt;&lt;endl;break; } elseq=q-&gt;next; }{cout&lt;&lt;请输入姓名: };cin&gt;&gt;name;cout&lt;&lt;请输入账户余额: ;cin&gt;&gt;data; } }return head; }template&lt;class t&gt; //查找账户 voidsavinglist&lt;t&gt;::searchaccount(long int x) { if(x/1e7&lt;1||x/1e7&gt;10) {cout&lt;&lt;您输入的账户不存在&lt;&lt;endl;return ; }node&lt;long&gt; *p; p=head;while(p!=null &amp;&amp; {p=p-&gt;next;//向下移位继续查找 }if(p==null) {cout&lt;&lt;您输入的账户未找到&lt;&lt;endl; } else {cout&lt;&lt;账户名: &lt;&lt;p-&gt;name&lt;&lt;endl;cout&lt;&lt;账户号码: &lt;&lt;p-&gt;number&lt;&lt;endl;cout&lt;&lt;账户余额:&lt;&lt;p-&gt;data&lt;&lt;元&lt;&lt;endl; }cout&lt;&lt;您的新账户的信息是:&lt;&lt;endl; template&lt;class t&gt; //销户node&lt;t&gt; * savinglist&lt;t&gt;::deleteaccount(long int x) {node&lt;t&gt; *p,*q;//节点类型 p=head;while(p!=null&amp;&amp;p-&gt;number!=x) {q=p;p=p-&gt;next; }if(p==null) {cout&lt;&lt;您输入的账户已不存在&lt;&lt;endl; } else {q-&gt;next=p-&gt;next;//将q删掉 }return head; }template&lt;class t&gt; //开户node&lt;t&gt; * savinglist&lt;t&gt;::insertaccount(long int x) {node&lt;t&gt; *p,*q; q=new node&lt;t&gt;; char w[10];//名字 int i; p=head;q-&gt;number=x; q-&gt;next=p-&gt;next;p-&gt;next=q;//插入 q(新的账号) cout&lt;&lt;请输入姓名: ;cin&gt;&gt;w;cout&lt;&lt;请输入余额: ; cin&gt;&gt;i; q-&gt;name=w; q-&gt;data=i; cout&lt;&lt;账户名: &lt;&lt;q-&gt;name&lt;&lt;endl;cout&lt;&lt;账户号码: &lt;&lt;q-&gt;number&lt;&lt;endl;cout&lt;&lt;账户余额:&lt;&lt;q-&gt;data&lt;&lt;元&lt;&lt;endl; return head; }template&lt;class t&gt; //存取款记录void savinglist&lt;t&gt;::record(long &lt;&lt;p-&gt;data&lt;&lt;元&lt;&lt;endl; } } }int menu() {int n;cout&lt;&lt;--------------------------menu------------------------int x,int y) {node&lt;t&gt; *p; p=head;while(p!=null &amp;&amp; p-&gt;number!=x) //循环查找p的相同正确值节点下移 {p=p-&gt;next; }if(p==null)cout&lt;&lt;您输入的账户不存在&lt;&lt;endl; else {p-&gt;data=p-&gt;data+y; if(p-&gt;data&lt;0)cout&lt;&lt;余额不足请充值!&lt;&lt;endl; else {cout&lt;&lt;目前您的账户信息:&lt;&lt;endl;cout&lt;&lt;账户名(八位): &lt;&lt;p-&gt;name&lt;&lt;endl;cout&lt;&lt;账户号码: &lt;&lt;p-&gt;number&lt;&lt;endl;cout&lt;&lt;账户余额: for(;;) {switch (menu()) {case 1: {cout&lt;&lt;请输入您要查询的账户:;---&lt;&lt;endl;cout&lt;&lt;\t1.查询账户 2.开户\n\n&lt;&lt;endl; cout&lt;&lt;\t3.支出存储记录 4.销户\n\n&lt;&lt;endl; cout&lt;&lt;\t5.退出&lt;&lt;endl;cout&lt;&lt;---------------------------------------------------------;cout&lt;&lt;endl; do {cout&lt;&lt;请输入你的选择(1--5):\n&lt;&lt;endl; cin&gt;&gt;n; }while(n&lt;1||n&gt;5); return n; }int main() {savinglist&lt;long&gt; t; node&lt;long&gt; *head;head=t.creatsavinglist(); long int x; int y,n;cin&gt;&gt;x;t.searchaccount(x); cout&lt;&lt; 是否需要继续进行操作?是请输入1,放弃则输入0: ;cin&gt;&gt;y; if(y==1) {cout&lt;&lt;-----------------------------------------------------\n\n\n;cout&lt;&lt;\t1.支出存入 2.销户\n\n;cout&lt;&lt;-----------------------------------------------------\n\n\n;do {cout&lt;&lt;请输入你选择的操作 : ;cin&gt;&gt;n; }while(n!=1 &amp;&amp; n!=2); if(n==1) {cout&lt;&lt;请输入你存取的钱数: ;cout&lt;&lt;存入钱数在前加“ + ”,取出钱数在前加“ - ”&lt;&lt;endl;int a; cin&gt;&gt;a;t.record(x,a); }if(n==2) {cout&lt;&lt;销户请输入 1,不进行操作输入 0 !: ; int b;cin&gt;&gt;b; if(b==1)t.deleteaccount(x); } } }break; case 2:cin&gt;&gt;r;{long int c; node&lt;long&gt; *q; q=head-&gt;next; cout&lt;&lt;请输入您的账号(八位): ;cin&gt;&gt;c; while(q) {if(q-&gt;number==c) {cout&lt;&lt;账号已存在 !&lt;&lt;endl;break; } elseq=q-&gt;next; }if(!q) {while(c/1e7 &lt;1||c/ 1e7&gt;10) { cout&lt;&lt;输入的位数不正确: ;cin&gt;&gt;c; }t.insertaccount(c); } }break; case 3: {long int r; int t,l;cout&lt;&lt;请输入执行操作的账号: ;cout&lt;&lt;请输入你存取的钱数: ;//cout&lt;&lt;存入钱数在前加“ + ”,取出钱数在前加“ - ” {cout&lt;&lt;输入的位数不正确: ;&lt;&lt;endl;cin&gt;&gt;t;t.record(r,t); cout&lt;&lt;继续操作请输入 1 ,退出输入0:&lt;&lt;endl; cin&gt;&gt;l; while(l==1) {cout&lt;&lt;请输入执行操作的账号: ;cin&gt;&gt;r;cout&lt;&lt;请输入你存取的钱数: ;cout&lt;&lt;存入钱数在前加“ + ”,取出钱数在前加“ - ”&lt;&lt;endl;cin&gt;&gt;t;t.record(r,t); cout&lt;&lt;继续操作请输入1,退出输入0&lt;&lt;endl; cin&gt;&gt;l; } }break; case 4: {long int k; int m;cout&lt;&lt;请输入你想要消掉的账户(请选择以上已有的) : ;cin&gt;&gt;k;while(k/1e7&lt;1||k/1e7&gt;9) 5.程序代码cin&gt;&gt;k; }t.deleteaccount(k);cout&lt;&lt;继续操作请输入1,退出输入0&lt;&lt;endl; cin&gt;&gt;m; while(m==1) {cout&lt;&lt;请输入要销掉的账户: ;cin&gt;&gt;k;while(k/1e7&lt;1||k/1e7&gt;10) {cout&lt;&lt;输入的位数不正确,请你确认后再进行操作!: ;}t.deleteaccount(k);cout&lt;&lt;继续操作请输入1,退出输入0&lt;&lt;endl; cin&gt;&gt;m; } }break; case 5:exit(0); } }return 0; }#include&lt;iostream&gt; #include&lt;string&gt; using namespace std;template&lt;class t&gt;//构建节点类模板 cout&lt;&lt;请输入账户号(八位整数): ;cin&gt;&gt;number; number=number;class node {public:node&lt;t&gt; *next;// t 可省指针 string name; t data;long int number; };template&lt;class t&gt; class savinglist {public:savinglist(){};node&lt;t&gt; * creatsavinglist(); void searchaccount(long int x);node&lt;t&gt; * deleteaccount(long int x);node&lt;t&gt; * insertaccount(long int x);private:node&lt;t&gt; *head; };template&lt;class t&gt; //建立已有储户数据 node&lt;t&gt; * savinglist&lt;t&gt;::creatsavinglist() {head=new node&lt;t&gt;;//初值int k=1;//分配动态空间node&lt;t&gt; *p,*q;head-&gt;next=null;// 赋初值 long int number,number; int data; string name; if(!q) {cout&lt;&lt;请输入姓名: ; cout&lt;&lt;请输入姓名: ; cin&gt;&gt;name;cout&lt;&lt;请输入账户余额: ; cin&gt;&gt;data;while(number/1e7&gt;=1&amp;&amp; number/1e7&lt;=10) {p=new node&lt;t&gt;; q=new node&lt;t&gt;;p-&gt;number=number;//节点初值p-&gt;name=name; p-&gt;data=data;p-&gt;next=head-&gt;next;//将p插入连中head-&gt;next=p;cout&lt;&lt;是否继续输入信息按1继续输入按0退出&lt;&lt;endl; cin&gt;&gt;k; if(k==0) break;cout&lt;&lt;请输入账户号(八位整数): ;cin&gt;&gt;number; q=head-&gt;next;while(q)//账号的重复判断 {if(q-&gt;number==number) {cout&lt;&lt;账号已存在 !&lt;&lt;endl; break; } elseq=q-&gt;next; }cin&gt;&gt;name;cout&lt;&lt;请输入账户余额: ;cin&gt;&gt;data;}}return head; }template&lt;class t&gt; //查找账户 voidsavinglist&lt;t&gt;::searchaccount(long int x) {if(x/1e7&lt;1||x/1e7&gt;10) {cout&lt;&lt;您输入的账户不存在&lt;&lt;endl;return ; }node&lt;long&gt; *p; p=head;while(p!=null &amp;&amp; {p=p-&gt;next;//向下移位继续查找 }if(p==null) {cout&lt;&lt;您输入的账户未找到&lt;&lt;endl; } else { cout&lt;&lt;账户名:&lt;&lt;p-&gt;name&lt;&lt;endl;cout&lt;&lt;账户号码:&lt;&lt;p-&gt;number&lt;&lt;endl;cout&lt;&lt;账户余额:&lt;&lt;p-&gt;data&lt;&lt;元&lt;&lt;endl; } }template&lt;class t&gt; //销户node&lt;t&gt; * savinglist&lt;t&gt;::deleteaccount(long int x) {node&lt;t&gt; *p,*q;//节点类型 p=head;template&lt;class t&gt; //存取款记录void savinglist&lt;t&gt;::record(long while(p!=null&amp;&amp;p-&gt;number!=x) {q=p;p=p-&gt;next; }if(p==null) {cout&lt;&lt;您输入的账户已不存在&lt;&lt;endl; } else{q-&gt;next=p-&gt;next; }//将q删掉 return head; }template&lt;class t&gt; //开户node&lt;t&gt; * savinglist&lt;t&gt;::insertaccount(long int x) {node&lt;t&gt; *p,*q; q=new node&lt;t&gt;; char w[10];//名字 int i; p=head;q-&gt;number=x; q-&gt;next=p-&gt;next;p-&gt;next=q;//插入 q(新的账号) cout&lt;&lt;请输入姓名: ; cin&gt;&gt;w;cout&lt;&lt;请输入余额: ; cin&gt;&gt;i; q-&gt;name=w; q-&gt;data=i;cout&lt;&lt;您的新账户的信息是:&lt;&lt;endl; cout&lt;&lt;账户名: &lt;&lt;q-&gt;name&lt;&lt;endl;cout&lt;&lt;账户号码: &lt;&lt;q-&gt;number&lt;&lt;endl;cout&lt;&lt;账户余额:&lt;&lt;q-&gt;data&lt;&lt;元&lt;&lt;endl; return head; }int x,int y) {node&lt;t&gt; *p; p=head;while(p!=null &amp;&amp; p-&gt;number!=x) //循环查找p的相同正确值节点下移 ---;cout&lt;&lt;endl; do {{p=p-&gt;next; }if(p==null)cout&lt;&lt;您输入的账户不存在&lt;&lt;endl; else {p-&gt;data=p-&gt;data+y; if(p-&gt;data&lt;0)cout&lt;&lt;余额不足请充值!&lt;&lt;endl; else {cout&lt;&lt;目前您的账户信息:&lt;&lt;endl;cout&lt;&lt;账户名(八位): &lt;&lt;p-&gt;name&lt;&lt;endl;cout&lt;&lt;账户号码: &lt;&lt;p-&gt;number&lt;&lt;endl;cout&lt;&lt;账户余额:&lt;&lt;p-&gt;data&lt;&lt;元&lt;&lt;endl; } } }int menu() {int n;cout&lt;&lt;--------------------------menu---------------------------&lt;&lt;end l;cout&lt;&lt;\t1.查询账户 2.开户\n\n&lt;&lt;endl; cout&lt;&lt;\t3.支出存储记录 4.销户\n\n&lt;&lt;endl; cout&lt;&lt;\t5.退出&lt;&lt;endl;cout&lt;&lt;------------------------------------------------------2.销户\n\n;cout&lt;&lt;请输入你的选择(1--5):\n&lt;&lt;endl; cin&gt;&gt;n; }while(n&lt;1||n&gt;5); return n; }int main() {savinglist&lt;long&gt; t; node&lt;long&gt; *head;head=t.creatsavinglist(); long int x; int y,n;for(;;) {switch (menu()) {case 1: {cout&lt;&lt;请输入您要查询的账户:;cin&gt;&gt;x;t.searchaccount(x); cout&lt;&lt; 是否需要继续进行操作?是请输入1,放弃则输入0: ;cin&gt;&gt;y; if(y==1) {cout&lt;&lt;-----------------------------------------------------\n\n\n; cout&lt;&lt;\t1.支出存入cout&lt;&lt;-----------------------------------------------------\n\n\n; do {cout&lt;&lt;请输入你选择的操作 : ;cin&gt;&gt;n; }while(n!=1 &amp;&amp; n!=2); if(n==1) {cout&lt;&lt;请输入你存取的钱数: ;cout&lt;&lt;存入钱数在前加“ + ”,取出钱数在前加“ - ”&lt;&lt;endl;int a; cin&gt;&gt;a;t.record(x,a); }if(n==2) {cout&lt;&lt;销户请输入 1,不进行操作输入 0 !: ; int b; cin&gt;&gt;b; if(b==1)t.deleteaccount(x); } } }break; case 2: {long int c; node&lt;long&gt; *q; q=head-&gt;next;cout&lt;&lt;请输入您的账号(八位): ;cin&gt;&gt;c;while(l==1) while(q){if(q-&gt;number==c) {cout&lt;&lt;账号已存在 !&lt;&lt;endl;break; } elseq=q-&gt;next; }if(!q) {while(c/1e7 &lt;1||c/ 1e7&gt;10) { cout&lt;&lt;输入的位数不正确: ;cin&gt;&gt;c; } t.insertaccount(c); } }break; case 3: {long int r; int t,l;cout&lt;&lt;请输入执行操作的账号: ;cin&gt;&gt;r;cout&lt;&lt;请输入你存取的钱数: ;cout&lt;&lt;存入钱数在前加“ + ”,取出钱数在前加“ - ”&lt;&lt;endl;cin&gt;&gt;t;t.record(r,t); cout&lt;&lt;继续操作请输入 1 ,退出输入0:&lt;&lt;endl; cin&gt;&gt;l; {cout&lt;&lt;请输入执行操作的账号: ;cin&gt;&gt;r;cout&lt;&lt;请输入你存取的钱数: ;cout&lt;&lt;存入钱数在前加“ + ”,取出钱数在前加“ - ”&lt;&lt;endl;cin&gt;&gt;t;t.record(r,t); cout&lt;&lt;继续操作请输入1,退出输入0&lt;&lt;endl; cin&gt;&gt;l; } }break; case 4: {long int k; int m;cout&lt;&lt;请输入你想要消掉的账户(请选择以上已有的) : ;cin&gt;&gt;k;while(k/1e7&lt;1||k/1e7&gt;9) {cout&lt;&lt;输入的位数不正确: ;cin&gt;&gt;k; }6.运行结果与测试t.deleteaccount(k);cout&lt;&lt;继续操作请输入1,退出输入0&lt;&lt;endl; cin&gt;&gt;m; while(m==1) {cout&lt;&lt;请输入要销掉的账户: ;cin&gt;&gt;k;while(k/1e7&lt;1||k/1e7&gt;10) {cout&lt;&lt;输入的位数不正确,请你确认后再进行操作!: ;}t.deleteaccount(k);cout&lt;&lt;继续操作请输入1,退出输入0&lt;&lt;endl; cin&gt;&gt;m;} }break; case 5:exit(0); } }return 0; }。

相关文档
最新文档