1、成绩评定表学生姓名班级学号专业计算机科学与技术课程设计题目汽车美容管理系统评语组长签字:成绩日期2014 年11月18日课程设计任务书学 院信息院专 业计算机科学与技术学生姓名班级学号课程设计题目汽车美容管理系统实践教学要求与任务:本系统在VS2010软件下使用C语言和SQL Server数据库开发的.本系统包括客户管理、车辆管理、项目管理、收费管理四大模块.四大模块又包含各自的子模块。客户管理包括新增客户、查询信息、修改信息、删除客户;车辆管理包括新增车辆、查询信息、修改信息、删除车辆;项目管理包括新增项目、查询信息、信息修改、删除项目;收费管理包括登记收费、财务统计.工作计划与进度安排:按
2、照2010专业方向综合实训(软件方向)教学大纲的要求,本专业方向综合实训时间安排在教学第11周、第12教学周时间内完成汽车美容管理系统的软件开发.1、 查阅资料:数据库系统概论软件工程,.NET大局观等书籍3本。2、 开发与设计:针对C语言环境,并进行初步设计、整体功能设计、编码。3、 调试和软件功能的测试。4、 答辩与论文撰写。时间安排如下:第1周 查找资料、完成初步设计、代码设计与初步调试;第2周 调试、测试、验收、课程设计论文撰写、答辩。指导教师: 2014 年10月31日专业负责人:2014年10月31日学院教学副院长:2014年10月31日目录一、题目概述21.1 系统内容概述21.
3、2 系统要求概述21。3 系统性能要求21。3。1 系统灵活性21。3。2 输入输出要求2二、需求分析32。1 系统功能需求32.2可行性分析32。2。1 技术可行性32.2。2 经济可行性42.2.3 操作可行性4三、概要设计43。1系统数据库设计43.1。1 数据库概念结构设计(E-R图)53.1.2 数据库表设计63。2 系统功能分析7四、详细设计84.1 登陆模块84。2主菜单模块94。3 收费管理模块124.3。1 财务统计模块124。2。2 登记收费模块144。4客户管理模块154。4.1 客户信息模块154.4。2 新增客户模块164。4。3客户修改模块174。4。4客户删除模块
4、184.5 车辆管理模块194。5。1 车辆信息模块194。5。2新增车辆模块204.5。3车辆修改模块214。5。4车辆删除模块224。6 项目管理模块234。6.1项目信息模块234.6。2新增项目模块244.6.3项目修改模块254.6。4项目删除模块26五、软件测试275。1 程序的测试方法275。2 软件的可用性测试29六、总结30参考文献30一、题目概述1。1 系统内容概述随着社会的高速发展,科学技术的迅速提高,汽车的使用越来越普及,同时汽车美容店等相应的产业也日益增多,规模逐渐增大,传统的手工操作业务流程和资料管理已经很难满足当前汽车美容店的业务需求。 为改善企业中因手工统计车辆
5、、材料、财务等各类信息的烦琐性以及当前汽车美容店业务流程管理难度大、头绪多、耗费大量人力和财力的问题,在节省企业工作时间的同时提高企业的工作效率,达到提升企业效益的目的,一套完整的计算机化的汽车美容店业务管理的解决方案应运而生1。 该系统的具体任务就是设计一个汽车美容店的业务流程和资料信息管理系统,由计算机来代替人工执行一系列诸如车辆登记、维修估价、结算汇总等操作。这样就使办公人员可以轻松地完成汽车美容业务管理的工作。1。2 系统要求概述某汽车美容店管理系统 实现美容项目及价格信息管理; 实现客户信息、客户车辆信息管理; 实现美容登记和收费管理; 创建存储过程统计指定月份各种美容项目的美容次数
6、; 创建存储过程统计指定年份各客户的美容次数; 创建存储过程统计指定月份美容店的收入情况; 创建规则限制客户的性别必须输入男或女; 创建表间关系。 1。3 系统性能要求对系统性能的要求包括对系统时间规定,灵活性,输入输出,数据管理能力,故障处理要求和运行环境规定等的要求。1.3.1 系统灵活性1、操作方式通俗易懂、容易上手,界面美观、大方,将窗体程序转为控制台应用程序,符合用户操作习惯。4、一个模块的改变不会影响其他的模块。1。3.2 输入输出要求能够对不完整的数据进行校验,保证数据的完整性和一致性,对特殊字符的过滤功能,输出能满足用户的需求。二、需求分析系统需求分析是指理解用户的需求,就软件
7、的功能和客户达成一致,需求分析的任务就是解决“做什么”的问题,也就是要从各个方面理解用户的各项要求,并能够准确地表达所接受的用户需求,具有决策性、方向性和策略性的作用。2。1 系统功能需求1、美容收费:对美容消费进行登记,能够实时显示收费信息.2、财务统计:能够统计指定月份各种美容项目的美容次数; 能够统计指定年份各客户的美容次数; 能够统计指定月份美容店的收入情况;3、车辆管理:对车辆信息进行查询、新增、修改、删除等操作。3、客户管理:对客户信息进行查询、新增、修改、删除等操作.3、项目管理:对项目信息进行查询、新增、修改、删除等操作.2.2可行性分析可行性分析是根据初步调查结果做出系统开发
8、是否可行的结论的过程。每一个项目工程的确立都需要进行项目的可行性分析.该分析保证正确的选择投资项目所必要工作,这对项目的审批程序也是必不可少的.信息系统开发项目是一项非常复杂的高科技系统工程,所以系统的可行性分析是必不可少的,可行性研究的目的也就是用最小的代价在尽可能短的时间内确定问题是否可以很好的解决、是否值得去解决.根据调查分析,系统设计方案有以下三个可行性。2。2。1 技术可行性传统的应用程序是通过事先与数据库确立连接,在整个程序的运行过程通过维护数据库的连接方式而实现.首先现在的系统开发方法已经发展的相对成熟,结构化和面向的对象,都已经广泛的使用,这让我们开发系统的系统调查、系统分析、
9、系统设计和系统实施更加的规范,系统完成的更加的科学。开发系统所需要的硬件技术、软件开发技术和网络技术发展的相当的成熟。其次汽车美容管理系统有如下的特点:一是数据量相对较大;二是数据的处理相对集中,内部数据的处理量大,输出量大.三是需要不断进行更新。基于以上三个特点,现有技术都可以达到要求的目标。在单机环境下组建管理信息系统,该系统的开发工作可以采用vs做前台,SQL Server做后台数据库来进行。前台的可视化程度非常高,人机交互能力也比较强,应用起来也是十分的方便,后台的数据库功能十分强大,能很好的支持系统的运行.2.2.2经济可行性开发软件的投资费用主要包括:包括计算机设备和软件配置等的设
10、备费用;包含开发人员、运行人员和维护人员的人员费用;包括文档资料,纸张需要等的材料费用;和一些如设备保养的其他费用.现在的汽车美容管理系统有自己的运营费用,而且一般美容管理在原有的计算机硬件基础上不必再投入;只需要在软件开发上面投入少许经费就可以了,这方面的美容公司应该会愿意承担并且完全可以支付的起。同时,系统管理人员熟知美容管理的流程。所以,花费在人员培训上的费用是不会太高的.开发的系统是一个性能稳定,易于维护的系统,后期维护不会消耗大量的人力和物力,这样系统在人员方面的投资也可以支付。2。2。3 操作可行性本系统要求运行环境不高,可以在Windows7操作系统平台上运行,数据库服务器为SQ
11、L Server2008,开发工具采用的VS 2010.界面美观、易懂、容易操作、功能齐全,方便了对成绩的管理。综上所述,从经济可行性、技术可行性、操作可行性上来说,系统开发是完全可行的。三、概要设计系统开发工作经过需求分析阶段,已完全弄清了用户的需要,较好的解决了“做什么”的问题,我们建立了系统逻辑模型.到现在,本系统的开发阶段就进入到了概要设计阶段,我们开始动手解决“怎么做”的问题。也就是根据我们需求分析阶段确定的系统的逻辑模型,完成对系统物理模型设计的问题。我们在概要设计阶段的指导思想就是结构化指导思想,是指用一组标准的规则与图表工具来确定系统该有什么模块,怎么连接,这样才能形成新系统的
12、结构,然后再继续进行诸如输入、输出、对话等设计,为整个系统的实施做好铺垫。3.1系统数据库设计数据库设计是管理信息系统的重要组成部分。数据库设计是对一个既定的环境,进行符合应用语义的逻辑设计,并且提供了一个确定存储结构和物理设计,在有效存取数据和数据模型的情况下实现系统目标。建立了良好的文件组织形式和数据库结构,使系统准确、快速的获得所需信息是评价系统的主要指标。因此,是管理信息系统的重要组成部分。数据库设计的核心问题就是设计出较好的数据模型。在现在的数据库管理系统中有网状模型、层次模型和关系模型三种模型.这里的关系模型具有相对较高的数据独立性,使用起来也非常方便。目前,微机数据库多采用关系型
13、数据库模型。我们采用SQL Server数据库。这个数据库对行增加、删除、编辑和统计、显示和应答都极为方便。其中的排序和索引功能,对数据快速定位、查询提供了有利条件.3.1。1 数据库概念结构设计(ER图)概念模型的表示方法很多,其中最为著名最为常用的是ER图。简单的说,ER图用来分析数据关系的。下面具体列出高校学生选课管理系统主要的实体图及ER图。实体间ER图如图3。1所示。项目汽车品牌日期ID客户名称价格姓名年龄性别联系方式MNID住址拥有美容1IDN图3。1ER图3。1。2数据库表设计根据给出的E-R图可以对系统所需要的数据库进行设计,数据库中包含多个表,以下列出主要的数据表及各个表中的
14、字段详细情况。客户信息表,用于客户信息的储存与管理,如表3。1所示。表3。1客户信息表字段名数据类型长度约束IDnchar20Primary Key姓名nchar50NOT NULL年龄Int4NOTNULL性别nchar5NOTNULL联系方式nchar20NOT NULL地址nchar50NOT NULL车辆信息表,用于车辆信息的储存与管理,如表3.2所示:表3。2车辆信息表字段名数据类型长度约束IDnchar20Primary Key车主IDnchar20NOT NULL品牌nchar50NOT NULL项目信息表,用于项目信息的储存与管理,如表3.3所示:表3.3学生信息表字段名数据类
15、型长度约束名称nchar50Primary Key价格Int4NOT NULL记录信息表,用于管理收费信息。具体字段如表3。4所示。表3。4记录信息表字段名数据类型长度约束IDnchar20Primary Key汽车IDnchar20NOT NULL美容项目nchar50NOT NULL日期Date13NOT NULL3。2 系统功能分析汽车美容管理系统包括客户管理、车辆管理、项目管理,收费管理四大模块.四大模块又包含各自的子模块。客户管理包括新增客户、查询信息、修改信息、删除客户;车辆管理包括新增车辆、查询信息、修改信息、删除车辆;项目管理包括新增项目、查询信息、信息修改、删除项目;收费管理
16、包括登记收费、财务统计.综上所述,汽车美容管理系统功能模块图如图3.2所示.汽车美容管理系统收费管理客户管理车辆管理项目管理财务统计登记收费修改项目删除项目新增项目项目管理修改客户删除客户新增客户客户管理修改车辆删除车辆车辆管理新增车辆图3。2系统功能模块图四、详细设计汽车美容管理系统采用C编写,利用SQLServer数据库存储信息。按实际需求及功能模块编写,按如下顺序详细介绍。4.1 登陆模块登陆界面实现管理员登录。程序运行结果如图4.1所示.图4.1登陆模块主要的功能代码如下:private void button1_Click(object sender, EventArgs e) if
17、 ( =textBox1。Text ) MessageBox。Show(请输入用户名!); else if ( ” =textBox2.Text) MessageBox.Show(”请输入密码!”);else if (dai=textBox1。Text &123=textBox2。Text) this。Hide(); 主菜单 from = new 主菜单();from。ShowDialog();this。Close(); else MessageBox.Show(”账号或密码错误,请重新输入!, ”提示信息”, MessageBoxButtons。OK, MessageBoxIcon.Info
18、rmation); textBox2。Text = ”; textBox1.Text = ”; 4。2主菜单模块主菜单界面祈祷一个菜单的作用。程序运行结果如图4。2所示。图4。2主菜单模块主要的功能代码如下:namespace WindowsFormsApplication1 public partial class 主菜单 : Form public 主菜单() InitializeComponent(); private void 客户信息ToolStripMenuItem_Click(object sender, EventArgs e) 客户管理 from = new 客户管理();f
19、rom.ShowDialog();this。Show(); private void 新增客户ToolStripMenuItem_Click(object sender, EventArgs e) 新增客户 from = new 新增客户();from。ShowDialog();this.Show(); private void 信息修改ToolStripMenuItem_Click(object sender, EventArgs e) 客户修改 from = new 客户修改();from。ShowDialog();this。Show(); private void 删除客户ToolStr
20、ipMenuItem_Click(object sender, EventArgs e) 客户删除 from = new 客户删除();from。ShowDialog();this.Show(); private void 车辆信息ToolStripMenuItem_Click(object sender, EventArgs e) 车辆管理 from = new 车辆管理();from.ShowDialog();this.Show(); private void 新增车辆ToolStripMenuItem_Click(object sender, EventArgs e) 新增车辆 from
21、 = new 新增车辆();from。ShowDialog();this。Show(); private void 信息修改ToolStripMenuItem1_Click(object sender, EventArgs e) 车辆修改 from = new 车辆修改();from。ShowDialog();this。Show(); private void 删除车辆ToolStripMenuItem_Click(object sender, EventArgs e) 车辆删除 from = new 车辆删除();from。ShowDialog();this。Show(); private
22、void 项目信息ToolStripMenuItem_Click(object sender, EventArgs e) 项目管理 from = new 项目管理();from。ShowDialog();this.Show(); private void 新增项目ToolStripMenuItem_Click(object sender, EventArgs e) 新增项目 from = new 新增项目();from。ShowDialog();this。Show(); private void 信息修改ToolStripMenuItem2_Click(object sender, Event
23、Args e) 项目修改 from = new 项目修改();from。ShowDialog();this。Show(); private void 删除项目ToolStripMenuItem_Click(object sender, EventArgs e) 项目删除 from = new 项目删除();from.ShowDialog();this.Show(); private void 财务信息ToolStripMenuItem_Click(object sender, EventArgs e) 财务管理 from=new 财务管理 ();from。ShowDialog();this。S
24、how(); private void 登记收费ToolStripMenuItem_Click(object sender, EventArgs e) 登记收费 from = new 登记收费 ();from.ShowDialog();this.Show(); 4.3 收费管理模块4。3。1 财务统计模块该界面主要用于显示财务统计信息。运行图如图4。3所示。图4。3财务统计模块主要功能代码如下:private void button1_Click(object sender, EventArgs e) if (textBox1。Text = ”) MessageBox。Show(”请输入月份!
25、);else try stringstrconn, strsql;strconn = ”Data Source=。;Initial Catalog=car_beauty_system;Integrated Security=True;strsql = exec PROC_COUNT_ITEM_BY_MONTH ”+textBox1。Text+” ”;SqlConnectionmyconn = new SqlConnection(strconn);SqlDataAdaptermyda = new SqlDataAdapter(strsql, myconn);DataSetmyds = new D
26、ataSet();myda。Fill(myds, ”record”); dataGridView1.DataSource = myds.Tablesrecord; catch (Exception ex) MessageBox。Show(”显示错误!); private void button2_Click(object sender, EventArgs e) if (textBox2。Text = ”) MessageBox.Show(请输入月份!”);else try stringstrconn, strsql;strconn = Data Source=。;Initial Catalo
27、g=car_beauty_system;Integrated Security=True;strsql = exec PROC_COUNT_PRICE_BY_MONTH + textBox2。Text + ” ;SqlConnectionmyconn = new SqlConnection(strconn);SqlDataAdaptermyda = new SqlDataAdapter(strsql, myconn);DataSetmyds = new DataSet();myda。Fill(myds, ”record”); dataGridView1。DataSource = myds。Ta
28、bles”record”; catch (Exception ex) MessageBox.Show(”显示错误!”); private void button3_Click(object sender, EventArgs e) if (textBox3.Text = ”) MessageBox.Show(”请输入年份!);else try stringstrconn, strsql;strconn = ”Data Source=.;Initial Catalog=car_beauty_system;Integrated Security=True”;strsql = ”exec PROC_
29、COUNT_CUSTOMER_BY_YEAR ” + textBox3。Text + ” ”;SqlConnectionmyconn = new SqlConnection(strconn);SqlDataAdaptermyda = new SqlDataAdapter(strsql, myconn);DataSetmyds = new DataSet();myda。Fill(myds, ”record”); dataGridView1。DataSource = myds。Tablesrecord”; catch (Exception ex) MessageBox。Show(”显示错误!”);
30、 4。2.2 登记收费模块登记收费界面实现收费管理。程序运行结果如图4.4所示。图4.4登记收费模块主要的功能代码如下:private void button1_Click(object sender, EventArgs e) if (textBox1。Text = ”) MessageBox。Show(”请输入ID!”); else if (textBox2。Text = ”) MessageBox.Show(”请输入车辆ID!”); else if (textBox3.Text = ”) MessageBox。Show(”请输入项目!”); else if (textBox4。Text
31、= ”) MessageBox.Show(”请输入日期!);else try stringstrconn = ”Data Source=。;Initial Catalog=car_beauty_system;Integrated Security=True; SqlConnection connection = new SqlConnection(strconn);string sql2 = ”insert into record values(” + textBox1。Text + ”,” + textBox2。Text + ”,” + textBox3。Text +, + textBox4
32、。Text + ”)”;connection。Open();SqlCommand command2 = new SqlCommand(sql2, connection);command2。ExecuteNonQuery();connection。Close();showlist(); textBox1。Text = textBox2。Text = textBox3。Text = textBox4.Text=”; catch (Exception ex) MessageBox。Show(”登记错误!”); 4。4客户管理模块4。4。1 客户信息模块客户信息界面实现客户信息查询功能.程序运行结果如
33、图4.5所示.图4。5客户信息模块主要的功能代码如下:private void button1_Click(object sender, EventArgs e) string cha= ”ID”; if (comboBox1.Text = 姓名”) cha = name”; if (comboBox1.Text = ”性别”) cha = ”sex”; if (comboBox1。Text = 年龄”) cha = ”age”; if (comboBox1。Text = 联系方式) cha = ”tel”; if (comboBox1。Text = 地址) cha = ”addr;strin
34、gstrconn, strsql;strconn = ”Data Source=.;Initial Catalog=car_beauty_system;Integrated Security=True”;strsql = select id as ID,name as 姓名,sex as 性别,age as 年龄 ,tel as 联系方式, addr as 地址 from customer where + cha + = + textBox1。Text + ”;SqlConnectionmyconn = new SqlConnection(strconn);SqlDataAdaptermyda
35、 = new SqlDataAdapter(strsql, myconn);DataSetmyds = new DataSet();myda。Fill(myds, customer”); dataGridView1。DataSource = myds.Tables”customer”; 4。4.2 新增客户模块登陆界面实现管理员登录。程序运行结果如图4。6所示。图4。6新增客户模块主要的功能代码如下:private void button1_Click(object sender, EventArgs e) if (textBox1。Text = ”) MessageBox。Show(”请输入
36、ID!); else if (textBox2.Text = ”) MessageBox.Show(请输入姓名!”); else if (textBox3.Text = ”) MessageBox.Show(”请输入性别!”); else if (textBox4。Text = ”) MessageBox。Show(”请输入年龄!”); else if (textBox5.Text = ”) MessageBox.Show(”请输入联系方式!); else if (textBox6.Text = ”) MessageBox。Show(”请输入地址!);else try string strco
37、nn = Data Source=。;Initial Catalog=car_beauty_system;Integrated Security=True;SqlConnection connection = new SqlConnection(strconn );string sql2 = ”insert into customer(id,name,sex,age,tel,addr) values(” + textBox1.Text + ,” + textBox2.Text + ”, + textBox3。Text + ”,” + textBox4.Text + ”,” + textBox5
38、。Text + ,” + textBox6.Text + ”)”;connection。Open();SqlCommand command2 = new SqlCommand(sql2, connection);command2。ExecuteNonQuery();connection。Close();showlist(); textBox1。Text = textBox2。Text = textBox3。Text = textBox4。Text = textBox5。Text = textBox6.Text = ”; catch (Exception ex) MessageBox。Show(
39、”添加错误!”); 4。4。3客户修改模块登陆界面实现管理员登录。程序运行结果如图4.7所示.图4。7客户修改模块主要的功能代码如下:private void button1_Click(object sender, EventArgs e) if (textBox1.Text = ”) MessageBox。Show(”请输入ID!”); else if (textBox2.Text = ”) MessageBox。Show(”请输入修改值!); else if (comboBox1。Text = ) MessageBox。Show(”请输入修改项!”);else try string ch
40、a = ”ID”; if (comboBox1.Text = ”姓名) cha = name”; if (comboBox1。Text = 性别”) cha = sex; if (comboBox1。Text = ”年龄”) cha = age; if (comboBox1.Text = 联系方式”) cha = tel”; if (comboBox1。Text = ”地址”) cha = ”addr;stringstrconn = Data Source=.;Initial Catalog=car_beauty_system;Integrated Security=True”;SqlConnection connection = new Sql