个人信息管理系统.docx
《个人信息管理系统.docx》由会员分享,可在线阅读,更多相关《个人信息管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
个人信息管理系统
课程设计报告
课程设计题目:
个人信息管理软件
学生姓名:
专业:
班级:
学号:
指导教师:
2014年6月20日
个人信息管理软件课程设计报告
1.问题分析
根据个人信息管理的需要,设计一个“个人信息管理软件”,以便对各项个人信息的管理操作。
要求:
(1)能对基本的个人信息进行录入和修改;
(2)能对个人信息进行删除;
(3)能对个人信息的条数进行统计;
(4)能查询个人信息;
(5)能插入个人信息;
(6)保存并加载个人信息;
(7)使用户具有一点的保密性,即设计一个用户登录选项;
所以根据以上需求设计出的软件主要定义个函数来实现以上功能:
(1)主函数:
定义个人信息结构体和类,输出对话操作菜单,调用登录、录入、浏览、查询、删除、插入、修改、保存、加载、退出等函数对个人信息进行处理。
(2)登录函数:
输入用正确户名和正确密码进行登录;
(3)录入函数:
从键盘输入个人信息;
(4)浏览函数:
浏览输入的全部个人信息;
(5)查询函数:
输入要查询的姓名进行查询;
(6)删除函数:
输入要删除的姓名进行删除;
(7)插入函数:
输入要插入的个人信息,并输入要插入的位置进行插入;
(8)修改函数:
输入要修改的姓名,并输入要修改的信息进行修改;
(9)保存函数:
将输入的所有个人信息保存于指定文件夹中;
(10)加载函数;将保存的个人信息加载到指定界面显示出来;
2.代码及实现流程分析
(1)其中的类结构包括:
基类Person类,由Person类派生出Employed类和Unemployed类;
(2)实现流程概述:
通过菜单选择项,根据操作提示输入相应的操作选项,然后软件自动调用该功能的代码并运行实现该功能即可。
(3)
#include
#include
#include
#include
#include
usingnamespacestd;
#defineM50
typedefstruct
{
stringname;
stringaddress;
stringsex;
intphone,age,family;
}PERSON;
classPerson{
public:
intlength;
intyh,mm;
intgetyh(){returnyh;}
intgetmm(){returnmm;}
intmenu_select();
intsetmm();
intenter();
intshuru(PERSONt[]);
voidlist(PERSONt[],intn);
voidsearch(PERSONt[],intn);
intdel(PERSONt[],intn);
intadd(PERSONt[],intn);
voidsave(PERSONt[],intn);
intload(PERSONt[]);
voidprint(PERSONtemp);
intfind_name(PERSONt[],intn,stringp);
voidmodify(PERSONt[],intn);
};
intPerson:
:
enter()
{stringa,b;
intN;
cout<<"1.登录"<cout<<"2.取消"<cin>>N;
for(;;)
{
system("cls");
if(N==1)
{
cout<<"用户名:
";
cin>>a;
cout<<"密码:
";
cin>>b;
if(a=="liu"&&b=="123")
{
cout<<"登录成功!
";returnN;
}
else
{
cout<<"请检查用户名和密码是否有误,并重输!
";
//break;
}
getchar();
}
if(N==2)
{
exit(0);
}
}
returnN;
}
//菜单选择、、、、、、、、、、、、、、、、、、、、
intPerson:
:
menu_select()
{
intn;
cout<<"****************主菜单*******************"<cout<<""<<"1.输入个人信息"<cout<<""<<"2.浏览个人信息"<cout<<""<<"3.查询个人信息"<cout<<""<<"4.删除个人信息"<cout<<""<<"5.修改个人信息"<cout<<""<<"6.插入个人信息"<cout<<""<<"7.保存记录到文件"<cout<<""<<"8.加载文件到内存"<cout<<""<<"9.程序退出"<cout<<"*****************************************"<cout<<"请输入选项(1-9):
"<do
{
cin>>n;
getchar();
}while(n<1||n>9);
returnn;
}
//输入个人信息、、、、、、、、、、、、、、、、
intPerson:
:
shuru(PERSONt[])
{
inti,n;
system("cls");
cout<cout<<"请输入要插入的个人记录数:
"<cin>>n;
cout<<"请输入个人信息:
"<cout<<"姓名:
"<<""<<"地址"<<""<<"性别"<<""<<"电话号码"<<""<<"年龄"<<""<<"人口数"<for(i=0;i{
cin>>t[i].name>>t[i].address>>t[i].sex>>t[i].phone>>t[i].age>>t[i].family;
}
getchar();
returnn;
}
//显示记录,参数为记录数组和记录条数
voidPerson:
:
list(PERSONt[],intn)
{
inti;
system("cls");
cout<<"********************个人信息清单*******************"<cout<<"姓名"<<""<<"地址"<<""<<"性别"<<""
<<"电话号码"<<""<<"年龄"<<""<<"人口数"<for(i=0;i{
cout<<}
cout<<"***************************************************"<}
voidPerson:
:
search(PERSONt[],intn)
{
charName[20];
inti;
system("cls");
cout<<"输入要查找人的姓名:
"<cin>>Name;
getchar();
i=find_name(t,n,Name);
if(i>n-1)
cout<<"没有姓名为"<else
cout<<}
//删除函数、、、、、、、、、、、、、、、、、、、、、、、
intPerson:
:
del(PERSONt[],intn)
{
charName[20];
intch=0;
inti;
cout<<"请输入要删除的人的姓名:
"<cin>>Name;
getchar();
i=find_name(t,n,Name);
if(i==n)
cout<<"没有找到该人"<else
{
cout<<"删除中!
"<for(i=0;i{
t[i].name=t[i+1].name;
t[i].address=t[i+1].address;
t[i].sex=t[i+1].sex;
t[i].phone=t[i+1].phone;
t[i].age=t[i+1].age;
t[i].family=t[i+1].family;
}
n--;
cout<<"删除成功!
"<}
returnn;
}
//插入记录函数、、、、、、、、、、、、、、、、、、、、、
intPerson:
:
add(PERSONt[],intn)
{
PERSONtemp;
inti,j;
stringName;
cout<<"请输入要插入的个人信息:
"<cout<<"**************************************************"<cout<<"姓名"<<""<<"地址"<<""<<"性别"<<""
<<"电话号码"<<""<<"年龄"<<""<<"人口数"<cout<<"**************************************************"<cin>>temp.name>>temp.address>>temp.sex>>temp.phone>>temp.age>>temp.family;
getchar();
cout<<"--------------------------------------------------"<if(n>0)
{
cout<<"请输入插入位置的姓名,将新记录插入该名字前:
"<cin>>Name;
getchar();
i=find_name(t,n,Name);
}
else
i=0;
for(j=n-1;j>=i;j--)
{
t[j+1].name=t[j].name;
t[j+1].address=t[j].address;
t[j+1].sex=t[j].sex;
t[j+1].phone=t[j].phone;
t[j+1].age=t[j].age;
t[j+1].family=t[j].family;
}
t[i].name=temp.name;
t[i].address=temp.address;
t[i].sex=temp.sex;
t[i].phone=temp.phone;
t[i].age=temp.age;
t[i].family=temp.family;
n++;
returnn;
}
//保存函数、、、、、、、、、、、、、、、、、、、、、、、、
voidPerson:
:
save(PERSONt[],intn)
{
inti;
fstreamioFile;
ioFile.open("D:
\\grxx.txt",ios:
:
out);
ioFile<for(i=0;i{
ioFile<}
ioFile.close();
cout<<"文件保存成功!
"<}
//加载函数、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
intPerson:
:
load(PERSONt[])
{
intn;
//fstreamioFile;
ifstreamin("D:
\\grxx.txt",ios:
:
in);
in>>n;
if(n>0)
{
for(inti=0;i{
in>>t[i].name>>t[i].address>>t[i].sex>>t[i].phone>>t[i].age>>t[i].family;
}
}
cout<<"文件已加载成功!
"<in.close();
returnn;
}
//按序号显示记录函数、、、、、、、、、、、、、、、、、、、、、、、、、、
voidPerson:
:
print(PERSONtemp)
{
cout<<"***********************************************"<cout<<"姓名"<<""<<"地址"<<""<<"性别"<<""
<<"电话号码"<<""<<"年龄"<<""<<"人口数"<cout<<cout<<"************************************************"<}
//按姓名查找个人信息函数、、、、、、、、、、、、、、、、、、、、、、
intPerson:
:
find_name(PERSONt[],intn,stringp)
{
inti;
for(i=0;i{
if(p==t[i].name)
returni;
}
returni;
}
//修改函数、、、、、、、、、、、、、、、、、
voidPerson:
:
modify(PERSONt[],intn)
{
charName[20];
intch=0;
inti;
cout<<"请输入要修改的姓名:
"<cin>>Name;
getchar();
i=find_name(t,n,Name);
if(i==n)
cout<<"没有找到该人"<else
{
cout<<"该人修改前:
"<cout<cout<<"请输入修改后的个人信息:
"<cout<<"姓名"<<""<<"地址"<<""<<"性别"<<""
<<"电话号码"<<""<<"年龄"<<""<<"人口数"<cin>>t[i].name>>t[i].address>>t[i].sex>>t[i].phone>>t[i].age>>t[i].family;
getchar();
cout<<"该人的信息修改后:
"<cout<}
}
classEmployed:
publicPerson
{
stringwork;
intgongzi;
public:
Employed(stringw,intg){work=w;gongzi=g;}
//Employed(){}
stringgetwork(){returnwork;}
intgetgongzi(){returngongzi;}
voidsetwork(stringx){work=x;}
voidsetgongzi(inty){gongzi=y;}
voidshow()
{
voidPerson:
:
show(PERSONt[]);
cout<<"工作:
"<cout<<"工资:
"<}
};
classUnemployed:
publicPerson
{
stringpwork;
inttime;
public:
Unemployed(stringpw,inttm){pwork=pw;time=tm;}
//Unemployed(){}
stringgetpwork(){returnpwork;}
intgettime(){returntime;}
voidsetpwork(stringx){pwork=x;}
voidsettime(inty){time=y;}
voidshow()
{
voidPerson:
:
show(PERSONt[]);
cout<<"工作:
"<cout<<"工资:
"<