搜索
您的当前位置:首页正文

个人信息管理系统

来源:哗拓教育
课程设计报告

课程设计题目: 个人信息管理软件

学生姓名: 专 业: 班 级 :

学 号 :

指导教师 :

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 using namespace std; #define M 50 typedef struct {

string name; string address; string sex;

int phone,age,family;

}PERSON; class Person{ public:

int length; int yh,mm;

int getyh(){return yh;} int getmm(){return mm;}

int menu_select(); int setmm(); int enter();

int shuru(PERSON t[]); void list(PERSON t[],int n); void search(PERSON t[],int n); int del(PERSON t[],int n); int add(PERSON t[],int n); void save(PERSON t[],int n); int load(PERSON t[]); void print(PERSON temp);

int find_name(PERSON t[],int n,string p); void modify(PERSON t[],int n);

};

int Person::enter() {string a,b; int N;

cout<<\"1.登录\"<>N; for(;;) {

system(\"cls\"); if(N==1) {

cout<<\"用户名:\"; cin>>a; cout<<\"密码:\"; cin>>b;

if(a==\"liu\"&&b==\"123\") {

cout<<\"登录成功!\";return N; } else

{

cout<<\"请检查用户名和密码是否有误,并重输!\"; // break; } getchar(); } if(N==2) { exit(0); }

}

return N; }

//菜单选择、、、、、、、、、、、、、、、、、、、、 int Person::menu_select() { int n;

cout<<\"****************主

*******************\"<cout<<\" \"<<\"1.输入个人信息\"<

cout<<\" \"<<\"4.删除个人信息\"<cout<<\"*****************************************\"<cout<<\"请输入选项(1-9):\"<>n; getchar(); }while(n<1||n>9); return n; }

//输入个人信息、、、、、、、、、、、、、、、、 int Person::shuru(PERSON t[]) { int i,n; system(\"cls\");

cout<cout<<\"请输入要插入的个人记录数:\"<>n;

cout<<\"请输入个人信息:\"<cout<<\"姓名:\"<<\" \"<<\"地址\"<<\" \"<<\"性别\"<<\" \"<<\"电话号码\"<<\" \"<<\"年龄\"<<\" \"<<\"人口数\"<cin>>t[i].name>>t[i].address>>t[i].sex>>t[i].phone>>t[i].age>>t[i].family; } getchar(); return n; }

//显示记录,参数为记录数组和记录条数 void Person::list(PERSON t[],int n) { int i; system(\"cls\");

cout<<\"***************************************\"<个人信息清单

cout<<\"姓名\"<<\" \"<<\"地址\"<<\" \"<<\"性别\"<<\" \"

<<\"电话号码\"<<\" \"<<\"年龄\"<<\" \"<<\"人口数\"<cout<\"<\"<\"<cout<<\"***************************************************\"<void Person::search(PERSON t[],int n) {

char Name[20]; int i; system(\"cls\");

cout<<\"输入要查找人的姓名:\"<cin>>Name; getchar();

i=find_name(t,n,Name); if(i>n-1)

cout<<\"没有姓名为\"<cout<\"<\"<\"<//删除函数、、、、、、、、、、、、、、、、、、、、、、、 int Person::del(PERSON t[],int n) {

char Name[20]; int ch=0; int i;

cout<<\"请输入要删除的人的姓名:\"<>Name; getchar();

i=find_name(t,n,Name); if(i==n)

cout<<\"没有找到该人\"<cout<<\"删除中!\"<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<<\"删除成功!\"<//插入记录函数、、、、、、、、、、、、、、、、、、、、、 int Person::add(PERSON t[],int n) {

PERSON temp;

int i,j; string Name;

cout<<\"请输入要插入的个人信息:\"<cout<<\"**************************************************\"<cout<<\"姓名\"<<\" \"<<\"地址\"<<\" \"<<\"性别\"<<\" \"

<<\"电话号码\"<<\" \"<<\"年龄\"<<\" \"<<\"人口数\"<cout<<\"**************************************************\"<cin>>temp.name>>temp.address>>temp.sex>>temp.phone>>temp.age>>temp.family; getchar();

cout<<\"--------------------------------------------------\"<0) {

cout<<\"请输入插入位置的姓名,将新记录插入该名字前:\"<>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++; return n; }

//保存函数、、、、、、、、、、、、、、、、、、、、、、、、

void Person::save(PERSON t[],int n) { int i;

fstream ioFile;

ioFile.open(\"D:\\\\grxx.txt\ioFile<ioFile<\"<\"<\"<ioFile.close();

cout<<\"文件保存成功!\"<//加载函数、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 int Person::load(PERSON t[]) { int n;

//fstream ioFile;

ifstream in(\"D:\\\\grxx.txt\in>>n; if(n>0)

{

for(int i=0;iin>>t[i].name>>t[i].address>>t[i].sex>>t[i].phone>>t[i].age

>>t[i].family; }

cout<<\"文件已加载成功!\"<//按序号显示记录函数 、、、、、、、、、、、、、、、、、、、、、、、、、、 void Person::print(PERSON temp) {

cout<<\"***********************************************\"<cout<<\"姓名\"<<\" \"<<\"地址\"<<\" \"<<\"性别\"<<\" \"

<<\"电话号码\"<<\" \"<<\"年龄\"<<\" \"<<\"人口数\"<cout<\"<}

\"<<\"<cout<<\"************************************************\"<//按姓名查找个人信息函数、、、、、、、、、、、、、、、、、、、、、、 int Person::find_name(PERSON t[],int n,string p) { int i;

for(i=0;iif(p==t[i].name) return i; } return i; }

//修改函数、、、、、、、、、、、、、、、、、 void Person::modify(PERSON t[],int n) {

char Name[20]; int ch=0; int i;

cout<<\"请输入要修改的姓名:\"<>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<\"<class Employed:public Person {

string work; int gongzi; public:

Employed(string w,int g){work=w;gongzi=g;} //Employed(){}

string getwork(){return work;} int getgongzi(){return gongzi;} void setwork(string x){work=x;} }

void setgongzi(int y){gongzi=y;}

void show() {

void Person::show(PERSON t[]);

cout<<\"工作:\"<cout<<\"工资:\"<};

}

class Unemployed:public Person {

string pwork; int time; public:

Unemployed(string pw,int tm){pwork=pw;time=tm;} //Unemployed(){}

string getpwork(){return pwork;} int gettime(){return time;} void setpwork(string x){pwork=x;}

void settime(int y){time=y;}

void show() {

void Person::show(PERSON t[]);

cout<<\"工作:\"<cout<<\"工资:\"<void main() {

PERSON per[M]; int length; Person a; for(;;) {

system(\"cls\"); switch(a.enter ()) {

case 1: { for(;;) {

system(\"cls\"); switch(a.menu_select()) {

case 1:length=a.shuru(per);break; case 2:a.list(per,length);break; case 3:a.search(per,length);break; case 4:length=a.del(per,length);break;

case 5:a.modify(per,length);break;

case 6:length=a.add(per,length);break; }

cout<<\"按回车键返回主菜单.........\"<case 7:a.save(per,length);break; case 8:length=a.load(per);break; case 9:exit(0);break;

case 2:exit(0); }

return; } }

3.功能介绍

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

(2)录入信息:键盘输入相应的个人信息。

(3)浏览信息:选择2选项即可。

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

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

(5)修改信息:输入要修改人的姓名,并输入要修改的信息。

(6)插入信息:输入要插入的信息,再输入要插入的位置。

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

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

(9)退出

4.课程设计总结及心得

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

的从发现问题到找到问题的症结解决问题的能力比较欠缺,因此以后仍要不断努力学习、提高自己的能力。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top