一、需求分析
做一个简单的播放器,就是程序能够打开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; } }
四、测试
![](https://i-blog.csdnimg.cn/blog_migrate/e3d11624026e7510351f8a335c236771.png)
五、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 | 计算工作量 | 1 |
• Postmortem | 事后总结 | 1.5 |
六、团队分工
这次团队作业是我们一个宿舍的七个人,有付媛媛(也就是我)、徐玉莹、王远离、卫文静、梁秋萍、胡田鸽、龚园苑。
具体分工如下:
团队负责人:付媛媛
分析员:王远离、卫文静
外观设计人员:龚园苑
写代码人员:徐玉莹、付媛媛
测试人员:梁秋萍
记录人员:胡田鸽
在这个团队合作中,我们感觉分析和写代码是最费脑筋的,所以在分析员和写代码人员分配了两个人。
团队人员得分情况如下:
付媛媛:3分
徐玉莹:1.5分
卫文静:1.3分
王远离:1分
梁秋萍:1分
胡田鸽:1分
龚园苑:1.2分
七、总结
折腾了这几天,终于完成了这个播放器小软件,看着劳动成果,很欣慰;虽然不是一个人做的,但我门看到了团队的力量。
刚开始,我们一点头绪都没有,于是我们上网查资料,找到了Windows Media Player控件,可是这点进展远远不够;不过至少我们找到了方向,知道了有这么一个控件。顺着这条路,我们继续往前走。首先我们要定义成员变量,由于我们基础学的不是很扎实,费了我们很多时间和脑力,当时从我们脑海里冒出的第一个想法就是上网查资料,然后,我们又了翻C#书,把以前学过的理论知识应用上了。平时扎实的基础很关键,因为如果你平时学得就不怎么样,那么你面对这么一个有点小难度的程序,可能会望而却步。
慢慢的一个能播放声音的播放器就做出来了,这次团队合作让我们了解到要编写一个程序,团队合作是至关重要的,不会的可以向会的汲取知识,会的在普及知识的时候又巩固了知识。还有查找资料也挺重要,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,过程虽然艰辛,但只要你持之以恒,付出一定会有回报。
这次团队合作,更加深了我们之间的感情,提高了我们之间的默契,我们互相看到了大家的拼搏与努力,也让我们知道团队精神得难能可贵。我们都有了不少的收获,真正的收获更多是思想上的,让我们认识到程序的复杂,自己的微不足道,“学无止境”头一次认识的这么深刻,察觉自己的不足。
人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的路上,总遇到重重困难,但正是因为困难我们才变的更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!