工资管理系统数据结构李建鹏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
for(i=0;i<a;i++){
if(stu[i].num==d){
for(;i<a;i++){
stu[i]=stu[i+1];
}
a=a-1;
}
}
}
//统计函数
void sum(company *stu,int a){
int i;
int e=0; //员工总工资
for(i=0;i<a;i++){
}
}
}
//删除函数
void delet(company *stu,int &a){
int d,i;
cout<<"输入要删除的员工编号"<<endl;
cin>>d;
for(i=0;i<a;i++){
if(stu[i].num==d){
break;
}
}
if(i==a){
cout<<"输入的员工编号无效"<<endl;
{
cout<<"密码正确"<<endl;
cout<<"成功进入系统"<<endl;
break;
}
else
{
cout<<endl<<"密码错误,请重新输入"<<endl;
z++;
}
if(z==3)
{
cout<<"禁止登陆"<<endl;
break;
}
}
return(z);
}
//输入函数
void company::setdata(){
break;
}
}
if(i==a){
cout<<"输入的员工编号无效"<<endl;
}
for(i=0;i<a;i++){
if(stu[i].num==f){
stu[i].display();
}
}Fra Baidu bibliotek
}
//排序函数
void sort(company *stu,int a){
int i,j;
company tmp;
(2)对数据进行维护,包括数据录入、添加、修改、删除、统计、输出等。
(3)对数据进行查询,例如可按照员工编号、姓名等进行查询。
(4)信息统计显示。
(5)有关信息应保存在文件中。
(6)具有退出系统的功能。
(7)可增加其他有用的功能。
【2】添加功能:可根据每位员工的实发工资,对员工收入做一个排序,了解员工的收入情况。
6、程序清单
列出整个软件系统的程序清单。程序清单要具有易读性。
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
using namespace std;
class company{ //建立一个类
public:
for(i=0;i<a;i++){
fs<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].basicwage<<" "<<stu[i].postwage<<" "<<stu[i].bonus<<" "<<stu[i].salary<<" "<<stu[i].funds<<" "<<stu[i].deduthetax<<" "<<stu[i].thp<<endl;
int b,i;
cout<<"请输入插入个数"<<endl;
cin>>b;
cout<<"输入插入数据:"<<endl;
for(i=a;i<a+b;i++){
stu[i].setdata();
}
a=a+b;
}
//修改函数
void change(company *stu,int a){
int c,i;
cout<<"输入要修改的员工编号"<<endl;
}
fs.close();
cout<<"写入成功"<<endl;
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
company(int n,string na,int ba,int po,int bo,int sa,int f,float de,float th):num(n),name(na),basicwage(ba),postwage(po),bonus(bo),salary(sa),funds(f),deduthetax(de),thp(th){}
cout<<"姓名:"<<name<<endl;
cout<<"基本工资:"<<basicwage<<endl;
cout<<"岗位工资:"<<postwage<<endl;
cout<<"奖金:"<<bonus<<endl;
cout<<"应发工资:"<<salary<<endl;
cout<<"公积金:"<<funds<<endl;
void setdata();
void display();
};
//逐个字符验证密码
int cmp(char *g,char *b){
int k;
for(k=0;k<6;k++){
if(g[k]!=b[k])
break;
}
if(k==6) return 1;
}
//密码验证
int mmyz()
{
int i,j;
cin>>c;
for(i=0;i<a;i++){
if(stu[i].num==c){
break;
}
}
if(i==a){
cout<<"输入的员工编号无效"<<endl;
}
for(i=0;i<a;i++){
if(stu[i].num==c){
cout<<"输入要修改后员工数据"<<endl;
stu[i].setdata();
【1】在设计此程序过程中,类数组的使用及形参与实参的转化和文件的写入成为了一个难点,后来通过小组各成员查阅教材及商讨成功解决了该问题。
【2】心得体会:在本次程序设计中,让我们每位小组成员都不同程度的发现了自己在学习中的知识盲点,发现了自己的不足并及时通过讨论和查阅资料填补了自己的知识漏洞,并从中得到教训和经验。
cout<<"|-------8.菜单-------|"<<endl;
cout<<"|-------9.写入-------|"<<endl;
cout<<"|-------0.退出-------|"<<endl;
cout<<"|--------------------|"<<endl;
}
//添加函数
void add(company *stu,int &a){
cout<<"税收:"<<deduthetax<<endl;
cout<<"实发工资:"<<thp<<endl;
}
//打印菜单
void menu(){
cout<<"|--------------------|"<<endl;
cout<<"|-------1.添加-------|"<<endl;
cout<<"|-------2.修改-------|"<<endl;
int i;
for(i=0;i<a;i++){
stu[i].display();
}
}
//写入文件
void save(company *stu,int a){
int i=0;
fstream fs;
fs.open("f:\\stud.txt",ios_base::out);
fs<<"工号姓名基础工资岗位工资奖金应发工资公积金税收实发工资"<<endl;
【1】
2)数据结构设计。主要叙述采用了哪些全局变量、数组、结构体、文件等,以及它们在系统中的作用。
【1】采用了一个类数组st[100],用于存放员工的各项信息。
【2】采用职工Company类来代替结构体,作为一个存储个人信息的单元。
【3】采用了iostream头文件,string头文件,conio头文件,fstream头文件
for(i=0;i<a;i++){
for(j=i+1;j<a;j++){
if(stu[i].thp>stu[j].thp){
tmp=stu[i];
stu[i]=stu[j];
stu[j]=tmp;
}
}
}
cout<<"按实发工资排序成功"<<endl;
}
//输出函数
void output(company *stu,int a){
来实现密码隐藏,字符串的使用,文件的写入等功能;
3、详细设计及实现
主要叙述自己承担部分的那些模块的算法和数据结构,并给出程序调试和测试情况。画出主要模块的算法流程图,配合运行界面抓图和文字说明进行描述。
【1】在此程序中运用到的算法有:排序算法,字符串的逐个比较算法,文件写入算法,类数组中成员数据的插入和删除等操作。
int z=0;
char g[6],b[]={"123456"};//设置初始密码
cout<<"请输入系统的6位初始密码"<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<6;j++)
{
g[j]=getch();
cout<<"*";
}
if(cmp(g,b)==1)//调用密码比较函数
3)分工说明
徐顺利:功能三:信息查询功能四:信息统计显示输出
惠安德:功能二:对数据进行维护,包括数据录入、添加、修改、删除、
李建鹏:功能一:密码验证功能六:具有退出系统功能
刘邓:功能五:信息保存到文件功能七:对实发工资排序
2、总体设计
根据需求,阐述本软件系统的整体设计思路,确定软件系统的体系结构。
1)软件结构设计。采用自顶向下、逐步细化的方法,将整个软件系统进行逐层分解,并画出该软件系统的总体模块结构图,即进行模块划分,并对主要功能模块进行简要说明。
程序设计
课程设计报告
学号
姓名
成绩
徐顺利
惠安德
1606010314
李建鹏
1606010315
刘邓
计算16 -- 3班第2组
课程设计报告的基本内容
1、概述
1)设计的任务和需要的知识点。主要阐述所选题目的设计完成哪些任务?
【1】工资管理系统
需要的知识点:类的定义和使用,类外函数的定义和使用。比较排序,case的使用,写入文件的操作方法
4、结论
即说明自己设计的程序是否达到了设计题目的要求,功能是否完善,有何特点,有什么不足之处,有何建议和改善等
【1】设计程序已达到设计题目的所有要求,功能也已完善,在程序中也体现了c++的封装性思维。只是程序中编程规范问题还需多加注意,养成良好的变成习惯。
5、结束语
即在设计过程中遇到了哪些困难,如何解决的,通过本次课程设计得到了哪些收获,写出心得体会等。
int num;
string name;
int basicwage; //基础工资
int postwage; //岗位工资
int bonus; //奖金
int salary; //应发工资
int funds; //公积金
float deduthetax; //税收
float thp; //实发工资
company(){};//默认构造函数
cout<<"|-------3.删除-------|"<<endl;
cout<<"|-------4.统计-------|"<<endl;
cout<<"|-------5.查询-------|"<<endl;
cout<<"|-------6.排序-------|"<<endl;
cout<<"|-------7.输出-------|"<<endl;
int m;
m=mmyz();
if(m==3){
printf("..........................\n");
}
else{ //当密码正确时
int i;
int n; //功能序号
int a; //输入员工个数
company st[100];//定义类数组
company *stu=st;//让类指针指向数组首地址
2)具体完成的设计内容,主要叙述自己完成了哪几个功能模块,每个模块的规模,自己是否有创新点并添加了哪些其他有用的功能,如果有,进行简要说明。
【1】开发一个小型工资管理系统,工资信息包括:员工编号,姓名,基本工资,岗位工资,奖励,应发工资,公积金,扣税,实发工资等。
系统功能说明如下:
(1)密码验证功能:主要实现登陆密码的验证工作。
e=e+stu[i].thp;
}
cout<<"员工总工资为:" <<e<<endl;
}
//查找函数
void search(company *stu,int a){
int f,i;
cout<<"输入要查询的员工编号"<<endl;
cin>>f;
for(i=0;i<a;i++){
if(stu[i].num==f){
cin>>num;
cin>>name;
cin>>basicwage;
cin>>postwage;
cin>>bonus;
cin>>salary;
cin>>funds;
cin>>deduthetax;
cin>>thp;
}
//输出函数
void company::display(){
cout<<"工号:"<<num<<endl;
相关文档
最新文档