团队成员及分工

团队: Blue 团队共有六人

姓名:     学号后四位:       贡献分:

张   宇(队长)  1152          1+1.8=2.8分

侯贺琦          1027          1+0.7=1.7分

张玉冕          1153          1+0.3=1.3分

康   贺          1169          1+0.3=1.3分

丁志愿          1011          1+0.4=1.4分

李锦城          1040          1+0.5=1.5分

1.确定团队成员绩效评估方法 -->个人在团队中的绩效

2.需求分析及设计思路     由张 宇、李锦城负责

3.界面设计及文档记录     由侯贺琦、张玉冕负责

4.具体代码编写(程序设计) 每个成员都要认领自己认为可以完成的任务

5.测试与调试                由丁志愿、康 贺负责

目标:为了顺利完成团队任务,促进每一个成员的学习。

A 每次集合是否按时到场

B 是否能促进团队的团结。

C 是否能按时在团队合作中按时完成编码任务

D 是否能按时提交每日的工作日志

达到以上要求,根据每个人对团队所做的贡献来评分,凡做一件不利于团队团结和项目进度的行为皆扣相应的分数。

姓名

张宇

侯贺琦

李锦城

康贺

张玉冕

丁志愿

是否按时到会

100

100

100

70

100

100

会上积极发言

100

100

90

100

80

100

按时完成各自任务

100

90

95

90

80

90

提交每日的工作日志

100

90

80

80

90

80

工作状况分值

400

380

365

340

350

370

用户需求:

用户需要一个MP3播放器,程序能够打开MP3文件,并可以播放这个文件。

用户故事:作为一个经常对着电脑的学生,希望能拥有一款MP3播放器,以便于听听歌曲来放松一下自己。

具体设计思路:

1.要让程序知道文件的路径,可以用一个添加按钮来实现。点击按钮打开文件选择窗口,打开一个过滤器:openFileDialog1.Filter = "*.mp3|*.mp3";从而让程序只获取mp3文件。
2.打开这个文件:这个时候其实我们是把它的信息 歌名放在了播放列表里面。在播放列表里面它是有一个索引的。
3.播放这个文件:我们是用COM组件,添加了一个WindowsMediaPlayer,这样只需要把需要播放歌曲的索引赋给这个WMP的URL就行了。就是告诉它播放哪一个歌曲。从而实现播放。
4.播放完关闭文件,然后程序可以给个播放完的提示:这个我们是判断一下WMP中的PlayState播放状态来确定歌曲是否播放完毕,如果状态为Ended就弹出“播放完毕!”消息框。

代码实现:

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

 namespace MusicPlayer
 {
     public partial class Form1 : Form
     {
         public Form1()
         {
             InitializeComponent();
         }
         public void PlaySong(int selectNum)           //被选中的音乐进行播放
         {
             MusicPlayer1.URL = playlist[selectNum];
         }
         ]; //播放列表数组
         private int num;
         public void AddFile(string path)              //添加音乐文件方法
         {
             )
             {
                 num++;
                 playlist[num] = path;
             }
         }
         public void RemoveFile(int selectNum)         //移除音乐文件方法
         {
             ; i++)
             {
                 playlist[i] = playlist[i + ];
             }
         }
         private void Addbtn_Click(object sender, EventArgs e)  //添加按钮
         {
             //打开一个过滤器,只能是以下文件
             openFileDialog1.Filter = "*.mp3|*.mp3";
             if (openFileDialog1.ShowDialog() == DialogResult.OK)
             {
                 string path = openFileDialog1.FileName;
                 FileInfo music = new FileInfo(path);
                 AddFile(music.FullName);                    //调用AddFile方法添加音乐文件
                 string Temp = Convert.ToString(num);
                 ; i <= -Temp.Length; i++)
                 {
                     Temp += ' ';
                 }
                 Temp += music.Name;             //音乐名字
                 mlist.Items.Add(Temp);          //把添加的音乐名字放在播放列表里
             }
         }
         private void Removebtn_Click(object sender, EventArgs e)  //移除按钮
         {
             )
             {
                 RemoveFile(mlist.SelectedIndex);              //移除被选中音乐文件
                 mlist.Items.RemoveAt(mlist.SelectedIndex);
             }
         }
         private void Startbtn_Click(object sender, EventArgs e)  //开始播放按钮
         {
             int Selected;
             )                  //如果播放列表没有歌曲弹出消息框
             {
                 MessageBox.Show("请您先添加歌曲!");
                 return;
             }
              && mlist.Items.Count >) //如果播放列表有歌曲但没选择,就默认播放第一个。
             {
                 Selected = ;
                 mlist.SelectedIndex = ;
             }
             else
             {
                 Selected = mlist.SelectedIndex + ;             //否则直接播放选中的那一首
             }
             PlaySong(Selected);                                 //进行播放
         }
         private void Stopbtn_Click(object sender, EventArgs e)  //停止按钮
         {
             MusicPlayer1.URL = "";                              //停止的话重新赋一个空地址
         }
         private void MusicPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
         {   //这是音乐播放完毕的时候给出个提示。
             if (MusicPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)  //播放器播放状态,如果播放结束弹出消息框
             {
                 MessageBox.Show("播放完毕!");
             }
         }
     }
 }

测试:

PSP耗时分析:

团队编程总结:

在这之前我们宿舍的舍友们基本上不会自主的去练习或者是试着写一些小程序。以至于编程的能力不是太高。所以我这次决定和我的舍友一起来做这个项目,要不然一直不练习也绝不会学到什么东西的。
接手一个项目,首先要有一个总体认识 ,整体衡量项目的各个模块及队员的情况,做到心中有数。
结合项目的要求和队员的情况,根据项目难度及个人能力合理分配任务,以便于能够充分发挥每个人的聪明才智,使项目能顺利完工。
我们首先是把这次的项目先做一个需求分析,也就是这个程序目前需要哪些功能。把功能分成一个个小任务,然后队员领取自己认为可以按时完成的任务。
沟通,协调。
因为是团队合作编程,所以我与我的队员们要及时沟通,我们基础都不算太好,难免会有搞不懂的地方,他们都会来问我,我也会细心的给予讲解。这点很好,有问题就要找Team Leader。但我不参与他们的代码编写,代码编写是他们自己的事情,我只是点拨一下,当然了我也参与到这次的代码编写中,也领取了自己的代码编写任务。我们谁有好的想法都会提出来,选择最好方案来实施,也便于项目顺利进行。

下面是侯贺琦同学的总结:

团队项目总结之个人总结:
对于这次作业,我们的大队长张宇同学起到了很大的带头作用,把我们几个发动起来,很懒的几个人,很感动。张宇同学对此软件的分析很到位,所以我理解的很迅速,尽管我的基础不好,但还是听懂几分,还有分配任务,大队长把任务分成几个小任务,歌曲的插入、列表、移除、播放、提示列表无歌曲,以及播放完毕提示,在空闲时队长给我的讲解也十分到位,我提的问题也都详细的一一讲解,令我茅塞顿开顺利完成任务,在接下来的软件制作当中我也会极力配合张宇同学,让老师给我们的软件打个高分。

Music Player团队项目(一)的更多相关文章

  1. Java团队项目总结

    Java团队项目总结 1.项目实现情况 项目概述: 我们团队项目准备实现一个有关于大富翁有的游戏程序. 大富翁游戏,以经营权为主要的游戏方式,通过购买经营权与架构经营的星级服务来获得最大的利益,当其他 ...

  2. 团队项目(第二周)—GG队

    项目需求规格分析 队员信息 队员 学号 叶尚文(队长) 3116008802 蔡晓晴 3216008808 杜婷萱 3216008809 龙剑初 3116004647 于泽浩 3116004661 项 ...

  3. AxureRp 打开SVN上的团队项目

    打开Axure,在菜单项中,点击 "团队" 菜单,选择 "获取团队项目": 切换到 "SVN" 选项, 填写正确的Axure项目的路径,打开 ...

  4. 团队项目——编写项目的Spec

    团队项目--编写项目的Spec 一.Spec的目标        spec主要用来说明软件的外部功能,和用户的交互情况,主要用来说明软件内部的设计.图片编辑器是与生活息息相关的一个必备软件,随的流行, ...

  5. [BI项目记]-搭建代码管理环境之创建团队项目

    此篇主要介绍如何基于TFS环境创建团队项目来进行项目代码的版本管理工作,这一系列将侧重于BI项目,当然对于其它项目也同样适用. 在TFS里开始一个项目,我们首先需要创建一个团队项目. 在Team Ex ...

  6. tfs中如何创建团队项目及如何操作团队项目

    创建团队项目集合 tfs server管理控制台\团队项目集合页面.选择'创建集合'链接,按向导即可创建项目集合. 创建团队项目 创建好团队项目集合后,就要开始创建团队项目了. 进入vs,连接上tfs ...

  7. Surprise团队项目总结

    Surprise团队项目总结 项目实现情况 实现人人模式:2个用户在同一台电脑上进行切磋下棋,即实现五子棋游戏的基本功能 实现人机模式:初级模式已经实现,可以进行人机交互,但是还没达到智能判断下棋点 ...

  8. 团队项目——站立会议 DAY11

    团队项目--站立会议 DAY11        团队成员介绍(5人):张靖颜.何玥.钟灵毓秀.赵莹.王梓萱        今日(2016/5/20),站立会议已进行了两周时间,将这一周所遇到的问题和心 ...

  9. 团队项目——站立会议 DAY8

    第八次站立会议记录: 参会人员:张靖颜,钟灵毓秀,何玥,赵莹,王梓萱 项目进展: 1.张靖颜:在反复修改和审查后,处理功能模块代码出错处,完善并运行. 2.钟灵毓秀:再次检查代码,运行报错处的代码修改 ...

随机推荐

  1. Writable、WritableComparable和comparators

    hadoop的序列化格式 hadoop自身的序列化存储格式就是实现了Writable接口的类,他只实现了前面两点,压缩和快速.但是不容易扩展,也不跨语言. 我们先来看下Writable接口,Writa ...

  2. 解决Android SDK Manager更新下载速度慢

    1.在Host文件加上 203.208.46.146 www.google.com 74.125.113.121 developer.android.com 203.208.46.146 dl.goo ...

  3. android 学习随笔二十八(应用小知识点小结 )

    去掉标题栏的方法 第一种:也一般入门的时候经常使用的一种方法requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏注意这句一定要写在setConte ...

  4. source insight技巧

    (1)在Source Insight中能不能设置永久Bookmark 可以从macro方面入手 (2)source insight中添加.S文件 (3)source insight里面怎么能不让它每次 ...

  5. Sublime Text 3 常用插件以及安装方法

    安装Sublime Text 3插件的方法: 一.直接安装 安装Sublime text 2插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->p ...

  6. 转Class.forName()用法详解

    主要功能 Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就是说JVM会执行该类的静态代码段 ...

  7. mysql聚集索引的优缺点

    聚簇索引并不是一种单独的索引类型,而是一种数据存储方式(不是数据结构,而是存储结构),具体细节依赖于其实现方式,但innodb的聚簇索引实际上是在同一个结构中保存了btree索引和数据行. 当表有索引 ...

  8. c# XML省市联动

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. C# PDF添加水印

    需要iTextSharp.dll, 下载地址http://sourceforge.net/projects/itextsharp/ using System;using System.Collecti ...

  10. The Blacksmith学习的相关资源

    1.Unity官网的Blacksmith主页 https://unity3d.com/pages/the-blacksmith 2.WRINKLE MAPS IN THE BLACKSMITH 褶皱贴 ...