课 程 设 计
报 告
课程名称: 教师工资管理系统
班 级:
92330101
学 号: 2009023301053
姓 名:
姬美娟
完成日期:
2010.03.19
沈阳航空工业学院
北方软件学院
1
课程设计任务书
专业名称:计算机科学与技术(软件工程)
课程名称:面向对象程序设计与 C++
设计题目:教师工资管理系统
起止时间:2010 年 3 月 8 日至 2010 年 3 月 19 日
问题描述
开发一个教师工资管理系统,对所有教师的信息进行存储和管理,用文件
的形式存储所有教师的工资信息,定义一个教师类存储教师的工资信息,包括:
职工号、姓名、性别、基本工资,奖金,职称。定义一个工资管理类,实现操
作包括:删除教师信息,添加教师信息,修改教师信息,查询教师信息。
基本要求
1、 通过读取文件初始化所有教师的工资信息;
2、 在教师类的定义中,能够通过定义成员函数实现修改教师的某项基本信息。
3、 在工资管理类的定义中,能够通过定义成员函数实现删除教师信息,添加
教师信息,修改教师信息,查询教师信息。
实现提示
能熟练掌握对文件的读取操作,熟练使用类实现数据的封装。
学生姓名:姬美娟
指导教师:
学号:2009023301053
年
月
日
4
教师工资管理系统
一、概要设计:
模块一:录入教师信息
录入的信息包括姓名、编号、性别、职称、工资、奖金。
模块二:删除教师信息
首先选择删除教师信息项,如果有某位教师信息,则输入此教师的姓名,回车
显示已删除。如果输入姓名不对则显示无此人资料。如果没有任何教师信息则
显示无任何信息。
模块三:修改教师信息
首先选择修改教师信息项,如果有某位教师信息,则输入要修改的教师的姓名
则会出现修改的项目,修改后会显示已修改。如果输入姓名错误则会显示无此
人资料。
模块四:清除教师信息
首先选择清除教师信息项,则会出现是否彻底删除所有数据字样,如是则选择
1(继续),如不是则选择 2(取消)。
模块五:查看教师信息
如果想查看教师的信息,则选择此项,屏幕会显示所有教师的信息。
模块六:退出
屏幕会显示“press any key to coutinue”字样,按任意键则退出。
二、详细设计:
1、定义一个 gongzi 类:
其中定义了名字数组、编号数组、性别数组、职称数组及工资与奖金的 int 函
数。
class Gongzi
{
char name[20];//定义一个字符型数组,用来录入姓名,姓名最多存储 20
个
char number[20];//定义一个字符型数组,用来录入编号,编号最多存储
20 个
char sex;//定义一个字符型数组,用来录入性别。
char chengwei[20];//录入职称。
int gongzi;//定义工资
int salary;//定义奖金
Gongzi *next;
2、定义一个 phone 类:
5
此类是对 gongzi 类的管理。
class Phone
{
Gongzi *head;//头指针指向空
3、模块代码:
(一)、录入教师信息:需要录入教师的姓名、编号、性别、职称、工资、奖金,
录入的编号、性别、工资、奖金都必须为数字,如果录入错误会提示重新输入。
void
sex,char
*chengwei,int gongzi,int salary)//录入教师的信息
{
Phone::AddGongzi(char
*name,char
*number,char
Gongzi *pnew=new Gongzi(name,number,sex,chengwei,gongzi,salary);
Gongzi *p1=NULL;
if(head==NULL)
{head=pnew;}
else
{p1=head;
while(p1->getnext()!=NULL)
{p1=p1->getnext();}
p1->setnext(pnew);
}
}
(二)、删除教师信息:在程序有教师信息的情况下,输入想要删除教师的姓名,
如果输入正确,则显示“已删除”,如果输入的姓名不是程序中的名字则显示“无
此人资料”
void Phone::earseGongzi()
{
system("cls");
if(head==NULL)
{cout<<"无任资料!"<>name;
if(find(name)!=NULL)//如果姓名错误则显示无此人资料
{
6
earse(find(name));//如果信息正确则表示已删除
cout<<"已删除!"<>name;
if(find(name)!=NULL)//如果姓名不正确则无此人资料
{modify(find(name));//如果姓名正确则修改成功
cout<<"已修改!"<>ch;
if(ch=='1')
{while(head!=NULL)
head=head->getnext();
7
cout<<"已删除!"<ShowGongzi();
p1=p1->getnext();}
(六)、退出
4、主要功能模块流程图:
(删除流程图):
开始
输入删除的姓名
是否删除
是
删除
退出
否
8
(修改流程图):
否
开始
输入修改姓名
是 否 匹 配
修改条件
是
修改
退出
三、调试报告:
1、刚开始设计程序时,程序开始没有加头文件#include,导致程序出
现了头文件的错误,例如:
ifstream infile;
infile.open("ok",ios::binary);
if(!infile)
出现提示。
2、在程序类别设计的时候,选择男女是没有标注,导致进入界面后无法正确输
入教师的信息,例如
while(!panduanjibie(sex))
{
cout<<"性别选择错误,请重新输入:"<>sex;
修改后可以通过数字进行男女性别的选择,可以很快进行信息的录入。
9
四、测试结果:
1、教师工资管理系统主界面:
2、录入教师信息(例如:姓名、编号、性别、职称、工资、奖金)
10