📄 -
字号:
╔══════════════════════════════════════════════╗
║ ┍━━━━━━━━━━━━━━━━━┑ ║
║ │ │ ║
║ │ 【 学 生 成 绩 综 合 测 评 】 │ ║
║ └─────────────────┘ ║
║ ║
║ VISUAL C++ 课程设计 ║
║ ║
║ 自动化981 孙辉 ║
║ ║
╚══════════════════════════════════════════════╝
①功能简介
本作品为一简单的数据库引擎,用于简单的学生成绩管理,包括班级课程设置、学分设置、学
生成绩入录、总成绩计算和综合测评成绩.
可以实时添加删除班级、删除添加同学,也可实时更改信息,自动保存和刷新.
②开发环境
我的开发工具:
Microsoft Develope Stdio --Visual C++ 4.0 & LccWin32
由于在准32位环境下开发,所以有些32位特征可能并不存在.由于VC4.0的工程文件(*.mdp)
和VC6.0的工程文件(*.dsp)不同,所以我不提供4.0环境下的工程文件,只提供资源及文本.
文件列表:
├[.Fina] //当前目录
│ ├[学生成绩综合测评] //子目录
│ │ ├Fina.exe(学生成绩综合测评.exe) //执行文件
│ │ ├Fina.hui //信息存放数据库
│ │ └说明.txt //开发文档(本文件)
│ ├[Bitmap] //位图文件夹(请勿更改文件名)
│ ├[Icon] //图标文件夹(请勿更改文件名)
│ ├[Cursor] //光标文件夹(请勿更改文件名)
│ ├Fina.h //源程序头文件
│ ├Fina.cpp //源程序
│ ├Fina.rc //资源文件
│ └Resource.h //资源号定义
编译方法:
1.在VC6.0下创建空的Win32 Application 命名为Fina.于是便创建了一个空的工程
2.将上表中的Fina.h Fina.cpp Fina.rc Resource.h [Bitmap] [Icon] [Cursor]
复制到新建的工程文件夹中
3.点击"FileView"标签,将Fina.h Fina.cpp Fina.rc Resource.h加入空工程,自此
Fina工程建立完毕!
4.选择菜单中"Settings..."项,点击link标签,在Object/library Modules栏中加入
静态连接库文件 comctl32.lib 再按OK;
5.现在可以编译了
③自报bug
由于第一次真正做数据库,并第一次尝试使用树状控件和编程经验的不足,使得代码很混乱,
对树桩控件的不完全理解,使得控件的刷新有时会出现非法操作,但对数据库无影响!
我对文件的操作使用了_l*(...)函数,这是一些16位的API,最大读取65535字节(64K),所以我
限制最大班级数为20,最大班级成员数为50.如果打开应用程序时发生非法操作,那么一定是文件函数
发生问题了,解决方法:将Fina.hui内容清空为0字节(数据库又要重输了...).这种现象在编写时发生
过,但调试时改进了,未出现过!
很明显,部分窗口不能重画.这主要是本人水平有限,在消息循环中拦截不到子窗口的消息.虽
然能发送WM_PAINT,但拦截不到.并且不知道如何判断子窗口是否被遮蔽过.
程序中有两行我打了很多问号,我到现在仍没搞清,为何会发生,只是调试时误打误撞居然成功
了,不过只是付值,看不出有什么别的作用,或者wsprintf(...)这个函数低层涉及到堆栈操作(我不知
道)
现象:
在增加班级的窗口,付值学分会发生学分的累加,其变量都不同,很奇怪怎么会发生累加.然后
加入wsprintf(str,"%d",(int)value);将浮点数value串化,还是value,累加消失!真奇怪!
好象API对浮点数不能很好支持(我认为),我编了一个将字符串转化为浮点数的函数,但由于时
间原因,我未编将浮点数转化字符串的函数,所以输出时没有小数点,但内部运行时是浮点计算.
④总结
实战可以提高水平,通过这次课程设计,我在编程上得到了很大提高,我会不断努力
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -