C++程序设计 高手来(高分)

高手搞好了我再加分,200分

题目2:人员信息管理系统
本设计题目的任务是设计一个人员信息管理系统,并使用虚函数实现多态性,完成显示不同人员信息的任务。
设计employee类,用来存储雇员的编号,级别,月薪等信息,能够对其进行操作和显示。
以employee为基类派生出technician类,表示兼职技术人员,以及manager类,表示经理,以及salesman类,表示兼职推销员。利用manage类和salesman类派生出salesmanager类,表示销售经理。注意使用虚基类。
进一步使用虚函数和抽象类改进上面的程序。
本设计题目的目的是让学生进一步理解和掌握C++中类的继承,虚基类,多态性,虚函数以及抽象类技术及实现方法。

总结报告包括以下内容:
1. 程序设计的主题说明;
2. 程序设计的总体框图;
3. 各设计步骤的分析与代码设计;
4. 系统调试的方法和步骤;
5. 系统设计的改进意见;
6. 将设计报告整理成文。
请别复制粘贴,在程序中多点说明,最好把设计思路写的清楚点

源代码
#include <iostream.h>
#include <fstream.h>
#include <ctype.h>
#include <string.h>

//全局数据,对象
double ManagerSalary; //经理固定月薪
double SalesManagerSalary; //销售经理固定月薪
double SalesManagerPercent; //销售经理提成%
double SalesPercent; //兼职推销员提成%
double WagePerHour; //兼职技术人员小时工资
int ID; //员工标识(要保证唯一)

class Person //员工类
{
protected:
int No; //编号
char Name[20]; //姓名
int Duty; //岗位
double Earning; //收入
Person *next;
public:
Person(char ID,char *Name,int Duty)
{
this->Duty=Duty;
strcpy(this->Name,Name);
this->No=ID;
}
virtual void CalcSalary()=0;
virtual void Output()=0;
friend class Company;
};

class Manager:public Person //经理类
{
public:
Manager(char ID,char *Name,int Duty):Person(ID,Name,Duty){}
void CalcSalary(){Earning=ManagerSalary;}
void Output()
{
CalcSalary();
cout<<No<<"\t"<<Name<<"\t经理\t"<<Earning<<endl;
}
};

class SalesManager:public Person //销售经理类
{
private:
double Amount;
public:
SalesManager(char ID,char *Name,int Duty):Person(ID,Name,Duty){}
void SetAmount(double s)
{
Amount=s;
}
void CalcSalary()
{
Earning=SalesManagerSalary+Amount*SalesManagerPercent/100;
}
void Output()
{
CalcSalary();
cout<<No<<"\t"<<Name<<"\t销售经理\t"<<Earning<<endl;
}
};

class Technician:public Person //兼职技术人员类
{
private:
double t;
public:
Technician(char ID,char *Name,int Duty,double T):Person(ID,Name,Duty)
{
this->t=T;
}
double GetT()
{
return t;
}
void SetT(double T)
{
this->t=T;
}
void CalcSalary()
{
Earning=WagePerHour*t;
}
void Output()
{
CalcSalary();
cout<<No<<"\t"<<Name<<"\t兼职技术人员\t"<<t<<"\t"<<Earning<<endl;
}
};

class Sales:public Person //兼职推销员类
{
private:
double Amount;
public:
Sales(char ID,char *Name,int Duty,double Amount):Person(ID,Name,Duty)
{
this->Amount=Amount;
}
double GetAmount()
{
return Amount;
}
void SetAmount(double Amount)
{
this->Amount=Amount;
}
void CalcSalary()
{
Earning=SalesPercent/100*Amount;
}
void Output()
{
CalcSalary();
cout<<No<<"\t"<<Name<<"\t兼职推销员\t"<<Amount<<"\t"<<Earning<<endl;
}
};

class Company //公司类
{
private:
Person *Worker; //员工表
void Clear(); //清除内存中数据
public:
Company()
{
Worker=0;
Load();
}
~Company()
{
Person *p;
p=Worker;
while(p)
{
p=p->next;
delete Worker;
Worker=p;
}
Worker=0;
}
void Add(); //增加人员
void Delete(); //删除人员
void Modify(); //修改人员
void Query(); //查询人员
void Set(); //基础数据设置
void Save(); //数据存盘(包括基础数据,人员数据)
void Load(); //数据装入(包括基础数据,人员数据)
};

void Company::Clear() //清除内存中人员数据(内部使用)
{
Person* p=Worker;
while(p)
{
Worker=p->next;
delete p;
p=Worker;
}
}

void Company::Add()
{
Person *p; //新结点指针
int Duty;
char Name[20];
double Amount,T;

cout<<"\n** 新增员工 **\n";

//输入员工信息
ID++;
cout<<"输入岗位(1-经理2-销售经理3-兼职推销员4-兼职技术人员):"; cin>>Duty;
cout<<"输入姓名:"; cin>>Name;
if(Duty==3)
{
cout<<"本月销售额:"; cin>>Amount;
}
else if(Duty==4)
{
cout<<"本月工作小时数(0-168):";
cin>>T;
}

//创建新员工结点
switch(Duty)
{
case 1:p=new Manager(ID,Name,Duty); break;
case 2:p=new SalesManager(ID,Name,Duty); break;
case 3:p=new Sales(ID,Name,Duty,Amount); break;
case 4:p=new Technician(ID,Name,Duty,T); break;
}
p->next=0;

//员工结点加入链表
if(Worker) //若已经存在结点
{
Person *p2;
p2=Worker;
while(p2->next) //查找尾结点
{
p2=p2->next;
}
p2->next=p; //连接
}
else //若不存在结点(表空)
{
Worker=p; //连接
}
}

void Company::Delete() //删除人员
{
int No;
cout<<"\n** 删除员工 **\n";
cout<<"ID:"; cin>>No;

//查找要删除的结点
Person *p1,*p2; p1=Worker;
while(p1)
{
if(p1->No==No)
break;
else
{
p2=p1;
p1=p1->next;
}
}

//删除结点
if(p1!=NULL)//若找到结点,则删除
{
if(p1==Worker) //若要删除的结点是第一个结点
{
Worker=p1->next;
delete p1;
}
else //若要删除的结点是后续结点
{
p2->next=p1->next;
delete p1;
}
cout<<"找到并删除\n";
}
else //未找到结点
cout<<"未找到!\n";
}

void Company::Modify()
{

int No,Duty;
char Name[20];
double Amount,T;

cout<<"\n** 修改员工 **\n";
cout<<"ID:"; cin>>No;

//查找要修改的结点
Person *p1,*p2; p1=Worker;
while(p1)
{
if(p1->No==No)
break;
else
{
p2=p1;
p1=p1->next;
}
}

//修改结点
if(p1!=NULL)//若找到结点
{
p1->Output();
cout<<"调整岗位(1-经理2-销售经理3-兼职推销员4-兼职技术人员):"; cin>>Duty;
if(p1->Duty!=Duty) //若岗位发生变动
{
//修改其它数据
cout<<"输入姓名:"; cin>>Name;
if(Duty==3)
{
cout<<"本月销售额:"; cin>>Amount;
}
else if(Duty==4)
{
cout<<"本月工作小时数(0-168):";
cin>>T;
}

//创建新员工结点
Person *p3;
switch(Duty)
{
case 1:p3=new Manager(p1->No,Name,Duty); break;
case 2:p3=new SalesManager(p1->No,Name,Duty); break;
case 3:p3=new Sales(p1->No,Name,Duty,Amount); break;
case 4:p3=new Technician(p1->No,Name,Duty,T); break;
}

//员工结点替换到链表
p3->next=p1->next;
if(p1==Worker) //若要替换的结点是第一个结点
Worker=p3;
else //若要删除的结点是后续结点
p2->next=p3;

//删除原来的员工结点
delete p1;
}
else //若岗位没有变动
{
cout<<"输入姓名:"; cin>>p1->Name;
if(Duty==3)
{
cout<<"本月销售额:";cin>>Amount; ((Sales *)p1)->SetAmount(Amount);
}
else if(Duty==4)
{
cout<<"本月工作小时数(0-168):";cin>>T; ((Technician *)p1)->SetT(T);
}
}
cout<<"修改成功!\n";
}
else //未找到结点
cout<<"未找到!\n";
}

void Company::Query()
{
cout<<"\n** 查询人员本月销售信息 **\n";

double sum=0; //销售额总和
Person *p=Worker;
while(p)
{
if(p->Duty==3)sum+=((Sales *)p)->GetAmount();
p=p->next;
}

p=Worker;
double sum2=0; //工资总和
while(p)
{
if(p->Duty==2)((SalesManager *)p)->SetAmount(sum);
p->Output();
sum2+=p->Earning;
p=p->next;
}

cout<<"本月盈利:"<<sum*0.05-sum2<<endl;
cout<<"(按照5%利润计算)\n";
}

void Company::Set()
{
cout<<"\n** 设置基础数据 **\n";
cout<<"经理固定月薪["<<ManagerSalary<<"元]:";
cin>>ManagerSalary;
cout<<"销售经理固定月薪["<<SalesManagerSalary<<"元]:";
cin>>SalesManagerSalary;
cout<<"销售经理提成["<<SalesManagerPercent<<"%]:";
cin>>SalesManagerPercent;
cout<<"兼职推销员提成["<<SalesPercent<<"%]:";
cin>>SalesPercent;
cout<<"兼职技术人员小时工资["<<WagePerHour<<"(元/小时)]:";
cin>>WagePerHour;
cout<<"员工标识[>="<<ID<<"]:";
cin>>ID;
}

void Company::Save() //数据存盘(包括基础数据,人员数据),均采用文本文件
{
ofstream fPerson,fBase;
char c;

cout<<"\n保存人员和基础数据,是否继续?[Y/N]:"; cin>>c;
if(toupper(c)!='Y')return;

//保存人员编号、姓名、岗位
fPerson.open("person.txt",ios::out);
Person *p=Worker;
while(p)
{
fPerson<<p->No<<"\t"<<p->Name<<"\t"<<p->Duty<<"\t";
if(p->Duty==3)
fPerson<<((Sales*)p)->GetAmount()<<"\t";
else if(p->Duty==4)
fPerson<<((Technician *)p)->GetT()<<"\t";
fPerson<<endl;
p=p->next;
}
fPerson.close();

//保存基础数据
fBase.open("base.txt",ios::out);
fBase<<"经理固定月薪\t"<<ManagerSalary<<endl;
fBase<<"销售经理固定月薪\t"<<SalesManagerSalary<<endl;
fBase<<"销售经理提成%\t"<<SalesManagerPercent<<endl;
fBase<<"兼职推销员提成%\t"<<SalesPercent<<endl;
fBase<<"兼职技术人员小时工资\t"<<WagePerHour<<endl;
fBase<<"ID\t"<<ID<<endl;
fPerson.close();

cout<<"\n保存人员和基础数据已经完成...\n";
}

void Company::Load() //数据装入(包括基础数据,人员数据)
{
//基础数据装入
ifstream fBase;
char buf[80]; //buf用于保存数据文件中的注释字符串
fBase.open("base.txt",ios::in);
fBase>>buf>>ManagerSalary; //经理固定月薪
fBase>>buf>>SalesManagerSalary; //销售经理固定月薪
fBase>>buf>>SalesManagerPercent; //销售经理提成%
fBase>>buf>>SalesPercent; //兼职推销员提成%
fBase>>buf>>WagePerHour; //兼职技术人员小时工资
fBase>>buf>>ID; //员工标识
fBase.close();

//清除内存人员数据
Clear();
//人员数据数据装入
ifstream fPerson;
Person *p=Worker;
int No; char Name[20]; int Duty;
double Amount,T;

fPerson.open("person.txt",ios::in);
//读一条记录
fPerson>>No>>Name>>Duty;
if(Duty==3)fPerson>>Amount;
else if(Duty==4)fPerson>>T;

while(fPerson.good())
{
//创建员工结点
switch(Duty)
{
case 1:p=new Manager(No,Name,Duty); break;
case 2:p=new SalesManager(No,Name,Duty); break;
case 3:p=new Sales(No,Name,Duty,Amount); break;
case 4:p=new Technician(No,Name,Duty,T); break;
}
p->next=0;

//员工结点加入链表
if(Worker) //若已经存在结点
{
Person *p2;
p2=Worker;
while(p2->next) //查找尾结点
{
p2=p2->next;
}
p2->next=p; //连接
}
else //若不存在结点(表空)
{
Worker=p; //连接
}

//读下一条记录
fPerson>>No>>Name>>Duty;
if(Duty==3)fPerson>>Amount;
else if(Duty==4)fPerson>>T;
}
fPerson.close();

cout<<"\n人员和基础数据已经装入...\n";
}

void main()
{
char c;
Company a;
do
{
cout<<"* * * * * * * * * * * * * * * * * * * * * * *\n";
cout<<"\n*** /////公司人员信息管理系统/////***\n";
cout<<"*1-基础数据设置\n";
cout<<"*2-增加人员\n";
cout<<"*3-修改人员\n";
cout<<"*4-删除人员\n";
cout<<"*5-查询本月经营情况\n";
cout<<"*6-数据载入\n";
cout<<"*7-数据存储\n";
cout<<"*8-退出\t请选择(1-8):";

cin>>c;
switch(c)
{
case '1': a.Set(); break;
case '2': a.Add();break;
case '3': a.Modify();break;
case '4': a.Delete(); break;
case '5': a.Query(); break;
case '6': a.Load(); break;
case '7': a.Save(); break;
}
}while(c!='8');
}

一、设计思路
使用面向对象的程序设计思想进行分析,整个系统涉及两大类信息和操作,公司,人员。所以系统主要涉及两个大类:公司类Company、人员类Person。系统的总体框架就是公司类,人员类的定义;主函数中定义一个公司对象,循环显示主菜单并根据用户选择调用公司类的相应方法(成员函数)。
公司类Company:考虑系统操作的人员信息的数量具有不确定性,所以考虑使用链表保存、处理人员信息。公司类包含:所有人员信息的一个不带头结点的链表(作为数据成员)及可以对人员信息进行增,删,改,查询经营信息,基础数据设置,数据存盘,数据装入等操作的相关模块(Set,Add,Modify,Delete,Query,Load,Save)作为成员函数。
人员类Person:所有人员都具有的公共信息及操作可以使用人员类进行描述。由于系统具有4类人员且4类人员数据,操作有所不同,如销售员包含销售额,而技术人员包含工作小时数且计算工资的方法不同,所以应当为4类人员创建相应的Person类的派生类。
为了使公司类可以方便处理人员信息,可以考虑将公司类确定为人员类的友元类或者人员类提供公共的方法以便公司类进行操作。为了公司类可以用共同方法操作人员类,可以将人员类的方法确定为虚函数。

二、设计说明与调试分析
类的层次图

Person
{ No,Name,Duty,Earning,next,Person(),CalcSalary(),Output()}

Manager Sales SalesManager Technician
{ Manager(), {Amount, {Amount, { t,
CalcSalary(), Sales(),GetAmount(), SalesManager(), Technician(),
Output()} SetAmount(), SetAmount(), GetT(),SetT(),
CalcSalary(), CalcSalary(), CalcSalary(),
Output()} Output()} Output()}

Person 类的No-人员编号,Name-人员姓名,Duty-人员类别,Earning-工资,next-指向下一个人员的指针;Person 类的CalcSalary(),Output()定义为纯虚函数分别表示要计算人员工资和输出人员信息,由于定义纯虚函数,所以Person是抽象类,具体计算工资,输出人员信息由派生类完成。
各个派生的类,包含本类对象特有的数据,Sales::Amount-销售员销售额,SalesManager::Amount-销售经理的总销售额(系统统计各个销售员销售额得到销售经理的总销售额),Technician::t-技术人员工作小时数。

Company
{Person *Worker,
Set(),Add(),Modify(),Delete(),Query(),Load(),Save() }
其中:
(1)Worker就是人员链表。
(2)Clear()用于清除人员链表所有结点。
(3)Set(),Add(),Modify(),Delete(),Query(),Load(),Save()分别表示系统各个功能模块: 基础数据设置,增加人员,修改人员,删除人员,查询本月经营信息,数据载入,数据存储。

四、测试结果
人员和基础数据已经装入...
* * * * * * * * * * * * * * * * * * * * * * *

*** /////公司人员信息管理系统/////***
*1-基础数据设置
*2-增加人员
*3-修改人员
*4-删除人员
*5-查询本月经营情况
*6-数据载入
*7-数据存储
*8-退出 请选择(1-8):1 (输入1)

** 设置基础数据 **
经理固定月薪[0元]:8000 (输入8000)
销售经理固定月薪[0元]:5000 (输入5000)
销售经理提成[0%]:5 (输入5)
兼职推销员提成[0%]:4 (输入4)
兼职技术人员小时工资[0(元/小时)]:100 (输入100)
员工标识[>=0]:1 (输入 1)
* * * * * * * * * * * * * * * * * * * * * * *

*** /////公司人员信息管理系统/////***
*1-基础数据设置
*2-增加人员
*3-修改人员
*4-删除人员
*5-查询本月经营情况
*6-数据载入
*7-数据存储
*8-退出 请选择(1-8):2 ( 输入2)

** 新增员工 **
输入岗位(1-经理2-销售经理3-兼职推销员4-兼职技术人):2 ( 输入2)
输入姓名:cx ( 输入姓名 cx)
* * * * * * * * * * * * * * * * * * * * * * *

*** /////公司人员信息管理系统/////***
*1-基础数据设置
*2-增加人员
*3-修改人员
*4-删除人员
*5-查询本月经营情况
*6-数据载入
*7-数据存储
*8-退出 请选择(1-8):3 ( 输入3)

** 修改员工 **
ID:2 ( 输入2)
2 4 经理 8000
调整岗位(1-经理2-销售经理3-兼职推销员4-兼职技术人):2 ( 输入2)
输入姓名:nn ( 输入姓名 nn)
修改成功!
* * * * * * * * * * * * * * * * * * * * * * *

*** /////公司人员信息管理系统/////***
*1-基础数据设置
*2-增加人员
*3-修改人员
*4-删除人员
*5-查询本月经营情况
*6-数据载入
*7-数据存储
*8-退出 请选择(1-8):4 ( 输入4)

** 删除员工 **
ID:2 ( 输入2)
找到并删除
* * * * * * * * * * * * * * * * * * * * * * *

*** /////公司人员信息管理系统/////***
*1-基础数据设置
*2-增加人员
*3-修改人员
*4-删除人员
*5-查询本月经营情况
*6-数据载入
*7-数据存储
*8-退出 请选择(1-8):5 ( 输入5)

** 查询人员本月销售信息 **
2 cx 经理 8000
本月盈利:-8000
(按照5%利润计算)
* * * * * * * * * * * * * * * * * * * * * * *

*** /////公司人员信息管理系统/////***
*1-基础数据设置
*2-增加人员
*3-修改人员
*4-删除人员
*5-查询本月经营情况
*6-数据载入
*7-数据存储
*8-退出 请选择(1-8):6 ( 输入6)

人员和基础数据已经装入...
* * * * * * * * * * * * * * * * * * * * * * *

*** /////公司人员信息管理系统/////***
*1-基础数据设置
*2-增加人员
*3-修改人员
*4-删除人员
*5-查询本月经营情况
*6-数据载入
*7-数据存储
*8-退出 请选择(1-8):7 (输入7)

保存人员和基础数据,是否继续?[Y/N]:y (输入y)

保存人员和基础数据已经完成...
* * * * * * * * * * * * * * * * * * * * * * *

*** /////公司人员信息管理系统/////***
*1-基础数据设置
*2-增加人员
*3-修改人员
*4-删除人员
*5-查询本月经营情况
*6-数据载入
*7-数据存储
*8-退出 请选择(1-8):8 (输入8)
退出

五、设计心得

这样可以么
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-23
#include <iostream>
#include <string>
const int Max=100;
using namespace std;
//..................
class employee{
private:
int number;
string name;
int grade;
double robin;
public:
employee(int NUM=0,string N="qiang",int G=3,double R=5000)
{number=NUM;name=N;grade=G;robin=R;}
employee(employee &e)
{
number=e.number;
name=e.name;
grade=e.grade;
robin=e.robin;
}
~employee(){}
void Setnumber(int NUM){number=NUM;}
int Getnumber(){return number;}
void Setname(string N){name=N;}
string Getname(){return name;}
void Setgrade(int G){grade=G;}
int Getgrade(){return grade;}
void Setrobin(double R){robin=R;}
double Getrobin(){return robin;}
};
int main()
{
employee ch1[Max];
int i;
string name;
int N;
int G;
double R;
for(i=0;i<=2;i++)
{cout<<"请输入姓名:";
cin>>name;
ch1[i].Setname(name);
cout<<"请输入编号:";
cin>>N;
ch1[i].Setnumber(N);
cout<<"请输入级别:";
cin>>G;
ch1[i].Setgrade(G);
cout<<"请输入工资:";
cin>>R;
ch1[i].Setrobin(R);
}
for(i=0;i<=2;i++)
{
cout<<"//////////////////////////////////////////////"<<endl;
cout<<"员工姓名:"<<ch1[i].Getname()<<endl;
cout<<"员工编号:"<<ch1[i].Getnumber()<<endl;
cout<<"员工级别:"<<ch1[i].Getgrade()<<endl;
cout<<"员工收入:"<<ch1[i].Getrobin()<<endl;
cout<<"//////////////////////////////////////////////"<<endl;
}
// cout<<ch1[i].Getgrade()<<endl;
return 0;
}本回答被网友采纳
第2个回答  2010-07-03
有高人讲得如此详细,小弟就不在献丑

C++程序设计 整除问题,高手进
1、void count(int*a,int *n)定义一个无返回值的函数count,它有两个形式参数,第一个是指针a,指向int型数据,第二个是指针n,指向int型数据。2,3、参看注释 void countValue(int *a,int *n){ int i;n=0; \/\/n指向的内容赋值为0 for(i=1;i<=1000;i++){ if((i%7==0&&i%...

高高分!!C++,高手,MFC???VC
但假如操作系统本身支持多个处理器,那么 每个线程都可分配给一个不同的处理器,真正进入“并行运算”状态。从程序设计语言的角度看,多线程操 作最有价值的特性之一就是程序员不必关心到底使用了多少个处理器。程序在逻辑意义上被分割为数个线 程;假如机器本身安装了多个处理器,那么程序会运行...

C++ 世界最顶尖的程序员是谁.注意是世界
C++ 世界的话, C++之父Bjarne Stroustrup和标准委员会的Herb Sutter与Andrei Alexandrescu,还有STL之父Alexander Stepanov都算是当世绝顶的高手。还有《C++ Primer》的作者,微软C++编译器的主要设计者Stanley B.Lippman以及当年一起在bell实验室做CFront的Andrew Koenig也算绝顶的高手。C语言的世界的话顶尖...

使用c++面向对象的程序设计方法,找出十个学生成绩中的最高者,并输出...
include<iostream>#include<cstring>using namespace std;class student{private:string name;int score;public:student(){}student(string _n,int _s){name=_n;score=_s;}friend student getMaxScore(student ss[],int n);void initStudent(string _n,int _s){score=_s;name=_n; }void pr...

我想自学C语言和C++...高手来推荐下该买什么书?
谭浩强的c程序设计\/c++程序设计都有,是最基础的学习教材,各大学校计算机专业都学这个,自学完全可以看懂。对初学者很有帮助。不想看书网上还有很多教程,很多视频网站,在优酷,土豆上都能搜到。不过这些都是最初级最基础得东西。希望对你有所帮助 ...

关于C++的学习,高手来推荐,给点建议
想那些什么Window的运行机制的你不用去看,没用, 你只要看谭浩强编的《C++程序设计》这本书,自学就没有问题了,我就是考那本书自学会的,而且还考了全国的计算机二级C++。。。 还有,你学过C 也应该知道同样学C++最主要的是多上机练习,就算你不懂,你可以看着书上的程序编一边、两边。。。还有...

求高手帮忙设计VC++6.0程序:保龄球分数计算 高分奖励
花了不少时间!,为了程序好读,分了很多模块,多加点分啊,谢啦先 \/\/\/ 为了便于调试,把从键盘输的数据放到了文件里,到属性--》C\/C++ -》\/\/\/编译器命令行选项里加\/DF就可以使用文件了 \/\/\/文件格式,百度死活不让我帖出来,说里边有广告,我汗。\/\/\/注意student.txt里字符串后跟回车,整数后...

C++蜗牛爬树问题,求高手来(我是伸手党)
用一个go_up函数表示向上爬,用go_down函数表示向下滑,直至到达树顶结点 *\/ include <stdio.h> include <alloc.h> \/* 定义双向链表 *\/ typedef node linknode;typedef struct node { int position;int counter;linknode *prev;linknode *next;} link;\/* 定义头、尾、当前指针 *\/ link *...

我想成为C++编程高手,该学什么课程
(了解->熟悉)4、《C语言程序设计》(掌握)5、《编译原理》(了解原理)6、《汇编语言》(了解)7、《计算机网络》(了解)8、《软件工程》(了解)9、《关系数据库》(熟悉)10、《The C++Languege 》(掌握)11、《面向对象设计》(掌握;结合C++学习)window程序设计 深入浅出MFC ...

C++课程设计 跪求高手设计程序代码 个人记账软件 要求在补充里 请发...
设计思路:1 设计数据结构 struct { time_t Time;double money;int conType;int XiaoFeiType;string zhushi;} 类:对数据结构的操作 1 添加 2 删除 3 修改 4 查询(复杂条件)就可以实现了!

相似回答
大家正在搜