工资管理系统接口设计(工资管理系统详细设计)

网友投稿 409 2023-01-04


本篇文章给大家谈谈工资管理系统接口设计,以及工资管理系统详细设计对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享工资管理系统接口设计的知识,其中也会对工资管理系统详细设计进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用C语言设计职工工资管理系统

#include<iostream.h
#include<stdlib.h
#include<string.h
#include<iomanip.h
using namespace std;
#define OK 1
#define ERROR 0
typedef struct LNode{
char num[20];
char name[20];
double basic;
double reward;
double total;
struct LNode *next;
}LNode,*LinkList; int initlist(LinkList L)
{ L=(LinkList)malloc(sizeof(LNode));
L-next=NULL;
return OK;
} int DisplayInfo(LinkList L)
{
LinkList p=L-next;
if(!p)
{
cout<<"当前无记录!"<<endl;
return ERROR;
}
cout<<"编号"<<setw(12)<<"姓名"<<setw(12)<<"基本工资"<<setw(9)<<"奖金"<<setw(12)<<"工资总额"<<endl; while(p!=NULL)
{
cout<<p-num<<setw(9)<<p-name<<setw(8)<<p-basic<<setw(12)<<p-reward<<setw(12)<<p-total<<endl;
p=p-next;
}
cout<<'\n'<<'\n';
return OK;
} int InputInfo(LinkList L)
{
LinkList p; p=(LinkList)malloc(sizeof(LNode));
cout<<"请输入职工工资信息:(格式如:2001001 james 1980 600 )"<<endl;
cinp-num;
cinp-name;
cinp-basic;
cinp-reward;
p-total=p-basic+p-reward;
p-next=L-next;
L-next=p; return OK;
}int DeleteByCode(LinkList L,char key[])
{
LinkList p=L,q;
while(p-next!=NULL)
{
if(strcmp(p-next-num,key)==0)
{
q=p-next;
p-next=q-next;
free(q);
return OK;
}
p=p-next;
}
return ERROR;} int Search(LinkList L,int tag)
{
LinkList p=L-next;
if(tag==1)
{
char num[20];
cout<<"请输入要查找职工编号号:"<<endl;
cinnum;
while(p)
{
if(strcmp(p-num,num)==0)
{
cout<<"编号"<<setw(12)<<"姓名"<<setw(12)<<"基本工资"<<setw(9)<<"奖金"<<setw(12)<<"工资总额"<<endl;
cout<<p-num<<setw(9)<<p-name<<setw(8)<<p-basic<<setw(12)<<p-reward<<setw(12)<<p-total<<endl;
cout<<'\n';
return OK;
}
p=p-next;
}
}
else if(tag==2)
{
char name[20];
cout<<"请输入要查找的姓名:"<<endl;
cinname;
while(p)
{
if(strcmp(p-name,name)==0)
{
cout<<"编号"<<setw(12)<<"姓名"<<setw(12)<<"基本工资"<<setw(9)<<"奖金"<<setw(12)<<"工资总额"<<endl;
cout<<p-num<<setw(9)<<p-name<<setw(8)<<p-basic<<setw(12)<<p-reward<<setw(12)<<p-total<<endl;
cout<<'\n';
return OK;
}
p=p-next;
}
}
else
cout<<"输入错误!"<<endl;
return ERROR;}
int Sort(LinkList L)
{
LinkList p;

LinkList q,min,w=L;
for(p=L-next;p-next;p=p-next)
{
min=p;
for(q=p-next;q;q=q-next) if(min-totalq-total)
min=q; if(min!=p)
{ strcpy(w-num,p-num);
strcpy(w-name,p-name);
w-basic=p-basic;
w-reward=p-reward;
w-total=p-total;
strcpy(p-num,min-num);
strcpy(p-name,min-name);
p-basic=min-basic;
p-reward=min-reward;
p-total=min-total;
strcpy(min-num,w-num);
strcpy(min-name,w-name);
min-basic=w-basic;
min-reward=w-reward;
min-total=w-total; }
}
return OK;
}
int change(LinkList L)
{
LinkList p=L-next;
char q[20];
cout<<"请输入要修改的职工编号号:"<<endl;
cinq;
while(p)
{
if(strcmp(p-num,q)==0)
{
cout<<"编号"<<setw(12)<<"姓名"<<setw(12)<<"基本工资"<<setw(9)<<"奖金"<<setw(12)<<"工资总额"<<endl;
cout<<p-num<<setw(9)<<p-name<<setw(8)<<p-basic<<setw(12)<<p-reward<<setw(12)<<p-total<<endl;
cout<<"请重新输入该职工的工资信息:"<<endl;
cinp-basic;
cinp-reward;
cout<<'\n';
return OK;
}
p=p-next;
}
}
int Menu(LinkList S)
{
int sign=1;
while(sign)
{
int i;
cout<<"请选择要进行的操作:1:插入 2:删除 3:输出 4:查找 5:排序 6:修改 0:退出"<<endl;
cini;
if(i==1)
{ if(InputInfo(S))
cout<<"操作成功!"<<endl;
cout<<'\n';
}
else if(i==2)
{
char num[20];
cout<<"请输入要删除的职工编号:"<<endl;
cinnum; if(DeleteByCode(S,num))
cout<<"操作成功!"<<endl; else
{
cout<<"此编号不存在!"<<endl;
cout<<'\n';
}
}
else if(i==3)
DisplayInfo(S);
else if(i==4)
{
int tag;
cout<<"1:按编号查找 2:按姓名查找 "<<endl;
cintag;
if(!Search(S,tag))
cout<<"未找到!"<<endl;
cout<<'\n'; }
else if(i==5)
{
if(Sort(S));
cout<<"操作成功!"<<endl;
cout<<'\n';
}
else if(i==6)
{
if(change(S))
cout<<"修改成功!"<<endl;
} else if(i==0)
sign=0;
else
cout<<"输入有误,请重新输入!"<<endl;
cout<<'\n';
}
return OK;
}
int main()
{
LinkList S;
initlist(S);
Menu(S);
return OK;} 已经调试无bug 有问题的话联系我。

用C语言课程设计—职工工资管理系统(分别用结构体数组和链表编写程序)

#include<stdio.h
#define NUM 100
void input()
;void search()
;void search_num();
void dele()
;void dele_name();
void dele_num()
;void modi()
;void modi_num();
void output()
;void stat()
;void fun()
;void run();
struct emploee /*职工数据结构*/
{
char no[5];
char name[8];
char sex[3];
int age;
int salar;
}emp[NUM],newemp;
main()
{int x;
printf(" 1. 输入职工记录\n");
printf(" 2. 查询职工记录\n");
printf(" 3. 修改职工记录\n");
printf(" 4. 删除职工记录\n");
printf(" 5. 打印职工记录\n");
printf(" 6. 调查工资情况\n");
printf(" 7. 追加职工记录\n");
printf(" 8. 结束使用\n");
printf(" 0. 退出系统\n");
printf("\n");
printf("*** 欢迎使用职工工资管理系统 ***\n");
printf("请选择(0-8):\n");
scanf("%d",x);
switch(x)
{
case 1: input();break;
case 2: search();break;
case 3: modi();break;
case 4: dele();break;
case 5: output();break;
case 6: stat();break;
case 7: run();break;
case 8: fun();break;
default:printf("\n Wrong!");
}
if(x==0)break;
}
}
void input()
{
FILE *fp;
int n,i;
if ((fp=fopen("emp","wb"))==NULL)
{

printf("不能建立emp文件\n");
exit(1);
}
printf("输入职工人数:");
scanf("%d",n);
printf("输入格式:职工号 姓名 性别 年龄 工资<Enter\n");
for(i=0;i<n;i++) /* 循环获取n个职工记录 */
{
printf("第%d个职工:",i+1);
scanf("%s%s%s%d%d",emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
}
for(i=0;i<n;i++) /*将n个职工记录写入文件*/
fwrite(emp[i],sizeof(struct emploee),1,fp);
fclose(fp);
}
/*************************统计模块**********************/
void stat( )
{
FILE *fp;
int n,num;
if((fp=fopen("emp","rb"))==NULL)
{
printf("不能打开emp文件\n");
exit(1);
}
printf("工资数:");
scanf("%d",#);
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(n=0;fread(emp,sizeof(struct emploee),1,fp);n++)
if(emp[n].salar=num)
printf("%6d%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex,
emp[n].age,emp[n].salar);
fclose(fp);
}
/********************删除模块*******************/

void dele()
{
int x;
while(1)
{
printf("\n\n\t\t删除子菜单\n");
printf("\t\t*********\n");
printf("\t\t 1.按职工号删除记录\n");
printf("\t\t 0.返回主菜单\n");
printf("\t\t*********\n");
printf("\t 请选择(0-1):");
scanf("%d",x);
switch(x)
{case 1:dele_num();break;
default:printf("\nWrong!");
}
if(x==0)break;
}
}
void dele_num()
{
FILE *fp;
int i,j,n;
char num[5];
if((fp=fopen("emp","rb"))==NULL)
{
printf("不能打开emp文件\n");
exit(1);
}
printf("删除前:\n");
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(n=0;fread(emp[n],sizeof(struct emploee),1,fp);n++)
printf("%6s%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex,
emp[n].age,emp[n].salar); /*n为emp文件中记录数*/
printf("要删除工资管理系统接口设计的职工号:");
scanf("%s",num);

for(i=0;(strcmp(emp[i].no,num)!=0i<n);i++)
if(i=n)
{
printf("\t没有%s职工号工资管理系统接口设计的职工\n",num);
exit(2);
}
fclose(fp);
fp=fopen("emp","w+");
if(n==1) /*一个记录已经删除工资管理系统接口设计了*/
{
fclose(fp);
exit(3);
}
for(j=0;j<i;j++)
fwrite(emp[j],sizeof(struct emploee),1,fp);
for(j=i+1;j<n;j++)
fwrite(emp[j],sizeof(struct emploee),1,fp);
printf("删除后:\n");
fseek(fp,0,SEEK_SET);
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(i=0;fread(emp[i],sizeof(struct emploee),1,fp);i++)
printf("%6s%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}
/********************修改模块*******************/
void modi()
{
int x;
while(1)
{
printf("\n\n\t\t修改子菜单\n");
printf("\t\t*********************\n");
printf("\t\t1. 按职工号修改\n");
printf("\t\t0. 返回主菜单\n");
printf("\t\t*********************\n");

printf("\t请选择(0-1):");
scanf("%d",x);
switch(x)
{
case 1:modi_num();break;
default:printf("\n输错误!");
}
if(x==0)break;
}
}
void modi_num()
{
FILE *fp;
int i,j;
char num[5];
if((fp=fopen("emp","rb+"))==NULL)
{
printf("不能 打开emp文件\n");
exit(1);
}
printf("要修改的职工号:");
scanf("%s",num);
for(i=0;fread(emp[i],sizeof(struct emploee),1,fp);i++)
if(!strcmp(emp[i].no,num))break;
if(feof(fp))
{
printf("\t没有%s职工号的职工\n",num);
exit(2);
}
printf("记录号 职工号 姓名 性别 年龄 工资\n");
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
printf("输入格式:职工号 姓名 性别 年龄 工资<Enter\n");
printf("第%d个记录:",i+1);
scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,newemp.age,
newemp.salar);/*获取新的职工记录*/

fseek(fp,-(long)sizeof(struct emploee),SEEK_CUR);
/*文件指针指向该修改的记录开头*/
fwrite(newemp,sizeof(struct emploee),1,fp);/*用newemp覆盖当前记录*/
printf(" 修改后:\n");
fseek(fp,0,SEEK_SET);/*显示修改后的文件数据*/
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(i=0;fread(emp[i],sizeof(struct emploee),1,fp)!=0;i++)
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}
/*************************查询模块***********************/
void search( )
{
int x;
while(1)
{
printf("\n\n\t\t查子菜单\n");
printf("\t\t********************\n");
printf("\t\t 1.按职工号查询\n");
printf("\t\t 0.返回主菜单\n");
printf("\t\t********************\n");
printf("\t请选择(0-1):");
scanf("%d",x);
switch(x)
{
case 1:search_num();break;
default :printf("\n Wrong!");
}
if(x==0) break;
}
}
void search_num()
{
FILE *fp;
int i;
char num;
if((fp=fopen("emp","rb"))==NULL)
{
printf("不能打开emp文件\n");
exit(1);
}
printf("要查询的职工号:");
scanf("%s",num);
for(i=0;fread(emp[i],sizeof(struct emploee),1,fp);i++)
if(!strcmp(emp[i].no,num)) break;
if(feof(fp))
{
printf("\t查无此人\n");
exit(2);
}
printf("记录号 职工号 姓名 性别 年龄 工资\n");
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}
/*******************输出模块********************/
void output()
{int i;
FILE *fp;
if((fp=fopen("emp","r"))==NULL)
{printf("不能打开emp文件\n");
exit(0);
}
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(i=0;fread(emp[i],sizeof(struct emploee),1,fp)!=0;i++)
{
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
}
fclose(fp);
}
/******************追加模块*******************/
void run()
{
FILE *fp;
int n,i,j;
if((fp=fopen("emp","ab+"))==NULL)
{printf("不能打开emp文件\n");
exit(0);
}
printf("要追加的职工人数:");
scanf("%d",n);
for(i=0;i<n;i++)
{ printf("输入格式:职工号 姓名 性别 年龄 工资<enter\n");
printf("职工记录:");
scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,newemp.age,
newemp.salar);
/*获取一个职工记录*/
fwrite(newemp,sizeof(struct emploee),1,fp);
/*将该职工记录写入文件*/
}
fclose(fp);
}
/*******************显示模块****************/
void fun()
{printf("\t\t******************************************\n");
printf("\t\t* *\n");
printf("\t\t* *\n");
printf("\t\t* 谢 谢 使 用 ! *\n");
printf("\t\t* *\n");
printf("\t\t* *\n");
printf("\t\t******************************************\n");
}

工资管理系统C语言程序设计,没多少分了,希望帮忙,感激!

#include <stdio.h
#include <windows.h
#include <time.h
#include <string.h
#define N 100
struct employee
{
int num;
char name[10];
char zhicheng;
int jiben;
int jiangjin;
int baoxian;
int zafei;
int shiji;
}em[100]; /*定义一个结构体*/
void menu();
void input();
void save(int);
void display();
void del();
void search();
void search_zhicheng();
void search_name();
void modify(); /*定义各函数*/
void menu() /*菜单函数*/
{
printf("\n");
printf(" 网计091 第7小组\n");
printf("\n");
printf(" ******************职工信息管理****************\n");
printf(" 1.录入职工信息");
printf(" 2.浏览职工信息\n");
printf(" 3.查询职工信息");
printf(" 4.删除职工信息\n");
printf(" 5.修改职工信息\n");
printf(" 6.退出\n");
printf(" ********************谢谢使用******************\n");
printf("\n");
printf("\n");

}
void main()
{

int n,flag;
char a;
while(1)
{
do
{
menu(); /*调用菜单函数*/
printf("请选择工资管理系统接口设计你需要操作的步骤(1--6):\n");
scanf("%d",n);
if(n=1n<=6)
{
flag=1;
break;
}
else
{
flag=0;
printf("您输入有误工资管理系统接口设计,请重新选择!");
}
}while(flag==0);

switch(n)
{
case 1:printf(" 输入职工信息\n");printf("\n");input();break;
case 2:printf(" 浏览职工信息\n");printf("\n");system("cls");display();break;
case 3:printf(" 按职工号查询职工信息\n");printf("\n");system("cls");search();break;
case 4:printf(" 删除职工信息\n");printf("\n");system("cls");del();break;
case 5:printf(" 修改职工信息\n");printf("\n");system("cls");modify();break;
case 6:goto la;
default :break;
}

}
la:
system("cls");
printf("\n\n\n\n\n 谢谢使用工资管理系统接口设计!\n");
}
void input() /*录入函数*/
{
int i,m;
printf("请输入需要创建信息的职工人数(1--100):\n");
scanf("%d",m);
for (i=0;i<m;i++)
{
printf("请输入职工号工资管理系统接口设计: ");
scanf("%d",em[i].num); //这里的代码错,要用数组下标
printf("\n");
printf("请输入姓名: ");
scanf("%s",em[i].name);//这里的代码错,要用数组下标
getchar();
printf("请输入职称: ");
scanf("%c",em[i].zhicheng);//这里的代码错,要用数组下标
printf("请输入基本工资: ");
scanf("%d",em[i].jiben);//这里的代码错,要用数组下标
printf("请输入奖金: ");
scanf("%d",em[i].jiangjin);//这里的代码错,要用数组下标
printf("请输入保险: ");
scanf("%d",em[i].baoxian);//这里的代码错,要用数组下标
printf("请输入杂费: ");
scanf("%d",em[i].zafei);//这里的代码错,要用数组下标

em[i].shiji=em[i].jiben + em[i].jiangjin - em[i].baoxian - em[i].zafei;//这里的代码错,要用数组下标
printf("\n");

}
printf("\n创建完毕!\n");system("cls");
save(m);
}
void save(int m) /*保存文件函数*/
{
int i;
FILE*fp;
if ((fp=fopen("employee_list","wb"))==NULL) /*创建文件并判断是否能打开*/
{
printf ("cannot open file\n");
exit(0);
}
for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/
if (fwrite(em,sizeof(struct employee),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
int load() /*导入函数*/
{
FILE*fp;
int i=0;
if((fp=fopen("employee_list","rb"))==NULL)
{
printf ("cannot open file\n");
exit(0);
}
else
{
do
{
fread(em,sizeof(struct employee),1,fp);
i++;
}
while(feof(fp)==0);
}
fclose(fp);
return(i-1);
}
void display() /*浏览函数*/
{
int i;
int m=load();
printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n");
for(i=0;i<m;i++) /*m为输入部分的职工人数*/
printf("\n %d\t %s\t %c\t %d\t %d\t %d\t %d\t %d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji); //这里的代码错,要用数组下标
printf("按任意键继续\n");
getchar();getchar();system("cls");
}
void del() /*删除函数*/
{

int m=load();
int i,j,n,t,flag;
char name1[10];
printf("\n 原来的职工信息:\n");
display(); /* 调用浏览函数*/
printf("\n");
printf("请输入要删除的职工的姓名:\n");
scanf("%s",name1);
for(flag=1,i=0;flagi<m;i++)
{
if(strcmp(em[i].name,name1)==0)
{
printf("\n已找到此人,原始记录为:\n");
printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n");
printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);
printf("\n确实要删除此人信息请按1,不删除请按0\n");
scanf("%d",n);
if(n==1) /*如果删除,则其他的信息都往上移一行*/
{
for(j=i;j<m-1;j++)
{
em[j]=em[j+1];

}
flag=0;
}
}
}
if(!flag)
m=m-1;
else
printf("\n对不起,查无此人!\n");
printf("\n 浏览删除后的所有职工信息:\n");
save(m); /*调用保存函数*/
display(); /*调用浏览函数*/
printf("\n继续删除请按1,不再删除请按0\n");
scanf("%d",t);
switch(t)
{
case 1:del();break;
case 0:break;
default :break;
}system("cls");
}
void search()/*查询函数*/
{
int t,flag;
do
{
printf("\n按姓名查询请按1 ; 按职称查询请按2 ; 进入主函数按3\n");
scanf("%d",t);
if(t=1t<=3)
{
flag=1;
break;
}
else
{
flag=0;
printf("您输入有误,请重新选择!");
}
}while(flag==0);system("cls");
while(flag==1)
{
switch(t)
{
case 1:printf("按姓名查询\n");search_name();break;
case 2:printf("按职称查询\n");search_zhicheng();break;
case 3:main();break;
default:break;
}
system("cls");
}
}
void search_name()
{
char name1[10];
int i,t;
int m=load();
printf("请输入要查找的姓名:\n");
scanf("%s",name1);
for(i=0;i<m;i++)
if(strcmp(name1,em[i].name)==0)
{
printf("\n已找到此人,其记录为:\n");
printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n");
printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);
break;
}
if(i==m)
printf("\n对不起,查无此人\n");
printf("\n");
printf("返回查询函数请按1,继续查询职工号请按2\n");
scanf("%d",t);
switch(t)
{
case 1:search();break;
case 2: break;
default:break;
}
}
void search_zhicheng()
{
char zhicheng;
int i,t=0;
int m=load();
system("cls");
printf("请输入要查找的职称:\n");
scanf("%c",zhicheng); //这里要用地址
for(i=0;i<m;i++)
if(em[i].zhicheng==zhicheng)
{
printf("\n已找到,其记录为:\n");
printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n");
printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);

}
if(i==m)
printf("\n对不起,查无此人\n");
printf("\n");
printf("返回查询函数请按1,继续查询学历请按2\n");
scanf("%d",t);
switch(t)
{
case 1:system("cls");search();break;
case 2:break;
default :break;
}
}
void modify() /*修改函数*/
{
int num;
char name[10];
char zhicheng;
int jiben;
int jiangjin;
int baoxian;
int zafei;
int shiji;
int b,c,i,n,t,flag;
int m=load(); /*导入文件内的信息*/
printf("\n 原来的职工信息:\n");
display(); /* 调用浏览函数*/
printf("\n");
printf("请输入要修改的职工的姓名:\n");
scanf("%s",name);
for(flag=1,i=0;flagi<m;i++)
{
if(strcmp(em[i].name,name)==0)
{
printf("\n已找到此人,原始记录为:\n");
printf("\n职工号\t姓名\t职称\t基本\t奖金\t保险\t杂费\t实际工资 \n");
printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);
printf("\n确实要修改此人信息请按1 ; 不修改请按0\n");
scanf("%d",n);
if(n==1)
{
printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.职称 4.基本工资 5.奖金 6.保险 7.杂费 8.实际工资\n");
printf("请输入你想修改的那一项序号:\n");
scanf("%d",c);
if(c8||c<1)
printf("\n选择错误,请重新选择!\n");
}
flag=0;
}

}
if(flag==1)
printf("\n对不起,查无此人!\n");
do
{
switch(c) /*因为当找到第i个职工时,for语句后i自加工资管理系统接口设计了1,所以下面的应该把改后的
信息赋值给第i-1个人*/
{
case 1:printf("职工号改为: ");
scanf("%d",#);
em[i-1].num=num;
break;
case 2:printf("姓名改为: ");
scanf("%s",name);
strcpy(em[i-1].name,name);
break;
case 3:printf("职称改为: ");
getchar();
scanf("%c",zhicheng);
em[i-1].zhicheng=zhicheng;
break;
case 4:printf("基本工资改为: ");
scanf("%d",jiben);
em[i-1].jiben=jiben;
break;
case 5:printf("奖金改为: ");
scanf("%d",jiangjin); //这里要用地址
em[i-1].jiangjin=jiangjin;
break;
case 6:printf("保险改为: ");
scanf("%d",baoxian);//这里要用地址
break;
case 7:printf("杂费改为: ");
scanf("%d",zafei);//这里要用地址
em[i-1].zafei=zafei;
break;
case 8:printf("实际工资改为: ");
scanf("%d",shiji);
em[i-1].shiji=shiji;
break;
}
printf("\n");
printf("\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2: \n");
scanf("%d",b);

}
while(b==2);
printf("\n浏览修改后的所有职工信息:\n");
printf("\n");
save(m);
display();
printf("\n继续修改请按1,不再修改请按0\n");
scanf("%d",t);
switch(t)
{
case 1:modify();break;
case 0:break;
default :break;
}system("cls");

}

c语言编一个工资管理系统 本系统能够方便、灵活地实现职工工资的输入、添加、删除等编辑操作以及查询等

*/#include "stdafx.h"
#include "iostream"
#include "string"
#include "list"
#include "cassert"
using namespace std;/*
编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金
*/
struct employee{
string m_num;//编号
string m_name;//姓名
string m_dep;//部门
double m_salary;//应付工资
double m_insurance;//保险
double m_tax;//税金
};/*
(1)录入:输入职工数据工资管理系统接口设计,其中“实付工资”通过计算得到工资管理系统接口设计
(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)
(3) 修改:允许对已经录入的数据重新进行编辑、修改;
(4) 显示:显示全体职工数据;
(5)查询:
a. 输入职工姓名,显示该职工的全部数据;
b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6) 退出程序。
*/list<employee emps;int _tmain(int argc, _TCHAR* argv[])
{
void print(const employee e);
void input();
void del();
void mod();
void show_all();
void show_name();
void show_dep();cout<<"简易职工薪水管理程序 by 做他\n";// delete this line
cout<<"版权没有 请随意复制或修改任何代码\n";//delete this linecout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
int choose=0;
cinchoose;
assert(!cin.fail());
while (choose!=6)
{
if (choose==1) input();
if (choose==2) del();
if (choose==3) mod();
if (choose==4)
{
int choice=0;
cout<<"请选择操作 1.按姓名查询 2.按部门查询 3.退出:";
cinchoice;
if (choice==1) show_name();
if (choice==2) show_dep();
if (choice==3)
{
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cinchoose;
assert(!cin.fail());
continue;
}
}
if (choose==5) show_all();
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cinchoose;
assert(!cin.fail());
}
return 0;
}void print(const employee e)
{
cout<<"编号:"<<e.m_num<<endl;
cout<<"姓名:"<<e.m_name<<endl;
cout<<"部门:"<<e.m_dep<<endl;
cout<<"保险:"<<e.m_insurance<<endl;
cout<<"税金:"<<e.m_tax<<endl;
cout<<"应付工资:"<<e.m_salary<<endl;
cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl;
}void input()
{
string num,name,dep;
double salary,ins,tax;
cout<<"请输入员工编号:";
cinnum;
cout<<"请输入员工姓名:";
cinname;
cout<<"请输入员工部门:";
cindep;
cout<<"请输入员工保险:";
cinins;
assert(!cin.fail());
cout<<"请输入员工税金:";
cintax;
assert(!cin.fail());
cout<<"请输入员工应付工资:";
cinsalary;
assert(!cin.fail());
employee temp;
temp.m_dep=dep;
temp.m_insurance=ins;
temp.m_name=name;
temp.m_num=num;
temp.m_salary=salary;
temp.m_tax=tax;
emps.push_back(temp);
cout<<"员工录入操作完毕.\n";
}void del()
{
if (emps.size()==0)
{
cout<<"没有员工记录.\n";
return;
}
string name;
bool isfind=false;
cout<<"请输入要删除的员工姓名:";
cinname;
list<employee::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter-m_name==name)
{
isfind=true;
emps.erase(iter);
cout<<"姓名为\""<<name<<"\"的员工记录已删除.\n";
return;
}
}
if (!isfind)
{
cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
return;
}
}void mod()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要修改的员工姓名:";
cinname;
list<employee::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter-m_name==name)
{
isfind=true;
cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
break;
}
}
if (isfind)
{
string num,name,dep;
double tax,ins,salary;
print(*iter);
cout<<endl;
cout<<"请输入新的员工编号:";
cinnum;
cout<<"请输入新的员工姓名:";
cinname;
cout<<"请输入新的员工部门:";
cindep;
cout<<"请输入新的员工保险:";
cinins;
assert(!cin.fail());
cout<<"请输入新的员工税金:";
cintax;
assert(!cin.fail());
cout<<"请输入新的员工工资:";
cinsalary;
assert(!cin.fail());
iter-m_dep=dep;
iter-m_insurance=ins;
iter-m_name=name;
iter-m_num=num;
iter-m_salary=salary;
iter-m_tax=tax;
cout<<"1 员工记录被成功修改.\n";
}
else
{
cout<<"没有找到姓名为\""<<name<<"\"的员工记录.\n";
}
}void show_all()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
cout<<"显示全体员工数据:\n";
cout<<"--------------------\n";
list<employee::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
cout<<endl;
print(*iter);
cout<<endl;
}
cout<<"--------------------\n";
}void show_name()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要查询的员工姓名:";
cinname;
list<employee::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter-m_name==name)
{
isfind=true;
cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
print(*iter);
break;
}
}
if (!isfind)
{
cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
return;
}
}void show_dep()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
double isfind=0.00;
double total_salary=0.00;
string dep;
cout<<"请输入要查询的部门名称:";
cindep;
cout<<"部门["<<dep<<"]的员工信息:\n";
cout<<"--------------------\n\n";
list<employee::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter-m_dep==dep)
{
isfind++;
total_salary+=iter-m_salary;
print(*iter);
cout<<endl;
continue;
}
}
cout<<"--------------------\n";
if (isfind==0)
{
cout<<"没有找到名称为["<<dep<<"]的部门.\n";
}
else
{
cout<<"部门["<<dep<<"]工资统计:\n";
cout<<"工资总额:"<<total_salary<<endl;
cout<<"平均工资:"<<total_salary/isfind<<endl;
}
}

采用面向对象的程序设计方法编写一个公司的工资管理系统,要求使用多继承、虚函数、虚基类,要有设定级别

计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。
[NextPage]
学习编程,从何入手
如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!
==============================================
方案一 Basic语言 Visual Basic
优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。
缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。
综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。
Basic/Visual Basic简介
==============================================
方案二 Pascal语言 Delphi
优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。
缺点
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。
综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。
Pascal语言简介
Delphi简介
==============================================
方案三 C语言 Visual C++
优点
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软制作的产品,与操作系统的结合更加紧密。
缺点
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。
综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。
C语言简介
==============================================
方案四 C++语言 C++ Builder
优点
(1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。
缺点
由于推出的时间太短,关于它的各种资料还不太多。
综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。
C语言简介
==============================================
方案五 SQL语言 Power Builder
对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。
[NextPage]
JSP简介
在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照 Sun 的说法,JSP能够适应市场上包括Apache WebServer 、IIS4.0在内的85%的服务器产品。
JSP与ASP的简单比较
JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是两者最明显的区别。
此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。
运行环境
执行 JSP 代码需要在服务器上安装 JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用 即可打开缺省页面。
在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是" work "子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用"查看源文件"菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的" examples "页面提供。
Java Servlet是一种开发Web应用的理想构架。 JSP以Servlet技术为基础,又在许多方面作了改进。JSP页面看起来象普通HTML页面,但它允许嵌入执行代码,在这一点上,它和ASP技术非常相似。利用跨平台运行的JavaBean 组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者。
[NextPage]
SQL语言简介
SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
Structured Query Language包含4个部分:
数据查询语言DQL-Data Query Language SELECT
数据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
数据定义语言DQL-Data Definition Language CREATE, ALTER, DROP
数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
SQL的历史
在70年代初,E.E.Codd首先提出了关系模型。70年代中期,IBM公司在研制 SYSTEM R关系数据库管理系统中研制了SQL语言,最早的SQL语言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of RD上公布的。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。
1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。
1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89, 该标准替代ANSI X3.135-1986版本。该标准为下列组织所采纳:
● 国际标准化组织(ISO),为ISO 9075-1989报告“Database Language SQL With Integrity Enhancement”
● 美国联邦政府,发布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的关系数据库管理系统支持某些形式的SQL语言, 大部分数据库打算遵守ANSI SQL89标准。
SQL的优点
SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。
(1) 非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。
(2) 统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:
● 查询数据
● 在表中插入、修改和删除记录
● 建立、修改和删除数据对象
● 控制对数据和数据对象的存取
● 保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。
(3) 是所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。
[NextPage]
Java语言简介
一. Java的由来
当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?
Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。
在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。
二. Java的定义
Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
Java的开发环境有不同的版本,如sun公司的Java Developers Kit, 简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。
三. Java的特点
1. 平台无关性
平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使 用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在 硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。
2. 安全性
Java的编程类似C++,学习过C++的读者将很快掌握Java的精 髓。Java舍弃了C++的指针对存储器地址的直接操作,程序 运行时,内存由操作系统分配,这样可以避免病毒通过指 针侵入系统。Java对程序提供了安全管理器,防止程序的 非法访问。
3. 面向对象
Java 吸取了C++面向对象的概念,将数据封装于类中,利用类 的优点,实现了程序的简洁性和便于维护性。类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译,然后 通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上。Java 提供了众多的一般对象的类,通 过继承即可使用父类的方法。在 Java 中,类的继承关系是单一的非多重的,一个子类 只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类 为 Object 类, Object 类功能强大,经常会使用到它及其 它派生的子类。
4. 分布式
Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。
5. 键壮性
Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供: Null指针检测、 数组边界检测、 异常出口、 Byte code校验。
四. Java与C/C++语言
Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++被大家接受,所以Java设计成C++形式,让大家很容易学习。
Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。
Java去掉了以下几个C和C++功能:
指针运算
结构
typedefs
#define
需要释放内存
这将减少了平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。
面象对象:Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。
五. Java与Internet
我们知道,早先的 www 仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。
Java并不是为 Internet,WWW而设计的,它也可以用来编写独立的应用程序。Java 是一种面向对象语言。Java 语言类似于 C++ 语言,所以已熟练掌握 C++语言的编程人员,再学习 Java 语言就容易得多!Java 程序需要编译。实际上有两种 Java 程序:一种 Java 应用程序是一个完整的程序,如 Web 浏览器。一种 Java 小应用程序是运行于 Web 浏览器中的一个程序.
Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400 baud线上传输视频图象时,HotJava将能显示这些视频。
当今Internet的一大发展趋势是电子商务,而Internet的安全问题是必须解决的问题,通常大的部门应设置防火墙,阻止非法侵入。
电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能 与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。
Java程序被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到本地的用户机上,由浏览器解释运行。
[NextPage]
PowerBuilder简介
PowerBuilder的产生
PowerBuilder是美国著名的数据库应用开发工具生产厂商PowerSoft推出的成功产品,其第一版于1991年6月正式投入市场。它是完全按照客户/服务器体系结构研制设计的,采用面向对象技术,图形化的应用开发环境,是数据库的前端开发工具。
PowerBuilder的特点
它支持应用系统同时访问多种数据库,其中既包括Oracel,Sybase之类的大型数据库,又包括FOXPRO之类支持ODBC接口的小型数据库,PowerBuilder是完全可视化的数据库开发工具,它提供了大量的控件,大大加快了项目的开发速度,也使开发者更容易掌握数据库的开发。
它使用的编程语言叫做工PowerScripr,它也是一种高级的,结构化的编程语言。PowerScript提供了一套完整的嵌入式SQL语句,开发人员可以像使用其它语句一样自由地使用SQL语言,这样就大大增强了程序操纵和访问数据库的能力。可以说PowerBuilder既适合初学者快速学习数据库的开发,又可以让有经验的开发人员开发出功能强大的数据库,是一种适用面非常广的开发工具。
PowerBuilder是一个用来进行客户/服务器开发的完全的可视化开发环境。使用PowerBuilder,你可以用一种可视的直观的方式来创建应用程序的用户界面和数据库接口。这是一个总的概念,实际上是开发人员使用PowerBuilder去开发应用程序,由于所开发的各种应用程序充分利用了图形用户接口(GUI)的优点,所以PowerBuilder被认为是一个图形工具。
在客户/服务器结构的应用中,PowerBuilder具有描述多个数据库连接与检索的能力。特别是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管数据存放在什麽地方;另外,各种应用程序又可以独立于RDBMS,因为PowerBuilder可以使用数据库的标准操作语言SQL(结构化查询语言)进行。
使用PowerBuilder,可以很容易地开发出功能强大的图形界面的访问服务器数据库的应用程序,PowerBuilder提供了建立符合工业标准的应用程序(例如订单登记、会计及制造系统)所需的所有工具。
PowerBuilder应用程序由窗口组成,这些窗口包含用户与之交互的控件。开发人员可以使用所有标准空间(如按钮、复选框、下拉式列表框或编辑框)以及PowerBuilder提供的特殊的使应用程序更易于开发和使用的控件。
通常人们把PowerBuilder看成是一种开发工具,实际上它比其他工具强得多,是一种强有力的开发环境。开发人员不仅能用它来开发用户容易使用的各种应用程序还可以通过PowerBuilder修改数据库,利用400多个内部定义函数,可以开发能和其他应用程序进行的各种应用程序。
PowerBuilder正在成为客户/服务器应用开发的标准。相对于其他任何客户/服务器开发环境,PowerBuilder使开发人员的工作更快、成本更低、质量更高、功能更强。
PowerBuilder为应用开发提供了全面综合性的支持,可以分别概括为如下几点:
事件驱动的应用程序
功能强大的编程语言与函数
面向对象的编程
跨平台开发
开放的数据库连结系统
PowerBuilder开发环境
PowerBuilder开发环境由一系列集成的图形画板(Painter)组成,应用开发人员通过简单的鼠标操作即可设计、建立、交互检验和测试客户/服务器应用程序。
[NextPage]
Delphi简介
Delphi这个名字源于古希腊的城市名。它集中了第三代语言

某大学工资管理信息系统的分析、设计和实施

一、实验的地位、作用
管理信息系统实验作为课程实践性环节之一工资管理系统接口设计,是教学过程中必不可少的重要内容。通过计算机实验和案例分析,使学生加深理解、验证巩固课堂教学内容工资管理系统接口设计;增强管理信息系统的感性认识;掌握管理信息系统分析、开发的基本方法;培养学生理论与实践相结合的能力。
二、实验开设对象
本实验开设对象为《管理信息系统》课程的学习者(信息管理与信息系统专业及工商管理专业本科学生),实验为必修内容。
三、基本原理及课程简介
《管理信息系统》是一门培养学生信息系统分析、设计、开发能力的理论课程,同时要求学生具有较强的动手实践能力。在信息管理与信息系统专业的培养计划中,它是核心课程。本课程在教学内容方面着重基本理论、基本知识和基本方法。在实践能力方面着重培养系统分析方法、系统设计方法与基本技能的训练。实验课程不同于理论课程,应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生自学能力的培养,共开设5个实验项目。实验1-4侧重单项技能训练,实验5为综合性实验。
四、指导教师
原则上由管理信息系统课程讲授教师负责,由年轻教师担任主要的实验指导教师,实验室人员配合指导。指导教师应在每次实验前讲清实验目的、基本原理、实验要求等,指导学生在规定的时间内完成相关课程实验。
五、实验设备配置
每人配置1台电脑,安装有金蝶K3系统和其工资管理系统接口设计他试验系统 / Visual Foxpro / PowerBuilder / ERWin,可访问Internet。
六、考核与报告
1.实验后,学生将实验结果等内容写出实验报告(例如系统分析报告等),符合实验教学的要求,并得到指导教师的认可。
2.指导教师对每份实验报告进行审阅、评分。
3.该实验程依附于理论课,实验课的成绩记入课程平时成绩,占总成绩的20%。
实验一 数据库设计
一、实验题目
小型自选商场综合管理系统数据库设计。
二、实验课时
课外2课时。
三、实验目的
1.能够正确运用《数据库技术》课程的基本理论和知识,结合一个管理信息系统中的模拟课题,复习、巩固、提高数据库方案设计、论证和分析方法。
2.熟悉关系数据库规范化设计理论,根据实验要求设计并建立科学合理的数据库,正确建立数据库中表与表之间的关系。
3.进一步正确理解数据库设计思路,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。
四、实验内容和要求
[系统描述]
小型自选商场综合管理系统应具备进货、销售、库存等基本管理功能,具体要求如下:
(1)能记录每一笔进货,查询商品的进货记录,并能按月进行统计。
(2)能记录每一笔售货,查询商品的销售情况,并能进行日盘存、月盘存。
(3)能按月统计某个员工的销售业绩。
(4)在记录进货及售货的同时,必须动态刷新库存。
(5)能打印库存清单,查询某种商品的库存情况。
(6)能查询某个厂商或供应商的信息。
(7)能查询某个员工的基本信息。
(8)收银台操作中,能根据输入的商品编号、数量,显示某顾客所购商品的清单,并显示收付款情况。
1.根据上述系统功能需求,使用ERWin描述该管理信息系统的概念模型。
2.完成该管理信息系统的数据库总体设计方案,明确数据库中表的结构,各表中关键字的设置,表与表之间的关系。
3.说明提交的数据库设计方案满足第几范式,说明设计理由。
4.根据系统功能需求,以SQL语句的形式分类列出系统应涉及的数据操作。
5.选用熟悉的数据库工具,根据设计方案正确建立数据库,并成功实现上述数据操作。
6.独立完成上述内容,并提交书面实验报告。
实验二 系统分析(一)
一、实验题目
小型自选商场综合管理系统系统分析。
二、实验课时
课外2课时。
三、实验目的
1.能够正确运用系统分析的过程与方法,结合一个模拟课题,复习、巩固、管理信息系统的系统分析知识,提高系统分析实践能力。
2.熟悉业务流程图、数据流程图、数据字典的绘制。
3.树立正确的系统分析思想,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。
四、实验内容和要求
[系统描述]
参见实验一。
1.根据所述系统功能需求,开展实地调查或通过Internet查阅相关资料或结合个人经验,进行系统分析。
2.明确管理业务调查过程和方法,包括小型自选商场的典型组织机构、管理功能及业务流程。
3.明确数据流程的调查与分析过程,绘制数据流程图,编制数据字典。
4.在上述工作基础上,完成小型自选商场综合管理系统的系统化分析,提出新系统的逻辑方案。
5.针对个人在实验一中提出的数据库方案,提出修正或完善建议。
6.独立完成上述内容,并提交书面实验报告。
实验三 系统分析(二)
一、实验题目
金蝶K3软件进销存系统演示及系统分析。
二、实验课时
课外2课时。
三、实验目的
1.通过演示优秀的管理信息系统,借鉴正确、优秀的系统分析思想。
2.进一步强化、提高系统分析实践能力。
3.进一步熟悉商业企业管理实践中的进销存业务。
四、实验内容和要求
1.根据金蝶K3软件进销存系统演示及实际操作,对此系统进行系统分析。
2.通过上述系统分析,对个人在实验二中提出的小型自选商场综合管理系统系统分析报告进行自查,有何借鉴意义,具体的修正或完善措施如何工资管理系统接口设计
3.独立完成上述内容,并提交书面实验报告。
实验四 系统设计及实施
一、实验题目
小型自选商场综合管理系统系统设计及实施。
二、实验课时
课外4课时
三、实验目的
1.能够正确运用系统设计的过程与方法,结合一个模拟课题,复习、巩固、管理信息系统中系统设计知识,提高系统设计实践能力。
2.熟悉代码设计、数据存储设计、输入输出设计等环节,并编制相应的文档及程序编写。
3.进一步树立正确的系统设计、实施思想,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。
四、实验内容和要求
[系统描述]
参见实验一。
1.根据前述实验系统分析内容,进行系统设计。包括代码设计、数据存储设计、功能结构图设计、系统流程图设计、输入输出设计等。
2.在计算机上实现上述内容,完成一个实用、可运行的管理信息系统。
3.独立完成上述内容,并提交书面实验报告。
实验五 管理信息系统的分析、设计和实施
一、实验题目
某大学工资管理信息系统的分析、设计和实施。
二、实验课时
课外6课时。
三、实验目的
联系所学的管理信息系统开发的原理、技术、方法、工具和步骤,以及在各个阶段上应该完成的工作内容等理论知识,亲身体会开发一个管理信息系统的全过程及其工作内容,训练独立从事开发管理信息系统的能力。
四、实验内容和要求
某大学现行工资管理系统简单描述如下:
某大学共有教职员工3758人。学校下设教务处、财务处和房产处等二十六处室,还设有计算机系、自动控制系和管理工程系等十八个教学系,此外还附设一个机械工厂、一个电子厂和一所校医院。该校财务处负责全校教职工的工资管理工作,其工资管理业务情况如下:
每月25日至28日,房产处将本月职工住房的房费和水电费扣款清单报送财务处,总务处将托儿费扣款和通勤职工的交通补贴费清单报送财务处。财务处按期列出一份职工借支应扣款清单。所有这些清单的格式如表SJ-l和表SJ-2所示。
表 SJ-1 ( )月份职工( )项扣款清单
职工号 姓名 扣款金额(元) 备注
制表人: 日期:
表 SJ-2 ( )月份职工交通补贴清单
职工号 姓名 补贴金额(元) 备注
制表人: 日期:
此外,学校人事部门及时向财务处提供下列信息:
1)若有职工在学校内部各部门之间调动工作情况发生,则提供这些职工的姓名、由何部门调至何部门工作、工资发放变动情况等。
2)若有校外人员调入学校工作,则应提供调入者的职工号、姓名、调入校内何部门、以及有关调入者工资方面的数据,还有工资管理系统接口设计他们的工资开始发放的月份,据此,财务处的工资管理会计员建立调入者的职工工资台帐帐页。
3)若有职工调离学校,则要提供调出人员的姓名、所在单位和终止发放本人工资的月份。
4)若调整工资,则应提供全校教职工工资调整变动情况清单和调整后工资从哪个月份开始发放。
当财务处收到各部门报送来的扣款单、补贴清单和其它有关职工工资变动通知单后,财务处的工资管理会计就可以依据上个月份的职工工资台帐制做本月职工工资台帐。职工工资台帐格式如表SJ-3所示,每名职工全年工资信息占据台帐的一页。
表SJ-3 某大学职工工资台帐帐页 第 页
职工号: 姓名: 部门代号: 部门名称:
月份 基本
工资 工龄
工资 副食
补贴 煤粮
补贴 交通
补贴 备补
1 备补
2 应发
工资 房
费 水电
费 托儿
费 借支
扣款 其它
扣款 扣款
合计 实发
工资
一月
二月
三月
四月
五月
六月
七月
八月
九月
十月
十一月
十二月
接下来,工资管理会计员再根据填制好的本月份职工工资台帐,花费一个星期左右的时间制作出一式两份的本月份全校职工工资发放单(按部门制作)和本月份工资汇总表,如表SJ-4所示。
表SJ-4 某大学一月份职工工资发放单
部门名称:
姓名 基本
工资 工龄
工资 副食
补贴 煤粮
补贴 交通
补贴 备补
1 备补
2 应发
工资 房
费 水电
费 托儿
费 借支
扣款 其它
扣款 扣款
合计 实发
工资
汪大伟
……
李 俊
合计
工资管理会计员依据工资汇总表上的全校“实发工资”合计数字,从银行提回现金,并于下月的5号将本月份职工工资发至职工手中。
职工工资计算处理中的几项说明:
.工龄工资每人每年增加0.50元。
.应发工资 = 基本工资 + 工龄工资 + 各项补贴之和。
.扣款合计 = 房费 + 水电费 + 托儿费 + 借支扣款 + 其它扣款。
.实发工资 = 应发工资 - 扣款合计。
从上面的描述不难看出,该所大学现行职工工资管理业务工作量特别大,同时还时常出现差错现象。有关人员迫切要求早日开发出全校职工工资管理信息系统,用计算机代替手工记帐、计算和制作报表工作。学校主管领导也十分支持这项工作,已批准投资5万元人民币用于购置设备和软件开发。同时,学校还拥有雄厚的技术力量。
1.在认真分析题目及其对现有系统描述的基础上,按照管理信息系统开发的工作步骤和工作内容,独立完成给定系统的分析、设计任务。
2.在Windows环境支持下选择所熟悉的程序设计语言开发本系统。系统即可以开发单机版,也可以开发为网络版。网络版中,人事、总务等部门可直接通过网络传输数据。
3.提交提供包含下述内容的实验报告。
五、实验报告的内容
1.系统分析部分
1)业务流程图
2)数据流程图
3)功能分析图
4)数据字典
5)数据加工处理的描述
6)某大学工资管理信息系统流程设想图(新系统模型)
2.系统设计部分
1)功能结构图设计
2)新系统信息处理流程设计
3)输出设计(主要指打印输出设计)
4)存储文件格式设计(数据库结构设计)
5)输入设计(主要指数据录入卡设计)
6)代码设计(职工证号和部门代号)
7)程序设计说明书
3.系统实施部分
1)程序框图
2)源程序
3)模拟运行数据
4)打印报表
5)系统使用说明书 关于工资管理系统接口设计和工资管理系统详细设计的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 工资管理系统接口设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于工资管理系统详细设计、工资管理系统接口设计的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java I/O深入学习之File和RandomAccessFile
下一篇:Struts2源码分析之ParametersInterceptor拦截器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~