软件项目管理课程总结

2023-02-11

叹岁月流逝太快,转眼间便到了年底,一年的辛苦工作中,我们留下了太多的难忘时刻,也在不断的工作积累中,成长为更好的自己。为了记录这一年的工作成长,我们需要写一份总结,以下是小编收集整理的《软件项目管理课程总结》,希望对大家有所帮助。

第一篇:软件项目管理课程总结

项目管理软件网络课程学习总结

我选择项目管理软件这门课程,一是抱着想学习一门有用的软件操作,二是以前上过老师教的另一门课程-----,当时觉得老师教课思路清晰,语言风趣,于是就选择了这门课程。开始对于项目管理软件没有清晰的认识,通过老师的介绍,得知本课程从项目管理的基本概念着手,将Microsoft project 2003/2007介绍给大家。并着重介绍Microsoft project 2003/2007的常用功能,如何进行项目的规划(人脑)、资源和成本的管理、进度的控制,并通过实例介绍如何进行项目管理,学习如何在Microsoft project 2003/2007中进行各种不同领域的项目管理操作。通过学习本门课程,可以使我们利用Microsoft Project软件工具快速、准确地建立项目计划,实现项目进度和成本分析、预测、控制等。 并且提高大家的实际动手能力,结合相关知识完成现实项目计划的编制工作。针对每一章节的内容,老师主要分成四个阶段进行学习。第一段:概念、理论——学习理论和概念(或称知识点),以老师讲解为主,并在讲述的过程中进行实际操作的演示,达到概念和操作的结合;第二段:动手实践--以实验练习为主,通过学生自己的动手操作,加强概念的理解,增强我们的左手能力;第三段:作业巩固/在线练习——通过布置课上或课下作业,检验和巩固学习效果。第四段:总结提高——提出整个学习过程中遇到的问题,参与老师组织的讨论和解答,深入理解,达到总结提高的目的。在这一阶段,老师专门设计了“课程讨论区”板块来让学生,老师之间交流不懂之处。还设计了“咖啡屋”板块,可以让同学之间增加交流。印象最深的是在线交谊板块,让我们认识了同是学这门课程,但却没有交集的同学,认识了专业,性格,爱好等迥异的同学。我很喜欢这个模块。

通过这门课程的学习,我了解了项目管理软件的操作,也许我的认知还很粗糙,以后还有请教老师的地方,还请老师到时不领赐教。我觉得这门课程可以利用2到3个课程给一个大的案例,来让学生自己通过自己的理解以及学生之间相互讨论来完成一个案例整个的设计完成。通过这样可以加深对这门课程的理解。

第二篇:软件工程课程总结

摘要:

计算机是20世纪最重大的科学技巧成就之一,使当代社会的经济、军事、科研、教育、服务等方面在概念和技巧上发生了性的变化,对人类社会的进步已经并还将产生极为深刻的影响。目前,计算机是世界各发达国度剧烈竞争的科学技巧领域之一。

电子计算机早期功效主要是计算,后来已远远超越单纯计算的功效,还可模拟、思维、进行自适应反馈处理等等,把它叫做“电脑”更为合实际。由于电子计算机功效的飞跃性发展,应用于生产和生活的各个方面,直接和显著地提高了生产、工作和生活的效率、节奏和水平,在软科学研究和应用中它也起着关键作用,因此它已被公认是现代技巧的神经中枢,是未来信息社会的心脏和录魂。计算机学科分为四个领域,分别是计算机科学,计算机工程,软件工程和信息系统。

正文:

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。包括项目管理,分析,设计,程序的编写,测试和质量控制。它涉及到程序设计语言、数据库、软件开发工具、系统开发平台、标准、设计模式等方面。

学了《软件工程》这门课程和一些有关资料后,感觉一些东西都曾经接触过,但在实际工作中有些理论要完全遵循可能还有些障碍,软件工程只是提供了理论上的一些结论,但对项目的具体可操作性的规范的制定方面却做的很少,《软件工程》发展了几十年,光是开发模型就达到了10多种,对不同的项目采用合适的开发模式,有些项目在不同的开发阶段可能还要转换开发模式,把它们灵活的应用到实际中还是很困难的。

软件技术是信息技术产业的核心之一,软件技术的发展是与信息技术产业的发展互相促进的。当今世界,信息技术正处于新一轮重大技术突破的前夜。预计今后 20~30 年是信息科学技术的变革突破期,可能导致 21 世纪下半叶一场新的信息技术革命。近年来,从 IT 界到一些国家首脑,都高度关注以物联网为标志的新一轮信息技术的发展态势,认为这是继 20 世纪 80 年代 PC 机、90 年代互联网、移动通信网之后,将引发 IT 业突破性发展的第三次 IT 产业化浪潮。每一次重大的技术变革都会引起企业间、产业间甚至国家间竞争格局的重大变化,也促进了软件技术与软件产业的重大变革与发展。

近年来,信息技术、软件技术、软件系统与软件产业的发展备受关注,已有不少论述、分析与判断。近 10 年内网络技术经历宽带化、移动化和三网融合将走向基于 Ipv6 的下一代互联网, 2010 年 1 月,国家 863 计划信息技术领域办公室和国家 863 计划信息技术领域专家组,在上海举办“信息-物理融合系统 CPS发展战略论坛”,提出“信息-物理融合系统 CPS 是一个综合计算、网络和物理环境的多维复杂系统,是信息和物理世界的深度的融合交互,可实现大型工程系统的实时感知、动态控制和信息服务,使系统更加可靠、高效与实时协同,使得人类物理现实和虚拟逻辑逐步融合,具有重要而广泛的应用前景。 业界关于软件工程的代表性观点

1 创立与使用健全的工程原则,以便经济地获得可靠且高效率的软件。

2 应用系统化,遵从原则,可被计量的方法来发展、操作及维护软件;也就是把工程应用到软件上。

3 与开发、管理及更新软件产品有关的理论、方法及工具。

4 一种知识或学科,目标是生产品质良好、准时交货、符合预算,满足用户所需的软件。

5 实际应用科学知识在设计、建构电脑程序,与相伴而来所产生的文件,以及后续的操作和维护上。

6使用与系统化生产和维护软件产品有关之技术与管理的知识,使软件开发与修改可在有限的时间与费用下进行。

7建造由工程师团队所开发之大型软件系统有关的知识学科。

8 对软件分析、设计、实施及维护的一种系统化方法。

9 系统化地应用工具和技术于开发以计算机为主的应用。

10软件工程是关于设计和开发优质软件。

《软件工程》是一门综合性和实践性很强的核心课程,它属于是一门交叉学科,包含有:软件开发技术(软件开发方法学、软件开发过程、软件工具和软件工程环境 )、软件工程管理(软件管理学、软件经济学、软件心理学)。主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件测试、项目计划与管理。

本课程是面向准备从事软件开发的毕业生而开设的一门专业课程。针对计算机教学中软件工程这一薄弱环结,结合目前软件开发商对人才的要求,对计算机专业的毕业生进行软件工程强化培训,目的是使毕业生能够了解和掌握软件工程的基本理论和方法,并在实际软件开发中运用这些方法。

我理解,软件工程是按照工程学的管理方式,有组织、有计划的,在一定的质量基础、时间限度和成本范围内,实现功能明确的软件系统。而且,软件工程在企业范围内运行,一定需要企业资源的支持,要与企业的经营、决策、管理体系联系在一起,才能够被踏踏实实的落实下来。

软件工程项目是一个需要一步一步的计算,分析思考而来的,需要不断思考,研究不断进步,软件业作为一个服务业,要想得到发展,首先必须形成一个对软件服务有迫切需要的市场。其次,这个市场中的消费者必须具备足够的购买力。软件的消费群体简单一点,可以分为个体消费和企业消费。中国的企业群体,数量庞大,但是质量不高。上规模的企业极少。国内目前能够形成比较大规模的独立市场的,肯定是小规模的软件系统。

随着信息化时代的到来其地位越来越受到人们的重视,软件工程从一个学科,或是某一个研究方向来说,人员仅仅是过程,方法的执行者,所以人员素质往往被忽略,软件工程是一门实践性很强的学科,所以在实际的软件研究过程中,人员的素质占有很重要的地位。要有出色的软件问世,研发人员的素质至关重要!

作为软件工程的学习者应该不断创新,不断尝试、实践,不断研究和学习,中国的软件工程技术依旧滞后于国外一些软件工程技术,作为新一代的学习者应该担当起振兴起中国软件事业,使中国科技得到高速发展!

现在已经是信息化时代,信息化潮流不断涌现,想要掌握主动权就是掌握信息化的发展方向,这就需要我们不断学习,时间,研究,学习国外的先进技术,转变自己的技术,然后融合,创新。

软件技术不是一成不变的,是随着社会的进步的不断进步,不需要不断的创新,不断的改善的,需要我们不断的学习,不断的研究,不断进步。

第三篇:软件工程课程设计——物业管理系统

软件工程

——物业管理系统的开发

学生姓名: 武鹏艳 乔海亮

学生班级: 软件工程122002班

学生学号: 201220040220 201220040213 指导老师: 潘理虎 日 期: 2014.6.20

目录

一.背景分析............................................................................................... 1 二.系统设计问题定义 .............................................................................. 1 三.系统分析............................................................................................. 1

1、现行系统分析 ................................................................................ 1

2、系统可行性分析 ............................................................................ 1 四.系统描述............................................................................................. 2

1、系统需求具体描述 ........................................................................ 2

2、系统功能具体描述 ........................................................................ 3 五.系统流程图设计 ................................................................................ 3 六.系统功能模块图设计 ........................................................................ 4

1、系统性能需求分析 ...................................................................... 4

2、系统功能需求分析 ...................................................................... 5 七.系统功能模型设计 ............................................................................ 5 八.系统所涉及的实体联系设计 ............................................................ 5 九. 系统状态图设计 .............................................................................. 6 十. 系统数据流图设计 .......................................................................... 7 十一.系统人机交互界面的设计 ............................................................ 9 十二. 系统设计的实现 ........................................................................ 11 十三. 系统设计的代码附录 ................................................................ 20

一.背景分析

随着市场经济的发展和人们生活水平的提高,小区物业方面缴费方面越来越多,但缴费难的问题继续困扰着我们,需要有一个系统来实现银行卡交水电费,实现小区管理而且小区用户可以更好的维护小区各项物业管理业务,处理工作,实现缴费方便功能,就可以避免应缴费不及时而造成停电停水的情况发生。 二.系统设计问题定义

1、实现对住户水电使用信息管理。

2、实现住户的信息查询与更新。 三.系统分析 (1)现行系统分析

以往住户的更替使水电费管理有些混乱,不能顺利收取费用。现在的系统会对小区水电管理存在的不完善之处做相应的改进,及时提醒住户缴费,而且对每户人员及时更新并做详细记录,为操作人员做权限设置。

(2)系统可行性分析 A系统成本效益分析

1、货币的时间价值

假设生命周期为t年,编写程序需m元,应用程序后,每年可节省n元,年利率为p。

2、纯收入

工程的纯收入是:r=n/(1+p)+n/(1+p)²+„„+n/(1+p)^n-m

1

3、投资回收率

m=F1/(1+j)+F2/(1+j)²+„„+Fn/(1+j)^n (Fi是第i年底效益,j是投资回收率。) B系统可行性综述

1、经济可行性:获益是当初投资总额的三倍或三倍以上,可以进行投资。

2、技术可行性:该系统简单、使用,且以现有的技术可以实现系统中的功能。

3、社会可行性:该系统面向全社会小区居民的物业管理,没有负面影响,并且可以为社会带来很高的效益。 四.系统描述

(1)系统需求具体描述

所设计的物业管理系统,它是由住户信息管理,缴费管理,投诉管理,楼房管理组成的网络系统。 a住户信息管理

由住户注册,注册姓名,联系方式,住址,邮箱,入住时间。注册成功后,由系统管理员统一管理,管理员可以进行查询,修改信息。住户注册成功可以进行登录系统进行查询,但是不可以修改。进行信息的修改需要投诉给管理员,管理员进行修改。 b缴费管理

由住户执行,住户可以查询水电费使用情况,余额不足进行缴费,进入银行缴费界面,输入账号密码,进行缴费。

2

c投诉管理

由管理员进行查询,用户可以对小区物业管理水电费物业部门投诉建议。管理员可以根据客户要求,能对住户水电费信息、修改、查询和删除等操作,并且还要实现包括水、电、煤气费在内的各项物业管理费用的统计、查询和报表生成。 d住户和管理员

住户可以管理自己的信息,可以提交投诉信息,可以浏览收费信息和缴费信息。管理员可以对纪录进行增加、删除、修改,管理投诉等更新操作。用户进入系统必须先输入用户名和密码,按“确认”按钮后,系统辨别用户身份,对合法用户根据用户的权限赋予相应的使用功能。

(2) 系统功能具体描述

小区物业管理系统具体实现以下功能:

1.对小区所有房屋资料的录入和增,删,改,查询等功能的实现。

2.对本小区内住户的详细资料的管理,包括增,删,改,查询等功能的实现。

3.实现物业设备管理,仪表包括水,电数据管理,收费管理。仪表数据管理模块管理每个住户的水,电的资料,统计住户每月的用量以及需要交纳的费用,收费管理记录物业公司对住户的每一笔收费,包括水,电等使用费用和物业管理费用,余额不足进行银行卡充值。 五.系统流程图设计

3

六.系统功能模块图设计

1、系统性能需求分析

所设计的系统主要涉及到四大部分:系统管理,基本信息管理,水电管理,费用查询。

(1) 系统管理:管理系统操作人员,设置操作人员口令和权限。在满足不同系统用户的操作需求的基础上,提高系统的安全性。 (2) 基本信息管理:维护小区基本信息。

住户信息管理:入住登记,信息修改,迁出注销,查询。 房屋信息管理:房屋信息添加,修改,删除,查询。 户型信息管理:小区户型登记。 (3) 水电服务管理:完成小区各种服务,例如物业费用缴费管理功能。

4

(4) 查询统计管理:本系统中各种数据的统计与查询功能。

2、系统功能需求分析

小区物业管理水电费物业部门用来对住宅小区内水费,电费,缴费情况信息管理系统。根据客户要求,系统要能对住户水电费信息、修改、查询和删除等操作,并且还要实现包括水、电、煤气费在内的各项物业管理费用的统计、查询和报表生成。因此,实现该物业管理系统功能模块图如下

七.系统功能模型设计

八.系统所涉及的实体联系设计

5

九.系统状态图设计 (1)总状态图设计

6

(2)系统银行卡模块状态设计

十.系统数据流图设计

7

(1)系统数据流程图

(2)系统数据字典 (1)

名字:用水信息记录表 别名:用水信息

描述:水量剩余小于临界值时报告住户

定义:用水信息记录表=户主信息+水量使用费+收费日期

8

位置:输出打印机 (2)

名字:用电信息表 别名:电量信息

描述:剩余电量小于临界值时报告住户

定义:用电信息表=户主信息+电量使用费+收费日期 位置:输出打印机 (3)

名字:住户信息表 描述:每户人员的详细信息

定义:住户信息表=住户姓名+性别+年龄+联系方式+证件号码 位置:输出打印机,显示在屏幕 十一.系统人机交互界面的设计 ①登陆界面的设计

9

②住户界面的设计

③管理员界面的设计

10

十二.系统设计的实现 (1)数据库载入

(2).住户登陆成功界面

11

(3)住户界面

(4)住户修改信息

12

(5)住户查询物业信息

(6)住户反馈

13

(7)住户缴费

(8)银行卡登陆

14

(9)银行卡登陆成功

(10)银行卡缴费界面

(11)银行卡修改密码界面

15

(12)管理员登陆

(13)管理员界面

16

(14)管理员查询住户信息界面

(15)管理员修改住户信息

17

(16)管理员更新物业信息

(17)管理员添加管理员信息

18

(18)管理员接收反馈

(19)管理员接收反馈界面

19

十三.系统设计的代码附录

package xuesheng;

import javax.swing.*; import java.awt.event.*; import java.sql.*;

public class systems extends JFrame implements ActionListener { static systems ss;

JPanel panel = new JPanel(); JLabel label1 = new JLabel("输入姓名:"); JTextField name = new JTextField(); JLabel label2 = new JLabel("密 码:"); JPasswordField pwd = new JPasswordField(); JButton Enter = new JButton("登录"); JButton Exit = new JButton("退出"); String url = "F:JAVA背景图片4.jpg"; ButtonGroup bgp = new ButtonGroup(); JRadioButton ihb = new JRadioButton("住户"); JRadioButton mg = new JRadioButton("管理员");

public systems() {

super("物业系统登录");

this.setResizable(false); JLabel img = new JLabel(new ImageIcon(url));

img.setBounds(0,0,500,100);

panel.add(img);

ihb.setBounds(165,210,70,20);

mg.setBounds(265,210,70,20);

bgp.add(ihb);

bgp.add(mg);

panel.add(ihb);

panel.add(mg);

Enter.setBounds(150,250,80,20);

Exit.setBounds(270,250,80,20);

Enter.addActionListener(this);

Exit.addActionListener(this);

panel.add(Enter);

panel.add(Exit); panel.setLayout(null);

this.add(panel); 20

label1.setBounds(135,130,100,25);

panel.add(label1); name.setBounds(265,130,100,25);

panel.add(name);

label2.setBounds(135,165,100,25);

panel.add(label2); pwd.setBounds(265,165,100,25);

panel.add(pwd);

this.setBounds(100,100,500,350);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }

public void actionPerformed(ActionEvent e) {

if(e.getSource()==Enter)

{

String username , password;

username = name.getText();

password = pwd.getText();

try

{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}

catch (ClassNotFoundException ce)

{

JOptionPane.showMessageDialog(ss,ce.getMessage());

}

if(ihb.isSelected())

{

try

{

//

Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=物业管理系统","sa","11111111");

String sql = "select * from inhabitant where 姓名=? and 密码=?";

PreparedStatement pstmt = con.prepareStatement(sql);

pstmt.setString(1, username);

pstmt.setString(2, password);

ResultSet rs = pstmt.executeQuery();

21

if(rs!=null)

{

JOptionPane.showMessageDialog(ss,"登陆成功");

new inhabitants();

}

else

{

JOptionPane.showMessageDialog(ss,"登录失败");

}

rs.close();

pstmt.close();

}

catch (SQLException se)

{

JOptionPane.showMessageDialog(ss,se.getMessage());

}

}

else if(mg.isSelected())

{

try

{

Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=物业管理系统","sa","11111111");

String sql = "select * from manager where 姓名=? and 密码=?";

PreparedStatement pstmt = con.prepareStatement(sql);

pstmt.setString(1, username);

pstmt.setString(2, password);

ResultSet rs = pstmt.executeQuery();

if(rs!=null)

{

JOptionPane.showMessageDialog(ss,"登陆成功");

new managers();

}

else

{

JOptionPane.showMessageDialog(ss,"登录失败");

}

rs.close();

pstmt.close(); 22

}

catch (SQLException se)

{

JOptionPane.showMessageDialog(ss,se.getMessage());

}

}

}

else

{

System.exit(0);

} }

public static void main(String[] args) {

new systems(); } }

package xuesheng;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class inhabitants extends JFrame implements ActionListener { JPanel panel=new JPanel(); JMenuBar jmb = new JMenuBar(); JMenu Message = new JMenu("信息"); JMenu Payment = new JMenu("缴费"); JMenu back = new JMenu("反馈"); JMenuItem Item1 = new JMenuItem("修改住户信息"); JMenuItem Item2 = new JMenuItem("查询物业信息"); JMenuItem Item3 = new JMenuItem("发送反馈"); JMenuItem Item4 = new JMenuItem("交电费"); JMenuItem Item5 = new JMenuItem("交水费"); String url = "F:JAVA背景图片36.jpg"; public inhabitants() { 23

super("住户界面");

this.setSize(500,400);

this.setVisible(true); JLabel img = new JLabel(new ImageIcon(url));

img.setBounds(0,0,500,600);

panel.add(img);

panel.setLayout(null);

this.add(panel);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setJMenuBar(jmb);

jmb.add(Message);

jmb.add(back);

jmb.add(Payment);

Message.add(Item1);

Message.add(Item2);

back.add(Item3);

Payment.add(Item4);

Payment.add(Item5);

Item1.addActionListener(this);

Item2.addActionListener(this);

Item3.addActionListener(this);

Item4.addActionListener(this);

Item5.addActionListener(this); }

public void actionPerformed(ActionEvent e) {

if(e.getSource()==Item1)

{

AlterInhabitantInformation ai = new AlterInhabitantInformation();

}

else if(e.getSource()==Item2)

{

Serch ser = new Serch();

}

else if(e.getSource()==Item3)

{

tickling ib=new tickling();

}

else if(e.getSource()==Item4) 24

{

ATM atm=new ATM();

}

else if(e.getSource()==Item5)

{

ATM atm=new ATM();

} }

public static void main(String[] args) {

inhabitants stu = new inhabitants(); } }

package xuesheng;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class managers extends JFrame implements ActionListener { JMenuBar bar = new JMenuBar(); JMenu menu1 = new JMenu("信息"); JMenu menu2 = new JMenu("反馈"); JMenuItem item1 = new JMenuItem("查询住户信息"); JMenuItem item2 = new JMenuItem("修改住户信息"); JMenuItem item3 = new JMenuItem("更新物业信息"); JMenuItem item4 = new JMenuItem("接收反馈"); JMenuItem item5 = new JMenuItem("添加管理员信息"); String url = "F:JAVA背景图片36.jpg"; JPanel jpl = new JPanel();

public managers() {

super("管理员界面");

this.setSize(500,300);

this.setResizable(false); 25

} this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setJMenuBar(bar); this.add(jpl); jpl.setLayout(null); bar.add(menu1); bar.add(menu2); menu1.add(item1); menu1.add(item2); menu1.add(item3); menu1.add(item5); menu2.add(item4); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this); item5.addActionListener(this); public void actionPerformed(ActionEvent e) { if(e.getSource()==item1) {

ReferMsg rm = new ReferMsg(); } if(e.getSource()==item2) {

AlterInhabitantInformations ai = new AlterInhabitantInformations(); } else if(e.getSource()==item3) {

AddMsg sc = new AddMsg(); } else if(e.getSource()==item4) {

tickling tl=new tickling (); } else if(e.getSource()==item5) {

managerinformation mf=new managerinformation (); } } 26

public static void main(String[] args) {

managers mng = new managers(); } }

package xuesheng;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*; import java.awt.font.*; import java.sql.*;

public class ReferMsg extends JFrame implements ActionListener { static ReferMsg s; JLabel title = new JLabel("查询住户信息",JLabel.CENTER); Font f = new Font("楷体",Font.BOLD+Font.ITALIC,16); JPanel jpl = new JPanel(); JLabel label1 = new JLabel("请输入门牌号:",JLabel.CENTER); JTextField num = new JTextField(); JButton serch = new JButton("查询"); JButton fangqi = new JButton("返回"); JLabel label2 = new JLabel("门牌号:",JLabel.LEFT); JLabel label3 = new JLabel("姓名:",JLabel.LEFT); JLabel label4 = new JLabel("性别:",JLabel.LEFT); JLabel label5 = new JLabel("年龄:",JLabel.LEFT); JLabel label6 = new JLabel("籍贯:",JLabel.LEFT); JLabel label7 = new JLabel("身份证号:",JLabel.LEFT); JLabel label8 = new JLabel("电话:",JLabel.LEFT); JLabel label9 = new JLabel("职业:",JLabel.LEFT);

JTextField[] txt ={ new JTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() ,new JTextField() , new JTextField() ,new JTextField()}; static int p = 140;

public ReferMsg() 27

{ super("查询住户信息"); this.setResizable(false); this.setSize(500,550); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); title.setFont(f); this.add(jpl); jpl.setLayout(null); title.setBounds(80,20,300,20); jpl.add(title); label1.setBounds(100,60,90,20); jpl.add(label1); num.setBounds(200,60,140,20); jpl.add(num); serch.setBounds(130,100,90,20); fangqi.setBounds(240,100,90,20); jpl.add(serch); jpl.add(fangqi); serch.addActionListener(this); fangqi.addActionListener(this); label2.setBounds(100,140,140,20); label3.setBounds(100,180,140,20); label4.setBounds(100,220,140,20); label5.setBounds(100,260,140,20); label6.setBounds(100,300,140,20); label7.setBounds(100,340,140,20); label8.setBounds(100,380,140,20); label9.setBounds(100,420,140,20); jpl.add(label2); jpl.add(label3); jpl.add(label4); jpl.add(label5); jpl.add(label6); jpl.add(label7); jpl.add(label8); jpl.add(label9);

for(int i = 0 ;i

txt[i].setBounds(200,p,140,20);

jpl.add(txt[i]);

p=p+40; } 28

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==fangqi)

{

this.setVisible(false);

new managers();

}

if(e.getSource()==serch)

{

String mp = num.getText();

try

{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}

catch (ClassNotFoundException ce)

{

JOptionPane.showMessageDialog(s,ce.getMessage());

}

try

{

Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=物业管理系统","sa","11111111");

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("select * from inhabitant where inhabitant.门牌号 = + mp + AND inhabitant.门牌号 = inhabitant.门牌号");

while(rs.next())

{

for(int i = 0 ; i

{

txt[i].setText(rs.getString(i+1));

}

}

}

catch (SQLException se)

{

JOptionPane.showMessageDialog(s,se.getMessage());

}

}

else

{

for(int i = 0;i

{

txt[i].setText("");

}

num.setText("");

} }

public static void main(String[] args) {

ReferMsg s = new ReferMsg(); } }

package xuesheng;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*; import java.sql.*;

public class Serch extends JFrame implements ActionListener { /*查询学生信息控件*/ static Serch s; JPanel jpl = new JPanel(); JLabel SCH = new JLabel("物业信息",JLabel.CENTER); JLabel label1 = new JLabel("请输入门牌号:",JLabel.CENTER); JButton serch = new JButton("查询"); JLabel label2 = new JLabel("姓名:",JLabel.CENTER); JLabel label3 = new JLabel("电量:",JLabel.CENTER); JLabel label4 = new JLabel("水量:",JLabel.CENTER); JLabel label5 = new JLabel("性别:",JLabel.CENTER); ButtonGroup bgp = new ButtonGroup(); JRadioButton man = new JRadioButton("男"); JRadioButton women = new JRadioButton("女"); JTextField num = new JTextField(); JTextField nam = new JTextField(); JTextField ele = new JTextField(); 30

JTextField wat = new JTextField(); JButton fangqi = new JButton("返回"); public Serch() { this.setSize(500,400); this.setVisible(true); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.add(jpl); jpl.setLayout(null); serch.addActionListener(this); fangqi.addActionListener(this); /*查询面板*/ SCH.setBounds(100,20,300,20); jpl.add(SCH); label1.setBounds(100,60,100,20); jpl.add(label1); num.setBounds(220,60,140,20); jpl.add(num); serch.setBounds(120,100,90,20); fangqi.setBounds(260,100,90,20); jpl.add(serch); jpl.add(fangqi); label2.setBounds(100,140,70,20); jpl.add(label2); nam.setBounds(190,140,140,20); jpl.add(nam); label5.setBounds(100,180,70,20); jpl.add(label5); man.setBounds(205,180,60,20); women.setBounds(285,180,60,20); bgp.add(man); bgp.add(women); jpl.add(man); jpl.add(women); label3.setBounds(100,220,70,20); jpl.add(label3); ele.setBounds(190,220,140,20); jpl.add(ele); label4.setBounds(100,260,70,20); jpl.add(label4); wat.setBounds(190,260,140,20); jpl.add(wat); 31

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==fangqi)

{

this.setVisible(false);

new inhabitants();

}

String mp = num.getText();

if(e.getSource()==serch)

{

try

{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}

catch (ClassNotFoundException ce)

{

JOptionPane.showMessageDialog(s,ce.getMessage());

}

try

{

Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=物业管理系统","sa","11111111");

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("select * from PropertyInformation where 门牌号 = + mp + ");

while(rs.next())

{

nam.setText(rs.getString("姓名"));

if(rs.getString("性别").equals("男"))

{

man.setSelected(true);

}

else

{

women.setSelected(true);

}

ele.setText(rs.getString("电量"));

wat.setText(rs.getString("水量"));

}

}

catch (SQLException se) 32

{

JOptionPane.showMessageDialog(s,se.getMessage());

}

} }

public static void main(String[] args) {

Serch sch = new Serch(); } }

package xuesheng; import java.awt.*; import java.awt.event.*; class Selection extends Frame implements ActionListener{ Button button1,button2,button3,button4,button5; Panel p1 = new Panel(); Panel p2 = new Panel(); Panel p3 = new Panel(); Panel p4 = new Panel(); Panel p5 = new Panel(); Panel p = new Panel(); Account act;

public Selection(){} Selection(String s,Account act){

super(s);

this.act=act;

this.setLayout(null);

this.setLayout(new GridLayout(6,1));

p.add(new Label("请选择你要的服务"));

this.add(p); /*各种服务功能*/

button1 = new Button("缴水费");

p1.add(button1);

this.add(p1);

button2 = new Button("交电费");

p2.add(button2);

this.add(p2);

button3 = new Button("查询"); 33

p3.add(button3); this.add(p3); button4 = new Button("退出"); p4.add(button4); this.add(p4); button5 = new Button("修改密码"); p5.add(button5); this.add(p5); this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); setBounds(150,150,225,275); setVisible(true); validate(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==button1){//取款

GetWater gw = new GetWater("交水费",act);

} if(e.getSource()==button2){//取款

GetBalance gb = new GetBalance("交电费",act);

} if(e.getSource()==button3){//查询余额

Query q =new Query("查询余额",act); } else if(e.getSource()==button4){//退出

System.exit(0);

dispose(); } else if(e.getSource()==button5){//修改密码

Account 修改密码;

ChangePassword cp = new ChangePassword("修改密码",act); 34

dispose();

} } }

package xuesheng; import java.awt.Color; import java.awt.Font;

import javax.swing.*; public class tickling { public tickling() { //创建JFrame对象

JFrame f=new JFrame("反馈"); //创建具有指定文本的JLbabel对象 JLabel Label=new JLabel("反馈:"); Font ft = new Font("黑体" , Font.BOLD , 24);

Label.setFont(ft);

Label.setForeground(Color.black); //创建列数为20的JTextField对象 JTextField t=new JTextField(20); JPanel panel=new JPanel();

panel.add(Label); t.setBounds(70,100,300,120); panel.add(t); Font fo = new Font("黑体" , Font.BOLD , 24); t.setFont(fo); Label.add(t); f.setVisible(true);

//将JLabel组件添加到JFrame窗体上 f.getContentPane().add(Label); f.getContentPane().add(Label); f.setSize(400,350); f.setVisible(true); } public static void main(String[] args) { 35

tickling tl = new tickling(); }

}

package xuesheng;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*; import java.sql.*;

public class AlterInhabitantInformation extends JFrame implements ActionListener { static AlterInhabitantInformation ss; JLabel[] label = {new JLabel("门牌号:") , new JLabel("姓名:") , new JLabel("性别:") , new JLabel("年龄:") , new JLabel("籍贯:") , new JLabel("身份证号:") , new JLabel("电话:") , new JLabel("职业:") }; JTextField[] txt = {new JTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() ,new JTextField() , new JTextField() ,new JTextField() }; JButton add = new JButton("确认"); JButton fangqi = new JButton("返回"); JPanel jpl = new JPanel(); JLabel title = new JLabel("修改住户信息" , JLabel.CENTER); Font f = new Font("黑体" , Font.BOLD , 16); int s = 100;

public AlterInhabitantInformation() {

super("修改住户信息");

this.setResizable(false);

this.setSize(500,600);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setVisible(true);

this.add(jpl);

add.addActionListener(this);

fangqi.addActionListener(this);

jpl.setLayout(null); 36

title.setBounds(150,40,200,20);

title.setFont(f);

title.setForeground(Color.red);

jpl.setBackground(Color.LIGHT_GRAY);

jpl.add(title);

for(int i = 0 ; i

{

label[i].setBounds(100,s,140,20);

jpl.add(label[i]);

txt[i].setBounds(260,s,140,20);

jpl.add(txt[i]);

s=s+40;

}

add.setBounds(150,s,80,20);

fangqi.setBounds(250,s,80,20);

jpl.add(add);

jpl.add(fangqi); }

public void actionPerformed(ActionEvent e) {

if(e.getSource()==fangqi)

{

this.setVisible(false);

new inhabitants();

}

if(e.getSource()==add)

{

try

{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}

catch (ClassNotFoundException ce)

{

JOptionPane.showMessageDialog(ss,ce.getMessage());

}

try

{

Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=物业管理系统","sa","11111111");

Statement stmt = con.createStatement();

int a = stmt.executeUpdate("insert into inhabitant(门牌号,姓名,性别,年龄,籍贯,身份证号,电话,职 37

业)values(+txt[0].getText()+,+txt[1].getText()+,+txt[2].getText()+,+txt[3].getText()+,+txt[4].getText()+,+txt[5].getText()+,+txt[6].getText()+,+txt[7].getText()+)");

if(a==1)

{

JOptionPane.showMessageDialog(ss,"添加成功");

}

else

{

JOptionPane.showMessageDialog(ss,"添加失败");

}

}

catch (SQLException se)

{

JOptionPane.showMessageDialog(ss,se.getMessage());

}

}

else

{

for(int i = 0 ; i

{

txt[i].setText("");

txt[0].requestFocus();

}

} }

public static void main(String[] args) {

AlterInhabitantInformation as = new AlterInhabitantInformation(); } }

package xuesheng;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*; import java.sql.*; 38

public class AlterInhabitantInformations extends JFrame implements ActionListener { static AlterInhabitantInformation ss; JLabel[] label = {new JLabel("门牌号:") , new JLabel("姓名:") , new JLabel("性别:") , new JLabel("年龄:") , new JLabel("籍贯:") , new JLabel("身份证号:") , new JLabel("电话:") , new JLabel("职业:") }; JTextField[] txt = {new JTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() ,new JTextField() , new JTextField() ,new JTextField() }; JButton add = new JButton("确认"); JButton fangqi = new JButton("返回"); JPanel jpl = new JPanel(); JLabel title = new JLabel("修改住户信息" , JLabel.CENTER); Font f = new Font("黑体" , Font.BOLD , 16); int s = 100;

public AlterInhabitantInformations() {

super("修改住户信息");

this.setResizable(false);

this.setSize(500,600);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setVisible(true);

this.add(jpl);

add.addActionListener(this);

fangqi.addActionListener(this);

jpl.setLayout(null);

title.setBounds(150,40,200,20);

title.setFont(f);

title.setForeground(Color.red);

jpl.setBackground(Color.LIGHT_GRAY);

jpl.add(title);

for(int i = 0 ; i

{

label[i].setBounds(100,s,140,20);

jpl.add(label[i]);

txt[i].setBounds(260,s,140,20);

jpl.add(txt[i]);

s=s+40;

}

add.setBounds(150,s,80,20);

fangqi.setBounds(250,s,80,20);

jpl.add(add); 39

jpl.add(fangqi); }

public void actionPerformed(ActionEvent e) {

if(e.getSource()==fangqi)

{

this.setVisible(false);

new managers();

}

if(e.getSource()==add)

{

try

{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}

catch (ClassNotFoundException ce)

{

JOptionPane.showMessageDialog(ss,ce.getMessage());

}

try

{

Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=物业管理系统","sa","11111111");

Statement stmt = con.createStatement();

int a = stmt.executeUpdate("insert into inhabitant(门牌号,姓名,性别,年龄,籍贯,身份证号,电话,职业)values(+txt[0].getText()+,+txt[1].getText()+,+txt[2].getText()+,+txt[3].getText()+,+txt[4].getText()+,+txt[5].getText()+,+txt[6].getText()+,+txt[7].getText()+)");

if(a==1)

{

JOptionPane.showMessageDialog(ss,"添加成功");

}

else

{

JOptionPane.showMessageDialog(ss,"添加失败");

}

}

catch (SQLException se)

{

JOptionPane.showMessageDialog(ss,se.getMessage());

} 40

}

else

{

for(int i = 0 ; i

{

txt[i].setText("");

txt[0].requestFocus();

}

} } }

package xuesheng;

import javax.swing.*;

import java.awt.event.*; import java.sql.*;

public class AddMsg extends JFrame implements ActionListener { static AddMsg s; /*添加住户信息控件*/ JPanel jpl = new JPanel(); JLabel label1 = new JLabel("更新物业信息",JLabel.CENTER); JLabel label2 = new JLabel("门牌号:",JLabel.CENTER); JLabel label3 = new JLabel("姓名:",JLabel.CENTER); JLabel label4 = new JLabel("性别:",JLabel.CENTER); JLabel label5 = new JLabel("电量:",JLabel.CENTER); JLabel label6 = new JLabel("水量:",JLabel.CENTER); JTextField num = new JTextField(2); JTextField nam = new JTextField(4); ButtonGroup bgp = new ButtonGroup(); JRadioButton man = new JRadioButton("男"); JRadioButton women = new JRadioButton("女"); JTextField ele = new JTextField(); JTextField wat = new JTextField(); JButton fangqi = new JButton("返回"); JButton addmsg = new JButton("添加");

public AddMsg() 41

{

} super("更新物业信息"); this.setResizable(false); this.setSize(500,400); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.add(jpl); jpl.setLayout(null); addmsg.addActionListener(this); fangqi.addActionListener(this); /*插入面板*/ label2.setBounds(100,50,70,20); jpl.add(label2); num.setBounds(190,50,140,20); jpl.add(num);

label3.setBounds(100,90,70,20); jpl.add(label3); nam.setBounds(190,90,140,20); jpl.add(nam);

label4.setBounds(100,130,70,20); jpl.add(label4); man.setBounds(190,130,60,20); women.setBounds(270,130,60,20); jpl.add(man); jpl.add(women); bgp.add(man); bgp.add(women); label5.setBounds(100,170,70,20); jpl.add(label5); ele.setBounds(190,170,140,20); jpl.add(ele); label6.setBounds(100,210,70,20); jpl.add(label6); wat.setBounds(190,210,140,20); jpl.add(wat); fangqi.setBounds(120,250,90,20); addmsg.setBounds(240,250,90,20); jpl.add(fangqi); jpl.add(addmsg); 42

public void actionPerformed(ActionEvent e) {

if(e.getSource()==fangqi)

{

this.setVisible(false);

new managers();

}

if(e.getSource()==addmsg)

{

String sex;

if(man.isSelected())

{

sex="男";

}

else

{

sex="女";

}

try

{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}

catch (ClassNotFoundException ce)

{

JOptionPane.showMessageDialog(s,ce.getMessage());

}

try

{

String number = num.getText();

String name = nam.getText();

String electyic = ele.getText();

String water = wat.getText();

//1注册驱动

Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=物业管理系统","sa","11111111");

String sql = "insert into PropertyInformation(门牌号 ,姓名, 性别 , 电量 , 水量 )values(?,?,?,?,?)";

//2预处理

PreparedStatement pstmt = con.prepareStatement(sql);

pstmt.setString(1, number);

pstmt.setString(2, name);

pstmt.setString(3, sex);

pstmt.setString(4, electyic); 43

pstmt.setString(5, water);

//3执行

int a = pstmt.executeUpdate();

if(a==1)

{

JOptionPane.showMessageDialog(s,"已成功添加");

}

else

{

JOptionPane.showMessageDialog(s,"添加失败");

}

pstmt.close();

}

catch (SQLException se)

{

System.out.println(1);

JOptionPane.showMessageDialog(s,se.getMessage());

}

}

else

{

num.setText("");

nam.setText("");

ele.setText("");

wat.setText("");

num.requestFocus();

} }

public static void main(String[] args) {

new AddMsg(); } }

package xuesheng; public class ATM{ public ATM(){

new WindowBox("登录页面"); } public static void main(String [] args){ ATM atm=new ATM(); } 44

}

package xuesheng; import javax.swing.*; import java.awt.*; import javax.swing.border.*; import java.awt.event.*; import java.io.*; /*登陆页面首窗口*/ class WindowBox extends Frame implements ActionListener{ Box baseBox,box1,box2; TextField tf1,tf2; Button button1; Button button2; WindowBox(String s){//构造方法

super(s); tf1 = new TextField(6); tf2 = new TextField(6);

box1= Box.createVerticalBox();

box1.add(new Label("请输入你的卡号")); //输入卡号

box1.add(Box.createVerticalStrut(8));

box1.add(new Label("请输入你的支付密码"));//输入密码

box2=Box.createVerticalBox();

box2.add(tf1);

//box2.add(new TextField(16));

box2.add(Box.createVerticalStrut(8));

box2.add(tf2);

//box2.add(new TextField(16));

baseBox=Box.createHorizontalBox();

baseBox.add(box1);

baseBox.add(Box.createHorizontalStrut(10));

baseBox.add(box2);

add(baseBox);

button1= new Button("确定");//加入按钮

button1.addActionListener(this);

add(button1);

button2 = new Button("退卡");//退卡按钮

button2.addActionListener(this);

add(button2);

setLayout(new FlowLayout());

/*监听器*/ 45

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

setBounds(220,225,225,275);

setVisible(true); } public void actionPerformed(ActionEvent e){

Account act;

String card; String pwd;

act=new Account("12","Devil","12",50000);//初始化

/*选择各种服务*/

if(e.getSource() == button1){

String number1,number2;//输入的两个卡号和密码的变量

number1=tf1.getText();

number2=tf2.getText();

/*判断两次输入的卡号和密码是否正确*/

if(("123".equals(number1))&&("123".equals(number2)))

{

Selection s = new Selection("选择服务",act);

}else{

dispose();

ErrorWarn ew = new ErrorWarn();//报输入密码或卡号不正确

}

} if(e.getSource()==button2){

System.exit(0);

dispose();//退出

} } }

package xuesheng; import javax.swing.*; import java.awt.*; import javax.swing.border.*; import java.awt.event.*; class Query extends Frame implements ActionListener{ 46

//Account act; Button button; Account act; Query(String s,Account act){//构造函数

super(s);

this.act = act;

button=new Button("确定");

//TextField tf = new TextField(6);

Panel panel1 = new Panel();

Panel panel = new Panel();

panel1.add(new Label("你的余额为: " + act.get_Money()));//查询余额的方法

//panel1.add(tf);

button.addActionListener(this);

panel.add(button);

this.add(panel);

this.add(panel1);

this.setLayout(new GridLayout(2,1));

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

setBounds(200,200,150,150);

setVisible(true); } public void actionPerformed(ActionEvent e){

if(e.getSource()==button){

dispose();

Selection s = new Selection("选择服务",act);//返回选择服务

}

} }

package xuesheng; import javax.swing.*; import java.awt.*; import javax.swing.border.*; import java.awt.event.*; 47

class GetBalance extends Frame implements ActionListener{ Box baseBox, box1,box2; Button button; TextField tf; Account act; GetBalance(String s,Account act){//构造函数

super(s);

this.act=act;

button=new Button("确定");

Panel panel = new Panel();

Panel panel1 = new Panel();

tf = new TextField(6);

this.setLayout(new GridLayout(2,1));

panel1.add(new Label("请输入你想交电费的数目"));

panel1.add(tf);

panel.add(button);

this.add(panel1);

this.add(panel);

button.addActionListener(this);

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

setBounds(200,200,150,150);

this.setVisible(true); }

public void actionPerformed(ActionEvent e){

//System.out.println(e.getActionCommand());

double money;

money = Double.parseDouble(tf.getText().trim());

if(e.getSource()==button){

if(act.get_Money()<0){//判断余额是否为负

dispose();

ErrorWarn4 ew4 = new ErrorWarn4();

}

else if(money<=act.get_Money()){//交费的数额不大于余额

if((money%100!=0)||(money>=5000)){

dispose();

ErrorWarn6 ew6 = new ErrorWarn6();

} 48

第四篇:软件工程课程设计总结

我们所选择的图书管理系统的课程设计对我们是新的挑战和尝试的过程,利用所学习的软件设计知识并制作一个关于图书管理系统,在具体的设计与实施中,我们看到并感受到了一个管理系统的具体分析,对具体的设计步骤。思路、方法有了进一步的提高,并感触深刻。

我在本次课程设计中写的内容目录、系统设计和系统功能实现。在图书管理系统的设计目录过程中碰到很多问题,刚开始设计的时候不知道从哪下手,但通过不断地摸索和在课本上查找,让我学到的知识的融会贯通性,在这次次的设计中我也发现了自己很多不足之处,对书本上所学的理解不够深刻,掌握不够牢固。通过这个实训后,我也把知识和实践结合起来。系统数据库设计的任务是确定怎样实现所用的图书管理系统,由于在选择项目的时候是本着有实际应用价值的角度考虑的,所以其中也涉及到一些数据库的设计。数据库设计是指对于给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能够有效地存储数据,数据库设计经过不断地发展与完善,已经越来越成熟。基于E-R模型的数据库设计方法,用E-R图构造一个反应世界实体之间联系的模式,将此系统模式转换成基于某一特定的DBMS的概念模式。软件系统设计是一项复杂而又重要的工作,它在软件工程中承接了需求分析与编码开发。一个好的系统设计是一个软件系统运营的基础。让我们多多重视软件系统的设计工作,以开发出更具健壮性、可扩展性、安全性、易用的软件系统。数据库设计过程是准备了解与分析用户需求,整个设计过程的基础,是最困难、最好时间的一步。结构设计是整个数据库设计的关键,通过对图书管理系统的综合、分析形成一个独立于具体DBMS的概念模型。

在这次课程设计中,我们被分配以小组为单位去完成图书管理系统的设计与制作,所以小组内的分工和相互协调很重要,大家可以在分工中扬长避短,及所长,这样可以很好的提高大家的积极性,和合作意识,但我们在这方面做的还不够,可以说是不足之处,且迫切的需要思考和改进,这一点必须指明。这在以后的工作与学习中将会非常重要。在今后的学习中注意多读书、多思考、多练习、多讨论,不断熟悉书本的基础,并依此为基础将其扩散开来,应用于今后的实践。不断锻炼自己。

作为项目经理应该从项目成员的角度出发,结合实际的角度确定项目的功能,动之以情,晓之以情,尽量使项目成员投入设计的项目中,及时和他们沟通交流,进行项目决策和项目协调,也是项目管理的基本内容。作为设计者的系统分析阶段,必须对不同模块的联系,工作量有正确的认识才能合理的分配任务,管理者要时刻保持清醒,要有合理的系统分析,如果分析出错就会导致整个团队走向错误。所以要严格要求自己,保持与团队沟通。通过项目实训我体会最深的是团队合作的重要性,我们所做的工作都不是独立的,不能只想到自己。当遇到问题不能解决,通过大家一起完成时,那份快乐也是加倍的。在实训过程中我明白了我们不应该只想着如何避免难题而应学着解决它。更重要的是平时就应该积累知识。

第五篇:软件工程课程设计心得总结

软件工程课程设计个人总结

学期就快要结束了,到了最后一周居然还有软件工程课程设计,还要考试真的有点忙啊,不管怎样还是好好干吧,把对工程的理论研究、学习成果用于实践也是一种检验学习成果和提升工程能力的有效手段嘛。

工作内容安排

软件工程课程设计的第一天拿到题目,听取老师对于课程设计的要求、要完成的工作、预期要达到的效果和注意事项。然后分组、讨论和确定选题。这真正的课程设计才算开始了,经过组长,组员的反复研究、论证后一致决定选择:

实习题目4:开发一个基于Web的BBS系统,包含一般BBS所具有的功能,如用户注册、用户信息管理、发贴功能、贴子管理、主题词查询、用户信息修改和查询等。

这个题目对于现代化的网络交流来说发展的成熟而且符合当代互联网大众的网络需求,符合现代网络对信息分享讨论的爱好,我们一致预测在今后很长的一段时间内也将会是非常流行的一种交流介质。

确定选题后我们开始软件开发的第一步,需求分析,详细设计等内容,分块分工完成模块,我分到的主要部分就是分析论坛里面的帖子内容,用户的爱好,然后解决用户的索引需求,把用户的索引需求智能的、友好的呈现给用户,把这部分的代码编写,测试,把用户界面做好就是我接下来几天的工作内容。

俗话说:磨刀不误砍柴工,要想把我的这部分内容做好,做得完美,我的好好的分析一下,对全组对整个系统的需求分析的基础上又认真分析了本部分的内容和本部分要实现的功能,对本部分实现的主要思想理清,认真设计界面,还有对队员们的模块能有效的结合起来,让他们的模块也能有效的供我使用,做好我的接口也方便其他模块与此的衔接。

问题与解决

在本次课程设计中遇到了好多前所未有的问题,第一次接触HTML网页开发,第一次邂逅JSP web应用程序开发,第一次有了原来开发应用程序是需要数据库的,对于这些都是第一次接触,需要了解HTML的基本语法,需要学习JSP web应用程序web app的开发方法,需要实践配置数据库TOMCAT、 SQL sever,居然有这么多的东西需要从头来,对于这些方面我就像一张崭新的白纸,怎么能在短短的四五天时间内将这张白纸绘成一幅栩栩如生的画卷呢,这是我们面对的亟待解决的问题。

为了解决这一系列的问题,我们没有找借口,我们没有懒惰,我们更没有放弃,而是迎难而上,到图书馆“大采购”求资料,找到想要的,真想把图书馆搬到课程设计实验室。接下来就是根据我们的需求分析,概要设计,详细设计等内容分模块编写网页源代码,修复bug,测试代码,连接数据库这样我们的全新的基于web的BBS论坛就成功上线了。 但是,事实上不是这样的,而是时间过得很快,我们的原计划日程上的内容越欠越多,由于对HTML、JSP不熟悉代码没写好,测试无从谈起,数据库连接遇到了一堆错误代码比如SQL 01000、08001错误,这些每一样东西解决起来都是有难度的,百度一下还是不知道这么做,只知道了时间过得比想象的要快多了,得到的体会就是“百度一下,你的时间就没了”。现在我们遇到的最大的问题就是时间真的太不给力了,如果有来世我一定好好学习各方面知识,哎!好像扯远了。时间真的很快,周六就要考试了,已上三年大学的我们都知道考试比神马都要重要,我们就开始了学习和实践结合的生产方式,据说这是最有效、最给力的,希望如此!

收获与体会

课程设计总会是要结束的,不管做得怎么样总归是要给老师看看我们的成果的,都做了这么多天了,成果虽然不是很理想,但是收获还是有的。这期间学到了HTML网页的编写方法,一些HTML的基本语法,也能编写出一个简单的网页,对于互联网应用程序的开发还要了解和解决网络带宽的限制,服务器响应的时间比,知道了这么安装和配置TOMCAT服务器,在期间学习了UML用例图的绘制,软件工程开发的一些基本工具的使用,软件开发文档编写的方法和实践,人机交互应用程序开发时人机界面的设计,人机对话的实现,人性化的界面设等是需要认真努力做得,要充分考虑用户的感受和体验。觉得“百度一下,你就知道”也不过如此,还是知识装在大脑里比神马都要重要,比任何来的知识都要详细和易懂。打字速度也有了一定的提升。

努力与改进方向

经过本期的软件工程课程设计,发现了学习和实践中的不足。互联网的基础知识知道的太少了,相反需要了解和掌握的还很多,在下学期要开设一门计算机网络课程,现在生活已经不能离开互联网了,不管以后是否从事这方面的工作,这部分都是需要认真学习的,网络应用程序的开发需要认真理解与提升。软件工程中需求分析的不充分,软件开发方法的体会这些都是需要以后改进和学习的,软件开发中的各种文档编写能力还需要提升,在以后学习和实践中认真总结和完善,参考他人的软件工程项目,体会优秀软件工程的思想。在做任何事情的时候都要有觉得是站在巨人的肩上,而不是重复的生产车轮的思想来坐事情,要对前人的经验教训加以总结,学习、参考和引用别人的先进研究成果,重视团队的协作,虚心的学习精神。

这期间得到了老师的悉心指导,得到了队员的理解,得到了同学们的热心帮助,谢谢你们!

上一篇:人力资源部的规章制度下一篇:软件开发面试自我介绍

本站热搜