C++课程设计任务书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计报告课程名称面向对象程序设计课题名称求转置矩阵和通讯录管理系统专业班级学号姓名指导教师课程设计任务书课程名称面向对象程序设计一目的1帮助帮助学生深入理解教材内容,巩固基本概念,结合所学知识解决实践问题;2训练学生进行复杂程序设计的技能,培养良好的程序设计习惯;二.设计要求:2.课程设计报告内容说明1)需求分析程序的功能;输入输出的要求。2)概要设计程序的模块构成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。3)详细设计采用C语言定义相关的数据类型;写出各模块的类C码算法;画出各函数的调用关系图、主要函数的流程图。4)调试分析以及设计体会测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。5)使用说明用户使用手册:说明如何使用你编写的程序,详细列出每一步的操作步骤。6)书写格式见附带说明。7)附录参考书目;源程序清单(带注释)四.设计内容课题1:求转置矩阵。由用户输入矩阵的规模和初始化数据,从终端输出其转置矩阵。课题7:通讯录管理设计一个通讯录管理,包括通讯录链表的建立、通讯者的插入、通讯者的删除、通讯者的查询以及信息修改等。目录一、课题1:求转置矩阵.........................................11、需求分析................................................12、概要设计................................................13、详细设计................................................14、调试分析以及设计体会.....................................45、使用说明................................................56、附录....................................................6二、课题7:通讯录管理.........................................91、需求分析................................................92、概要设计................................................93、详细设计................................................94、调试分析以及设计体会....................................185、使用说明...............................................196、附录...................................................191一、课题1:求转置矩阵1、需求分析由用户输入矩阵的规模和初始化数据,从终端输出其转置矩阵。2、概要设计1)程序模块:main函数模块,Voidmain()函数调用input()函数,调用output()函数,调用swap()函。input()函数模块,定义输入函数,矩阵,包括矩阵的输入,和行高,列宽。output()函数模块,定义输出函数,输出上面输入的矩阵。swap()函数模块,定义成员函数,实现矩阵转置。3、详细设计1)c码算法:voidA::input()//在类外定义输入函数,矩阵,包括矩阵的输入,和行高,列宽{cout矩阵的转置endl;cout***********************************endl;cout输入mn:endl;cinmn;a=newint*[m];//开辟一个存放数组行的空间给afor(inti=0;im;++i)a[i]=newint[n];//开辟一个存放数组列的空间给a的行cout输入m*n矩阵:endl;for(i=0;im;++i)for(intj=0;jn;++j)cina[i][j];cout***********************************endl;cout输入矩阵A为:endl;}voidA::output()//在类外定义输出函数,输出上面输入的矩阵{2for(inti=0;im;++i){for(intj=0;jn;++j){couta[i][j];}coutendl;}cout***********************************endl;}voidA::swap()//在类外定义成员函数{cout转置矩阵B为:endl;for(inti=0;im;i++)//矩阵转置{for(intj=0;jn;j++){b[j][i]=a[i][j];}coutendl;}for(i=0;in;i++){for(intj=0;jm;j++)coutb[i][j];coutendl;}}32)程序设计组成框图3)流程图矩阵的转置主函数main头文件输入函数input输出函数outputoutput声明基类A转置函数swap声明成员函数定义一个指向指针a的指针输入m和nInput函数输入m*n个数Output函数输出m行n列的矩阵Aswap函数输出转置矩阵B结束Main函数44、使用说明在vc上编译源代码,编译成功运行,进入dos页面,按照要求输入m和n代表m*n矩阵,在输入数放入矩阵,当数足够时转换成转置矩阵。5、附录1)参考书目[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2007年[2]谭浩强,《C语言程序设计》,西安,西安交通大学出版社,2007年2)源代码#includeiostreamusingnamespacestd;classA//定义A类{public:int**a;//定义一个指向指针a的指针voidinput();//声明输入函数voidoutput();//声明输出函数voidswap();//声明成员函数intm,n;private:5intb[100][100];//定义b[100][100]为私有数据成员};voidA::input()//在类外定义输入函数,矩阵,包括矩阵的输入,和行高,列宽{cout矩阵的转置endl;cout***********************************endl;cout输入mn:endl;cinmn;a=newint*[m];//开辟一个存放数组行的空间给afor(inti=0;im;++i)a[i]=newint[n];//开辟一个存放数组列的空间给a的行cout输入m*n矩阵:endl;for(inti=0;im;++i)for(intj=0;jn;++j)cina[i][j];cout***********************************endl;cout输入矩阵A为:endl;}voidA::output()//在类外定义输出函数,输出上面输入的矩阵{for(inti=0;im;++i){for(intj=0;jn;++j){couta[i][j];}coutendl;}cout***********************************endl;}voidA::swap()//在类外定义成员函数6{cout转置矩阵B为:endl;for(inti=0;im;i++)//矩阵转置{for(intj=0;jn;j++){b[j][i]=a[i][j];}coutendl;}for(inti=0;in;i++){for(intj=0;jm;j++)coutb[i][j];coutendl;}}voidmain(){Aa;//定义a为A类的对象a.input();//调用成员函数inputa.output();//调用成员函数outputa.swap();//调用成员函数swapsystem(PAUSE);}7二、课题7:通讯录管理1、需求分析设计一个通讯录管理,包括通讯录链表的建立、通讯者的插入、通讯者的删除、通讯者的查询以及信息修改等。要求有运行界面,从菜单中进入选项。2、概要设计1)系统功能模块图:添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录。删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容。查询:可以选择用姓名、电话、地址三种方式查询。修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改。保存:用户可以根据需要选择保存功能,对数据进行存储。3、详细设计1)各个界面设计通讯录资料有ID、姓名、性别、手机号码、地址。具体结构如下:structstudent{intid;charname[20];charsex[20];charcellphone[20];主菜单添加删除查询修改显示保存主菜单插入删除查询修改显示保存8charaddress[50];structstudent*next;};函数原型:intmain()main()函数主要是整个系统的控制端,主要功能是控制整个程序的运行。从主函数开始调用各相关函数来达到相应的功能,关键代码如下:voidmain(){structstudent*creat();voidprint(structstudent*head);structstudent*del(structstudent*head);voidjiemian();//功能函数的声明voidchaxun(structstudent*head);structstudent*increase(structstudent*head);voidSave(structstudent*head);structstudent*stu,*p;inta=1;p=NULL;while(a!=0)//使用循环语句让程序重复可执行,知道输入0结束循环{p=stu;jiemian();cout请输入0-6操作数进行操作\n;cina;switch(a){case1:cout※当输入ID号为0时结束通讯录信息的输入操作※\n;stu=creat();printf(建立信息链表完成\n);9system(pause);system(cls);break;case2:increase(p);system(pause);system(cls);break;case3:chaxun(p);system(pause);system(cls);break;case4:del(p);system(pause);system(cls);break;case6:Save(p);system(pause);system(cls);break;case5:print(p);system(pause);system(cls);break;case0:system(pause);break;}}cout\n\n;}10桌面设计函数函数原型:voidjiemian()代码如下:voidjiemian()//桌面设计函数{cout\t※------------------------------------------------※\n;cout\t※*********

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功