个人信息管理系统.docx

上传人:b****6 文档编号:5156265 上传时间:2022-12-13 格式:DOCX 页数:25 大小:1.05MB
下载 相关 举报
个人信息管理系统.docx_第1页
第1页 / 共25页
个人信息管理系统.docx_第2页
第2页 / 共25页
个人信息管理系统.docx_第3页
第3页 / 共25页
个人信息管理系统.docx_第4页
第4页 / 共25页
个人信息管理系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

个人信息管理系统.docx

《个人信息管理系统.docx》由会员分享,可在线阅读,更多相关《个人信息管理系统.docx(25页珍藏版)》请在冰豆网上搜索。

个人信息管理系统.docx

个人信息管理系统

课程设计报告

 

课程设计题目:

个人信息管理软件

学生姓名:

专业:

班级:

学号:

指导教师:

 

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<<"工资:

"<

}

};

voidmain()

{

PERSONper[M];

intlength;

Persona;

for(;;)

{

system("cls");

switch(a.enter())

{

case1:

{

for(;;)

{

system("cls");

switch(a.menu_select())

{

case1:

length=a.shuru(per);break;

case2:

a.list(per,length);break;

case3:

a.search(per,length);break;

case4:

length=a.del(per,length);break;

case5:

a.modify(per,length);break;

case6:

length=a.add(per,length);break;

case7:

a.save(per,length);break;

case8:

length=a.load(per);break;

case9:

exit(0);break;

}

cout<<"按回车键返回主菜单........."<

getchar();

}

}

case2:

exit(0);

}

}

return;

}

3.功能介绍

(1)用户登录:

输入用户名和密码,如果正确则进入主菜单界面,否则继续输入。

(2)录入信息:

键盘输入相应的个人信息。

(3)浏览信息:

选择2选项即可。

(3)查询信息:

输入要查询人的姓名即可,有该人就执行操作,没有的话就会进行相应提示。

(4)删除信息:

输入需要删除人的姓名即可,再用浏览功能就可以知道有没删除。

(5)修改信息:

输入要修改人的姓名,并输入要修改的信息。

(6)插入信息:

输入要插入的信息,再输入要插入的位置。

(7)保存信息:

保存输入的全部个人信息到指定文件中。

(8)加载信息:

将文件保存的个人信息全部加载到相应界面。

(9)退出

4.课程设计总结及心得

通过这次课程设计练习,我提高了对所学的C++及C语言知识的综合运用能力,能将所学不同的知识(如类、继承、多态性等知识)进行交叉运用,之前一些不懂的问题有了一定的了解,并对所学的知识有了更深的理解;当然,在设计过程中也提高了自己运用所学知识解决实际问题的能力,特别是学会了分析问题并联想自己所学知识去解决问题,在调试程序中自己也遇到不少以前未曾遇到过的新问题,在解决这些问题中自己学会不少新的问题解决方法;但是,这次课程设计中也认识自己存在很多的不足之处,比如调试程序时的从发现问题到找到问题的症结解决问题的能力比较欠缺,因此以后仍要不断努力学习、提高自己的能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1