Music Player团队项目(一)

团队成员及分工

团队: 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就弹出“播放完毕!”消息框。

代码实现:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 using System.IO;
10 using System.Threading;
11
12 namespace MusicPlayer
13 {
14     public partial class Form1 : Form
15     {
16         public Form1()
17         {
18             InitializeComponent();
19         }
20         public void PlaySong(int selectNum)           //被选中的音乐进行播放
21         {
22             MusicPlayer1.URL = playlist[selectNum];
23         }
24         private string[] playlist = new string[1000]; //播放列表数组
25         private int num;
26         public void AddFile(string path)              //添加音乐文件方法
27         {
28             if (num < 1000)
29             {
30                 num++;
31                 playlist[num] = path;
32             }
33         }
34         public void RemoveFile(int selectNum)         //移除音乐文件方法
35         {
36             for (int i = selectNum; i < num - 1; i++)
37             {
38                 playlist[i] = playlist[i + 1];
39             }
40         }
41         private void Addbtn_Click(object sender, EventArgs e)  //添加按钮
42         {
43             //打开一个过滤器,只能是以下文件
44             openFileDialog1.Filter = "*.mp3|*.mp3";
45             if (openFileDialog1.ShowDialog() == DialogResult.OK)
46             {
47                 string path = openFileDialog1.FileName;
48                 FileInfo music = new FileInfo(path);
49                 AddFile(music.FullName);                    //调用AddFile方法添加音乐文件
50                 string Temp = Convert.ToString(num);
51                 for (int i = 1; i <= 2-Temp.Length; i++)
52                 {
53                     Temp += ‘ ‘;
54                 }
55                 Temp += music.Name;             //音乐名字
56                 mlist.Items.Add(Temp);          //把添加的音乐名字放在播放列表里
57             }
58         }
59         private void Removebtn_Click(object sender, EventArgs e)  //移除按钮
60         {
61             if (mlist.SelectedIndex >= 0)
62             {
63                 RemoveFile(mlist.SelectedIndex);              //移除被选中音乐文件
64                 mlist.Items.RemoveAt(mlist.SelectedIndex);
65             }
66         }
67         private void Startbtn_Click(object sender, EventArgs e)  //开始播放按钮
68         {
69             int Selected;
70             if (mlist.Items.Count <= 0)                  //如果播放列表没有歌曲弹出消息框
71             {
72                 MessageBox.Show("请您先添加歌曲!");
73                 return;
74             }
75             if (mlist.SelectedIndex < 0 && mlist.Items.Count >0) //如果播放列表有歌曲但没选择,就默认播放第一个。
76             {
77                 Selected = 1;
78                 mlist.SelectedIndex = 0;
79             }
80             else
81             {
82                 Selected = mlist.SelectedIndex + 1;             //否则直接播放选中的那一首
83             }
84             PlaySong(Selected);                                 //进行播放
85         }
86         private void Stopbtn_Click(object sender, EventArgs e)  //停止按钮
87         {
88             MusicPlayer1.URL = "";                              //停止的话重新赋一个空地址
89         }
90         private void MusicPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
91         {   //这是音乐播放完毕的时候给出个提示。
92             if (MusicPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)  //播放器播放状态,如果播放结束弹出消息框
93             {
94                 MessageBox.Show("播放完毕!");
95             }
96         }
97     }
98 }

测试:

PSP耗时分析:

团队编程总结:

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

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

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

时间: 2024-10-11 07:08:43

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

Java团队项目总结

Java团队项目总结 1.项目实现情况 项目概述: 我们团队项目准备实现一个有关于大富翁有的游戏程序. 大富翁游戏,以经营权为主要的游戏方式,通过购买经营权与架构经营的星级服务来获得最大的利益,当其他玩家破产后,最后一个玩家取得胜利来结束游戏.在百度词条上示意为,默认多幅地图,以掷骰点数前进,并有多种道具.卡片使用,另外触发一些“特别事件”.主要通过购买房产,收取对方的路费.租金来导致对手的破产. 项目预期: 鉴于对java学习的程度和掌握内容,基本实现大富翁的游戏内容我们的项目打算实现以下目标

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下-------------答题者:徐潇瑞

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下 - 当时的项目有多少用户,给用户多少价值? 现在还有人用吗? - 这个项目能否给我们团队继续开发,源代码/文档还有么? - 项目开发有什么经验和教训 - 对学好软件工程有什么建议 写成一个博客   #团队博客作业2 根据老师的作业要求,我们采访了以前本科认识的一个同学,他在读本科的时候出去实习,参与了一些项目.他参与了手机外卖app的开发,根据他的回答,当时用户有1

团队项目利用Msbuild自定义Task实现增量发布

最近一直在做自动部署工具,主要利用到了Msbuild的自定义Task,通过Task我们可以自定义编译.部署过程减少人工直接干预.Msbuild的详细用法,可以去园子里搜一下,有很多的基础教程,这里就不赘述了,还是集中说一下增量发布的问题. 增量主要涉及到三部分内容,程序.配置和静态文件(例如CSS.JS等),程序的增量比较简单,通过版本对比或者TFS的修改记录便可以查询出被修改过的程序集.配置文件增量大致有两种,全增量和部分增量.全增量也很简单,直接把修改过的配置文件复制到发布包就OK了:部分增

团队项目开发特点以及NABCD分析总结

团队项目的特点:开发的这款软件是从我们的日常生活中得到的启发,现在正是大学阶段,刚刚开始管理自己每个月的生活费,并且在大学中每个月的生活费会有很多去处,然而记录在本子上又容易丢,而且不好分类,所以我们想开发这个软件,实现学生的网上记录,并且可以根据输入将这些分类,进行每月的总结. N:解决了大学生生活费管理不够清楚,分类不够细化的问题.生活费不知去向的问题 A:有一定的编程基础,并且可以通过查询资料将代码用安卓开发工具包装成一个安卓版的手机APP B:可以将用户记账难的问题解决,使记账变得不再复

团队项目(一)

团队项目我们组是要做一款局域网聊天工具,是可以允许用户在局域网中创建聊天室并聊天.对于在同一局域网中有聊天.群聊需求的用户十分有帮助,面向高校.企业用户.无需连接因特网,在局域网便可以开启群聊. 具体需求分析如下: 以下数字代表功能需求优先级,最大为10. 业务需求: 私人即时文字交流(10): 一对一的文字交流,一个客户端发送方与一个接收方,发出字符串后接收. 多人即时文字交流(9): 一个客户端发送方与多个接收方,发出字符串(长度<50)后接收. 图形用户界面(10): 提供简洁易懂的图形用

团队项目个人总结

团队项目个人总结 基本内容 工大助手(桌面版) 实现登陆.查成绩.计算加权平均分等功能 团队人员 13070002 张雨帆 13070003 张帆 13070004 崔巍 13070006 王奈 13070045 汪天米 13070046 孙宇辰 总结 经过此次的软件工程团队项目,我对团队软件开发有了更深入的认识.一个团队,想要高效的运转需要组长良好的组织和组内每个人的通力合作,统筹规划十分重要.我们组一开始就遇到了这样的问题.没有良好的组织,大家不知道自己应该做哪些方面的内容,也不知道其他成员

团队项目失败总结

很遗憾 ,这次团队项目失败了.预定的是做一个简易四则运算器,以计算为辅,出题为主.出题包含两部分,小学部分和初中部分.现在只完成了小学部分,计算器部分也完成了.我们团队的基本配置是:一位主编(我).两位副编,一位负责计算器模块另一位负责UI.一人专司文档.一人做需求分析.一人做系统测试.分析此次项目失败,原因很多,主要有二:(1)所选编程语言不熟——Java,此前从未接触过Java,因为做项目的时候要考虑UI,用C语言就不合适了,C++用的也不熟,就选了Java.只能一边学一边用.我选的参考书是

团队项目冲刺第九天

团队项目冲刺第九天个人工作总结如下: 1.昨天干了什么? 昨天将部分整合的界面进行了修改完善,并且连接数据库测试了登录注册的功能. 2.今天准备干什么? 今天准备将后续完成的界面和功能继续从整体的软件中进行添加完善,如各个模块中的功能界面. 3.遇到什么困难? 一些界面的跳转遇到问题,前一时间段的界面整合中,界面的跳转都是用intent对象连接两个有逻辑跳转的界面,但是后续完成的界面用了fragment,activity里面可以包括多个fragment,使用intent对象实现跳转所要求的形参必

团队项目冲刺第七天

团队项目冲刺第七天个人工作总结如下: 1.昨天干了什么? 昨天对团队成员做完的部分界面进行了整合,同时对一些界面进行了优化. 2.今天准备干什么? 今天继续整合界面,将各个界面的主题或者布局进行统一,另外,今天准备做一个欢迎的界面,即一打开app有一个标志性的界面. 3.遇到什么困难? 不知道如何设置全屏界面,改变了theme,课时仍然得不到想要的界面效果,目前还没有解决:另外,对于安卓的MVC模式有点模糊,对于活动的使用不熟悉,浪费了很多的时间.