一款c#实现的实用好玩儿的背单词程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vivi_and_qiao/article/details/83022625

1.程序功能:

软件logo:
在这里插入图片描述
1.可实现背四级单词、六级单词、考研单词、托福单词、雅思单词、中考单词、高考单词、新概念单词的功能。
2.四级单词、六级单词、考研单词、托福单词、雅思单词、中考单词、高考单词、新概念单词以一定的格式存储在记事儿本里通过文件操作进行读取。
3.实现隐藏单词和隐藏释义功能:通过多个timer的相互作用,可以先出来单词,再通过隐藏释义按钮使单词释义若干秒之后再显示单词释义,隐藏单词的功能刚好相反。在此过程中还可以通过加速减速按钮,使单词或者释义加快显现或者减慢显示。其中隐藏单词和隐藏释义不可同时工作。
4.自动功能:用户不用点击下一个按钮,即可在显示此个单词和释义后自动播放以一个单词及其释义,此时还可点击加速减速功能来调整单词播放的速度,还可点击隐藏单词或者隐藏释义按钮来使单词或者释义延迟显示达到记忆的目的。
5.乱序功能:使正序字典顺序改为乱序显示下一个单词。
6.程序还有一些细节的处理:人性化界面良好。
7.实现在线翻译的功能:输入中英文后可以直接打开浏览器并跳转至有道翻译进行翻译。
8.实现本地翻译功能:本软件收录了四级单词、六级单词、考研单词、托福单词、雅思单词、中考单词、高考单词、新概念单词及释义,可以通过本地搜索的功能翻译中文及英文单词,并显示单词所属单词列表。
9.实现历史记录的功能:不论是手动还是自动的背诵单词,在退出的时候都将会保存背诵记录,通过查看历史记录可以直接从上次的断点再次进行背诵。
10.单词收藏及收藏功能:在背诵单词的时候可以单击收藏按钮即将单词收录至收藏本中,可以通过打开收藏本查看收藏的功能。在收藏本中还可以继续以娱乐的方式对收藏的单词进行再次记忆。
11.错词记录及错词本功能,在默写单词及释义的时候,如果默写出错,软件可以在进行短暂提示后将单词存储在错词本中。打开对应单词的错词本的时候可以查看对应的默写出错的单词及释义,在错词本中还可以继续对单词进行默写,直到单词或释义默写正确后才将单词从错词本中去除。在错词本中,可以通过字典正序及字典乱序的方和出错次数进行排序。
12.程序实现清除收藏本及历史记录的功能。
13.可以设置单词及释义的字体及颜色和主背景图片以及听写单词释义时显示时常。
14.本软件还会在启动时检查本地安装包,若安装包有文件缺失或损坏时,可以对软件进行修复。
15.当软件连接上互联网以后,此应用可以自动获取并播放所有单词(包括托福雅思新概念考研四六级中高考英语单词)的读音,让你加深对单词的记忆。
16.连上网以后通过注册登录还可以享受本软件使用记录的云同步功能,当你登录时会自动检查云端和本地的软件使用记录,如果发现不一致,会提示您将本地数据同步到云端或者将云端数据恢复至本地。当你卸载重新安装或者使用另一台计算机使用本软件时,可以恢复你之前使用本软件的记录,方便你从上一次背单词的节点继续使用本软件。
此程序打包后的发布的方法请关注CSDN 博客
求c#爱好者共同开发此程序,联系我请加qq:2576363815,我还会软件私人订制哦,即将所有的图标背景图片更改为你心爱的人,让你的那个他(她)拥有一款属于自己的背单词软件。

2.软件功能与特色:

我爱背单词是一款能够帮助您记忆四六级英语,考研英语,托福、雅思、中高考、新概念词汇的记忆单词软件,采用独创印象刺激法提高您记忆单词的效率,支持记忆四六级、考研、托福、雅思、中高考、新概念单词。支持默写托福、雅思、中高考、新概念大纲词汇的单词及释义,并可以存储您默写错误的单词或释义以便您下次加强单词的记忆,错词本功还提供您对默写错误的单词或释义再次的默写,巩固加强您对单词的记忆。
本软件还会自动记录您背单词的节点,方便您从上次结束的地方继续记忆单词。
并支持单词的收藏功能,收藏本可以展示所有您收藏的单词,在收藏本中还可以对您收藏过的单词进行再次拼写记忆。
本软件还提供在线搜索单词的功能,只要您的计算机连上网络就可以对单词或者释义进行翻译,若您的计算机不能连接上网络,那也没有关系,本软件在本地已经加载好四六级、考研、托福、雅思、中高考、新概念单词库,可以本地进行单词以及释义的翻译,一次安装,终身免费使用。
当软件连接上互联网以后,此应用可以自动获取并播放所有单词(包括托福雅思新概念考研四六级中高考英语单词)的读音,让你加深对单词的记忆。连上网以后通过注册登录还可以享受本软件使用记录的云同步功能,当你登录时会自动检查云端和本地的软件使用记录,如果发现不一致,会提示您将本地数据同步到云端或者将云端数据恢复至本地。当你卸载重新安装或者使用另一台计算机使用本软件时,可以恢复你之前使用本软件的记录,方便你从上一次背单词的节点继续使用本软件。
本软件还会在启动时检查本地安装包,若安装包有文件缺失或损坏时,可以对软件进行修复。
我爱背单词定会给您提供不一样的背单词体验,让您的背单词效率快速提升!

3.程序打包下载地址:

我爱背单词2.0程序打包下载地址:我爱背单词2.0下载
我爱背单词3.0程序打包下载地址:我爱背单词3.0下载
我爱背单词3.01程序打包下载地址:我爱背单词3.01下载

4.我爱背单词2.0c#语言实现,源代码,完整项目文件下载:

我爱背单词2.0c#语言实现完项目文件打包下载

5.我爱背单词3.0c#语言实现,源代码,完整项目文件下载:

我爱背单词3.0c#语言实现完项目文件打包下载

6.程序截图:

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. 程序源码:

copyrirght vivi_and_qiao liwei
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Threading;
namespace 我爱背单词
{
    public partial class Form1 : Form
    {
        int clicknum = 0;
        string[] word, meaning;
        FileInfo file;
        int hideword=0, hidemeaning=0,clicknum_of_hideword=0,click_num_of_hidemeanning=0;
        public Form1()
        {
            InitializeComponent();
            this.label1.BackColor = Color.Transparent;
            this.label2.BackColor = Color.Transparent;
            this.label3.BackColor = Color.Transparent;
            this.button1.Visible = false;
            this.button1.Enabled = false;
            speedup.Visible = false;
            speedup.Enabled = false;
            speeddown.Visible = false;
            speeddown.Enabled = false;
            auto.Visible = false;
            auto.Enabled = false;
            button6.Visible = false;
            button6.Enabled = false;
            label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            label3.Visible = false;
            timer3.Enabled = false;
        }
        public void Load1()
        {
            if (file.Exists == true)
            {
                string[] strs;
                StreamReader reader = new StreamReader(file.FullName, Encoding.UTF8);
                String str = String.Empty;
                str = reader.ReadToEnd();
                strs = str.Split('\n');
                word = new string[strs.Length];
                meaning = new string[strs.Length];
                label3.Visible = true;
                label3.Text = "正在读取单词库.....";
                if (file.Name == "六级单词.txt")
                    for (int i = 0; i < strs.Length - 1; i++)
                    {

                        string[] strss;
                        strss = strs[i].Split('	');
                        // Console.Write(strss[i]);
                        word[i] = strss[1];
                        // Console.WriteLine (word[i]);
                        meaning[i] = strss[2];
                        if (strss.Length >= 3)
                            for (int j = 3; j < strss.Length; j++)
                                meaning[i] += strss[j];
                    }
                if (file.Name == "College_Grade4.txt")
                    for (int i = 0; i < strs.Length - 1; i++)
                    {

                        string[] strss;
                        strss = strs[i].Split('	');
                        // Console.Write(strss[i]);
                        word[i] = strss[1];
                        // Console.WriteLine(word[i]);
                        meaning[i] = strss[2];
                    }
                if (file.Name == "考研英语大纲词汇.txt")
                    for (int i = 0; i < strs.Length - 1; i++)
                    {

                        string[] strss;
                        strss = strs[i].Split('	');
                        // Console.Write(strss[i]);
                        word[i] = strss[0];
                        // Console.WriteLine(word[i]);
                        meaning[i] = strss[1];
                        if (strss.Length >= 2)
                            for (int j = 2; j < strss.Length; j++)
                                meaning[i] += strss[j];
copyrirght vivi_and_qiao liwei                    }
                label3.Text = "加载完毕,祝您使用愉快!";
            }
            else
                label1.Text = "读取单词文本文件错误!";
        }
        public void hidebutton()
        {
            button1.Visible = true;
            button1.Enabled = true;
            button3.Visible = false;
            button3.Enabled = false;
            button4.Visible = false;
            button4.Enabled = false;
            button5.Visible = false;
            button5.Enabled = false;
            button2.Visible = false;
            button2.Enabled = false;
            button6.Visible = true;
            button6.Enabled = true;
            button9.Visible = true;
            button9.Enabled = true;
            button10.Visible = false;
            button10.Enabled = false;
        }
        public void diaplaybutton()
        {
            button1.Visible = false;
            button1.Enabled = false;
            button3.Visible = true;
            button3.Enabled = true;
            button4.Visible = true;
            button4.Enabled = true;
            button5.Visible = true;
            button5.Enabled = true;
            button2.Visible = true;
            button2.Enabled = true;
            button6.Visible = false;
            button6.Enabled = false;
            button9.Visible = false;
            button9.Enabled = false;
            button7.Visible = false;
            button7.Enabled = false;
            button8.Visible = false;
            button8.Enabled = false;
            auto.Visible = false;
            auto.Enabled = false;
            button10.Visible = true;
            button10.Enabled = true;
            speedup.Visible = false;
            speedup.Enabled = false;
            speeddown.Visible = false;
            speeddown.Enabled = false;
         
        }
        private void button1_Click(object sender, EventArgs e)
        {
            label3.Visible = false;
            button1.Text = "下一个";
            if ((hideword == 1&&hidemeaning==0)||(hideword == 0&&hidemeaning==1))
            {
                speedup.Visible = true;
                speedup.Enabled = true;
                speeddown.Visible = true;
                speeddown.Enabled = true;
                timer1.Enabled = true;
                timer2.Enabled = true;
            }
            label1.Text = word[clicknum];
            label2.Text = meaning[clicknum];
            if (clicknum > word.Length)
            {
                label1.Text = "恭喜您已经背诵所有单词!";
                label2.Text = "程序即将退出!";
                System.Threading.Thread.Sleep(500);
                System.Diagnostics.Process.GetCurrentProcess().Kill();
            }
            else
                clicknum++;
            if (clicknum > 0)
            {
                button7.Visible = true;
                button7.Enabled = true;
                auto.Visible = true;
                auto.Enabled = true;
                button8.Visible = true;
                button8.Enabled = true;
            }
            else
            {
                button7.Visible = false;
                button7.Enabled = false;
                button8.Visible = false;
                button8.Enabled = false;
                auto.Visible = false;
                auto.Enabled = false;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.GetCurrentProcess().Kill();
        }

        private void button5_Click(object sender, EventArgs e)
        {
            file = new FileInfo("College_Grade4.txt");
            Load1();
            label1.Text = "四级单词";
            label2.Text = "释义";
            hidebutton();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            file = new FileInfo("六级单词.txt");
            Load1();
            label1.Text = "六级单词";
            label2.Text = "释义";
            hidebutton();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            file = new FileInfo("考研英语大纲词汇.txt");
            Load1();
            label1.Text = "考研英语大纲词汇";
            label2.Text = "释义";
            hidebutton();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            diaplaybutton();
            timer1.Enabled = false;
            timer2.Enabled = false;
            timer3.Enabled = false;
            button1.Text = "开始";
            click_num_of_hidemeanning = clicknum_of_hideword = 0;
        }
copyrirght vivi_and_qiao liwei
        private void button9_Click(object sender, EventArgs e)
        {
            Array wordarray = word.ToArray();
            Array meaningarray = meaning.ToArray();
            Random rad = new Random();

           string []temp,temp1 = new string[word.Length];
           temp = word;
           temp1 = meaning;
         
            //打乱数组中元素顺序
            Random rand = new Random(DateTime.Now.Millisecond);
            for (int i = 0; i < temp.Length; i++)
            {
                int x, y; string t1,t2;
                x = rand.Next(0, temp.Length);
                do
                {
                    y = rand.Next(0, temp.Length);
                } while (y == x);
                t1 = temp[x];
                temp[x] = temp[y];
                temp[y] = t1;
                t2 = temp1[x];
                temp1[x] = temp1[y];
                temp1[y] = t2;
            }
           word=temp;
           meaning = temp1;
        }

        private void button7_Click(object sender, EventArgs e)
        {
            clicknum_of_hideword++;
            if (clicknum_of_hideword % 2 == 1)
            {
                hideword = 1;
                hidemeaning = 0;
            }
            else 
            {
                hideword = 0;
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            
            if( hideword ==1&&hidemeaning==0)
            label1.Visible=false;
           if( hideword ==0&&hidemeaning==1)
               label2.Visible = false;
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            timer1.Stop();          
            if (hideword == 1 && hidemeaning == 0)
            label1.Visible = true;
            if (hideword == 0 && hidemeaning == 1)
                label2.Visible = true;
        }

        private void button8_Click(object sender, EventArgs e)
        {
            click_num_of_hidemeanning++;
            if (click_num_of_hidemeanning % 2 == 1)
            {
                hideword = 0;
                hidemeaning = 1;
            }
            else
                hidemeaning = 0;
        }
copyrirght vivi_and_qiao liwei
        private void speedup_Click(object sender, EventArgs e)
        {
            if (timer3.Enabled == true)
            {
                if (timer3.Interval > 300)
                    timer3.Interval -= 300;
            }
            else
            {
                if (timer2.Interval > 300)
                    timer2.Interval -= 300;
            }
        }

        private void speeddown_Click(object sender, EventArgs e)
        {
            if (timer3.Enabled == true)
            {
                if (timer3.Interval < 10000)
                    timer3.Interval += 300;
            }
            else
            {
                if (timer2.Interval < 10000)
                    timer2.Interval += 300;
            }
        }

        private void auto_Click(object sender, EventArgs e)
        {
            timer3.Enabled = true;
            button7.Visible = false;
            button7.Enabled = false;
            button8.Visible = false;
            button8.Enabled= false;
            timer2.Interval = timer3.Interval;
        }
copyrirght vivi_and_qiao liwei
        private void timer3_Tick(object sender, EventArgs e)
        {
            label3.Visible = false;
            button1.Enabled = false;
            button2.Visible = false;
            if ((hideword == 1 && hidemeaning == 0) || (hideword == 0 && hidemeaning == 1))
            {
                speedup.Visible = true;
                speedup.Enabled = true;
                speeddown.Visible = true;
                speeddown.Enabled = true;
                timer1.Enabled = true;
                timer2.Enabled = true;
            }
            if (clicknum > word.Length)
            {
                label1.Text = "恭喜您已经背诵所有单词!";
            }
            else
                clicknum++;
            label1.Text = word[clicknum];
            label2.Text = meaning[clicknum];        
            if (clicknum > 0)
            {
                button7.Visible = true;
                button7.Enabled = true;
                button8.Visible = true;
                button8.Enabled = true;
                auto.Visible = true;
                auto.Enabled = true;
                speedup.Visible = true;
                speedup.Enabled = true;
                speeddown.Visible = true;
                speeddown.Enabled = true;
            }
            else
            {
                button7.Visible = false;
                button7.Enabled = false;
                button8.Visible = false;
                button8.Enabled = false;
                auto.Visible = false;
                auto.Enabled = false;
            }
        }
    }
}
copyrirght vivi_and_qiao liwei

4.程序实现略讲:

1.首先将四级单词六级单词和考研单词以单词释义对儿的方式放在记事本里,方便通过流进行读取
2.为了能在一个窗口上重叠多个不同按钮,可以设置重叠放置按钮的Enable属性和Visiable属性,方便其在程序流程中的显示和功能完成
3.设置多个相互关联的Timer使其能够实现两个Lable的不同时显示(即隐藏单词和隐藏释义的工功能)
4.通过更改Timer的Interval属性值的大小来实现加速和减速显示的功能。
5.通过打乱数组中元素的顺序算法来实现乱序显示单词的功能。

5.程序打包下载地址:

爱背单词程序打包下载地址:我爱背单词2.0下载

猜你喜欢

转载自blog.csdn.net/vivi_and_qiao/article/details/83022625