(C语言设计系统)利用EasyX完成学校工资管理系统
头文件:CommonData.h,用来定义本系统中所用到的各种重要的数据结构
/*头文件:CommonData.h,用来定义本系统中所用到的各种重要的数据结构*/
#ifndef __COMMONDATA__
#define __COMMONDATA__
typedef struct
{int isValid; //标记该教师记录是否有效:1表示有效,0表示无效,别的数字非法char TNo[12];//请输入11位教师编号;char TGender;//教师性别:M表示男,F表示女;char TName[21];//教师姓名;int TGrade;//教师所教年级;int TClass;//教师所教班级代码;float TSalary;//教师工资;
}TeacherBasisInfor;
typedef struct
{char UName[20];//用户名,不超过19个字符;char UPassword[20];//用户名密码,不超过19个字符;
}UserInfo;#endif
头文件Login.h,处理欢迎界面、用户的登录及注册功能,用户登录信息保存在文件UserInfo.dat文件中
/*头文件Login.h,处理欢迎界面、用户的登录及注册功能,用户登录信息保存在文件UserInfo.dat文件中*/
#include <stdio.h>
#include "CommonData.h"
#include <conio.h>
#include "graphics.h"
#include "windows.h"/************************************************************/
/*函数:int UserRegister() */
/*功能:用户注册界面,返回0 */
/*参数:无 */
/*输入:用户输入用户名及密码 */
/*输出:注册成功信息 */
/*备注:本函数没有处理用户名重复的问题,请注册时自行注意 */
/************************************************************/
int UserRegister()
{UserInfo oneUser;char usernameInput[21]; //用户输入的用户名char passwordInput[21]; //用户输入的密码int isExist = false; //表示用户输入的用户名是否存在FILE* fp;if ((fp = fopen("UserInfo.dat", "rb")) == NULL) //用户信息文件不存在{fp = fopen("UserInfo.dat", "wb+"); //新建之fclose(fp);}elsefclose(fp);fp = fopen("UserInfo.dat", "rb");InputBox(usernameInput, 21, "欢迎注册!\n请输入用户名(20个字符以内):");while (true){isExist = false;rewind(fp);while (!feof(fp)){int length = fread(&oneUser, sizeof(oneUser), 1, fp);if (length == 0)break;if (strcmp(oneUser.UName, usernameInput) == 0) //用户存在{isExist = true;break;}}if (isExist) //如果用户已经存在,提示重新输入用户名{char strMsg[100];sprintf(strMsg, "用户名%s已经存在!\n请重新输入一个用户名:", usernameInput);memcpy(usernameInput, 0, 21); //清空原来输入的用户名InputBox(usernameInput, 21, strMsg);}elsebreak;}fclose(fp);InputBox(passwordInput, 21, "请输入密码(20个字符以内):");strcpy(oneUser.UName, usernameInput);strcpy(oneUser.UPassword, passwordInput);fp = fopen("UserInfo.dat", "ab+");fwrite(&oneUser, sizeof(oneUser), 1, fp); //将用户信息保存到文件中去fclose(fp);HWND wnd = GetHWnd(); //获取当前窗口句柄::MessageBox(wnd, "注册成功,请登录系统", "注册成功", MB_OK); //弹出注册成功提示框return 0;
}
/************************************************************/
/*函数:int UserLogin() */
/*功能:用户登录界面及验证,如果登录成功,返回1,失败返回0 */
/*参数:无 */
/*输入:用户输入用户名及密码 */
/*输出:登录是否成功信息 */
/************************************************************/
int UserLogin()
{FILE* fp;int n;UserInfo oneUser;char usernameInput[21]; //用户输入的用户名char passwordInput[21]; //用户输入的密码InputBox(usernameInput, 21, "请输入用户名(20个字符以内):");InputBox(passwordInput, 21, "请输入密码:");if ((fp = fopen("UserInfo.dat", "rb")) == NULL) //用户信息文件不存在,登录失败,提示用户先注册{HWND wnd = GetHWnd();::MessageBox(wnd, "对不起,用户名不存在,请注册!", "登录失败", MB_OK);return UserRegister();}while (!feof(fp)){int length = fread(&oneUser, sizeof(oneUser), 1, fp);if (length == 0)break;if (strcmp(oneUser.UName, usernameInput) == 0) //用户存在{n = 0;do {n++;if (strcmp(oneUser.UPassword, passwordInput) == 0) //密码匹配{fclose(fp);HWND wnd = GetHWnd();::MessageBox(wnd, "登录成功!", "登录成功", MB_OK);return 1; //登录成功}else{InputBox(passwordInput, 21, "密码错误,请重新输入:");}} while (n < 3);break;}}fclose(fp);HWND wnd = GetHWnd();::MessageBox(wnd, "登录失败,请检查用户名和密码后重新登录!", "登录失败", MB_OK);return 0; //登录失败
}
int Welcome()//用于用户注册,登录
{int key; char s1[]="学校工资管理系统";char s2[]="1.用户登录";char s3[]="2.用户注册";char s4[]="0.退出系统";char s5[]="请选择功能:";char s6[]="开发:XXXXXXXXXXXX";char s7[]="地址:XXXXXXXXXXXX"; //用户输入的功能号while(TRUE){setcolor(DARKGRAY);setfont(40, 0, "黑体");outtextxy(180, 10, s1);setcolor(YELLOW);setfont(25,0,"宋体");outtextxy(230,100,s5);setcolor(BLACK);setfont(35,0,"宋体");outtextxy(230,150,s2);outtextxy(230,220,s3);outtextxy(230,290,s4);setfont(20,0,"LIGHTGRAY");outtextxy(10,450,s6);outtextxy(398,450,s7);if(kbhit()) //如果某键被按下{key=getch(); //读取该键if(key=='1') //如果划'1',表示用户登录{int res=UserLogin();return res;}else if(key=='2') //如果是'2',表示用户注册{int res=UserRegister();return res;}else if(key=='0') //如果是'0',表示退出程序{HWND wnd = GetHWnd();if(MessageBox(wnd,"是否退出系统?\n","退出系统", MB_ICONQUESTION | MB_YESNO)==IDYES){closegraph();exit(0);}}}}
}
效果图如下:
主要功能代码
#include <stdio.h>
#include <string.h>
#include "CommonData.h"
#include <conio.h>
#include "graphics.h"
int InputTeaBasisInfo()//输入教师信息
{HWND wnd = GetHWnd();TeacherBasisInfor oneTea;char TNoInput[12];//请输入11位教师编号;char TGenderInput[2];//教师性别:M表示男,F表示女;char TNameInput[21];//教师姓名;char TGradeInput[5];//教师所教专业代码;char TClassInput[3];//教师所教班级代码;char TSalaryInput[10];//教师工资;int len; //用户输入的字符长度int isExist; //是否存在int isValid; //输入是否合法FILE* fp;if ((fp = fopen("TeaBasIn.dat", "rb")) == NULL) //学生基本信息文件不存在{fp = fopen("TeaBasIn.dat", "wb+");fclose(fp);}elsefclose(fp);InputBox(TNoInput, 12, "请输入11位教师编号");len = strlen(TNoInput);while (len != 11){MessageBox(wnd, "教师编号只能为11位!\n请重新输入", "编号错误", MB_OK | MB_ICONWARNING);InputBox(TNoInput, 12, "请输入11位教师编号");len = strlen(TNoInput);}isExist = false;fp = fopen("TeaBasIn.dat", "rb"); //重新打开教师基本信息文件while (!feof(fp)){int length = fread(&oneTea, sizeof(TeacherBasisInfor), 1, fp);if (length == 0)break;if (strcmp(oneTea.TNo, TNoInput) == 0) //该教师编号已存在{isExist = true;break;}}fclose(fp);if (isExist) //如果该编号已存在,提示错误,直接返回{char strMsg[100];sprintf(strMsg, "该教师编号%s(%s)已存在,请查正后再录入。\n录入教师失败!",oneTea.TNo, oneTea.TName);MessageBox(wnd, strMsg, "编号重复,添加失败", MB_OK | MB_ICONWARNING);return 0;}InputBox(TNameInput, 21, "请输入教师姓名");len = strlen(TNameInput);while (len <= 0){MessageBox(wnd, "姓名不能为空!\n请重新输入", "姓名错误", MB_OK | MB_ICONWARNING);InputBox(TNameInput, 21, "请输入教师姓名");len = strlen(TNameInput);}InputBox(TGenderInput, 2, "请输入教师性别(M男,F女):");len = strlen(TGenderInput);while (len != 1 || TGenderInput[0] != 'M' && TGenderInput[0] != 'F'){MessageBox(wnd, "性别只能是M或F!\n请重新输入", "性别错误", MB_OK | MB_ICONWARNING);InputBox(TGenderInput, 2, "请输入教师性别(M男,F女):");len = strlen(TGenderInput);}do {isValid = true;InputBox(TGradeInput, 5, "请输入教师所教年级(四位数,如:2015)");if (strlen(TGradeInput) < 4){MessageBox(wnd, "输入年级只能是4位整数,如2015\n请重新输入", "输入年级错误", MB_OK);isValid = false;continue;}int i = 0;while (TGradeInput[i] != '\0'){if (TGradeInput[i] < '0' || TGradeInput[i]>'9'){isValid = false;MessageBox(wnd, "输入年级只能是4位整数,如2015\n请重新输入", "输入年级错误", MB_OK);break;}i++;}} while (!isValid);do {isValid = true;InputBox(TClassInput, 5, "请输入教师所教班级(1-2位整数,如:2)");if (strlen(TClassInput) < 1){MessageBox(wnd, "输入班级只能是1或2位整数,如2\n请重新输入", "输入班级错误", MB_OK);isValid = false;continue;}int i = 0;while (TClassInput[i] != '\0'){if (TClassInput[i] < '0' || TClassInput[i]>'9'){isValid = false;MessageBox(wnd, "输入班级只能是1或2位整数,如2\n请重新输入", "输入班级错误", MB_OK);break;}i++;}} while (!isValid);do {isValid = true;InputBox(TSalaryInput, 10, "请输入教师工资");if (TSalaryInput[0] == '0'){MessageBox(wnd, "工资首位不能为零", "输入工资错误", MB_ICONWARNING | MB_OK);isValid = false;continue;}int i = 0;while (TSalaryInput[i] != '\0'){if (TSalaryInput[i] < '0' || TSalaryInput[i]>'9'){isValid = false;MessageBox(wnd, "工资首位不能为零,每位都为整数", "输入工资错误", MB_OK);break;}i++;}} while (!isValid);char strOneTeaInfor[200] = "";sprintf(strOneTeaInfor, "你录入的教师信息如下:\n\r编号:%s\n\r姓名:%s\n\r性别:%s\n\r所教年级:%s\n\r所教班级:%s\n\r工资: %s\n\r确认保存吗?",TNoInput, TNameInput, TGenderInput, TGradeInput, TClassInput, TSalaryInput);while (true){if (MessageBox(wnd, strOneTeaInfor, "确认保存", MB_YESNO) == IDYES) //确认保存{TeacherBasisInfor tempTea;tempTea.isValid = 1;strcpy(tempTea.TNo, TNoInput);strcpy(tempTea.TName, TNameInput);tempTea.TGender = TGenderInput[0];sscanf(TGradeInput, "%d", &(tempTea.TGrade));sscanf(TClassInput, "%d", &(tempTea.TClass));sscanf(TSalaryInput, "%f", &(tempTea.TSalary));fp = fopen("TeaBasIn.dat", "ab+");fwrite(&tempTea, sizeof(tempTea), 1, fp); //保存到文件的末尾fclose(fp);MessageBox(wnd, "保存成功!\n已录入一个教师", "保存成功", MB_OK | MB_ICONWARNING);break;}else if (MessageBox(wnd, "真的放弃吗?", "确认放弃", MB_YESNO | MB_ICONQUESTION) == IDYES){MessageBox(wnd, "已放弃保存,保存失败!", "已放弃保存", MB_OK | MB_ICONWARNING);return 0;}}return 1;
}
int Modifythesalary()//修改教师工资
{HWND wnd = GetHWnd();TeacherBasisInfor oneScore;char TNoInput[12]; //用户输入的11位数字字符的教师编号char TNameInput[21]; //输入教师姓名char TSalaryInput[10]; //输入教师工资int len;int isExist;FILE* fpss;InputBox(TNoInput, 12, "请输入教师编号");len = strlen(TNoInput);while (len != 11){MessageBox(wnd, "教师编号只能为11位!\n请重新输入", "编号错误", MB_OK | MB_ICONERROR);InputBox(TNoInput, 12, "请输入11位教师编号");len = strlen(TNoInput);}InputBox(TNameInput, 21, "请输入教师姓名");len = strlen(TNameInput);while (len <= 0){MessageBox(wnd, "姓名不能为空!\n请重新输入", "姓名错误", MB_OK | MB_ICONWARNING);InputBox(TNameInput, 21, "请输入教师姓名");len = strlen(TNameInput);}if ((fpss = fopen("TeaBasIn.dat", "rb")) == NULL){fpss = fopen("TeaBasIn.dat", "wb+");fclose(fpss);}elsefclose(fpss);fpss = fopen("TeaBasIn.dat", "rb+");isExist = false;while (!feof(fpss)){int length = fread(&oneScore, sizeof(oneScore), 1, fpss);if (length == 0) break;if (strcmp(oneScore.TNo, TNoInput) == 0 && //如果教师工资存在,确认修改strcmp(oneScore.TName, TNameInput) == 0){isExist = true;InputBox(TSalaryInput, 10, "请输入要修改的工资");len = strlen(TSalaryInput);while (len <= 0){MessageBox(wnd, "工资不能为空!\n请重新输入", "输入错误", MB_OK | MB_ICONWARNING);InputBox(TSalaryInput, 10, "请输入要修改的工资");len = strlen(TSalaryInput);}char strOneStuInfor[200] = "";sprintf(strOneStuInfor, "教师编号:%s\n\r姓名:%s\n\r原工资:%.1f\n\r修改后工资:%s\n\r确认修改吗?",oneScore.TNo, oneScore.TName, oneScore.TSalary, TSalaryInput);if (MessageBox(wnd, strOneStuInfor, "确认修改", MB_YESNO) == IDYES) //确认保存{TeacherBasisInfor tempScore;tempScore.isValid = 1;strcpy(tempScore.TNo, TNoInput);strcpy(tempScore.TName, TNameInput);sscanf(TSalaryInput, "%f", &(tempScore.TSalary));fseek(fpss, -sizeof(TeacherBasisInfor), SEEK_CUR);fwrite(&tempScore, sizeof(tempScore), 1, fpss);MessageBox(wnd, "修改成功!\n已修改一个教师工资", "修改成功",MB_OK | MB_ICONWARNING);}elseMessageBox(wnd, "修改未完成", "修改失败", MB_OK | MB_ICONWARNING);break;}}fclose(fpss);if (!isExist){char strMsg[200];sprintf(strMsg, "教师编号:%s\n姓名:%s\n该教师工资信息不存在。无法修改\n修改工资失败!",TNoInput, TNameInput);MessageBox(wnd, strMsg, "工资不存在,无法修改", MB_ICONWARNING | MB_OK);return 0;}return 1;
}
int Querywages()//查询工资
{HWND wnd = GetHWnd();TeacherBasisInfor oneScore;char TNoInput[12]; //用户输入的11位数字字符的教师编号char TNameInput[21];//教师姓名int len;int isExist;FILE* fpss;InputBox(TNoInput, 12, "请输入教师编号");len = strlen(TNoInput);while (len != 11){MessageBox(wnd, "教师编号只能为11位!\n请重新输入", "编号错误", MB_OK | MB_ICONERROR);InputBox(TNoInput, 12, "请输入11位教师编号");len = strlen(TNoInput);}InputBox(TNameInput, 21, "请输入教师姓名");len = strlen(TNameInput);while (len <= 0){MessageBox(wnd, "姓名不能为空!\n请重新输入", "姓名错误", MB_OK | MB_ICONWARNING);InputBox(TNameInput, 21, "请输入教师姓名");len = strlen(TNameInput);}if ((fpss = fopen("TeaBasIn.dat", "rb")) == NULL){fpss = fopen("TeaBasIn.dat", "wb+");fclose(fpss);}elsefclose(fpss);fpss = fopen("TeaBasIn.dat", "rb");isExist = false;while (!feof(fpss)){int length = fread(&oneScore, sizeof(oneScore), 1, fpss);if (length == 0) break;if (strcmp(oneScore.TNo, TNoInput) == 0 && //如果教师工资存在,查询strcmp(oneScore.TName, TNameInput) == 0){isExist = true;char strOneStuInfor[200] = "";sprintf(strOneStuInfor, "教师编号:%s\n\r姓名:%s\n\r工资:%.1f\n\r",oneScore.TNo, oneScore.TName, oneScore.TSalary);MessageBox(wnd, strOneStuInfor, "查询工资", MB_ICONINFORMATION | MB_OK);}}fclose(fpss);if (!isExist){char strMsg[200];sprintf(strMsg, "教师编号:%s\n姓名:%s\n该教师信息不存在。无法查询\n查询工资失败!",TNoInput, TNameInput);MessageBox(wnd, strMsg, "查询失败", MB_ICONWARNING | MB_OK);return 0;}return 1;
}
int Hiddenpaybreak()
{HWND wnd = GetHWnd();TeacherBasisInfor oneScore;char TNoInput[12]; //用户输入的11位数字字符的学生学号char TNameInput[21]; //用户课程代码,固定为6个数字字符int len;int isExist;FILE* fpss, * fptemp; //学生成绩文件、临时成绩文件指针if ((fpss = fopen("TeaBasIn.dat", "rb")) == NULL) //如果成绩文件不存在,则新建之{fpss = fopen("TeaBasIn.dat", "wb+");fclose(fpss);}elsefclose(fpss);InputBox(TNoInput, 12, "请输入11位教师编号");len = strlen(TNoInput);while (len != 11){MessageBox(wnd, "编号只能为11位!\n请重新输入", "编号错误", MB_OK | MB_ICONERROR);InputBox(TNoInput, 12, "请输入11位教师编号");len = strlen(TNoInput);}InputBox(TNameInput, 21, "请输入教师姓名");len = strlen(TNameInput);while (len <= 0){MessageBox(wnd, "姓名不能为空!\n请重新输入", "姓名错误", MB_OK | MB_ICONWARNING);InputBox(TNameInput, 21, "请输入教师姓名");len = strlen(TNameInput);}fpss = fopen("TeaBasIn.dat", "rb");isExist = false;while (!feof(fpss)){int length = fread(&oneScore, sizeof(oneScore), 1, fpss);if (length == 0) break;if (strcmp(oneScore.TNo, TNoInput) == 0 && //如果该名教师工资已经存在strcmp(oneScore.TName, TNameInput) == 0){isExist = true;break;}}fclose(fpss);if (!isExist){char strMsg[200];sprintf(strMsg, "编号%s\n教师%s信息不存在。无法删除\n删除信息失败!",oneScore.TNo, oneScore.TName, oneScore.TSalary);MessageBox(wnd, strMsg, "信息不存在,删除失败", MB_OK);return 0;}char strOneStuInfor[200] = "";sprintf(strOneStuInfor, "你要删除的教师信息如下:\n\r教师编号:%s\n\r教师姓名:%s\n\r工资:%.1f\n\r确认删除吗?",oneScore.TNo, oneScore.TName, oneScore.TSalary);if (MessageBox(wnd, strOneStuInfor, "请确认删除", MB_YESNO) == IDYES) //确认隐藏{if (MessageBox(wnd, "真的删除吗?\n删除后无法恢复", "确认删除",MB_YESNO | MB_ICONQUESTION) == IDYES){TeacherBasisInfor tempScore;fpss = fopen("TeaBasIn.dat", "rb");fptemp = fopen("TempStuScore.dat", "wb+");while (!feof(fpss)){int length = fread(&tempScore, sizeof(oneScore), 1, fpss);if (length == 0) break;if (strcmp(tempScore.TNo, TNoInput) != 0 || strcmp(tempScore.TName, TNameInput) != 0)fwrite(&tempScore, sizeof(tempScore), 1, fptemp);}fclose(fpss);fclose(fptemp);Sleep(20);remove("TeaBasIn.dat"); //删除老文件rename("TempStuScore.dat", "TeaBasIn.dat"); //将临时文件改名成绩文件MessageBox(wnd, "删除成功!\n已删除一个教师的信息", "删除成功", MB_OK | MB_ICONWARNING);return 1;}}return 0;
}void MainInter()
{int id; //用户输入的功能号while (TRUE){cleardevice();setcolor(DARKGRAY);setfont(40, 0, "黑体");outtextxy(150, 10, " 教师基本信息管理");setcolor(YELLOW);setfont(30, 0, "宋体");outtextxy(220, 100, "请选择功能:");setcolor(BLACK);outtextxy(220, 160, "1.教师信息录入");outtextxy(220, 210, "2.教师信息删除");outtextxy(220, 260, "3.教师工资查询");outtextxy(220, 310, "4.教师工资修改");outtextxy(220, 360, "0.返回上一层");setfont(15, 0, "黑体");outtextxy(10, 460, "欢迎使用该系统");id = getch(); //读取该键if (id == '1') //录入教师基本信息{InputTeaBasisInfo();}else if (id == '2') //删除教师基本信息{Hiddenpaybreak();}else if (id == '3') //查询教师工资{Querywages();}else if (id == '4') //修改教师工资{Modifythesalary();}else if (id == '0') //如果是'0',表示退出教师基本信息管理功能{return;}}
}
void System()
{int id;while (TRUE){cleardevice();setcolor(DARKGRAY);setfont(40, 0, "黑体");outtextxy(180, 10, "学校工资管理系统");setfont(25, 0, "宋体");setcolor(YELLOW);outtextxy(200, 100, "请选择功能:");setfont(30, 0, "宋体");setcolor(BLACK);outtextxy(200, 170, "1.教师基本信息管理模块");outtextxy(200, 240, "2.其它功能模块");outtextxy(200, 310, "0.退出登录");setfont(15, 0, "黑体");outtextxy(160, 460, "欢迎使用该系统,如有Bug请前往其他功能模块");id = getch();if (id == '1'){MainInter();}else if (id == '2'){HWND wnd = GetHWnd();MessageBox(wnd, "暂无其他功能模块!\n 敬请期待\nBug提交\n感谢您的使用", "模块", MB_ICONQUESTION | MB_OK);}else if (id == '0'){HWND wnd = GetHWnd();if (MessageBox(wnd, "是否退出登录?\n", "退出登录", MB_ICONQUESTION | MB_YESNO) == IDYES){cleardevice();Welcome();}}}
}
效果图如下:
mian函数如下:
#include <graphics.h>
#include <conio.h>
#include "CommonData.h"
#include <stdio.h>
#include "Login.h"
#include "TeaBasisInfo.h"
void main()
{initgraph(640,480);//设置一个640 X 480 像素的窗口setbkcolor(CYAN );//设置背景颜色为黄色cleardevice();//清屏while(!Welcome());System();closegraph();
}
注:本系统利用了EasyX图形库,请自行下载与查看使用教程
获取源码加入qq交流群:251413523,一起学习一起秃头。
(C语言设计系统)利用EasyX完成学校工资管理系统相关推荐
- java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署
java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署 java毕业设计基于web的学校工资管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S ...
- 基于JAVA基于web的学校工资管理系统计算机毕业设计源码+系统+lw文档+部署
基于JAVA基于web的学校工资管理系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA基于web的学校工资管理系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 ...
- javaswing员工工资系统java swing mysql 员工工资管理系统源码和导入文档(1014)
目录 1.系统运行环境 2.系统功能介绍 3.项目结构略讲 3.1乱码问题 3.2 如何将UTF-8编码系统修改为GBK编码的系统? 3.3 项目结构 3.4 项目修改 3.5 项目运行 3.6 代码 ...
- c语言设计系统,C语言教学系统设计
摘要:本文讨论基于Client/Server的智能计算机辅助教学(ICAI)的实现技术,据此采用VC#.SQL Server.IIS等开发平台,建立了一个用于C语言程序设计的ICAI系统. 关键词:C ...
- 学校运动会管理系统 c语言,学校运动会管理系统——C语言课程设计.docx
学校运动会管理系统--C语言课程设计 C语言课程设计 学 校 运 动 会 管理系统 专业:网络工程 班级:网133 报告人:王先海 139074347 刘随心 139074338 葛 翔 139074 ...
- 5g的负面影响_设计系统的实施是否会对早期概念产生负面影响?
5g的负面影响 Athe financial institution where I was recently working the design system was maintained in ...
- 基于C语言编程的职工工资管理系统项目的设计与开发
文章目录 基于C语言编程的职工工资管理系统项目的设计与开发 一.需求分析 二.项目环境 2.1.项目创建过程 2.2.向项目添加头文件与源文件 三.职工工资管理系统模块功能 3.1.系统总体设计框图 ...
- 基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA的工资管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...
- Java人事与工资管理系统的设计
技术:Java.JSP等 摘要: 本文采用自顶向下的结构化的系统分析方法,阐述了一个功能全面的人事与工资管理系统的开发过程.操作流程及其一些核心的技术.本文首先进行了项目概述,简单介绍了项目开发的背景 ...
最新文章
- [SDOI2017]新生舞会
- IntelliJ IDEA 2020.2 发布:支持Java 15、GitHub审查、运行时异常的排查辅助...
- myeclips/eclipse配置总结(根据网络整理)
- 当adobe flash player不能安装时
- Qt中的QFontDialog
- 怎么把文件放在python目录下-python – 如何将文件下载到特定目录?
- appcan 微信支付
- _cdecl和_stdcal的区别
- C++多线程快速入门(四)shared_mutex以及读写锁应用
- 在DrawingVisual上绘制圆形的进度条,类似于IOS系统风格。
- 输出华氏-摄氏温度转换表(15分)
- linux下如何关闭防火墙、查看当前的状态、开放端口
- 动态规划实战10 leetcode-64. Minimum Path Sum
- 深圳自然人报税系统的服务器地址,自然人电子税务局扣缴端怎么申报?
- Linux串口属性设置
- 在html5中flex布局详解,Flex布局详解(一)
- matlab计算系统过渡过程时间,MATLAB在水电站水力过渡过程计算仿真中的应用
- Linux网络配置完全正确却ping不通易忽略的地方
- windows10配置openvino
- lgy -oracle