软件开发实习个人总结
信息科学与技术学院
本科一年级
软件开发实习个人总结汇总
专业:物联网工程班级:********
实习人数:**指导教师:***
实习单位:软件工程实验中心
201*年7月26
目录
目录
2马翠翠201*2719(姓名+学号)软件开发实习总结...................................................................3沈萌(201*2724)软件开发实习总结...........................................................................................4
软件开发实习报告
马翠翠201*2719(姓名+学号)软件开发实习总结
题目:食堂饭菜销售管理系统小组成员:本人完成的任务:一起进行需求分析,对链表和文件两方面的书写后面程序结合后进行程序小部分调试并对出现的问题进行讨论解决本人软件开发应用系统设计收获与体会(含实习参观)以及建议或意见(不少于500字):本次软件开发实习所应用的时间也就是只有差不多八天的时间来完成一个相对以前来说比较大的管理系统的书写,综合利用C++的知识来完成一个面向对象的程序设计。看到这个题目时我们进行需求分析,因为我们能够做好需求分析是件非常重要的一步,但是在分析是出现了点问题,就是对题意的理解有点错误或者是很偏,首先这是个销售的管理系统,之前理解太偏向于仓库的管理,因此很久都没有拿出方案来。后来纠正了错误,就是对对象进行进行提取它的属性,做好基类,及其派生类。在实现代码时,由于之前我们就对链表及文件就几乎不用,对他就是陌生的,但是在实现此工程时又必须要使用,所以我在开始的时候就开始在这方面下功夫,看如何来实现链表及对链表的操作。在这最大的收获就是通过问同学及自己对地址的分析基本上很深的明白了链表和文件,同时我们组的两个人都能够明白到底是怎么回事。很遗憾的是在这几天中进行的很多工作到最后没有实现,因为所做的工作是在类里面有个链表类,也就是最终要实现的是链表中要嵌套链表,没能够实现,也怕时间不够,就先把这部分省去了,最大的突破就是从文件中读出内容写进链表中,就算是应用了两天的时间,并且在咨询同学的情况下成功,这是我们在此实习种感觉最大的收获。对此次实习,很感谢,他就算把一年中所学到的知识融合在一起,并且真正的应用,并对自己能力有很大的提高!软件开发实习报告
但是感觉题目不是很好,或者说把题目能够说得更清楚点,因为题目的了解对程序的影响是决定性的,还有那些很硬式要求不要太硬式了,有的问题也许不用那些方法可能会更好用,更简单!沈萌(201*2724)软件开发实习总结
题目:食堂饭菜销售管理系统小组成员本人完成的任务:1.做需求分析;2.负责整个系统的总体设计3.编写了饭菜管理、盘点检查、退出、异常及菜单的程序;
软件开发实习报告
4.负责调试程序检查修改错误及组织并参与报告的书写。本人软件开发应用系统设计收获与体会(含实习参观)以及建议或意见(不少于500字):在本次软件实习中,我是真的感受到自己无论是知识技能还是工作能力的提升。从拿到题目开始,我们开始做需求分析,为了让我们的程序更加实用,系统更加稳定,分析考虑得很细,大大提高了自己的问题分析能力。再通过对程序的设计,以及实际对程序的编写,极大地巩固了自己的c++知识,提升自己编程能力。编程这种东西,不像很多学科记记背背就可以,如果没有大量的时间上机操作经验的积累,就不可能学得好。而这次软件开发实习就是为了我们这个机会。同时,在实习中面对各种各样的问题,有的问题一直缠绕了我们团队1-2天,但我们没有放弃,一次又一次的查资料,分析代码,一次又一次的尝试,即使屡试屡败,我们依旧不放弃。最后的成功,给我们带来的喜悦是难溢于言表的,而在屡次失败中的成功,总能让人更加深刻的认识到失败的原因,让自己的能力得到更大提升。同时,也锻炼了自己的耐心,细心,培养了很好的编程习惯。除了自身技能的提高,通过这次实习,也大大增强了自己的团队精神,提高自己的团队合作能力以及在一个团队中的组织领导能力,合理安排时间,合理分工,让整个过程更加优化。同时,我们也亲身体验到未来可能的工作状态。这几天的集体挑灯夜战,集体苦中作乐,也让同学们的关系更加亲近融洽。最后,我还想提出自己的一点建议:本次软件实习中,我们并没有安排一些参观和讲座什么的,但我觉得这很有必要。理论联系实际,才能加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。增加外出参观的机会,让我们多了解真正的工作环境,让我们能在在实践中学到更多。
扩展阅读:软件开发实习报告
信息科学与技术学院
本科一年级
软件开发实习报告
专业:*******班级:*******
开发小组成员姓名:************开发小组成员学号:*************
实习单位:软件工程实验中心
201*年7月目录
目录
2诚信承诺书......................................................................................................................................3一、二、三、四、五、六、七、八、九、
软件开发设计题目...........................................................................................................4软件开发设实习项目分工...............................................................................................4系统需求分析...................................................................................................................5总体设计..........................................................................................................................7详细设计与实现.............................................................................................................30运行结果........................................................................................................................36程序清单........................................................................................................................54主要知识点....................................................................................................................98软件开发实习收获、体会及建议...............................................................................1软件开发实习报告
诚信承诺书
本小组成员_沈萌马翠翠保证本次软件开发实习报告为自己独立总结、写作完成,报告内容和源程序不会有三分之一以上的内容与其他同学雷同,如果出现以上情况,本次软件开发实习成绩自愿记为零分。
承诺人签名:___**********_____
日期:_****__年_**月_***__日
软件开发实习报告
一、软件开发设计题目
学校食堂饭菜销售管理系统二、
软件开发设实习项目分工
工作内容沈萌马翠翠
需求分析√√程序设计√√程序调试√总结报告√√每日单品程序编写工作内容饭菜管理模块销售登记及盈亏分析模块沈萌马翠翠
软件开总结报告发设实习项目分工沈萌马翠翠
4刷新保存盘点检查模块文件(将链表写入文件)√√从文件中读取链表函数模块√退出模块、异常处理及主菜单模块√√√软件开系统需求分析总体设计详细设计与实现运行结果程序清单主要知识点发实习收获、体会及建议√√√√√√√√软件开发实习报告
三、系统需求分析
我们组的课题是学校食堂销售管理系统。初拿到这个题目,我们的第一感觉是食堂的进货,售饭,盈利什么的,于是做了很多分析,最后发现好像走偏了,重点放在了仓库管理,而不是销售管理。于是我们又都推倒重来,仔细研读题目,并查阅了大量相关资料,最后终于去得一致意见如下:
作为食堂销售管理系统,首先,一定要有销售的对象,即一定要有新饭菜录入的功能。有饭菜的录入,也是必要有饭菜的删除,饭菜信息的修改,饭菜信息的查询。即要满足一个程序所拥有的“增”、“删”、“改”、“查”的功能。于是我们设计了饭菜管理系统作为我们的第一模块。
其次,除了以上对饭菜的管理,作为销售管理系统,一定要满足用户对销售结果计算和显示的功能。具体就是让用户录入当天的销量以及损耗量,再自动计算出某饭菜当天的盈利与损耗,让用户直观的分析数据,有利于其优化饭菜销售,取得更大利益。于是我们把每日单品销售登记及盈亏分析作为我们的第二模块。
第三,除了对单个饭菜的分析,作为一个系统,用户有必要通过它了解到所有饭菜的信息,即对每个种类的盘点以及全盘的盘点。于是我们把盘点检查作为我们的第三个模块。
主体的功能就为以上三个模块。下面就是如何具体实现。
首先,我们分析到对于饭菜,要定义一个基类,基本信息为:名称,编号,成本,售价。但不同种类的饭菜,基本信息就会有不同,因此饭菜基类后要派生出各种饭菜的派生类。在对饭菜分析后,我们定下了5大类,分别是主食类,面食类,早点类,菜类和饮料类。在主食类里派生出3种规格,分别为1、2、3两;面食类派生出2种规格,大、小份。针对要删除的问题,我们决定将每个种类定义一个链表,方便数据信息的增删改查。又因为要保存,又必须将所生成的链表内的信息写入到文件中保存起来,即将信息读出到文件;要求它在下次打开时,新建的链表内又要有各个数据,又要将文件中的内容读取入链表中。因此,我们分别定义了从文件中读入和将数据读入文件中的函数。要求在系统打开运行时,先自动读入数据,在对数据进行一系列修改后最后点保存,再读入文件。
在退出时,考虑到用户可能不希望保存内容或者不想退出,我们做了三个选择项,分别为退出并保存,退出不保存和取消退出。
为了让系统更加稳定,我们分析了各种会意外终结的情况,做出了全面的改进。如菜单输入有误就返回在询问一次;选择推出以功能时,利用异常,使得按任意键都能返回。极大地优化了一通的稳定性。并且对于一个系统,一定要能通过选择来判断是否循环某种功能或循环整个系统,因此在做菜单的时候要加入循环的要求。
总之,我们的需求分析,立足实际,通过激烈的讨论,磨合,在自己的能力范围内做出了自己认为最优化的方案。但我们知道,这不是终点,没有最好,只有更好,好要在以后的不断学习和时间中,丰富自己的知识和技能,做出功能更加强大,BUG更少的系统。
软件开发实习报告
我们通过需求分析得出的功能图如下:
软件开发实习报告
四、总体设计
1.系统功能分析
根据系统的需求分析,本系统主要实现四大功能:①
是由系统自动生成;
删除饭菜:按照查找编号,找到此编号的饭菜将此饭菜删除;
修改饭菜基本信息:按照查找编号,找到此编号的饭菜将此饭菜的基本信息修改,并可选择修改那个信息;
查找饭菜基本信息:输入要查找的饭菜类型和编号,将此编号的饭菜的基本信息显示出来②
每日单品销售登记及盈亏分析
进入此页面,选择你要计算的类,输入要计算的编号,并输入今日的销售量和损耗量,系统计算出今日此饭菜的盈利和亏损,并显示在屏幕上③
盘点检查
进入此页面,选择你要盘点的类或是全部盘点,屏幕上就会把你选择的类的所有饭菜的信息显示出来,或显示所有的饭菜的基本信息④刷新保存文件
点入刷新并保存文件,并确认,系统就会之前操作的内容,修改后的内容写入文件中
2.类的描述
本系统共分为七个大类,分别是food,rice,noodle,breakfast,dish,drink,operate.其中food是基类,包含了饭菜名称,编号,售价,成本的基本属性,饭菜信息更改,每日单品销售与盈利,饭菜基本信息显示简单地成员函数。rice,noodle,breakfast,dish,drink都是有food派生出来的rice和noodle类新增了规格数据成员,并且每个派生类里增加了各自的静态数据成员来生产编号和计算没类食品的种类,并将基类中定义的饭菜基本信息显示的纯虚函数实现。Operate是一个外部操作类,把五类饭菜的对象与一个指针组成的结构体作为数据成员,及定义了操作函数,大部分函数是在此实现的并定义了链表的静态头节点和尾节点,成员函数包括新增饭菜,删除饭菜,选择食品大类,检查饭菜基本信息,修改饭菜,总操作功能选择,饭堂饭菜管理系统函数选择函数,盘点检查系统,销售登记及盈亏分析,异常函数,建立从文件中读取的链表,将链表读入文件的刷新保存等。
7饭菜管理
新增饭菜:饭菜分为五类,每类都要进行名称,成本,售价,等信息的录入,编号软件开发实习报告
3.各功能菜单介绍
本系统有四大功,各功能菜单如下:
软件开发实习报告
首页菜单:
进入饭菜管理:
注:点击1,2,3,4之后都会显示此菜单,选择要操作的类
软件开发实习报告
每日单品销售记录及盈亏分析:
盘点检查:
每日单品销售记录及盈亏分析,盘点检查之后都是要选择对哪一类进行操作!
软件开发实习报告
刷新保存文件
4.系统功能模块的划分与设计,各功能函数的说明
系统主要分为七个功能:分别为新增饭菜,删除饭菜,修改信息,查找信息,盘点检查,刷新保存,盈利计算。
首先要从文件中读出数据建立起原有的链表,在对此链表进行一上功能的操作以下是从文件中读出数据建立链表的代码://从文件中读入创立链表operate::node1*operate::create1(){
node1*p,*tail,*H1;
H1=newnode1;tail=H1;ifstreamfile;file.open("Rice.txt");rice::kind=0;while(file.eof()==0){
if(file.eof()!=0)break;p=newnode1;
file>>p->r.number>>p->r.name>>p->r.standard>>p->r.cost>>p->r.price;p->next=NULL;tail=p;
11H1->next=NULL;
tail->next=p;软件开发实习报告
}rice::kind++;
tail->next=NULL;rice::kind--;node1*q=H1->next;
while(q->next->next!=NULL)
q=q->next;q->next=NULL;file.close();
returnH1;//带空表头的头指针
}//返回主食信息
此函数是建立的主食类的链表,其余类的链表的建立和此类同,但是其返回的指针是不同的。打开系统就执行此函数,就会使得系统中已经存在已有的数据,记事本也就相当于是一个小的数据库,是你保存的数据即使关了系统,下次打开时还能够继续使用。
增加菜品功能:首先要选择你所需要增加食品的类型,之后按照现实输入食品的属性,代码如下
voidoperate::newfood(intch){switch(ch){case1:
{node1*pnew;//pnew指向要插入的新结点;pnew=newnode1;
cout软件开发实习报告
cin>>pnew->r.price;
coutnext;while(p->next!=NULL){
p=p->next;}
rice::kinds=p->r.number+100;pnew->r.number=rice::kinds;
cout软件开发实习报告
cin>>pnew->n.cost;node2*p=head2->next;node2*p1=head2;while(p->next!=NULL){
p=p->next;}
noodle::kinds=p->n.number+100;pnew->n.number=noodle::kinds;
cout软件开发实习报告
breakfast::kind++;
cout软件开发实习报告
cout软件开发实习报告
"r.number==num)
{p1->next=p2->next;deletep2;
cout软件开发实习报告
{coutnext=p2->next;deletep2;
cout软件开发实习报告
breakfast::kind--;}
case4:
{if(head3->next==NULL)
{cout软件开发实习报告
{p1=p2;p2=p2->next;}//若要删的不是p2所指的结点,则p2指向下一个if(p2->dr.number==num)
{p1->next=p2->next;deletep2;
cout软件开发实习报告
}coutnext==NULL)
{cout软件开发实习报告
}}if(p==NULL)
coutnext==NULL)
{cout软件开发实习报告
}}}if(p==NULL)
cout软件开发实习报告
}case3:{doubleco;}
这个函数是在基类中实现的,可以通过对象来进行调用。食品的盘点
//饭堂饭菜管理系统函数选择函数intoperate::choose1(){intch1;
cout软件开发实习报告
cout软件开发实习报告
{node2*pnew;
pnew=head2->next;while(pnew!=0)
{pnew->n.basicshow();
pnew=pnew->next;}
cout软件开发实习报告
break;}case5:
{if(head5->next==0){coutnext!=0){pnew2=head2->next;while(pnew2!=0)
{pnew2->n.basicshow();
pnew2=pnew2->next;
}}软件开发实习报告
if(head3->next!=0){pnew3=head3->next;while(pnew3!=0)
{pnew3->b.basicshow();
pnew3=pnew3->next;
}}if(head4->next!=0){pnew4=head4->next;while(pnew4!=0)
{pnew4->di.basicshow();
pnew4=pnew4->next;
}}if(head5->next!=0){pnew5=head5->next;while(pnew5!=0)
{pnew5->dr.basicshow();
pnew5=pnew5->next;
}}cout软件开发实习报告
doublePR,W;}
通过查找出输入的对象,利用对象进行调用此函数!
这些函数通过在主函数中的调用选择所要实现的功能,之后进行调用就可以,主函数只是做了一下函数的菜单的一部分。用的最多的就是swhich语句,通过此语句来判断执行什么功能。5.总结
该系统可以实现食堂销售管理中的基本的功能,即新增饭菜,删除饭菜,修改信息,查找信息,盘点检查,刷新保存,盈利计算
cout软件开发实习报告
五、详细设计与实现
1.各个类设计、实现与详细说明
由于我们在设计分析时将功能进行了划分,有了进入系统首页的菜单,因此在信息管理的功能模块里面又分为了很多的小的功能。并且利用类的组合来进行操作函数的的实现。
食品基类(food)的数据成员包含了饭菜名称(name),编号(numer),售价(price),成本(cost),成员函数包括成本的基本属性,饭菜信息更改,每日单品销售与盈利,纯虚函数饭菜基本信息显示。
主食类(rice)继承了食品基类的饭菜名称(name),编号(numer),售价(price),成本(cost)数据成员,和成本的基本属性,饭菜信息更改,每日单品销售与盈利,饭菜基本信息显示的成员函数。又新增了数据成员规格(standard),及静态数据成员主食编号(kinds),主食的种类(kind)并将静态数据成员初始化,将饭菜基本信息显示函数实现。
面类(rice)继承了食品基类的饭菜名称(name),编号(numer),售价(price),成本(cost)数据成员,和成本的基本属性,饭菜信息更改,每日单品销售与盈利,饭菜基本信息显示的成员函数。又新增了数据成员规格(standard),及静态数据成员主食编号(kinds),主食的种类(kind)并将静态数据成员初始化,将饭菜基本信息显示函数实现。
早餐类(rice)继承了食品基类的饭菜名称(name),编号(numer),售价(price),成本(cost)数据成员,和成本的基本属性,饭菜信息更改,每日单品销售与盈利,饭菜基本信息显示的成员函数。新增静态数据成员主食编号(kinds),主食的种类(kind)并将静态数据成员初始化,将饭菜基本信息显示函数实现。
菜类(rice)继承了食品基类的饭菜名称(name),编号(numer),售价(price),成本(cost)数据成员,和成本的基本属性,饭菜信息更改,每日单品销售与盈利,饭菜基本信息显示的成员函数。新增静态数据成员主食编号(kinds),主食的种类(kind)并将静态数据成员初始化,将饭菜基本信息显示函数实现。
饮料类(rice)继承了食品基类的饭菜名称(name),编号(numer),售价(price),成本(cost)数据成员,和成本的基本属性,饭菜信息更改,每日单品销售与盈利,饭菜基本信息显示的成员函数。新增静态数据成员主食编号(kinds),主食的种类(kind)并将静态数据成员初始化,将饭菜基本信息显示函数实现。
操作类(operate)相当于是将几乎所有的函数都作为其成员函数,并且有应用组合,所以操作起来很方便。
2.各函数的设计与实现(含流程图)与详细说明下面结合流程图介绍一下各个函数的设计与实现。
整个程序中共包含六类函数:新增,查询,修改,删除,调入,保存文件。1.新增函数
新增函数是对系统中已有的数据在进行增加是在操作类(operate)里newfood(intch),在newfood中,根据传入的intch,利用switch语句判断是增加的那个类型的食品,动态分配一个结点的空间,根据提示例如cout软件开发实习报告
的尾节点,将这个新建的节点查到尾节点的后面便实现了新信息的增加,保存到链表里。
2.查询函数
查询函数删除饭菜,检查饭菜基本信息,修改饭菜,饭堂饭菜管理系统函数选择函数,销售登记及盈亏分析,都有应用,但所用知识基本相同。
此系统只做了对编号的查找,在已有的链表里进行查找,先判断此链表是否为空链表,若为空链表,则直接打出查找不到,否则就前输入要查询的编号,之后从头结点开始遍历,当找到p2->r.number==num时,输出查找成功,返回此节点,到结尾还没查到,则没有此
编号,查找失败!coutr.number!=num&&p2->next!=0){p1=p2;p2=p2->next;}//若要删的不是p2所指的结点,则p2指向下一个if(p2->r.number==num)returnp2;
查询函数方法一致,写出流程图。流程图如下:
新增成功插入尾节点后查找尾节点输入食品信息建立新节点开始软件开发实习报告
3.修改函数
修改函数就是要先查找,找到后对其进行修改。其流程图如下:
返回,查找失败开始循环查找numReturn此节点指针
4.删除函数
删除函数就是利用delete来实现,因为是建立的链表,只要能够查找到此节点,之后进行p1->next=p2->next;deletep2;即可,非常容易实现流程图如下:
软件开发实习报告
5.调入信息函数
选择你所要调入的类型,直接对此链表进行遍历,并将信息依次的输出即node1*pnew;pnew=head1->next;while(pnew!=0)
{pnew->r.basicshow()pnew=pnew->next;basicshow()及时对信息的输出。
软件开发实习报告
6.保存文件
保存文件是指将之前链表里的东西全部都写进文件中,这就要先打开文件,由于是写进文件链表里的所有东西,因此打开方式应该是将其原来的东西全部要清除,所以打开方式为ofstreamfile_1("Rice.txt",ios_base::out);判断打开文件是否成功,成功则向文件中写东西,理由输出流即可例如:
file_1软件开发实习报告
3.数据的保存和装载
本系统中所用到的信息全部以txt的格式保存在文件中。本系统中一共有五类信息:即主食信息保存(Rice.txt),面类信息的保存(Noodle.txt),早餐类信息的保存(Breakfast.txt),菜类信息的保存(Dish.txt),饮料类信息的保存(Drink.txt),数据的提取和写入是通过输出流和输入流来进行的。综述
本系统的类和函数有紧密的联系,函数又与文件紧紧相连,通过这几块大的知识相互结合运用再与C++中的异常,虚函数等知识串联,实现了系统基本的录入,打印,查询,修改,删除功能。并且每个函数的操作都是基于链表上的,所以要熟练的掌握对链表的操作,及链表和文件结合时的使用。
软件开发实习报告
六、运行结果
以下是我组成员所编程序的运行结果(附图):
本组所编的食堂饭菜销售管理系统管理系统,共分为:首页总操作功能选择菜单、食品大类菜单、饭菜管理系统功能选择菜单、盘点检查菜单、选择入住菜单、退出选择菜单等等;在开始程序之前先预先存入的数据如下:
软件开发实习报告
软件开发实习报告
打开程序时,首先显示欢迎界面,并进入首页总操作功能选择菜单:
上图显示的界面是系统的首页,如图输入1进入饭菜管理;2每日单品销售登记及盈亏分析;3盘点检查;4刷新保存文件;5退出。根据功能选项前的编号进行按键选择可跳转至相应功能:输入1,进入饭菜管理系统功能选择菜单:
软件开发实习报告
输入1,新增饭菜:
按要求键入相应内容,编号会自动继续生成,并显示该类中的种数:
软件开发实习报告
选择2,进入删除饭菜
输入编号,按要求删除:
软件开发实习报告
选择3,进入修改饭菜基本信息
选择4,进入查找饭菜基本信息:
软件开发实习报告
注:因为输入有误,将退出,再次询问:
选择4,进入查找饭菜基本信息:
软件开发实习报告
在查找饭菜基本信息时,输入之前修改过的编号,显示为已修改的信息:
返回主菜单,选择2,进入每日单品销售登记及盈亏分析:
软件开发实习报告
在主菜单中,选择3,进入盘点系统:再输入1,盘点主食类的所有产品信息:
软件开发实习报告
输入6,进行所有饭菜信息:
软件开发实习报告
软件开发实习报告
在主菜单中选择5,退出:再选择取消退出:
主菜单中选择4,进入刷新保存文件,将以上所有修改写入文件中保存:
软件开发实习报告
再次打开文件,文件被更新如下:
软件开发实习报告
软件开发实习报告
返回再次修改饭菜信息:
友情提示:本文中关于《软件开发实习个人总结》给出的范例仅供您参考拓展思维使用,软件开发实习个人总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。