c语言课程设计报告答辩上交
- 格式:doc
- 大小:76.50 KB
- 文档页数:7
C语言课程设计报告题目:网络收费管理系统设计班级:计 111学号:110773110776110768姓名:李洋宇葛一波叶博兴成绩:2012 年7 月1 日·北京课程设计任务书一、基本要求1.1 设计目的课程设计是C语言理论课程的延伸,要求学生综合运用C语言知识,如数组、指针、函数、结构体、文件等,完成一个综合应用程序的开发。
锻炼学生分析问题解决问题的能力,知识的综合运用能力和团队合作的能力。
1.2 设计时间设计时间2周,集中上机,同学利用上机时间查阅资料,编制程序,完成设计。
为方便同学答疑,安排部分学时的集中上机辅导,每班配备两名指导教师。
1.3 设计要求1.每个班分成若干组,每组2~3名同学,指定组长。
2.以组为单位,组内同学共同完成一个题目,由组长确定组内成员的分工。
3.按时参加集中辅导,记考勤。
4.按时提交设计报告,按时参加验收和答辩。
5.每组提交《计算机程序设计基础(C语言)课程设计》设计报告1份及电子版源程序。
1.4 成绩评定方法1.课程设计成绩为五级分制,由平时上机情况、验收答辩、设计报告三部分组成。
2.答辩按组进行,先由组长介绍组内设计情况,演示程序,验收。
各成员独立答辩,答辩缺席者成绩为不及格。
3.课程设计报告,组员按照分工完成部分功能的报告撰写,由组长整理综合。
打印用A4纸。
1.5设计报告结构及要求(详见附录:设计报告模板)1.6 推荐的参考资料1. 苏小红等.C语言大学实用教程.电子工业出版社.20042. 苏小红等.C语言大学实用教程习题与实验指导.电子工业出版社.20043. 徐金梧等.TURBO C实用大全.机械工业出版社. 19964. 郭翠英等.C语言课程设计案例精编.中国水利水电出版社.20045. 谭浩强.C语言程序设计教程.高等教育出版社.19986. 崔武子.C程序设计辅导与实训. 清华大学出版社.20047. 有关TURBO C库函数使用的书籍8. 有关TURBO C编程的书籍9. 互联网上查阅相关资料题目:网络收费管理系统设计功能:实现简单的网络收费信息管理,基本信息包括学生的帐号、姓名、密码、余额等信息基本要求:1.设计简单的菜单,能够进行系统功能选择。
c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
(]1.2 实验要求在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。
第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。
()(2)通过编程进一步理解和掌握运算符的确切含义和功能。
2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。
(2)完成典型题目,分析遇到的困难和实验中的收获。
2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。
c语言课程设计报告c语言课程设计报告在现在社会,我们都不可避免地要接触到报告,报告成为了一种新兴产业。
那么报告应该怎么写才合适呢?以下是店铺收集整理的c语言课程设计报告,欢迎阅读与收藏。
c语言课程设计报告11、题目要求◆ 建立通讯录信息,信息至少包含编号、姓名、年龄、电话、居住街道、省份、城市、电子邮箱等;◆ 能够提供添加、删除和修改通讯录信息的功能;◆ 能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;◆ 将通讯录保存在文件中;◆ 能够按表格方式输出通讯录信息。
2、需求分析本程序将用到文件系统,其中单行内容代表一张纸条。
程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。
3、总体设计根据项目的任务要求及以上分析,在设计方法上,采用模块化的程序设计思想,即将通讯录管理系统划分为数据输入模块,数据查询模块,数据修改模块,数据插入模块,数据删除模块,,并对每个模块按照其功能分别独立完成对应的程序设计。
在数据处理上,各模块中的数据处理(如数据读/写操作)均用文件形式来实施,并在主程序中完成操作界面的设计功能,设计思路如下:1、采用模块设计思想;2、将通讯录信息定义成结构体类型,并通过文件实施数据操作;3、通过设计一菜单界面完成具体操作。
4、详细设计c语言课程设计报告2一、传统C语言课程设计教学模式C语言是最基本的计算机编程,是计算机、电子信息类等相关专业学生的专业入门课,在其学习过程中,要求必须掌握编程的技能。
但是C语言的学习有其特点,规则比较多、知识点多,涉及到的编程程序等也比较难懂,在运行上代码的要求较高,程序执行效率高,因此更讲究教学和学习的方式方法,但是在我们的教学中,目前教学方法比较单一,随着信息化的发展,传统的教学模式已经无法适应,亟需改革。
c语言课程设计总结报告范文5篇c语言课程设计总结1在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实习学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实习课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实习环节,特别是c语言灵活、简洁,更需要通过编程的实习来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.熟悉程序开发环境、学习计算机系统的操作方法一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行C语言程序设计实习心得体会(3篇)心得体会。
所谓环境就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。
通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。
同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
2.学习上机调试程序完成程序的编写,决不意味着万事大吉。
华北科技学院计算机系综合性实验实验报告课程名称程序设计语言(C)实验学期2013 至2014 学年第 2 学期学生所在系部年级2013 专业班级学生姓名学号任课教师实验成绩计算机系制_ 《计算机技术基础(C)》课程综合性实验报告开课实验室:基础实验室2010 年6 月01 日分析:根据for循环,将每个学生成绩累加进sum中,再用sum/n来计算平均值,将计算出的平均值放入字符数组str[]中,然后输出str[]。
将min,max赋予初值,即min=max=a[0][0];用for和if语句进行对每个数判断,结果如上图所示。
2、本题运用数组名作自定义函数的实参和形参,定义全局变量用于在自定义函数中的计数器。
根据正数大于0,复数小于0的规律来判断输入的数组中数字的正负情况和是否等于零。
并用条件语句进行计数器的计数。
最后输出结果。
运行结果如图:分析:运用for循环进行对输入的数组中元素进行调用,用来判断正负时,用if(a[]>0)则正数计数器自增一个数,同理if(a[]<0)则负数计数器自增一个数,零也是如此来判断。
然后在main 函数中将全局变量输出,结果如上图所示。
3、本题运用数组名作自定义函数的实参和形参,用替换的方法将删除改为替换,用后一个字符替换前一个。
这样可以实现用一个数组直接完成的目的,中间运用循环和条件语句来实现替换。
最后用全局变量来记录需要计数的字符的个数。
然后输出结果。
运行结果如图:分析:运用for循环用’\0’作为结束符进行对字符数组的调用,运用str[j++]=str[i]这个步骤进行替换字符即删除字符。
当运行到要删除的字符时j就无法自加,就可以和i差位。
这样就可以实现替换删除的功能。
最后将新的数组复制一遍给全局变量,然后输出即可,结果如上图所示。
4、本题运用数组名作自定义函数的实参和形参,用循环将最大值找出,同时在用循环将最大值的位置也找出来,这样方便将最大值与最后一个数调换,在找最大值时要将数组中的第一个数赋予定义的变量然后再进行一个一个对比寻找最大值。
c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理。
简单界面程序。
高级界面程序。
程序的添加修改。
用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
c课程设计餐饮管理系统答辩一、教学目标本节课的学习目标包括以下三个方面:1.知识目标:学生需要掌握餐饮管理系统的基本概念、组成部分及其运作原理。
具体包括餐饮管理系统的定义、功能、架构、关键技术等。
2.技能目标:学生能够运用所学知识,独立设计并实现一个简单的餐饮管理系统。
具体包括系统需求的分析、数据库的设计、界面的设计、功能的实现等。
3.情感态度价值观目标:培养学生对餐饮管理事业的热爱,提高他们解决实际问题的能力,培养团队协作和沟通能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.餐饮管理系统的基本概念:介绍餐饮管理系统的定义、功能、应用场景等。
2.餐饮管理系统的组成部分:讲解餐饮管理系统的主要模块,如订单管理、库存管理、员工管理、财务管理等。
3.餐饮管理系统的运作原理:阐述餐饮管理系统的工作流程、关键技术及其实现方法。
4.餐饮管理系统的设计与实现:指导学生如何设计并实现一个简单的餐饮管理系统,包括需求分析、数据库设计、界面设计、功能实现等。
三、教学方法为了提高教学效果,本节课将采用以下几种教学方法:1.讲授法:讲解餐饮管理系统的基本概念、组成部分和运作原理。
2.案例分析法:分析实际案例,让学生了解餐饮管理系统在实际应用中的优势和不足。
3.讨论法:学生分组讨论,培养他们的团队协作和沟通能力。
4.实验法:指导学生动手设计并实现一个简单的餐饮管理系统,提高他们的实践能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的餐饮管理系统教材,为学生提供系统的理论知识。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT,直观地展示餐饮管理系统的相关内容。
4.实验设备:准备计算机、数据库等实验设备,为学生提供实践操作的机会。
五、教学评估为了全面、客观地评估学生的学习成果,本节课采用以下评估方式:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解他们的学习态度和实际运用能力。
青岛理工大学 《C语言程序设计》
题目 家庭财务管理系统
指导教师: 王金龙 姓名: 吴玮 学号: 201007133 班级: 网络102 专业: 网络工程 地点: 多媒体楼207 时间: 6.27 至 7.01 一、内容 家庭财务管理系统主要是对家庭成员的收入,支出,进行添加,删除,查询等操作,并能统计总收入和总支出。该软件给家庭成员提供了一个管理家庭财务的平台。 1)菜单设计:本系统提供简单易操作的界面。有提示,帮助用户根据需要对家庭财务管理系统进行操作。 2)添加模块:根据实际的收入或支出,添加相应的记录,条数不限。 3)查询模块:可以选择不同关键字输入,查找该条记录。 4)删除模块:若某条记录错误或者不需要则可以删除。 5)显示模块:按照添加的先后顺序依次把记录显示在屏幕上,并显示总收入和总支出以及余额。 6)退出模块:退出财务管理系统并保存文件。 )
二、上机环境 操作系统:windows XP 开发工具:VC6.0++
三、函数调用关系图
开始 打开文件,载入信息
菜单界面
1 添 加联系
2 查询联系3 删除联系4 显示联系0 退出
保存
结束 四、各函数功能说明 1.系统主要函数及功能。 1.)add函数:功能为添加收入或支出的记录 2.)search函数:功能为查找联系人 输入关键字,从文件中搜索相应的记录并显示出来。 3.)delete_rec函数:功能为删除记录 若某条记录错误或者不需要则可以删除。 4.)show函数:功能为显示记录,将添加的记录显示在屏幕上。 5.)quit函数:功能为保存信息退出系统。
五、算法描述 添加:在主菜单选择添加选项后,系统会依次让用户输入年月日,并且限定月份输入时要在1至12内,如果符合要求则继续执行,输完整条记录。动态链表会根据用户的使用情况动态调整内存大小。插入一个结点到已有链表后,head指向插入的结点,该结点指向head原来所指的结点。每添加一条记录后接点随即加一。 查询:在主菜单选择查询选项后,选择查询方式,1.按姓名查 2.按备注查。然后按提示输入相应的信息姓名(或备注),系统会根据信息用一个指针从这个链表的第一个结点依次往后开始查询,若某个结点符合则输出该记录的信息,若指向NULL即最后一个结点也查询完毕依然没找到,则返回主菜单。
删除:输入需要删除的姓名和金额,系统会根据信息用一个q指针从这个链表的第一个结点
依次往后开始查询,并将已查询过的结点赋给另一个p指针。若某个结点符合则显示该记录的信息,并让用户再次确认是否删除。若指向NULL即最后一个结点也查询完毕依然没找到,则则返回主菜单。如果确定删除该结点,则q所指的结点的前一个结点(即p所指的结点)指向该接点所指向的下一个结点,也就是将q所指的结点从原来的链表中分离出来。每删除一条记录后接点随即减一。 六、程序运行效果图 1.添加联系人 添加记录时限定月份在1~12月之间,否则无法添加,每添加一条记录后就返回主菜单,链表中插入了该结点。
2查询联系人 查询记录时,可以选择备注或者姓名进行查找。若选择按姓名查找,则在输入名字后,系统会根据添加的先后顺序,在屏幕上依次显示出该联系人的全部记录。
3 删除联系人 选择删除选项后,界面会让使用者输入要删除者的姓名及金额,并根据输入的信息显示该条记录,并且为了防止意外删除而有提示是否删除,经使用者再三确认后便删除该记录。
4 显示联系人
在菜单中选择显示选项后,系统会把所有的记录按照先后顺序依次逐条显示在界面上,并且还计算出了一共的收入,一共的支出及当前余额。
5退出 在菜单中选中该选项后,系统会把所有的资料都保存到文件中,然后关闭该系统。
七、总结 本次对家庭财务管理系统的编写,我遇到了许多困难。主要原因不怎么擅长使用“指针”。在添加模块中,由于没有很好的理解指针中插入的专用句子,所以脱离书本的时候根本不知怎么开始,自己想了很久也没想出来,后面翻了书,把相关的句子抄上去后死记硬背了下来。p->next=head;head=p;在添加节点数是,未强调Recordcount数据类型。在写删除模块是也遇到了类似的问题。看了书上的一个例题,里面有两个指针,可是我的代码中只有一个,怎么办呢?模仿了书上的写法,第一次以失败告终,经过很多种修改后总结出失败的原因是该指针定义错误,针对该错误,经过很多的尝试终成功了。在显示函数中,自我感觉没有错误 了,可是每次在“一共收入,一共支出,当前余额”后面都显示了一长串数字,在快放弃时终于发现自己犯了一个很可笑的错,printf语言中居然用了取地址符。在保存函数中也犯了一些常见的错,在写入文件中居然用了fscanf语句。
八、参考文献 谭浩强.C程序设计(第四版).清华大学出版社。 九、程序清单(双列排版,小五号字) #include #include #include struct F_Data { int year; //年 int month; //月 int data; //日期 float amout; //金额 char name[20]; //姓名 int type; //收入或支出类型 char comment[100]; //备注 struct F_Data*next; //定义一个指针 }; void main() { int i,w=1; void add(); void search(); void delete_rec(); void show(); do { printf("***********************************\n"); printf("欢迎使用家庭财务管理系统\n"); printf("1:添加记录\n"); printf("2:查询记录\n"); printf("3:删除记录\n"); printf("4:显示所有记录\n"); printf("0:退出\n"); scanf("%d",&i); switch(i) { case 1:add();break; case 2:search();break; case 3:delete_rec();break; case 4:show();break; } }while(w==1); }
void add() { system("cls"); /*清屏*/ int Recordcount; struct F_Data*head; struct F_Data *p=NULL; /*定义pNode为struct F_Data类型指针*/ p=(struct F_Data*)malloc(sizeof(struct F_Data)); /*运行时动态调整所占内存 的大小*/ printf("请输入年份:"); scanf("%d",&p->year); printf("请输入月份:"); scanf("%d",&p->month); if((p->month>0)&&(p->month<13)) /*限定月份为1~12 */ { printf("请输入日期:"); scanf("%d",&p->data); printf("请输入金额:"); scanf("%f",&p->amout); printf("请输入姓名:"); scanf("%s",p->name); printf("收入按1,支出按0:"); scanf("%d",&p->type); printf("请输入类型:"); scanf("%s",p->comment); p->next=head; /*插入一个结点 */ head=p; Recordcount++; /*结点数加一 */ } system("PAUSE"); /*停顿*/ } void search() { system("cls"); /*清屏*/ struct F_Data*head; char name[20]; int type; int choice; struct F_Data*p=NULL; /*定义pNode为struct F_Data类型指针*/ printf("1按姓名查找\n2按备注查找\n "); printf("请输入你的选择:"); scanf("%d",&choice); if(choice==1) { printf("请输入姓名:"); scanf("%s",name); for(p=head;p!=NULL;p=p->next) /*从链表的第一个结点到尾结点 */ if(strcmp(p->name,name)==0) /*如果输入的name和结点中的name一样 */ { printf("%d\t",p->year); printf("%d\t",p->month); printf("%d\t",p->data); printf("%.2f\t",p->amout); printf("%s\t",p->name); printf("%d\t",p->type); printf("%s\n",p->comment); } } if(choice==2) { printf("请输入类型:1收入 0支出\n "); scanf("%d",&type); for(p=head;p!=NULL;p=p->next); if(p->type==type) /*如果输入的type和结点中的type一样 */ { printf("%d\t",p->year); printf("%d\t",p->month); printf("%d\t",p->data); printf("%.2f\t",p->amout); printf("%s\t",p->name); printf("%d\t",p->type); printf("%s\n",p->comment); } } system("PAUSE"); /*停顿*/ } void delete_rec() { system("cls"); /*清屏*/ struct F_Data*head; int Recordcount; char name[20]; float amout; int choice; struct F_Data *p=NULL,*q=NULL; /*定义p和q都为struct F_Data类型指针*/ p=head; /*p指向第一个结点 */ q=head; /*q指向第一个结点 */ printf("请输入要删除者的姓名:"); scanf("%s",name); printf("请输入金额:"); scanf("%f",&amout); for(;q!=NULL;q=q->next) /*q指针从链表的第一个结点到尾结点 */ { if((head->amout==amout)&&(strcmp(head->name,name)==0)) /*如果头结点符合要求 */ { printf("%d\t",q->year); printf("%d\t",q->month); printf("%d\t",q->data); printf("%.2f\t",q->amout); printf("%s\t",q->name); printf("%d\t",q->type); printf("%s\n",q->comment); printf("确认删除?\n 1是\n 2否