为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

个人备忘录

2017-11-22 29页 doc 118KB 75阅读

用户头像

is_829858

暂无简介

举报
个人备忘录个人备忘录 一:需求分析 1.课程设计名称: 个人备忘录管理系统 2(设计类容: 编写一个简单的个人备忘录程序,帮助管理日常事务。 3.程序设计要求: 运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中 要运用I/O流对象对文件进行读写操作。 4(需求原因:随着生活水平的提高,人们的生活节奏越来越快,每天都要处理很多事情,而 又会常常因忘记处理重要的事情而苦恼。鉴于此,本系统主要为了更好地管理个人的备忘录, 让使用者的生活井然有序,不会忘记重要的会议和约会。 功能实现: (1)界面 ※...
个人备忘录
个人备忘录 一:需求分析 1.课程名称: 个人备忘录管理系统 2(设计类容: 编写一个简单的个人备忘录程序,帮助管理日常事务。 3.程序设计要求: 运用面向对象的程序设计方法,要求选择动态数组类模板或链类模板,任务中 要运用I/O流对象对文件进行读写操作。 4(需求原因:随着生活水平的提高,人们的生活节奏越来越快,每天都要处理很多事情,而 又会常常因忘记处理重要的事情而苦恼。鉴于此,本系统主要为了更好地管理个人的备忘录, 让使用者的生活井然有序,不会忘记重要的会议和约会。 功能实现: (1)界面 ※※※※※※※※※※※※※※※※※※※※ ?个人备忘录? ?菜单? ?******1---添加信息4---查询信息******? ?******2---存储信息5---修改信息******? ?******3---显示信息6---删除信息******? ?******7---退出程序 ******? ※※※※※※※※※※※※※※※※※※※※ (2)功能 1) 添加:即增加一条信息到备忘录中; 2) 显示:即在屏幕上显示所有备忘录中的信息。 3) 存储:即将备忘录信息保存在一个文件中。 4) 装入:即将文件中的信息读入程序。 5) 查询:可根据日期查找备忘信息,若找到,显示在屏幕上。 6) 修改:可修改某日的备忘信息。 4. 测试数据 程序应输入不少于10个人员的通讯录信息,应考虑到人员可以同名的情况。 一、 算法设计 1. 设计思想: (1)定义一个备忘录类(BWL),将备忘录所包含的信息(时间、内容)设定为类BWL 的对象,便于赋值以及调用。 (2)函数的框架图 主体框架图 主菜单(nemu) 票 据票据图 使显退查存修删添 用示出询储改除加)utilize 信系信信信信信 息统息息息息息 ) 2. 设计表示: (1) 主菜单(menu): 显示各项程序功能,通过此,用户可以根据自己所需进行选择。 程序代码: void main() { int t; BWL bwl; do{ cout<<"※※※※※※※※※※※※※※※※※※※※"<>t; switch(t) { case 1:bwl.creatBWL();break; case 2:bwl.saveBWL();break; case 3:bwl.showBWL();break; case 4:bwl.findBWL();break; case 6:bwl.deleteBWL();break; case 5:bwl.correctBWL();break; } if(t==7) break; } while(1); } 按1键,进入添加功能;按2键,进入存储功能;按3键,进入显示功能; 按4键,进入查询功能;按5键,进入修改功能;按6键,进入删除功能; 按7键,退出系统。 (2) 添加信息(menu1) void BWL::creatBWL()//创建信息 { cout<<"请依次输入备忘录时间和内容:"<>timeBWL; cout<<"备忘录内容:"; cin>>contentBWL; saveBWL();//调用函数,对信息进行保存 cout<<"备忘录已经保存~"<>t; ifstream f1("beiwanglu.txt"); //以读方式打开文件 //创建链表并从文件中读取备忘录信息 q=new BWL; head=q; f1>>time>>content; q->Install(time,content); while(!f1.eof()) { p=new BWL; f1>>time>>content; p->Install(time,content); q->next=p; q=p; } q->next=NULL; f1.close(); //关闭文件 p=head; while(p!=NULL) { if(strcmp(p->retime(),t)==0)//如果t恰好等于p { cout<display(); cout<<"您所要查看的备忘录已显示~"<next;//否则将p往后移一个节点,进行查找 } if(p=NULL)//如果为空 cout<<"这个时间没有备忘录~"<>t; ifstream f1("beiwanglu.txt"); //以读方式打开文件 //创建链表并从文件中读取备忘录信息 q=new BWL; head=q; f1>>time>>content; q->Install(time,content); while(!f1.eof()) { p=new BWL; f1>>time>>content; p->Install(time,content); q->next=p; q=p; } q->next=NULL; f1.close(); //关闭文件 p=head; while(p!=NULL) { if(strcmp(p->retime(),t)==0)//先进行查找 { cout<display(); cout<<"请输入新的备忘录信息:"<>time; cout<<"备忘录内容:"<>content; p->Install(time,content); ofstream f2("beiwanglu.txt"); //以写方式打开文件 //向文件中写入修改后的备忘录信息,并进行保存 p=head; while(p!=NULL) { f2<retime()<recontent()<next; } f2.close(); //关闭文件 cout<<"备忘录信息修改完毕"<next;//若找不到,则将p的下一个结点赋给p,进行循环查找 } if(p==NULL) cout<<"无此备忘录信息"<>t; ifstream f1("beiwanglu.txt"); //以读方式打开文件 //创建链表并从文件中读取备忘录信息 q=new BWL;//用new开辟一个新节点 head=q;//把q的值赋给head f1>>time>>content;//从键盘输入信息 q->Install(time,content); while(!f1.eof()) { p=new BWL;//又开辟一个新节点 f1>>time>>content; p->Install(time,content); q->next=p;//将p的值赋给q->next q=p;//使指q向刚刚建立的节点 }//以此循,创建链表 q->next=NULL;//直到为空时,不再执行循环 f1.close(); //关闭文件 //查找结点 p=head; while(p!=NULL)//如果不为空 { if(strcmp(p->retime(),t)==0)//找到了所需要的结点 { cout<display(); if(p==head)//如果指向的是表头结点 { head = head->next; //把第二个结点的地址赋给head; } else { q->next=p->next;//否则把p的下一个结点赋给q的下一个结点,循环查找, 删除p } delete p; cout<<"备忘录已被删除~"<next;//把p向后移一个结点,将p->next赋给p ,进行循环查找 } } if(p==NULL)//如果p不为空 cout<<"这段时间没有备忘录~"<retime()<<' '<recontent()<next; } f2.close();//关闭文件 } 创建链表并把已打开文件的信息存入链表内,输入要删除的备忘录时间,查找时间,把这个节点删除。 二、 用户 1,需添加信息的用户,请进入添加信息项 2,需存储信息的用户,请进入存储信息项; 3,需显示信息的用户,请进入显示信息项; 4,需查询信息的用户,请进入查询信息项; 5需修改信息的用户,请进入修改信息项; 6,需删除信息的用户,请进入删除信息查询; 四、调试及测试 调试:程序编完后后调试时出现了一些问,平时编程时不怎么注意,粗心,结果不是这里丢了分号就是那里括号,有的地方多了一点,有的少了一点,碰到稍微大一点的问题是在开始定义指针变量时我把姓名、时间、信息都定义为一个指针,到了它们调用时才分别定义,结果在程序运行时显示的是零错误零警告,但是在修改操作时无法修改,经过改正后程序可以正常运行。 五、小结 通过此次C++实验课程设计,不仅加深了我对C++程序设计语言的了解,并且很大程度上锻炼了我的逻辑思维力。有不太懂的时候,就查阅一些书本、网络资料,这样不仅能够加深以前所学的知识,也掌握了一些自己尚且欠缺的知识和技巧,更让我对所学的知识有了系统的认识和理解。而且在探索中掌握了解决实际问题的能力。理解到光靠想然的是不行的,只有自己切实的动手才能提高自己。并且在学习的过程中我也发现了自己的一些毛病,一些平时不注意的问题在实验的过程中暴露无疑,并且理解到平时编程时不注意的一些小问题到了现在竟成了大问题,而且还不易发现,这更提醒了我编程是一件严肃的事,马虎不得,要养成好的编程的习惯,这样才能少犯错误,而且面对问题一味独立思考不是最好的办法,可以向同学或老师请教,相互协作,仔细研究,这样更能锻炼团队意识,对以后很有帮助。 六、参考文献 [1](郑莉 等编著《C++语言程序设计(第三版)》北京:清华大学出版社 [2](郑莉 等编著《C++语言程序设计(第三版)学生用书》北京: 清华大学出版社 [3](李春葆 等编著《C++程序设计学习与上机实验指导》 北京:清华大学出版社 [4](范辉 等编著《Visual C++6.0程序设计简明教程》 高等教育出版社 [5](李龙澍《C++程序设计实训教程》北京:清华大学出版社 [6](洪国胜 等编著 《C++ Builder程序设计轻松上手》北京:清华大学出版社 [7](严蔚敏等 《数据结构(c语言版)》 北京:清华大学出版社,1997年4月第1版。 [8](胡学钢等《数据结构算法设计指导》北京:清华大学出版社,1999年 第1版。 附录一 源程序清单 #define beiwanglu_h//定义头文件 #include #include #include #include//定义输出输入流 #include using namespace std; class BWL { public: BWL(){}//构造函数 void creatBWL();//新建一个信息 void showBWL();//显示所有的信息 void correctBWL();//修改信息 void deleteBWL();//删除信息 void findBWL();//查找信息 void saveBWL();//保存 void Install(char time[],char content[])//设置时间,内容 { strcpy(timeBWL,time); strcpy(contentBWL,content); }//存储信息至链表 char *retime()//返回时间 { return timeBWL; } char *recontent()//返回内容 { return contentBWL; } void display()//显示 { cout<>timeBWL; cout<<"备忘录内容:"; cin>>contentBWL; saveBWL();//调用函数,对信息进行保存 cout<<"备忘录已经保存~"<>t; ifstream f1("beiwanglu.txt"); //以读方式打开文件 //创建链表并从文件中读取备忘录信息 q=new BWL;//用new开辟一个新节点 head=q;//把q的值赋给head f1>>time>>content;//从键盘输入信息 q->Install(time,content); while(!f1.eof()) { p=new BWL;//又开辟一个新节点 f1>>time>>content; p->Install(time,content); q->next=p;//将p的值赋给q->next q=p;//使指q向刚刚建立的节点 }//以此循,创建链表 q->next=NULL;//直到为空时,不再执行循环 f1.close(); //关闭文件 //查找结点 p=head; while(p!=NULL)//如果不为空 { if(strcmp(p->retime(),t)==0)//找到了所需要的结点 { cout<display(); if(p==head)//如果指向的是表头结点 { head = head->next; //把第二个结点的地址赋给head; } else { q->next=p->next;//否则把p的下一个结点赋给q的下一个结点,循环查找,删除p } delete p; cout<<"备忘录已被删除~"<next;//把p向后移一个结点,将p->next赋给p ,进行循环查找 } } if(p==NULL)//如果p不为空 cout<<"这段时间没有备忘录~"<retime()<<' '<recontent()<next; } f2.close();//关闭文件 } void BWL::showBWL()//显示信息 { ifstream f2("beiwanglu.txt",ios::in);//以读的方式打开文件 //在使用文件时,要检查文件是否可用 if(!f2) { cout<<"文件不存在"<>t; ifstream f1("beiwanglu.txt"); //以读方式打开文件 //创建链表并从文件中读取备忘录信息 q=new BWL; head=q; f1>>time>>content; q->Install(time,content); while(!f1.eof()) { p=new BWL; f1>>time>>content; p->Install(time,content); q->next=p; q=p; } q->next=NULL; f1.close(); //关闭文件 p=head; while(p!=NULL) { if(strcmp(p->retime(),t)==0)//如果t恰好等于p { cout<display(); cout<<"您所要查看的备忘录已显示~"<next;//否则将p往后移一个节点,进行查找 } if(p=NULL)//如果为空 cout<<"这个时间没有备忘录~"<>t; ifstream f1("beiwanglu.txt"); //以读方式打开文件 //创建链表并从文件中读取备忘录信息 q=new BWL; head=q; f1>>time>>content; q->Install(time,content); while(!f1.eof()) { p=new BWL; f1>>time>>content; p->Install(time,content); q->next=p; q=p; } q->next=NULL; f1.close(); //关闭文件 p=head; while(p!=NULL) { if(strcmp(p->retime(),t)==0)//先进行查找 { cout<display(); cout<<"请输入新的备忘录信息:"<>time; cout<<"备忘录内容:"<>content; p->Install(time,content); ofstream f2("beiwanglu.txt"); //以写方式打开文件 //向文件中写入修改后的备忘录信息,并进行保存 p=head; while(p!=NULL) { f2<retime()<recontent()<next; } f2.close(); //关闭文件 cout<<"备忘录信息修改完毕"<next;//若找不到,则将p的下一个结点赋给p,进行循环查找 } if(p==NULL) cout<<"无此备忘录信息"<>t; switch(t) { case 1:bwl.creatBWL();break; case 2:bwl.saveBWL();break; case 3:bwl.showBWL();break; case 4:bwl.findBWL();break; case 6:bwl.deleteBWL();break; case 5:bwl.correctBWL();break; } if(t==7) break; } while(1); } 附录二 运行结果截图 }
/
本文档为【个人备忘录】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索