昆明理工大学高级程序设计大作业报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学(中/高级程序设计项目训练)大作业报告
指导教师:潘晓露完成时间2015 年9 月12 日
给自己打分:75
自我评价:高级程序设计项目训练课程时间有限需要学习的东西也比较多,自己基础不扎实跟不上老师节奏、出现一些错误不会调试程序出现异常就卡在哪里了,以后在这方面需要加强学习巩固基础知识。
一、大作业内容(以下为提示,自己增加内容,不要罗列程序代码)
1、描述所完成的程序功能,需要实现的目标
程序功能:创建winform窗体应用菜单项中包含如下
1.简单的TextEdit字体颜色字号处理。
2.输入整数通过算法实现阶乘计算显示计算结果。
3.个人财务管理,连接数据库实现财务收支项目查询显示、增加收支项目、删除收支项目、计算显示收支金额和余额。
2、程序的功能框图,描述C#整个程序的结构。
功能款图:
C#的程序结构:
3、选一个或几个算法,描述数学原理及流程图。
输入一个数计算阶乘的算法:
private int fac(int i)
{
if (i < 0) return -1;//判断传入参数是否小于零,小于零则返回-1
if (i == 0) return 0;//判断传人参数是否为零,为零则返回0
int result = 1;//创建int变量存储计算结果,赋初值为1
for (int n = i; n > 0; n--)//通过for循环计算阶乘
{
result = result * n;
}
return result;//返回计算结果
}
流程图:
4、程序设计思路及运行显示效果,重点说明自己的独到设计。
运行效果:
设计思路:根据老师讲授的说明文档,使用控件,通过练习菜单下的目录创建新的窗体实现需要的功
能和效果显现及提醒输入。
5、逐个描述在本次程序设计中所学习到的比较重要的新函数,新类。(选一个类,列表说明类的结构(成员变量和函数及功能))
学习到的比较重要的新函数:
public static DataSet Query(string strQuery)
{
//打开数据库连接
string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\用户目录
\\Documents\\FinancialAffiars.mdb";//数据库路径
OleDbConnection db = new OleDbConnection(str);//建立链接对象
db.Open();
OleDbDataAdapter da = new OleDbDataAdapter(strQuery, db);
DataSet ds=new DataSet ();
da.Fill (ds ,"ds");
db.Close ();
return ds ;
}
DataSet 是从数据源中检索到的数据在内存中的缓存,函数中通过数据库的路径打开数据库链接,创建数据库连接的对象,打开数据库,创建DataSet的对象,在DataSet中添加或刷新行以匹配使用 DataSet 和 DataTable名称的数据源中的行。然后关闭连接的数据库,返回检索的的数据。
传递的参数是对于数据库的SQL语句。
6、在短学期学习中遇到的问题(编译错误/逻辑错误)及解决方法,你对程序进行的个性化修改
下面这行代码抛异常:我用这种方法计算余额,后来才发现当查询时的收入或支出的字符串为空就抛异常,原因就是不能转换空字符串。
int i=Convert.ToInt32 (LbIncome.Text)-Convert.ToInt32 (LbExpense.Text);
解决方法:在转换前做收支是否为空字符串判断,为空则赋值为“0”,就不会抛异常了。
if (LbIncome.Text == "")//判断收支是否为空,为空则赋值为0,不然类型转换时会抛异常
LbIncome.Text = "
if (LbExpense.Text == "")
LbExpense.Text = "0";
int i=Convert.ToInt32 (LbIncome.Text)-Convert.ToInt32 (LbExpense.Text);
二、心得、建议和意见
通过短学期高级程序设计项目训练课程的学习,我学会了许多C#和winForm的编程知识,同时获得了许多在Visual Studio 2012 中调试程序的方法,更深刻的认识到编程中细节和变量名的命名和使用规则的重要性,看书不如实际的敲代码理解得更好。希望老师上课时讲慢一点。