中国地质大学C语言上机实习报告
- 格式:doc
- 大小:386.50 KB
- 文档页数:19
设计报告一,实验目的:通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。
在实习中通过实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知识点。
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点,上机实习可以帮助我们更好地理解这种结构式的中级语言以及其各式各样的数据类型和高效率的运算程序,为我们进一步学习C++打下坚实基础。
同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而且也让我们发现了一些自己的个人误区以及其他人容易犯的错误,从而在今后的学习中更加谨慎,达到事半功倍的效果;通过询问老师,也让我们养成了不耻下问的好习惯,这将很有利于以后的学习。
闲乐-一个人闲。
不如大家一块儿乐二,总体设计:1,学生成绩排名1,流程图:假<通过冒泡法对数组进行排序><测试时由于循环语句循环次数的错误导致部分数据没有排序,修改FOR语言中的条件即可调试成功>2,程序:#include<>int main(){i nt a[11],i,j,t,b,c,temp1,temp2,temp3;赋I 由0变到8执行9次循环进行9-I 次比较 真a[j]>a[I+I]假输出a[0]到a[9]I I=0输I=0I 赋I 由0变到n-1执行n 次循环 进行n-1-I 次比较 真 a[j]>a[I+I]假 输出a[0]到a[n-1] 输I=0I 赋输入 a I 由0变到n-1执行n 次循环 进行n-1-I 次比较 真 a[j]>a[I+I]假 Styl Style I 由0变到n-1执行n 次循环 进行n-1-I 次比较 真 a[j]<a[I+I]假 输出a[0]到Return 0umber);p rintf("name:"); ame);f or(j=0;j<3;j++){printf("score %d:",j+1);s canf("%d",&student[i].score[j]);}s tudent[i].average=(student[i].score[0]+student[i].score[1]+student[i].score[2])/;p rintf("average:%f",student[i].average);}p rintf("\n");p rintf("输出数学成绩最高的学生的学号、姓名、以及该门课程的成绩:\n"); core[0]){ max_math=student[i].score[0];max_i=i;}}printf("number=%s,name=%s,max_math=%d\n",student[max_i].number,student[max_i].name,student[max_i].score[0]);printf("输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:\n");f or(i=0;i<10;i++){if(max_chinese<student[i].score[1]){ max_chinese=student[i].score[1];max_i=i;}}printf("number=%s,name=%s,max_chinese=%d\n",student[max_i].number,student[max_i].name,student[max_i].score[1]);printf("输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:\n");f or(i=0;i<10;i++){if(max_english<student[i].score[2]){max_english=student[i].score[0];max_i=i;}}printf("number=%s,name=%s,max_english=%d\n",student[max_i].number,student[max_i].name,student[max_i].score[2]);printf("输出三门课程的平均分数最高的学生的学号、姓名及其平均分:\n"); verage){ max_average=student[i].average;max_i=i;}}printf("number=%s,name=%s,max_average=%f\n",student[max_i].number,student[max_i].name,student[max_i].average);for(i=0;i<9;i++) verage<student[j+1].average){t=student[j].average;student[j].average=student[j+1].average;student[j+1].average=t;}p rintf(" number name math Chinese English average\n");for(i=0;i<10;i++) umber,student[i].name,student[i].score[0],student[i].score[1],student[i].score[2],student[i].average);return 0;1,运行结果:11。
C语言上机实验报告经过了九周的上机练习,我们算是完成了阶段性的胜利,从书本上枯燥的知识,通过上机练习把他们学以致用,融会贯通;不得不说,上机对于大一不允许带电脑,算得上是对c语言巩固和提高的重要途径了,很多我们不懂得问题,通过敲一下代码就知道可不可以这样了。
还有很多格式,看不懂的代码,也都能解决。
另外,重要的是通过上机我也拾得了编程的乐趣,链接好的程序就像是我的Baby,一节课生好几个。
这是一种莫大的成就感。
原来我还可以这样。
如果仅是书本上的知识,我很难保证能坚持看下去,因为要把抽象的东西阐述出来,很多时候都是很枯燥的。
所以上机便是这样一个辅助的途径。
下面是我这九周所积累的一些问题和经验。
1.首先就是书写的问题。
到现在我还时不时忘了加分号。
这么一个细微的问题有时候会报很多错。
其中易犯的便是scanf中&的使用,以及&&逻辑运算符和位运算符不分,==错写=,自定义函数,声明时不加分号,do,while语句while后忘加分号,以及数组不从a[0]开始写,for循环中控制条件用<还是<=,于是就会溢出。
2.printf里格式的问题,想要在数前补0整数可以靠.num而浮点数需要前加0,对于输出无符号16进制数%x,八进制数%o和十进制%u,总是记不住,还有一个比较特别的是可以用*占位,然后在后面的参数中说明精度和宽度,用#让浮点数始终有小数,字符串的5.4s只显示4位。
另一个我发现无关紧要的是printf中lf和f没什么区别,scanf却不一样。
3.scanf的另一个问题是当出现空格是,读取的字符串就不完整了,在百度后,我找到了更好的gets函数,便可以读取空格,还有scanf的一一对应特性,不过空格不算。
4.++i和i++的使用问题。
很多时候并不在意这些,便会导致数据的溢出,和结果总是偏差1,所以在使用时先得想好用哪个,如int k ; while(k--) ;printf(“%d”,k)结果是-1,因为在while判断过程中还要减1。
c语言上机报告引言C语言作为一门经典的编程语言,在计算机科学领域有着重要的地位。
在本次上机报告中,我将分享我在C语言学习过程中的一些体会和总结。
一、C语言的基本概念与特点C语言作为一种面向过程的编程语言,被广泛应用于嵌入式系统、操作系统和网络编程等领域。
它具有以下几个基本概念和特点:1. 简洁高效:C语言的语法简洁而精悍,运行效率高,这使得它成为开发高性能应用程序的理想选择。
2. 数据类型:C语言提供了多种数据类型,如整型、浮点型、字符型等,这使得程序员可以更加灵活地处理不同类型的数据。
3. 结构化编程:通过使用循环结构、条件语句和函数等,C语言可以实现结构化编程,使得程序更加清晰和易于维护。
4. 指针:指针是C语言的重要概念之一,它可以用来操作内存地址,实现高效的数据处理和数据结构。
二、C语言程序设计实践在学习C语言期间,我通过完成一系列的上机实验,加深了对C语言的理解和实践能力。
以下是几个我觉得比较有意义的实践项目的介绍:1. 温度转换程序:这个程序要求用户输入摄氏温度,并将其转换为华氏温度并显示。
通过这个小项目,我锻炼了输入输出、基本运算和数据类型转换的能力。
2. 学生成绩管理系统:这个程序允许用户输入学生成绩,并进行各种操作,如添加学生、删除学生、修改成绩和查询成绩等。
通过这个项目,我学会了如何使用数组、结构体和函数来实现数据管理。
3. 简易计算器:这个程序实现了基本的算术运算功能,包括加法、减法、乘法和除法。
同时,它还包括了错误处理和界面设计等方面的考虑,提高了用户体验。
以上这些实践项目使我熟悉了C语言的基本语法和常用函数,提高了编程思维和逻辑能力。
三、C语言学习中的困惑与解决在学习C语言的过程中,我也遇到了一些困惑和难点,下面是其中一些典型问题的解决思路:1. 内存管理:由于C语言使用指针来操作内存,所以需要特别注意内存的分配和释放。
我通过仔细阅读文档和参考书籍,学会了如何正确地管理内存,避免内存泄漏和指针悬空等问题。
c语言上机报告
C语言上机报告
在大学计算机专业的学习中,C语言是一门基础而又重要的编程语言。
而上机实验则是检验学生掌握C语言编程能力的重要环节之一。
本篇报告将介绍我在上机实验中的学习经历和心得体会。
我学习了C语言的基础语法,如变量、数据类型、运算符、流程控制语句等。
通过实验,我掌握了变量的定义和使用,学会了各种数据类型的声明和赋值,以及常用运算符的使用方法。
此外,我也了解了if语句、switch语句、for循环、while循环等流程控制语句的使用方法。
我学习了C语言中的数组和指针。
通过实验,我深刻理解了数组的定义和使用,以及数组下标的含义。
同时,我也学会了指针的定义和使用,包括指针的初始化、指针的运算、指针和数组的关系等。
这对于理解C语言的高级特性十分重要。
接着,我学习了C语言中的函数和文件操作。
通过实验,我了解了函数的定义和调用方法,以及函数的传参和返回值的使用。
此外,我也学会了文件的打开、读写和关闭等基本操作,这为我以后的文件操作打下了基础。
我学习了C语言中的动态内存分配和结构体。
通过实验,我了解了
动态内存分配的基本概念和使用方法,以及动态内存分配和指针的关系。
同时,我也学会了结构体的定义和使用,包括结构体的声明、结构体变量的定义和初始化、结构体成员的访问等。
总的来说,通过上机实验,我对C语言的基础知识有了更深刻的理解和掌握,并且能够熟练运用这些知识进行编程。
同时,我也意识到了编程技能的重要性,希望在以后的学习中能够不断提升自己的编程能力。
C语言上机实验报告实验题目:利用C语言实现学生信息管理系统一、实验目的1.熟悉C语言的基本语法和控制流程;2.掌握C语言的基本输入输出函数;3.学会使用C语言的数组和结构体来管理和操作学生信息。
二、实验环境1. 操作系统:Windows;2. 集成开发环境:Dev-C++。
三、实验内容和步骤1.设计学生结构体首先,定义一个学生结构体,包括学号、姓名、性别、年龄和成绩等字段。
2.实现学生信息的录入创建一个函数,用于输入学生的基本信息。
其中,输入学生的学号、姓名、性别、年龄和成绩。
3.实现学生信息的输出创建一个函数,用于输出学生的基本信息。
其中,输出学生的学号、姓名、性别、年龄和成绩。
4.实现学生信息的查询创建一个函数,用于根据学生的学号查询学生的基本信息。
5.实现学生信息的修改创建一个函数,用于根据学生的学号修改学生的基本信息。
6.实现学生信息的删除创建一个函数,用于根据学生的学号删除学生的基本信息。
7.实现学生信息的排序创建一个函数,用于按照学生的成绩对学生信息进行排序,并输出排序后的结果。
8.实现学生信息的保存和读取创建一个函数,用于将学生信息保存到文件中,并可以从文件中读取学生信息。
四、实验结果和分析1.学生信息的录入、输出、查询、修改、删除和排序等功能均能正常实现,并能正确显示结果。
2.学生信息的保存和读取功能能够正确将学生信息保存到文件中,并能从文件中读取学生信息并显示。
五、实验心得通过本次实验,我掌握了基本的C语言语法和控制流程,学会了使用数组和结构体来管理和操作学生信息。
在实验过程中,我遇到了一些问题,比如如何实现学生信息的排序和保存读取。
经过查阅资料和与同学的讨论,我成功解决了这些问题。
在实验过程中,我深刻体会到了C语言的强大和灵活性,同时也发现了一些C语言的不足之处。
在实验中,我发现了一些潜在的bug和改进的空间,比如输入验证不够严谨和错误处理不够完善等。
虽然本次实验只是一个简单的学生信息管理系统,但它给我提供了一个很好的机会来熟悉和掌握C语言的基本知识和技能。
c语言上机报告C语言上机报告(C Programming Report)一、背景介绍我们学校的C语言课程要求我们每个学期都要完成一些上机实验。
本次上机实验主要是让我们巩固和应用所学的C语言知识,加深对C语言的理解和掌握。
二、实验内容本次实验主要是编写一个简单的学生信息管理系统。
要求实现以下功能:1. 添加学生信息:输入学生的姓名、年龄、性别和学号,并将其添加到学生信息库中。
2. 删除学生信息:通过输入学生的学号,从学生信息库中删除该学生的信息。
3. 修改学生信息:通过输入学生的学号,修改该学生的姓名、年龄、性别等信息。
4. 查询学生信息:通过输入学生的学号,查询该学生的姓名、年龄、性别等信息。
5. 显示所有学生信息:将学生信息库中的所有学生信息按照一定格式进行展示。
三、实现过程1. 首先,我们定义一个结构体来存储学生的信息。
结构体包含姓名、年龄、性别和学号等成员变量。
2. 然后,我们定义一个数组来作为学生信息库,每个元素都是一个学生信息的结构体。
3. 编写函数实现不同的功能。
例如,添加学生信息的函数会从用户那里获取学生的姓名、年龄、性别和学号,并将其添加到学生信息库中。
4. 在主函数中,通过循环实现菜单的显示和用户输入的获取。
根据用户的选择,调用相应的函数来执行对应的功能。
5. 最后,编译和运行程序,测试各个功能是否正常。
四、遇到的问题及解决方法在实现过程中,我们遇到了一些问题。
例如,如何实现添加学生信息的功能,如何从用户那里获取输入等。
针对这些问题,我们通过查阅相关的资料和向老师请教,找到了解决方法。
五、实验结果经过测试,我们的学生信息管理系统能够正常运行,各个功能也能够按要求实现。
用户可以通过菜单选择不同的功能,对学生信息进行添加、删除、修改、查询和展示。
六、实验总结通过本次实验,我们巩固了C语言的知识,提高了对C语言的理解和掌握。
同时,我们锻炼了编程的能力和解决问题的能力。
通过与同学们的交流和讨论,我们也学到了其他人的思路和方法。
C语言实习总结范文C语言实习总结范文一、C语言实习总结范文的主要内容⒈总结必须有情况的概述和叙述,有的比较简单,有的比较详细。
这部分内容主要是对工作的主客观条件、有利和不利条件以及工作的环境和基础等进行分析。
⒉成绩和缺点。
这是总结的中心.总结的目的就是要肯定成绩,找出缺点.成绩有哪些,有多大,表现在哪些方面,是怎样取得的;缺点有多少,表现在哪些方面,是什么性质的,怎样产生的,都应讲清楚。
⒊经验和教训。
做过一件事,总会有经验和教训.为便于今后的工作,须对以往工作的经验和教训进行分析,研究,概括,集中,并上升到理论的高度来认识。
⒋今后的打算。
根据今后的工作任务和要求,吸取前一年工作的经验和教训,明确努力方向二、C语言实习总结范文转眼间充满意义的实习生活就已结束了,这段时间里,我们一定有不少启发,在实习总结中记录下这来之不易的成果吧。
那么如何把实习总结做到重点突出呢?下面是小编整理的C语言实习总结范文,希望对大家有所帮助。
C语言实习总结范文1在科技高度发展的今天,计算机在人们之中的作用越来越突出。
而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
计算机c语言实训报告计算机c语言实训报告实训报告是指包含实训目的、实训环境、实训原理、实训过程、实训结果、实训总结等方面内容的书面汇报材料,类似于理科课程的实验报告。
以下是计算机c语言实训报告,欢迎阅读。
计算机c语言实训报告1通过c语言实训,让我加深了对c语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对c语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对c语言有了浓厚的兴趣和更深层的认识。
c语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,c语言还是很有意思的'课程。
自己亲自动手编写程序让我增加了对c语言程序开发环境的了解,在上课的时候老师就讲,学习c语言最重要的是学习c语言的逻辑思维,不管以后从事什么行业,学习c语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用c语言,但是拥有扎实的c语言基础是对工作很有用的。
c语言实习报告在这个信息科技高速发展的时代,掌握一门编程语言已经成为了必不可少的技能之一。
作为计算机科学专业的学生,我有幸参加了一次关于C语言的实习,这次实习不仅让我深入了解了C语言的基本原理和应用,还让我体验到了编程的乐趣和挑战。
实习的第一天,我们首先进行了一些基础的理论学习。
老师向我们介绍了C语言的起源和发展历程,以及C语言在计算机科学领域中的重要性。
我们还学习了C语言的基本语法和数据类型,如变量、数组、指针等。
这些基础知识为我们后续的实践操作打下了坚实的基础。
在理论学习之后,我们开始进行实践操作。
我们使用C语言编写了一些简单的程序,如计算两个数的和、求一个数的平方等。
通过这些简单的程序,我们熟悉了C语言的编写规范和调试技巧。
在实践过程中,我遇到了许多问题,但通过与同学和老师的讨论,我逐渐解决了这些问题,并提高了我的编程能力。
实习的第二天,我们进行了更加复杂的编程任务。
我们被要求编写一个学生成绩管理系统,可以实现学生信息的录入、查询和删除等功能。
这个任务对我来说是一个巨大的挑战,因为我之前从未接触过如此复杂的编程任务。
然而,通过与同学的合作和老师的指导,我最终完成了这个任务,并且在实习结束时,我成功地演示了这个学生成绩管理系统。
通过这次实习,我不仅学到了C语言的基本知识和技巧,还锻炼了我的团队合作能力和解决问题的能力。
在实践过程中,我深刻体会到了编程的乐趣和挑战。
每当我编写出一个能够正常运行的程序时,我感到非常的满足和自豪。
而当我遇到问题时,我学会了不断尝试和寻求帮助,最终解决了问题。
这种经历让我更加坚定了我学习编程的决心。
除了技术方面的收获,这次实习还让我认识到了编程的广阔应用领域。
C语言作为一种通用的编程语言,被广泛应用于操作系统、嵌入式系统、游戏开发等领域。
通过实习,我了解到了C语言在这些领域中的重要性和应用场景,这对我未来的职业发展起到了积极的指导作用。
总结起来,这次C语言实习给了我一个宝贵的机会,让我深入了解了C语言的基本原理和应用。
关于c语言实训心得体会范文(精选5篇)关于c语言实训心得体会范文(精选5篇)我们得到了一些心得体会以后,将其记录在心得体会里,让自己铭记于心,如此可以一直更新迭代自己的想法。
那么好的心得体会都具备一些什么特点呢?以下是小编为大家收集的关于c语言实训心得体会范文(精选5篇),仅供参考,大家一起来看看吧。
c语言实训心得体会1在科技高度发展的今天,计算机在人们之中的作用越来越突出。
而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理。
简单界面程序。
高级界面程序。
程序的添加修改。
用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
C语言课程设计实习报告
姓 名: … 学 号: … 专 业: … 班 学 号: … 院(系): … 指导教师: …
2014 年 06 月 2014.06 中国地质大学C语言课程设计 1 代理商信息管理系统
第一章 §1.1题目要求 基本功能:代理商信息采集、浏览、查询;代理商信息的输入、浏览、修改、查询、统计等。
§1.2需求分析 (1) 实现代理商信息采集和代理商品信息输入功能,要提供结构体的输入操作; (2)实现统计功能,要提供相应的统计操作; (3)实现查询功能,要提供查找操作; (4)实现修改功能,要提供修改操作; (5)另外,还要提供键盘式选择菜单以实现功能选择。 (6)整个系统应设计为代理商信息采集、浏览、查询;代理商信息输入、浏览、修改、查询、统 计等模块。
§1.3数据结构 数据结构设计:数据结构采用结构体数组。 程序定义了一个运营商加入日期的结构体: struct data { int year; //运营商加入的年份; int month; //运营商加入的月份; int day; //运营商加入的日期; };
定义了运营商信息的结构体: struct acmer { int number; //运营商的编号; 张田田 2014.06 2 char name[20]; //运营商姓名; char agentnum[20]; //销售量; char phonum[20]; //电话号码; char goods[20]; //商品; struct data time; //加入日期; };
§1.4算法设计 主菜单选择功能,通过判断输入的选择进入相应的处理模块,包括数据输入、数据统计、数据查询、数据删除等。
总体设计:整个系统应设计为代理商信息采集,浏览,查询;代理商品信息的输入,浏览,
修改,查询,统计等模块。数据结构采用结构体数组。
代理商信息管理系统 代理商信息采集 代理商信息浏览 代理商信息查询 代理商品信息输入 代理商品信息浏览 代理商品信息修改 代理商品信息查询 代理商品信息统计
第二章 模块设计 §2.1主函数 2014.06 中国地质大学C语言课程设计 3 Main函数通过调用menu函数输入一个数字来选择用什么函数以实现相应功能,同时这个功能通过switch选择结构来调用:[流程图]
int main() { struct acmer agent[100] ; int n, i, k ; printf("请输入要统计的代理商数目: ") ; scanf("%d", &n) ; printf("请输入代理商信息:\n") ; for(i = 1 ; i <= n ; i++) input(i, agent) ; menu(); while(scanf("%d", &k),k!=0) { switch(k) { case 1:for(i = 1;i <= n ; i++) {output(i, agent);}menu();break; case 2:stat(n,agent);menu();break; case 3:search(n,agent);menu();break; case 4:amend(n,agent);menu();break; case 5:sort(n,agent); for(i = 1;i <= n ; i++) { printf("[%d]",i); output(i, agent); } menu();break;
显示一系列功能选项 根据n的值调用各功能模块函数 输入n,判断n是否是1? N Y 张田田 2014.06 4 case 6:n = add(n,agent); menu();break; case 7:n=cancel(n,agent);menu();break; default:printf("error\n") ;menu(); } } return 0 ; }
§2.2 menu函数
Menu函数是用来辅助main函数提供键盘是菜单以实现选择功能的: void menu() { printf("1 输出\n"); printf("2 统计\n"); printf("3 查找\n"); printf("4 代理商信息修改\n"); printf("5 排名\n"); printf("6 添加\n"); printf("7 删除\n"); printf("0 结束程序"); }
§2.3 代理商信息输入添加模块
§2.3.1输入模块:但看各数据信息,数字、年、月、日可以用整型,而姓名、代理商编号、联系方式、销售量可以用字符型数组。数据信息存放在文件中,一条记录对应一个代理商,既符合习惯也方便信息管理. 把年月日作为结构体成员,存放在data结构体中,把姓名、代理商编号、联系方式、销售量、代理商品信息作为另一个结构体成员,存放在acmer结构体中。 struct data { int year ; int month ; int day ; } ; struct acmer { int number ; char name[20] ; char agentnum[20] ; char phonum[20] ; char goods[20]; struct data time ; 2014.06 中国地质大学C语言课程设计 5 };
§2.3.2添加模块:首先调用add函数以确定输入代理商的数目,然后用input函数来输入代理商信息: int add(int n,struct acmer agent[]) { int k,i; printf("请输入添加代理商数目:"); scanf("%d",&k); for(i=n+1;i<=n+k;i++) { input(i,agent); } return n+k;
void input(int i,struct acmer agent[]) { printf("姓名:"); scanf("%s",agent[i].name); printf("代理商编号:"); scanf("%s",agent[i].agentnum); printf("联系方式:"); scanf("%s",agent[i].phonum); printf("销售量:"); scanf("%d",&agent[i].number); printf("代理商品信息:"); scanf("%s",agent[i].goods); printf("年:"); scanf("%d",&agent[i].time.year); printf("月:"); scanf("%d",&agent[i].time.month); printf("日:"); scanf("%d",&agent[i].time.day); }
§2.4 代理商信息浏览
代理商信息浏览使用了output函数,可以同时输出代理商以及商品的所有信息:
void output(int i,struct acmer agent[]) { printf("姓名:%s",agent[i].name); 张田田 2014.06 6 printf("代理商编号:%s",agent[i].agentnum); printf("联系方式:%s",agent[i].phonum); printf("销售量:%d",agent[i].number); printf("代理商品信息:%s",agent[i].goods); printf("加盟时间:%d %d %d\n",agent[i].time.year,agent[i].time.month,agent[i].time.day); }
§2.5 数据删除
数据删除也是先读取数据文件中所有现存代理商信息。如果没有读到代理商则表示本身无记录,删除功能无法继续。 删除功能的实现主要在重新写文件时。通过比对需要删除的那条记录与已读取出的存放于结构体数组中的记录,如果相同,则跳过该条记录的重新写入,即重新写文件时,就会少了该条记录,于是完成删除功能。 int cancel(int n,struct acmer agent[]) { char x[20]; int i,j,flag,t; t=n; printf("请输入要删除代理商的编号(按000结束删除):"); while(scanf("%s",x)!=EOF) { flag=0; if(strcmp(x,"000")==0) break; for(i=1;i<=n;i++) if(strcmp(x,agent[i].agentnum)==0) { for(j=i+1;j<=n;j++) agent[i]=agent[i+1]; flag=1; t--; break; } else flag=1; if(flag==1) printf("没有找到代理商信息\n"); else printf("删除成功(按000结束删除)\n"); } return t; }