主题:初学VC者~求简单程序
carriedavid
[专家分:0] 发布于 2008-05-03 16:33:00
本人最近开始学VC++ 6.0 基于对话框的程序设计,看了教材感觉进步不快,希望高人们如果身边有现成的简单程序(如通讯录,人事管理之类的),可以让我参考一下~~~万分感谢!!!!
本人邮箱 weijiali1987@163.com
回复列表 (共1个回复)
沙发
gj520yyy [专家分:0] 发布于 2008-05-04 20:43:00
第一部分通过一个结构体,定义了每个记录的基本形式。
typedef struct node
{ char n[20];//姓名
char wid[20];//工作证号
char sex[5];//性别
char tel[10];//电话
char ID[20];//身份证号
char position[20];//职务
char salary[10];//工资
char birth[20];//出生年月
char depart[20];//部门
char addr[35];//详细地址
struct node *next;
}NODE;
在这一步里我们定义了一个employee类,用来声明这些功能函数,比如
add(),printall(),~等 ,同时声明一些私有成员。
下面分别介绍一下各个函数基本作用:
Add()函数用来添加一个新的记录,包括姓名、工作证号、性别、电话、身份证号、职务、工资、出生年月、部门、详细地址,加一个新的员工信息之后,可按任意一键返回主上录。
此函数代码如下:
void employee::add()
{
q= new NODE;
q->next=p;
p=q;
cout<<"姓名:";
cin>>q->n;
cout<<"工作证号:";
cin>>q->wid;
cout<<"性别:";
cin>>q->sex;
cout<<"家庭电话:";
cin>>q->tel;
cout<<"身份证号:";
cin>>q->ID;
cout<<"职务:";
cin>>q->position;
cout<<"薪水:";
cin>>q->salary;
cout<<"生日:";
cin>>q->birth;
cout<<"家庭住址:";
cin>>q->addr;
cout<<"部门:";
cin>>q->depart;
cout<<"按任意键返回!!"<<endl;
Del函数用来删除一个记录,包括姓名、工作证号、性别、电话、身份证号、职务、工资、出生年月、部门、详细地址。在删除时,先查找该员工是否有,如果有则删除,反之,给出提示“查无此人!!”,删除完毕,同样可按任意键返回主目录。
此函数代码如下:
void employee::del()
{ NODE *k;
k=new NODE;
k=p=q;
char n[20];
cout<<"请输入工作证号:"<<endl;
cin>>n;
while (p!=t&&(strcmp(p->wid,n)!=0)!=0)
{k=p;
p=p->next;
}
if (p==t)
{cout<<"查无此人!!"<<endl;
}
else
{if (p==q)
q=q->next;
else
k->next=p->next;
free(p);
}
}
Deleteall 函数用来删除所有记录,包括姓名、工作证号、性别、电话、身份证号、职务、生年月、部门、详细地址。同del函数相同,在删除时,先查找有无此员工,如有则可全部删除,反之,则给出提示“查无此人”,只有确认后,重新输入要删除的信息才行。删除完毕,本函数会给出提示信息:“所有信息已删除!”
此函数代码如下:
void employee::deleteall()
{
while (q!=t)
{p=q;
q=q->next;
free(p);
}
cout<<"所有信息已删除!" ;
}
Edit函数用来修改记录,包括姓名、工作证号、性别、电话、身份证号、职务、工资、出生年月、部门、详细地址。同以上两个函数差不多,要查找是否有此员工信息,只有有此员工信息,才能修改,否则不能修改。
此函数代码如下:
void employee::edit()
{
p=q;
char n[20];
cout<<"请输入员工作证号:"<<endl;
cin>>n;
while (p!=t&&(strcmp(p->wid,n)!=0)!=0)
{p=p->next;
}
if (p==t)
{cout<<"查无此人!!"<<endl;
}
else
{cout<<"姓名";
cin>>p->n;
cout<<"工作证号:";
cin>>p->wid;
cout<<"性别:";
cin>>p->sex;
cout<<"家庭电话:";
cin>>p->tel;
cout<<"身份证号:";
cin>>p->ID;
cout<<"职务:";
cin>>p->position;
cout<<"薪水:";
cin>>p->salary;
cout<<"生日:";
cin>>p->birth;
}
cout<<"按任意键返回!!"<<endl;
}
Employee 此成员函数不是普通的成员函数,本函数是用做接口的构造函数。
此函数代码如下:
employee::employee(NODE *m)
{ t=p=m;
}
print()此函数用来显示员工信息,包括包括姓名、工作证号、性别、电话、身份证号、职务、工资、出生年月、部门、详细地址等所有的员工信息。同时按下任意键可返回主目录。
此函数代码如下:
void employee::print()
{ p=q;
char n[20];
cout<<"请输入工作证号:"<<endl;
cin>>n;
while (p!=t&&(strcmp(p->wid,n)!=0)!=0)
{p=p->next;
}
if (p==t)
{cout<<"查无此人!!"<<endl;
}
else
{ cout<<"姓名:"<<p->n<<endl;
cout<<"工作证号:"<<p->wid<<endl;
cout<<"性别:"<<p->sex<<endl;
cout<<"家庭电话:"<<p->tel<<endl;
cout<<"身份证号:"<<p->ID<<endl;
cout<<"职务:"<<p->position<<endl;
cout<<"薪水:"<<p->salary<<endl;
cout<<"生日:"<<p->birth<<endl;
cout<<"部门:"<<p->depart<<endl;
cout<<"家庭住址:"<<p->addr<<endl;
}
cout<<"按任意键返回!!"<<endl;
}
printall() 此函数用来显示所有员工的所有信息,包括包括姓名、工作证号、性别、电话、身份证号、职务、工资、出生年月、部门、详细地址等所有的员工信息。同时按下任意键可返回主目录。
此函数代码如下:
void employee::printall()
{
p=q;
while (q!=t)
{
cout<<"姓名:"<<q->n<<endl;
cout<<"工作证号:"<<q->wid<<endl;
cout<<"性别:"<<q->sex<<endl;
cout<<"家庭电话:"<<q->tel<<endl;
cout<<"身份证号:"<<q->ID<<endl;
cout<<"职务:"<<q->position<<endl;
cout<<"薪水:"<<q->salary<<endl;
cout<<"生日:"<<q->birth<<endl;
cout<<"家庭住址:"<<q->addr<<endl;
cout<<"部门:"<<q->depart<<endl;
q=q->next;
// getch();
}
q=p;
}
display() 此函数用来显示主目录的界面,用了一此*号美化界面,让使用本程序的使用者能够通过1、2、3、4、5、6、7简单的操作此系统,得到程序的效果。
*********************欢迎使用本系统******************
*******************************************************************************
1:增加一个新成员!
2:修改成员信息!
3:查找成员信息!
4:显示所有成员信息!
5:删除成员信息!
6:删除所有成员信息!
7:退出!
*******************************************************************************
在程序的最后,通过while 来实现整个程序的循环,并且使用了switch选择分支结构,使功能更容易实现。
附源程序:
#include <string.h>
#include <malloc.h>
#include <iostream.h>
#include <conio.h>
typedef struct node
{ char n[20];//姓名
char wid[20];//工作证号
char sex[5];
char tel[10];
char ID[20];
char position[20];//职务
char salary[10];
char birth[20];
char depart[20];//部门
char addr[35];
struct node *next;
}NODE;
class employee
{
private:
NODE *p;
NODE *q;
NODE *t;
public:
employee(NODE *m);
void add();
void printall();
void print();
void deleteall();
void edit();
void del();
};
employee::employee(NODE *m)
{ t=p=m;
}
void employee::del()
{ NODE *k;
k=new NODE;
k=p=q;
char n[20];
cout<<"请输入工作证号:"<<endl;
cin>>n;
while (p!=t&&(strcmp(p->wid,n)!=0)!=0)
{k=p;
p=p->next;
}
if (p==t)
{cout<<"查无此人!!"<<endl;
}
else
{if (p==q)
q=q->next;
else
k->next=p->next;
free(p);
}
}
void employee::print()
{ p=q;
char n[20];
cout<<"请输入工作证号:"<<endl;
cin>>n;
while (p!=t&&(strcmp(p->wid,n)!=0)!=0)
{p=p->next;
}
if (p==t)
{cout<<"查无此人!!"<<endl;
}
else
{ cout<<"姓名:"<<p->n<<endl;
cout<<"工作证号:"<<p->wid<<endl;
cout<<"性别:"<<p->sex<<endl;
cout<<"家庭电话:"<<p->tel<<endl;
cout<<"身份证号:"<<p->ID<<endl;
cout<<"职务:"<<p->position<<endl;
cout<<"薪水:"<<p->salary<<endl;
cout<<"生日:"<<p->birth<<endl;
cout<<"部门:"<<p->depart<<endl;
cout<<"家庭住址:"<<p->addr<<endl;
}
cout<<"按任意键返回!!"<<endl;
}
void employee::edit()
{
p=q;
char n[20];
cout<<"请输入员工作证号:"<<endl;
cin>>n;
while (p!=t&&(strcmp(p->wid,n)!=0)!=0)
{p=p->next;
}
if (p==t)
{cout<<"查无此人!!"<<endl;
}
else
{cout<<"姓名";
cin>>p->n;
cout<<"工作证号:";
cin>>p->wid;
cout<<"性别:";
cin>>p->sex;
cout<<"家庭电话:";
cin>>p->tel;
cout<<"身份证号:";
cin>>p->ID;
cout<<"职务:";
cin>>p->position;
cout<<"薪水:";
cin>>p->salary;
cout<<"生日:";
cin>>p->birth;
}
cout<<"按任意键返回!!"<<endl;
}
void employee::add()
{
q= new NODE;
q->next=p;
p=q;
cout<<"姓名:";
cin>>q->n;
cout<<"工作证号:";
cin>>q->wid;
cout<<"性别:";
cin>>q->sex;
cout<<"家庭电话:";
cin>>q->tel;
cout<<"身份证号:";
cin>>q->ID;
cout<<"职务:";
cin>>q->position;
cout<<"薪水:";
cin>>q->salary;
cout<<"生日:";
cin>>q->birth;
cout<<"家庭住址:";
cin>>q->addr;
cout<<"部门:";
cin>>q->depart;
cout<<"按任意键返回!!"<<endl;
}
void employee::printall()
{
p=q;
while (q!=t)
{
cout<<"姓名:"<<q->n<<endl;
cout<<"工作证号:"<<q->wid<<endl;
cout<<"性别:"<<q->sex<<endl;
cout<<"家庭电话:"<<q->tel<<endl;
cout<<"身份证号:"<<q->ID<<endl;
cout<<"职务:"<<q->position<<endl;
cout<<"薪水:"<<q->salary<<endl;
cout<<"生日:"<<q->birth<<endl;
cout<<"家庭住址:"<<q->addr<<endl;
cout<<"部门:"<<q->depart<<endl;
q=q->next;
// getch();
}
q=p;
}
void employee::deleteall()
{
while (q!=t)
{p=q;
q=q->next;
free(p);
}
cout<<"所有信息已删除!" ;
}
void display()
{
cout<<"\n *********************欢迎使用本系统******************"<<endl;
cout<<"\n********************************************************************************"<<endl;
cout<<"\n 1:增加一个新成员!"<<endl;
cout<<"\n 2:修改成员信息!"<<endl;
cout<<"\n 3:查找成员信息!"<<endl;
cout<<"\n 4:显示所有成员信息!"<<endl;
cout<<"\n 5:删除成员信息!"<<endl;
cout<<"\n 6:删除所有成员信息!"<<endl;
cout<<"\n 7:退出!"<<endl;
cout<<"\n********************************************************************************"<<endl;
}
void main()
{
NODE *pa;
char i;
pa=(NODE*)malloc(sizeof(struct node));
display();
employee a(pa);
while(i=getch())
{
switch(i)
{
case'1':a.add();getch();display();break;
case'2':a.edit();getch();display();break;
case'3':a.print();getch();display();break;
case'4':a.printall();getch();display();break;
case'5':a.del();getch();display();break;
case'6':a.deleteall();getch();display();break;
case'7':cout<<"谢谢使用曲氏员工管理系统1.0!"<<endl;break;}
}
}
我来回复