VB课程设计(论文)-企业工资管理系统.doc_第1页
VB课程设计(论文)-企业工资管理系统.doc_第2页
VB课程设计(论文)-企业工资管理系统.doc_第3页
VB课程设计(论文)-企业工资管理系统.doc_第4页
VB课程设计(论文)-企业工资管理系统.doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书 NO.56 工资管理系统1 .设计目的随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的管理系统,改变传统的工资管理方式以适应快速发展的社会主义市场经济已经成为企业发展的先决条件。建设一个科学高效的工资管理系统是解决这一问题的必由之路。传统的工资管理方法,都是通过人工统计和计算的管理方式进行的。这样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了工资管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易产生的问题,使管理员能够有序的、全面的对每一位职工进行管理,严格按照工资条款及发放制度计算并发放员工工资。企业工资管理系统可以完成日常工资的管理,如查询、修改、增加、删除以及存储等操作,迅速准确地完成各种工资数据的的统计和汇总工作,快速打印出工资报表等,大大提高了企业的管理效率。2 .设计方案论证2.1开发和运行环境选择操作系统:Windows2000/NT/XP/CE。开发语言:Visual Basic 6.0; Access。2.2 需求分析工资管理系统是企业最基本的管理系统,可通过该系统管理企业员工的工资,奖惩,考勤等信息。准确记录员工的工作情况,包括出勤出差,加班,福利等。还可生成企业员工的工资表,并对工资的发放进行准确的记录,同时企业财务主管可以将数据的保存和分析计算工作交由相应的程序来处理,可以减少处理大量纸质文件的时间。系统实现的主要功能如下: 对单位人员的变动进行添加和删除。 对职工的工资进行计算、修改和查询。查询统计功能。添加和删除用户,修改密码。2.3 可行性分析传统的工资管理方法,都是通过人工计算的方式进行的,这样的管理方法不但费时费力,也易产生计算上的错误,计算机技术的全面普及提高了管理效率,也克服了传统管理方法中容易产生的问题,使管理能够全面有序地对每一位员工进行管理,严格按照工资条款及方法制度计算并发放工资。企业工资管理系统可完成日常的管理工作,迅速准确地完成各种工资数据的统计和汇总工资,快速打印报表等,大大提高了企业工资管理的效率。3.系统总体功能设计3.1功能模块工资管理系统是由工资基本信息管理、工资信息管理、系统管理等几个功能模块组成,规划系统功能模块如下:工资信息设置模块:工资信息设置模块主要包括基本工资设置和计算公式设置。工资信息管理模块:工资信息管理模块主要包括统计出勤信息,计算实发工资,查询工资,导出工资表。系统管理模块:系统管理模块主要包括添加和删除用户,修改密码。3.2 系统功能结构图工资系统的功能结构图如下所示: 系统管理工资信息管理工资信息设置企业工资管理系统统计出勤信息计算公式设置基本工资设置添加 删除用户修改密码计算实发工资查询工资图1 系统功能结构图3.3数据库设计3.3.1 数据库需求分析针对企业工资信息管理系统的需求,通过对员工工资计算过程的内容和数据流程分析。为本系统设计如下的数据项和数据结构4:基本工资信息: 包括员工编号和基本工资。计算公式信息: 包括加班费的百分比,出差工资,旷工,迟到早退扣发等。出勤统计信息: 包括员工编号,姓名,统计日期,出勤天数,迟到早退次数,加班天数,出差天数等。3.3.2实现数据库启动Access创建一个新的数据库 ,命名为aa.mdb, 保存在要存放这个系统的所有工程文件的文件夹中。这个系统需要员工的考勤信息,把上一张使用的cc.mdb拷贝到aa.mdb所在的文件夹,下面为系统中用到的表:表1 员工工资设定表字段名称数据类型ID自动编号记录编号StuffID文本员工编号Sposition文本员工职务Salary货币员工工资表2奖金福利等其他项目设置表字段名称数据类型ID自动编号记录编号StuffID文本员工编号YearMonth日期/时间年月Type数字类型Name文本名称Money货币金额表3员工工资统计信息表字段名称数据类型ID自动编号记录编号StuffID文本员工编号StuffName文本员工姓名YearMonth日期/时间时间BasicSalary货币基本工资Bonus货币奖金Welfare货币福利Allowance货币津贴LESub货币迟到早退Overtime货币加班费Errand货币出差费Total货币总额表4员工出勤统计信息表字段名称数据类型ID自动编号记录编号StuffID文本员工编号StuffName文本员工姓名RecordMonth日期/时间统计时间Attendance数字出勤天数LateEarly数字迟到早退Absent数字旷工次数OvertimeCom数字正常加班OvertimeSpe数字特殊加班Errand数字出差次数表5工资计算公式窗体字段名称数据类型OvertimeCom数字正常加班OvertimeSpe数字特殊加班Errand数字出差工资Absent数字旷工工资LE数字迟到早退4.主要功能模块设计4.1建立主窗体和登陆窗体添加主窗体单击工具栏的添加MDI窗体-“添加MDI窗体”菜单,选择MDI窗体,单击打开按钮,为这个工程添加一个多文档窗体作为主窗体。添加主窗体后,设置主窗体的属性。然后在添加好的窗体中,单击鼠标右键,从弹出的快捷菜单中选择”菜单编辑器”命令。在弹出的菜单编辑器对话框中添加需要的菜单,并且使用方向键为菜单分级。设计好的窗体如图所示:图2 员工工资管理系统主界面主窗体中的代码基本上都是实现单击某个菜单项就弹出相应窗体的语句,选择“系统”-“退出”菜单,关闭系统。建立登陆窗体首先要为工程添加一个窗体,在工具栏中选择“添加窗体”命令。设计好的窗体如图所示:图3登陆窗体输入用户名称和密码后,单击“确定”按钮,进入系统。4.2 建立添加用户和修改密码窗体设计好的窗体如图所示:图4添加用户窗体输入新的用户名称和密码后,单击“确定”按钮,系统将会添加新的用户。4.3 建立基本工资窗体 为工程添加一个普通窗体。再为这个窗体添加2个按钮(Optionbutton),2个下拉列表,2个标签,1个文本框和2个按钮。设计好的窗体如图5所示:图5设置基本工资窗体这个窗体会在两个地方使用到,一个是添加,另一个就是修改,在窗体载入时系统应自动判断状态。选择员工编号或选择职务,然后填写工资金额,单击“确定”按钮,系统就会按照选择的方式,设置员工的基本工资。4.4 建立工资计算公式窗体为工程添加一个普通窗体。然后对文本框和命令按钮控件进行属性设置。 图6计算公式窗体输入内容后,单击“设置”按钮,设置计算公式中使用的数字。4.5建立出勤结果信息报表窗体本窗体中使用了Adodc 控件和DataGrid控件。Adodc1的属性Visible一定要设置为false。设计好窗体如图7所示:图7出勤结果信息报表窗体5 .设计体会经过将近两周的课程设计,使我各个方面的能力都有所提高,特别是在解决实际问题的能力方面有了大幅度的提高。对于现代企业来说,企业管理自动化日趋成为一种需要。企业管理自动化主要是利用计算机技术、管理科学等先进的科学技术,最大限度地提高办公效率和改进办公质量,利用科学的管理方法,借助于各种先进技术,辅助决策,提高管理的科学化水平,以实现办公活动的科学化、自动化。通过系统的开发,我对面向对象的程序设计方法有了更加深刻的认识,对VB的功能特性有了更多的了解。在开发设计过程中,我尽可能使所开发的系统功能完善且更加人性化,至此已基本达到我预期设想的系统设计目标。这里我仅给出了一些常用的功能,还可以扩充,使其形成更完整,功能更强大的工资管理系统。如添加:奖惩操作的经办人,批复人,批复时间等,更符合企业实际的要求;还可以进行加班细分,包括加班的起始时间,结束时间等,这样就更为准确了。在设计中,我深知自己掌握的知识还远远不够,掌握的一些理论知识应用到实践中去,总会出现一些这样或那样的问题,这也进一步说明了理论联系实际的重要性。更多的是在实际运用中来对书本上的知识进行融会贯通,这样才能够更好的解决实际问题。 参考文献1 刘萌,周学明,郭安源.Visual Basic 企业办公系统开发导航M. 北京:人民邮电出版社,2001.5:117-160 2 刘天惠.Visual Busic程序设计教程M. 北京:清华大学出版社,2001.1: 169-1723 龚沛曾,陆慰民,杨志强.Visual Basic 程序设计简明教程M. 北京:高等教育出版社,2001.1: 53-554 刘韬,骆娟.Visual Basic 数据库通用模块及典型系统开发M. 北京:人民邮电出版社,2006.1:50-55 5 张立科.Access信息管理系统开发M. 北京:人民邮电出版社,2005.4:42-447. 附录 主窗体中的代码基本上都是实现单击某个菜单项就弹出相应窗体的语句,选择“系统”-“退出”菜单,关闭系统,代码如下Private Sub Menu_exit_Click()UnloadMe Exit Sub End Sub 登陆窗体代码如下Private Sub cmdOK_Click() Dim sql As String Dim rs As ADODB.RecordsetIf Trim(UserName.Text = ) Then MsgBox 没有输入用户名称,请重新输入!, vbOKOnly + vbExclamation, 警告 UserName.SetFocusElse sql = select * from UserInfo where UserID= UserName.Text Set rs = getRS(sql, Salary) If iflag = 1 Then If rs.EOF = True ThenMsgBox 没有这个用户,请重新输入!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus ElseIf Trim(rs.Fields(1) = Trim(PassWord.Text) Then rs.Close Me.Hide strUserName = Trim(UserName.Text) frmMain.Show Unload Me Else MsgBox 密码不正确,请重新输入!, vbOKOnly + vbExclamation, 警告 PassWord.SetFocus PassWord.Text = End If End If End If End IfpwdCount = pwdCount + 1 If pwdCount = 3 Then Unload Me End IfEnd SubPrivate Sub Form_Load() pwdCount = 0 strUserName = End SubPrivate Sub PassWord_KeyDown(KeyCode As Integer, Shift As Integer) TabToEnter KeyCodeEnd SubPrivate Sub UserName_KeyDown(KeyCode As Integer, Shift As Integer)TabToEnter KeyCodeEnd Sub 添加新的用户窗体代码如下Private Sub cmdOK_Click() Dim sql As String Dim rs As ADODB.RecordsetIf Trim(UserName.Text) = Then MsgBox 请输入用户名称!, vbOKOnly + vbExclamation, 警告 Exit Sub UserName.SetFocus Else sql = select * from UserInfo where UserID= UserName Set rs = getRS(sql, Salary) If rs.EOF = False Then MsgBox 这个用户已经存在!请重新输入用户名称!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus UserName.Text = PassWord.Text = confirmPWD.Text = Exit Sub Else If Trim(PassWord.Text) Trim(confirmPWD.Text) Then MsgBox 两次输入的密码不一致,请重新输入密码!, vbOKOnly + vbExclamation, 警告 PassWord.Text = confirmPWD.Text = PassWord.SetFocus Exit Sub ElseIf Trim(PassWord.Text) = Then MsgBox 密码不能为空!, vbOKOnly + vbExclamation, 警告 PassWord.Text = confirmPWD = PassWord.SetFocus Else sql = insert into UserInfo (UserID,UserPWD) values( UserName sql = sql , PassWord ) Call TransactSQL(sql, Salary) MsgBox 添加成功!, vbOKOnly + vbExclamation, UserName.Text = PassWord.Text = confirmPWD.Text = UserName.SetFocus End If End If End IfEnd SubPrivate Sub Form_Load() UserName.Text = PassWord.Text = confirmPWD.Text = End sub 工资计算公式窗体代码如下 Me.textLE = Private Sub init() Me.textAbsent = Me.textErrand = Me.textOvertimeCom = Me.textOvertimeSpe = Me.textOvertimeCom.SetFocusEnd SubPrivate Sub cmdOK_Click() If Me.textOvertimeCom = And IsNumeric(Me.textOvertimeCom) = False Then MsgBox 请输入正常加班工资百分比!, vbOKOnly + vbExclamation, 提示! Me.textOvertimeCom = Me.textOvertimeCom.SetFocus ElseIf Me.textOvertimeSpe = And IsNumeric(Me.textOvertimeSpe) = False Then MsgBox 请输入特殊加班工资百分比!, vbOKOnly + vbExclamation, 提示! Me.textOvertimeSpe = Me.textOvertimeSpe.SetFocus ElseIf Me.textErrand = And IsNumeric(Me.textErrand) = False Then MsgBox 请输入出差工资!, vbOKOnly + vbExclamation, 提示! Me.textErrand = Me.textErrand.SetFocus ElseIf Me.textAbsent = And IsNumeric(Me.textAbsent) = False Then MsgBox 请输入旷工扣发金额!, vbOKOnly + vbExclamation, 提示! Me.textAbsent = Me.textAbsent.SetFocus ElseIf Me.textLE = And IsNumeric(Me.textLE) = False Then MsgBox 请输入迟到早退扣发金额!, vbOKOnly + vbExclamation, 提示! Me.textLE = Me.textLE.SetFocus Else Call setValue Call init End IfEnd SubPrivate Sub Label4_Click()End Sub 添加设置公式函数seetValue(),代码如下Private Sub setValue() Dim sql As String Dim rs As New ADODB.Recordset sql = select * from FormulaSetting Set rs = getRS(sql, Salary) If rs.EOF = False Then sql = delete from FormulaSetting Call TransactSQL(sql, Salary) End If rs.AddNew rs.Fields(0) = Me.textOvertimeCom rs.Fields(1) = Me.textOvertimeSpe rs.Fields(2) = Me.textErrand rs.Fields(3) = Me.textAbsent rs.Fields(4) = Me.textLE rs.Update rs.Close MsgBox 已经设置公式!, vbOKOnly + vbExclamation, 设置结果!End Sub单击”恢复默认值”按钮系统将会恢复公式中的默认值。如果需要使用可变的默认值,可以在数据库中设置一项默认值字段,这样可以方便的更改默认值,代码如下Private Sub cmdDefault_Click() Me.textAbsent = 50 Me.textErrand = 200 Me.textOvertimeCom = 200 Me.textOvertimeSpe = 400 Me.textLE = 20 Call setValueEnd Sub 出勤结果信息报表窗体使用了Adodc 控件和DataGrid控件。Adodc1的属性Visible一定要设置为false。Private Sub Form_Load() Dim sql As String Dim rs As New ADODB.Recordset sql = select * from AttendanceStatistics order by ID Me.Adodc1.ConnectionString = Provider=Microsoft.jet.oledb.4.0;Data Source= App.Path Salary.mdb Me.Adodc1.RecordSource = sql Me.Adodc1.Refresh Set Me.DataGrid1.DataSource = Me.Adodc1.Recordset Me.DataGrid1.RefreshEnd Sub 工资统计结果报表窗体,代码如下Public Sub BasicTopic() Dim i As IntegerWith Me.MSFlexGrid2 .TextMatrix(0, 0) = 记录编号 .TextMatrix(0, 1) = 员工编号 .TextMatrix(0, 2) = 员工姓名 .TextMatrix(0, 3) = 员工职务 .TextMatrix(0, 4) = 基本工资 For i = 0 To 4 .ColAlignment(i) = 4 Next iFor i = 0 To 4 .ColWidth(i) = 1000 Next i End WithEnd Sub性别学院姓名联系电话学号 学生 图1 学生信息实体单据编号宿舍编号管理员编号 管理员 图2 管理员信息实体入住日期学生学号宿舍编号退舍日期退舍编号 退舍 图3 退舍信息实体宿舍类型宿舍编号学生学号学生姓名学生联系电话宿舍备注 宿舍 图4 宿舍信息实体入住日期宿舍编号学生姓名单据编号 单据 图5 单据信息实体 学生 1 1 n n管理住宿生-单生-舍 退舍 单据 宿舍管理管理员 n 1 1 1 1 n 办理开单 n n 1 1 图6 高校宿舍管理系统E-R图 for(k=0;jMax;j+) for(;kMax-j-1;k+) if(strcmp(stuk.Name,stuk+1.Name)0) WORKER.ID=stuk+1.ID; strcpy(WORKER.Name,stuk+1.Name); WORKER.Age=stuk+1.Age; strcpy(WORKER.Sex,stuk+1.Sex); WORKER.Birthday=stuk+1.Birthday; strcpy(WORKER.Adress,stuk+1.Adress); strcpy(WORKER.TelNum,stuk+1.TelNum); strcpy(WORKER.Email,stuk+1.Email); stuk+1.ID=stuk.ID; strcpy(stuk+1.Name,stuk.Name); stuk+1.Age=stuk.Age; strcpy(stuk+1.Sex,stuk.Sex); stuk+1.Birthday=stuk.Birthday; strcpy(stuk+1.Adress,stuk.Adress); strcpy(stuk+1.TelNum,stuk.TelNum); strcpy(stuk+1.Email,stuk.Email); stuk.ID=WORKER.ID; strcpy(stuk.Name,WORKER.Name); stuk.Age=WORKER.Age; strcpy(stuk.Sex,WORKER.Sex); stuk.Birthday=WORKER.Birthday; strcpy(stuk.Adress,WORKER.Adress); strcpy(stuk.TelNum,WORKER.TelNum); strcpy(stuk.Email,WORKER.Email); printf(n numbers names ages sex birtht addresst telephonet E-mail); for(;lMax;l+) printf(%10s %8d %2d %2s %8d %15s %12s %10s,stul.Name,stul.ID,stul.Age,stul.Sex,stul.Birthday,stul.Adress,stul.TelNum,stul.Email); printf(n); Save(WORKER stu,int Max) int i=0 ; FILE *fp; if(fp=fopen(stu.txt,w+)=NULL)printf(ERROR!);exit(0);for(;iMax;i+)fprintf(fp,%d ,stui.ID);fprintf(fp,%s ,stui.Name);fprintf(fp,%d ,stui.Age);fprintf(fp,%s ,stui.Sex);fprintf(fp,%d ,stui.Birthday);fprintf(fp,%s ,stui.Adress);fprintf(fp,%s ,stui.TelNum);fprintf(fp,%s ,stui.Email);fclose(fp);printf(OK!);int main(int argc, char *argv)int _beep;char select;WORKER stuMAX_NUM;int current_number=0;select=0;while(select!=0)system(cls);DispMainMenu();select=choice();switch(select)case 0:printf(n your choice is exit testn);continue;case 1:printf(n your choice is information admit!n);current_number=InforInput(stu,current_number);break;case 2:printf(n your choice is information revise!n);EditInfor(stu,current_number);break;case 3:printf(n your choice is information inquire!n);QueryInfor(stu,current_number);break;case 4:printf(n your choice is information delete!n);DelInfor(stu,current_number);break;case 5:printf(n your choice is information arrange!n);SortInforMenu(stu,current_number);break;default:printf(n mistaken choice!please choose again!n);system(PAUSE);return (0);Save(stu,current_number);3 课程设计的程序运行结果与分析:3.1 运行程序的主菜单如图3所示: 图3程序运行主菜单页面 3.2 输入1进行职工信息录入如图4,图5所示: 图4职工信息录入页面 图5职工信息录入页面 3.3 输入2进行职工信息修改如图6所示: 图6职工信息修改页面3.4 输入3进行职工信息查询如图7,图8所示: 图7职工信息查询页面 图8职工信息查询页面 3.5 输入4进行职工信息删除如图9所示: 图9职工信息删除页面3.5 输入5进行职工信息排序如图10所示:图10职工信息排序页面 4 课程设计结论:我所编写的程序基本完成了设计要求的大部分功能,可以通过主菜单控制实现对人员的录入,添加,删除,查询,显示,排序,保存,分类统计等功能。但仍有不足的地方,拷贝功能就没能在程序中体现出来。因为能力原因只能把基本思路简单叙述如下:(1) 先在主菜单加入拷贝功能项;(2) 再建立一个输出输入函数和调用函数和有复制输出功能的函数;(3) 输出提示:“要拷贝的职工信息号”;(4) 输入要拷贝的职工信息号;(5) 调出所输入号码的职工信息并复制所有信息(6) 通过一函数建立一文件并把复制信息在文件上输出。通讯录管理系统1 课程设计的目的:C语言程序设计课程设计是计算机科学与技术专业一门重要的专业技术基础课程,也是一门核心课程。本课程设计的目的是为了配合C语言程序设计课程的开设,使学生能够熟练地掌握C语言的基本内容及程序设计的基本方法与编程技巧,并能够培养学生应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机的专业知识打下基础。2 课程设计方案论证及源程序清单:2.1系统功能需求:(1)成员信息的录入,包含姓名,年龄,性别,QQ等基本信息;(2)显示成员的所有信息;(3)按姓名查询并显示某成员的基本信息;(4)按姓名查找并删除某成员的基本信息;(5)修改某个成员的基本信息;(6)将成员的基本信息保存到一个文件中;(7)读入在文件中保存的成员信息。2.2系统功能模块划分: (1)主函数:调用其他功能模块。 (2)窗口操作:预定义一些常用的窗口及信息提示函数供其他模块调用。 (3)主菜单:显示菜单,选择功能项。 (4)数据录入:录入成员的基本信息(姓名,年龄,QQ号等)。 (5)全部显示:显示全部成员的基本信息。 (6)数据修改:修改对某一成员信息。 (7)条件查询:姓名查找并显示某个成员的基本信息。(8)数据删除:按姓名删除成员信息。 (9)数据读入:把成员的信息保存到一个文件中。 (10)数据存储:读入文件中保存的成员信息。2.3 本程序总体分成几个模块如图1所示:通讯录管理系统退出系统保存信息删除成员信息修改成员信息查找信息显示信息增加个人信息主菜单图1 通讯录管理系统的总体功能框图2.4程序流程如图2所示:开始s = headfwrite(s,LEN,1,fp); s = s-link;s!=NULL结束 图2 程序流程图 2.5 源程序清单:#include stdio.h#include string.h#include stdlib.h#define LEN sizeof(struct addbook)#define MAX 100void InitDialBook(void);void UserInterface(void);void Load(void);void Add(void);void Find(void);void Modify(void);void Delete(void);void ShowAll(void);void Save(void);struct addbookint record;char name15;char sex4;char age4;char addr20;char phone15;char qq15;char meg40;struct addbook *link;FILE *fp;struct addbook *p,*p1,*head,*s,*t;main()int flag,remove,getchar;int choice;if(fp = fopen(zzxx.txt,rb)=NULL) clrscr();printf(nnttt the file is not exist!n);if(fp = fopen(zzxx.txt,wb)=NULL)printf(It is wrong to open the file!n);getch();exit(0);if(fgetc(fp)=-1)printf(ntt It is nothing in this address book,you must add information to it now.n);InitDialBook();printf(nttt Add to successfully!n);printf(ntt If you want to add more than people that you must open the system again pleasen);getch();exit(0);rewind(fp);Load();fclose(fp);/* printf(n The people is the number of %d in this file.n,p-record); */flag = 1;while(flag)UserInterface();printf(Please select:(0-5):);scanf(%d,choice);getchar();if(choice=0choice6)switch(choice)case 1:Add();break;case 2:Find();break;case 3:ShowAll();break;case 4:Delete();break;case 5:Modify();break;case 0:flag = 0;clrscr();printf(nnnttt Think you to use the system of addres book management !);printf(nntt If you have every problem in your use,you can touch with:);printf(nn

温馨提示

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

最新文档

评论

0/150

提交评论