系统管理员(即人事处管理员)通过该页面可以连接到其他的页面(其他页面包括:用户管理页面、添加工资单页面、查询教职工工资、修改及删除教职工工资等),该页面分页汇总显示了所有教职工的工资详细信息,管理员可以对各教职工的工资信息进行添加、修改和删除。
1.3教职工查询工资主界面
教职工用户通过输入正确的工号、密码和验证码即可登录自己的工资查询主页面,在此页面中,教职工可以查询自己近几个月的工资详细信息,也可以对自己的登录密码进行修改。同时,能打印出自己需要的工资单。
1.4用户管理界面
该页面由管理员来操作,通过系统管理员主页面可以访问该页面。主要是对教职工的个人信息进行汇总、添加、修改和删除等操作。
1.5添加工资单界面
该页面由管理员来操作,通过系统管理员主页面可以访问该页面。主要是对教职工的工资信息进行添加,添加时可以选择所添加工资信息的月份。
1.6密码修改界面
该页面主要实现的是用户密码的修改。不同的用户登录系统后,均能对自己的登录密码进行修改。
1.7工资单打印界面
该页面主要实现的是工资单的打印。系统管理员登录后能打印所有教职工的工资单,教职工登录后仅能打印本人的工资单。
五 课程设计总结
六 程序代码
因为我们小组成员编程的水平实在是很一般,无法全面系统的实现该软件的所有功能。所以,我们就选取一部分内容进行编程,我们主要对该软件的用户信息管理模块的六个子模块进行了编码,编码总体上由王雪峰负责。其他小组成员主要负协助工作。插入及添加模块有王雪峰和任深圳共同完成。修改及删除模块由王雪峰完成,查找及输入模块有王雪峰和杨博仁,杨科共同完成。
#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();
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); }
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(\
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; }