1存档资料成绩:课程设计报告书所属课程名称C程序设计题目学生信息管理系统院(系)班级学号学生姓名指导教师辅导教师2011年12月24日第1页1课程设计(论文)任务书学院专业班一、课程设计(论文)题目:学生信息管理二、课程设计(论文)工作自2011年12月19日起至2011年12月23日止三、课程设计(论文)地点:四、课程设计(论文)内容要求:1.本课程设计的目的(1)进一步巩固和加深对“C程序设计”课程基本知识的理解和掌握,了解C语言在项目开发中的应用。(2)学习程序设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。(3)通过对标准化、规范化文档的掌握并查阅有关技术资料等,培养项目设计开发能力,同时提倡团队合作精神。2.课程设计的任务及要求1)基本要求:(1)对系统功能进行需求分析;(2)使用VisualC++编译器进行程序编译;(3)提出系统的设计方案;(4)编写源程序代码并进行调试。2)创新要求在基本要求达到后,可进行创新设计。3)课程设计报告撰写及装订要求课程设计报告的撰写要求表述简明,图表准确。报告按如下内容和顺序用A4纸进行打印并装订成册。(1)封面采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。(2)设计任务书(3)评阅书(4)目录(5)正文(6)主要参考文献第2页24)课程设计评分标准:每人按指定题目进行设计,严禁抄袭,各选题2人/组。要求每人自己动手编写程序,采取同一组同时检查程序及运行结果,检查时同组成员每人陈述自己的分工,同一选题不同组如发现代码完全一样,则双方都作不及格处理。(1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分;(2)能正确回答设计的中老师所提问题,可增加10分;(3)课程设计报告书写规范整齐,可增加10分;(4)心得体会认真总结,可增加10分;(5)程序有创新性,可增加10分;成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。5)课程设计进度安排(1)准备阶段(3学时):选择设计题目、了解设计目的要求、查阅相关资料。(2)程序模块设计分析阶段(4学时):程序总体设计、详细设计。(3)代码编写调试阶段(10学时):程序模块代码编写、调试、测试。(4)撰写论文阶段(3学时):总结课程设计任务和设计内容,撰写课程设计论文。6)课程设计题目具体要求:题目:学生信息管理要求:可以输入并输出显示若干名学生的姓名、性别、各科成绩。并能根据平均成绩将输入的所有学生排序。要能查看到我的个人信息,并能成功得退出系统。思路:1.首先心中要有程序代码的大体结构。要使可以实现各个功能,若把执行代码全部写入主函数中,则会显得主函数繁杂而没有头绪,因此,可以利用函数调用的方式将主函数简单化。2.若要想能有选择地实现各个功能,则可以在主函数中用我们所学过的switch函数。3.题目要求我们能同步输入和输出多项学生信息,则可以想到构建一个结构体,包含所有关于学生的信息。考虑到这几点之后的工作就是编程序代码了。学生签名:2011年12月19日第3页3课程设计(论文)评阅意见序号项目等级优秀良好中等及格不及格1课程设计态度评价2出勤情况评价3任务难度评价4工作量饱满评价5设计中创新性评价6论文书写规范化评价综合评定等级评阅人职称讲师2011年12月24日第4页4目录第1章需求分析........................................5第2章概要分析........................................6第3章详细设计......................................7第4章运行结果及分析...............................16第5章课程设计心得.................................20第5页5第1章需求分析菜单是应用程序非常重要的组成部分,通过菜单,应用程序可以实现不同的功能,通过本系统的设计,可以实现应用程序的菜单。(1)进入系统之前,显示选择界面,供用户选择要实现的功能,有7个功能可供选择,然后实现程序的运行。(2)首先要选择1,输入学生信息,系统会保存输入的数据,并可在第2个功能里实现所输入学生信息的显示。并可按任意键返回主菜单。第3和第4个功能分别是按姓名和学号查找学生信息。(3)第5个功能是显示我的个人信息,第6个功能是根据学生的平均成绩进行排序,并正确地输出。(4)最后可以选择7成功退出程序。第6页6第2章概要分析开始首先打开界面显示主菜单,选择要执行的功能,用switch语句实现要实现功能则需构建多个函数模块,在主函数中调用,并构建结构体,实现学生信息的输入。结束程序第7页7第3章详细设计#includestdio.h//输入输出流的头文件#includestring.h//字符串处理头文件#includeconio.h#includestring.hstructstudent/*定义学生信息的结构体类型*/{longintnum;/*学号*/charname[20];/*姓名*/charsex[4];/*性别*/intenglish;/*英语成绩*/intmath;/*数学成绩*/intchinese;/*语文成绩*/floataver;/*平均成绩*/floatsum;/*总成绩*/}st[100];inti=0,t;/*声明两个全局变量*/voidshuru()/*输入学生信息*/{chara;第8页8do{printf(\n请输入学号:);scanf(%d,&st[i].num);fflush(stdin);printf(\n请输入姓名:);gets(st[i].name);printf(\n请输入姓别:);gets(st[i].sex);fflush(stdin);printf(\n请输入英语成绩:);scanf(%d,&st[i].english);fflush(stdin);printf(\n请输入数学成绩:);scanf(%d,&st[i].math);fflush(stdin);printf(\n请输入语文成绩:);scanf(%d,&st[i].chinese);st[i].sum=st[i].english+st[i].math+st[i].chinese;st[i].aver=st[i].sum/3;fflush(stdin);printf(\n是否继续输入另外一个学生信息?(y/n));fflush(stdin);a=getchar();i++;}第9页9while(a=='y'&&i=100);}voidxianshi()/*显示学生信息*/{intj;printf(\t学号\t姓名\t性别\t英语成绩\t数学成绩\t语文成绩\t平均成绩\t总成绩\n);for(j=0;ji;j++)printf(\t%ld\t%s\t%s\t%4d\t%10d\t%10d\t%14.1f\t%12.1f\n,st[j].num,st[j].name,st[j].sex,st[j].english,st[j].math,st[j].chinese,st[j].aver,st[j].sum);}voidchazhao()/*按姓名查找信息*/{intm;charname[20],b;do{printf(\n请输入想查找的学生姓名:);fflush(stdin);第10页10gets(name);for(m=0;mi;m++){if(strcmp(name,st[m].name)==0){printf(\n\您要查的学生在第%d个位置找到了!!!\n,m+1);break;}}if(m=100)printf(\n\t没有找到这个学生!!!\n);else{printf(\t学号\t姓名\t性别\t英语成绩\t数学成绩\t语文成绩\t平均成绩\t总成绩\t\n);printf(\t%d\t%s\t%s\t%4d\t%10d\t%10d\t%14.1f\t%12.1f\n,st[m].num,st[m].name,st[m].sex,st[m].english,st[m].math,st[m].chinese,st[m].aver,st[m].sum);}printf(\n是否查找另一个学生的信息?(y/n));fflush(stdin);b=getchar();第11页11}while(b=='y');}voidxuehao()/*按学号查找信息*/{intm,b;longintn;do{printf(\n请输入想查找的学生学号:);scanf(%d,&n);fflush(stdin);for(m=0;mi;m++){if(n==st[m].num){printf(\n\t您查找的学生在第%d个位置找到了!!!\n,m+1);break;}}if(m=100)printf(\n\t没有找到这个学生!!!\n);else第12页12{printf(\t学号\t姓名\t性别\t英语成绩\t数学成绩\t语文成绩\t平均成绩\t总成绩\t\n);printf(\t%d\t%s\t%s\t%4d\t%10d\t%10d\t%14.1f\t%12.1f\n,st[m].num,st[m].name,st[m].sex,st[m].english,st[m].math,st[m].chinese,st[m].aver,st[m].sum);}printf(\n是否查找另一个学生的信息?(y/n));fflush(stdin);b=getchar();}while(b=='y');}voidgeren()/*个人信息*/{printf(**************个人信息**************\n\n);printf(姓名性别:\n);printf(年龄:17班级:\n);printf(**************学习经历**************\n\n);printf(小学:\n);printf(中学:\n);printf(高中:\n);printf(大学:\n);第13页13printf(************************************\n\n\n);}voidpaixu()/*对数据进行排序*/{intc,d,temp;printf(\t学号\t姓名\t性别\t英语成绩\t数学成绩\t语文成绩\t平均成绩\t总成绩\n);for(c=0;ci;c++){for(d=c+1;d=i;d++){if(st[c].averst[d].aver){temp=st[c].aver;st[c].aver=st[d].aver;st[d].aver=temp;}}}for(c=0;ci;c++)printf(\t%d\t%s\t%s\t%4d\t%10d\t%10d\t%14.1f\t%12.1f\n,st[c].num,st[c].name,st[c].sex,st[c].english,st[c].math,st[c].chinese,st[c].aver,st[c].sum);}voidmain()/*主函数*/{do第14页14{system(color64);system(modecon:cols=123lines=420);printf(*************学生信息管理系统*************\n\n\n);printf(\t\t1:输入学生信息\n);printf(\t\t2:显示学生信息\n);printf(\t\t3:按学生姓名查找信息\n);printf(\t\t4:按学生学号查找信息\n);printf(\t\t5:我的个人信息\n);printf(\t\t6:按平均成绩排序\n);printf(\t\t0:退出程序\n\n\n);printf(\t\t请输入功能选