学校内部工资管理系统软件工程课程设计 联系客服

发布时间 : 星期一 文章学校内部工资管理系统软件工程课程设计更新完毕开始阅读f1ede77758fb770bf78a55f3

五 课程设计总结

六 程序代码

因为我们小组成员编程的水平实在是很一般,无法全面系统的实现该软件的所有功能。所以,我们就选取一部分内容进行编程,我们主要对该软件的用户信息管理模块的六个子模块进行了编码,编码总体上由王雪峰负责。其他小组成员主要负协助工作。插入及添加模块有王雪峰和任深圳共同完成。修改及删除模块由王雪峰完成,查找及输入模块有王雪峰和杨博仁,杨科共同完成。

#include #include #include #include #include

#define TITLE \ 月份 工号 姓名 应发工资 各种折扣 实发工资\\n\#define DATA \ - %4ld %-10s %6.1f %6.1f %6.1f\\n\>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();

17

void output();

void save(PAY *head); PAY *open(); PAY *insert(); void search(); PAY *del(); PAY *revise();

/*菜单*/void main(void) {

short sel; do {

menu();

scanf(\ switch(sel) {

case 1:

head=input(); //用户数据添加模块 break; case 2:

head=insert(); //用户数据插入模块 break; case 3:

head=revise(); //用户数据修改模块 break; case 4:

head=del(); //用户数据删除模块 break; case 5:

search(); //用户数据查找模块 break; case 6:

output(); //用户数据输出模块 break; case 0: break; }

}while(sel!=0); }

18

void menu() {

printf(\

printf(\主菜单选项*\\n\\n\ printf(\创建职工工资信息\\n\ printf(\添加职工工资信息\\n\ printf(\修改职工工资信息\\n\ printf(\删除职工工资信息\\n\ printf(\查找职工工资信息\\n\ printf(\信息列表分类\\n\ printf(\保存 信息\\n\ printf(\退 出\\n\ printf(\}

/*用户数据添加模块*/ PAY *input() {

short n=1;

p1=(PAY*)malloc(sizeof(PAY)); if(p1==NULL) {

printf(\内存不足,无法创建链表!\ getch(); }

printf(\请输入第%d位职工的信息(以工号为0结束):\\n\ printf(\ 工号:\ scanf(\ if(p1->num==0) {

printf(\按任意键返回!\ getch(); free(p1); return 0; }

getchar();

printf(\ 姓名:\ gets(p1->name);

printf(\ 工资月份:\ scanf(\

printf(\ 基本工资,级别工资,职务津贴,工龄津贴,其他津贴,绩效奖励:\\n\ scanf(\ printf(\ 房租扣款,公积金,水电费,其它扣款:\\n\

scanf(\

19

p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj; p1->rebate=p1->fz+p1->gj+p1->sd+p1->others; p1->actual_pay=p1->should_pay-p1->rebate; while(p1!=NULL) {

if(n==1) head=p1; else

p2->next=p1; n++; p2=p1;

p1=(PAY*)malloc(sizeof(PAY)); if(p1==NULL) {

printf(\内存不足,无法创建链表!\ getch(); }

printf(\请输入第%d位职工的信息(以工号为0结束):\\n\ printf(\ 工号:\ scanf(\ getchar();

if(p1->num==0) {

p1=NULL; break; }

printf(\ 姓名:\ gets(p1->name);

printf(\ 工资月份:\ scanf(\

printf(\ 基本工资,级别工资,职务津贴,工龄津贴,其他津贴,绩效奖励:\\n\ scanf(\ printf(\ 房租扣款,公积金,水电费,其它扣款:\\n\

scanf(\ p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj; p1->rebate=p1->fz+p1->gj+p1->sd+p1->others; p1->actual_pay=p1->should_pay-p1->rebate; }

p2->next=NULL;

//edit by Yan-Xingyu Class Network-021

printf(\职工信息已输入,请按任意键返回,并存盘……\ getch(); return head; }

20