《软件工程》课程设计
学 生 成 绩 信 息 管 理 系 统
指导老师:曾 鹏 姓 名:白 飞 学 号:2
班 级:计科系82011班
《软件工程》课程设计——学生成绩信息管理系统
目录:
第一部分 选课系统分析 1. 引言
1.1. 编写目的 1.2背景说明
1.3. 术语定义及参考资料 2. 任务概述
2.1. 目标
2.2. 系统技术
2.3基本设计概念和处理流程 2.4. 用户的特点 3. 需求规定
3.1. 对功能的规定 3.2. 对性能的规定 4. 设计思想
4.1. 数据库的设计 4.2. 系统功能特点 5、软件测试
第二部分 学生成绩查询系统分析 1. 系统需求分析 2. 系统功能设计 3. 概念设计
3.1概念结构设计的E-R 图 3.2逻辑结构设计
4. 概要设计
5. 主要模块详细设计说明书
第三部分 附带主要部分源码
第四部分 设计感想
《软件工程》课程设计——学生成绩信息管理系统
第一部分 选课系统
2. 引言
21世纪以高科技为核心的知识经济将占主导地位,国家的综合国力和国际竞争力将越来越取决于科学技术创新水平。教育作为知识创新、传播和应用的基础,培养和输送人才的摇篮,已经成为经济发展和社会进步的基础。
尽管人类进步的程度随着不同时代,不同地区而有所变化,教育的口径却在不断扩宽,以便使过去仅供少数人使用的教育资源能够为更多各种年龄、不同社会阶层和背景的人们所用。在信息爆炸的时代,传统教学管理面临着诸多挑战。 1.1. 编写目的
开发基于互联网的学生选课系统,提高管理工作的效率、提高信息的开放性、改善学生和教师对其最新信息查询的准确性。
2.2. 背景说明
随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的体育课信息管理系统来提高管理工作的效率。基于互联网的学生选课管理系统,在学生选课的规范管理、
《软件工程》课程设计——学生成绩信息管理系统
科学统计和快速查询方面具有较大的实用意义。它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。 1.3. 术语定义及参考资料
1. (美) Grady Booch,James Rumbaugh,Ivar Jacobson,《UML用户指南》,机械工业出版社,2001年8月 2.Microsoft,MSDN
3.Microsoft, SQL Server2000联机手册
4.Roger S. Pressman。软件工程——实践者的研究方法。机械工业出版社,1997
5.IPL。Software Testing and Software Development Lifecycles。IPL,1996
6.Karl E. Wiegers《软件需求》机械工业出版社,1999 7.张海藩《软件工程导论》清华大学出版社。
2. 任务概述
2.1. 目标
系统开发的总体任务是实现学生选课信息关系的系统化、规范化和自动化。
在这里需要指出的是: 2.2. 系统技术
学生选课系统要求具有信息处理的开发性,方便教师上传学生成
《软件工程》课程设计——学生成绩信息管理系统
绩、学生上网选课和查询选课信息及成绩等,因此本系统设计为基于WWW的网络数据库应用系统,使用ASP脚本以Access为数据库的开发技术,运行在支持ASP的服务器上。 2.3基本设计概念和处理流程
采用基于SQL Server 的分布式数据库管理系统。三层结构是目前用得最多的,这种结构比传统的C/S结构增加了一个应用程序服务器,应用程序服务器包括了统一的界面、业务规则和数据处理逻辑等等,这样客户端程序就可以做得比较小,也就是常说的瘦客户,更由于业务规则和数据处理逻辑的集中在服务器上统一管理,客户端无须进行复杂的计算,也不会因为错误的操作而影响到其他的用户,所以他的可靠性、稳定性和效率都比较好。(其结构如图)
2.4. 用户的特点
为保证系统安全高效的运行,本系统把用户划分为3类:教务处、教师和学生。不同的用户在系统中的作用和权限也有所不同,所以它所需要完成的功能也就不同。
《软件工程》课程设计——学生成绩信息管理系统
教务处可以完成本系统所有的功能:
1)学生信息管理,除学生基本信息外,还可管理学生所选课程、
成绩等;
2)教师信息管理,包括教师个人的基本情况和任课情况; 3)项目及班数的设定:根据学校教务处所排课进行班级数及人数
的统计,然后根据统计结果进行项目及班数的设定;
4)排课:根据上一步分班情况安排任课教师;
5)报表生成及输出:生成教师担任课程分班表、按项目生成学生
成绩表、按学生行政班生成成绩表及所有报表的输出。 教师在本系统的功能:查询学生选课情况、自己任课情况、获取自己所担任课程分班表、录入及修改成绩等。
学生在本系统的功能:查询本人信息、教师任课信息、选课、选课信息查询、成绩查询。
3. 需求规定
3.1. 对功能的规定
1.可实现学生选课注册
2.方便实现学生选课信息查询
3.可对学生成绩档案进行管理,成绩表单生成简便。
《软件工程》课程设计——学生成绩信息管理系统
4.安全有效的用户区分,管理 5.档案数据的高安全性,保密性 6.有帮助文档 3.2. 对性能的规定
使用稳定,操作性能好,操作方法易于掌握,系统的安全性强 4. 设计思想
用户的需求具体表现在对各种信息的提供、编辑、处理及查询统计上。这就要求数据库结构能充分满足各种信息的输入、处理和输出。通过分析学生选课管理系统的现实需求,学生选课管理系统各环节的基本数据及数据处理流程,在及管理人员沟通、交流及探讨的基础上,得到以下学生选课系统的数据流程图
学 生 选 课 注 册 系 统 选 课 信 息 查 寻 系 统 课 程 表 生 成 系 统 成 绩 列 表 生 成 系 统 学 生 选 课 系 统
《软件工程》课程设计——学生成绩信息管理系统
(图1)系统模型
学生 选课 个人选课信息 教师 生成课表 排课 教务处 安排考试 成绩 (图2)系统流程图
4.1. 数据库的设计
通过对学生选课管理系统工作内容和相关数据流程分析,根据学生选课管理系统的需要,就可以设计出能满足用户需求的各种实体,以及
《软件工程》课程设计——学生成绩信息管理系统
它们之间的关系,由此得到数据库所支持的数据模型,即数据库的逻辑结构,具体情况如下:
1.学生信息表:开学时将教务处提供的学生信息库按系统的要求修改库结构并导入Access数据库中,应包括如下信息:姓名、学号、院系、班级、性别、所选课程、任课教师、 备注等。
2.教师信息表:包括教师姓名、教师代码、性别、年龄、职称、主要教授课程、兼任课程等。
3.课程信息:包括课程目录、课程、课程代码、教学内容、任务及目的、考试方法、要求等。
4.课程表:包括课程名称、课程编号、任课教师、课程学分、上课时间。
5.成绩单列表:包括学生姓名、学号、院系、班级、课程、任课教师、成绩。
学 生 身份认证成功 身份认证学生成功 信息 表 选 课 查 询 课 程 表 教 务 处
课程 成绩 所单 考 试 列表 选排 课 课教师信息表 程 《软件工程》课程设计——学生成绩信息管理系统
信息
合理性
考试安排
成绩
任教信息
学 生 成 绩 单
(图3)面向过程数据流图
4.2. 系统功能特点
1.内容全面 系统全面覆盖了体育课信息,可为学校、教师和学生提供全面准确的信息。
2.层次分明 系统采用模块化程序设计结构。各模块之间既相互独立,又具有一定的联系,各模块可独立编制、调试、查错、修改和执行,结构严谨,便于扩展和维护。
《软件工程》课程设计——学生成绩信息管理系统
5、软件测试
输入数据 证件号码 有效等价类 1、6位数字字符 无效等价类 2、有效数字字符 3、少于6个字符 4、大于6个字符 使用功能 5、选课 6、查询 7、输入其他文字 有效测试用例
测试数据 期望结果 测试范围 123456 输入有效 1 选课 输入有效 5 无效测试用例 测试数据 12jda1 期望结果 输入无效 输入无效 输入无效 输入无效 输入无效 测试范围 2 4 3 2、 3 7 12341 12t21 排课 《软件工程》课程设计——学生成绩信息管理系统
第二部分 学生成绩查询系统
1.系统需求分析 说明:
学校每年新生入学,毕业生离校和各种其它变动,如学籍变动,个人信息修改。每学期学校者要开设一定的课程提供给学生根据自己的情况来选择,最后的选择结果要给出学生的课程表。如何有效的管理这些学生信息,帮助学校和老师管理和掌握这些情况,这就是学生信息管理系统需要完成的任务。下面用软件工程的思想和方法完成该系统的设计过程。 功能:
个人信息查询和修改,包括流动,注册,更新管理。
2.系统功能设计
学院学生管理系
统
教教 师务 处
新课生程管学学查学注设理生生询册登置信课生审息程个记 批更表人 信 新息学生 《软件工程》课程设计——学生成绩信息管理系统
课程申请
学院学生管理系统的数据流图 息
新生信息 注册 奖惩信息 奖惩 变更
登记 记录 变更信记录
选课
学生个人信息表奖惩信息表 学籍变更表
统计 信息 学生个人信息 学生
《软件工程》课程设计——学生成绩信息管理系统
教师 课程申请 教务处 课程清单 学生选 课
课程表 课表打印 批准
课程基本信息表 选课结果表 DFD图
3.数据库概念设计
根据以上数据流图导出数据库所需数据项和数据结构
学生:学号,姓名,性别,生日,所在院系,所在班级: 课程:课程号,课程名,讲师,上课时间,地点,课程简介 选课结果:记录号,选课学生,所选课程
学籍变更记录:记录号,变更情况,记录时间,详细描述
3.1数据库概念结构设计的E-R 图
说明:E-R图中矩形代表实体,菱形代表实体间的联系,圆角矩形代表实体的属性
教师 《软件工程》课程设计——学生成绩信息管理系统
工号 教师名 。。。 讲授 1:N
1:N
课结果 生
选课
课程 M:N 学生 课程号 学号 课程名 姓名 讲师 性别 。。。
。。。
记录-对象 1:1 记录-对象
学籍变更记录 选记录号 课程号 变更情况
选课学
《软件工程》课程设计——学生成绩信息管理系统
变更时间 详细描述 。。。
记录号
3.2数据库逻辑结构设计
根据以上E-R图,需要五个基本表:学生信息表、课程信息表、选课结果表、奖惩信息表、其中教师信息是处部表,不列出,由于使用打开系统的不光是教务人员,每个学生都要登录到选课系统进行课程的选择,因此,需要对不同的登录人员进行密码的认证和权限的限制,防止越权行为,用户名,密码,权限,保存在一个表中。
1. USER-PASS用户密码信息表字典
字段名 ID PASSWORD AUTHORITY
数据类型 CHAR CHAR CHAR 是否可空 NOT NULL NOT NULL NOT NULL 说明 用户名(主键) 密码 权限 2. COURSE课程信息表数据字典
字段名 ID NAME TEACHER 数据类型 CHAR VARCHAR VARCHAR 是否可空 NOT NULL NULL NILL 说明 课程号(主键) 课程名 讲师 《软件工程》课程设计——学生成绩信息管理系统
CLASTIME CLASSROM INTRO VARCHAR CHAR VARCHAR NULL NULL NULL 上课时间 上课地点 简介 3. COURSE-SELECT选课结果表数据字典
字段名 ID COURSE STUDENT 数据类型 SMALL INT CHAR CHAR 是否可空 NOT NILL NULL NULL 说明 记录号(主键) 课程名 选课学生(外部关键 4. STUDENT学生个人信息表数据字典
字段名 ID NAME SEX CLASS DEPARTMENT BIRTHDAY 数据类型 SMALL INT VARCHAR CHAR CHAR CHAR VARCHAR 是否可空 NOT NULL NOT NULL NOTNULL NULL NULL NULL 说明 学号(主键) 姓名 性别 班级 院系 生日 5. 奖惩记录信息表
字段名 ID STUDENT 数据类型 SMLL INT CHAR 是否可空 NOT NULL NOT NULL 说明 记录号(主键) 学号(外部键) 《软件工程》课程设计——学生成绩信息管理系统
LEVEL TIME DESCRIPTION
CHAR DATA VARCHAR NULL NULL NULL 奖惩代码 时间 描述 4.概要设计
由以上DFD图导出的学院学生管理系统SC图
学院学生管理系统
密码+用户名
用户权限管理 理
学生信息更新管理 选课 课程管
新生信息
课程编号 课程编号 更新命令 新生信息登记 学生个人信息修改接受输入 显示课程详细信息接受新课程
奖励命令 惩罚命令 令
增删命令
增删命
《软件工程》课程设计——学生成绩信息管理系统
修改奖励记录 修改惩罚记录 加入课程 删除课程删除课程 添加课程
增删信息
已选课程表
课程表
打印学生课表
5.主要模块详细设计说明书
1. 用户身份认证模块
功能:按用户输入的用户名和密码是否合法
合法则进入应用程序 非法则显示出错信息 界面:由总控模块调用
模块说明细化为详细逻辑IPO图
增删信息 课程信息
《软件工程》课程设计——学生成绩信息管理系统
用户身份认证模块 输出 连接数据库错误中断程 输入 处理
序
连接数据库表 捕捉错误 用户名 获取用户名
用户密码 获取用户密码 读USER-PAS 判断用户名是否存在
判断密码是否存在 提示信息 捕捉异常 判断用户权限是合法
隐藏登录窗口
显示主窗体 文件 USER-PASS表 2.选课模块
功能:接受学生选课信息 刷新学生课程表
界面:调用添加、删除模块,打印课表模块
将模块说明细化为详细逻辑
提示
句
程名
《软件工程》课程设计——学生成绩信息管理系统
选课处理IPO图 输入 处理 输出 课程编号 为课程号过滤
输入课程编号异常接受课程号 打开课程信息表 判断是添加或是删除 添加 检索课程表读该记录 若该记录存在
显示所选课程详细信息 执行添加语调用添加模块
将选课结果刷新 删除 执行删除语句 调用删除模块 将稳定课结果刷新 提交
课表:课程编号,课调用打印课表模块文件 课程信息表 《软件工程》课程设计——学生成绩信息管理系统
选课结果表 3. 课程申请模块
功能:接受输入的新添课程信息 将新课程信息存入课程信息表
删除旧课程
界面:调用已开课程信息表
调用申请修改程序
将模块细化为详细逻辑IPO图 课程管理模块
输入 输出
课程编号 添加新课程
获取当前教师所选课程 打开已开课程表 查询是否存在该记录 若无该记录则是新课程 调用添加模块 提取课程编号 提取课程名称 提取课程简介
提交
处理
《软件工程》课程设计——学生成绩信息管理系统
息
若有该记录则不是新课程
出错处理 提示信
删除旧课程
文件
课程信息表 (折半查找算法测试)2
测试名称:模块输入课程编号过滤的测试方案
a) 规定课程编号为输入4个字符,头两个字符为字母,后2个字
符为数字例如TP38
b) 测试方法采用黑盒测试法中的等价类划分法
划分等价类 输入数据 课程号 有效等价类 无效等价类 1 两字母+两数2有非数字或字母 字 字母 3 A--Z 4字母少于两个或多于两个 数字 5 00--99 6数字少于两个或多于两个 《软件工程》课程设计——学生成绩信息管理系统
为有效等价类和每个无效等价类设计测试用例 测试数据 HY76 @D78 S86 MA2 HY345 DEH94 期望结果 输入有效 输入无效 输入无效 输入无效 输入无效 输入无效 测试范围 1、3、5 2 4 6 6 4 测试名称:课程查找模块设计测试方案
a) 本模块采用的是折半查找算法主要是测试各程序在各种典型
情况下是不能有效的进行查找
b) 测试方案采用选择白盒测试法中的路径覆盖法
说明:由于输入的课程编号已经被过滤,所以编号接受的范围为00--99
满足覆盖要求的测试方案
测试数据 覆盖的结点 覆盖的边 Classno={13,27,34,45 ,60} A b c d e f g h i 1 2 3 4 5 6 7 8 j k l m n V v v v 9 10 11 12 V v v v v 12 《软件工程》课程设计——学生成绩信息管理系统
27 V v v v v v v v V v v v v v v v v v v v 28 V v v v v v v v V v v v v v v v v v v v v v 34 V v v v v v v V v v v v v v v v v 40 V v v v v v v V v v v v v v v v v v 45 V v v v v v v v V v v v v v v v v v v v v V v v v 61 V v
第三部分 附录主要部分源码
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
《软件工程》课程设计——学生成绩信息管理系统
Dialogs, ShellAPI,Menus, ActnList, StdCtrls, Buttons, XPMenu, jpeg, ExtCtrls;
type
TFmMain = class(TForm)
ActionList1: TActionList; Actxsgl: TAction; Actcjgl: TAction; ActZHGL: TAction; Actibbgl: TAction;
SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn;
PopupMenu1: TPopupMenu; f1: TMenuItem; gfg1: TMenuItem; fgfg1: TMenuItem; gfgf1: TMenuItem; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; Image1: TImage;
procedure ActxsglExecute(Sender: TObject); procedure ActcjglExecute(Sender: TObject); procedure ActZHGLExecute(Sender: TObject); procedure ActibbglExecute(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N1Click(Sender: TObject);
《软件工程》课程设计——学生成绩信息管理系统
procedure Image1Click(Sender: TObject); private
{ Private declarations } public
{ Public declarations } end;
var
FmMain: TFmMain;
implementation
uses Uxsgl, Ucjgl, Uzhgl, Ubbgl, ABOUT, Uhelp;
{$R *.dfm}
procedure TFmMain.ActxsglExecute(Sender: TObject); begin
fmxsgl.show; end;
procedure TFmMain.ActcjglExecute(Sender: TObject); begin
fmcjgl.Show; end;
procedure TFmMain.ActZHGLExecute(Sender: TObject); begin
FMZHGL.Show; end;
procedure TFmMain.ActibbglExecute(Sender: TObject); begin
fmbbgl.Show; end;
procedure TFmMain.BitBtn1Click(Sender: TObject); begin
Application.CreateForm(Tfrm_about, frm_about); frm_about.ShowModal;
《软件工程》课程设计——学生成绩信息管理系统
end;
procedure TFmMain.BitBtn2Click(Sender: TObject); begin
Application.CreateForm(Tform3, form3); form3.ShowModal; end;
procedure TFmMain.BitBtn3Click(Sender: TObject); begin
if application.MessageBox('真的退出?','',mb_okcancel)=idok then application.Terminate; end;
提示
procedure TFmMain.N3Click(Sender: TObject); begin
BitBtn1Click(Sender); end;
procedure TFmMain.N4Click(Sender: TObject); begin
BitBtn2Click(Sender); end;
procedure TFmMain.N1Click(Sender: TObject); begin
BitBtn3Click(Sender); end;
procedure TFmMain.Image1Click(Sender: TObject); var
filename:string; begin
filename:='http://www.bf.com';
Shellexecute(Application.Handle,nil,pchar(filename),nil,nil,sw_shownormal); end;
《软件工程》课程设计——学生成绩信息管理系统
end.
object FmMain: TFmMain Left = 186 Top = 159
BorderStyle = bsNone
Caption = #23398#29983#20449#24687#31649#29702#31995#32479 ClientHeight = 488 ClientWidth = 732 Color = clBackground
Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11
Font.Name = 'MS Sans Serif' Font.Style = []
Icon.Data = {。。。} //图片代码 OldCreateOrder = False PopupMenu = PopupMenu1 WindowState = wsMaximized PixelsPerInch = 96 TextHeight = 13
object SpeedButton1: TSpeedButton Left = 48 Top = 328 Width = 130 Height = 100
Cursor = crCross Action = Actxsgl end
object SpeedButton2: TSpeedButton Left = 400 Top = 328 Width = 130 Height = 100
Cursor = crCross Action = ActZHGL end
《软件工程》课程设计——学生成绩信息管理系统
object SpeedButton3: TSpeedButton Left = 224 Top = 328 Width = 130 Height = 100
Cursor = crCross Action = Actcjgl end
object SpeedButton4: TSpeedButton Left = 571 Top = 328 Width = 130 Height = 100
Cursor = crCross Action = Actibbgl end
object Image1: TImage Left = 48 Top = 64 Width = 401 Height = 105
Cursor = crHandPoint
Hint = #27426#36814#20809#20020 ParentShowHint = False
Picture.Data = {。。。} //图片代码 ShowHint = True
OnClick = Image1Click end
object BitBtn1: TBitBtn Left = 400 Top = 456 Width = 75 Height = 25
Cursor = crHandPoint Caption = '&About' TabOrder = 0
OnClick = BitBtn1Click
Glyph.Data = {。。。} //图片代码
《软件工程》课程设计——学生成绩信息管理系统
end
object BitBtn2: TBitBtn Left = 520 Top = 456 Width = 75 Height = 25
Cursor = crHandPoint Caption = '&Help' TabOrder = 1
OnClick = BitBtn2Click
Glyph.Data = {。。。} //图片代码 end
object BitBtn3: TBitBtn Left = 632 Top = 456 Width = 75 Height = 25
Cursor = crHandPoint Caption = '&Close' TabOrder = 2
OnClick = BitBtn3Click
Glyph.Data = {。。。} //图片代码 NumGlyphs = 2 end
object ActionList1: TActionList Left = 400 Top = 80
object Actxsgl: TAction
Caption = #23398#29983#20449#24687#31649#29702 Hint = #23398#29983#20449#24687#31649#29702 OnExecute = ActxsglExecute end
object Actcjgl: TAction
Caption = #25104#32489#31649#29702 Hint = #25104#32489#31649#29702 OnExecute = ActcjglExecute end
object ActZHGL: TAction
《软件工程》课程设计——学生成绩信息管理系统
Caption = #36873#35838#31995#32479 Hint = #36873#35838#31995#32479 OnExecute = ActZHGLExecute end
object Actibbgl: TAction
Caption = #25253#34920#29983#25104 Hint = #25253#34920#29983#25104 OnExecute = ActibbglExecute end end
object PopupMenu1: TPopupMenu Left = 336 Top = 216
object f1: TMenuItem Action = Actxsgl end
object gfg1: TMenuItem Action = Actcjgl end
object fgfg1: TMenuItem Action = ActZHGL end
object gfgf1: TMenuItem Action = Actibbgl end
object N2: TMenuItem Caption = '-' end
object N3: TMenuItem
Caption = #20851#20110 OnClick = N3Click end
object N4: TMenuItem
Caption = #24110#21161 OnClick = N4Click end
object N5: TMenuItem Caption = '-'
《软件工程》课程设计——学生成绩信息管理系统
end
object N1: TMenuItem
Caption = #36864#20986 OnClick = N1Click end end end
第四部分 设计感想
在计算机业界有一句行话:“真正的程序员使用C++,聪明的程序员使用Delphi。”我第三次使用Delphi进行程序开发,完成了一个“大学生成绩信息管理系统”的课程设计。通过这次实践,我们对Delphi有了全新的认识。Delphi软件开发工具是一个完全导向的可视化系统开发环境的工具。它具有功能强大、运行速度快、易于学习和使用以及开发迅速等特点。Delphi可以你用最少的程序量来得到最高的开发效率,从而迅速的开发Windows的应用程序,它提供了易于使用的图形化工具供软件开发人员创建程序中的可视化部分。开发者可按照自己的喜好及用户要求,随心所欲的安排窗口的外观。Delphi是以面向对象的方式设计程序代码的,有着面向对象的四大特征:封装性、可维护性、继承性和多态性。在Delphi中一切被视为对象。编写面向对象的程序能够重复的使用开发者自己的工作成果,并使程序维护起来更容易,同时程序的扩展也更加方便。
当然,我们的这个系统还有些地方需要修改和完善。比如,该系统用到了几个非通用的组件,故源程序的编译不具通用性(所需
《软件工程》课程设计——学生成绩信息管理系统
部分组件以附上)。由于程序没有打包、发布,在运行编译运行时,会经常报错。当然,还有些细节问题需要更加完善。我将在以后的时间里,逐步学习改进。
“聪明的程序员使用Delphi”,让我们都成为聪明的程序员,一起走进Delphi的世界。
因篇幅问题不能全部显示,请点此查看更多更全内容