应用软件综合设计-多用途数据对象类的设计.doc

上传人:哈尼dd 文档编号:3267792 上传时间:2019-08-07 格式:DOC 页数:39 大小:329.01KB
返回 下载 相关 举报
应用软件综合设计-多用途数据对象类的设计.doc_第1页
第1页 / 共39页
应用软件综合设计-多用途数据对象类的设计.doc_第2页
第2页 / 共39页
应用软件综合设计-多用途数据对象类的设计.doc_第3页
第3页 / 共39页
应用软件综合设计-多用途数据对象类的设计.doc_第4页
第4页 / 共39页
应用软件综合设计-多用途数据对象类的设计.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《应用软件综合设计-多用途数据对象类的设计.doc》由会员分享,可在线阅读,更多相关《应用软件综合设计-多用途数据对象类的设计.doc(39页珍藏版)》请在三一文库上搜索。

1、武汉工程大学 计算机科学与工程学院 综合设计报告 设计名称:设计名称: 应用软件综合设计应用软件综合设计 设计题目:设计题目: 多用途数据对象类的设计多用途数据对象类的设计 学生学号:学生学号: 专业班级:专业班级: 学生姓名:学生姓名: 学生成绩:学生成绩: 指导教师(职称):指导教师(职称): 课题工作时间:课题工作时间: 2009 年年 9 月月 14 日日 至至 2009 年年 9 月月 25 日日 说明: 1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每 个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。 2、学生成绩由指导教师根据学生的设计情况给出各项分值

2、及总评成绩。 3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设 计完成情况、报告的质量及答辩情况,给出客观、全面的评价。 4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一 律按不及格处理。答辩小组成员应由 2 人及以上教师组成。 5、报告正文字数一般应不少于 5000 字,也可由指导教师根据本门综合设 计的情况另行规定。 6、平时表现成绩低于 6 分的学生,其综合设计成绩按不及格处理。 7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适 用于学院各类综合设计) ,各教研室可根据本门综合设计的特点及内容 做适当的调整,并上报学院批准。 成绩评定表 学

3、生姓名: 学号: 班级: 类别 合计 分值 各项 分值 评分标准 实际 得分 合计 得分 备注 平时 表现 1010 按时参加综合设计,无旷课、迟 到、早退、违反实验室纪律等情 况。 20 按设计任务书的要求完成了全部 任务,能完整演示其设计内容, 符合要求。 完成 情况 30 10 能对其设计内容进行详细、完整 的介绍,并能就指导教师提出的 问题进行正确的回答。 10 报告文字通顺,内容翔实,论述 充分、完整,立论正确,结构严 谨合理;报告字数符合相关要求, 工整规范,整齐划一。 5 课题背景介绍清楚,综述分析充 分。 5 设计方案合理、可行,论证严谨, 逻辑性强,具有说服力。 5 符号统一

4、;图表完备、符合规范 要求。 5 能对整个设计过程进行全面的总 结,得出有价值的结论或结果。 报告 质量 35 5 参考文献数量在 3 篇以上,格式 符合要求,在正文中正确引用。 10 在规定时间内能就所设计的内容 进行阐述,言简意明,重点突出, 论点正确,条理清晰。 答辩 情况 25 15 在规定时间内能准确、完整、流 利地回答教师所提出的问题。 总评成绩: 分 补充说明: 指导教师: 刘军 (签 字) 日 期: 2008 年 1 月 19 日 答辩记录表 学生姓名: 学号: 班级: 答辩地点: 答辩内容记录: 合计 分值 各项 分值 评分标准 实际 得分 合计 得分 备注 答 辩 成 绩

5、2510 在规定时间内能就所设计的内容 进行阐述,言简意明,重点突出, 论点正确,条理清晰。 15 在规定时间内能准确、完整、流 利地回答教师所提出的问题。 答辩小组成员(签字): 2009 年 9 月 25 日 指导教师评语 指导教师: (签字) 日 期: 年 月 日 一、综合设计目的、条件、任务和内容要求: 课题目的: 为了巩固、加深面向对象程序设计的理解,并在此基础上能够从实际问题出发设计编制一个 中小型应用系统;能够熟练运用面向对象思想来解决一些实际问题。同时也为了检验学生对面向 对象程序设计这门课的掌握程度,按照面向对象程序设计原理完成了此次课程设计。 课题条件: 已掌握向对象程序设

6、计的基本方法、一台装有 Windows95,Windows NT 4.0 或更高的操作系统 和某种高级语言开发环境(例如 VC+)的 PC 机。 课题任务: 利用某种高级语言(例如 VC+)设计开发一个多用途数据对象类的设计,以加深对面向对象 和模板原理的理解,掌握基于模板的程序设计的实现方法和技术。 课题内容要求: (1)该项目主要功能有: 1.建立一个存放数据对象的表的类 DataTable,数据对象的属性字段的类型可以是 int,string,float,double 和 char 这五种类型,其中数据对象的各个属性字段的定义存放于类 DataTable 的私有数据成员 ve 中;数据对

7、象的记录存放于私有数据成员 lis 中. 2.成员函数 insertField()可实现增加数据对象的属性字段,包括字段名和字段类型; 3.成员函数 insertRecoed()可实现增加数据对象的记录. 4.成员函数 readFieldRecord();可由文件 data.txt 中读取记录,保存在 ve,和 lis 中. 5.成员函数 outToFile()可将 ve 和 lis 中的相关记录保存到输出文件中,文件名由用户指定, 但是,用户提供文件名时一定要连文件扩展名一起提供. 6.成员函数 outAllRecord();将数据对象的各属性和记录值一起输出到控制台. 7.成员函数 rem

8、oveField();会提示用户输入你想删除的字段名,就可以删除该字段名,字段类 型,以及各个记录中该字段的值. 8.成员函数 searchRecord();可以查找记录,会提示用户输入查找条件,注意输入条件的格式, 比如想查找字段 name 值为 5 的记录,就要写 name = 5 作为查找条件,在 name 与=之间要有空格 间隔,=与 5 之间也要有空格间隔;=可换成!=表示查找某字段不等于某值;或换成,表示要查找某 字段的值大于某值;也可换成,表示要查找某字段的值大于某值;也可换成 txt.file object data 针对指针的重载版本, 并将 anyVal 的地址传递过去,也

9、就是转到 1 处,因为调用的是 any_cast,所以 1 处的 代码被编译器特化为 但是前面说过,operand-content 实际指向的是 any:holder,所以这个 static_cast lis; vector vli; public:DataTable() DataTable() if(!ve.empty() ve.clear(); if (!vli.empty() vli.clear(); if(!lis.empty() lis.clear(); int readFieldRecord(); void outToFile(); void insertField(); void

10、 insertRecoed(); void outAllRecord(); void removeField(); 武汉工程大学计算机科学与工程学院 综合设计报告 - 17 - void removeRecord(); int searchRecord(); void modifyRecord(); void modifyField(); ; void defaultAny(string string s=“ “; double d=0.0; float f=0.0; char c= ; if(type=“int“) aa=i; else if(type=“float“)aa=f; else

11、if(type=“double“) aa=d; else if(type=“char“)aa=c; else if(type=“string“)aa=s; else couti; a=i; else if(type=“float“)cinf; a=f; else if(type=“double“) cind; a=d; else if(type=“char“)cinc;a=c; else if(type=“string“)cins;a=s; else couti; a=i; else if(type=“float“)stf; a=f; else if(type=“double“) std; a

12、=d; else if(type=“char“)stc;a=c; else if(type=“string“)sts;a=s; else cout:iterator vi; vectorva; vector:iterator vai; list :iterator listi; ifstream infile; int flag=0; infile.open(“data.txt“); infile.clear(); if(!infile) cout(val); else if (val.type() = typeid(string) cout(val); else if (val.type()

13、 = typeid(double) cout(val); else if (val.type() = typeid(float) cout(val); else if (val.type() = typeid(char) cout(val); cout(va)=any_cast(aa) ); else if(compare=“!=“) return(any_cast(va)!=any_cast(aa); else if(compare=“) return(any_cast(va)any_cast(aa); 武汉工程大学计算机科学与工程学院 综合设计报告 - 20 - else if(compa

14、re=“(va)(aa); else cout(va)=any_cast(aa); else if(compare=“!=“) return(any_cast(va)!=any_cast(aa); else if(compare=“) return(any_cast(va)any_cast(aa); else if(compare=“(va)(aa); else cout(va)=any_cast(aa); else if(compare=“!=“) return(any_cast(va)!=any_cast(aa); else if(compare=“) return(any_cast(va

15、)any_cast(aa); else if(compare=“(va)(aa); else cout(va)=any_cast(aa); else if(compare=“!=“) return(any_cast(va)!=any_cast(aa); else if(compare=“) return(any_cast(va)any_cast(aa); else if(compare=“(va)(aa); else cout(va)=any_cast(aa); else if(compare=“!=“) return(any_cast(va)!=any_cast(aa); else if(c

16、ompare=“) return(any_cast(va)any_cast(aa); 武汉工程大学计算机科学与工程学院 综合设计报告 - 21 - else if(compare=“(va)(aa); else cout :iterator listi; do coutnametype; Field pp(name,type); ve.push_back(pp); if(lis.empty()=0) for (listi=lis.begin();listi!=lis.end();listi+) defaultAny(type,aa); (*listi).push_back(aa); cout“

17、judge; while(judge=“y“|judge=“Y“); coutva; vector:iterator vi; string judge; cout“judge; while(judge=“y“|judge=“Y“); cout:iterator vi; vector:iterator vai; list :iterator listi; cout:iterator vi; vector:iterator vai; list :iterator listi; couts; for (vi=ve.begin();vi!=ve.end();vi+) if (*vi).mname=s)

18、 break; if(vi=ve.end() cout:iterator vi; vector:iterator vai; list :iterator listi; vector:iterator vliit; int hang; int flag=0; string judge; int i=0; string type; do cout,namecondition; for(vi=ve.begin();vi!=ve.end();vi+) if(*vi).mname=name) cinAny(*vi).mtype,aa); break; if(vi=ve.end() cout0) 武汉工程

19、大学计算机科学与工程学院 综合设计报告 - 24 - for (vliit=vli.begin(),listi=lis.begin();vliit!=vli.end();vliit+,listi=lis.beg in() for(int j=0;jjudge; flag+; while(judge=“y“|judge=“Y“); if(vli.empty()=1) cout :iterator vliit; list :iterator listi; 武汉工程大学计算机科学与工程学院 综合设计报告 - 25 - cout0) cout :iterator vliit; list :iterat

20、or listi; string name; any aa; int i; vector :iterator vi; vector:iterator vai; coutname; for (vi=ve.begin();vi!=ve.end();vi+) if(*vi).mname=name) cinAny(*vi).mtype,aa); break; if(vi=ve.end() coutfilename; 武汉工程大学计算机科学与工程学院 综合设计报告 - 26 - outFile.open(filename.c_str(); outFile.clear(); vector:iterator

21、 vi; vector:iterator vai; list :iterator listi; int i;string s;double d;float f;char c; for (vi=ve.begin();vi!=ve.end();vi+) outFile(*vai);outFile(*vai);outFile(*vai);outFile(*vai);outFile(*vai);outFile(*vai);outFile(*vai);outFile(*vai);outFile(*vai);outFile(*vai);outFile :iterator vi; vector:iterat

22、or vai; list :iterator listi; coutselect; switch(select) case 1: coutoldnamenewname; for (vi=ve.begin();vi!=ve.end();vi+) if(*vi).mname=oldname) (*vi).mname=newname; break; if(vi=ve.end() coutoldnametype; for (vi=ve.begin();vi!=ve.end();vi+) if(*vi).mname=oldname) (*vi).mtype=type; break; if(vi=ve.e

23、nd() coutoldnamenewnametype; for (vi=ve.begin();vi!=ve.end();vi+) if(*vi).mname=oldname) (*vi).mname=newname; (*vi).mtype=type; break; if(vi=ve.end() cout“Input error old Field name!“endl; else i=vi-ve.begin(); for (listi=lis.begin();listi!=lis.end();listi+) vai=(*listi).begin()+i; defaultAny(type,a

24、a); (*vai)=aa; break; default:cout“Input error mode!“endl; int _tmain(int argc, _TCHAR* argv) DataTable dt; dt.readFieldRecord(); dt.outAllRecord(); dt.insertField(); dt.outAllRecord(); dt.insertRecoed(); dt.outAllRecord(); dt.removeField(); dt.outAllRecord(); dt.modifyField(); dt.outAllRecord(); dt.modifyRecord(); dt.outAllRecord(); dt.removeRecord(); dt.outAllRecord(); dt.outToFile(); 武汉工程大学计算机科学与工程学院 综合设计报告 - 29 - dt.DataTable(); return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1