C语言课程设计报告—范例
c语言程序贪吃蛇课程设计报告范文

高级语言程序设计课程设计报告Experiment Designing reporter课程名称:高级语言程序设计英文名称 : C Program Experiment Designing专业:自动化 111学号: XXX姓名: XXX指导教师: XXX日期: 2012 年 6月 17日至 2011 年6 月 20 日山东工商学院信电学院山东工商学院信电学院自动111班第一组“贪吃蛇课程设计报告“一:课程设计内容程序功能介绍贪吃蛇游戏是一个经典小游戏,深受众多玩家喜爱,其规则是:一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
此游戏不仅能锻炼人的思维敏捷性,而且还可以提高玩家的逻辑判断能力。
设计思路我们小组称设计本次课题——贪吃蛇的思路为“贪快速上手贪吃蛇三步曲”:第一步:寻找到一个真正可以运行的已用C编好的贪吃蛇。
因为我们毕竟从未看到过用C编游戏的程序,让我们两手一抹黑的开始编写是有一定的困难的,如果我们自己找一个已经设计好的程序,以此为跳板实现我们想要达到的效果,那么肯定是高效的。
所以我们组统一决定,去寻找一个可以运行的C编译的贪吃蛇。
第二步:运行游戏并了解游戏程序。
我们认为,只有你运行并了解一个游戏,才能知道游戏里需要什么样的改进和创新,如果你自己本身就没玩过这个游戏,那么你就是再有技术,你也永远改进和改编不了一个游戏,因为你根本不知道你在干什么。
同样重要的是了解游戏程序。
因为只有看懂了程序,才能实现对他的改编,才能游刃有余。
第三步:寻找模块并分类,而后进行改编。
寻找到你想要改变的游戏内容的控制模块,比如,我想要增加一堵墙,那第一页共十六页自动化 111么就应该找到void DrawK(void){setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=200;i<=500;i+=10)rectangle(i,200,i+10,209);}然后要找到:改变蛇初始长度、颜色、初始位置的模块,改变苹果出现位置的模块,让蛇见墙死的模块,让蛇吃苹果加长的模块……….并且进行分类,这样下次再想实现某个目标时,可以一目了然的进行改编。
学生成绩管理系统c语言课程设计报告

学生成绩管理系统c语言课程设计报告一、引言学生成绩管理系统是一个为学校或教育机构提供学生学业成绩管理的重要工具。
通过该系统,可以方便地记录和查询学生的各项成绩,帮助教师和学生了解学生的学业表现,及时作出教学和学习的调整和改进。
本文将介绍一个基于C语言的学生成绩管理系统的设计与实现。
二、需求分析1. 学生信息管理:包括学生基本信息的录入、修改和删除。
2. 成绩信息管理:包括成绩的录入、修改和删除。
3. 成绩查询与统计:可以按照学生学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。
4. 数据存储与备份:能够将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。
三、系统设计1. 学生信息管理模块:设计一个结构体来存储学生的基本信息,包括学号、姓名、性别、年龄等。
通过菜单选择,可以实现学生信息的录入、修改和删除功能。
2. 成绩信息管理模块:设计一个结构体来存储学生的成绩信息,包括科目名称和成绩。
通过菜单选择,可以实现成绩信息的录入、修改和删除功能。
3. 成绩查询与统计模块:通过学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。
4. 数据存储与备份模块:设计文件操作函数,将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。
四、系统实现1. 使用C语言编写程序代码,通过结构体和数组等数据结构实现学生信息和成绩信息的存储。
2. 利用文件操作函数实现数据的读取和存储,包括学生信息和成绩信息的存储和备份。
3. 设计菜单界面,通过用户选择来实现各个功能模块的调用。
五、系统测试与优化1. 针对各个功能模块进行测试,验证系统的正确性和稳定性。
2. 根据测试结果优化程序代码,提高系统性能和用户体验。
3. 完善系统功能,考虑异常情况的处理,提高系统的容错性和健壮性。
六、总结与展望通过本次课程设计,我们成功实现了一个基于C语言的学生成绩管理系统。
该系统能够方便地记录和查询学生的成绩信息,帮助教师和学生进行教学和学习的分析和改进。
c语言课程设计成绩报告

c语言课程设计成绩报告一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量定义、数据类型、运算符、表达式等基础知识;2. 学会使用C语言控制结构,包括顺序结构、分支结构和循环结构,并能应用于实际问题解决;3. 熟悉C语言数组和字符串的使用,掌握函数的定义和调用,理解模块化编程思想;4. 了解C语言文件操作,能够读写文件,存储和获取数据。
技能目标:1. 能够运用C语言编写简单的程序,解决实际问题,培养编程思维和逻辑分析能力;2. 能够通过调试和修改程序,发现并修复错误,提高问题解决能力;3. 学会使用C语言进行数据处理和分析,具备一定的数据分析和编程实践能力;4. 能够阅读和理解C语言代码,与他人进行技术交流和合作。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发创新意识和探索精神;2. 培养学生的团队合作意识,学会与他人共同解决问题,提高沟通能力;3. 培养学生严谨、细致的学习态度,养成良好的编程习惯;4. 让学生认识到编程在现代社会中的重要作用,增强社会责任感和使命感。
课程性质:本课程为C语言编程入门课程,注重理论与实践相结合,强调编程思维和实际操作能力的培养。
学生特点:学生具备一定的计算机基础知识和操作能力,对编程有一定兴趣,但可能缺乏编程经验和逻辑思维能力。
教学要求:结合学生特点,采用案例教学、任务驱动等方法,引导学生主动参与,注重实践操作,提高编程能力和解决问题的能力。
通过课程学习,使学生能够达到上述课程目标,为后续深入学习编程打下坚实基础。
二、教学内容1. C语言基础知识:变量定义、数据类型、常量、运算符、表达式和语句;2. 控制结构:顺序结构、分支结构(if-else、switch)、循环结构(for、while、do-while);3. 函数:函数定义、声明、调用,参数传递,返回值,递归函数;4. 数组:一维数组、二维数组,数组初始化,数组操作;5. 字符串:字符串表示,字符串操作,字符串函数;6. 指针:指针的概念,指针与数组,指针与函数,指针运算;7. 结构体与共用体:结构体定义,结构体变量操作,结构体数组,共用体;8. 文件操作:文件打开与关闭,读写文件,文件定位,文件错误处理;9. 编程实践:综合运用所学知识,完成实际编程任务。
C语言课程设计报告(最终版)

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语言程序设计课程设计总结(通用6篇)

c语言程序设计课程设计总结一、什么是总结总结,汉语词语,读音为zǒng jié,意思是总地归结。
二、c语言程序设计课程设计总结(通用6篇)总结是在一段时间内对学习和工作生活等表现加以总结和概括的一种书面材料,写总结有利于我们学习和工作能力的提高,为此要我们写一份总结。
但是总结有什么要求呢?以下是小编为大家整理的c语言程序设计课程设计总结(通用6篇),仅供参考,大家一起来看看吧。
c语言程序设计课程设计总结1课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在梁强老师的辛勤指导下,终于游逆而解。
同时,在梁强老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!c语言程序设计课程设计总结2经过一个星期的上机实践学习,使我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。
C语言课程设计报告:职工信息管理系统程序设计

1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
C语言程序课程设计报告-正文参考模板
目录1 前言 (1)2 需求分析 (1)2.1要求 (1)2.2任务 (1)2.3运行环境 (1)2.4开发工具 (1)3 概要设计与详细设计 (1)3.1系统流程图 (2)3.2访问流程图 (3)4 编码与实现 (4)4.1分析 (4)4.2具体代码实现 (6)5 课程设计总结 (15)参考文献................................................. (15)致谢 (15)1 前言使用C语言编程,设计一个有效的算法,模拟蚂蚁觅食的过程。
2 需求分析2.1要求(1)各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物。
(2)当一只找到食物以后,它会向环境释放一种信息素,吸引其他的蚂蚁过来,这样越来越多的蚂蚁会找到食物。
(3)有些蚂蚁并没有象其它蚂蚁一样总重复同样的路,他们会另辟蹊径,如果令开辟的道路比原来的其他道路更短,那么,渐渐,更多的蚂蚁被吸引到这条较短的路上来。
(4)最后,经过一段时间运行,可能会出现一条最短的路径被大多数蚂蚁重复着。
2.2任务(1)构建二维数组将每条路径的信息素量、相应路径的信息素增量和城市距离放入其中。
(2)输入两个城市间的坐标,并得到两个城市间的最近距离。
(3)画出所有模块的流程图;(4)编写代码;(5)程序分析与调试。
2.3运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境2.4开发工具C语言3 概要设计与详细设计3.1系统流程图如图3.1所示。
图3.1系统流程图3.2访问流程图如图3.2所示。
图3.2访问流程图4 编码与实现4.1分析程序开始运行,蚂蚁们开始从窝里出动了,寻找食物;他们会顺着屏幕爬满整个画面,直到找到食物再返回窝。
其中,‘D’点表示食物,‘A’表示窝,白色块表示障碍物,‘+’就是蚂蚁了。
预期的结果:各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物。
当一只找到食物以后,它会向环境释放一种信息素,吸引其他的蚂蚁过来,这样越来越多的蚂蚁会找到食物!有些蚂蚁并没有象其它蚂蚁一样总重复同样的路,他们会另辟蹊径,如果令开辟的道路比原来的其他道路更短,那么,渐渐,更多的蚂蚁被吸引到这条较短的路上来。
C语言课程设计报告(学生成绩管理系统)
C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。
二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。
同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。
五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
2、查询模块:可用stu *lookdata(stu *p1)来实现。
找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert( )函数来实现。
其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。
主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。
c语言课程设计报告
c语言课程设计报告一、引言计算机科学与技术是当今社会中非常热门的学科之一,在这个时代,掌握一门计算机编程语言是极其重要的。
而C语言作为一种高度通用的编程语言,被广泛应用于软件开发、嵌入式系统等领域。
在本次C语言课程设计中,我们小组选择了某个特定领域的应用,对其进行分析、设计和实现。
二、问题定义本次课程设计的目标是设计一个简单的汽车租赁管理系统。
该系统需要实现的功能包括:汽车信息的录入和查询,租车和还车的订购和确认,用户信息的管理及租赁记录的统计等。
三、设计思路1. 数据结构的设计为了实现汽车租赁管理系统,我们需要设计适当的数据结构。
首先,需要定义汽车的信息,包括车型、颜色、日租金等。
其次,我们需要存储用户的信息,如姓名、手机号码等。
此外,还需要记录租赁的相关信息,如租赁时间、预计还车时间等。
2. 功能模块的划分根据设计思路,我们可以将汽车租赁管理系统划分为以下几个功能模块:(1)汽车信息模块:负责录入汽车信息和查询汽车信息。
(2)用户信息模块:负责管理用户的信息,包括用户的注册、修改和删除等操作。
(3)租赁模块:负责汽车的租赁和还车操作,包括租赁信息的录入、修改和查询等。
(4)统计模块:负责统计租赁记录,包括某一时间段内的租赁次数、总租金等。
四、系统设计与实现1. 数据结构的定义根据前面的设计思路,我们可以定义如下的数据结构:(1)汽车信息结构体:包括车型、颜色、日租金等。
(2)用户信息结构体:包括姓名、手机号码等。
(3)租赁信息结构体:包括租赁时间、预计还车时间等。
2. 功能模块的实现(1)汽车信息模块的实现:通过调用相应的函数,实现汽车信息的录入和查询。
(2)用户信息模块的实现:通过用户注册功能,实现用户的信息录入和管理。
(3)租赁模块的实现:实现汽车的租赁和还车操作,并更新租赁信息。
(4)统计模块的实现:根据租赁记录,实现针对某一时间段内的租赁次数和总租金的统计功能。
五、使用与测试在系统的实现过程中,我们需要进行充分的测试。
c语言课程设计报告
c语言课程设计报告本文将从以下几个方面来介绍我的C语言课程设计报告:设计目的、设计方法、设计过程、设计结果以及结论。
设计目的本次C语言课程设计的目的是熟悉C语言的基本语法,掌握C 语言的编写方法,并通过设计一个小型的程序来将所学的知识应用到实际中,提高自己的编程水平。
设计方法首先,我阅读了C语言的基本语法,学习了控制流程语句、函数、数组、指针等等知识点。
紧接着,我参考了一些经典的C语言程序,比如“猜数字”、“汉诺塔”等等,学习了这些程序的设计思路。
然后,我选定了一个题目——一个简单的计算器程序,通过这个程序的设计,来练习并应用我所学的C语言知识。
设计过程首先,我在Dev-C++集成开发环境中创建了一个新项目,然后分别编写了程序的界面、输入模块、计算模块和输出模块。
程序的界面主要使用了C语言中的输出语句,将计算器的各个按钮、数字及对应的运算符输出到控制台窗口。
输入模块主要使用了C语言中的scanf函数,得到用户输入的数字和符号,并将其存储在相应的变量中。
计算模块则采用了C语言中的if-else语句,根据不同的符号执行相应的计算操作,最后将结果存储在一个变量中。
输出模块再次使用了输出语句,将计算结果输出到控制台窗口。
设计结果最终,我的计算器程序实现了加、减、乘、除四种基本运算,用户可以通过程序界面输入数字和符号,计算器程序会自动进行计算,并将结果输出到控制台窗口。
该程序易于操作,界面简洁明了,计算结果准确可靠,达到了我预期的效果。
结论通过这次C语言课程设计,我掌握了C语言的基本语法和编写方法,加深了对计算机编程的理解,提高了自己的编程水平。
同时,我也感受到了编程带来的乐趣和成就感,我将继续努力掌握更多的编程知识,在以后的学习和实践中取得更好的成绩。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
. . XX学院 C语言课程设计报告
课程名称: C语言课程设计 课程编号: 报告题目: 学生: 学 号: 专 业
成 绩: 任课教师: .
. 评阅日期: .
. C语言课程设计报告
一、 C语言课程设计的目的 C语言的教学是学生根据课堂讲授容,学生做相应的自主练习,消化课堂所讲解的容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。具体来说: 1. 进一步掌握和利用C语言进行程设计的能力; 2、 进一步理解和运用结构化程设计的思想和方法; 3、 初步掌握开发一个小型实用系统的基本方法; 4、 学会调试一个较长程序的基本方法; 5、 学会利用流程图或N-S图表示算法; 6、 掌握书写程设计开发文档的能力(书写课程设计报告);
二、课程设计报告正文 (1)课程设计题目的原文; 假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(文件保存) 完成航班信息浏览功能; 查询航线(至少一种查询方式)。 (2)题目的分析(需求分析); 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中) 浏览:航班信息浏览功能需要提供显示操作; 查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。 . . 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。 (3)整体设计与模块划分; 根据需求分析,该程序可分为以下四大模块:
(4)代码设计; 包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析;等等; A.主函数
(1)分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统
中没有程序所要的文件时,为程序建立一个所许的文件;调用菜单函数。程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无常运行,增加第一个功能就是保证文件的可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数。 菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到的函数。 (2)程序: void menu() {
输入模块 显示模块 查询模块 退出模块
飞机订票系统 .
. int n,w; do { puts("\t\t***********************MENU***************************\n\n"); puts("\t\t\t\t 1.enter new data"); puts("\t\t\t\t 2.Browse all"); puts("\t\t\t\t 3.Search"); puts("\t\t\t\t 4.exit"); puts("\n\n\t\t ***************************************************\n"); printf("Choice your number(1-4): [ ]\b\b"); scanf("%d",&n); if(n<1||n>4) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:enter();break; case 2:Browse();break; case 3:Search();break; case 4:exit(0); } } /**********************主函数*********************/ main() { menu(); . . }
B.公共函数 (1)分析:各功能模块中的分程序中的交错的较多,因而,本程序的公共函有5个,这使得各功能模块函数显得简洁,这是程序的一个特点。此处的公共函数的功能较为简单,但他很实用。 (2)程序: 1、把航班信息输入到文件中的函数。 void input(i) { struct flight t; printf("\nflight_no startstation endstation flytime plan_ticket sell_ticket\n"); scanf("%d%s%s%s%d%d",&t.flight_no,t.startstation,t.endstation,t.flytime,&t.plan_ticket,&t.sell_ticket); fp=fopen("flydata.txt","ab"); if(!fp){printf("can not open this file\n");exit(0);} else fwrite(&t,sizeof(struct flight),1,fp); fclose(fp); }
2、输出一个 航班信息函数 void printf_oneflight(int i) { printf("\n%5d%20s%20s%10s%4d%4d\n",fly[i].flight_no,fly[i].startstation,fly[i].endstation,fly[i].flytime,fly[i].plan_ticket,fly[i].sell_ticket); } 3、输出文件容结构函数 void printf_face() . . { printf("\n\tNO. startstation endstation flytime plan_ticket sell_ticket\n"); } 4、载入函数实现文件容载入程序,并返回飞机航班数值。 int load() { FILE *fp; int i; if((fp=fopen("flydata.txt","rb"))==NULL) { printf("\nCan not open file\n"); exit(0); } for(i=0;!feof(fp);i++) fread(&fly[i],sizeof(struct flight),1,fp); fclose(fp); return(i-1); } 5、返回退出函数实现程序退出、返回。 void printf_back() { int w; printf("\n\n\tSuccessful.^_^\n\n"); printf("What do you want to do?\n\n\t1).Browse all now\t2).back:[]\b\b"); scanf("%d",&w); if(w==1) Browse(); else menu(); } . . C.航班基本信息输入模块 航班信息录入函数: (1)分析:航班的基本信息,对它们输入后,要存进原文件,采用fwrite函数就可以实现。但是,用该函数存进文件的数据都是以二进制的形式存在的,不是通常所采用的形式,可以改用fprintf函数来实现该功能。不过本程序采用的是fwrite函数。再用户输入完成后,程序会询问是否继续输入,这个功能更具人性化,可以省去返回到主函数在进入这个函数的麻烦! [流程图]输入信息
(2)程序: void enter() { int i,n; printf("How many flights do you want input? :[ ]\b\b"); scanf("%d",&n); printf("\n Enter data now\n\n"); for(i=0;i
文件打开否 输入信息
是否继续 将信息输出到磁盘
调用printf_back()函数 结束
开始 输出错误信息 .
. { printf("\n Input %dth float record.\n",i+1); input(i); } printf_back(); } D. 航班信息浏览模块 [流程图]显示信息
显示航班信息: void Browse() { int i,n; n=load(); printf_face(); for(i=0;i{
开始 文件打开 查找航班信息 是否查找到 输入信息 是否继续 结束
输出错误信息 删除操作