C语言做的工资管理系统

C语言做的工资管理系统
C语言做的工资管理系统

C语言课程设计报告-工资管理系统

一. 系统功能

1,输入记录模块主要完成将数据存入数组中的工作。记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入记录。

2,查询记录模块主要完成在数组中查找满足相关条件的记录。在查询记录模块中,用户可以按照职工编号或者姓名在数组中进行查找。

3,更新记录模块主要完成对记录的维护。在此工资管理系统中,实现对记录的修改、删除、插入、排序操作。

4,统计记录模块主要完成对公司员工的工资在各等级的人数统计。

5,输出记录模块主要完成两个任务:

第一,它实现对记录的存盘操作,将数组中各元素的存储的记录信息写入数据文件中。

第二,它实现将数组中存储的记录信息以表格的形式在屏幕上打印出来。

6,从文件读入功能模块主要是将数据存放在数组中。该模块从数据文件中读取所有记录,通过多次调用fread()文件函数,每次操作都是从文件中读取一条工资记录信息存入数组中的操作.

7,从键盘输入功能模块主要实现记录从键盘上输入Add函数实现。首先把文件中存在的记录全部显示出来,而后从键盘接收多次输入记录,如果职工编号重复则提醒重新输入,输入的记录暂保存到结构体数组中,输入0回到主菜单。

8,查询模块主要实现在结构体数组中按职工编号或姓名查找满足条件的记录的功能,通过Qur()函数来实现。提供两种方式查询:1为按照编号来查询,2按照姓名来查询;如找到查询内容则输出记录值,找不到则提示无此项记录。

9,更新记录模块主要是实现对记录的修改、删除、插入、排序操作。所有这些操作都在数组中完成。

修改记录操作需要对数组中目标元素的数据域中的值进行修改,分三步完成:首先显示所有的记录,然后输入要修改的职工编号,调用Locate()函数定位该职工的编号记录,第三步,若找到该记录,则修改职工编号之外的各字段的值。

10,删除记录操作完成删除制定的职工编号或者姓名的记录。也分三步完成:首先显示所有的记录,而后输入要删除的职工编号或者姓名,输入后调用Locate()函数定位该职工的记录,第三步,若找到该记录,则从该记录所在元素的后续元素起,依次向前移一个元素位置,元素个数减1。

11,插入记录操作完成在指定职工编号的随后位置插入新的记录。首先,它要求用户输入某个员工的职工编号,新的记录将插入在该记录之后;然后提示用户输入一条新的记录信息。

12,排序操作主要实现按照实发工资降序排序。分两步,首先输出所有的记录,而后按照冒泡排序法的思想进行排序,输出排序的结果。

13,统计记录模块的实现比较简单,首先输出所有的记录,而后根据实发工资进行判断,完成工资在各个等级的人数统计。

14,输出至文件模块是把保存在数组中的记录保存到文件中。在Save函数中实现,当把记录输入至文件时,调用fwrite( )函数,即将数组元素中各字段的值都写入文件中。

15,输出至屏幕模块是把保存在数组中的记录显示到屏幕上,调用Disp( )函数,以表格的形式显示所有的记录。

二. 总体设计

1、数据结构的设计

定义结构体emolyee,用于存放职工的基本信息和工资信息。

typedef struct empoyee

{

char num[10]; 保存职工编号

char name[15]; 保存职工姓名

int jbgz; 保存职工基本工资

int jj; 保存职工奖金

int kk; 保存职工扣款

int yfgz; 保存职工应发工资

int sk; 保存职工税款

int sfgz; 保存职工实发工资

}ZGGZ;

定义Saveflag 全局变量,用于存放结构体数组是否修改过。1为改过,2未改过

2、函数设计及功能描述

1,int Add(ZGGZ TP[],int n )

函数用于在数组tp中增加工资记录元素,并返回数组中的当前记录数i。若在刚进入工资管理系统时数据文件为空,则将从数组的头部开始增加记录;否则,将记录添加在数组的尾部

2,void BoFang(int s);

通过传入不同的声音文件编号来播放不同的XP的系统声音

网上找的模板

#include

#include

#pragma comment(lib, "Winmm.lib")

void main()

{

PlaySound(TEXT("C:\\WINDOWS\\Media\\WindowsXP启动.wav"),NULL,SND_FILENAME|SND_SYNC);

}

3, int Del(ZGGZ tp[],int n);

函数用于先在数组tp中找到满足条件的记录,然后删除该记录,并返回数组中的当前记录数

支持选择按照编号查找和按照姓名查找

先调用PrintHeader()显示表头,再用for循环调用PrintData来显示结构体数组中每个记录的信息

5,void FunTitle(int m);

功能是截获用户在主菜单所做的选择,并在进入功能前提示用户当前所选择的功能

6,void Huang(char str[],int max,int ciShu);

一个自创小程序,利用Dos命令cls刷屏可以让字符串在显示器上左右摇曳

通过输出空格的数量控制位置,通过cls刷屏命令来清除上次的显示,达到移动效果

7,int Insert(ZGGZ tp[],int n);

函数用于在数组tp中插入记录,并返回数组中的当前记录数, 支持选择按照编号查找

8,void JiSuan(ZGGZ *p);

计算实际工资,并通过指针直接修改数组的值

9,int Locate(ZGGZ tp[],int n,char findmess[],int nameornum);

函数用于定位数组中符合要求的元素,并返回该数组元素的下标值, 支持选择按照编号查找和按照姓名查找参数findmess[]保存要查找的内容,nameornum为1name,2num

10,void Menu();

显示主菜单

11,void Message(int n);

显示提示信息

12,void Modify(ZGGZ tp[],int n);

函数用于在数组tp中查找和修改记录元素, 支持选择按照编号查找和按照姓名查找

13,void NoFound(int n);

提示未找到信息

14,float NumberInput(int notice);

函数用于按需要输入float数值型数据

15,void PrintData(ZGGZ pp);

函数用于以表格显示的方式,打印输出单个数组元素中的记录信息

16,void PrintHeader();

函数用于在以表格形式显示,打印输出表头信息

17,void Qur(ZGGZ tp[],int no);

函数用于在数组tp中按职工编号或者姓名查找满足条件的记录,并显示记录, 支持选择按照编号查找和按照姓名查找

18,void Save(ZGGZ TP[],int n);

将修改好的结构体数组用wb的写入方式写到指定的磁盘文件中保存下来

19,void Sort(ZGGZ tp[],int n);

函数用于在数组tp中完成利用冒泡排序法实现数组的按实发工资字段的降序排序

20,void StringInput(char *t,int cho);

函数用于输入字符串,并进行字符串长度验证(长度小于设定值),cho为5工号或6姓名

cho==5工号为8个字节,cho==6姓名为12个字节

按照老师建议用了fflush(stdin); 来清除输入缓冲区

21,void TongJi(ZGGZ tp[],int n);

函数用于在数组tp中完成记录的统计工作,分等级统计职工工资的整体分布情况并以表格的形式显示出来22,void Wrong(int n);

函数用于显示错误语句

23,int YesOrNo();

函数用于获取用户输入的yes或者no的选择并相应返回1或0

24,void main()

主函数

三.函数分析

1. 函数的原型和参数说明

int Add(ZGGZ tp[],int i);//传入要增加记录的结构体数组的地址和总的记录的个数

void BoFang(int s);//传入要播放的声音对应的序号

int Del(ZGGZ tp[],int n);//传入要删除记录的结构体数组的地址和总的记录的个数

void Disp(ZGGZ tp[],int n);;//传入要显示记录的结构体数组的地址和总的记录的个数

void FunTitle(int m);//传入在主菜单所做的选择的序号

int Insert(ZGGZ tp[],int n); //传入要插入记录的结构体数组的地址和总的记录的个数

void JiSuan(ZGGZ *p); //计算实际工资,参数为要计算的结构体数组元素的地址值

int Locate(ZGGZ tp[],int n,char findmess[],int nameornum); //传入要删除记录的结构体数组的地址,要查找的字符串,选择的是名字还是编号

void Menu();//主函数

void Message(int n);//显示消息对应的编号

void Modify(ZGGZ tp[],int n); //传入要修改记录的结构体数组的地址和总的记录的个数

void NoFound(int n);//未找到提示信息的编号

float NumberInput(int notice);//对调用哪个数据输入的选择

void PrintData(ZGGZ pp);//传入要输出的结构体数组元素的地址

void PrintHeader();//打印表格的表头

void Qur(ZGGZ tp[],int no); //传入要查找的记录的结构体数组的地址和总的记录的个数

void Save(ZGGZ TP[],int n); //传入要保存的结构体数组的地址和总的记录的个数

void Sort(ZGGZ tp[],int n); //传入要排序的结构体数组的地址和总的记录的个数

void StringInput(char *t,int cho);//传入要输入的字符串数组保存的地址

void TongJi(ZGGZ tp[],int n); //传入要进行统计的结构体数组的地址和总的记录的个数

void Wrong(int n);//传入错误消息的对应编号

int YesOrNo();//返回Y或N的选择

2. 函数的流程图(选择若干函数算法,绘制函数流程图)

Qur函数流程图

Del函数流程图

Modify 函数流程图

Insert函数流程图

3. 程序清单

#include

#include

#include

#include

#include

#include

#pragma comment(lib, "Winmm.lib")

#define N 20

/*============================所有的函数声明分隔线====================================*/ typedef struct employee

{

char num[10]; //保存员工编号

char name[15]; //保存员工姓名

float jbgz; //保存员工基本工资

float jj; //保存员工奖金

float kk; //保存员工扣款

float yfgz; //保存员工应发工资

float sk; //保存员工税款

float sfgz; //保存员工实发工资

}ZGGZ;

/*================================函数分隔线====================================*/

int Add(ZGGZ tp[],int i);

void BoFang(int s);

int Del(ZGGZ tp[],int n);

void Disp(ZGGZ tp[],int n);

void FunTitle(int m);

void Huang(char str[],int max,int ciShu);

int Insert(ZGGZ tp[],int n);

void JiSuan(ZGGZ *p);

int Locate(ZGGZ tp[],int n,char findmess[],int nameornum);

void Menu();

void Message(int n);

void Modify(ZGGZ tp[],int n);

void NoFound(int n);

float NumberInput(int notice);

void PrintData(ZGGZ pp);

void PrintHeader();

void Qur(ZGGZ tp[],int no);

void Save(ZGGZ TP[],int n);

void Sort(ZGGZ tp[],int n);

void StringInput(char *t,int cho);

void TongJi(ZGGZ tp[],int n);

void Wrong(int n);

int YesOrNo();

int Saveflag=0;

void main()

{

printf("\t\t\t欢迎您进入员工工资管理系统\n");

printf("\t 员工工资管理系统正在启动中,请稍候……\n\n");

BoFang(27);

ZGGZ worker[N];

int len=0;

int n=0;

Message(1);

if((fp=fopen("C:\\record.dat","rb"))==NULL) //当record文件不存在则提示{

NoFound(1);

Message(2);

if(YesOrNo()==0) goto End; //选择不新建则退出程序

else if(YesOrNo()==1) goto Meum; //选择新建

}

else

{

for(int i=0;!feof(fp);i++)

{

if(fread(&worker[i],sizeof(struct employee),1,fp)==1)

len++;

}

fclose(fp);

printf("\n\t 目前所有的公司员工工资记录数为%d个!\n",len);

}

Meum:Message(0);

while(1)

{

system("cls"); //Dos命令—刷屏

Menu();

n=(int)NumberInput(1);

FunTitle(n);

switch (n)

{

case 1:len=Add(worker,len); break;

case 2:Qur(worker,len); break;

case 3:Modify(worker,len); break;

case 4:len=Insert(worker,len); break;

case 5:len=Del(worker,len); break;

case 6:Sort(worker,len); break;

case 7:TongJi(worker,len); break;

case 8:Disp(worker,len); break;

case 9:Save(worker,len); break;

case 0:{

if(Saveflag==1)

{

Message(3); //是否要保存修改

if(YesOrNo()==1) Save(worker,len);

}

Message(4); //是否要退出

if(YesOrNo()!=0) goto End;

} b reak;

default:Wrong(1); break;

Message(0);

}

End:printf("\t正在退出员工工资管理系统……\n");

BoFang(20);

printf("\t感谢您使用本员工工资管理软件!\n");

char *p="版权米有,盗版不究!#^_^";

Huang(p,58,3);

}

/*================================函数分隔线====================================*/ void JiSuan(ZGGZ *p) //计算实际工资

{

(*p).yfgz=(*p).jbgz+(*p).jj-(*p).kk; //通过指针直接修改数组的值

double sk=0,yfgz=(*p).yfgz;

if(yfgz>100000) {sk+=45.0/100*(yfgz-100000); yfgz=yfgz-100000; }

if(yfgz>80000) {sk+=40.0/100*(yfgz-80000); yfgz=yfgz-80000; }

if(yfgz>60000) {sk+=35.0/100*(yfgz-60000); yfgz=yfgz-60000; }

if(yfgz>40000) {sk+=30.0/100*(yfgz-40000); yfgz=yfgz-40000; }

if(yfgz>20000) {sk+=25.0/100*(yfgz-20000); yfgz=yfgz-20000; }

if(yfgz>5000) {sk+=20.0/100*(yfgz-5000); yfgz=yfgz-5000; }

if(yfgz>2000) {sk+=15.0/100*(yfgz-2000); yfgz=yfgz-2000; }

if(yfgz>500) {sk+=10.0/100*(yfgz-500); yfgz=yfgz-500; }

if(yfgz>0) {sk+=5.0/100*(yfgz); }

(*p).sk=(float)sk;

(*p).sfgz=(*p).yfgz-(*p).sk;

}

/*================================函数分隔线====================================*/ void Disp(ZGGZ tp[],int n)

{ //函数用于显示数组中存储的n条记录,内容为employee中的内容if(n==0) NoFound(2);

else

{

PrintHeader();

for(int i=0;i

PrintData(tp[i]);

}

}

/*================================函数分隔线====================================*/ float NumberInput(int notice) //函数用于输入数值型数据

{

float shuZhi=0;

printf("\n");

switch(notice)

{

case 1:printf("\t 请输入数字键0—9作个选择:"); break;

case 2:printf("\t 请输入数字键1或2作个选择:"); break;

case 3:printf("\t 请输入员工基本工资的金额:"); break;

case 4:printf("\t 请输入员工奖金的金额:\t"); break;

}

printf("\t");

fflush(stdin);

scanf("%f",&shuZhi);

return shuZhi;

}

/*================================函数分隔线====================================*/

void StringInput(char *t,int cho) //cho为5工号或6姓名

{ //函数用于输入字符串,并进行字符串长度验证(长度小于lens)int l=0;

int n=0;

do

{

if(n>0) Wrong(2);

n++;

Message(cho);

printf("\t");

fflush(stdin); //清除输入缓冲区

gets(t);

l=strlen(t);

}

while(l>=(cho==5?8:12)); //cho==5工号为8个字节,cho==6姓名为12个字节

}

/*================================函数分隔线====================================*/

int Locate(ZGGZ tp[],int n,char findmess[],int nameornum) //函数用于定位数组中符合要求的元素,并返回该数组元素的下标值

{

int i,m=0;

int count[N]={0};

char num[10];

switch(nameornum) //参数findmess[]保存要查找的内容,nameornum为1name,2num

{

case 1:

{

for(i=0;i

if(strcmp(tp[i].name,findmess)==0)

{

count[m]=i;

m++;

}

if(m>1)

{

printf("\t计算机已经找到%d项符合条件的职工记录!\n",m);

PrintHeader();

for(int a=0;a

PrintData(tp[count[a]]);

StringInput(num,5);

i=Locate(tp,n,num,2);

}

if(i==n) i=-1;

}

break;

case 2:

{

for(i=0;i

if(strcmp(tp[i].num,findmess)==0) g oto Quit;

if(i==n) i=-1;

}break;

}

Quit:return i;

}

/*================================函数分隔线====================================*/

int Add(ZGGZ tp[],int i) //函数用于在数组tp中增加工资记录元素并返回数组中的当前记录数,n 为记录数

{

ZGGZ tmp;

if(i>0) Disp(tp,i);

Message(17);

int flag=0;

while(1)

{

while(1)

{

Message(12);

StringInput(tmp.num,5);

flag=0;

if(strcmp(tmp.num,"0")==0) goto Quit;

for(int t=0;t

{

if(strcmp(tp[t].num,tmp.num)==0)

{

flag=1;

break;

}

}

if(flag==1)

{

Wrong(3);

if(YesOrNo()!=1) goto Quit;

}

else break;

}

strcpy(tp[i].num,tmp.num);

tp[i].jbgz=NumberInput(3);

tp[i].jj=NumberInput(4);

tp[i].kk=NumberInput(5);

JiSuan(&tp[i]);

Message(7);

Saveflag=1;

i++;

}

Quit:return i;

}

/*================================函数分隔线====================================*/ void Save(ZGGZ TP[],int n)

{

FILE *fp;

fp=fopen("C:\\record.dat","wb");

for(int i=0;i

fwrite(&TP[i],sizeof(struct employee),1,fp);

fclose(fp);

Message(21);

BoFang(8);

}

/*================================函数分隔线====================================*/ int YesOrNo()

{

int n=2;

printf("\t");

char cho;

fflush(stdin);

cho=getchar();

if(cho=='y'||cho=='Y') n=1;

else if(cho=='n'||cho=='N') n=0;

printf("\n");

return n;

}

/*================================函数分隔线====================================*/ int Del(ZGGZ tp[],int n) //函数用于先在数组tp中找到满足条件的记录,然后删除该记录

{

Message(12); //输入0可返回主菜单

char str[20];

int cho;

if(n==0)

{ NoFound(3); goto End; }

Message(8);

int i; //用于返回下标

cho=(int)NumberInput(2); //做个选择

switch(cho)

{

i=Locate(tp,n,str,2);

if(i==-1) { NoFound(2); goto End; }

else

{

Message(11); //提示已经找到查找的员工的信息

PrintHeader();

PrintData(tp[i]);

Message(13); //提示是否确定要删除员工的工资信息

if(YesOrNo()==1)

{

BoFang(23);

strcpy(tp[i].num,tp[n-1].num); //用最后一个记录覆盖要删除的记录

tp[n-1].num[0]='\0';

strcpy(tp[i].name,tp[n-1].name);

tp[n-1].name[0]='\0';

tp[i].jbgz=tp[n-1].jbgz;

tp[n-1].jbgz=0.0;

tp[i].jj=tp[n-1].jj;

tp[n-1].jj=0.0;

tp[i].kk=tp[n-1].kk;

tp[n-1].kk=0.0;

tp[i].yfgz=tp[n-1].yfgz;

tp[n-1].yfgz=0.0;

tp[i].sk=tp[n-1].sk;

tp[n-1].sk=0.0;

tp[i].sfgz=tp[n-1].sfgz;

tp[n-1].sfgz=0.0;

Message(14);

Saveflag=1;

n--;

Disp(tp,n);

}

}break;

case 2:StringInput(str,6);

i=Locate(tp,n,str,1);

if(i==-1) { NoFound(2); goto End; }

else

{

Message(11); //提示已经找到查找的员工的信息

PrintHeader();

PrintData(tp[i]);

Message(13); //提示是否确定要删除员工的工资信息

if(YesOrNo()==1)

{

BoFang(23);

strcpy(tp[i].num,tp[n-1].num); //用最后一个记录覆盖要删除的记录

tp[n-1].num[0]='\0';

tp[n-1].name[0]='\0';

tp[i].jbgz=tp[n-1].jbgz;

tp[n-1].jbgz=0.0;

tp[i].jj=tp[n-1].jj;

tp[n-1].jj=0.0;

tp[i].kk=tp[n-1].kk;

tp[n-1].kk=0.0;

tp[i].yfgz=tp[n-1].yfgz;

tp[n-1].yfgz=0.0;

tp[i].sk=tp[n-1].sk;

tp[n-1].sk=0.0;

tp[i].sfgz=tp[n-1].sfgz;

tp[n-1].sfgz=0.0;

Message(14);

Saveflag=1;

n--;

Disp(tp,n);

}

}break;

}

End:return(n);

}

/*================================函数分隔线====================================*/

void Qur(ZGGZ tp[],int no) //函数用于在数组tp中按职工编号或者姓名查找满足条件的记录,并显示记录

{

char str[20];

int cho;

if(no==0)

{ NoFound(3); goto End; }

Message(8);

int i;

cho=(int)NumberInput(2);

switch(cho)

{

case 1:Message(10); //按员工的工号查询

StringInput(str,5);

i=Locate(tp,no,str,2);

if(i==-1) { NoFound(4); goto End; }

else

{

Message(11); //提示已经找到查找的员工的信息

PrintHeader();

PrintData(tp[i]);

}break;

case 2:Message(9); //按员工的名字查询

StringInput(str,6);

if(i==-1) { NoFound(4); goto End; }

else

{

Message(11);

PrintHeader();

PrintData(tp[i]);

}break;

}

End:;

}

/*================================函数分隔线====================================*/ void Modify(ZGGZ tp[],int n) //函数用于在数组tp中修改记录元素

{

ZGGZ tmp;

char str[20];

int i=0,cho; //用于返回下标

if(n==0)

{ NoFound(3); goto End; }

Disp(tp,n); //调用Disp函数显示所有的记录

Message(8);

cho=(int)NumberInput(2); //做个选择

switch(cho)

{

case 1:

{

Message(10);

StringInput(str,5);

i=Locate(tp,n,str,2);

if(i==-1)

{

NoFound(3);

goto End;

}

else

{

Message(11);

PrintHeader();

PrintData(tp[i]);

tmp.jbgz=NumberInput(3);

tmp.jj=NumberInput(4);

tmp.kk=NumberInput(5);

Message(3);

if(YesOrNo()==1)

{

tp[i].jbgz=tmp.jbgz;

tp[i].jj=tmp.jj;

tp[i].kk=tmp.kk;

c语言工资管理系统

沈阳航空工业学院 课程设计任务书 一、课程设计题目:工资管理系统 二、课程设计工作自 三、课程设计内容 用C语言编写软件完成以下任务: 1输入工资数(职工数据要有职工号.姓名.所属部门.工龄和工资)保存在paid.dat文件中. 2对现有的职工数据根据所属部门排序,并显示出企业的平均工资. 3 职工涨工资(根据工龄按比例进行工资调整). 4 查询职工的相关数据. 四、课程设计要求: 程序质量: 1贯彻结构化程序设计思想. 2用户界面友好,功能明确,操作方便.可以加以其他功能和修饰. 3用户界面的菜单中包含"职工信息录入","排序及显示"."

工资调整","信息查询"."退出"5项.所有职工数据的改变都 应该在paid.dat文件中体现出来. 4代码应适当缩进,并给出必要的注释,以增强程序的可读 行. 课程设计说明书: 课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下: 1封面 2课程设计任务书 3目录 4需求分析(分析题目的要求) 5程序流程图(总体流程图和主要功能模块流程图)6核心技术的实现说明及相应程序段 7个人总结 8参考资料 9源程序及适当的注释 指导教师:_____ 学生签名:_____

目录 一、需求分析 (1) 二、程序流程图 (2) 三、核心技术的实现说明及相应程序段 (5) 四、个人总结 (16) 五、参考文献 (17) 六、源程序 (18)

一、需求分析 经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:输入职工数据函数(shuru),职工排序函数(sort_part),增加职工工资函数(add_paid),职工信息的查询函数(search_worker),以及主函数main(). 1、输入职工数据函数实现的功能是按照工号对职工的数据输入并保存在paid.dat; 2、职工排序函数按照题目的具体要求实现的是按职工部门排序并算出平均工资。 3、增加职工工资函数允许职工按照根据工龄按比例进行工资调整。 4、职工信息的查询函数输出paid.dat文件中的职工的相关数据。 除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。 每一个职工记录都包含职工号.姓名.所属部门.工龄

C++高校工资管理系统

C++高校工资管理系统 辽宁工业大学 《C++语言程序设计》课程设计(论文) 题目: 高校工资管理系统 院(系): 软件学院 专业班级: 软件工程102班 学号: 101301052 学生姓名: 赵楠 指导教师: 翟宝峰 教师职称: 副教授 起止时间:2010.12.20-2010.12.31 课程设计(论文)任务及评语院(系):软件学院教研室:软件教研室学号101301052 学生姓名赵楠专业班级软件工程 102班 课程设计 (论文)高校工资管理系统题目 (1).掌握面向对象程序设计语言C++的基本语法 (2).掌握C++面向对象设计的思想 (3).掌握VC++6.0与DEV C++ 开发工具的使用 (4). 运用标准C++规范设计应用程序 课程设 设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完计) 成上述内容,规范完整地撰写出设计报告。论

文 ) 任 务 指导 教 师评语 及 成绩成绩: 指导教师签字: 年月日 辽宁工业大学课程设计说明书(论文) 目录 第1章课程设计目的与要 求 (1) 1.1 课程设计目 的 (1) 1.2 课程设计的实验环 境 (1) 1.3 课程设计的预备知 识 (1) 1.4 课程设计要 求 ........................................................ 1 第2章课程设计内容 (2)

2.1 C++语言程序设计------《高校工资管理系统》问题分 析。 (2) 2.1.1 功能分析 ...................................................... 2 2.1.2 算法设计及程序设计中技术重点 .................................. 3 2.2 程序中涉及的类的UML类图和主要函数流程图或框 图。 (7) 2.3 程序源代 码 .......................................................... 9 第3章 课程设计总结 (17) 19 参考文 献 ................................................................... 辽宁工业大学课程设计说明书(论文) 第1章课程设计目的与要求 1.1 课程设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、 数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。 通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程《C++语言教程》的基本理论知识,理 论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学 生素质的最终目的。

C++工资管理系统源代码

C++工资管理系统源代 码 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】

#define TITLE "\n 月份工号姓名应发工资各种折扣实发工资\n" #define DATA " %2d %4ld %-10s % % %\n",p1->month,p1- >num,p1->name,p1->should_pay,p1->rebate,p1->actual_pay typedef struct pay { long num; short month; char name[20]; float gw,jn,zw,zl,jt,yj; float should_pay; float fz,gj,sd,others; float rebate; float actual_pay; struct pay *next; }PAY;

FILE *fp; PAY *p1=NULL,*p2=NULL,*head=NULL; void menu(); PAY *input(); void output(); void save(PAY *head); PAY *open(); PAY *insert(); void search(); PAY *del(); PAY *revise(); /*主程序模块*/ void main(void) { short sel; do

{ menu(); scanf("%d",&sel); switch(sel) { case 1: head=input(); 建工资档案\n"); printf("\t\t\t\t2.新增工资信息\n"); printf("\t\t\t\t3.修改工资信息\n"); printf("\t\t\t\t4.删除工资信息\n"); printf("\t\t\t\t5.查找工资信息\n"); printf("\t\t\t\t6.分类信息列表\n"); printf("\t\t\t\t7.保存信息\n"); printf("\t\t\t\t0.退出\n"); printf("\n\n\n\n\n\n\n\n"); }

员工工资管理系统c语言编程

#include #include #include #include #define null 0 typedef struct Info1 { char num[10]; char name[10]; char depar[10]; char yfsalary[10]; char aband[10]; char tax[10]; char sfsalary[10]; struct Info1 *next; }Info2; typedef struct Info1 *Info; Info head; void display(); void find(); void modify(); void add(); void del(); void list(); void listOne(Info s); Info isExists(char *num); void init(); void init() { head=(Info)malloc(sizeof(Info2)); head->next=null; } void main() { init(); while(1) {

char c; display(); scanf("%c",&c); switch(c) { case '1':find();break; case '2':add();break; case '3':modify();break; case '4':del();break; case '5':list();break; case '6':printf("\t\t...退出系统!\n");return; default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar(); } } } void display() { printf("\n\t** 欢迎使用员工信息管理系统 **\n\n"); printf("\t请选(1-7):\n"); printf("\t============================================\n"); printf("\t\t1.查询员工信息\n"); printf("\t\t2.录入员工信息\n"); printf("\t\t3.修改员工信息\n"); printf("\t\t4.删除员工信息\n"); printf("\t\t6.显示所有员工信息\n"); printf("\t\t7.退出系统\n"); printf("\t============================================\n"); printf("\t您的选择是: "); } void listOne(Info p) { printf("\n该员工信息记录如下: "); printf("\n==========================================================\n\n"); printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资"); printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yf salary,p->aband,p->tax,p->sfsalary); } Info isExists(char *num)

c课程设计职工工资管理系统

题目 c++面向对象程序设计课程设计 清单:5小题+职工工资管理系统(类、链表实现) 姓名: 学号: 专业:计算机科学与技术 学院: 指导教师: 2018年6月17日 Part 1: 小程序练习 1 类的继承 定义一个point类,包含私有数据成员x,y,成员函数包括无参构造函数,带参构造函数,set和get属性函数。定义circle类,从point类公有派生,增加数据成员半径r,成员函数包括无参构造函数,带参构造函数,计算面积函数getarea。在main函数中定义一个circle的对象,并计算其面积。 /* 1.定义Point类,设置其成员函数(构造函数,拷贝构造函数和析构函数)以及setx() sety() getx() gety() 四个属性函数。 2.定义circle类,设置其成员函数(构造函数,拷贝构造函数和析构函数)以及获取半径r的函数get_r() 计算面积并获取面积的函数getarea()。 3.在主函数中定义类的对象c1并初始化r=2。再调用getarea()函数输出面积 */ #include using namespace std; class point 义counter类,私有成员数据weight,设置其成员函数(构造函数和析构函数) 2.重载自加自减运算符和<<、>>运算符。 3.在主函数中实现运算符重载。 4.友元函数需要声明。 */ #include #include using namespace std;class counter; istream& operator>>(istream& is,counter& a); ostream& operator<<(ostream& os,counter& a); class counter rintinfo(); printf("\n"); cout << "temp中数据构成的圆面积为 " << s->area() << endl; cout << "体积为 " << (*s).volume() << endl; system("pause"); return 0; } 运行结果: 4 模板 编写一个使用类模板对数组进行查找、求元素和、重载下标[]运算符,以及输出的程序。 1)设计一个类模板:形式1为templateclass Array;形似2为 templateclass Array;用于对T类型的数组进行构造和输出;2)产生模板类Array和Array进行测试; 3)产生模板类Array和Array进行测试。 定义student类,私有数据成员字符数组name[20]; 2. 定义运算符<<,>>重载; 3. 在住函数中定义student 类数组s[N];并以输出和二进制的方式打开文件

C教师工资管理系统.doc

课程设计报告 学院:天津理工大学华信软件学院专业名称:软件工程 课程设计科目C语言课程设计所在班级: 学生学号: 学生姓名: 指导教师: 完成时间:

课程设计成绩评定表

目录 设计任务与目标 (4) 方案设计与论证 (6) 程序框图或流程图,程序清单与调用关系 (9) 全部源程序清单 (11) 程序运行结果测试与分析 28结论与心得参考资料 31

1 教师工资管理系统 一、设计任务与目标 任务: 教师工资管理系统 每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。 A、教师信息处理 (1)输入教师信息 (2) 插入(修改)教师信息: (3) 删除教师信息: (4) 浏览教师信息: 提示:具体功能及操作参考题1。 B、教师数据处理: (1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。 (2) 教师实发工资、应发工资、合计扣款计算。 提示:计算规则如题目。 (3) 教师数据管理 提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件 (4) 教师数据查询: 提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。1

(5) 教师综合信息输出 提示:输出教师信息到屏幕。 案例论证: 1.完成此设计的目的意义 此题目能让我综合的考虑设计一个信息处理系统,要求设计出主函数, 确定调用函数,成员的函数设计。 2.目标 教师数据处理: (1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。 (2) 教师实发工资、应发工资、合计扣款计算。 计算规则如题目。 (3) 教师数据管理 输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件 (4) 教师数据查询: 输入教师号或其他信息,即读出所有数据信息,并显示出来。 (5) 教师综合信息输出 输出教师信息到屏幕

高校工资管理系统1

《软件开发方法》作业 高校工资管理系统 学院:信息工程学院 班级:计科0601 学号:061106128 姓名:王银玉

目录 1、背景材料-----------------------------------------------------3 1.1、编写目的----------------------------------------------3 1.2、背景--------------------------------------------------3 2、问题描述-----------------------------------------------------3 3、功能定义-----------------------------------------------------4 3.1、功能描述----------------------------------------------4 3.2、系统目标----------------------------------------------4 3.3、对软件功能的结论--------------------------------------4 4、测试环境-----------------------------------------------------5 5、用例图-------------------------------------------------------5 6、类图---------------------------------------------------------7 7、合作图-------------------------------------------------------8 8、时序图-------------------------------------------------------9 9、具体实现-----------------------------------------------------10 9.1、功能分析------------------------------------------------10 9.2、流程分析-------------------------------------------------10 9.3、常量定义-------------------------------------------------11 9.4、源代码--------------------------------------------------11

C语言课设职工工资管理系统

C语言课设职工工资管 理系统 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

一引言 C语言是CombinedLanguage(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;在次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数、结构体和文件等,然后确定处理过程。 本课题中主要应用了C语言中的数组、结构体、文件等关键技术。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型;结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构,在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型,结构体只能描述一个对象的状态,不能描述一个对象的行为。文件是一种组织外部存储介质上的数据的数据类型。它具有两个特征:一是对一个数据集合可以用一个名字命名;二是保存在外部存储介质上,可以长期保存。 通过此次课设可以锻炼学生理论联系实际能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解,并达到如下目的:1.熟悉C语言程序的编辑、编译链接和运行的过程。2.熟练运用if语句和switch语句以及嵌套应用。3.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。4.掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。5.掌握结构体类型变量、数组的定义和使用。6.掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。

C++课程设计高校职工工资管理系统

课程设计报告 课程名称面向对象程序设计 课题名称高校工资管理系统 专业通信工程 班级1302 学号201303020222 姓名王树材 指导教师乔汇东胡瑛 2015年1月3日

湖南工程学院 课程设计任务书 课程名称面向对象程序设计 课题高校工资管理系统 专业班级通信1302 学生姓名王树材 学号201303020222 指导老师乔汇东、胡瑛、黄哲 审批 任务书下达日期2014年12月26日任务完成日期2015 年 1 月3日

一、设计内容与设计要求 1.课程设计目的: 面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。 2.课题题目 ⑴公司考勤管理系统 ⑵高校学籍管理系统 ⑶高校工资管理系统 ⑷高校人事管理系统 ⑸文件加密管理系统 3.设计要求: ⑴设计课题题目:第5个课题是扩展课题,有能力完成的同学可以选择。 其余每位同学根据自己学号除以4所得的余数加一选择相应题号的课题。换题 者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系 统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完成 系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块 图)。③完成系统详细设计:包括数据库需求分析;类层次图;界面设计与各 功能模块实现。④系统调试:调试出现的主要问题,编译语法错误及修改,重 点是运行逻辑问题修改和调整。⑤使用说明书及编程体会:说明如何使用你编 写的程序,详细列出每一步的操作步骤。⑥关键源程序(带注释) ⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。 ⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排

C员工工资管理系统源代码

C员工工资管理系统源代码

#include #include #include #include #include #include using namespace std; #define NULL 0 #define LEN sizeof(struct student) int const N=20; void Menu(); void Pass(); int n=0; //定义一个全局变量统计职工人数//——--------->定义一个职工信息的结构体 struct student { char name[N]; //用来存放姓名 char sex[N]; //用来存放性别 long id; //用来存放编号 float paid[3]; //用来存放工资 int total; //用来存放总工资 struct student *next;

}; //-------------->职工类 class Information { public: Information() ; //构造函数. ~Information() ; //析构函数. student *creat(); //建立链表 void output(student *head); //显示职工信息 int count(student *head); //定义函数count()统计职工总数student *insert(student*head); //指针函数*insert()用来添加职工信息. student *cancel(student *head,long id); //指针函数*cancel()用来删除职工信息. student *find(student *head,long id); //指针函数*find()用来查找职工信息. student *modify(student *head,long id); //指针函数*modife()用来修改职工的信息. void paixu(student *head); //定义paixu()函数将职工的总额从大到小排列并输出 void average(student *head); //定义职工工资平均值的函数void save(student *head); //保存文件信息

员工工资管理系统c语言编程

员工工资管理系统c语言 编程 The latest revision on November 22, 2020

#include<> #include<> #include<> #include<> #define null 0 typedef struct Info1 { char num[10]; char name[10]; char depar[10]; char yfsalary[10]; char aband[10]; char tax[10]; char sfsalary[10]; struct Info1 *next; }Info2; typedef struct Info1 *Info; Info head; void display(); void find(); void modify(); void add(); void del(); void list(); void listOne(Info s); Info isExists(char *num); void init(); void init() { head=(Info)malloc(sizeof(Info2)); head->next=null; } void main() { init(); while(1) { char c;

display(); scanf("%c",&c); switch(c) { case '1':find();break; case '2':add();break; case '3':modify();break; case '4':del();break; case '5':list();break; case '6':printf("\t\t...退出系统!\n");return; default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar(); } } } void display() { printf("\n\t** 欢迎使用员工信息管理系统 **\n\n"); printf("\t请选(1-7):\n"); printf("\t============================================\n"); printf("\t\t1.查询员工信息\n"); printf("\t\t2.录入员工信息\n"); printf("\t\t3.修改员工信息\n"); printf("\t\t4.删除员工信息\n"); printf("\t\t6.显示所有员工信息\n"); printf("\t\t7.退出系统\n"); printf("\t============================================\n"); printf("\t您的选择是: "); } void listOne(Info p) { printf("\n该员工信息记录如下: "); printf("\n===================================================== =====\n\n"); printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资"); printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax,p->sfsalary); } Info isExists(char *num)

高校工资管理系统设计源代码

#include #include #include using namespace std; class person //基类 { public: bool mark; //存在标记 char name[20]; //职工姓名 int num; //职工编号 double basePay; //基本工资 person(bool m,char nm[],int n,double b):mark(m),num(n),basePay(b){strcpy(name,nm);} }; class teacher:virtual public person //教师类 { public: double classPay; //课时费 teacher(bool m,char nm[],int n,double b,double c):person(m,nm,n,b),classPay(c){} void show() { cout<

教师工资管理系统C实现

教师工资管理系统 一.选题背景 二.需求分析 一、设计选题与目标 1.选题要求: 教师工资管理系统 每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。 A、教师信息处理 (1)输入教师信息 (2) 插入(修改)教师信息: (3) 删除教师信息: (4) 浏览教师信息: 提示:具体功能及操作参考题1。 B、教师数据处理: (1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。 (2) 教师实发工资、应发工资、合计扣款计算。 提示:计算规则如题目。 (3) 教师数据管理 提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信

息写入文件 (4) 教师数据查询: 提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。 (5) 教师综合信息输出 提示:输出教师信息到屏幕。 2.目标 教师数据处理: (1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。 (2) 教师实发工资、应发工资、合计扣款计算。 计算规则如题目。 (3) 教师数据管理 输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件 (4) 教师数据查询: 输入教师号或其他信息,即读出所有数据信息,并显示出来。 (5) 教师综合信息输出 输出教师信息到屏幕 三.总体设计 利用六个模块分别实现教师信息的输入,修改,删除,查询,保存以及信息文件的读入功能。并使用不同的函数实现不同的功能。使用链表存储及处理数据。 程序流程图如下:

C语言课程设计教师工资管理系统职工工资管理系统

C语言课程设计教师工资管理系统职工工资管 理系统 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

课程设计教师工资管理系统 运行平台:(其他平台未经测试,不一定保证有效) 制作者:弓箭中南大学信息科学与工程学院 源代码如下: #include <> #include <> #include <> #include <> #define LEN sizeof(struct teacher) struct teacher { int num; char name[20]; char sex[20]; char workplace[50]; char address[50]; long phone; double de_salary; double de_jintie; double de_shenghuobutie; double yingfa_salary; double cost_phone; double cost_water_elec; double cost_rent; double cost_tax; double cost_weisheng; double cost_gongjijin; double cost_all; double shifa_salary; struct teacher *next; }; /***********************************读取函数************************************/ struct teacher *load() { struct teacher *p1,*p2,*head; FILE *fp;

c语言工资管理系统课程设计

程序设计课程设计报告 工资管理系统 院系:地质工程系 班级:地质工程班 组员:陈欣永 胡世俊 李积荣赵海俊 马小成

目录 一、设计目的 (1) 二、设计内容与要求 (2) 1.设计内容 (3) 2.设计要求 (4) 三、总流程图设计 (5) 四、程序详细功能设计 (6) 五、程序调试 (7) 六、设计小结 (8) 七、参考文献 (9) 附录 (10) 1

一、设计目的 在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。 进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。 《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。 二、设计内容与要求

1.设计内容 主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。 2.设计要求 在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。 三、总体流程图设计 3

四、程序详细功能设计 1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。 2、应用文件保存工资管理数据。 3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。

c语言教师工资管理系统

C语言程序设计 课程设计报告 设计题目:教师工资管理系统 班级 学号 姓名 指导教师 起止时间 2010-10-26 至 2010-12-26

设计任务 该系统包含教师的基本信息,供读者查询。建立一个文件,包括老师的信息,包括:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金等。读者可以输入教师信息、插入教师信息、删除教师信息、浏览教师信息、查询教师信息和修改教师信息。同时读者可以将之前录入的教师信息保存下来,然后关闭程序后,再次打开后只需加载教师信息就可以了。更加方便以后程序。 评语(教师填写)

目录 设计任务 (2) 评语(教师填写) (2) 1.课程设计目的 (4) 2.课程设计题目 (5) 3.功能描述 (6) 4.数据结构设计 (8) 5.功能模块设计 (10) 5.1主控模块设计 (10) 5.2 输入记录模块 (11) 5.3 插入记录模块 (11) 5.4 删除记录模块 (12) 6.函数功能描述 (13) 6.1 保存数据函数save() (13) 6.2 查询数据函数query() (13) 6.1修改数据函数edit() (14) 6.1 加载数据函数load() (15) 7.运行结果 (15) 7.1系统主界面 (15) 7.2 输入教师信息界面 (16) 7.3 输出教师信息界面 (18) 7.4 插入教师信息界面 (19) 7.5 保存和加载教师信息界面 (20) 8.个人设计小结与心得体会 (21) 参考文献 (22)

1.课程设计目的 本程序旨在训练基本编程能力,了解管理信息系统的开发流程,熟悉C 语言的文件和结构数组的各种基本操作。本程序涉及结构体、数组、指针、文件等方面的知识。通过本程序的训练,使读者能对C语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现教师工资管理系统,为进一步开发出高质量信息管理系统打下坚实的基础。 (1)巩固和加强《C语言程序设计》课程的理论知识。 (2)掌握C语言的基本概念、语法、语义和数据类型的使用特点。 (3)掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。 (4)进一步理解和运用结构化程设计的思想和方法;学会利用流程图表示算法。 (5)掌握调试程序的基本方法及上机操作方法。 (6)掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为毕业论文时的参考资料。 (7)通过查阅手册和文献资料,培养自己独立分析问题和解决问题的能力。为自己做毕业设计打好基础。 (8)初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。通过激发学习兴趣,调动自己主动学习的积极性,并根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。 (9)培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 (10)培养自己良好的程序设计风格。在实际编程中,为了提高编程质

c语言课程设计报告职工工资管理系统

c 语言课程设计报告职工工资管理系统 1 课程设计报告 课程设计报告 题目:职工工资管理系统 设计者: 专业班级: 学号: 指导教师: 所属院系: 2011 年 6 月29 日 一.设计需求说明 一、职工工资管理系统功能设计要求 1.输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位 津贴、医疗保险、公积金的数据作为一个记录。?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 2.显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的 各项工资和平均工资。

3.修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记 录内容进行显示。 4.查找记录: 可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。 5. 删除记录:可删除数据文件中的任一记录。 6.恢复记录:能恢复被删除的任一记录。 7.统计:(A)计算各项工资平均工资及总工资,(B)?统计符合指定条件(如职 工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元)以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(?包括各项总的平均工资)。 8.保存数据文件功能。 9.打开数据文件功能。 经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以 逐 个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。程序运行结果如下表所示(记录个数至少8 个)。 二.模块设计分析系统功能模块图: 工作程序分析 ①输入:输入职工工资资料

通过结构体的数组来进行操作,先头定义数组em[] ,先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。同时将数据储存在 ckerk_list 文件中并自动保存至磁盘。 注:如首次使用,尚未输入数据,请先输入数据。输入的数据将自动保 存。 再次选择输入功能时原数据将被覆盖。 ②保存:将输入的资料存入磁盘 读取文件clerk_list ,若文件不存在,打印“打开失败并退出。若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。 ③读取:读取磁盘中的资料 打开文件clerk_list ,若文件不存在,打印“打开失败”并退出。若存在,读取文件中的数据,并返回职工人数。 ④显示:显示职工工资资料 先通过读取函数的返回值确定职工人数m,再通过循环将员工工资资料逐个打印,当循环次数达到m 时退出循环。其中总工资由程序计算,总工资=基本工资+职务工资+津贴-医疗保险-公积金 ⑤删除:删除某员工的资料 打印员工资料并提示输入要删除职工的姓名,输入后若该职工不存在则打印“查无此人”;若存在,则显示该职工资料并询问是否确定删除。若确定,则删除。删除时,通过对比输入的姓名与资料中的姓名做对比从而确定要删除

相关文档
最新文档