葫芦娃团队

一、需求分析

做一个简单的播放器,就是程序能够打开MP3文件,并可以播放这个文件。

二、设计思路

设计窗体

(1)首先我们要有一个能够播放音乐的控件,一般我们学习的Windows窗体应用程序没有播放音乐的控件,我们在工具箱的空白处,按下鼠标右键弹出子菜单,具体操作如图所示:

(2)再添加一个ListBox控件和Button控件,设计添加列表和添加按钮,当点击添加按钮的时候,弹出一个“打开”窗体,选择MP3文件夹,打开到ListBox列表中,即可播放音乐。

(3)窗体布局和外观设置,如图:

功能分析

(1)建立一个成员字段变量listFile来保存文件的路径及名字信息

(2)首先实例化一个对打开文件的对话框,再实例化一个目录类。

(3)把di目录的设为当前文件夹的父目录的父目录的父目录并记录全名,再把该路径赋给打开对话框的初始目录路径。

(4)当打开对话框后,在其中选中一个文件名,把该文件名给path变量,path变量记录的是详细的文件路径信息。

(5)返回指定项中集合中的索引,如果该文件名的索引大于0,则表示该文件已经在播放列表里面了,就弹出提示框"该文件已经存在!"。

(6)把该文件名加入到lbNames里面,path是带有详细路径的文件信息,把该信息给播放器即可。

三、代码实现

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private List<string> listFile;
        public Form1()
        {
            InitializeComponent();
            listFile = new List<string>();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlgOpen = new OpenFileDialog();
            DirectoryInfo di = new DirectoryInfo(Application.ExecutablePath); 
            dlgOpen.InitialDirectory = di.Parent.Parent.Parent.FullName;
            dlgOpen.Filter = "多媒体文件(*.mp3;*.mpg)|*.mp3;*.mpg|所有文件(*.*)|*.*";
            if (dlgOpen.ShowDialog() == DialogResult.OK)
              {
                  string path = dlgOpen.FileName;
                  listFile.Add(path);
                  string name = Path.GetFileNameWithoutExtension(path);
                  if (lbNames.Items.IndexOf(name) >= 0)
                  {
                      MessageBox.Show("该文件已经存在!");
                      return;
                  }
                  lbNames.Items.Add(name);
                 lbNames.SelectedIndex = lbNames.Items.Count - 1;
                 bofang.URL = path;
                }
           
            
           }

四、测试

五、PSP耗时分析

PSP2.1 Personal Software Process Stages Time(h)
Planning 计划 18
  • Estimate 估计这个任务需要多长时间 18
Development 开发 15
  • Analysis 需求分析 0.5
  • Design Spec 生成设计文档 1
  • Coding Standard 代码规范 2
  • Design 具体设计 2
  • Coding 具体代码 3
  • Code Review 代码复审 2
  • Text 测试 1
Reporting 报告 3
  • Test Report 测试报告 1
  • Size Measurement 计算工作量

  • Postmortem 事后总结

1.5

六、团队分工

      这次团队作业是我们一个宿舍的七个人,有付媛媛(也就是我)、徐玉莹、王远离、卫文静、梁秋萍、胡田鸽、龚园苑。

      具体分工如下:

      团队负责人:付媛媛

      分析员:王远离、卫文静

      外观设计人员:龚园苑

      写代码人员:徐玉莹、付媛媛

      测试人员:梁秋萍

      记录人员:胡田鸽

      在这个团队合作中,我们感觉分析和写代码是最费脑筋的,所以在分析员和写代码人员分配了两个人。

      团队人员得分情况如下:

      付媛媛:3分

      徐玉莹:1.5分

      卫文静:1.3分

      王远离:1分

      梁秋萍:1分

      胡田鸽:1分

      龚园苑:1.2分

七、总结

      折腾了这几天,终于完成了这个播放器小软件,看着劳动成果,很欣慰;虽然不是一个人做的,但我门看到了团队的力量。

      刚开始,我们一点头绪都没有,于是我们上网查资料,找到了Windows Media Player控件,可是这点进展远远不够;不过至少我们找到了方向,知道了有这么一个控件。顺着这条路,我们继续往前走。首先我们要定义成员变量,由于我们基础学的不是很扎实,费了我们很多时间和脑力,当时从我们脑海里冒出的第一个想法就是上网查资料,然后,我们又了翻C#书,把以前学过的理论知识应用上了。平时扎实的基础很关键,因为如果你平时学得就不怎么样,那么你面对这么一个有点小难度的程序,可能会望而却步。

      慢慢的一个能播放声音的播放器就做出来了,这次团队合作让我们了解到要编写一个程序,团队合作是至关重要的,不会的可以向会的汲取知识,会的在普及知识的时候又巩固了知识。还有查找资料也挺重要,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,过程虽然艰辛,但只要你持之以恒,付出一定会有回报。

      这次团队合作,更加深了我们之间的感情,提高了我们之间的默契,我们互相看到了大家的拼搏与努力,也让我们知道团队精神得难能可贵。我们都有了不少的收获,真正的收获更多是思想上的,让我们认识到程序的复杂,自己的微不足道,“学无止境”头一次认识的这么深刻,察觉自己的不足。

      人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的路上,总遇到重重困难,但正是因为困难我们才变的更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!  

原文地址:https://www.cnblogs.com/twinkle-0908/p/4939936.html