您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言课程设计报告范例
2009年电气与信息工程学部C语言课程设计报告设计题目:专业:班级:学号:姓名:任课老师:时间:2目录一、课程设计题目及所涉及知识点二、课程设计思路及设计流程图三、课程设计中遇到的难点及解决办法四、小结五、附录原程序3一、课程设计题目及所涉及知识点(一).课程设计题目:(1).基本内容:学生信息包括学生号、姓名、性别、出生年月、数学、英语、计算机、体育(学生号不重复)。试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作,密码登陆。1.学生信息的录入(增加数据)。用数组数据类型赋初值的方法把学生信息送到各个数组中(但要注意是合法数据),然后把它们输出显示。2.学生信息的删除(删除数据)。任意输入一位学生号,将它所有的信息从组数中删除。3.学生信息的浏览(查找数据)。任意输入一位学生号,打印出他的所有数据。要求能多次查找。4.学生信息的修改(修改数据)。任意输入一位学生号,打印出所有相关信息后,可对某一项信息进行修改并保存。5.学生信息的计算并排序。计算所有学生的总分及平均分,将包括所有数据的数组元素按总分从高到低的顺序排序打印出来。(2).课程设计的要求与数据1.编程时,设计函数来完成每个功能,通过main函数调用各函数。2.程序中的输入输出要加提示说明。3.打印出的程序清单,在各行后用中文加说明。4.输出的结果要准确、清晰、美观。(二).所涉及知识点:结构体数组的定义与引用;函数的定义与调用;局部变量和全局变量;多函数的链接与编译;for循环语句;if语句;break语句;格式输入与输出;冒泡排序法;字符串处理函数;函数的定义;数组作为函数参数.二、课程设计思路及设计流程图1、课程设计思路根据题目的要求,需要一个主程序main()和四个子程序:分别为add()、del()、sort()、change()、average();可以实现增加,删除,查找,修改,求和、平均值及排序。42、课程设计流程图流程图一开始menu((((((()()()输入mDel()Sort()Chang()Average()Refurnconfirm()Add()输出5流程图二Add()1~N1~N输入num输入name输入sex输入year输入math输入date输入English输入physical当n4输出numNameSexYearmonthDatemathEnglishphysicalMenu()6流程图三Sort()输入字符串i[10]当n4i[10]是否students[n].num匹配是否输入numNameSexYearMonthdateMathEnglishComputerPhysical返回返回nMenu7流程表四Del输入~~n匹配判断n是否是sort()返回的值“”~~students[n].numk~~nn4Students[n+1].num~~students[n].numn4输出numNameSexYearmonthdateMathEnglishComputerPhysicalMenu()返回主菜单8流程表五Change()输入学生号~~否判断n是否匹配sort()是返回主菜单输入numNameSexYearmonthdateMathEnglishComputerPhysical当n4输出全部学生信息返回主菜单9流程表六Average()Page_title()输入小标题当n4~~sum[n]~~average并输出当j4n=jStudents[n]~~students[n+1]n4输出全部学生信息10三、课程设计中遇到的难点及解决办法1结构体数组的定义:当在结构体中有float型数据时系统会提示错误。解决方法:用其他变量代替然后再定义。2密码不能隐藏:用gets输入密码后,密码能够看到;解决方法:用getch代替gets,再用for循环输入*号;3在调试没运行完自动跳出到主界面;解决方法:是由于系统问题,在遇到float型数据时会出现系统错误。4变量未定义而先使用。5不同类型的指针混用。6不知道如何使型参于实参一一对应。7在调试程序是出现死循环。8在进行链接是出错;解决方法:看变量是否一直,看型参以实参是否对应。9不知道如何使用main函数调用其他子函数。四、小结通过对c语言的课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。对C语言的使用得到了进一步的提高。针对顺序结构程序,选择结构程序的设计和函数等知识得到了进一步的巩固,具体化就是加深了我对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的结构在运行中能够充分的发挥程序的功能。结构设计的合理性决定了这个程序的价值。在今后的学习中我要注意这方面,使得我的编程能力能有进一步的提高。经历了这次课程设计,不仅对我的学习提供了帮助,而且在意志力方面也得到了锻炼。没有足够的耐力和信心就很难坚持对课程设计每一步的顺利进行。11五、附录原程序#includestdio.h#includestring.h#includestdlib.h#includemath.hadd();/*增加数据函数声明*/del();/*删除数据函数声明*/sort();/*查找数据函数声明*/change();/*修改数据函数声明*/average();/*计算及排序函数声明*/structdat{intyear;intmonth;intdate;};/*定义结构体*/structstudent{charnum[10];charname[25];charsex[1];structdatbirthday;intmath;intenglish;intcomputer;intphysical;}students[4];/*定义结构体*/staticintn=0;inti=1;/*全局变量*/menu(){intm;printf(\t\t\t|__________________|\n);printf(\t\t\t|1.addnumber|\n);printf(\t\t\t|------------------|\n);printf(\t\t\t|2.delectnumber|\n);printf(\t\t\t|------------------|\n);printf(\t\t\t|3.sortnumber|\n);printf(\t\t\t|------------------|\n);printf(\t\t\t|4.changenumber|\n);printf(\t\t\t|------------------|\n);printf(\t\t\t|5.averagesumnumb|\n);printf(\t\t\t|------------------|\n);printf(\t\t\t|6.outprograme|\n);printf(\t\t\t|__________________|\n);/*工作界面*/12printf(pleasechoose1or2or3or4or5or6:\n);/*选择功能*/scanf(%d,&m);if(m==1)add();if(m==2)del();if(m==3)sort();if(m==4)change();if(m==5)average();if(m==6)return_confirm();/*调用函数*/}page_title(char*menu_item)/*定义函数*/{clrscr();printf(学生管理系统\n\n-%s-\n\n,menu_item);}/*显示功能标题*/return_confirm(void)/*定义函数*/{printf(\n按任意键返回……\n);getch();/*键入任意键*/}add()/*定义函数*/{intn,m;/*定义局部变量*/page_title(录入学生基本信息);/*调用函数*/for(n=0;n4;n++){printf(学号:);scanf(%s,students[n].num);printf(\n姓名:);scanf(%s,students[n].name);printf(\n性别:);scanf(%s,students[n].sex);printf(\n年:);scanf(%d,&students[n].birthday.year);printf(\n月:);scanf(%d,&students[n].birthday.month);printf(\n日:);scanf(%d,&students[n].birthday.date);printf(\n数学:);scanf(%d,&students[n].math);printf(\n英语:);scanf(%d,&students[n].english);13printf(\n计算机:);scanf(%d,&students[n].computer);printf(\n体育:);scanf(%d,&students[n].physical);/*输入数据*/}for(n=0;n4;n++){printf(学号,姓名,性别,年,月,日,数学,英语,计算机,体育\n);printf(%s%s%s%d%d%d%d%d%d%d\n,students[n].num,students[n].name,students[n].sex,students[n].birthday.year,students[n].birthday.month,students[n].birthday.date,students[n].math,students[n].english,students[n].computer,students[n].physical);}menu();}del()/*定义函数*/{intn,k,m;/*定义局部变量*/scanf(%d\n,&n);page_title(删除学生基本信息);if((n=sort())!=-1)/*调用并调用*/strcpy(students[n].num,);/*清空*/printf(\n!该学生已删除.\n);k=n;for(n=k;n4;n++)strcpy(students[n].num,students[n+1].num);for(n=0;n4;n++){printf(学号,姓名,性别,年,月,日,数学,英语,计算机,体育\n);printf(%s%s%s%d%d%d%d%d%d%d\n,students[n].num,students[n].name,students[n].sex,students[n].birthday.year,students[n].birthday.month,students[n].birthday.date,students[n].math,students[n].english,students[n].computer,students[n].physical);}menu();}intsort()/*定义函数*/{intn;/*定义局部变量*/chari[10];/*定义局部变量*/14page_title(查找学生基本信息);/*调用函数*/printf(请输入学生学号:);fflush(stdin);gets(i);for(n=0;n32;n++){if(strcmp(students[n].num,i)==0){printf(学号:%s\n,students[n].num);printf(姓名:%s\n,students[n].name);printf(出生年月:%d%d%d\n,students[n].birthday.year,students[n].birthday.month,students[n].birthday.date);printf(性别:%c\n,students[n].sex);printf(数学,英语,计算机
本文标题:C语言课程设计报告范例
链接地址:https://www.777doc.com/doc-3355913 .html