碟行客户信息管理系统.docx
《碟行客户信息管理系统.docx》由会员分享,可在线阅读,更多相关《碟行客户信息管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
![碟行客户信息管理系统.docx](https://file1.bdocx.com/fileroot1/2023-2/25/f8071f46-5fc4-49c4-8105-7ec8c79db4fa/f8071f46-5fc4-49c4-8105-7ec8c79db4fa1.gif)
碟行客户信息管理系统
《碟行客户信息管理系统》
程序设计基础课程设计报告
2007年6月28日
目录
1.课程设计目的1
2.课程设计题目描述和要求1
2.1课程题目1
2.2课程要求1
3.课程设计报告内容4
3.1运行结果14
4.C++课程设计过程总结14
5.参考书目15
1.课程设计目的
根据书本和老师讲的知识,学生自己动手练习,理论与实际操作相结合,理解老师课堂所讲内容。
通过亲手编写调试程序获得更多经验和知识,逐步提高编程能力。
2.课程设计题目描述和要求
2.1课程题目
碟行客户信息管理系统
2.2课程要求
1.有工作界面
2.进行客户信息的录入,包括编号、姓名、性别、年龄、职业、入会资金、入会时间
3.编号必须唯一
4.具有对新会员信息插入功能,并按其编号插入排序,使数据仍然有序。
5.具有删除功能。
6.具有修改功能,只要访问一次某编号,其入会资金就相应减一元;也可为某会员充值。
7.具有统计功能:
(1)统计不同年龄段的人数。
(2)根据入会时间统计不同的时间段的资金情况。
9.能在屏幕上输出所有客户的信息。
3课程设计报告内容
3.1
#include
#include
#include
#include//可以运用EXIT函数
#include
staticintn=0;
floattotalmoney=0;
voidprint();
//定义一个客户类
classwork
{//私有成员其中包括客户号、姓名、年龄、工作、入会时间、性别、地址、入会资金
private:
unsignedintsno;//编号
intage;//年龄
charname[20];//姓名
charworks[15];//工作
inttimes;//时间
floatmoney;//入会资金
charsex;//性别
intvalue;
//共有成员
public:
voidgetdata()//录入客户信息函数
{
value=1;
cout<<"客户号姓名性别年龄工作入会资金入会时间:
";
cout<<'\n';
cin>>sno>>name>>sex>>age>>works>>money>>times;
}
voiddisplay();
int&get_value()//函数返回值为引用时,可以修改函数返回值。
{returnvalue;}
unsignedintget_sno()//得到客户号
{returnsno;}
char*get_name()//得到客户姓名
{returnname;}
float&get_money()//得到客户资金
{returnmoney;}
intget_times()//得到客户时间
{returntimes;}
intget_age()//得到客户年龄
{returnage;}
};
voidwork:
:
display()//输出客户信息函数
{
cout<<"输出信息:
"<<'\n';
if(get_value()==1)
{
cout<:
left)//输出做对其
<<"客户号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'
<<"年龄"<<'\t'<<"工作"<<'\t'<<"入会资金"<<'\t'<<"入会时间"<cout<:
left)
<<}
elsecout<<"客户号为"<"<}
//录入客户信息
voidInput()
{
ofstreamoutfile("work.text",ios:
:
out);//以输出方式建立work文档文本文件
if(!
outfile)
{
cerr<<"Can'topenwork.text."<exit
(1);
}
workOne;
cout<"<cout<";
cin>>n;
for(inti=1;i<=n;i++)
{
cout<<"第"<
One.getdata();
outfile.write((char*)&One,sizeof(One));
}
outfile.close();
}
//输出客户信息
voidPutout()
{
ifstreaminfile("work.text",ios:
:
in);
if(!
infile)
{
cerr<<"Can'texportfromwork.text."<exit
(1);
}
workTwo;
infile.read((char*)&Two,sizeof(Two));
while(infile)
{
Two.display();
infile.read((char*)&Two,sizeof(Two));
};
infile.close();
}
//按客户号查询
voidFind1()
{
inti=1;floatmoney;
workThree;
ifstreaminput("work.text",ios:
:
in);
if(!
input)
{
cerr<<"Can'texportfromwork.text."<exit
(1);
}
unsignedintsno;
cout<<"请输入客户号:
";
cin>>sno;
input.read((char*)&Three,sizeof(Three));
while(input)
{
if(Three.get_sno()==sno)
{
cout<<"输出查询结果:
"<Three.display();
money=Three.get_money();
if(money<1)
cout<<"您的资金已低于1元,请尽快冲值"<}
if(i==n)cout<<"无此人信息,查找无效!
"<input.read((char*)&Three,sizeof(Three));
i++;
}
input.close();
}
//按姓名查询
voidFind2()
{
charname[20];
workThree;
ifstreamfile("work.text",ios:
:
in);
if(!
file)
{
cerr<<"Can'texportfromwork.text."<exit
(1);
}
cout<<"输入要查询的姓名:
";
cin>>name;
file.read((char*)&Three,sizeof(Three));
while(file)
{
if(!
strcmp(Three.get_name(),name))
{
cout<<"输出查询结果:
"<Three.display();
}
elsecout<<"无此人信息,查找无效!
"<file.read((char*)&Three,sizeof(Three));
}
}
//查询客户信息
voidFind()
{
intsel;
do
{
cout<"<cout<客户号2:
姓名3:
退出:
";
cin>>sel;
switch(sel)
{
case1:
Find1();break;
case2:
Find2();break;
}
}while(sel==1||sel==2);
}
//添加客户信息
voidAdd()
{
intj=1,i;
cout<<"最多能增添三次数据,请输入你要添加的次数:
";
cin>>i;
cout<do
{
fstreamoutapp("work.text",ios:
:
app);
if(!
outapp)
{
cerr<<"Can'toutappwork.text."<exit
(1);
}
workFour;
cout<<"添加数据:
"<<'\n';
Four.getdata();
outapp.write((char*)&Four,sizeof(Four));
outapp.close();
if(j==3)
{cout<<"已添加三次,你无权再输入."<break;
}
}while(j++
n++;
}
//客户信息删除
voidDelete()
{
unsignedintsno;
inti=0,j=1;
fstreamoutdel("work.text",ios:
:
in|ios:
:
out);
if(!
outdel)
{
cerr<<"Can'toutappwork.text."<exit
(1);
}
workSix;
outdel.seekg(0);//存入文件时从头开始
cout<<"输入要删除的客户号:
";
cin>>sno;
while(!
outdel.eof())//文件结束
{
outdel.seekp(sizeof(work)*i);//不能用seekg(sizeof(work)*i)!
outdel.read((char*)&Six,sizeof(Six));
if(sno==Six.get_sno())
{
Six.get_value()=0;
outdel.seekp(sizeof(work)*i);//
outdel.write((char*)&Six,sizeof(Six));break;//只有写入work.text时,才能起到修改的作用。
}
if(j==n)cout<<"不存在此人信息,删除无效。
"<i++;j++;
}
outdel.close();
cout<<"************************************************"<}
//客户数据修改
voidAlter()
{intf;floatmoney,a;
workthree;
fstreaminput("work.text",ios:
:
in);
if(!
input)
{
cerr<<"Can'texportfromwork.txt."<exit
(1);
}
input.read((char*)&three,sizeof(three));
cout<<"我要出租:
[1]****我要充值[0]"<cin>>f;
if(f==1)//出租活动
{
money=three.get_money();
money--;three.get_money()=money;
cout<<"出租成功!
"<cout<<"您当前余额为:
"<}
if(f==0)//充值
{cout<<"请输入冲的钱数"<cin>>a;
three.get_money()=three.get_money()+a;
cout<<"您当前余额为:
"<input.write((char*)&three,sizeof(three));
input.close();
cout<<"************************************************"<}
//客户信息统计
voidtongji()
{fstreaminput("work.text",ios:
:
in);
inttime1,time2;
workthree;
input.read((char*)&three,sizeof(three));
cout<<"统计特定年龄段人数:
输入[1]"<cout<<"统计特定时间段资金总数:
输入[0]"<intf;//操作命令符
cin>>f;
floatbig,small,d=0;intnum=0,big1=0;
if(f==1)
{
cout<<"输入最大最小的年龄"<cout<<"最大:
";
cin>>big;
cout<<"最小:
";
cin>>small;
for(inti=0;i{big1=three.get_age();
if(big1>=small&&big1<=big)num++;
input.read((char*)&three,sizeof(three));}//每找到一个在范围内的记数加1
cout<<"从"<
"<}
if(f==0)
{
cout<<"请输入时间上限和下限"<inthead,end;
cout<<"开始时间:
"<cin>>time1;head=time1;
cout<<"末端时间:
"<cin>>time2;end=time2;
for(inti=0;iif(three.get_times()>=head&&three.get_times()<=end)
{d=three.get_money();
totalmoney=totalmoney+d;input.read((char*)&three,sizeof(three));
}//找到入会时间在范围的资金累加一次
cout<<"从"<"<}
cout<<"*****************************************************************"<}
voidMenu()
{
intsel;
do
{
cout<<"请选择功能"<<<''<<"1:
录入客户信息2:
输出客户信息3:
查询"<<<''<<"4:
添加客户信息5:
统计客户信息6:
客户数据修改"<<<''<<"7:
客户信息删除其它:
退出:
"<cout<<"注意:
请勿输入相同的编号以免造成重复"<cin>>sel;
switch(sel)
{
case1:
Input();break;
case2:
Putout();break;
case3:
Find();break;
case4:
Add();break;
case5:
tongji();break;
case6:
Alter();break;
case7:
Delete();break;
}
}while(sel>=1&&sel<=7);
}
voidmain()
{
charm;
cout<<'\t'<<'\t'<<'\t'<<"欢迎阅读本程序!
敬请提出建议!
"<do
{
cout<<'\t'<<'\t'<<"y:
运行程序其他:
退出程序"<cin>>m;
switch(m)
{
case'y':
Menu();
}//case后面跟的是常变量。
}while(m=='y');
}
3.2运行结果
3.C++课程设计过程总结:
“这次课程设计基本上含盖了大学一年纪学习到的C++语言知识点,课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。
这次课设使我了解我编程思想和编程技巧,也认识了软件生命周期的各个环境,包括构思、设计、编写、调试。
编程的风格也很重要,同学只关心程序运行的结果,而对程序代码的结构的良好丝毫不在意。
这是非常不可取的,如果我们希望将来从事编程工作,在这一点上该引起足够的重视。
这是严谨的态度,很重要!
做课设不仅让我修补了以前学习的漏洞,也让我知道一个道理:
编程需要兴趣和实际动手。
这应该可以借鉴在老师的教学工作上。
创新思维至关重要,这不仅让我们写出精简的代码,也有助于开发出高效的程序。
4.参考书目
[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2008年.
5.程序流程图