顶岗实习报告书
姓 名 王志俊 系 别 信息工程学院 专 业 软件技术 实习单位 MIDP移动互联网创新工场 指导老师 王 健
目 录
一、顶岗实习综述........................................................3
(一)实习单位......................................................3
(二) 实习岗位概述.................................................3
(三)时间、指导老师、学校管理教师..................................3
二、顶岗实习技术总结....................................................3
三、实习收获与体会......................................................6
四、总结:不足与努力方向................................................6
五、致谢................................................................7
江西现代职业技术学院顶岗实习报告
一、顶岗实习综述
(一)实习单位
MIDP移动互联网项目是中锐教育集团旗下的职业教育品牌,20xx年在江苏如皋投入运营,业务含盖移动互联网技术研发、移动互联网应用开发、创业企业孵化、教育培训及大学生实训等多个领域。集团创始于19xx年,迄今已有十七年办学历史,是致力于学历教育和职业教育的中外合作办学领域专业教育投资和教育服务机构。集团先后投资兴办了多种不同类型的学校,包括无锡南洋职业技术学院、新加坡南洋现代管理学院、苏州外国语学校、合肥外国语学校,还有专门为在华外籍人士子女开设的伊顿国际学校等知名的学府。 MIDP移动互联网项目是中锐教育集团旗下的职业教育品牌,20xx年在江苏如皋投入运营,业务含盖移动互联网技术研发、移动互联网应用开发、创业企业孵化、教育培训及大学生实训等多个领域,成功开发并孵化了“无忧购车”、“二维码扫描”等多个移动互联网商业项目。
(二)、实习岗位概述
研发初期,做类似需求报告还有可行性分析等等文档,研发中期,负责界面的编写以及后台代码的制作,研发后期,负责软件的测试以及改善工作。
(三)时间、指导老师、学校管理教师
实习时间:于20xx年7月15日至20xx年10月10日
指导老师:王健
学校管理教师:孔璐
二、顶岗实习技术总结
在这段实习期间,主要学习和熟悉C语言、IOS应用开发 ,做一些简单的代码编写工作,包括数据库的定期优化、产品问题解决、系统测试、系统支持、操作环境处理等专项支持。在此过程中在指导老师的帮助下我们完成了一个简单的应用程序—房易购小助手。一个方便计算房贷和二手房贷以及个人购房能力以及浏览房源的软件,此软件通过M-V-C模式完美的诠释了一个软件,通过前台UI和后台代码,中间实现连接完成,功能包括房贷计算和二手房贷计算,其中的房贷计算通过Seg可以选择本金支付和本息支付,通过选择不同计算出不同的购房房贷所需金额,个人购房能力通过继承购房能力的实现代码做到了反运算,房源浏览通过WebView浏览安房网来进行房源浏览。 技术要点:房助 3
江西现代职业技术学院顶岗实习报告 手的界面、控件的连接、概率的计算公式,Seg不同方法。
在这个房易购项目中,我作为组长的身份,给其他的组员合理地分配任务。研发初期,做了许多类似需求报告还有可行性分析等等文档,研发中期,负责界面的编写以及后台代码的制作,研发后期,负责软件的测试以及改善工作。虽然这只是简单一个软件,但刚开始做起来也是那么的力不从心。首先代码的编写是个很大的问题,起初我们遇到不懂的地方还是自己在那里慢慢摸索,虽然有那么一点收获,可是效率不高。幸好班上学习好的同学还是挺多的,不懂得会去请教。要做好一个好的软件自然要给人一个好的第一感觉,UI的设计是不可或缺的好的,好的UI设计可以让软件变得有个性有品味,做之前我们也有在网上查找一下前辈们成功的案例,最后我们总结好的UI应该具备以下几点:1、简洁明了;2、界面美观;3、舒适、简单、自由、充分体现软件的定位和特点;做好这些那你离成功就不远了。
下面是我在岗位上所得的一些总结与知识:
1. 框架和代码的关系,框架不仅仅是将提供各自服务的各个类混合在一起的杂物袋。这些面向对象的框架是类的集合,每个类构建一个问题空间,并提供完整的解决方案。
2. 协议可声明由任何类的实施方法,即使实施该协议的那些类没有共同的超类。协议方法定义了独立于任何特定类的行为。协议简单定义了一个由其他类负责实现的接口。当你的类实施了一个协议的方法时,就是说该类符合该协议。
3. 类定义是累加的,每一个定义的类都是基于另一个类,从另一个类继承方法和实例变量。新的类只是对于所继承的进行一些添加和修改,他不需要复制继承的代码。
4. 在Objective-C中想要了解在对象的相关技术及对象所有权的规则引用计数环境中创建、复制、维护和销毁,就不得不考虑Objective-C中的内存管理规则。
5. UIKit中的常用类从功能上可以分为显示视图、控件、导航视图、警告视图和动作表单、文本和web视图,以及容器等几个类型。
6. 如果项目中有c函数,出现同名的函数会导致应用编译失败,否则会导致应用崩溃(不一定是立即崩溃)。
7. 所有的UI操作都应该在主线程中执行,即使这些c函数处于不同的页面中。
8. 将比较费时的操作不要放在主线程中执行,避免UI响应慢。应该在一个新线程中执行(对有同步要求的操作除外)。
9. 使用最新的Xcode and iOS SDK进行开发,对高版本的兼容性会好一些。例如Mac 4
江西现代职业技术学院顶岗实习报告 10.6下只能安装Xcode4.2and iOS SDK 5.0。
10.在每个页面的入口和出口(一般是viewDidLoad和dealloc)打上日志,可以了解用户的操作流程,并查出页面在关闭时是否销毁了相应的对象。
课程结束后我选择了江苏,这个让我梦想绽放的地方。在江苏这个节奏飞快的地方,人们显得那么疲惫,脚步那么快。马路、街道上随处可见的是跑着人,走着吃东西的人,地铁、公交上大多数是闭眼休息的人。从开始实习到现在,我学到的有工作方面的专业技能,人际交往,为人处世的技巧,结交了几个富有创业激情的朋友。在近两个月的工作期间,锻炼了自己的职场能力,适应新环境的能力,开发的能力。在知识技能方面学到的知识内容,包括C语言的基础开发,测试方法,IOS应用,等。在开发过程中大家一起讨论思想,讨论实现方法,遇到问题时共同解决,就像一个大家庭一样,互帮互助。
雅座在线科技发展有限公司是我第一个工作的单位,我的工作岗位是技术支持。我的工作职责是:1、熟练掌握公司软件产品的安装、功能使用;2. 跟踪和学习最新的技术动态,及时了解新技术、新业务和新设备;3. 配合销售撰写技术方案;4. 负责公司日常的针对客户的售前售后的电话以及现场的技术支持;5. 负责针对客户的产品演示、安装以及培训工作;6. 落实工程各项指标,并作好工程实施文档的记录;7. 保持与客户良好的沟通,能够让用户学会并熟练使用公司提供的产品;总结客户在培训中对产品提出的建议,回馈给相关部门。
技术支持分售前技术支持和售后技术支持,售前技术支持是指在销售遇到无法解答的产品问题时,售前技术支持给予帮助,售后技术支持是指产品公司为其产品用户提供的售后服务的一种形式,帮助用户诊断并解决其在使用产品过程中出现的有明显症状的,可能由产品导致的技术问题。我负责的是售后技术支持,因为在校期间只要学习的是软件开发,关于售后技术支持不是很了解,所以上岗前公司给我们培训了一个月。让我知道了在21世纪的当代,技术支持已经成为服务的一部分。也成为公司企业形象的重要组成部分。技术的支持不仅仅是以解决技术问题为目的,更重要的是在客户的心里建立起企业的形象,让人们记住的是 企业的形象,进一步记住所用产品的品牌,最后达成服务与品牌的完美结合。我们主要做的是跟客户进行一个更为细致的沟通,主要是从事售前的厂地堪查、图纸的查验、技术参数商洽(技术交底),更好的为客户提供服务并提高客户满意程度,促使客户能同公司更好的合作,但不会涉及签单或报价。同时还会对售后人员进行技术指导!
刚开始上班当顾客打电话过来咨询问题的时候还是挺紧张的,和顾客交流虽然不是面 5
江西现代职业技术学院顶岗实习报告 对面的,但还是发挥的不理想。沟通能力有待提高,所以随时调整好自己的心态对于我们来说尤其重要。脑子反应要快,当你说出一句话,立马应该反应到当你说出这句话的时候,客户会怎么回复你,然后你应该以什么样的语气和词汇跟他继续下去,电话一接通,听到对方的第一句话或几句话,就可以知道他是一个什么样性格的人,说话方式就要根据他的性格做调整,用最合适的,对方最能接受的语气跟他交流。
公司尊重个人的创造性和价值观;公司为每个员工提供有挑战力的工作机会并以有竞争力的工作环境和薪资福利的回报;公司致力于发展优秀的企业文化和良好的工作环境,为个人和企业发展国际竞争力创造优势。目前公司正通过积极的规范化、科学化管理,不断拓宽业务领域,公司的整体运作步入了良性循环的轨道。刚开始去的时候自己都不敢张口说话,整个人显得很木讷不合群,我也意识到了这一点,可就是放不开,想着怎么解决这个问题,后来我们的总经理看我这样,主动找到谈话,我印象深刻,在进入一个新环境的时候不要等着去适应这个环境,要立刻马上进入这个环境,这是锻炼你的首要条件。在这段实习生活中我知道了自己的不足之处,进入一个新的环境不能很快的融入进去,在说话方式,处事方面还应该提高。
三、实习收获与体会
毕业前的实习是每个学生走向社会、走上工作岗位必不可少的一个环节。身处实际的工作环境和社会环境,在实践中重新认识社会、认识自己,明白社会上都有什么样的人,社会需要什么样的人,所以在日常工作当中还是应当充分认识到理论与实践的联系。自己要做什么样的人,这些都是学生在实习中能学到的东西。通过这段过渡时期,将为真正进入社会,创造生活,做好铺垫,打下基础。在这四个月的实习生活中,我学习到了很多东西,也有很多感触和认识,我重新找回了自己的理想并为之努力,这就是我最大的收获,这次实习的收获和体会,也是我对大学三年的收获和体会,自己对自己的认识,对自己选择的认识。
四、总结:不足与努力方向
通过实习,在获得知识,锻炼技能的同时也发现了自己的一些不足之处。在实际的开发过程中发现对于某些知识的掌握本以为已经相当透彻,但是实际情况往往与预想不太一样,因为自己的许多认识很多都是建立在理论的基础之上,而缺乏实践验证。所以对一些观点的认识往往会趋于片面,通过实际的工作发现自己的知识储备还是比较薄弱的,工作中遇到很多知识点都是未曾接触过的,因而应当进一步丰富自己的知识储备。在人际交往 6
江西现代职业技术学院顶岗实习报告 方面,感觉自己还不够自如,还有待进一步锻炼这方面的技能。对相关的业务知 识了解还比较少,缺乏相应的经验,所以在这方面还需更加努力。
为了进一步提高自身的综合素质,除了弥补以上的不足之外还应当进一步拓展知识面,加深对某些重点知识的理解和掌握,并且在实际的工作过程中注意积累各方面的经验,锻炼各方面的技能,提高对软件开发的总体认识和开发的熟练度,对软件设计和架构方面的知识还应当倾注更多的精力,进一步了解软件的总体设计理念,从宏观上对软件的开发有一个整体的把握。此外,尤其值得注意的是IT技术发展可谓日新月异,新技术的发展很快,所以,从事这一行业,永远不可停下学习的脚步,否则,将会被发展的浪潮吞没 。所以必须时常关注新技术的发展并紧跟IT发展的步伐,永葆思想和技术的生机活力。
五、致谢
能够顺利完成实习任务,离不开单位和老师的辛勤指导,在此特意致谢。感谢实习单位能够提供这一良好的实习环境,感谢单位老师和学校老师的的殷切指导,感谢同事和网友提供的热情帮助,感谢我的朋友们给我一个新的世界,让我看到激情澎湃的一面。在大家的帮助下,我得以在实习期间获得丰富的知识技能,使综合素质得到了较大的提高。我会继续努力,学好相关知识技能,增加自己的阅历,为自己的理想奋斗,为家人和社会贡献自己的力量。
7
软件工程实践报告 设计题目: 商品销售统计 学校:
班级: 姓名: 学号: 指导老师:
完成日期:
南昌航空大学 邱天 20xx年2月19日
2 软件工程试验报告
摘要
商品销售统计系统程序设计利用计算机技术,使得企业生产、库存和销售能够有利结合起来,提高企业的效率和效益。 利用该系统可以为决策者和管理者及时掌握时常动态和企业的生产状况,以及对员工销售额的统计。 销售统计系统是一个商品企业单位不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要,所以销售统计系统应该能够为管理人员提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文
件档案,这种管理方式存在着许多缺点。随着科学技术的不断提高,计算机科学
日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对员工信息及业绩进行管理,具有手工管理所无法比拟的优点。
关键字:计算机技术、提高效益、日渐成熟、不可或缺。
3 软件工程试验报告
目录
第一章、课设设计目的与要求 ........................................ 1
1.1 目的与要求 ................................................. 2
第二章、课题介绍------商品销售系统 ................................ 3
2.1 课设题目 .................................................... 3
2.2 任务和要求 ................................................ 3
第三章、算法的设计 ............................... 错误!未定义书签。
3.1 本程序的流程图 .............................................. 5
3.2 算法的思路 .................................................. 5
第四章、详细设计与调试 ............................................ 8
4.1 系统界面管理 ................................................ 8
4.2 商品管理界面 ................................................ 8
4.3 商品管理各功能的实现 ........................................ 9
4.3.1 商品的添加............................................. 9
4.3.2 商品的删除............................................. 9
4.3.3 商品的查找............................................ 10
4.3.4 商品的显示............................................ 10
4.4 购物功能的实现 ............................................. 11
第五章、调试手册与测试数据 ....................................... 12
5.1 调试手册 ................................................... 12
5.2 测试数据 ................................................... 12
第六章 实验心得与体会.............................................. 13
附录一............................................................. 14
附录二............................................................. 21
4 软件工程试验报告
前 言
近年来,随着商品销售市场的不断扩大,有关商品的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致商品销售管理上的混乱,人力与物力过多浪费,用于支付职员的工资不断增加,从而使各大商品经销商的负担过重,影响整个销售部门的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的商品销售管理系统,对欲要销售的商品进行集中统一的管理。本系统开发的总设计目标是实现商品经销商对商品的系统化、规范化和自动化管理,实现对所经销商品的集中统一管理。
1 软件工程试验报告
第一章 课设设计目的与要求
1.1目的
《Visual C++面向对象与可视化程序设计》是计算机专业一门重要的专业基础课。此次课程设计的目的是以程序设计语言为基础,通过完成一些具有一定难度的课程设计题目的编写、调试、运行工作,进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决问题的能力。通过课程设计,学生在下述各方面的能力应该得到锻炼:
(1)进一步巩固、加深学生所学专业课程《Visual C++面向对象与可视化程序设计》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握面向对象的程序设计方法。
(6)进一步掌握在集成环境下如何调试程序、修改程序和程序的测试。
2 软件工程试验报告
1.2 要求
从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:
1) 根据实现的功能,划分出合理的对象类,明确对象类间的关系。
2)利用所学知识,开发小型应用系统,掌握运用C++语言编写
调试应用系统程序,训练独立开发应用系统,进行数据处理
的综合能力。
3)全面考核学生所掌握的基本理论知识及其实际业务能力,从
而达到提高学生素质的最终目的。
4) 为每个对象类设计正确的域和方法,为每个方法设计合理的方
法体。同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。
5)编程简练,程序功能齐全,能正确运行。
6)进一步掌握在集成环境下如何调试程序、修改程序和程序的测试。
3 软件工程试验报告
第二章 课题介绍------商品销售系统
2.1 课设题目
编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。
2.2 任务和要求
程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。此时。程序计算出应付钱款数并显示。
测试数据:
程序应输入不少于10种商品的信息,并进行模拟运行。
实现提示:
本程序的商品信息管理可采用既定义一个商品类,每种商品作为商品类的实例(对象)存储在链表节点中的数据结构。
4 软件工程试验报告
2.3 问题分析:
按照要求这个程序的编写要求,由于包含多种实现要求,所以在编写时需要多个实现函数,这样就要定义一个类或机构体来统筹各个函数以及用链表或指针数组来储存输入的常量数据,并且在各个转换点设置相应的提示语句使整个程序便于操作。在修改数据的函数实现时,由于一个商品包含多个变量,要想在修改某一个数据后而不影响其他的数据,所以就必须要有一个switch语句;在商品信息显示函数的实现时,由于中间要有一个购买函数的实现,所以商品数量会随着商品的购买而减少,所以要将购买的数量另外定义一个变量。关于switch语句的运用在这个程序这可能要多次使用,主要在一个函数拥有多个变量或变量函数。
5 软件工程试验报告
第三章 算法的设计
3.1 本程序的流程图
3.2 算法的思路
3.2.1 定义一个结构体,该结构体用来存放商品的代码,名称等信息:
struct shangpin
{int number;
char name[30];
float weight;
float price;
6 软件工程试验报告
shangpin *next;
};
3.2.2 定义list链表类,用来动态的存放商品的信息:
class list { //定义链表类
shangpin *elems;
public:
list() {elems=0;}
~list();
virtual bool insert();
void insert1(shangpin *pr,float wgt);//此虚函数在派生类中可重新定义
bool insert2();
virtual bool deletes(int); //此虚函数在派生类中可重新定义
bool contain(int); //定义重载的构造函数 bool contain1(int);
shangpin *chazhao(int);
void print();
void print1();
void shanchu();
};
7 软件工程试验报告
3.2.3 定义list的派生类set类,用来对商品进行操作: class set:public list {
int card;//将集合类set定义为链表类list的派生类 struct shangpin shp;
public:
set() {}
bool insert(); //重定义此函数
bool deletes(int); //重定义此函数
};
8 软件工程试验报告
第四章 详细设计与调试
采用C++6.0作为开发工具,用面向对象编程,对所要处理的商品信息进行存储,分别调用各个功能函数来处理。
4.1 系统界面管理
void inr()
{ cout<
cout<<"****************************************************************"<
cout<<" 欢迎进入商店系统,请选择相应的功能,如 按 1 键,进行商品管理操作"<
cout<<" 1 :商品管理 "<<" "<<"2 :购物"<
cout<<" a :退出"<
cout<<"****************************************************************"<
4.2 商品管理界面
void ini()
{ cout<
cout<<"****************************************************************"<
cout<<" 欢迎进入商品管理系统,请选择相应的功能,如 按 1 键,进行添加操作"<
cout<<" 1 :添加 "<<" "<<"2 :删徐 "<
cout<<" 3 :查找"<<" "<<"4 :显示 "<
cout<<" q :退出"<
cout<<"****************************************************************"<
cout<<"请选择:";
}
9 软件工程试验报告
4.3 商品管理各功能的实现
4.3.1 商品的添加
bool list::insert() //定义list类中插入元素的成员函数
{int num;cout<<"请再次输入商品的代码"<
cin>>num;
shangpin *elem=new shangpin; //为新元素分配存储
if (elem!=0) {
elem->number=num;
cout<<"请输入商品的名称"<
cin>>elem->name;
cout<<"请输入商品的价格(单位:元)"<
cin>>elem->price;//将新元素插入到链表头
elem->next=elems;
elems=elem;
return true;
}
else return false;
}
4.3.2 商品的删除
bool list::deletes(int number) //定义list类中删除元素的成员函数 {
if(elems==0) return false; //若表为空,返回false
shangpin *tmp=elems;
if(elems->number==number)
{ //若待删除的元素为表头元素
elems=elems->next;
delete tmp;
return true;
}
else
for(shangpin *elem=elems; elem->next!=0; elem=elem->next) if(elem->next->number==number)
{ //循环查找待删除元素
tmp=elem->next;
elem->next=tmp->next;
delete tmp;
return true;
}
10 软件工程试验报告
return false;
}
4.3.3 商品的查找
bool list::contain1(int number)
{
if(elems==0){cout<<"没有此商品"<
if(elems->number==number){cout<<"商品代码:"<number<<"商品名称:"<name<<"商品价格:"<price<
else
for(shangpin *elem=elems; elem->next!=0; elem=elem->next)
if(elem->next->number==number){
cout<<"商品代码:"<next->number<<"商品名称:"<next->name<<"商品的价格:"<next->price<<"元"<
cout<<"没有此商品"<
return false;
}
4.3.4 商品的显示
void list::print() //输出链表中各元素
{
if(elems==0) return;
for(shangpin *elem=elems; elem!=0; elem=elem->next)
cout<<"商品代码:"<number<<" "<<"商品名称:"<name<<" "<<"商品价格:"<price<<"元"<
cout<
}
void list::print1() //输出链表中各元素
{
if(elems==0) return;
for(shangpin *elem=elems; elem!=0; elem=elem->next)
cout<<"商品代码:"<number<<" "<<"商品名称:"<name<<" "<<"商品价格:"<price<<"元"<<"商品的重量或件数:"<weight<
cout<
}
11 软件工程试验报告
4.4 购物功能的实现
cout<<"请输入你所要购买的商品的代码"<
cin>>num4;
cout<<"请输入你要购买的件数或重量"<
cin>>weight;
shangpin *p;
p=ptr->chazhao(num4);
ptr1->insert1(p,weight);
zonge=zonge+(p->price)*weight;
cout<<"是否购物完毕?"<
cout<<"如果购物完毕,请输入** b **结束购物"<
cout<<"如果继续购物,请随机输入一个字符,但不要输入**b**或**B**"<
cin>>ch2;}
cout<<"你购买的商品清单如下:"<
ptr1->print1();
ptr1->shanchu();
cout<<"你所要支付的总金额为:"<
zonge=0;
12 软件工程试验报告
第五章 调试手册与测试数据
5.1 调试手册
(1)、error C2143: syntax error : missing ';' before '}'行246少了一个分号
(2)、error C2562: 'main' : 'void' function returning a value空类型不能有返回值
(3)、error C2679: binary '<<' : no operator defined which takes a right-hand operand of type '' (or there is no acceptable conversion) t[i].getName后面少了()
5.2 测试数据:
进入演示程序后,即显示对话形式的提示操作过程:
13 软件工程试验报告
第六章 实验心得与体会
c++课程设计在基本知识上由老师引导,自己很多都靠自学,不明白的问老师,但由此自学能力得到了很大的培养。在设计过程中,我感觉到一点:程序是不能一气呵成的,至少一气呵成的程序不会尽善尽美,程序编写要一步一步的完成。
首先,对于要编写的程序要有一个总体思想,要明确想要什么,只要把思想理顺清楚了,如此才能够把程序分割成几个模块,即多个函数,一块一块的编写,然后将分散的函数用另外的函数链接起来或者用main函数链接。到了这一步,程序的框架也就完成了,之后就是调试查错误以及修改了。为了让自己的程序更加的美观和更加的简洁,最后我们还得对程序再进行进一步的修改,优化程序的阶段是很重要的。
14 软件工程试验报告
附录一
源程序:
#include
#include
struct shangpin
{int number;
char name[30];
float weight;
float price;
shangpin *next;
};
class list { //定义链表类
shangpin *elems;
public:
list() {elems=0;}
~list();
virtual bool insert();
void insert1(shangpin *pr,float wgt);//此虚函数在派生类中可重新定义
bool insert2();
virtual bool deletes(int); //此虚函数在派生类中可重新定义 bool contain(int);
bool contain1(int);
shangpin *chazhao(int);
void print();
void print1();
void shanchu();
};
class set:public list {
int card;//将集合类set定义为链表类list的派生类
struct shangpin shp;
public:
set() {}
bool insert(); //重定义此函数
bool deletes(int); //重定义此函数
};
shangpin *list::chazhao(int number)
{ //若表为空,返回false
shangpin *tmp=elems;
if(elems->number==number) //若待删除的元素为表头
15 软件工程试验报告
元素
return tmp;
else
for(shangpin *elem=elems; elem->next!=0; elem=elem->next) if(elem->next->number==number)
{ //循环查找待删除元素
tmp=elem->next;
return tmp;
}
}
void list::shanchu()
{
shangpin *tmp=elems;
for(shangpin *elem=elems; elem!=0;)
{
tmp=elem;
elem=elem->next;
delete tmp;
}
}
list::~list() //list类得析构函数定义,循环释放各元素所占的存储 {
shangpin *tmp=elems;
for(shangpin *elem=elems; elem!=0;)
{
tmp=elem;
elem=elem->next;
delete tmp;
}
}
void list::insert1(shangpin *pr,float wgt)
{
shangpin *elem=new shangpin; //为新元素分配存储
if (elem!=0) {
elem->number=pr->number;
int i;
for(i=0;i<30;i++)
elem->name[i]=pr->name[i];
elem->weight=wgt;
elem->price=pr->price;//将新元素插入到链表头
elem->next=elems;
elems=elem;
}
}
16 软件工程试验报告
bool list::insert2()
{
int num;
cin>>num;
shangpin *elem=new shangpin; //为新元素分配存储
if (elem!=0) {
elem->number=num;
elem->next=elems;
elems=elem;
return true;
}
else return false;
}
bool list::insert() //定义list类中插入元素的成员函数
{int num;cout<<"请再次输入商品的代码"<
cin>>num;
shangpin *elem=new shangpin; //为新元素分配存储
if (elem!=0) {
elem->number=num;
cout<<"请输入商品的名称"<
cin>>elem->name;
cout<<"请输入商品的价格(单位:元)"<
cin>>elem->price;//将新元素插入到链表头
elem->next=elems;
elems=elem;
return true;
}
else return false;
}
bool list::deletes(int number) //定义list类中删除元素的成员函数 {
if(elems==0) return false; //若表为空,返回false
shangpin *tmp=elems;
if(elems->number==number)
{ //若待删除的元素为表头元素
elems=elems->next;
delete tmp;
return true;
}
else
for(shangpin *elem=elems; elem->next!=0; elem=elem->next) if(elem->next->number==number)
{ //循环查找待删除元素
17 软件工程试验报告
tmp=elem->next;
elem->next=tmp->next;
delete tmp;
return true;
}
return false;
}
bool list::contain(int number)
{ //判元素val在链表中是否存在
if(elems==0)return false;
if(elems->number==number) return true;
else
for(shangpin *elem=elems; elem->next!=0; elem=elem->next)
if(elem->next->number==number)
return true;
return false;
}
bool list::contain1(int number)
{
if(elems==0){cout<<"没有此商品"<
if(elems->number==number){cout<<"商品代码:"<number<<"商品名称:"<name<<"商品价格:"<price<
else
for(shangpin *elem=elems; elem->next!=0; elem=elem->next)
if(elem->next->number==number){
cout<<"商品代码:"<next->number<<"商品名称:"<next->name<<"商品的价格:"<next->price<<"元"<
cout<<"没有此商品"<
return false;
}
void list::print() //输出链表中各元素
{
if(elems==0) return;
for(shangpin *elem=elems; elem!=0; elem=elem->next)
cout<<"商品代码:"<number<<" "<<"商品名称:"<name<<" "<<"商品价格:"<price<<"元"<
cout<
}
void list::print1() //输出链表中各元素
{
if(elems==0) return;
for(shangpin *elem=elems; elem!=0; elem=elem->next)
cout<<"商品代码:"<number<<" "<<"商品名称:
18 软件工程试验报告
"<name<<" "<<"商品价格:"<price<<"元"<<"商品的重量或件数:"<weight<
cout<
}
bool set::insert() //在set类中的insert的重定义版本
{int num1;
cout<<"请输入商品代码"<
cin>>num1;
if(list::contain(num1)==false&&list::insert())
{ //先判断此元素是否存在,然后再调用基类的此函数版本
++card;
return true;
}
return false;
}
bool set::deletes(int number) //在set类中的deletes的重定义版本
{
if(list::deletes(number)) //调用基类中的此函数版本
{ card--;
return true;
}
return false;
}
void ini()
{ cout<
cout<<"****************************************************************"<
cout<<" 欢迎进入商品管理系统,请选择相应的功能,如 按 1 键,进行添加操作"<
cout<<" 1 :添加 "<<" "<<"2 :删徐 "<
cout<<" 3 :查找"<<" "<<"4 :显示 "<
cout<<" q :退出"<
cout<<"****************************************************************"<
cout<<"请选择:";
}
void inr()
{ cout<
cout<<"****************************************************************"<
cout<<" 欢迎进入商店系统,请选择相应的功能,如 按 1 键,进行商品管理操作"<
cout<<" 1 :商品管理 "<<" "<<"2 :购物"<
cout<<" a :退出"<
19 软件工程试验报告
cout<<"****************************************************************"<
cout<<"请选择:";
}
void main()
{ list *ptr;
set set1; ptr=&set1;
list *ptr1;
set set2;
ptr1=&set2;
char ch1;char ch; float zonge=0;
inr();
cin>>ch1;
while(ch1!='a'&&ch1!='a')
{
switch(ch1)
{case '1':
ini();
cin>>ch;
while(ch!='q'&&ch!='Q')
{
switch( ch)
{
case '1':ptr->insert(); break;
case '2':int num2;cout<<"请输入你所需要删除的商品代码"<>num2;
ptr->deletes(num2);
break;
case '3':cout<<"请输入你所要查找的商品的代码"<>num3;ptr->contain1(num3);break;
case '4':ptr->print();break;
case 'q':;
}
ini();
cin>>ch;
}break;
case '2':
ptr->print();
char ch2;
while(ch2!='b'&&ch2!='B')
{int num4;float weight;
20 软件工程试验报告
cout<<"请输入你所要购买的商品的代码"<
cin>>num4;
cout<<"请输入你要购买的件数或重量"<
cin>>weight;
shangpin *p;
p=ptr->chazhao(num4);
ptr1->insert1(p,weight);
zonge=zonge+(p->price)*weight;
cout<<"是否购物完毕?"<
cout<<"如果购物完毕,请输入** b **结束购物"<
cout<<"如果继续购物,请随机输入一个字符,但不要输入**b**或**B**"<
cin>>ch2;}
cout<<"你购买的商品清单如下:"<
ptr1->print1();
ptr1->shanchu();
cout<<"你所要支付的总金额为:"<
zonge=0;
break;
case 'a':;
}
inr();
cin>>ch1;
}
}
21 软件工程试验报告
附录二
参考文献
[1].黄维通 贾续涵编著《Vissual C++面向对象与可视化程序设计(第三版)》北京:清华大学出版社
[2].严蔚敏 吴伟明 编著《数据结构(C语言版)》北京:清华大学出版社
[3] 何鹏飞. Delphi7 程序设计教程.北京:清华大学出版社,2003.
[4] 张玉起.仓库物流管理数据库系统设计.北京:今日科苑,20xx年 14期,起止页码:149-150
实习报告西安文理学院软件学院10级软件工程一班张兴华学号141xxxxxxxx实习报告一、实习目的根据所学课程的理论知识,结合企业…
毕业实训报告实训题目:邮件服务器的收发系统系别:XXX专业:XXX学号:XX姓名:指导教师:提交日期:20XX年6月2日一、实训题…
辽宁工程技术大学本科生实习报告书教学单位软件学院专业软件工程(财升本)班级10-01班学生姓名**学号**指导教师**一、实习目的…
软件助理工程师岗位的实习报告姓名:专业班级:10级软件技术(英语)实习单位:埃森哲信息技术(大连)有限公司指导教师:完成日期:20…
一.实习目的通过实习提高自己的对社会的认知能力,同时理论联系实际,让自己迅速适应社会,跟上IT前进的快速步伐。通过理论与实际的结合…
湖北水利水电职业技术学院顶岗实习报告实习单位:武汉金龙建设监理有限责任公司姓名:李律学号:08020xx320专业:水利水电建筑工…
泉州信息职业技术学院实习日期:顶岗实习报告姓名学号专业会计电算化实习单位市天源水电开发有限公司实习岗位校外指导教师校内指导教师20…
会计顶岗实习报告范文:会计顶岗实习报告格式目录一、实习概述(一)实习单位简介(二)实习岗位简介(三)实习任务完成情况二、实习过程三…
赴北京热风时尚贸易有限公司顶岗实习报告一、实习目的通过这次的顶岗实习,使我们更一步加深了对连锁企业的认识,进一步理解连锁企业的内涵…
武汉软件工程职业学院湖北×××科技有限公司顶岗实习报告专业:通信技术班级:通信×××班学生姓名:×××学号:×××××××指导老师…
实习总结(XXXX部:XXX20xx年x月x日)20xx年x月,我进入XXXX公司开始毕业前期的实习工作。我有幸进入了软件系统事业…