c语言课程

阅读 / 问答 / 标签

C语言课程设计,商品库存管理系统怎么做啊?

我教你。。#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <memory.h>int count=0;struct commodity{int id; /*商品编号*/int number; /*库存数量*/int price; /*单价*/char name[20]; /*商品名称*/char indate[9]; /*入库时间*/char deadline[9]; /*有效日期*/}a[100];void page_title(char *menu_item) { printf("◆◆◆◆◆◆◆◆◆◆◆商★品★库★存★管★理★系★统◆◆◆◆◆◆◆◆◆◆◆◆◆◆ ",menu_item); } void return_confirm(void) { printf(" 按任意键返回…… "); getch(); }void insert(void) /*1插入*/{ } int search(void) /*2商品信息的查询*/{ }void del(void) /*3删除*/{ } void sort() /*4排序*/{ }int modify(void) /*5修改*/{}int main(void){ menu: page_title("操作选单"); printf(" 1 信息查询 2 全部商品 "); printf(" 3 商品增加 4 商品删除 "); printf(" 5 信息修改 0 退出程序 ");switch(getch()) { case "1" : search();break; case "2" : sort();break; case "3" : insert();break; case "4" : del();break;case "5" : modify();break;case "0" : exit(0); } goto menu; return 0;}

C语言课程设计 贪吃蛇

你可以给我邮箱我给你发过去,顺便问一下你是不是内农大的?

c语言课程的总结

1.先学习C语言的基础知识。现在正在学C语言的在校学生可以直接进入第2步学习。 2.按照《C语言程序设计入门学习六步曲》进行上机练习。 3.在上机练习时要养成良好的编程风格。点击查看C语言的编程风格 4.积极参加C、C++兴趣小组,养成和老师与同学交流习惯,从而相互收益。有时别人不经意的一句话可能使你茅塞顿开--“一句话点醒梦中人”。 5.及时总结自己的学习经验,养成写C语言日记的习惯。软件有编程日记功能。 6.从网上或教材上找一个自己感兴趣的题目(选题时根据自己的能力,可先易后难,培养自己的成就感,如果有了成就感,即使再苦再累还是感觉C语言学习是一件快乐的事,同学们喜欢打游戏,经常通宵达旦地玩游戏也乐而不疲就是这个道理)进行实战训练,提高自己的C语言综合应用能力。 7. 由于C语言灵活、强大,初学者要全面地掌握它是不可能的,因此在学习C语言的过程中,不要在细枝末节上浪费精力(比如++、--用于表达式的计算,实际上是没有意义的),但一定要熟练掌握C语言的流程控制语句、数组、函数、指针等基础知识的应用,为学习面向对象程序设计打下坚实的基础。如果这些知识你学不好,要后续学习好C++、可视化的程序设计Visual C++或C++Builder就像空中楼阁,是不现实的。 C语言程序设计入门学习六步曲 笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个: 一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢? 二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。 三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。 出现问题原因清楚了,那么如何学习呢?请你看【C语言学习六步曲】 在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。“三分编程七分调试”,说明程序调试的工作量要比编程大得多。这里以如何上机调试C程序来说明C语言的学习方法。 第一步、验证性练习 在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。 初学者最容易犯的错误是: 1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。 2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未C声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。 3、修改C语言语法错误时要注意以下两点: (1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。 (2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。 第二步、照葫芦画瓢 在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。 例如:将最简单的Hello World!程序 #include "stdio.h" int main() { printf("Hello World! "); return 0; } 中的 printf("Hello World! "); 中的Hello World!改成你的姓名,运行一下程序,看有什么变化? 再如求1+2+3...+100的和的程序 #include <stdio.h> main() { int i,sum=0; for(i=1;i<=100;i++) { sum=sum+i; } printf("sum=%d ",sum); } 第1次将for(i=1;i<=100;i++)中的100改成50,运行一下程序,看有什么变化? 第2次将for(i=1;i<=100;i++)中的i++改成i=i+2,运行一下程序,看有什么变化? 找出程序结果变化的原因,就加深了对C语句的理解。 第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。 在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。 第四步、增强程序的调试能力 在教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。 注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!! 注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!。 例如,将Hello World程序中语句 printf("Hello World! "); 中的;改成中文的分号; 运行一下程序,看有什么结果? 调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。 即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就事差别。 第五步、研究典型的C语言程序,提高程序设计能力 C语言初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因是:所谓的看懂听明白,只是很肤浅的语法知识,而没有深刻地理解C语言的语句的执行过程(或流程)。 计算机是按照人的指令(编写的程序)去执行的,如果不知道这些C语句在计算机中是如何执行的,你怎么回灵活运用这些知识去解决实际问题呢? 解决问题的方法是要先理解C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后研读现成C语言经典程序,看懂别人事如何解决问题的,以提高自己的程序设计能力。 第六步、研究课程设计源成序,提高C语言的综合应用能力.

c语言课程设计总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。我的题目是文章处理系统的设计,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠近专业?怎样让自己的计划更具有序性,而不会忙无一用?机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在郭老师的辛勤指导下,终于游逆而解。同时,在郭老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。谢谢给我指点迷津的老师。6月11日,我们的课程设计结束了,但是它留给我的印象是不可磨灭的。无论我以后会不会涉及到C语言程序编译的研究,我想,我至少掌握了一种系统的研究方法,我们学习的目的就在于运用,我们运用这种研究方法的时候会很多,我最后要感谢课程设计,它的确教会我很多。另外,虚机团上产品团购,超级便宜

c语言课程设计之学生成绩管理系统设计的程序

(5)将参考模板的程序调试运行通过,并补充完整,实现完整的学生成绩管理系统C语言课程设计任务书 一、题目: 学生成绩管理 二、目的与要求 1. 目的:

老师要求写一份C语言课程设计报告,有一个问题是系统运行环境与数据库设计,应该怎么回答?

1.开场自我介绍, 简单讲述我大学的学习的历程,成果和感想。(1分钟)我一直都感慨本年级许多同学在大一时因为缺乏好指引,在一开始就对编程很害怕,对计算机的学习没有开好头,动手能力长期跟不上,空会理论,不会实践,一直拖累到大四,最终选择忍痛考研或者抱怨找工作难。我也帮助过不少在这方面比较弱的同学,但是总是因为基础没打好导致难以提高。我也一直希望学校能在大一的时候就让同学们明白学习的重要性,打好扎实的专业基础。现在终于有一次这样的机会站在这里,为指引大家如何在大学专业技术学习的道路上开好头做点贡献。今天我将结合我自身的经历和我对计算机的理解,我对编程的感悟,我对大学学习的认识,给大家做报告。首先问三个问题:1) qq聊天软件是用什么语言写的(第二天要换个问题)答对的演讲结束后留下来,我要亲自给他传授宝贵经验,没人答的话,很遗憾2) 谁玩电脑游戏比较牛恩,人很多,大家很踊跃,很好展示下我写的人工智能黑白棋游戏,声明真正的编程高手基本从来不玩游戏(结合大四同学长期沉迷游戏最后找不到工作的例子,说明一个严肃的问题,只会玩游戏没有用,会做游戏才牛,鼓励大家努力学习,让会玩游戏的同学也热爱编程,最后也能自己写游戏)请大家记住:只会玩游戏没有用,会做游戏才牛3) 有没有人对计算机特别感兴趣 (为什么感兴趣)如果有兴趣,对学习计算机有巨大的帮助兴趣是最好的老师,鼓励他们,勉励其他人,兴趣是可以培养的,要学会培养兴趣2.概述计算机"科学"与"技术" 包含两个层面 "科学" 指计算机硬件、软件与应用的理论知识 理论的学习"技术" 指软件开发、工程实践等技能与方法 能力的培养我主要讲的是如何学习技术(计算机技术) 讲之前 澄清一个观点 计算机技术 不等于 编程技术编程只是一个工具,编程没学好不代表你技术就学不好计算机技术应该是与计算机软件、硬件和网络三个部分相关的各种科技成果和应用的综合,包括了多媒体,数据库,操作系统,嵌入式系统,计算机安全,计算机网络,计算机管理和维护,计算机应用,人工智能,模式识别,管理信息系统等,在我们生活的方方面面计算机技术几乎无处不在。(举几个例子)在现在社会,它几乎与我们的生活息息相关。(大学和高中的学习方式的区别)(学好技术的重要性)在大学,学习的方式与高中或小学是有很大的区别的,大学更大,大学更自由,不再是完全跟着老师,不再是只要吃透了老师教授的内容就万事大吉了,从我这一届的情况看,许多同学特别是女生在大学还沿袭着高中的学习方式,勤奋刻苦,天天自习,非常认真,上课笔记做得秘密麻麻,把理论学得非常扎实,但是却严重地忽略了实践能力的培养,理论考试分数很高,但课程设计做不出东西来,显然这种学习方式是不对的,这和高中的偏科又有什么本质区别呢。我觉得理论的学习和技术的学习是同等重要的,二者都不应该轻视,没有侧重点是不可能的,至于如何侧重,如何在二者之间找到平衡点就取决于你自己的人生目标了。如果你喜欢研究理论,以后想继续读研深造可以稍微偏向理论,把理论基础打得扎实一些,毕业以后可以留校任教或到科研院所去发展。如果你想走技术路线,那么你就可以稍稍偏向技术,在不落下理论学习的情况下,把技术学好学精,毕业以后可以去IT企业发展,也可以自己创业,有了一身技术不怕没饭吃。切莫完全忽视技术最后变成书呆子或完全不顾理论最后只是个代码搬运工。大家每个人,从现在开始就要下决心学好技术,那么,如何学好技术呢。3.如何学好技术3.1制定好的学习计划3.1.1大一大二:打好基础3.1.1.1计算机方面的基本技能的学习包括计算机众多的应用技术的学习 和 常见的硬件维护(大家应该尽量多多掌握计算机方面的基本技能,如word excel ppt access* photoshop* flash* dreamveaver* 结合我的经历讲讲,我大一在自己没有电脑的情况下把这些基本全学了 举一个考研的同学不会在excel里找自己的名字的例子,如果这些最基本的技能都不会,只能说计算机还没入门)大二有电脑之后,终于有机会整自己的电脑了,要学习常见的常见的硬件维护(系统崩溃了怎么办,如何安装操作系统,如何分区等)3.1.1.2专业理论基础和编程基础的学习技术是将理论运用到实践中去,不能轻视理论,没有理论何来应用。计算机"科学"与"技术" 中的"科学"和"技术"应该是相互依赖和促进的。先学好《高级语言程序设计》《数据结构》等专业课,理论基础扎实了,学应用性技术就更容易了编程基础:学精C++(为什么),可以考虑过渡到 java 或 C# (最好只学一个,为什么)(编程的学习会在后面再详细讲)3.1.1.3珍惜这两年大学自由学习的黄金时间 (曾经和一家公司的经理开玩笑,总经理感慨的说现在在大学里找一个又能力的学生来帮忙做项目真是很难啊,我说是呀,大学四年,大一的刚进校还在打基础没法做,大二的还刚起步没足够的能力做,大三的课程会很紧没时间做,大四的找工作的找工作去了,考研的考研去了,没人做了),大学四年,实则三年,希望大家不要把最宝贵的时间荒废在游戏和娱乐上3.1.2大三:深入学习,确定方向(技术方向,职业规划)+多多实践到了大三,各种专业课会非常多,包括很重要的操作系统,汇编,组成原理,编译原理,数据库,计算机网络,软件工程等等,大家将深入学习计算机的各大核心课程。这时大家的基础打得也差不多了,可以选择一门自己比较感兴趣的技术并确定自己的技术的一个方向,比如选择j2ee, .NET,WEB技术,数据库技术,嵌入式,linux内核开发等等。当然也会有非常丰富多彩的专业选修课可以选择学习。这段时间大家可以利用课程设计的机会好好锻炼自己。3.1.3大四:实践和进步大四,如果不打算考研的同学,工作有了着落之后,可以试着做项目,大四基本没什么课,相对轻松,这段时间是获得经验,银子和巨大的进步黄金时期。3.2重视专业课的学习要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好除非你足够牛,请务必认真听专业课,有些课像《数据结构》,《编译原理》,《组成原理》,《操作系统》等等,这种课老师讲一分钟能让你明白的内容,你自己看要看好几个月3.3培养好的思维能力数学是锻炼是思维的最好的东西了,他是你思考问题的最得力的工具,他体现着你的思想,在编程中会思考才能编出好的程序。此外还要注重离散数学,数值分析,线性代数,数字逻辑等等课程的学习,他们对培养好的思维能力大有裨益3.4激励创新意识创新太重要了,不管在哪个学科都重要,计算机同样需要3.5培养独立分析问题和解决问题的能力 遇到问题,要先学会独立思考,不能凡事依赖他人,尽量自己解决,在独立解决问题过程中能获得更大的进步,实在不能解决再请教别人也不迟3.6培养自学能力和快速获取知识的能力自学能力之重要(大学和高中的学习方式的区别)可以说高中是靠老师,大学是靠自己,要做到严格自律,自我约束,必须要学会自学学习的过程也是学会学习的过程要充分利用图书馆和网络上的丰富学习资源, 要培养计算机新知识,新技术方面的自学习能力,要学会如何通过网络,书籍,文献,独立地快速获取自己需要的知识和信息3.7培养团队协作精神在一个大型项目中,往往要求各种参与者密切配合才能取得成功。大家要从现在就开始注重团队协作精神的培养,要学会与人沟通,善于表达,要注意提高自己的综合素质,成为综合型人才。3.8学好英语包括现在的大学英语和日后的专业英语。也许有人会问,英语和技术有什么大的关系吗。大家是否知道,计算机的发展飞速,国际上新技术不断涌现,如果今天国外出现了一门新的技术,或者国外某本技术书籍出了新版本,相关资料的中文的翻译不知道要等到什么猴年马月才会出来,现在的许多出版也有了越来越多的英文原版书。大家要学好英语,培养阅读专业外语资料的能力,开始会看不懂,看多了自然熟练了。(讲下四六级,四级最好一次就过,六级在大二下结束前最好过)3.9适时关注新技术了解学科发展动态,跟上时代步法3.10勤学苦练,持之以恒学好技术不是一蹴而就的,要长期坚持。4.无5.无6.关于编程的学习6.1为什么要学习编程编程是软件开发的基础,学习计算机,只会编程是千万不行的,但是开发软件,不会编程是万万不行的(结合本年级的情况将一下现状,学习的重要性等)6.2编程真的那么难学吗(讲讲编程的苦与乐)编程真的那么可怕,那么枯燥,那么没意思吗?假如真是这样,为什么世界上还有那么多优秀的人乐此不疲。其实编程并不可怕,可怕的是你的心态。编程固然很苦,编程时长时间对着屏幕,对身体不好,而且,经常因为考虑不周,会遇到各种各样的错误和麻烦,初学者处处容易受挫。但是其实编程是很有趣的,编程中充满着无穷的快乐首先,你通过编程得到了想要的成果的过程是一种创造的快乐(编出了有用的东西的那一刻会有一股美好的成就感)其次,你开发了有用的软件可以方便自己或他人,方便自己,是一种享受的快乐,方便他人,是一种奉献的快乐再次,假如你开发的软件得到了用户的认可或好评,会有一种欣慰和满足感还有,你可以根据自己的意愿写你想要的东西,经过自己的努力亲自实现你心中的愿望然后,编程也是一个挑战自我的过程,遇到困难想办法解决的过程是思考的过程,思维能得到锻炼最后,在代码中有一种看不见的美,就像诗一样,美景全是你的,你可以随心所欲编程真的非常有趣,它不仅满足了我们内心深处进行创造的渴望,让人头脑变得灵活,而且还愉悦了每个人内在的情感。6.3学好编程的建议6.3.1请热爱编程如果想成为编程牛人的话,请热爱编程。有兴趣是最好了,没兴趣也没关系,可以慢慢培养,当你感受到了编程的乐趣的时候你会爱上它。6.3.2不要畏难很多初学者往往都在遇到许多困难,遭受多次挫折后,自信心受到打击从而对编程丧失兴趣这些困难每个人都会遇到,我在初学编程时也遇到过,关键是看你用什么心态对待,是想办法解决困难还是选择逃避。很多问题其实是有很多解决方法的。譬如看书,遇到看不懂的部分,可以暂时跳过,先往后看,看完后面的之后,再回头看前面跳过的部分往往会有一种豁然开朗的感觉。再比如,编程调试时死活找不到错误会很郁闷,这个时候很多同学会束手无策,其实只要在程序不同的地方加上输出语句,然后运行看有哪些输出,这样一步步缩小错误的范围从而确定错误发生的位置。等等。。。不要畏惧困难,要用你的智慧战胜它。6.3.3多实践,多交流学习编程的秘诀是:编程,编程,再编程;(讲讲如何动手实践)在学校的实验室就算你做错一万次程序都不会有人骂你,如果在公司你试试看!所以多去实验室上机,现在错得多了,毕业后就错得少了。多实践,多从失败中吸取教训,积累经验。要勤奋,三天打鱼两天晒网是学不好的,学会了的东西一段时间不用就容易忘记,实践得越多才能记得越牢。现在大家是大一,可能有人会说没有电脑不方便,其实实验室不是只有在老师安排的实验时间才可以去的,它是是面向计算机专业的学生免费开放的,大家有时间就去实验机房练习,只要拿着学生证,或者干脆直接跟那个阿姨说你是计算机的就行了。航海楼7楼的机房和图书馆电子阅览室也是可以的。我大一的时候甚至还到阳光网吧编程呢。到大二大三的时候课程设计就会多起来,大家一定要自己动手做,不要去网上搜一个就完事了。与人交流,分享自己编程中的乐趣和经验,共同进步。6.3.4多阅读书籍和代码编程不是非要在电脑上才能学的,阅读书籍和书中的代码也是一种学习方式,自己还可以尝试着改进那些代码,最后可以把自己的成果拿到电脑上调试千万不要忽视书后面的习题6.3.5养成良好习惯细节很重要要细心,沉下心来编程,戒骄戒躁养成良好习惯,注重编程风格,尽量写代码注释,把写过的代码保留下来,以后会有用6.3.6善于思考遇到问题动脑筋解决6.3.7注重基础打好编程基础,除了熟悉基本的语法之外,要深刻理解指针,引用,面向过程思想,类,模板,标准库,接口,继承机制,面向对象思想等等,课后习题尽量全做一下 刚才说了,有精力的可以学学 photoshop图像处理, flash动画制作,3dmax或maya三维建模,dreamveaver网页设计,但是不要因为他们花费过多的时间而影响了你基础的学习,那些都是些应用技术,你学会了更好,不会也没什么丢人的,基础打好了,以后学啥都轻松。在基础没打好的情况下,不要觉得你编的程序只能在黑白的DOS窗口了运行就去学VC做漂亮的窗口,3d程序很有意思就去看OpenGL或DirectX,那些都属于高级应用,没有基础学起来会很吃力。基础要扎实,不要觉得C#中没有指针就扔掉C++, 不要今天看C#,明天搞java要有明确的方向,计算机技术的发展实在太快,新技术不断涌现,了解一下就可以了,不要随波逐流,要沉得住气6.3.8选好开发环境选择一种适当的开发环境并熟悉它就可以了,不要今天摆弄Visual Studio,明天钻研Eclipse,后天来个netbeans,在工具的使用的学习上白白浪费时间。6.3.9选好编程语言我在选择语言时,走过一些弯路,浪费了一些精力,我在这里选出一些主流编程语言,对语言特性与环境稍作介绍,希望可以帮助大家,让大家尽早了解与选择,少走弯路C(多用在性能要求较高的场合,如操作系统,嵌入式等)C++(应用最广泛、成熟,强大而复杂,兼有性能高和易于构建大型程序的优点,基本是衡量一个国家软件产业发达程度的核心基础)Java(著名的SUN公司推出的,面向对象、安全、跨平台、强大稳健,需要java虚拟机的支持)C#(微软推出的完全面向对象,运行在 .NET Framework 环境中新兴、易学、强大语言)Python(新兴的面向对象脚本语言,跨平台,语法清新易于使用,代码优美得像数学一样,非常容易学)PHP (目前最流行、强大、稳健的动态网站开发脚本语言,语法类似C++)ActionScript (Flash的编程脚本,最新版支持面向对象,能基于Flex开发RIA应用)除此之外,还有vb, vb.net, asp.net, jsp, asp, ruby, Javascript等这么多五花八门的语言,大家可能都会觉得眼花缭乱了。其实各种语言之间只是语法不同,编程思想都是相通的,学精一门,了解多门是上策。" 程序=算法+数据结构 " 其中并没有编程语言,说明语言只是程序员与计算机的编译器沟通的一种工具,程序员用某种语言来表达程序的逻辑结构,计算机中相应的编译器或解释器理解这种语言,编译得到二进制程序或者直接解释执行。以上这些语言我在大学前三年全部学过了,有的学得很深,有的很浅。因为人的精力毕竟有限,很多语言学过了之后根本就很少用到,几乎是白学了,现在我深深的体会到,语言并不是学得越多越好,与其泛而不精不如有针对性的先精通一门,其他的触类旁通。就大家现在的情况,希望大家把当前正在学习的C++学好,学到一定程度的时候,可以继续深入的研究C++的各种库,也可以从上面选择感兴趣的新语言学习,如果把C++基础打好了,后面的学习就会容易得多。最流行的语言不一定是最好的语言,用的人最多的语言也不一定是最好的语言。请大家记住,没有最好的语言,只有最适合某个领域的语言, 在不同的环境下选择不同的语言就可以了。6.3.10重视数据结构和算法 理论上,计算机的任何编程语言都有可能会被淘汰,随着时间的推移和计算机软硬件的飞速发展,不断会有新的语言产生和和旧的语言过时,但不会过时的是数据结构和优秀的算法。真正的高手应该是善于设计优秀的数据结构和算法的,应该是具有独立分析和解决问题的能力并利用计算机程序来实现的,他的思想应该是超脱语言、在更高处的一种升华。如果某一天,你深切的体会到,真正重要的不是什么语言而是思想的时候,说明你可以出师了。

c语言课程设计(学生成绩管理系统) 急求参考 (不要网上那些下的,别人都可以下到的!)

C语言课程设计任务书 一、题目: 学生成绩管理 二、目的与要求 1. 目的: (1)基本掌握面向过程程序设计的基本思路和方法; (2)达到熟练掌握C语言的基本知识和技能; (3)能够利用所学的基本知识和技能,解决简单的程序设计问题 2. 要求 基本要求: 1. 要求利用C语言面向过程的编程思想来完成系统的设计; 2. 突出C语言的函数特征,以多个函数实现每一个子功能; 3. 画出功能模块图; 4. 进行简单界面设计,能够实现友好的交互; 5. 具有清晰的程序流程图和数据结构的详细定义; 6. 熟练掌握C语言对文件的各种操作。 创新要求: 在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同 三、信息描述 输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求: 1)排序用一个函数实现。 2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。 3)按实验报告电子模板格式填写实验内容。 四、功能描述 1. 学生基本信息及成绩所选科目成绩的录入。 2. 基本信息的查询(分系、班级;分科目)与修改。 3. 对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率); 4. 对所开课程的成绩分析(求其平均成绩,最高分和最低分); 5. 对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息) 五、解决方案 1. 分析程序的功能要求,划分程序功能模块。 2. 画出系统流程图。 3. 代码的编写。定义数据结构和各个功能子函数。 4. 程序的功能调试。 5. 完成系统总结报告以及使用说明书 六、进度安排 此次课程设计时间为两周,分四个阶段完成: 1. 分析设计阶段。指导教师应积极引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。 2. 编码调试阶段:根据设计分析方案编写C代码,然后调试该代码,实现课题要求的功能。 3. 总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编码、测试的步骤和内容。 4. 考核阶段。 #include <stdio.h> #include <stdlib.h> #define STU_NUM 10 /*宏定义学生的数量*/ struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/ { char stu_id[20]; /*学生学号;*/ float score[3]; /*三门课成绩;*/ float total; /*总成绩;*/ float aver; /*平均成绩;*/ }; /*排序用一个函数来实现*/ void SortScore(student *stu,int n) { student stud; for(int i = 0; i < n-1; i++) for(int j = i+1 ; j < n; j++) { if(stu[i].total < stu[j].total) { stud = stu[i]; stu[i] = stu[j]; stu[j] = stud; } } } int main( ) { student stu[STU_NUM]; /*创建结构体数组中有10个元素,分别用来保存这10个人的相关信息。*/ /*输入这十个学生的相关信息*/ for(int i = 0; i<STU_NUM; i++) { printf("请输入第%d个学生的学号:",i+1); scanf("%s",&stu[i].stu_id); printf("输入第%d个学生的数学成绩:",i+1); scanf("%f",&stu[i].score[0]); printf("输入第%d个学生的英语成绩:",i+1); scanf("%f",&stu[i].score[1]); printf("输入第%d个学生的计算机成绩:",i+1); scanf("%f",&stu[i].score[2]); stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2]; stu[i].aver = stu[i].total/3; } printf(" "); SortScore(stu,STU_NUM);/*调用排序函数*/ /*输出排序后的各学生的成绩*/ for(i = 0 ; i < STU_NUM; i++) { printf("序号: %d ",i); printf("学号:%s ",stu[i].stu_id); printf("数学:%f ",stu[i].score[0]); printf("英语:%f ",stu[i].score[1]); printf("计算机:%f ",stu[i].score[2]); printf("平均成绩:%f ",stu[i].aver); printf("总分:%f ",stu[i].total); printf(" "); } return 0; } 注:(源程序中主要标识符含义说明) #define STU_NUM 10 /*宏定义学生的数量*/ struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/ { char stu_id[20]; /*学生学号;*/ float score[3]; /*三门课成绩;*/ float total; /*总成绩;*/ float aver; /*平均成绩;*/ } 实验结果: 输入 :(只输入后面的数字,前面的文字是自己产生的)。 请输入第1个学生的学号:001 输入第1个学生的数学成绩:1 输入第1个学生的英语成绩:1 输入第1个学生的计算机成绩:1 请输入第2个学生的学号:002 输入第2个学生的数学成绩:2 输入第2个学生的英语成绩:2 输入第2个学生的计算机成绩:2 请输入第3个学生的学号:003 输入第3个学生的数学成绩:3 输入第3个学生的英语成绩:3 输入第3个学生的计算机成绩:3 请输入第4个学生的学号:004 输入第4个学生的数学成绩:4 输入第4个学生的英语成绩:4 输入第4个学生的计算机成绩:4 请输入第5个学生的学号:005 输入第5个学生的数学成绩:5 输入第5个学生的英语成绩:5 输入第5个学生的计算机成绩:5 请输入第6个学生的学号:006 输入第6个学生的数学成绩:6 输入第6个学生的英语成绩:6 输入第6个学生的计算机成绩:6 请输入第7个学生的学号:007 输入第7个学生的数学成绩:7 输入第7个学生的英语成绩:7 输入第7个学生的计算机成绩:7 请输入第8个学生的学号:008 输入第8个学生的数学成绩:8 输入第8个学生的英语成绩:8 输入第8个学生的计算机成绩:8 请输入第9个学生的学号:009 输入第9个学生的数学成绩:9 输入第9个学生的英语成绩:9 输入第9个学生的计算机成绩:9 请输入第10个学生的学号:010 输入第10个学生的数学成绩:10 输入第10个学生的英语成绩:10 输入第10个学生的计算机成绩:10 输出: 序号: 0 学号:010 数学:10.000000 英语:10.000000 计算机:10.000000 平均成绩:10.000000 总分:30.000000 序号: 1 学号:009 数学:9.000000 英语:9.000000 计算机:9.000000 平均成绩:9.000000 总分:27.000000 序号: 2 学号:008 数学:8.000000 英语:8.000000 计算机:8.000000 平均成绩:8.000000 总分:24.000000 序号: 3 学号:007 数学:7.000000 英语:7.000000 计算机:7.000000 平均成绩:7.000000 总分:21.000000 序号: 4 学号:006 数学:6.000000 英语:6.000000 计算机:6.000000 平均成绩:6.000000 总分:18.000000 序号: 5 学号:005 数学:5.000000 英语:5.000000 计算机:5.000000 平均成绩:5.000000 总分:15.000000 序号: 6 学号:004 数学:4.000000 英语:4.000000 计算机:4.000000 平均成绩:4.000000 总分:12.000000 序号: 7 学号:003 数学:3.000000 英语:3.000000 计算机:3.000000 平均成绩:3.000000 总分:9.000000 序号: 8 学号:002 数学:2.000000 英语:2.000000 计算机:2.000000 平均成绩:2.000000 总分:6.000000 序号: 9 学号:001 数学:1.000000 英语:1.000000 计算机:1.000000 平均成绩:1.000000 总分:3.000000 七、撰写课程设计报告或课程设计总结 课程设计报告要求: 总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。 C语言常见错误 书写标识符时,忽略了大小写字母的区别 main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。 2.忽略了变量的类型,进行了不合法的运算。 main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。 3.将字符常量与字符串常量混淆。 char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a"和‘",而把它赋给一个字符变量是不行的。 4.忽略了“=”与“==”的区别。 在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写 if (a=3) then … 但C语言中,“=”是赋值运算符,“==”是关系运算符。如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。 5.忘记加分号。 分号是C语句中不可缺少的一部分,语句末尾必须有分号。 a=1 b=2 编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。 { z=x+y; t=z/100; printf("%f",t); } 对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。 6.多加分号。 对于一个复合语句,如: { z=x+y; t=z/100; printf("%f",t); }; 复合语句的花括号后不应再加分号,否则将会画蛇添足。 又如: if (a%3==0); I++; 本是如果3整除a,则I加1。但由于if (a%3==0)后多加了分号,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都将自动加1。 再如: for (I=0;I<5;I++); {scanf("%d",&x); printf("%d",x);} 本意是先后输入5个数,每输入一个数后再将它输出。由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。 7.输入变量时忘记加地址运算符“&”。 int a,b; scanf("%d%d",a,b); 这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。 8.输入数据的方式与要求不符。①scanf("%d%d",&a,&b); 输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法: 3,4 输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。 ②scanf("%d,%d",&a,&b); C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的: 3,4 此时不用逗号而用空格或其它字符是不对的。 3 4 3:4 又如: scanf("a=%d,b=%d",&a,&b); 输入应如以下形式: a=3,b=4 9.输入字符的格式与要求不一致。 在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。 scanf("%c%c%c",&c1,&c2,&c3); 如输入a b c 字符“a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。 10.输入输出的数据类型与所用格式说明符不一致。 例如,a已定义为整型,b定义为实型 a=3;b=4.5; printf("%f%d ",a,b); 编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。 11.输入数据时,企图规定精度。 scanf("%7.2f",&a); 这样做是不合法的,输入数据时不能规定精度。 12.switch语句中漏写break语句。 例如:根据考试成绩的等级打印出百分制数段。 switch(grade) { case "A":printf("85~100 "); case "B":printf("70~84 "); case "C":printf("60~69 "); case "D":printf("<60 "); default:printf("error "); 由于漏写了break语句,case只起标号的作用,而不起判断作用。因此,当grade值为A时,printf函数在执行完第一个语句后接着执行第二、三、四、五个printf函数语句。正确写法应在每个分支后再加上“break;”。例如 case "A":printf("85~100 ");break; 13.忽视了while和do-while语句在细节上的区别。 (1)main() {int a=0,I; scanf("%d",&I); while(I<=10) {a=a+I; I++; } printf("%d",a); } (2)main() {int a=0,I; scanf("%d",&I); do {a=a+I; I++; }while(I<=10); printf("%d",a); } 可以看到,当输入I的值小于或等于10时,二者得到的结果相同。而当I>10时,二者结果就不同了。因为while循环是先判断后执行,而do-while循环是先执行后判断。对于大于10的数while循环一次也不执行循环体,而do-while语句则要执行一次循环体。 14.定义数组时误用变量。 int n; scanf("%d",&n); int a[n]; 数组名后用方括号括起来的是常量表达式,可以包括常量和符号常量。即C不允许对数组的大小作动态定义。 15.在定义数组时,将定义的“元素个数”误认为是可使的最大下标值。 main() {static int a[10]={1,2,3,4,5,6,7,8,9,10}; printf("%d",a[10]); } C语言规定:定义时用a[10],表示a数组有10个元素。其下标值由0开始,所以数组元素a[10]是不存在的。 16.初始化数组时,未使用静态存储。 int a[3]={0,1,2}; 这样初始化数组是不对的。C语言规定只有静态存储(static)数组和外部存储(exterm)数组才能初始化。应改为: static int a[3]={0,1,2}; 17.在不应加地址运算符&的位置加了地址运算符。 scanf("%s",&str); C语言编译系统对数组名的处理是:数组名代表该数组的起始地址,且scanf函数中的输入项是字符数组名,不必要再加地址符&。应改为: scanf("%s",str); 18.同时定义了形参和函数中的局部变量。 int max(x,y) int x,y,z; {z=x>y?x:y; return(z); } 形参应该在函数体外定义,而局部变量应该在函数体内定义。应改为: int max(x,y) int x,y; {int z; z=x>y?x:y; return(z); } C语言心得体会 通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。 这次实训是老师给了范例程序,经过自己的改写,实现要求。先做简单的输出,一步步的再做其它图案,在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。在具体操作中对这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。 通过实际操作,学会 C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”……的寓意。 计时在此希望以后应多进行这样的实训,加长设间,培养学生独立思考问题的能力,提高实际操作水平。 八、参考资料 :《C语言程序设计教程》

c语言课程设计报告模板

我去年自己写过一份课程设计报告,我已经把我写的这份发给你了,你可以参考一下,我当时做的设计是烟花绽放,跟你做的不一样,所以没把我的源代码给你

用C语言课程设计—职工工资管理系统(分别用结构体数组和链表编写程序)

class Fuck(){private:string shop;int num;string name;float base_salary;float post_salary;float bonus;float deal_salary;float fund;float tax;float fact_salary;void fact_salary(float mbase,float mpost,float mbonus,float mdeal,float mfund,float mtax);public:void input(string mname,string mshop,int mnum,string mname,float mbase,float mpost,float mbonus,float mdeal,float mfund,float mtax);void renew(float mbase,float mpost,float mbonus,float mdeal,float mfund,float mtax);void sort(Fuck & sth);void show();}

求一份C语言课程设计报告要求包括:系统需求分析,总体设计,详细设计,程序调试分析。

发给你了邮箱里