团队成员及分工

团队: 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. 使用Json.Net处理json序列化和反序列化接口或继承类

    以前一直没有怎么关注过Newtonsoft的Json.Net这个第三方的.NET Json框架,主要是我以前在开发项目的时候大多数使用的都是.NET自带的Json序列化类JavaScriptSeria ...

  2. 操作系统,windows编程,网络,socket

    首发:个人博客,更新&纠错&回复 之前关于c/s的一篇博文只记了思路没记代码,而且表达不清晰,事后看不知所云,这个习惯要改. 这十几天学了点关于操作系统.windows编程和网络,主要 ...

  3. UIView属性及方法

    @property(nonatomic) CGFloat alpha //设置视图的透明度 //透明度的设置从最小0.0到1.0 ,1.0为完全不透明, //其中这个属性只影响当前视图,并不会影响其子 ...

  4. Qt可执行程序写入版本信息

    [1]新建Qt工程 1.1 具体新建步骤不赘述. 1.2 新建工程后文件目录如下: 1.3 留意对比一下你的代码目录,可以发现我的文件目录中多了一个rc类型的资源文件.那么,它也就是关键点. 1.4 ...

  5. Asp.net的post提交方式

    //建立WebRequest对象,url目标地址HttpWebRequest req =(HttpWebRequest)WebRequest.Create(url); //将LoginInfo转换为b ...

  6. android 常用命令

    1.查看当前手机界面的 Activity   dumpsys | grep "mFocusedActivity" 查看任务栈 dumpsys | grep "Hist&q ...

  7. Android:Intent传递数据的几种类型和源码实现

    public class Intent implements Parcelable, Cloneable {   //... private String mAction; private Uri m ...

  8. 中国行政区域(省,市,县)SQL

    数据库:Region CREATE DATABASE [Region] 表:Province CREATE TABLE [dbo].[Province](     [Id] [int] NOT NUL ...

  9. 这题实在不知道起啥名好了 分类: sdutOJ 2015-06-22 17:17 19人阅读 评论(0) 收藏

    这题实在不知道起啥名好了 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 懒得想背景故事了,开门见山. 有一个长度为n的整数数列A ...

  10. c#中委托和事件(续)(转)

    本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器.异常处理.超时处理和异步方法调用等内容. 为什么要使用事件而不是委托变量? 在 C#中的委托和事件 中,我提出了两个为 ...