程序设计课程设计报告_第1页
程序设计课程设计报告_第2页
程序设计课程设计报告_第3页
程序设计课程设计报告_第4页
程序设计课程设计报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计课程设计报告内容:一、设计任务与要求 1.设计任务 1)利用动态链表实现电话薄程序 2)了解mfc架构,利用visual c+实现一个简单计算器系统。2.实验要求 1)实现电话薄通讯录的建立,查询,删除,插入。 2)主要实现计算器数据的加、减、乘、除运算。二、需求分析1.功能需求1)通讯录:查询,删除,插入,显示。 2)计算器:基本运算功能:可以进行加、减、乘、除等基本运算。 删除功能:删除数值。 归零功能:可以在计算完成后清空编辑框中的已有数值。2.运行需求 vc+6.0 windows操作系统三、系统设计 1. 总体方案设计 电话薄建立通讯录查询通讯录删除通讯录插入通讯录退出菜单

2、清零等于除法乘法减法加法计算器加法除法乘法等于清零减法 2.详细设计1) 电话薄主要代码:#include using namespace std;#define null 0struct notelist char num5; / 编号 char name9; / 姓名 char sex3; / 性别 char phone13; / 电话 char addr31; / 地址 notelist *next;int n;bool find1(notelist *head,char num);notelist *creat()/通讯录的建立char i; notelist *head; notel

3、ist*p1,*p2; n=0; p1=p2=new notelist;p1-next=null; head=null;/*couti;*/*cin.clear(); /清空状态和缓冲区 ,判断输入正确与否cin.sync(); for(int j=1;j100000;j+) k=i-j;if(k=0)coutendl;elsecout输入错误i;*/ do cout请输入第n+1条通讯信息:endl;coutp1-num;while(find1(head,p1-num)cout-此编号已存在!请重新输入!-endl;coutp1-num;coutp1-name;coutp1-sex;cout

4、p1-phone;coutp1-addr;n=n+1; if(n=1)head=p1; else p2-next=p1; p2=p1; p1=new notelist;p1-next=null;couti; while(i=y|i=y); p2-next=null; return(head);bool find1(notelist *head,char num)/查询相同编号notelist *p1,*p2;if(head=null)return 0;p1=head;while(strcmp(num,p1-num)!=0)&p1-next!=null)p2=p1;p1=p1-next;if(s

5、trcmp(num,p1-num)=0)return 1;else return 0;void print(notelist*head)/通讯录信息的输出 notelist *p; coutendl通讯录里有n条记录如下:endl;cout编号 姓名 性别 电话 地址endl; p=head; if(head!=null) docoutnum name sex phone addrnext;while(p!=null);void find(notelist *head,char num)/查询notelist *p1,*p2;if(head=null)cout没记录num)!=0)&p1-ne

6、xt!=null)p2=p1;p1=p1-next;if(strcmp(num,p1-num)=0)cout编号 姓名 性别 电话 地址endl;coutnum name sex phone addrendl;else cout找不到该编号:;notelist *del(notelist *head,char num)/通讯录信息的删除notelist *p1,*p2;if(head=null)cout没记录num)!=0&p1-next!=null)p2=p1;p1=p1-next;if(strcmp(num,p1-num)=0)if(p1=head)head=p1-next;else p2

7、-next=p1-next;cout编号为num的记录已删除!endl;n=n-1;else coutnext=null;elsewhile(strcmp(p0-num,p1-num)0&(p1-next!=null) p2=p1; p1=p1-next;if(strcmp(p0-num,p1-num)next=p0;p0-next=p1;elsep1-next=p0;p0-next=null;n=n+1;return(head);int main()int s,d, a,j=0;notelist *head,*stu;char c, i,k5,del_num5;char y;docout建立

8、通讯录请按1-查询通讯录请按2endl;cout删除通讯录请按3-插入通讯录请按4endl;cout 退出菜单请按5c;switch(c)case 1:head=creat();print(head);break;case 2:coutendlk;dofind(head,k);coutendlk;while(strcmp(k,exit)!=0);break;case 3:coutendldel_num;while(strcmp(del_num,exit)!=0)head=del(head,del_num);print(head);coutdel_num;break;case 4:/*coute

9、ndli;*/do coutendl如下填写第j+1条插入通讯录的资料;stu=new notelist;coutstu-num;while(find1(head,stu-num)/判断编号是否存在cout-此编号已存在!请重新输入!-endl;coutstu-num;coutstu-name;coutstu-sex;coutstu-phone;coutstu-addr; head=insert(head,stu); print(head);j=j+1;couti;while(i=y|i=y);break;case 5:break;default: cout输入错误!endl;break;co

10、ut是否继续操作:(是请按y-退出请按其它任意键)y;while(y=y|y=y);return 0;2)计算器主要代码:void cmydlg:onnum1() / todo: add your control notification handler code hereif(panduan=true)donum=0;panduan=false;inputnum=1;if(dian=false)donum=donum*10+inputnum;elsedonum=donum+inputnum*pow(0.1,n);n+;m_num=donum;updatedata(false);void cm

11、ydlg:onadd() / todo: add your control notification handler code hereresult=donum;method=1;panduan=true;n=1;dian=false;void cmydlg:onmin() / todo: add your control notification handler code hereresult=donum;method=2;panduan=true;n=1;dian=false;void cmydlg:onmul() / todo: add your control notification

12、 handler code herepanduan=true;result=donum;method=3;n=1;dian=false;void cmydlg:ondiv() / todo: add your control notification handler code herepanduan=true;result=donum;method=4;n=1;dian=false;void cmydlg:onclear() / todo: add your control notification handler code heredonum=0;inputnum=0;panduan=true;result=0;m_num=0;n=1;dian=false;updatedata(false);四、运行结果及测试 1. 运行界面及其效果图电话薄 计算器2. 对在编程与调试中的问题 1)电话薄 对程序代码编写的不够规范化,而且操作不好会造成死循环。 2)计算器 功能还不够齐全,只能进行一些基本的加,减,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论