学校内部工资管理系统(C语言代码)_第1页
学校内部工资管理系统(C语言代码)_第2页
学校内部工资管理系统(C语言代码)_第3页
学校内部工资管理系统(C语言代码)_第4页
学校内部工资管理系统(C语言代码)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TOC\o"1-2"\h\z\u目录一引言1.1编写目的31.2开发背景31.3定义32.1要求43.1系统分析43.2工作负荷53.3软件设计环境5二需求分析1.1数据流图51.2数据字典72.1用户登录信息表112.2工资计算标准表112.3出勤汇总表122.4银行发放工资表123.1对功能的规定12三概要设计1.1结构121.2功能与模块的关系132.1外部接口132.2内部接口13四系统实现1.1系统登录界面141.2系统管理员管理主界面及工资汇总界面141.3教职工查询工资主界面141.4用户管理界面141.5添加工资单界面141.6密码修改界面141.7工资单打印界面14五课程设计总结15六程序代码151.1软件测试27七参考文献29一可行性分析1引言1.1编写目的可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解经过对此工程进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。本报告经审核后,交软件经理审查。1.2背景开发软件名称:学校内部工资管理系统。工程与其他软件,系统的关系:本工程采用客户机/效劳器原理,客户端的程序是建立在WindowsNT系统上以PB9.0开发软件的应用程序,效劳器端采用Linux为操作系统的工作站,是采用SQL2000的为开发软件的数据库效劳程序。1.3定义〔1〕员工考勤统计信息。包括的数据项有缺勤时间、缺勤天数、缺勤类别等。这些信息可从考勤管理系统中获取。〔2〕员工工种等信息。包括的数据项有工种等级、工种根本工资等。〔3〕员工津贴信息。包括的数据项有加班时间、加班天数、加班类别等。〔4〕员工医疗保险信息。包括的数据项有医疗保险时间、医疗费用保险、社会保险费用等。〔5〕员工根本信息。包括的数据项有员工号、员工姓名、员工工种、员工所属部门等。〔6〕员工月工资信息。包括的数据项有生成工资的时间、根本工资、缺勤扣除、加班费用、医疗保险费、月应发工资等。〔7〕员工年终奖金信息。包括的数据项有年份、员工的年终奖金数额等。2可行性研究的前提2.1要求主要功能:工资管理涉及学校管理的多个方面,如员工职务工种变化、员工考勤情况、员工加班情况、员工医疗保险等等。根据这些信息,在每个月的某个固定时间,生成企业员工的月工资。对于月工资,能够实现按照员工、部门、月、年、进行统计分析,产生相应报表。性能要求:在学校范围内统一各种原始单据的格式,统一账目和报表的格式。删除不必要的管理冗余,实现管理标准化、科学化。程序代码标准化,软件统一化,确保软件的可维护性和实用性。能够连接各个关联的数据库,获取数据库中的信息。保证各个数据库表格相关的工程之间有相同的属性。输入要求:数据完整,详实。输出要求:简捷,快速,实时。平安与保密要求: 管理员享有对教职工工资信息的管理与修改。人事处只享有对教职工个人信息信息库的局部修改〔写入与读出〕。完成期限:预计2个月,即截止2023年1月。3.1系统的分析学校内部的人事的管理,从大的方面分,主要集中在学校职员的个人情况,工资细目,调入调出及用车等。所以该系统主要是实现对数据的录入,插入,删除,网上查询,统计,更新,打印等功能。其次,为了信息的保密与平安,系统还要提供一定的平安机制。根据以上系统的功能分析,该系统决定采用MDI风格,它主要分为以下几个模块。文件模块:此模块实现本系统对数据的翻开,保存,打印预览,打印及用户管理等功能,并可由此推出系统。信息管理模块:此模块实现系统的信息管理,包括对职工情况一览表,职工调入调出情况表,职工工资表及其它各表的信息数据的插入,删除,修改,保存等功能。查询模块:此模块实现本系统的查询功能,能将个人的根本情况,调入调出情况,工资情况等检索出来,并可实现多条件查询和模糊查询。工资标准设立模块:此模块用于对数据库中的信息按照一定的规那么对工资进行标准设立。系统效劳模块:此模块用来系统管理人员设置密码和对系统的功能和开发信息进行介绍等。以根据要求修改员工工资。如果系统没有检测到该员工的信息那么返回上一层,管理员重新输入员工信息,直到查到该员工的信息,并进行修改位置。如果登录者不是管理员,只是普通员工的帐号,那么进入普通帐号界面,输入要查询的员工号,系统自动判断该员工号是否存在,如果存在那么显示该员工的工资信息。如果该员工号不存在那么返回上一层界面。3.2工作负荷(1)员工每个工种根本工资的设定。(2)企业工资报表的生成。支持各种形式的报表,如单个员工工资报表的生成、部门员工工资报表的生成、按照月份统计工资报表的生成等。(3)管理员可以查询、更改任何员工的工资。(4)员工可以凭工号查询员工工资。(5)工资管理系统的使用帮助。〔6〕现有工资管理系统需要根据公司的经营状况以及人员变动对工作量进行分配。当公司调入新职员时,需要对系统进行职员更新即插入操作等以及随时对数据库进行不断的更新。任务繁重,工作量大。3.3软件设计环境C语言二需求分析1.1数据流图1.2数据字典数据字典是软件分析过程中对数据的描述,是数据流图的必不可少的辅助资料。数据字典的定义和数据流图是同时进行的,每当完成一张数据流图时,都需要对该数据流图中的成分进行完整的定义,数据字典是需求分析阶段一个重要的工具,通过在数据字典中建立一组严密一致的数据定义可以帮助软件分析人员和用户之间交流,同时也有助于软件人员之间的交流,容易到达对数据的统一认识。〔1〕外部实体的数据字典外部实体名称:各部门外部实体名称:各部门简述:提交职工的根本信息和出勤情况输入数据流:职工工资单输出数据流:职工根本信息外部实体名称:银行外部实体名称:银行简述:对职工工资进行转账的部门输入数据流:职工工资信息外部实体名称:人事处外部实体名称:人事处简述:对职工添加,删除进行管理的部门输入数据流:职工出勤信息输出数据流:职工出勤报表〔2〕数据元素的数据字典数据项名称:员工工号类型:char长度:10说明:学校分发给每个职工的编号备注:无数据项名称:姓名类型:char长度:8说明:员工的个人姓名备注:无数据项名称:性别类型:char长度:2说明:员工的所拥有的性别备注:无数据项名称:根本工资类型:数字长度:8说明:员工的得到的工资备注:无数据项名称:上课工资类型:数字长度:8说明:员工根据上课的课时得到工资备注:无数据项名称:其他费用类型:数字长度:8说明:员工在职期间的其他费用备注:无名称:职工根本信息简要说明:职工的个人信息数据来源:各系部数据流向:职工根本信息管理子系统数据流的组成:工号+姓名+性别〔3〕数据流的数据字典名称:职工工资单简要说明:职工的工资条数据来源:职工工资子系统数据流向:各系部数据流的组成:工号+姓名+工资单月份+根本工资+岗位津贴+加班工资+生活补贴+业绩奖金+上课工资+养老保险+医疗费用+失业金+公积金+缺勤扣费+房租+水电费+代扣所得税+应发工资+扣款总额+实发工资名称:根本出勤信息简要说明:每个月20号把出勤信息上报人事处数据来源:人事处数据流向:职工出勤子系统数据流的组成:工号+姓名+出勤信息名称:职工工资信息简要说明:所有职工的工资信息集合数据来源:职工工资子系统数据流向:银行数据流的组成:工号+姓名+实发工资〔4〕处理过程的数据字典名称:职工工资信息生成说明:人事处将根据出勤情况和职工的根本信息生成的职工工资信息输入:人事处输出:生成职工工资信息表处理:人事处根据出勤情况和所得奖金以及扣款情况以及职工个人的根本信息生成一个根本工资表名称:财务处处理职工信息整理发送说明:财务处根据职工工资根本信息整理后送往各系部和银行输入:职工工资根本信息表输出:将职工工资信息生成工资表和工资条送往银行和各系部处理:财务处通过工资表和职工根本信息表整理生成工资条和工资表送往各系部和银行.数据存储的数据字典数据存储名称:职工工资信息表说明:按职工工号给职工发的根本工资数据存储组成:工号+姓名+工资单月份+根本工资+岗位津贴+加班工资+生活补贴+业绩奖金+上课工资+养老保险+医疗费用+失业金+公积金+缺勤扣费+房租+水电费+代扣所得税+应发工资+扣款总额+实发工资关键字:工号有关的数据流:无数据存储名称:职工根本信息表说明:职工的个人信息数据存储组成:工号+姓名+性别+密码关键字:工号有关的数据流:无2输入输出要求数据描述2.1用户登录信息表字段字段名数据类型宽度〔字节〕1用户ID字符152用户密码字符203用户身份字符104所属部门字符205职务字符206身份证号字符187银行帐号字符202.2工资计算标准表字段字段名数据类型宽度〔字节〕1员工ID字符152部门ID字符203根本工资整型84奖金比率浮点型85罚金比率浮点型86扣税总额浮点型87工资总额浮点型88统计日期日期2.3出勤汇总表字段字段名数据类型宽度1员工ID字符15字节2应出勤时间整型4字节3实际出勤时间整型4字节4请假时间整型4字节5无故缺勤时间整型4字节2.4.银行发放工资表字段字段名数据类型宽度1银行名字符30字节2工资表单号字符30字节3发放时间日期3需求规定3.1对功能的规定〔1〕用户的登录及退出:用户登录后,可以查询当月及年度的工资信息并打印工资条,用户可以修改用户密码,完成一切任务后用、用户可以平安退出〔2〕系统用户管理:实现对用户数据的修改,删除等相关操作。〔3〕用户信息管理:实现对用户信息的添加、修改及删除等相关操作。〔4〕工资标准设立:根据职工的职务、职称等其他信息设定职工的工资的标准。三概要设计1.1结构1.2功能需求与模块的关系〔1〕用户需要登录系统才能进行工资信息的查询及打印,并修改用户密码系统管理员需要对职工信息进行添加、修改、删除等操作就需要用到用户信息管理模块。工资标准要根据职称,职位等的不同进行设定。就需要用到工资标准设立模块2.1外部接口运行本软件要求处理器在奔腾III以上、内存在256MB以上的计算机。能够支持、Windows2000、WindowsXP及windows7的运行环境2.2内部接口本系统内部元素之间主要通过数据库接口完成相应功能。登录模块:完成对用户身份的验证。初始化模块:在身份验证后,系统调用初始化操作,执行完毕后进入消息循环状态。查找模块:由相应消息驱动,完成对信息进行查看功能。删除模块:具有此权限的用户完成对信息删除功能。打印模块:实现用户从系统打印功能。退出模块:实现用户从系统退出功四系统实现1.1系统登录界面系统用户在该界面输入正确的工号、密码和验证码即可登录该系统。登录模块会自动的判断用户输入的工号的权限。如果输入的工号是admin,那么系统默认转向管理员主界面;如果输入的是其他的工号,系统会检查是否有该用户的工资信息,假设有,那么进入该用户的工资查询界面,假设没有,那么提示“没有您的工资单〞。1.2系统管理员管理主界面及工资汇总界面系统管理员〔即人事处管理员〕通过该页面可以连接到其他的页面〔其他页面包括:用户管理页面、添加工资单页面、查询教职工工资、修改及删除教职工工资等〕,该页面分页汇总显示了所有教职工的工资详细信息,管理员可以对各教职工的工资信息进行添加、修改和删除。1.3教职工查询工资主界面教职工用户通过输入正确的工号、密码和验证码即可登录自己的工资查询主页面,在此页面中,教职工可以查询自己近几个月的工资详细信息,也可以对自己的登录密码进行修改。同时,能打印出自己需要的工资单。1.4用户管理界面该页面由管理员来操作,通过系统管理员主页面可以访问该页面。主要是对教职工的个人信息进行汇总、添加、修改和删除等操作。1.5添加工资单界面该页面由管理员来操作,通过系统管理员主页面可以访问该页面。主要是对教职工的工资信息进行添加,添加时可以选择所添加工资信息的月份。1.6密码修改界面该页面主要实现的是用户密码的修改。不同的用户登录系统后,均能对自己的登录密码进行修改。1.7工资单打印界面该页面主要实现的是工资单的打印。系统管理员登录后能打印所有教职工的工资单,教职工登录后仅能打印本人的工资单。五课程设计总结六程序代码#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

#include<string.h>

#include<conio.h>

#defineTITLE"\n月份工号姓名应发工资各种折扣实发工资\n"

#defineDATA"%2d%4ld%-10s%6.1f%6.1f%6.1f\n",p1->month,p1->num,p1->name,p1->should_pay,p1->rebate,p1->actual_pay

typedefstructpay

{

longnum;

shortmonth;

charname[20];

floatgw,jn,zw,zl,jt,yj;

floatshould_pay;

floatfz,gj,sd,others;

floatrebate;

floatactual_pay;

structpay*next;

}PAY;

FILE*fp;

PAY*p1=NULL,*p2=NULL,*head=NULL;

voidmenu();

PAY*input();

voidoutput();

voidsave(PAY*head);

PAY*open();

PAY*insert();

voidsearch();

PAY*del();

PAY*revise();

/*菜单*/voidmain(void)

{

shortsel;

do

{

menu();

scanf("%d",&sel);

switch(sel)

{

case1:

head=input();//用户数据添加模块

break;

case2:

head=insert();//用户数据插入模块

break;

case3:

head=revise();//用户数据修改模块

break;

case4:

head=del();//用户数据删除模块

break;

case5:

search();//用户数据查找模块

break;

case6:

output();//用户数据输出模块

break;

case0:

break;

}

}while(sel!=0);

}

voidmenu()

{

printf("\n\n\n\n\n\n\n");

printf("\t\t\t\t*主菜单项选择项*\n\n");

printf("\t\t\t\t1.创立职工工资信息\n");

printf("\t\t\t\t2.添加职工工资信息\n");

printf("\t\t\t\t3.修改职工工资信息\n");

printf("\t\t\t\t4.删除职工工资信息\n");

printf("\t\t\t\t5.查找职工工资信息\n");

printf("\t\t\t\t6.信息列表分类\n");

printf("\t\t\t\t7.保存信息\n");

printf("\t\t\t\t0.退出\n");

printf("\n\n\n\n\n\n\n\n");

}

/*用户数据添加模块*/

PAY*input()

{

shortn=1;

p1=(PAY*)malloc(sizeof(PAY));

if(p1==NULL)

{

printf("内存缺乏,无法创立链表!");

getch();

}

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

printf("工号:");

scanf("%d",&p1->num);

if(p1->num==0)

{

printf("按任意键返回!");

getch();

free(p1);

return0;

}

getchar();

printf("姓名:");

gets(p1->name);

printf("工资月份:");

scanf("%d",&p1->month);

printf("根本工资,级别工资,职务津贴,工龄津贴,其他津贴,绩效奖励:\n");

scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj);

printf("房租扣款,公积金,水电费,其它扣款:\n");

scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);

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",n);

printf("工号:");

scanf("%d",&p1->num);

getchar();

if(p1->num==0)

{

p1=NULL;

break;

}

printf("姓名:");

gets(p1->name);

printf("工资月份:");

scanf("%d",&p1->month);

printf("根本工资,级别工资,职务津贴,工龄津贴,其他津贴,绩效奖励:\n");

scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj);

printf("房租扣款,公积金,水电费,其它扣款:\n");

scanf("%f,%f,%f,%f",&p1->fz,&p1->gj,&p1->sd,&p1->others);

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;

//editbyYan-XingyuClassNetwork-021

printf("职工信息已输入,请按任意键返回,并存盘……");

getch();

returnhead;

}

/*用户数据输出模块*/

voidoutput()

{

shortsel,flag,month;

floatmin,max;

do

{

do

{

printf("\n\n请选择您的列表方式:\n");

printf("\t\t1.全部清单\n");

printf("\t\t2.按月输出\n");

printf("\t\t3.按工资段输出\n");

printf("\t\t0.返回\n");

scanf("%d",&sel);

}while(sel!=1&&sel!=2&&sel!=3&&sel!=0);

head=open();

if(head==NULL)

return;

else

switch(sel)

{

case1:

printf("\n\t\t\t******全部清单******\n");

printf(TITLE);

p1=head;

do

{

printf(DATA);

p1=p1->next;

}while(p1!=NULL);

break;

case2:

flag=0;

printf("输入要查的月份:");

scanf("%d",&month);

printf("\n\t\t\t******第%d月工资清单******\n",month);

printf(TITLE);

p1=head;

do

{

if(p1->month==month)

{

printf(DATA);

p1=p1->next;

flag=1;

}

else

p1=p1->next;

}while(p1!=NULL);

if(flag==0)

printf("没有该月清单\n");

break;

case3:

flag=0;

printf("输入最低工资:");

scanf("%f",&min);

printf("输入最高工资:");

scanf("%f",&max);

printf("\n\t\t******%5.1f到%5.1f工资的名单******\n",min,max);

printf(TITLE);

p1=head;

do

{

if(p1->actual_pay>min&&p1->actual_pay<max)

{

printf(DATA);

p1=p1->next;

flag=1;

}

else

p1=p1->next;

}while(p1!=NULL);

if(flag==0)

printf("没有该工资段的职工\n");

break;

case0:

break;

}

}while(sel!=0);

}

/*翻开文件*/

PAY*open()

{

shortn=1,read;

fp=fopen("pay.txt","r");

if(fp==NULL)

{

printf("无法翻开档案文件!");

getch();

returnNULL;

}

if((p1=p2=(PAY*)malloc(sizeof(PAY)))==NULL)

{

printf("内存缺乏!");

getch();

returnNULL;

}

read=fread(p1,sizeof(PAY),1,fp);

if(!read)

{

printf("文件读取出错!1");

getch();

returnNULL;

}

if(p1->next==NULL)

head=p1;

else

{

do

{

if(n==1)

head=p1;

else

p2->next=p1;

n++;

p2=p1;

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

{

printf("内存缺乏!");

getch();

returnNULL;

}

read=fread(p1,sizeof(PAY),1,fp);

if(!read)

{

printf("文件读取出错!2");

getch();

returnNULL;

}

}while(p1->next!=NULL);

p2->next=p1;

}

returnhead;

fclose(fp);

}

/*用户数据插入模块*/

PAY*insert()

{

PAY*p3=NULL;

charsel;

head=open();

if(head==NULL)

returnNULL;

else

do

{

printf("请输入要插入的职工信息:\n");

p3=(PAY*)malloc(sizeof(PAY));

if(p3==NULL)

{

printf("内存缺乏,无法创立链表!");

getch();

}

printf("工号:");

scanf("%d",&p3->num);

getchar();

printf("姓名:");

gets(p3->name);

printf("工资月份:");

scanf("%d",&p3->month);

printf("根本工资,级别工资,职务津贴,工龄津贴,其他津贴,绩效奖励:\n");

scanf("%f,%f,%f,%f,%f,%f",&p3->gw,&p3->jn,&p3->zw,&p3->zl,&p3->jt,&p3->yj);

printf("房租扣款,公积金,水电费,其它扣款:\n");

scanf("%f,%f,%f,%f",&p3->fz,&p3->gj,&p3->sd,&p3->others);

p3->should_pay=p3->gw+p3->jn+p3->zw+p3->zl+p3->jt+p3->yj;

p3->rebate=p3->fz+p3->gj+p3->sd+p3->others;

p3->actual_pay=p3->should_pay-p3->rebate;

p1=head;

while(p1!=NULL)

{

p2=p1;

p1=p1->next;

}

p2->next=p3;

p3->next=NULL;

printf("成功插入,是否继续?是〔Y〕否〔N〕\n");

sel=getch();

}while(sel=='Y'||sel=='y');

printf("\n任意键返回,并存盘……\n");

getch();

returnhead;

}

/*用户数据查找模块*/

voidsearch()

{

shortsel;

longnum;

charname[20],choose;

head=open();

if(head==NULL)

return;

else

do

{

do

{

printf("\n选择查找方式:\n");

printf("\t\t1.按工号查找\n");

printf("\t\t2.按姓名查找\n");

scanf("%d",&sel);

getchar();

}while(sel!=1&&sel!=2);

switch(sel)

{

case1:

printf("输入要查的工号:");

scanf("%ld",&num);

break;

case2:

printf("输入要查的姓名:");

gets(name);

break;

}

p1=head;

while((p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0))//用成p1!=NULL有问题?

p1=p1->next;

if((p1->num==num)||strcmp(p1->name,name)==0)

{

printf("您要查找的信息如下:\n");

printf(TITLE);

printf(DATA);

}

else

printf("没有该信息!\n");

printf("是否继续?是〔Y〕否〔N〕\n");

choose=getch();

}while(choose=='Y'||choose=='y');

printf("任意键返回");

getch();

}

/*用户数据删除模块*/

PAY*del()

{

shortsel;

longnum;

charname[20],choose;

head=open();

if(head==NULL)

returnNULL;

else

do

{

do

{

printf("\n选择删除方式:\n");

printf("\t\t1.按工号删除\n");

printf("\t\t2.按姓名删除\n");

scanf("%d",&sel);

getchar();

}while(sel!=1&&sel!=2);

switch(sel)

{

case1:

printf("输入要删除的工号:");

scanf("%ld",&num);

break;

case2:

printf("输入要删除的姓名:");

gets(name);

break;

}

p1=head;

if((p1->num==num)||strcmp(p1->name,name)==0)

{

head=p1->next;

printf("删除信息成功!");

}

else

{

while((p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0))

{

p2=p1;

p1=p1->next;

}

if((p1->num==num)||strcmp(p1->name,name)==0)

{

p2->next=p1->next;

free(p1);

printf("\n删除信息成功!\n");

}

else

printf("\n没有该信息!\n");

}

printf("是否继续?是〔Y〕否〔N〕\n");

choose=getch();

}while(choose=='Y'||choose=='y');

printf("任意键返回,并存盘……");

getch();

returnhead;

}

/*用户数据修改模块*/

PAY*revise()

{

shortsel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论