《C++语言》
实训报告
项目名称: 商品信息管理系统
专 业: 软件技术
班 级:
项目成员:
报告日期: 年 月
一、设计任务
根据结构体数组和链表的相关知识,建立好结构体和链表,并编制相应的程
序,实现数据的录入、查询、修改、增加、删除、统计、输出。
课题选择,以简易“管理信息系统”程序设计为载体
简单的系统与功能分析
建立数据结构表,建立真实的二维表,其中字段名不少于 个;要建立一个测
试的数据表,至少要有 个测试数据
在系统的设计中,至少要用到面向对象的一种机制
学习并掌握程序开发的一般步骤和方法。
熟悉异常处理的特点和用法;
学生达到熟练掌握 C++语言的基本知识和技能。
二、系统分析
需求分析
随着商品经济的发展,海量商品信息的处理和管理也不再是一件轻松的事情。
因此,面对如此广泛的市场需求,我们设计并完成了这样的一个商品信息管理系
统,它以计算机为工具,并拥有友好的人机界面,通过对商品信息的录入、增加、
删除、修改、查询操作,把管理人员从繁琐的数据处理中解脱出来,使其有更多的
精力从事信息管理政策的研究实施,从而全面提高商品信息管理的质量。
)功能分析
能实现商品信息的录入
能实现商品信息删除和修改
能实现商品信息查询和统计功能
能实现商品信息输出显示
)性能分析
硬件环境。
处理器: 或更高。
内存:建议 。
硬盘空间:。
2
软件环境。
操作系统: 或 !"#$%。
支持环境:&&开发环境
)结构模块分析
三、系统总体设计或详细设计(给出数据或控制流程图)
)界面主要由七部分组成''录入商品信息 :显示商品 :插入商品 :删除商
品 :商品数目 :退出。
()*+ 类可用定义商品信息的序号和价格,以录入数据,例如源程序如下:
()*+
,
-./)('
.01
2*-(1
+341
51
结果显示界面由类似与表格的样式构成。背景为黑色
)链表知识的运用
建立动态链表:例如源程序如下:
goods *crat()//该函数用来建立动态链表
{
3
goods *p1,*p2;
p1=new goods;
head=p1;
p2=p1;
cout<<"请输入商品的编号,以 0 结束"<<endl;
string str;
cin>>str;
while(!check(str))
{
cout<<"输入的不是数字,请重新输入,按 0 返回!!"<<endl;
cin>>str;
}
p1->num=atoi(str.c_str());//将字符数据转化为整型数
if(p1->num!=0)
{
cout<<"请输入商品的价格"<<endl;
cin>>str;
while(!check(str))
{
cout<<"输入的不是数字,请重新输入,按 0 返回!!"<<endl;
cin>>str;
}
p1->price=atof(str.c_str());//将字符数据转化为实型数
}
else
{
delete p1;p2=NULL;head=NULL;
return head;
}
while(p1->num!=0)
{
p1=new goods;
cout<<"请输入商品的编号,以 0 结束"<<endl;
cin>>str;
while(!check(str))
{
cout<<"输入的不是数字,请重新输入,按 0 返回!!"<<endl;
cin>>str;
}
p1->num=atoi(str.c_str());
if(p1->num!=0)
{
cout<<"请输入商品的价格"<<endl;
cin>>str;
4
while(!check(str))
{
cout<<"输入的不是数字,请重新输入,按 0 返回!!"<<endl;
cin>>str;
}
p1->price=atof(str.c_str());
}
p2->next=p1;
p2=p1;
}
p2->next=NULL;
return head;
}
显示链表:例如源程序如下:
void showgoods(goods*head)//显示链表
{
goods* p=head;
cout<<endl<<"商品信息如下:"<<endl;
while((p!=NULL)&&(0!=p->num))
{
cout<<"商品编号:"<<p->num<<"\t";
cout<<"价格:"<<p->price<<endl;
p=p->next;
}
cout<<endl<<"按回车键返回主菜单";
}
删除结点:例如源程序如下:
void deleted(goods *head,int num)//删除结点
{
goods *l;
if(head->num==num)
{
l=head;
head=head->next;
::head=head;
delete l;
cout<<endl<<endl<<"*操作成功*"<<endl;
return;
}
while(head)
{
if(head->next==NULL)
{
cout<<endl<<"找不到要删除的编号"<<endl;
return;
5