发布时间 : 星期一 文章学校内部工资管理系统软件工程课程设计更新完毕开始阅读f1ede77758fb770bf78a55f3
五 课程设计总结
六 程序代码
因为我们小组成员编程的水平实在是很一般,无法全面系统的实现该软件的所有功能。所以,我们就选取一部分内容进行编程,我们主要对该软件的用户信息管理模块的六个子模块进行了编码,编码总体上由王雪峰负责。其他小组成员主要负协助工作。插入及添加模块有王雪峰和任深圳共同完成。修改及删除模块由王雪峰完成,查找及输入模块有王雪峰和杨博仁,杨科共同完成。
#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