C课程设计报告.doc
《C课程设计报告.doc》由会员分享,可在线阅读,更多相关《C课程设计报告.doc(20页珍藏版)》请在咨信网上搜索。
一、设计内容与设计要求 1.课程设计目的: 全面熟悉、掌握C#编程、面向对象的基础知识,较熟练地编写基于C#的windows应用程序,了解C#的常用类库、编程技巧、异常处理。联系已学的内容,巩固所学的理论,增强独立工作能力。通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。为后继课程(ASP.net)的实验以及课程设计打下较扎实的基础。 2.课题题目 (1)银行业务管理系统设计与实现 3.设计要求: (1)课程设计环境要求 操作系统:Windows XP SP3或是Windows 7, 内存要求:至少512MB。 开发环境要求:安装了VS2008 SP1的VS 2008 Professional简体中文版。 (2)设计内容要求 在银行业务管理中,不同银行规定有不同的账户类型,如整存整取、零存整取、存本取息、通知存款、定额定期、订货两便和活期储蓄等。本课程设计不处理这么复杂的内容,而是假定只提供三种账户,活期存款账户、定期存款账户和零存整取账户。 1) 活期存款账户规定 创建活期账户时,必须提供帐户名和开户金额,而账号则根据存款分类自动生成,活期存款账号的范围为10001~19999(包括10001和19999),默认为0.03%,每次取款时,不论存款时间多长,都要根据当前余额结算一次利息,并将利息附加到现有余额中,然后再从中取出指定的款数。向现有账户追加存款时,不进行结算。 2) 定期存款账户规定 创建定期账户时,必须提供帐户名和开户金额,而账号则根据存款分类自动生成,定期存款账号的范围为20001~29999(包括20001和2999),定期存款要求一次性存款、一次性取款,100元起存,期限规定为只提供1年、3年和5年三种定期。三种到期利率默认分别为0.1%、0.3%和0.5%,如果到期后客户没有取款、超出存款期限部分的利率按0.03%计算。如果客户提前取款,取款时利率全部按0.02%计算。每次取款时,不论存款时间多长,都要根据当前余额结算一次利息,并将利息附加到现有余额中,然后再从中取出指定的款数。向现有账户追加存款时,不进行结算。 利息结算方式为: 到期利息=定期利率*存款金额 超期利息=(存款金额+到期利息)*超期利率 3) 零存整取规定 创建零存整取账户时,必须提供帐户名和开户金额,而账号则根据存款分类自动生成,零存整取账号的范围为30001~39999(包括30001和3999),零存整取要求每月都必须存固定的金额,5元起存,一次取款,存款期限规定为只提供1年、3年和5年三种,到期利率默认为0.05%、0.1%和0.3%,如果到期后客户没有取款,超出存款期限部分的利率按0.025%。如果客户没有按规定存款,取款时利率全部按0.015%计算。每次取款时,不论存款时间多长,都要根据当前余额结算一次利息,并将利息附加到现有余额中,然后再从中取出指定的款数。向现有账户追加存款时,不进行结算。 利息结算方式为: 到期利息=到期利率*每月固定金额*月数 超期利息=(总存款金额+到期利息)*超期利率 4) 要允许用户随时查询自己的存取款信息。查询时要求提供用户名、存款类型和账户。 5) 程序要易于扩充,即需要增加存款业务类型时,要能够利用已经实现的功能,通过尽量少的代码快速实现。 (3)课程设计文档要求 1)每位同学提交一份打印的课程设计报告。 2)报告内容要求 系统功能介绍,并用viso画出系统整体框架图 主要模块划分,并用viso画出系统功能模块图 程序运行界面截图及说明。 系统主要亮点介绍。 设计中遇到的问题、难点及解决方法。 3) 按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。 4)不得抄袭他人课程设计报告,每个人应体现自己的个性设计。 二、进度安排 第 1 周 星期三 8时:00分——12时:00分 第 1 周 星期四 8时:00分——12时:00分 第 1 周 星期五 8时:00分——12时:00分 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用4号宋体加粗,正文用小四号宋体,行距为22. 2 目录 1、系统开发背景 1 2、系统功能模块 1 3、主要模块划分 2 3.1、活期存款账户规定 2 3.2、定期存款账户规定 2 3.3、零存整取账户规定 3 4、程序运行界面截图及说明 3 4.1、开户 3 4.2、存款和取款 4 4.3、显示界面 4 5、源代码: 4 6、调试过程中的问题、难点及解决方法 15 7、 评分表 16 注意: 1. 此目录供参考。(目录中的页码要写好。) 2. 课设报告的装订顺序:此文档的前五页->目录->正文->评分表。起始页码从正文开始。(注意:前四页的内容中的课题题目需列出具体题目) 1、系统开发背景 全面熟悉、掌握C#编程、面向对象的基础知识,较熟练地编写基于C#的windows应用程序,了解C#的常用类库、编程技巧、异常处理。联系已学的内容,巩固所学的理论,增强独立工作能力。通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。为后继课程(ASP.net)的实验以及课程设计打下较扎实的基础。 2、系统功能模块 用户可以根据需求选择不同的银行,然后在银行里面选择不同的存款类型,一般的存储类型有:整存整取、零存整取、存本取息、通知存款、定额定期、订货两便和活期储蓄等。本课程设计不处理这么复杂的内容,而是假定只提供三种账户,活期存款账户、定期存款账户和零存整取账户。这样用户选择存储类型后,就可以开户,存款和取款等业务了。 开户 存储类型选择 活期存款 定期存款 零存整取 存款或取款 3、主要模块划分 3.1、活期存款账户规定 创建活期账户时,必须提供帐户名和开户金额,而账号则根据存款分类自动生成,活期存款账号的范围为10001~19999(包括10001和19999),默认为0.03%,每次取款时,不论存款时间多长,都要根据当前余额结算一次利息,并将利息附加到现有余额中,然后再从中取出指定的款数。向现有账户追加存款时,不进行结算。 3.2、定期存款账户规定 创建定期账户时,必须提供帐户名和开户金额,而账号则根据存款分类自动生成,定期存款账号的范围为20001~29999(包括20001和2999),定期存款要求一次性存款、一次性取款,100元起存,期限规定为只提供1年、3年和5年三种定期。三种到期利率默认分别为0.1%、0.3%和0.5%,如果到期后客户没有取款、超出存款期限部分的利率按0.03%计算。如果客户提前取款,取款时利率全部按0.02%计算。每次取款时,不论存款时间多长,都要根据当前余额结算一次利息,并将利息附加到现有余额中,然后再从中取出指定的款数。向现有账户追加存款时,不进行结算。 利息结算方式为: 到期利息=定期利率*存款金额 超期利息=(存款金额+到期利息)*超期利率 3.3、零存整取账户规定 创建零存整取账户时,必须提供帐户名和开户金额,而账号则根据存款分类自动生成,零存整取账号的范围为30001~39999(包括30001和3999),零存整取要求每月都必须存固定的金额,5元起存,一次取款,存款期限规定为只提供1年、3年和5年三种,到期利率默认为0.05%、0.1%和0.3%,如果到期后客户没有取款,超出存款期限部分的利率按0.025%。如果客户没有按规定存款,取款时利率全部按0.015%计算。每次取款时,不论存款时间多长,都要根据当前余额结算一次利息,并将利息附加到现有余额中,然后再从中取出指定的款数。向现有账户追加存款时,不进行结算。 利息结算方式为: 到期利息=到期利率*每月固定金额*月数 超期利息=(总存款金额+到期利息)*超期利率 4、程序运行界面截图及说明 4.1、开户 4.2、存款和取款 4.3、显示界面 5、源代码: /* Customs.cs */ class Customs { private string accountName; public CustomType BankCustomType { get; protected set; } public string AccountNumber { get; protected set; } public float AccountBalence { get; protected set; } public string Time ; public int flag; public float benjin; public int Year; public string AccountName { get { return accountName; } set { if (string.IsNullOrEmpty(value)) { throw new Exception("账号名不能为null或者空字符串"); } else { for (int i = 0; i < value.Length; i++) { if (char.IsLetter(value[i]) == false) { throw new Exception("zhuanghuzjiyunxuzhimuhuohanzizucheng"); } else { accountName = value; } } } } } public List<string> PerAccountList { get;set ; } public void Diposit(float money) { if (money <= 0) { throw new Exception("存款金额不能为零或负值"); } else { AccountBalence += money; AddList("存款", money); } } protected void AddList(string typeInfo, float money) { PerAccountList.Add(string.Format( "账号:{0}.姓名:{1},存款金额:{2},"+ "{3:yyyy-MM-dd[HH:mm:ss]} {4}{5:f2}元,余额{6:f2}元", AccountNumber , AccountName , BankCustomType , DateTime .Now , typeInfo , money , AccountBalence )); } protected void AddList(string typeInfo, float money,string year) { PerAccountList.Add(string.Format( "账号:{0}.姓名:{1},存款金额:{2}," + "{3:yyyy-MM-dd[HH:mm:ss]} {4}{5:f2}元,余额{6:f2}元; 期限 :{7}", AccountNumber, AccountName, BankCustomType, DateTime.Now, typeInfo, money, AccountBalence, Time )); } public bool ValidBeforeWithdraw(float money) { if (money <= 0) { MessageBox.Show("qukuangjinebunengweilinhuofuzhi"); return false; } if (money > AccountBalence) { MessageBox.Show("qukuangjinebunengfayuyue"); return false; } return true; } public virtual void Withdraw(float money) { AccountBalence -= money; AddList("取款",money ); } } \* Checkingcustoms.cs *\ class CheckingCostoms :Customs { private static int newAccountNumber = 10001; public float InterestRate { get { return 0.0003f; } } public CheckingCostoms(string accountName, float accountBalence) { if (newAccountNumber > 19999) { throw new Exception("huoqicunkuangzhuanghu"); } else { this.AccountName = accountName; this.AccountBalence = accountBalence; this.BankCustomType = CustomType.活期存款; this.AccountNumber = newAccountNumber.ToString(); newAccountNumber++; PerAccountList = new List<string>(); AddList("kaihu",accountBalence ); } } public override void Withdraw(float money) { if (ValidBeforeWithdraw(money) == false) return; float rate = InterestRate * AccountBalence; AccountBalence += rate; AddList("jiesuanlixi",rate ); base.Withdraw(money); } } \* FixedCustoms.cs *\ class FixedCustoms:Customs { private static int newAccountNumber=20001; public float InterestRate { get { string s1; int s2,s3; s1=DateTime.Now .ToString ("yyyy"); s2=Convert .ToInt32 (s1); if(Time =="一年") { s3 = s2 - Year; if (s3 < 1) { flag = -1; return 0.0002f; } else if (s3 == 1) { flag = 0; return 0.001f; } else { flag = 1; return 0.001f; } } else if (Time == "三年") { s3 = s2 - Year; if (s3 < 3) { flag = -1; return 0.0002f; } else if (s3 == 3) { flag = 0; return 0.003f; } else { flag = 1; return 0.003f; } } else { s3 = s2 - Year; if (s3 < 5) { flag = -1; return 0.0002f; } else if (s3 == 1) { flag = 0; return 0.005f; } else { flag = 1; return 0.005f; } } } } public FixedCustoms (string accountName,float accountBalence,string year) { if (newAccountNumber > 29999) { throw new Exception("dingqicunhaoyijinyongwan"); } else { string s1; int s2; s1 = DateTime.Now.ToString("yyyy"); s2 = Convert.ToInt32(s1); this.AccountName = accountName; this.AccountBalence = accountBalence; this.BankCustomType = CustomType.定期存款; this.Time = year; this.Year = s2; this.AccountNumber = newAccountNumber.ToString(); newAccountNumber++; PerAccountList = new List<string>(); AddList("开户",accountBalence,year ); } } public override void Withdraw(float money) { if (ValidBeforeWithdraw(money) == false) return; float rate=0,rate1=0; if (flag == 0 && flag == -1) { rate = InterestRate * AccountBalence; AccountBalence += rate; AddList("利息结算", rate); base.Withdraw(money); } else { rate = InterestRate * AccountBalence; AccountBalence += rate; rate1 = 0.0003f * AccountBalence; AccountBalence += rate1; AddList("利息结算", rate1); base.Withdraw(money); } } } \* lingcunzhengqu.cs *\ class Lingcunzhengqu:Customs { private static int newAccountNumber=30001; public float InterestRate { get { string s1; int s2; s1=DateTime.Now .ToString ("yyyy"); s2=Convert .ToInt32 (s1); if(Time =="一年") { if (AccountBalence < benjin * 12) { flag = -1; return 0.00015f; } else if (AccountBalence == benjin * 12) { flag = 0; return 0.0005f; } else { flag = 1;return 0.0005f; } } else if (Time == "三年") { if (AccountBalence < benjin * 36) { flag = -1; return 0.00015f; } else if (AccountBalence == benjin * 36) { flag = 0; return 0.001f; } else { flag = 1; return 0.001f; } } else { if (AccountBalence < benjin * 60) { flag = -1; return 0.00015f; } else if (AccountBalence == benjin * 12) { flag = 0; return 0.003f; } else { flag = 1; return 0.003f; } } } } public Lingcunzhengqu (string accountName,float accountBalence,string year) { if (newAccountNumber > 39999) { throw new Exception("dingqicunhaoyijinyongwan"); } else { string s1; int s2; s1 = DateTime.Now.ToString("yyyy"); s2 = Convert.ToInt32(s1); this.AccountName = accountName; this.AccountBalence = accountBalence; this.BankCustomType = CustomType.零存整取; this.Time = year; this.Year = s2; this.benjin = accountBalence; this.AccountNumber = newAccountNumber.ToString(); newAccountNumber++; PerAccountList = new List<string>(); AddList("开户",accountBalence,year ); } } public override void Withdraw(float money) { if (ValidBeforeWithdraw(money) == false) return; float rate=0,rate1=0; int yueshu; yueshu = (int )(AccountBalence / benjin); if (flag == 0 && flag == -1) { rate = InterestRate * benjin *yueshu ; AccountBalence += rate; AddList("利息结算", rate); base.Withdraw(money); } else { rate = InterestRate *benjin *yueshu ; rate1 = 0.00025f * (AccountBalence+rate ); AccountBalence += rate1; AddList("利息结算", rate1); base.Withdraw(money); } } } \* Mianform.cs *\ public partial class MainForm1 : Form { private static SortedDictionary<string, Customs> customers = new SortedDictionary<string, Customs>(); public MainFo- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文