c语言实训报告88387
- 格式:doc
- 大小:69.50 KB
- 文档页数:22
c语言实习报告一、引言这是关于我在某某公司C语言实习的报告。
在这次实习中,我深入学习了C语言的基础知识,并将其运用于实际项目中。
通过这次实习,我对C语言的应用有了更深入的理解,并且掌握了一些实践技巧。
在接下来的报告中,我将介绍我在实习期间所参与的项目以及使用到的技术。
二、项目一:命令行程序开发在实习的第一个项目中,我参与了一个命令行程序的开发。
这个程序主要用于对一份数据进行处理和分析,并输出结果。
在这个过程中,我学习了如何使用C语言处理文件输入输出,以及如何使用数组和指针进行数据处理。
在程序的开发过程中,我遇到了许多挑战。
一个重要的挑战是如何高效地处理大量的数据。
为了解决这个问题,我运用了C语言提供的一些优化技巧,如使用适当的数据结构和算法,以及使用并行编程的方法。
通过这些优化,我成功地提高了程序的性能,并且在给定的时间内完成了任务。
三、项目二:图形界面开发在接下来的项目中,我参与了一个图形界面的开发工作。
这个项目要求我使用C语言和图形库来设计一个用户友好的界面,并实现一些基本的交互功能。
通过这个项目,我了解了如何使用C语言和图形库来创建窗口、按钮、文本框等界面元素,并且掌握了一些常用的交互功能实现方法,如响应按钮点击事件、处理用户输入等。
在这个项目中,我也遇到了一些问题。
其中一个问题是如何优化界面的渲染速度,以确保用户能够流畅地使用程序。
为了解决这个问题,我采用了一些优化技巧,如减少不必要的界面刷新、使用双缓冲技术等。
通过这些优化,我成功地提高了界面的渲染速度,并且使用户能够更加舒适地使用程序。
四、总结与展望通过这次C语言实习,我不仅夯实了自己的C语言基础知识,还学习了许多实践技巧和解决问题的方法。
在项目中,我不仅学会了如何使用C语言处理文件输入输出、如何使用数组和指针进行数据处理,还学习了如何使用C语言和图形库开发图形界面,并实现一些基本的交互功能。
这次实习不仅让我更加熟练地掌握了C语言,还培养了我解决问题和提高效率的能力。
c语言实习心得体会范文在C语言实习期间,我深深感受到了理论知识与实践应用之间的差距,也感受到了自己在C语言编程方面的不足之处。
通过这段实习经历,我不仅学到了许多新的知识和技能,还培养了自己的动手实践能力和解决问题的能力。
<br>首先,在实习期间,我了解到了C语言的基础知识,包括变量、常量、运算符、数据类型等。
这些基础知识是我进一步学习和应用C语言的基础,也为后面的实践提供了基础。
同时,我也学习了C 语言的控制结构,包括顺序结构、选择结构和循环结构等。
这些结构的运用使我的程序更加灵活和高效,也使我在实践中能够更好地解决问题。
其次,在实习中,我学会了使用C语言进行程序的设计和编写。
通过实际动手编写程序,我不仅加深了对C语言的理解,还提高了我的编程能力。
在编程过程中,我学会了使用不同的函数和语句来实现不同的功能,包括输入输出、算术运算、条件判断、循环控制等。
这些功能的运用使我的程序更加完善和实用,也使我在实践中能够更好地解决问题。
在实习期间,我遇到了许多难题和困惑,但通过与同事和老师的探讨和交流,我逐渐找到了解决问题的方法和思路。
在与他们的交流中,我了解到了许多实践经验和技巧,也学到了许多新的知识和技能。
通过这次实习,我更加深入地了解了C语言的应用和发展,也提高了自己的实践能力和解决问题的能力。
最后,在实习期间,我养成了良好的编程习惯和工作态度。
在编程过程中,我注重代码的规范和格式,力求使代码易读易懂,并进行了详尽的注释。
同时,我也注重团队合作,在与同事和老师合作的过程中,我积极互助,共同解决问题。
在实践中,我学会了合理安排时间和资源,提高自己的工作效率。
通过这次C语言实习,我不仅学到了许多新的知识和技能,还提高了自己的实践能力和解决问题的能力。
在今后的学习和工作中,我将继续努力学习和应用C语言,在实践中不断提高自己的编程能力和解决问题的能力。
我相信,通过不断学习和努力,我将会在C语言编程方面取得更好的成绩。
C语言程序设计实训报告一、实训背景介绍本次实训是为了提高学生的C语言编程能力,培养学生解决实际问题的能力,加强学生的动手能力和团队合作能力。
实训内容主要包括C语言的基础知识和常用库函数的使用,以及通过编写实际的小项目来巩固所学知识。
二、实训过程及成果1.实训过程本次实训总共经历了三个阶段:知识学习、编程实践和项目开发。
(1)知识学习阶段:在这个阶段,我们通过教材和课堂上的讲解学习了C语言的基本语法、数据类型、运算符、流程控制语句等基础知识,并学习了常用库函数的使用。
(2)编程实践阶段:在这个阶段,我们通过一系列的编程练习来巩固所学知识。
通过编写简单的程序,我们学会了如何使用C语言的基本语法和常用库函数来解决实际问题。
(3)项目开发阶段:在这个阶段,我们分小组进行项目开发。
每个小组由3-5名学生组成,负责编写一个小型的C语言项目。
项目的内容可以是游戏、学生管理系统、图书管理系统等等。
我们需要在规定的时间内完成项目的需求分析、设计、编码和测试工作,并提交最终的项目成果。
2.实训成果通过本次实训,我掌握了C语言的基本语法和常用库函数的使用,并且通过实际的编程练习和项目开发锻炼了自己的编程能力和解决实际问题的能力。
在项目开发的过程中,我学会了如何进行需求分析和设计,并能够合理地组织代码结构和调试程序。
三、实训心得体会通过这次实训,我深刻地认识到了编程是一项需要耐心和毅力的工作。
在编写代码的过程中,经常会遇到各种各样的问题,需要不断地调试和修改。
同时,编程还需要良好的团队合作能力,只有团队成员之间的密切配合和良好的沟通,才能顺利地完成项目。
通过这次实训,我不仅提高了自己的编程能力,还锻炼了自己的动手能力和团队合作能力。
在以后的学习和工作中,这些经验和能力无疑会给我带来很大的帮助。
我相信,只要持之以恒地继续努力,我一定能够在C语言编程方面有所突破。
四、总结与展望通过这次实训,我对C语言的掌握更加深入,掌握了一些常用的编程技巧和方法。
C语⾔见习报告6篇C语⾔是⼀种计算机程序设计语⾔,属⾼级语⾔范畴。
它既具有⾼级语⾔的特点,⼜具有汇编语⾔的特点。
通过见习做⼀报告,本⽂是C语⾔见习的报告,仅供参考。
C语⾔见习报告⼀:班级:姓名:实验名称:电话订餐信息处理实验⽬的:题⽬要求:⼀个⼩饭馆的⽣意⾮常红⽕,要想⽤餐必须提前⼀天打电话预订,假设我们是饭馆负责接受电话预订的服务员,我们需要做些什么呢?⾸先,需要准备⼀张⼤⼩适当的⽩纸,等待顾客的电话。
李红最先打进了电话,她预约第2天中午12点⽤餐,⽤餐⼈数5⼈,服务员在纸上做了如下记录:“李红 12点 5⼈”;接着,刘娜、汪涵、孙杰和赵君分别来了电话,服务员根据他们的要求做了记录,此时纸上记录的内容是:李红 12点 5⼈刘娜 11点 2⼈汪涵 11点20分 3⼈孙杰 10点30分 5⼈赵君 13点20分 6⼈孙杰随后⼜来电话,将⽤餐时间推后⼀个⼩时,那么记录的内容也应该做相应的修改。
刘娜来⽤餐以后,可以将其信息从纸上划去编写程序处理电话订餐的情况实验步骤:⾸先建⽴结构体类型,然后函数声明,编写主函数,定义函数,调⽤函数。
完成后,对程序进⾏调试,确定所编写的程序是否能够运⾏。
实验内容:#include#include#define max 30struct guest{ intnum;char name[40];char time[20];int sum;}guestlink[max];void insert(int _p);void inquire(int);void change(int);void dele(int _p);void show(int);void main(){ inti;int count=0;do{0printf("1.......插⼊\n");printf("2.......查询\n");printf("3.......修改\n");printf("4.......删除\n");printf("5.......显⽰\n");printf("6.......退出\n");scanf("%d",&i);switch(i){case 1: insert(&count);break; case 2: inquire(count);break; case 3: change(count);break; case 4: dele(&count);break; case 5: show(count);break; case 6:break;default:printf("输⼊错误!");break; }}while(i!=6);}void insert(int _p){ inti,number;if(_p==max){ printf("⽤餐已满\n");return;} printf("请输⼊编号:");scanf("%d",&number);for(i=0;i<_p;i++)if(guestlink[i].num==number) { printf("已有相同的编号");return;} guestlink[i].num=number;printf("请输⼊姓名:");scanf("%s",guestlink[i].name); printf("请输⼊⼈数:");scanf("%d",&guestlink[i].sum); printf("请输⼊⽤餐时间:");scanf("%s",guestlink[i].time); (_p)++;}void inquire(int p){ inti,number,flag=1;printf("请输⼊要查询的编号");scanf("%d",&number);for(i=0;iif(guestlink[i].num==number){ printf("姓名:%s",guestlink[i].name);printf("⽤餐时间:%s",guestlink[i].time);printf("⼈数:%d\n",guestlink[i].sum);flag=0;}if(i>=p&&flag==1) printf("所查询的编号不存在"); }void change(int p){ inti,number,flag=1;printf("请输⼊要修改的编号");scanf("%d",&number);for(i=0;iif(guestlink[i].num==number){ printf("请输⼊姓名:");scanf("%s",guestlink[i].name);printf("请输⼊⽤餐时间:");scanf("%s",guestlink[i].time);printf("请输⼊⼈数:");scanf("%d",&guestlink[i].sum);flag=0;}if(i>=p&&flag==1) printf("所查询的编号不存在"); }void dele(int _p){ inti,j,number,flag=1;printf("请输⼊要删除的编号");scanf("%d",&number);for(i=0;i<_p&&flag;i++)if(guestlink[i].num==number){for(j=i;j<_p-1;j++)guestlink[j]=guestlink[j+1];flag=0;(_p)--;}if(i>=_p&&flag==1) printf("输⼊的编号不存在");}void show(int p){ inti;printf("编号姓名⽤餐时间⼈数\n ");for(i=0;i{ printf("%d",guestlink[i].num);printf("%8s",guestlink[i].name);printf("%8s",guestlink[i].time);printf("%8d\n",guestlink[i].sum);}}实验结果:实验体会:通过这次实践让我觉得⽤C语⾔在⽣活中的应⽤占有很⼤的⽐重,这次编程,让我体会到了学习C语⾔的乐趣,以及运⽤c语⾔给⼈们带来的⽅便。
c语言实验报告c语言实验报告5篇随着社会一步步向前发展,我们使用报告的情况越来越多,我们在写报告的时候要注意涵盖报告的基本要素。
其实写报告并没有想象中那么难,以下是小编收集整理的c语言实验报告,欢迎阅读与收藏。
c语言实验报告1学号:__________ 姓名:__________ 班级:__________ 日期:__________指导教师:__________ 成绩:__________实验六综合实验一、实验目的1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。
2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。
3、掌握C程序的运行、调试方法等。
二、实验内容编写一个学生信息排序程序。
要求:1、程序运行时可输入n个学生的信息和成绩(n预先定义)。
2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。
3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。
1、使用函数方法定义各个模块。
三、实验步骤与过程物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板四、程序调试记录c语言实验报告2第一章基础掌握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语言程序设计的基本框架,能够编写简单的程序。
C语言实训总结报告范文(通用5篇)在经济飞速发展的今天,报告的适用范围越来越广泛,报告包含标题、正文、结尾等。
一听到写报告马上头昏脑涨?以下是小编整理的C语言实训总结报告范文,仅供参考,希望能够帮助到大家。
C语言实训总结报告篇1这个星期,我们迎来了C语言实训——一次至为重要的实训。
在这个星期里,同学们都很认真的做着那20多道实训题目,遇到不懂的互相请教,或请问老师。
非常感谢老师对我们的帮助,这次实训使我受益匪浅,收获了很多。
通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
C语言课程实习(优秀范文5篇)第一篇:C语言课程实习课程实习一、C程序上机操作方法及运行环境编写一个C程序,输入a, b, c,d四个值,输出其中最小者。
#includemain(){int a,b,c,d,t;printf(“Please input numbers:”);scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);t=min(min(min(a,b),c),d);printf(“min number is:%dn”,t);}int min(int x,int y){int z;if(xz=x;elsez=y;return(z);}运行结果:Please input numbers:4,6,3,9min number is:3课程实习二、C程序上机操作方法及运行环境从键盘输入三个字符,要求输出这三个字符,并输出它们的ASCII 码及其ASCII码的平方根和的平方。
#include#includevoid main(){char ch1,ch2,ch3;float t;scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);t=sqrt(ch1)+sqrt(ch2)+sqrt(ch3);printf(“%c,%dn”,ch1,ch1);printf(“%c,%dn”,ch2,ch2);printf(“%c,%dn”,ch3,ch3);printf(“%fn”,t*t);}运行结果:a,b,ca,97b,98c,99881.984683课程实习三、循环结构程序设计1)输入两个正整数m和n;2)如果m=n输出最大公约数m程序结束;3)若m>n则m=m-n否则n=n-m;4)返回到2)(循环)。
#includevoid main(){int m,n;scanf(“%d%d”,&m,&n);while(m!=n){if(m>n)m=m-n; else n=n-m;}printf(“%dn”,m); }运行结果:34,24课程实习四、循环结构程序设计打印下面的图案# # # # ## # # ## # ## ##includevoid main(){int i,j;for(i=1;i<=4;i++) {for(j=1;jprintf(“ ”);for(j=5;j>=i;j--) printf(“*”); putchar('n');}}课程实习五、数组的应用输入一个0到150之间的十进制整数,要求把此数转化为二进制形式。
C语言程序设计实习报告一、实习目的1. 巩固和加深对C语言程序设计的理解。
2. 掌握C语言编程的基本技巧和方法。
3. 提高分析问题、解决问题的能力。
4. 学会将理论知识应用于实际编程中。
二、实习内容XXX语言基础语法练习变量、数据类型、运算符、表达式等基础语法练习。
控制结构(顺序、分支、循环)的实现。
函数的定义和调用方式练习。
2. 模块化程序设计将一个大的程序分解成多个模块,每个模块完成特定的功能。
通过模块间的调用和传递数据来实现整个程序的功能。
3. 文件操作与文件读写文件的打开、关闭、读写操作练习。
文件格式的转换和数据统计处理。
4. 预处理指令与宏定义使用预处理指令进行条件编译和宏定义替换。
练习使用常见的预处理指令如include、define、ifdef等。
5. 结构体、链表与指针结构体的定义和使用。
链表的创建、插入、删除、遍历等操作。
指针的概念和指针运算。
深入理解指针与数组、结构体等数据结构的关系。
6. 位运算与嵌入式系统编程学习位运算符的使用和位段操作的实现。
嵌入式系统的基本概念和编程方法。
7. 综合项目实践参与或独立完成一个综合性C语言程序设计项目。
项目可以包括基于命令行参数的程序设计、基于文件操作的程序设计、基于网络编程的程序设计等。
三、实习过程1. 理论学习:通过教材、网络资源等途径学习C语言的基础知识和编程技巧。
2. 上机实践:在计算机上编写和调试C语言程序,不断巩固所学知识。
3. 问题解决:遇到问题时,通过查阅资料、请教老师或同学等方式解决问题。
4. 团队合作:在小组项目中与他人协作,共同完成任务。
四、实习收获1. 知识技能方面:深入理解了C语言的基本概念和编程技巧,掌握了模块化程序设计和文件操作等常用算法。
2. 解决问题能力方面:学会了如何分析问题、寻找解决方案并通过实践验证解决方案的正确性。
3. 团队协作能力方面:学会了与他人合作,共同完成任务,提高了团队协作能力。
4. 职业素养方面:培养了耐心、细致的工作态度和勇于尝试、敢于创新的探索精神。
c语言实习报告3篇c语言实习报告1在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的.学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
c语言实习报告在这个信息科技高速发展的时代,掌握一门编程语言已经成为了必不可少的技能之一。
作为计算机科学专业的学生,我有幸参加了一次关于C语言的实习,这次实习不仅让我深入了解了C语言的基本原理和应用,还让我体验到了编程的乐趣和挑战。
实习的第一天,我们首先进行了一些基础的理论学习。
老师向我们介绍了C语言的起源和发展历程,以及C语言在计算机科学领域中的重要性。
我们还学习了C语言的基本语法和数据类型,如变量、数组、指针等。
这些基础知识为我们后续的实践操作打下了坚实的基础。
在理论学习之后,我们开始进行实践操作。
我们使用C语言编写了一些简单的程序,如计算两个数的和、求一个数的平方等。
通过这些简单的程序,我们熟悉了C语言的编写规范和调试技巧。
在实践过程中,我遇到了许多问题,但通过与同学和老师的讨论,我逐渐解决了这些问题,并提高了我的编程能力。
实习的第二天,我们进行了更加复杂的编程任务。
我们被要求编写一个学生成绩管理系统,可以实现学生信息的录入、查询和删除等功能。
这个任务对我来说是一个巨大的挑战,因为我之前从未接触过如此复杂的编程任务。
然而,通过与同学的合作和老师的指导,我最终完成了这个任务,并且在实习结束时,我成功地演示了这个学生成绩管理系统。
通过这次实习,我不仅学到了C语言的基本知识和技巧,还锻炼了我的团队合作能力和解决问题的能力。
在实践过程中,我深刻体会到了编程的乐趣和挑战。
每当我编写出一个能够正常运行的程序时,我感到非常的满足和自豪。
而当我遇到问题时,我学会了不断尝试和寻求帮助,最终解决了问题。
这种经历让我更加坚定了我学习编程的决心。
除了技术方面的收获,这次实习还让我认识到了编程的广阔应用领域。
C语言作为一种通用的编程语言,被广泛应用于操作系统、嵌入式系统、游戏开发等领域。
通过实习,我了解到了C语言在这些领域中的重要性和应用场景,这对我未来的职业发展起到了积极的指导作用。
总结起来,这次C语言实习给了我一个宝贵的机会,让我深入了解了C语言的基本原理和应用。
《C语言程序设计》实训报告课题名称:学生成绩管理系统专业:软件技术班级:软件A091学号: 2009145006姓名:刘好青指导教师:王云晓2010-7-2目录一课程设计目的 (2)二课程设计题目 (3)三课程设计报告内容 (3)四总结 (7)五心得与感想 (8)六附录:(源程序) (10)一、课程设计的目的(1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。
(2)掌握C的基本概念和基础知识。
(3)通过训练能够读懂较为复杂的C语言源程序并具备基本C语言程序设计的能力。
(4)熟练掌握各种常用类的定义,继承,文件的应用,为更好的理解面向对象打下更好的基础。
(5)通过实训,培养自己编写、调试、分析大型应用程序的能力。
(6)掌握面向对象的基本原理,提高学生综合程序设计的能力。
(7)培养自己独立解决问题,查找资料的能力。
同学之间相互帮助,相互交流,相互合作的团队精神。
(8)培养自己良好的学习兴趣,独立的编程风格。
(9)通过实训检查自己学习上的不足,达到熟练掌握C语言的基本知识和技能。
(10)《C语言程序设计》是计算机专业重要的课程,C语言功能丰富、表达能力强,使用灵活方便、可以编写实用的应用软件。
(11)灵活使用C语言进行程序编写,巩固有关语句,变量定义、输入、输出、结构体,指针、文件操作等概念和方法。
(12)提高调试程序的技能,提高软件编写的能力。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。
二、课程设计的题目:学生成绩管理系统三、课程设计报告内容1.学生成绩数据包括:学号,姓名,语文,数学,英语,总分2.使用结构体数组存放学生成绩.typedef struct stud /*学生成绩数据结构*/{char id[10];Char name[20];Int yuwen;Int shuxue;Int yingyuInt totalscore;}stud;stud st[N]; /* 学生成绩数组*/#define N 603.实现功能:●输入数据●删除数据●查询数据●修改数据●显示数据●数据可保存在文件中●数据可从文件中读出●有命令菜单提示4.编写的程序要求完整实现功能,用户介面友好,程序运行可靠。
5. 设计的步骤(1)需求分析:了解基本原理,确定软件的基本功能,查找相关资料;(2)总体设计:确定软件的总体结构、模块关系和总体流程;(3)详细设计:确定模块内部的流程和实现算法。
(4)上机编码和调试;(5)实际数据运行测试。
6.各个功能模块和函数命名7.各个功能模块介绍:(1).输入成绩指定班级名称和学期输入若干条记录添加存入指定成绩文件尾部(2).删除某同学的成绩信息指定班级名称和学期输入学生的学号打开该班该学期的成绩文件读入所有数据查找指定学号的成绩记录,找到则删除该记录把所有数据写回原数据成绩文件(3). 查询某学生成绩指定班级名称和学期输入学生的学号打开该班该学期的成绩文件读入所有数据查找指定学号的成绩记录并显示该记录(4). 修改某学生成绩指定班级名称和学期输入学生的学号打开该班该学期的成绩文件读入所有数据查找指定学号的成绩记录,找到显示该记录输入该生正确的成绩把所有数据写回原数据成绩文件(5). 退出系统8.处理流程学生成绩系统主界面模块流程图四.总结学生成绩管理系统的编写,看似杂乱无头绪,实际上却并不如此。
它的每一个功能都能分成模块,有句话说的好,大事化小,小事化了。
C语言编程也正式如此,把一个大的程序分为若干相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,这样不仅降低了难度还使得思路清晰,很容易编写出要做的程序,从而为设计一些较大的软件打下了良好的基础。
分析问题:学生成绩管理的整体功能都包括输入数据、删除数据、查询数据、修改数据、显示数据五大板块。
设计的数据对象包括整形:各科成绩和总成绩字符型:姓名、学号。
程序的编译与运行:(1)查找错误是一件让人闹心的事,但是要注重技巧,注意平时经验的积累。
才能在最快的时间找出错误(2)用心去查找,也许你会发现错误并不是很难找(3)程序编译成功不要满足现状,要积极测试程序的可用性,对功能不理想,存在缺点的地方,积极的改进,完善。
五.心得与感想一周的C语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!首先,在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们本学期学习的重点知识。
在做题的过程中让我们把这些知识复习了一遍,强化了知识!其次,这次作中所碰到的题目,在实训中已经接触过,所我们都比较深知这些题目的要求和算法,因次在编写小程序时比较快,而且算法也是比较简化,运算准确。
鉴次我明白很多编程题要经过多次编写修改与调试,才会得到最简略的算法。
再次,平时我们学C语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。
但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!虽然我这次是编写一个菜单的程序,但是如果我么留心的话,我们身边有许多电子设备都是内置有程序的,我们也可以在此次专题实训过后,自行确定其他的专题进行编写程序,这样可以让我们的知识更加深化丰富!这次实训似乎是对我巨大的考验,程序在不慌不忙的进行着,按照我自身的进度,提前完成是没有问题的,但是很多客观条件让我不得不在最后的时间里才上交的作业。
每当我把程序写完以后,却由于每一台电脑的识别格式不一样而导致我所写的文件一次次的被损坏,尽管这样,我仍然没有放弃,最后还赶在截止时间到来之前上交了我的作业!这一次编写大作业的程序又让我感受到学程序可以锻炼缜密的思维了。
因为平时练习的都是小程序,所以句段比较少,一些错误都很容易被检查出来,但是这次实训却是上百段的语句,难以检查,似乎也没有经验去怎么检查,那一刹那感觉到很急,但又不知如何是好,可是又不轻易的向老师询问,因为好像蛮简单,相信自己能够检查出来,所以我一般都是独立思考的完成的,只有少部分是在老师和与同学讨论下完成的。
在编写程序中,真的是细节决定成败,因为不管程序的语句是多是少,但是只要有一条语句或语法不正确,就不能使程序得到所需要的结果。
没能够使自己编写出来的程序等到想要的结果,意味着这是一个不理想的程序,对于本次编写来说则是失败的。
在实训过程中,使我良好的锻炼了自己,首先是兴趣方面,通过编写通讯录管理系统使我更加喜欢编程,使我从以前的迷茫状态中解脱出来,使我了解了编程的真正意义。
我想这对我以后的人生有着很大的帮助。
其次通过编写通讯录管理系统使我对写程序有了一定的思路,不像以前无从下手,使我理解了算法的意义,使我懂得了模块化思想的好处。
通过一个星期的编写代码,使我对书本上的知识有了更深的理解,甚至有很多不懂的问题在这过程中自然而然的理解了。
对期末考试更有了信心。
在黄爽老师的悉心指导下,我对C语言有了更深刻的理解,对程序的算法,数据的定义,程序的改错等方面的能力有了很大提高,自身的注意力,耐心,和对编程的兴趣有了很大增长,使我获益匪浅。
六.C语言源程序#include "string.h"#include "stdlib.h"#include "stdio.h"#include "ctype.h"#define N 60typedef struct stud{char id[10];char name[20];int yuwen;int shuxue;int yingyu;int totalscore;}stud;stud st[N];int menu_select();void add_class_term_score();void class_term(char filename[20]);int inputscore(stud st[],char filename[]);void addtotext(stud *st,int i,char filename[20]); int inputfromtext(stud *st,char filename[20]);void writetotext(stud *st,int i,char filename[20]); void delect_a_record();int queryrecord(stud st[],int n,char num[10]);void deleterecord(stud st[],int n,int i);void query_a_record();void revise_a_record();void creatfile();main(){for(;;){switch (menu_select()){case 1:creatfile();break;case 2:add_class_term_score();break;case 3:delect_a_record();break;case 4:query_a_record();break;case 5:revise_a_record();break;case 0:printf("\tHave a good luck!Bye-Bye!\n "); system("pause");exit(0);}}}int menu_select(){char c;do{system("cls");printf("\t****学生成绩管理系统****\n");printf("\t | 1.创建文件 | \n");printf("\t | 2.输入数据 | \n");printf("\t | 3.删除数据 | \n");printf("\t | 4.查询数据 | \n");printf("\t | 5.修改数据 | \n");printf("\t | 0.退出 | \n");printf("\t**************************************\n"); printf("\tGIVE YOUR CHOICE(0-5):");c=getchar();}while (c<'0'||c>'5');return(c-'0');}void add_class_term_score(){int number;stud st[N];char filename[20];class_term (filename);printf("输入若干学生成绩\n");number=inputscore(st,filename);addtotext(st,number,filename);}void class_term(char filename[20]){char class[10],term[2];printf("\n input classname and term :");scanf("%s",class);scanf("%s",term);strcat(class,"_");strcpy(filename,class);}int inputscore(stud st[],char filename[]){int i=0;char sign='Y';while(sign!='n'&&sign!='N'){printf("\tstudent\'s id:");scanf("%s",st[i].id);printf("\tstudent\'s name:");scanf("%s",st[i].name);printf("\tstudent\'s yuwen:");scanf("%s",st[i].yuwen);printf("\tstudent\'s shuxue:");scanf("%s",st[i].shuxue);printf("\tstudent\'s yingyu:");scanf("%s",st[i].yingyu);gets(filename);st[i].totalscore=st[i].yuwen+st[i].shuxue+st[i].yingyu;printf("\n input any more records?(Y/N)");scanf("%c",&sign);i++;}return (i);}void addtotext(stud *st,int n,char filename[20]) {int i=0;FILE *fp;printf("write records to text file.\n"); if ((fp=fopen(filename,"ab"))==NULL){printf("cann\'t open the file\n"); system("pause");return;}while (i<n){fwrite(&st[i],sizeof(stud),1,fp);i++;}fclose(fp);printf("successed!\n");}int inputfromtext(stud *st,char filename[20]) {int i=0,num;FILE *fp;if((fp=fopen(filename,"rb"))==NULL){printf("cann\'t open the file\n");system("pause");return(0);}while(!feof(fp)){fscanf(fp,"%s%s%d%d%d%d",st[i].id,st[i].name,&st[i].yuwen,&st[i].shuxue,&st[i].yingyu,&st[i].totalscore);i++;}fclose(fp);printf("successed!\n");system("pause");return(i);}void writetotext(stud *st,int n,char filename[20]){int i=0;FILE *fp;if((fp=fopen(filename,"rb"))==NULL){printf("cann\'t open the file\n"); system("pause");return;}fprintf(fp,"%d\\n",n);while(i<n){fwrite(&st[i],sizeof(stud),1,fp);i++;}fclose(fp);printf("successed!\n");}void delect_a_record(){char filename[20],stuid[10],ch;stud st[N];FILE *fp;int n,i;class_term(filename);printf("输入删除的学生的学号\n");scanf("%s",stuid);n=inputfromtext(st,filename);i=queryrecord(st,n,stuid);if (i>=0)printf("确认删除吗?Y\N");ch=getchar();if(ch=='Y'||'y')deleterecord(st,n,i);writetotext(st,n-1,filename);}int queryrecord(stud st[],int n,char num[10]){int i=0;while(strcmp(st[i].id,num)!=0&&i<n) i++;if (i==n){printf("not find!\n");return(-1);}printf("his(her) name is %s\n",st[i].name);printf("his(her) score is : yuwen=%5d shuxue=%5d yingyu=%5d totalscore=%d\n",st[i].yuwen,st[i].shuxue,st[i].yingyu,st[i].totalscore);return(i);}void deleterecord(stud stud[],int n,int i){int j;if(i<1||i>n-1){printf("位置错误\n");return;}for(j=i;j<n-1;j++){strcpy(stud[j].id,stud[j+1].id);strcpy(stud[j].name,stud[j+1].name);stud[j].yuwen=stud[j+1].yuwen;stud[j].shuxue=stud[j+1].shuxue;stud[j].yingyu=stud[j+1].yingyu;stud[j].totalscore=stud[j+1].totalscore; }printf("delete successed!\n");return;}void query_a_record(){ char filename[20],stuid[10];stud st[N];FILE *fp;int n,i;class_term(filename);printf("输入查找学生的学号\n");scanf("%s",stuid);n=inputfromtext(st,filename);queryrecord(st,n,stuid);}void revise_a_record(){char filename[20],stuid[10];stud st[N];FILE *fp;int i,n;class_term(filename);printf("输入需要修改的学生学号\n");scanf("%s",stuid);n=inputfromtext(st,filename);i=queryrecord(st,n,stuid);if(i>0)printf("输入正确的成绩\n");printf("\tstudent\'s id:");scanf("%s",st[i].id);printf("\tstudent\'s name:");scanf("%s",st[i].name);printf("\tstudent\'s yuwen:");scanf("%s",st[i].yuwen);printf("\tstudent\'s shuxue:");scanf("%s",st[i].shuxue);printf("\tstudent\'s yingyu:");scanf("%s",st[i].yingyu);gets(filename);st[i].totalscore=st[i].yuwen+st[i].shuxue+st[i].yingyu;writetotext(st,n,filename);}void creatfile(){FILE *fp;if( (fp=fopen( "baibai.txt", "wb"))==NULL) {printf( "文件创建失败\n" );return;}fclose( fp );}。