




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈阳工程学院课程设计设计题目:系别班级学号学生姓名指导教师职称起止日期:2010年7月5日起至2010年7月16日止2沈阳工程学院课程设计任务书课程设计题目:系别班级学号学生姓名指导教师课程设计进行地点:任务下达时间:职称2010年7月5日起止日期:2010年7月5日起至2010年7月16日止教研室主任一、课程设计的原始资料及依据22010年7月5日批准当今社会人们对理财特别关心。有许多人都是把钱存入银行,但是你是否知道银行对用户是怎么进行管理的吗?在存钱的过程中我们每个人都是通过银行卡或是银行存折来完成操作的。我们能行的操作有存钱、取钱、修改密码等,这些操作都是通过银行管理系统来完成的。那么
2、我们就来认识一下银行管理系统。查阅有关银行账户管理系统的教材、实验指导书等资料,进一步熟悉银行账户管理系统的基本原理和设计思想。函数应用是处理机管理的核心内容。本设计要求用高级语言编写和调试一个简单的函数应用程序。通过本设计可以加深理解有关函数和结构体的概念,并体会和了解文件的打开与保存的具体实施办法。加深理解有关函数的定义与应用和所有函数之间的相关联系。二、课程设计主要内容及要求.认真阅读资料,掌握函数应用的原理和相关算法的思想。要求在设计中的过程中,建立清晰的层次结构。画出主要的功能结构图和主要算法的流程图。函数是程序设计的主要部分。在主函数中包含许多自定义的应用函数来解决各
3、种问题。5.根据用户的实际情况而进入不同的函数应用界面。6.运行程序,检查结果是否和理论值一致。7.环境可以使用Windows,TurboC环境或inux.三、对课程设计说明书撰写内容、格式、字数的要求1课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到
4、了困难,解决的办法以及今后的目标。4课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,三级节标题采用黑体小四号字表题与图题采用宋体五号字。5课程设计说明书装订顺序为:封面、任务书、成绩评定表、摘要和关键词、目录、正文、参考文献。四、设计完成后应提交成果的种类、数量、质量等方面的要求21完成“任务书”中指定的功能,运行结果正确。2课程设计说明书。五、时间进度安排顺序1235阶段日期第1天(7月5日)第23天
5、(7月6日7日)第48天(7月8日14日)第9天(7月15日)第10天(7月16日)计划完成内容阅读资料系统分析设计程序编制、调试及运行成绩评定撰写课程设计说明书备注六、主要参考资料(文献)1袁征.C语言编程技巧程序集.电子工业出版社,20042黄维通、马力妮.C语言程序设计.北京:清华大学出版社,20003朱晋蜀、李向阳.C语言程序设计.重庆大学出版社4李淑华、李贞.C语言程序设计.大连理工大学出版社,20025唐策善.用C语言描述数据结构.北京:高等教育出版社,19952沈阳工程学院课程设计(报告)沈阳工程学院程序设计基础课程设计成绩评定表系(部):评价内容调研论证工作能力态度工作量班级:
6、指导教师评审意见具体要求权重0.10.25555评4444分33332222加权分能独立查阅文献,收集资料;能制定课程设计方案和日程安排。工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,按期圆满完成规定的设计任务,工作量饱0.2满,难度适宜。说明书立论正确,论述充分,结论严谨合说明书理,文字通顺,技术用语准确,0.5的质量编号齐全,图表完备,书写工整规范。指导教师评审成绩分(加权分合计乘以8)指导教师签名:评阅教师评审意见评价内容查阅文献工作量具体要求权重加权分合计年月日评555444分333222加权分查阅文献有一定广泛性;有综合归纳资料0.2的能力工作量饱满,难度适中。0.
7、5说明书立论正确,论述充分,结论严谨合说明书理,文字通顺,技术用语准确,0.3的质量编号齐全,图表完备,书写工整规范。评阅教师评审成绩分(加权分合计乘以4)评阅教师签名:答辩小组评审意见评价内容学生汇报具体要求权重加权分合计年月日评分加权分汇报准备充分,思路清晰;概念清楚,论点正确,有层次,有重点,0.5基本上反映了所完成任务的全部内容;时间符合要求。54323沈阳工程学院课程设计(报告)3沈阳工程学院课程设计(报告)摘要随着计算机的普及,信息产业的发展,现在计算机已经被各个领域使用。掌握计算机知识和应用,无疑是培养新型人才的一个重要环节。计算机技术已深入到人类生活的各个角落,与其他学科紧密结
8、合,成为推动各学科飞速发展的有力的催化剂。无论学什么专业。都必须具备计算机的基础知识和应用能力。计算机既是现代科学技术的结晶,又是大众化的工具。学习计算机知识,不仅能够掌握有关的知识,而且能培养人们的信息素养。它是高等学校全面素质教育中极为重要的一部分。以前的工资管理都是人工操作的,它存在着许多的弊端,比如计算方面的误差、整个系统的管理和职工信息的查询等。但是现在工资管理已经信息化、自动化,通过一些编程语言来实现,再经过实践来验证,最后就有一个完整的工资管理系统。他包括对职工信息的输入和显示、对职工信息的插入和删除、对职工信息的保存和复制、按职工的编号和实发工资分别进行排序、按部门分类求和等。
9、可行性研究,概要设计,详细设计,项目开发计划等都需要很细心,要对开发的部门由于一定的了解,工作流程需要熟知,因为这关系到经济利益,是一个公司管理好的一方面表现。工资管理程序的产生主要目的是解决一些实际问题,用来方便和准确的管理公司职工的各项纪录,使得公司的管理既方便有完备。当然,以后的公司管理都会采用这种方式,因为它的产生和发展给公司带来了巨大的财富。再说,计算机今后将会应用在各个领域,所以,完善的工资管理程序是很有必要的。它在管理的过程中,对一些数据的存储和计算是相当方便,当然它的误差很小,几乎为零。公司管理程序的操作也是相当方便和快捷的,并且所用的人力也是相当少的。程序设计是为了锻炼我们的
10、实际动手能力,在一定程度上,又增加了我们的各方面的知识,特别是一些联系实际的课程设计,它的完成是需要团体合作、大量的资料和专业知识。公司管理程序运用了大量的资料、专业知识和团体合作的力量才完成的,因此,它应该说是好的课设。3沈阳工程学院课程设计(报告)1绪1.1设计背景论无论是在校的学生,还是已经步入社会的公司职员,都会不断的充实自己,学习文化知识,这就不可避免的要接受各种考试,以此来检验自己。而学生成绩查询系统就是为了方便考生在考试以后,能够及时、准确的知道自己的成绩,而利用C语言编写的,同时也节省了老师在对学生的成绩进行录入、评估的时间,可谓是一举两得。而今,C语言成了在国内外使用的一种计
11、算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生是能够学习好的。计算机技术的飞速发展,改变了世界,也改变了人类的生活。新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。1.2设计目的这次设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想来编写程序。程序包括的主要内容可以对学生成绩管理系统进行输入、修改
12、、删除、排序、显示等操作,设计一个有关学生成绩信息管理的程序,来方便人们对信息更方便的使用,经过这样一个过程来巩固和完善自己所学的知识,同时来培养一下自己的实践能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力为了人们能够更快的记录学生的成绩管理,使人们不再因为添加、排序学生成绩而苦恼。1.3任务分工表1.1任务分工表成分组长信息班级:姓名:3组员通本091霍俊元通本091寇笑通本091伍晨阳通本091邹建强通本091薄双录沈阳工程学院课
13、程设计(报告)3沈阳工程学院课程设计(报告)1.4C语言概述C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。由于C语言的强大功能和各方面的优点逐渐为人们认识,C语言功能丰富、可移植性
14、好,既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。C在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。在C语言中采用的分隔符有逗号和空格两种。逗号主要用在类型说明和函数参数表中,分隔各个变量。空格多用于语句各单词之间,作间隔符。在关键字,标识符之间必须要有一个以上的空格符作间隔,否则将会出现语法错误,例如把inta;写成inta;C编译器会把inta当成一个标识符处理,其结果必然出错。C语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。
15、注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。1.5TurboC概述1.5.1TurboC的产生与发展TurboC是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套Turbo系列软件,如TurboBASIC,TurboPascal,TurboProlog,这些软件很受用户欢迎。该公司在1987年首次推出TurboC1.0产品,其中使用了全然一新的集成开发环境,即使用了一系列下拉式菜单,将文本编辑、程序编译、连接以及程序运行一体化,大大方便了程序的开发。1
16、988年,Borland公司又推出TurboC1.5版本,增加了图形库和文本窗口函数库等,而TurboC2.0则是该公司1989年出版的。TurboC2.0在原来集成开发环境的基础上增加了查错功能,并可以在Tiny模式下直接生成。COM(数据、代码、堆栈处在同一64K内存中)文件。还可对数学协处理器(支持8087/80287/80387等)进行仿真。Borland公司后来又推出了面向对象的程序软件包TurboC+,它继承发展TurboC2.0的集成开发环境,并包含了面向对象的基本思想和设计方法。1991年为了适用Microsoft公司的Windows3.0版本,Borland公司又将Turbo
17、C+作了更新,即TurboC的新一代产品BorlandcC+也已经问世了。1.5.2.TurboC2.0基本配置要求1沈阳工程学院课程设计(报告)TurboC2.0可运行于IBM-PC系列微机,包括XT,AT及IBM兼容机。此时要求DOS2.0或更高版本支持,并至少需要448K的RAM,可在任何彩、单色80列监视器上运行。支持数学协处理器芯片,也可进行浮点仿真,这将加快程序的执行。1.5.3.TurboC2.0内容简介下面对TurboC2.0的主要文件作一简单介绍:表1.1TurboC文件INSTALL.EXE安装程序文件THELP.COM读取TCHELP.TCH的驻留程序TCCONFIG.E
18、XE配置文件转换程序TCC.EXE命令行编译TLIB.EXETurboC系列库管理工具C?.LIB不同模式运行库EMU.LIB8087仿真库*.HTurboC头文件*.CTurboC例行程序(源文件)TTiny(微型模式)CCompact(紧凑模式)LLarge(大模式)TC.EXE集成编译README关于TurboC的信息文件MAKE.EXE项目管理工具TLINK.EXETurboC系列连接器C0?.OBJ不同模式启动代码GRAPHICS.LIB图形库FP87.LIB8087库*.BGI不同显示器图形驱动程序其中:上面的?分别为:SSmall(小模式)MMedium(中型模式)HHuge(巨
19、大模式)TCINST.EXE集成开发环境的配置设置程序TCHELP.TCH帮助文件2沈阳工程学院课程设计(报告)2程序系统设计2.1可行性分析在开发一个新的软件系统之前,我们要考虑各方面的因素,首先,对其进行可行性研究,可行性研究最敏感的四个部分:A经济可行性这个系统的经济效益能超过它的开发成本吗?B技术可行性使用现有的技术能实现这个系统吗?分析技术冒险的各种因素,例如有关的技术是否已进步到足以支持该系统?能否有胜任开发该系统的熟练技术人员?为开发项目的所有硬、软件资源是否能按期得到?C操作可行性系统的操作方式在这个用户组织内行得通吗?2.2程序系统的结构工资管理程序系统中的每个程序(包括每个
20、模块和子程序)的名称、标识符和它们之间的层次结构关系如图2-1所示。2沈阳工程学院课程设计(报告)显示单条职工工资信查找信息读取信息客户界面显示全部职工工资信息复制信息退出主界面输入职工工资信息显示全部职工工资信息查找信息显示单条职工工资信排序读取信息管理员界面复制信息插入信息初始化删除信息退出图2-1系统结构图3沈阳工程学院课程设计(报告)2.1.1模块化设计所谓的模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,以功能块为单位进行基础实训,实现其求解算法,调试和维护等操作简单化。菜单模块:供选择功能信
21、息输入模块:创建职工信息查询信息模块:查询职工的工资信息。插入信息模块:插入新职工信息。排序模块:排序职工实发工资和安职工编号排序。追加信息模块:向原有信息中信息。删除记录:删除职工工资信息。保存信息模块:保存改动的职工信息,存盘。读取模块:读取已存的职工信息。4沈阳工程学院课程设计(报告)3程序详细设计3.1主函数工资管理是一个单位最基本的一项财务管理,本程序利用双链表构存储数据,完成工资管理,基本功能模块如图所示。主函数是程序的入口,采用模块化设计,主函数不宜复杂,功能尽量在各模块中实现。首先声明一些必要的变量,然后作一无限循环程序,循环体为一个开关语句,该语句的条件值是通过调用主菜单函数
22、得到的返回值,根据该值,调用相应的各功能函数,同时设置一个出口,即返回值为一定条件时运行exit()函数结束程序,以免造成死循环。工资管理程序主函数:用switch语句调用函数,用window函数创建窗口,建立主菜单,制作一个单边框的窗口,窗口背景为蓝色,在窗口中显示光带主菜单,字体颜色为黄色,同时光标默认定位在第一项菜单上,用光标的上下移动即可选中所需的选项,选中项背景为绿色,按回车键进入相应的功能函数,而不必输入数字,真正具有了窗口的特性,方便了操作,这个菜单是光带菜单,通过按键进行选择,而不是输入字符。利用函数bioskey()识别按了什么键,根据光标停留在窗口的行数换算成对的菜单项,作
23、为菜单函数的返回值,如果返回值为1,则进入客户界面;如果返回值为2,则进入管理员界面。/*主函数开始*/main()inti;intj;intkey=0;char*s="*menu*","1.staffenter","2.managerenter"clrscr();/*清屏*/textcolor(YELLOW);/*设置文本颜色为黄色*/textbackground(BLUE);/*设置背景颜色为兰色*/gotoxy(1,24);/*移动光标*/printf("pressanykeyentermenu.n");/*
24、压任意键进入主菜单*/getch();gotoxy(10,2);putch(0xda);/*输出左上角边框*/for(i=1;i<44;i+)putch(0xc4);/*输出上边框水平线*/putch(0xbf);/*输出右上角边框*/5沈阳工程学院课程设计(报告)for(i=3;i<22;i+)/*输出左右两边的垂直线*/gotoxy(10,i);putch(0xb3);gotoxy(54,i);putch(0xb3);gotoxy(10,22);putch(0xc0);/*输出左下角边框*/for(i=1;i<44;i+)putch(0xc4);/*输出下边框水平线*/p
25、utch(0xd9);/*输出右下角边框*/window(11,3,53,21);/*制作显示菜单的窗口,大小根据菜单条数设计*/clrscr();/*清屏*/for(i=0;i<3;i+)gotoxy(10,i+1);cprintf("%s",si);/*输出菜单项数组*/i=1;gotoxy(10,2);/*设置默认选项在第一项*/textbackground(LIGHTGREEN);/*设置背景颜色为浅绿*/cprintf("%s",s1);/*输出菜单项,表示选中*/gotoxy(10,2);/*移动光标到菜单的第一项*/while(key
26、!=13)/*所压键不是回车键时*/while(bioskey(1)=0);/*查询是否压下了一个键*/key=bioskey(0);/*返回下一个在键盘压下的键*/key=key&0xff?key&0xff:key>>8;/*对所压的键进行判断*/gotoxy(10,i+1);textbackground(BLUE);/*设置背景颜色为蓝色*/cprintf("%s",si);/*输出菜单项*/if(key=72)i=i=1?2:i-1;/*如压向上光标键,i减1,如已到第一行再上移,则到最后一行*/if(key=80)i=i=2?1:i+1;
27、/*如压向下光标键,i加1,如已到最后一行再下移,则到第一行*/gotoxy(10,i+1);/*光标移动i的下一项*/textbackground(LIGHTGREEN);/*将背景颜色设为浅绿*/cprintf("%s",si);/*输出菜单项*/j=i;/*给代表菜单选项的整数赋值*/6沈阳工程学院课程设计(报告)if(j=1)staff();if(j=2)manager();主函数的流程图如图3-6所示。7开始控制菜单的for循环key=0,c=0设文本为黄色,背景为蓝色gotoxy(1,25)输出pressanykeyentermenugotoxy(10,2)输出
28、左上角边框控制上边框水平线的for循环控制左右两边的垂直线的for循环输出左上角边框控制下边框水平线的for循环制作显示菜单的窗口1沈阳工程学院课程设计(报告)1控制输出菜单项的for循环gotoxy(10,2)背景色设置为浅绿8输出菜单的第一项gotoxy(10,2)whilek(key!=13)key=bioskey(0)key&0xffkey=key&0xffgotoxy(10,i+1)key=key>>textbackground(BLUE)输出菜单项2沈阳工程学院课程设计(报告)Nkey=72YNkey=80Yi=2Yi=1;输出第i行的菜单项c=i-1;
29、返回c结束图3-6主函数流程图3.2客户界面函数客户界面:也用switch语句调用函数,用window函数创建窗口,建立主菜单,制作一个单边框的窗口,窗口背景为蓝色,在窗口中显示光带主菜单,字体颜色为黄色,同时光标默认定位在第一项菜单上,用光标的上下移动即可选中所需的选项,选中项背景为绿色,按回车键进入相应的功能函数,利用函数bioskey()识别按了什么键,根据光标停留在窗口的行数换算成对的菜单项,作为菜单函数的返回值,如果返回值为0,则显示所有数据;如果返回值为1,则单条显示数据;如果返回值为2,则查找职工信息数据;如果返回值为3,则9沈阳工程学院课程设计(报告)读取已保存文件;如果返回值
30、为4,则复制文件;如果返回值为5,则按实发工资升序排序;如果返回值为6,则运行退出;voidstaff()inti;for(i=0;i<7;i+)switch(menu_select1()/*调用菜单函数返回一个整数值*/case0:list();break;/*显示所有数据*/case1:display();break;/*单条显示*/case2:search();break;/*查找职工信息数据*/case3:load();break;/*读取文件*/case4:copy();break;/*复制文件*/case5:sort();break;/*按实发工资升序排序*/case6:ex
31、it(0);/*退出*/3.3管理员界面管理员界面:同客户界面一样,如果返回值为1,则输入数据并创建双链表;如果返回值为2,则显示所有数据;如果返回值为3,则单条显示数据;如果返回值为4,则进行计算实发工资;如果返回值为5,则查找职工信息数据;如果返回值为6,则删除该记录;如果返回值为7,则插入新记录;如果返回值为8,则追加新记录;如果返回值为9,则保存文件;如果返回值为10,则读取已保存文件;如果返回值为11,则复制文件;如果返回值为12,则按实发工资升序排序;如果返回值为13,则运行退出;如果返回值为0,则数据初始化。voidmanager()inti;for(i=0;i<15;i+
32、)switch(menu_select2()/*调用菜单函数返回一个整数值*/case0:init();break;/*初始化*/case1:create(),save();break;/*输入数据创建双链表*/case2:list();break;/*显示所有数据*/case3:display();break;/*单条显示*/case4:calc();break;/*计算实发工资*/case5:search();break;/*查找职工信息数据*/10沈阳工程学院课程设计(报告)casecasecasecasecasecasecasecase6:delete();break;/*删除记录*/
33、7:insert();break;/*插入记录*/8:save();break;/*保存文件*/9:load();break;/*读取文件*/10:copy();break;/*复制文件*/11:sort();break;/*按实发工资升序排序*/12:index();break;/*按职工号索引*/13:exit(0);/*退出*/3.4菜单函数菜单函数:定义字符型数组f;整形数组i,key,c;利用函数bioskey()识别按了什么键,根据光标停留在窗口的行数换算成对的菜单项,作为菜单函数的返回值。/*菜单函数,函数返回值为整型,代表所选的菜单项*/menu_select1()char*f
34、=/*定义菜单字符串数组*/"*MENU*",/*菜单的标题行*/"1.Listalln",/*显示所有记录*/"2.Displayrecordbystep",/*显示单条记录*/"3.Searchrecordonnumber",/*查找记录*/"4.Loaddatafromthefile",/*读取文件*/"5.Copythefiletonewfile",/*复制文件*/"6.Sortonsfgz",/*排序*/"0.Quit"/*退
35、出*/inti;intkey=0;/*记录所压键值*/intc=0;chars80;getch();clrscr();/*清屏*/textcolor(YELLOW);/*设置文本颜色为黄色*/textbackground(BLUE);/*设置背景颜色为兰色*/gotoxy(10,2);putch(0xda);/*输出左上角边框*/11沈阳工程学院课程设计(报告)for(i=1;i<44;i+)putch(0xc4);/*输出上边框水平线*/putch(0xbf);/*输出右上角边框*/for(i=3;i<22;i+)/*输出左右两边的垂直线*/gotoxy(10,i);putch(
36、0xb3);gotoxy(54,i);putch(0xb3);gotoxy(10,22);putch(0xc0);/*输出左下角边框*/for(i=1;i<44;i+)putch(0xc4);/*输出下边框水平线*/putch(0xd9);/*输出右下角边框*/window(11,3,53,21);/*制作显示菜单的窗口,大小根据菜单条数设计*/clrscr();/*清屏*/for(i=0;i<8;i+)gotoxy(10,i+1);cprintf("%s",fi);/*输出菜单项数组*/i=1;gotoxy(10,2);/*设置默认选项在第一项*/textba
37、ckground(LIGHTGREEN);/*设置背景颜色为浅绿*/cprintf("%s",f1);/*输出菜单项,表示选中*/gotoxy(10,2);/*移动光标到菜单的第一项*/while(key!=13)/*所压键不是回车键时*/while(bioskey(1)=0);/*查询是否压下了一个键*/key=bioskey(0);/*返回下一个在键盘压下的键*/key=key&0xff?key&0xff:key>>8;/*对所压的键进行判断*/gotoxy(10,i+1);textbackground(BLUE);/*设置背景颜色为蓝色*/
38、cprintf("%s",fi);/*输出菜单项*/if(key=72)i=i=1?7:i-1;/*如压向上光标键,i减1,如已到第一行再上移,则到最后一行*/if(key=80)i=i=7?1:i+1;/*如压向下光标键,i加1,如已到最后一行再下移,则到第一行*/gotoxy(10,i+1);/*光标移动i的下一项*/textbackground(LIGHTGREEN);/*将背景颜色设为浅绿*/12沈阳工程学院课程设计(报告)cprintf("%s",fi);/*输出菜单项*/c=i-1;/*给代表菜单选项的整数赋值*/textbackground
39、(BLUE);/*设置背景颜色为黑色*/window(1,1,80,25);/*恢复原窗口大小*/returnc;/*返回代表菜单选项的整数值*/exit(0);menu_select2()char*f=/*定义菜单字符串数组*/"*MENU*",/*菜单的标题行*/"1.initlist",/*初始化双链表*/"2.Enterlist",/*输入数据,创建双链表*/"3.Listalln",/*显示所有记录*/"4.Displayrecordbystep",/*显示单条记录*/"5.
40、Calcthesalary",/*计算实发工资*/"6.Searchrecordonnumber",/*查找记录*/"7.Deletearecord",/*删除记录*/"8.Insertrecordtolist",/*插入记录*/"9.Savedatatothefile",/*保存文件*/"10.Loaddatafromthefile",/*读取文件*/"11.Copythefiletonewfile",/*复制文件*/"12.Sortonsfgz&quo
41、t;,/*排序*/"13.Indexonnumber",/*索引*/"0.Quit"/*退出*/inti;intkey=0;/*记录所压键值*/intc=0;getch();clrscr();/*清屏*/textcolor(YELLOW);/*设置文本颜色为黄色*/textbackground(BLUE);/*设置背景颜色为兰色*/gotoxy(10,2);putch(0xda);/*输出左上角边框*/for(i=1;i<44;i+)putch(0xc4);/*输出上边框水平线*/13沈阳工程学院课程设计(报告)putch(0xbf);/*输出右上
42、角边框*/for(i=3;i<22;i+)/*输出左右两边的垂直线*/gotoxy(10,i);putch(0xb3);gotoxy(54,i);putch(0xb3);gotoxy(10,22);putch(0xc0);/*输出左下角边框*/for(i=1;i<44;i+)putch(0xc4);/*输出下边框水平线*/putch(0xd9);/*输出右下角边框*/window(11,3,53,21);/*制作显示菜单的窗口,大小根据菜单条数设计*/clrscr();/*清屏*/for(i=0;i<15;i+)gotoxy(10,i+1);cprintf("%s&
43、quot;,fi);/*输出菜单项数组*/i=1;gotoxy(10,2);/*设置默认选项在第一项*/textbackground(LIGHTGREEN);/*设置背景颜色为浅绿*/cprintf("%s",f1);/*输出菜单项,表示选中*/gotoxy(10,2);/*移动光标到菜单的第一项*/while(key!=13)/*所压键不是回车键时*/while(bioskey(1)=0);/*查询是否压下了一个键*/key=bioskey(0);/*返回下一个在键盘压下的键*/key=key&0xff?key&0xff:key>>8;/*对所
44、压的键进行判断*/gotoxy(10,i+1);textbackground(BLUE);/*设置背景颜色为蓝色*/cprintf("%s",fi);/*输出菜单项*/if(key=72)i=i=1?14:i-1;/*如压向上光标键,i减1,如已到第一行再上移,则到最后一行*/if(key=80)i=i=14?1:i+1;/*如压向下光标键,i加1,如已到最后一行再下移,则到第一行*/gotoxy(10,i+1);/*光标移动i的下一项*/textbackground(LIGHTGREEN);/*将背景颜色设为浅绿*/cprintf("%s",fi);/
45、*输出菜单项*/c=i-1;/*给代表菜单选项的整数赋值*/14沈阳工程学院课程设计(报告)textbackground(BLUE);/*设置背景颜色为黑色*/window(1,1,80,25);/*恢复原窗口大小*/returnc;/*返回代表菜单选项的整数值*/3.5输入函数输入信息,创建链表:定义整型变量x,i,flag;浮点型变量temp;指针变量info,p;当头指针不为空时,调用初始化函数经行初始化。为空时p指向头结点,利用嵌套的for循环将各项信息输入,未输的信息暂定为0。当p为空时,说明输入的是第一个结点,头指针和尾指针都指向info,头指针的前驱为空,尾指针的后继为空。插入的
46、结点不是第一结点,则插入在头结点之前,新结点的后继指向原来的头结点,新结点的前驱指向原来的头结点的前驱,原来结点的前驱指向新结点。/*输入数据,创建双链表*/voidcreate()intx;/*记录行坐标*/inti;/*记录输入记录数*/intflag=0;/*做结束标记*/floattemp;/*定义临时变量*/SALARY*info,*p;/*定义临时变量*/if(First!=NULL)init();/*如果头指针为空,调用初始化函数*/p=First;/*从头指针开始*/for(;)if(flag=1)break;/*如果flag=1,结束输入*/i=0;x=0;/*确定移动的行坐
47、标*/clrscr();/*清屏*/gotoxy(1,3);printf("*gongziguanli*");/*输出标题*/gotoxy(1,4);printf("-Enterend-");/*提示输入结束*/gotoxy(1,5);printf("|-|");/*输出表格的起始线*/gotoxy(1,6);15沈阳工程学院课程设计(报告)printf("|格数*/no|name|jbgz|");/*输出字段标题,注意空for(;)gotoxy(1,7+x);printf("|-|-|-|")
48、;/*输出表格的水平线*/info=(SALARY*)malloc(sizeof(SALARY);/*申请一个记录空间*/if(!info)printf("noutofmemory");/*如没有得到空间,输出内存溢出信息*/exit(0);/*退出程序*/info->next=NULL;/*新结点的后继为空*/info->prior=NULL;/*新结点的前驱为空*/gotoxy(1,8+x);printf("|");/*输出数据间的分割线*/gotoxy(12,8+x);printf("|");gotoxy(29,8+
49、x);printf("|");gotoxy(38,8+x);printf("|");gotoxy(2,8+x);/*光标到输入编号位置*/inputs(info->no,10);/*输入编号,并验证长度不超过10*/if(info->no0='')flag=1;break;/*编号首字符为结束输入*/gotoxy(13,8+x);/*光标到输入姓名位置*/inputs(info->name,14);/*输入姓名,并验证长度不超过14*/gotoxy(30,8+x);/*光标到输入基本工资位置*/scanf("%
50、f",&temp);/*输入基本工资到临时变量*/info->jbgz=temp;/*基本工资赋值*/info->koukuan=0;/*初始扣款为0,待计算工资时输入*/info->sfgz=0;/*初始实发工资为0,待计算工资时计算*/info->shuijin=0;/*初始税金为0,待计算工资时计算*/info->yfgz=0;/*初始应发工资为0,待计算工资时计算*/if(p=NULL)/*如果p为空,说明输入的是第一个结点*/First=Last=info;/*头指针和尾指针*/First->prior=NULL;/*头指针的前驱
51、是空*/16沈阳工程学院课程设计(报告)Last->next=NULL;/*尾指针的后继是空*/else/*插入的结点不是第一结点,则插入在头结点之前*/info->next=p;/*新结点的后继指向原来的头结点*/info->prior=p->prior;/*新结点的前驱指向原来的头结点的前驱*/p->prior=info;/*原来结点的前驱指向新结点*/p=info;/*新结点变为p结点,暂时的头结点*/First=info;/*新结点变为头结点*/x+=2;/*因为水平线,将光标下移两行*/gotoxy(1,8+x);i+;/*输入记录数加1*/if(i%9
52、=0)break;/*输入9个记录,换一页输入*/gotoxy(1,8+x);printf("|-|-|-|");/*输出结尾水平线*/*字符串输入和验证函数*/inputs(char*s,intcount)charp255;doscanf("%s",p);/*输入字符串*/if(strlen(p)>count)printf("ntoolong!n");/*进行长度校验,超过count值重输入*/while(strlen(p)>count);strcpy(s,p);/*将输入的字符串拷贝到字符串s中*/17沈阳工程学院课程
53、设计(报告)结论短暂并不代表一无所获,学习永无止境。经过这两周的课程设计,我对C程序的知识又从新巩固了一遍,特别对程序设计模块化的思想有了更具体的体会。而这次的课程设计也给了我们一次机会,一次把学习到的知识付诸实践的机会。平时也做过一些成绩管理程序,但都是些简单粗糙的,无法进行存盘等操作。而且界面也是简陋无比。原以为以现在的水平无法编出更高级的程序,但经过查阅大量相关资料和书籍,令我的观念有了很大的改变,以我们现在的知识水平一样可以编写出高级的成绩管理系统!首先,编写一个大的程序需要分组进行,因为团队精神能够让我们克服重重难关。每个人学习知识的侧重点不尽相同,每人解决问题的思路也不一样,几个人
54、相互讨论,相互辩论的过程中往往会产生出人意料的好想法,也许这就叫做灵感吧。分歧过后达成共识,团结协作,最终才造就了一个完整的程序。当然,实践的过程中一定会出现无法解决的问题,这些问题有很多是超越我们课堂学习范围的,这就需要我们去图书馆或上网查找一些资料,并提前了解和掌握为学过的内容,不断提高与探索。这也是获取知识最重要的途径之一,吸取前人的经验也是解决问题的很好途径,但是绝不能照抄代码,先继承后发展才能算是你收获的。随着时间的发展,眼看我们的程序日趋于完善,一个比较全面和完善的学生成绩管理系统从我们手中诞生,我们每个人心里都涌出一股安慰与欣喜,同时也有一种小小的成就感。这也激起了我们更强的学习
55、欲望,给了我们在C语言学习过程中更强的信心,激励我们不断去探索与进取。总之,这次课程设计让我们更加了解了C语言在实际中的应用与发展方向。其中的感受用获益匪浅来形容是再恰当不过的了。18沈阳工程学院课程设计(报告)致谢在这里我要感谢我的老师,因为老师在这次课程设计中给予我很大的帮助,老师的言传身教深深地感染了我。设计中的每一个环节无不凝聚着老师的心血,这一切都体现了老师的良苦用心。老师在课程设计方面有很多的实践经验,在我们我们面对问题时对我们的悉心指导及其严谨的工作态度锐意创新的精神,使我受益匪浅,在此特别向老师表示深深的感谢和由衷的敬意。在程序编制过程中,我们也遇到了这样或那样的问题,但经过自
56、己的不懈努力及查阅大量的资料,最终都得到了基本满意的答案,但是还有不尽人意的地方需要在今后的学习中逐渐解答。同时,同学也给了我许多有益的启示,促动和帮助,使我能够顺利的完成课题。感谢所有给予我们帮助的老师,他们辛勤耕作,传道授业,不仅使我们开阔了视野,拓宽了思路,增长了学识,而且为我们今后的工作和学习打下了牢固的基础,也使增强我们对课程设计的兴趣。他们的言行对我们起了指导的作用。同时也感谢学校给了我们这次难得的课程设计机会,课程设计的过程让我看到了自己理论知识上的不足,已掌握的知识也在这次的课程设计中有了质的飞跃,知识能够应用了才是真正掌握了,也希望学校多给我们一些这样的机会。19沈阳工程学院课程设计(报告)参考资料1韩万江软件工程案例教程机械工业出版社2009年7月第1版第2次印刷2张宏软件工程与软件开发工具清华大学出版社2008年9月第4次版3谭浩强C语言基础实训
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论