面向对象课程设计日志(一)

日志总目录:

面向对象课程设计日志(一)——题目分析+编程前的准备

面向对象课程设计日志(二)——相关类的设计+单词库建立

面向对象课程设计日志(三)——主界面设计

面向对象课程设计日志(四)——登录界面+注册界面

面向对象课程设计日志(五)——计划设定窗口

面向对象课程设计日志(六)——学习新单词+复习测试+生词表

面向对象课程设计日志(七)——查看历史记录

面向对象课程设计日志(八)——总结+感谢


目录:

面向对象课程设计日志(一)

课程题目:

设计思路:

程序设计前的准备:

构建Windows form架构

Winform代码的基本构成


  1. 课程题目:

    1. 我爱记单词系统

      我爱记单词是一款帮助大家记忆英文单词的软件,软件功能如下:

    2. 单词库导入
      1. 单词信息包括:单词编号、单词英文、单词中文解释等基本信息。
      2. 提供文件方式存储的单词列表,从文件读入单词,建立单词库。
    3. 学习计划设置
      1. 设置每天需要记忆的单词数,根据总的单词数,计算出计划完成的天数。
      2. 设置单词学习的顺序,按照词表顺序或者随机产生每天需学习的单词。
    4. 单词学习
      1. 学习新单词
    5. 学习时,每个单词给出中英文对照(或者只给出英文,中文先隐藏起来,给出选择是否给出中文对照),一个一个的浏览,直到当天计划完成。在浏览单词的过程中,如果发现单词没有办法一次记住,添加到生词表中。

    6. 其中涉及到已记忆单词表,未记忆单词表和生词表。将每天已经学习过的单词添加到已记忆单词表中,并从整个单词表中删除,形成未记忆单词表。记忆过程中个人需要重点记忆的单词添加到生词表中。
    7. 复习生词表
      1. 按照天或者整个浏览生词表。
    8. 扩展功能:
      1. 支持单词库的选择。
      2. 支持系统退出时,将已记忆单词表,未记忆单词表和生词表记录到文件中。
      3. 显示打卡记录。
    9. 图示:

       

  2. 设计思路:

    1. 尝试使用图形用户界面完成程序,将单词库储存在MySQL数据库中便于操作、整理;
    2. 数据库设计:
      1. “userinfo”库储存已注册的用户信息,包括用户名、密码、当前单词计划名、每日记忆单词数、历史记录;user的名字使用unique约束,保证不重名;
      2. 每个用户有三张表格,以用户名命名的表格存放用户的打卡日期,以用户名+“finish”(如abcfinish)命名的表格存放用户已记忆的单词,以用户名+“newword”(如abcnewword)命名的表格存放用户生词表;
      3. “wordlist”数据库存放用户从文件中导入的单词表信息;
    3. 图形用户界面框架:
      1. “Opening”为用户登陆界面,“SignIn”为用户注册界面,“MainForm”为显示个人信息和进行主要操作的界面(程序的主入口Main函数在这里);
      2. “SetPlan”为用户设置当前计划并导入的界面,“Study”为用户学习新单词的界面,“Review”为用户学习新单词后检测的界面,“RorL”为用户选择学习模式(顺序学习或随机学习,汉译英检测或英译汉检测),“Study1”为用户学习生词表的界面,“History”为用户查询历史记录的界面。 
  3. 程序设计前的准备:

    1. 编程环境的准备:使用VS2019+.netFramework环境
    2. 使用MySQL 8.21

  4. 构建Windows form架构

    1. 选择CLR空项目
    2. 使用.netFramework框架
    3. 项目属性-->连接器-->子系统-->选窗口
    4. 连接器-->高级-->入口-->Main-->确定保存设置(即Main方法作为程序入口)
    5. 右键项目名称-->添加新建项-->C++  UI  Windows窗体
    6. 窗体cpp文件中添加方法Main如下:
    7. #include"MyForm.h"
      
      using namespace Project2;
      
      [STAThread]
      void Main(array<String^>^ args)
      {
      	Application::EnableVisualStyles();
      	Application::SetCompatibleTextRenderingDefault(false);
      
      	MyForm form;
      	Application::Run(% form);
      }
      

       

    8. 保存即可正常打开窗体文件了
    9. 双击窗口头文件打开窗体设计器进行设计
    10. 功能可以在对象浏览器中查找  System::Windows::Forms 的成员了解其用法进行使用(可以用CTRL+左键打开查询)
    11. 从左边工具栏中找窗体组件添加
  5. Winform代码的基本构成

Winform.h

#pragma once
namespace WordMemory {
	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary>
	/// Winform 摘要
	/// </summary>
	public ref class MainForm : public System::Windows::Forms::Form
	{
		public:
		MainForm(void)
		{
		InitializeComponent();
		//
		//构造函数,窗口初始化。
		//
	    }
	 
	protected:
		/// <summary>
		/// 清理所有正在使用的资源。
		/// </summary>
		~MainForm()
		{
		    if (components)
		    {
		    delete components;
		    }
		}
		//下面是窗口组件的声明。
		……
	private:
		/// <summary>
		/// 必需的设计器变量。
		/// </summary>
		System::ComponentModel::Container ^components;
	#pragma region Windows Form Designer generated code
		/// <summary>
		/// 设计器支持所需的方法 - 不要修改
		/// 使用代码编辑器修改此方法的内容。
		/// </summary>
		void InitializeComponent(void)
		{
			//窗口组件的初始属性。
		}
		#pragma endregion
		//下面是窗口组件事件方法的汇总
	};
}

Winform.cpp

 
/*一般窗口的各种方法在头文件中已经实现,所以对应源文件无需额外编写,下面展示程序入口Main函数*/
#include "MainForm.h"	 
	
using namespace std;
using namespace WordMemory;
	 
[STAThread]
	 
void Main(cli::array<String^>^ args)
{
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false);
	 
	MainForm form;
	Application::Run(% form);
}

下集预告:相关类的设计和单词库构建。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值