电子相册系统需求分析.doc

上传人:xin****828 文档编号:6683890 上传时间:2020-03-02 格式:DOC 页数:30 大小:460.50KB
返回 下载 相关 举报
电子相册系统需求分析.doc_第1页
第1页 / 共30页
电子相册系统需求分析.doc_第2页
第2页 / 共30页
电子相册系统需求分析.doc_第3页
第3页 / 共30页
点击查看更多>>
资源描述
中原工学院软件学院 二级实践课题设计任务书姓 名 刘亚敏 计算机信息管理 专业 112 班题 目相册管理系统的设计和实现设计任务要求设计一个简单的相册管理程序,能实现新建、打开相册,导入照片、幻灯片放映、旋转图片等功能。可实现按相册创建时间、照片上传时间、照片描述等查看相册。要求使用数据库记录照片信息,并用文件夹及文件操作管理相册及照片。时间进度第1周:( 2012.06.112012.06.17 ):系统需求分析,进行界面设计;设计系统的数据库结构进行分析、设计,并通过画E-R图的方式来帮助实现数据库结构的完整设计,列出数据库数据表,之后以列出的关系模型为依据进行第2周:( 2012.06.18 2012.06.24 ):对系统进行详细的分析设计,根据不同的功能模块,对其进行相应的编码及测试;第3周:( 2012.06.25 2012.07.01 ):对系统进行测试和纠错,进一步完善其功能,之后进行报告总结,交与老师验收。原 主始 要资 参料 考与 文 献01 李红.数据库原理与应用,高等教育出版,2003年3月。02 谢希仁.计算机网络.电子工业出版社,2008年1月。03白以恩.计算机网络基础及应用M. 哈尔滨:哈尔滨工业大学出版社,2000.189258指导教师签字: 年 月 日摘 要由于市场竞争的需要,交流方式的多样化,用户的可选择的方式也就不断增加,对于软件研发者,软件功能的多样化和完善才是竞争的资本。由于信息交流的多样化,特别是电子信息技术的发展,同时,随着数据库技术,客户/服务器技术等的发展,使得电子相册系统的功能更加完善。电子相册管理系统的特点是从相册管理的角度出发,通过数据库将几乎所有与之相关的数据统一管理起来,从而形成了集成的信息集。电子相册管理系统较好的用户界面,信息共享,信息管理使得管理人员和用户使用更加的便捷,而且电子相册系统的可操作性非常强,针对不同教育程度的人群。电子相册系统容纳的信息量非常大,主要通过文字和图片等方式展示出来,针对当前信息交流和管理类型的软件较多的原因,电子相册系统通过简单的几个功能模块就实现了用户的登录、注册、信息更新、信息共享、信息管理等功能。且在不同的功能模块中,分工明确,不同的功能模块通过控件联系起来。从而使得用户之间的交流更加的多样化。关键词:相册管理;数据库设计;界面设计。 目 录摘 要3第1章 绪 论51.1课题背景51.2相册管理系统的现状51.3 课题研究内容5第2章 需求分析62.1 相册需求分析62.2 需求分析的任务概述62.2.1 目录62.2.2用户的特点62.2.3假定和约束62.2.4需求约定72.2.5功能详细描述72.3 系统环境需求72.3.1 开发环境需求72.3.2 运行环境需求7第3章 概要设计83.1 数据库概要设计83.1.1 实体及其属性83.1.2 E-R模型8第4章 详细设计94.1 数据库的详细设计94.2结构化分析与设计104.2.1数据主要功能的数据流程图104.2.2系统总体结构设计124.3系统详细设计124.3.1相册登录管理124.3.2相册信息管理13第5章 运行及测试175.1系统测试概要175.2 系统维护19第6章 结束语20附录 系统相关代码22第1章 绪 论1.1课题背景由于市场竞争的需要,交流方式的多样化,用户的可选择的方式也就不断增加,对于软件研发者,软件功能的多样化和完善才是竞争的资本。由于信息交流的多样化,特别是电子信息技术的发展,同时,随着数据库技术,客户/服务器技术等的发展,使得相册系统的功能更加完善。相册管理系统的特点是从相册管理的角度出发,通过数据库将几乎所有与之相关的数据统一管理起来,从而形成了集成的信息集。相册管理系统较好的用户界面,信息共享,信息管理使得管理人员和用户使用更加的便捷,而且相册系统的可操作性非常强,针对不同教育程度的人群。相册系统容纳的信息量非常大,主要通过文字和图片等方式展示出来,针对当前信息交流和管理类型的软件较多的原因,相册系统通过简单的几个功能模块就实现了用户的登录、注册、信息更新、信息共享、信息管理等功能。且在不同的功能模块中,分工明确,不同的功能模块通过控件联系起来。从而使得用户之间的交流更加的多样化。1.2相册管理系统的现状现有系统主要是由人工进行管理和维护,工作量较大,不能满足人们对时间和效率的要求,导致这种相册模式已不再适应日益增长的相册工作管理量。迫切需要找到一种更加智能的相册管理以及注册系统。1.3 课题研究内容希望能够以最低的成本,并且能够在最短的时间期限内研发出具有登录、注册、信息共享、信息管理等功能的相册管理系统。该课题以某商标注册所的客户管理需求为出发点,实现了以下功能:1) 登录模块2) 相册管理模块3) 相片管理模块第2章 需求分析2.1 相册需求分析在完成了针对相册管理软件市场的前期调查,同时与多位软件使用者进行了全面深入地探讨和分析的基础上,提出了这份软件需求规格说明书。此需求规格说明书对相册管理系统软件做了全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。本说明书的预期读者为用户、业务或需求分析人员、测试人员、项目管理人员。2.2 需求分析的任务概述2.2.1 目录1、开发目标人们交流的方式多种多样,但是,我们在交流的同时希望更多的了解对方的信息,本软件即是根据此需求进行开发的。2、应用目标让用户能够通过注册信息,登录并更新及查询自己的信息,在此基础上,用户还能够有效的掌握和共享其它资源,但是不能更新。从而促进了信息管理的规范化和集成化,使得用户之间的交流更加的便捷。2.2.2用户的特点本软件产品的最终用户来源广泛,相同之处则是为了增进与他人之间的交流,管理人员则可以随时更新软件的项目,以及查询和维护信息。本软件面向大众,用户使用过程中的操作也不复杂。2.2.3假定和约束本软件产品为大众用户使用,然而,本软件在功能上还不够完善,因此对于用户的需求还无法完全实现。2.2.4需求约定本相册管理系统主要能实现新建、打开相册,导入照片、幻灯片放映、旋转图片等功能。可实现按相册创建时间、照片上传时间、照片描述等查看相册,并用文件夹及文件操作管理相册及照片。方便性和上传照片快速性创造条件,对用户的登陆注册以及管理实现计算机管理,实现数据的及时保存预处理。2.2.5功能详细描述相册管理系统主体分为三大部分:用户登陆和使用相册和退出本系统。 用户通过对用户名和密码的校验才可以登录,会出现一个相册管理系统主界面,里面包含了用户可以做的所有操作。在相册主界面部分可以上传相片,浏览相片,新建相册,删除相册等。 退出本系统就彻底的退出了相册管理系统。2.3 系统环境需求2.3.1 开发环境需求 硬件需求:CPU PIII 500以上的PC服务器,内存1GB以上,硬盘8GB以上。操作系统:Windows XP 软件需求:Microsoft Visual Studio 2005 开发环境,SQL Server 2005数据库2.3.2 运行环境需求硬件需求:CPU PIII 500 以上的PC服务器,内存1CB以上,硬盘8GB以上。操作系统:Windows XP; 软件需求:.NET Framework v2.0。第3章 概要设计3.1 数据库概要设计 对于企业客户关系管理系统的数据库设计,本文将从以下几个方面进行描述:首先是概念模型描述,包括对系统的实体属性分析及系统的E-R图,然后是系统的逻辑结构设计,即给出系统的数据库设计表结构及描述。3.1.1 实体及其属性 整个系统各实体可用以下关系来表示(其中主键已用下划线标识):l 用户(用户账号,用户名,用户密码)l 相册(用户名,相册编号,相册名,创建时间,相册简述)l 相片(相册编号,相片编号,相片名,创建时间,相片简述)3.1.2 E-R模型用户名 在分析过系统各实体之间的联系后可得出系统的整体概念模型,用E-R图表示出来,如图3.1所示的。用户编号用户密码用户查看相册属性相片相片编号相片名字相册简介创建时间相册名字相册编号相片简介创建时间图3.1 E-R图第4章 详细设计为了方便用户的操作,系统采用了模块化设计的思想,通过各模块的不同组合以实现不同的增、删、改、查功能。最终,使该系统能够具有规范化的格式、完整的信息量和易于查询等的特点。4.1 数据库的详细设计依据数据库的概要设计,最后总结出数据库结构的主要数据表包括:用户信息表,相册信息表,相片信息表。以下将给出系统数据库设计的逻辑模型,即各数据表的结构。1、用户信息表 用户信息表存储用户的相关信息,表结构如表4.2所示表4.1 用户信息表结构列名数据类型长度允许空是否为主键用户名char7否是用户密码char7否否用户编号int否否2、相册信息表 相册信息表存储相册的相关信息,表结构如表4.3所示表4.2 相册信息表结构列名数据类型长度允许空是否为主键用户账号char7否否相册号char6否是相册名char20否否创建日期smalldatetime否否3、相片信息表 相片信息表存储相片的相关信息,表结构如表4.4所示表4.3相片信息表结构列名数据类型长度允许空是否为主键相册号Char6否否相片号char7否否相片名char10否是相片简介Int6否否4.2结构化分析与设计4.2.1数据主要功能的数据流程图1.登录功能是否登录取消服务,退出界面YesNo用户进入登录首界面输入用户编号及密码进入用户个人界面系统查询匹配YesNo2.用户功能进入个人档案用户界面选择相应操作进入个人相册查看、修改相应数据选择相应操作打开相册上传相片删除相册浏览相片4.2.2系统总体结构设计系统功能总结构图 相册管理系统用户登录系统用户信息管理系统相册管理系统注 册信息完善相片编辑及其他功能4.3系统详细设计以下是系统各主要功能模块的界面设计及实现。4.3.1相册登录管理进入相册的用户必须先登录,输入正确的用户名和登录密码,点击“登录”。 用户在登录界面填写完用户名及密码后,单击登录按钮,不是所有的用户名和密码都能进入,输入的用户名和密码需与数据库中的用户表内的记录一致,需进行判断。登录页面如图4.1所示图4.1 登录页面4.3.2相册信息管理 用户通过身份验证后进入相应功能页面。点击界面“登录”按钮,用户在进入系统后可以进行相应操作,其中包括新建相册等,新建相册需要把输入的信息添加到数据库中,相册才可以建立成功。进入“相册管理界面”,可查看“相册信息”。如图4.2所示。图4.2相册管理页面在该页面通过选择相册查询如 “美丽风景”、“绚丽夜空”、“伤感人物”、“可爱动物”、“魅力星座”等相册信息,选择其中的一个相册,点击打开对于相册进行查询、编辑,系统都提供了查询功能,点击某一条相册,点击 “打开相册”按钮,将进入该相册中,可对相片进行编辑,旋转,黑白化在该界面中单击新建相册集弹出相册新建界面,其中包括相册编号、相册名、相册描述,在这其中填入相应数据后单击新建相册即可创建该相册,同时在数据库和前台都有相应更新;在列表式下拉框中选中某个相册名后单击“打开相册”即可打开该相片管理界面,如图4.3所示:43 相册信息管理页面在“相册管理”页面中,单击“进入相册查询”按钮,弹出“相册查询”页面,输入相册名,单击“显示结果”,在ListBox控件中,显示相册的相关信息,如图4.4所示:图4.4相册查询页面第5章 运行及测试5.1系统测试概要在编码的过程中,需要通过不断的对系统进行调试,才能对其功能做出完善性的补充。所以测试在此期间起了相当大的作用。 以下给出用户登录及客户信息管理模块的若干主要测试用例。如表5.1所示。l 登录功能;实现用户登录,根据登录者的不同,进入不同界面。l 用户注册功能;实现用户注册功能,在注册时填写相应的用户个人信息(用户名、密码、等)l 用户信息管理功能;实现用户个人信息的管理,用户对于个人信息可以随时的修改。l 系统设置管理;用户根据需要修改系统相关设置表5.1 测试用例序号功能模块测试功能点操作步骤及数据期望结果实际结果1.登录输入正确用户名密码在登录页面输入用户名及密码,点击“登录”按钮正常登录,显示相应功能页面正确2.输入正确的用户名和错误的密码在登录页面输入用户名及密码,点击“登录”按钮不能正常登录,系统给出提示系统给出提示:“密码错误,请重新输入”3.用户名或密码空白在登录页面不输入用户名及密码,直接点击“登录”按钮系统给出提示系统给出提示“请输入用户名及密码”4.相册信息管理相册信息的查询根据相册的名称、创建时间等信息进行对相册进行分类查询按用户要求显示相册列表按创建时间或相册名字显示相册列表5.相册信息的新建单击相册管理器中的新建相册,弹出新建相册界面,输入相册详细信息,单击“新建相册”即创建相册成功按用户要求创建出相应的相册创建的相册信息和用户所填数据6.相片信息管理相片信息的新建点击添加相片,在文件夹中选中要上传的相片,填写相片相应信息,然后上传上传用户希望看到的相片相册列表和数据库中出现相应上传的照片相片信息的修改点击打开相片,在相片管理器重进行对相片的,浮雕化、向左向右旋转等功能单击相应的按钮出现相应想过单击放大或缩小等按键会出现相应的结果5.2 系统维护本系统主要采取三种方式维护:1 改正性维护在软件初期使用,由于某种原因,软件存在一些错误或缺陷。需要由软件开发小组按用户要求对系统进行改正性维护。2 适应性维护当系统长时间使用后,随着用户的增加,系统在某些方面的速度可能不如刚开始的时候,所以对这个问题我们要做出适当维护。3 完善性维护在系统使用后,该应用系统可能不适应业务的发展。用户对软件提出了新的需求和性能要求。第6章 结束语 通过长达将近两周的软件工程课程设计,我们团队不但学会了软件工程设计的基本步骤,而且也学会了如何培养自己的团队协作能力。在开发初期,团队必须使用统一的开发平台,由小组长统一部署,将小组分为几个部分,大家分工合作再汇总以提高课程设计完成的效率,不懂的问题大家也可以相互帮忙解决,不懂的问题就要问,问老师问同学,也可以上网搜索,千万不要一个人在那里瞎想,因为我们是一个团队,我们要提高效率必须要相互帮助、良好的协作!前期工作做完了后,我们一定要进行测试工作,每个人写的代码难免会出现一些问题,测试期间就是对这些问题进行修改,然后总结经验和教训!总之,在这次的设计过程中,我们学到的不仅是知识,还认识到许多事情。这次设计使我们的编程水平提高了一大步,使我们充分的认识到合作的可贵。由于这次设计涉及到数据库、软件工程、C#,我们学到了不少编程工具与数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我们的综合能力是一次很好的锻炼,但是我们必须承认自己的能力和知识还很肤浅。所以今后我们的学习道路还是很漫长的。最后,在这里我们要衷心的感谢我们的指导老师杨卫明,谢谢他的悉心指导和热心帮助。由于我们的水平有限,加之时间短暂,故电子相册管理系统中还有许多不足之处,望老师加以批评指正,我们会在以后的课程设计中不断改进,不断完善。参考文献01 李红.数据库原理与应用,高等教育出版,2003年3月。02 谢希仁.计算机网络.电子工业出版社,2008年1月。03白以恩.计算机网络基础及应用M. 哈尔滨:哈尔滨工业大学出版社,2000.189258附录 系统相关代码系统的主要代码如下:用户登录:public partial class Login : Form public Login() InitializeComponent(); private void button1_Click(object sender, EventArgs e) if (textBox1.Text = | textBox2.Text = ) MessageBox.Show(用户或密码有空值!, 信息提示); else string mysql; SqlConnection myconn = dataconnection.createConn(); /SqlConnection mysqlconn = new SqlConnection(); /string connString = database=photo;integrated security=SSPI;server=RJXY302-29SQL2005; /mysqlconn.ConnectionString = connString; /mysqlconn.Open(); mysql = Select * from us where user= + textBox1.Text.Trim() + and passageword= + textBox2.Text.Trim() + ; SqlCommand mycmd = new SqlCommand(mysql, myconn ); int i = Convert.ToInt32(mycmd.ExecuteScalar(); if (i =0) Form myform = new main (); myform.Show(); this.Hide(); else MessageBox.Show(用户或密码错误!, 信息提示); myconn.Close(); private void Form8_Load(object sender, EventArgs e) this.AcceptButton = this.button1; public string Getusename() return textBox1.Text.Trim(); private void textBox1_TextChanged(object sender, EventArgs e) 相册管理界面: public partial class oppic : Form public oppic() InitializeComponent(); private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) private void oppic_Load(object sender, EventArgs e) int i; DirectoryInfo dinfo = new DirectoryInfo(f:相册库 + this.Text); FileSystemInfo fsinfo = dinfo.GetFileSystemInfos(); for (i = 0; i fsinfo.Length; i+) listBox1.Items.Add(fsinfoi.ToString(); listBox1.SelectedIndex = 0; pictureBox1.Image = Image.FromFile(f:相册库 + this.Text + + listBox1.SelectedItem.ToString(); comboBox2.Items.Add(垂直翻转); comboBox2.Items.Add(水平翻转); comboBox2.Items.Add(90度水平翻转); comboBox2.Items.Add(180度水平翻转); private void listBox1_SelectedIndexChanged(object sender, EventArgs e) pictureBox1.Image = Image.FromFile(f:相册库 + this.Text + + listBox1.SelectedItem.ToString(); private void toolStripButton9_Click(object sender, EventArgs e) FileInfo Finfo = new FileInfo(listBox1.Text); Finfo.Delete(); private void button3_Click(object sender, EventArgs e) /private void pictureBox2_MouseMove(object sender, MouseEventArgs e) / / if (image != null) / / Cursor.Current = mycur; / Graphics gra = pictureBox1.CreateGraphics(); / Rectangle sourceRec = new Rectangle(e.X - 10, e.Y - 10, 30, 30); / Rectangle destRec = new Rectangle(e.X - 20, e.Y - 20, 50, 50); / gra.DrawImage(image, destRec, sourceRec, GraphicsUnit.Pixel); / / else / MessageBox.Show(选择需要显示的图片); / /Graphics graphics; / Image image1 = Image.FromFile(e相册库云台山); / private void button5_Click(object sender, EventArgs e) / / graphics.Clear(this.BackColor); / int width = Convert.ToInt32(Convert.ToDouble(comboBox1.Text)*image1.Width); / int height = Convert.ToInt32(Convert.ToDouble(comboBox1.Text)*image1.Height); / graphics.DrawImage(image1,180,26,width,height); / / private void button9_Click(object sender, EventArgs e) / / graphics.DrawImage(image,new Point(180,26); / / Cursor mycur = new Cursor(E:相册库云台山); / Bitmap image; / private void button4_Click(object sender, EventArgs e) / / openFileDialog1.Filter = Jpeg File(*.jpg)|*.jpg; / if (openFileDialog1.ShowDialog() = DialogResult.OK) / / image = new Bitmap(openFileDialog1.FileName); / pictureBox1.Image = image; / pictureBox1.Height = image.Height; / pictureBox1.Width = image.Width; / / / private void button6_Click(object sender, EventArgs e) Bitmap bmp1 = new Bitmap(pictureBox1.Image); switch (comboBox2.SelectedItem.ToString() case 垂直翻转: bmp1.RotateFlip(RotateFlipType.Rotate180FlipXY); break; case 水平翻转: bmp1.RotateFlip(RotateFlipType.Rotate90FlipXY); break; case 90度水平翻转: bmp1.RotateFlip(RotateFlipType.Rotate90FlipX); break; case 180度水平翻转: bmp1.RotateFlip(RotateFlipType.Rotate180FlipX); break; pictureBox2.Image = bmp1; private void button7_Click(object sender, EventArgs e) Graphics g = pictureBox2.CreateGraphics(); g.Clear(pictureBox2.BackColor); Bitmap bmap = new Bitmap(pictureBox1.Image); bmap.SetResolution(300f, 300f); g.DrawImage(bmap,pictureBox2.ClientRectangle,0,0,bmap.Width,bmap.Height,GraphicsUnit.Pixel); g.Dispose(); private void button8_Click(object sender, EventArgs e) private void button4_Click(object sender, EventArgs e) if (openFileDialog1.ShowDialog() = DialogResult.OK) pictureBox1.Image = Image.FromFile(openFileDialog1.FileName); private void button5_Click(object sender, EventArgs e) Bitmap bmp = new Bitmap(pictureBox1.Image); for (int i = 0; i bmp.Width - 1; i+) for (int j = 0; j bmp.Height - 1; j+) Color color = bmp.GetPixel(i, j); Color colorLeft = bmp.GetPixel(i + 1, j + 1); int r = Math.Max(67, Math.Min(255, Math.Abs(color.R - colorLeft.R + 128); int g = Math.Max(67, Math.Min(255, Math.Abs(color.G - colorLeft.G + 128); int b = Math.Max(67, Math.Min(255, Math.Abs(color.B - colorLeft.B + 128); Color colorResult = Color.FromArgb(255, r, g, b); bmp.SetPixel(i, j, colorResult); pictureBox2.Image = bmp; private void button3_Click_1(object sender, EventArgs e) this.Close(); private void button8_Click_1(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) / FileInfo Finfo = new FileInfo(E:相册库 + this.Text + + listBox1.SelectedItem.ToString(); / Finfo.Delete(); private void button2_Click(object sender, EventArgs e) Bitmap oldBitmap = new Bitmap(this.pictureBox1.Image); Bitmap newBitmap = new Bitmap(pictureBox1.Image); int Height = newBitmap.Height; int width = newBitmap.Width; Color color; int r, g, b, Result = 0; for (int i = 0; i width; i+) for (int j = 0; j Height; j+) color = oldBitmap.GetPixel(i, j); r = color.R; g = color.G; b = color.B; Result = (int)(0.7 * r) + (int)(0.2 * g) + (int)(0.1 * b); newBitmap.SetPixel(i, j, Color.FromArgb(Result, Result, Result); this.pictureBox2.Image = newBitmap; private void button8_Click_2(object sender, EventArgs e) Bitmap myBitmap = new Bitmap(pictureBox1.Image); Graphics g = pictureBox2.CreateGraphics(); g.Clear(pictureBox1.BackColor); Point P1 = new Point(10, 10); Point P2 = new Point(100,10); Point P3 = new Point(50,100); Point P = P1,P2,P3; g.DrawImage(myBitmap,P); g.Dispose(); private void button9_Click(object sender, EventArgs e) Bitmap oldBitmap = new Bitmap(pictureBox1.Image); Bitmap newBitmap = (Bitmap)oldBitmap.Clone(); int height = newBitmap.Height; int width = newBitmap.Width; Color pixel; int Laplacian = -1,-1,-1,-1,9,-1,-1,-1,-1 ; for (int x = 1; x width -1; x+) for (int y = 1; y height - 1; y+) int r = 0, g = 0, b = 0; int Index = 0; for (int col = -1; col = 1; col+) for (int row = -1; row 255 ? 255 : r; r = r 255 ? 255: g; g = g 255 ? 255 : b; b = b 0 ? 0 : b; newBitmap.SetPixel(x - 1, y - 1, Color.FromArgb(r, g, b); this.pictureBox2.Image = newBitmap; private void button10_Click(object sender, EventArgs e) Bitmap myBitmap = new Bitmap(pictureBox1.Image); int Height = myBitmap.Height; int Width = myBitmap.Width; Bitmap bitmap = (Bitmap)myBitmap.Clone(); Color pixle; int Gauss = 1,2,1,2,4,2,1,2,1 ; for(int x = 1;x Width -1; x+) for (int y = 1; y Height - 1; y+) int r = 0, g = 0, b = 0; int Index = 0; for (int col = -1; col = 1; col+) for (int row = -1; row 255 ? 255 : r; r = r 255 ? 255 : g; g = g 255 ? 255 : b; b = b 0 ? 0 : b; bitmap.SetPixel(x - 1, y - 1, Color.FromArgb(r, g, b); this.pictureBox2.Image = bitmap; 相册查询:public partial class PS : Form public PS()
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!