版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/成绩管理系统课程设计报告学院:信息科学与技术学院专业:信息管理与信息系统班级:3班指导老师:学号:姓名:目录1.课程设计题目与要求 31.1设计题目: 31.2设计要求: 32.总体设计 32.1总体功能框架 32.2数据结构概要设计 53.详细设计 53.1数据结构详细设计 53.2系统功能详细设计 54.运行结果 155.课程设计总结 195.1编程中的问题及解决方法 195.2小结 195.3心得体会 205.4程序设计方法 20参考文献 20附录源程序 211.课程设计题目与要求1.1设计题目:成绩管理系统1.2设计要求:编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面:(1)信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据维护,此模块包括子模块有,增加学生信息,修改学生信息,删除学生信息。(2)信息查询:要求:查询时可实现按姓名查询,按学号查询。(3)成绩统计:要求:输入任意的一个课程名(如数学)和一个分数段(如60-70),统计出在此分数段的学生情况。(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)。(5)至少采用文本菜单界面(如果能采用图形菜单界面更好)。2.总体设计2.1总体功能框架1:新增学生信息2:输出学生信息3:修改学生信息4:删除学生信息5:按学号查询学生信息6:按姓名查询学生信息7:成绩排序8:成绩统计0:退出菜单流程图成绩管理系统成绩管理系统成绩统计成绩排序按姓名查找学生信息按学号查找学生信息删除学生信息修改学生信息输出学生信息新建学生信息成绩统计成绩排序按姓名查找学生信息按学号查找学生信息删除学生信息修改学生信息输出学生信息新建学生信息选择要统计的科目输入分数段输出这个科目在这个分数段内的人数选择要排序的科目输出排序后的结果输入要查找学生的姓名,输出要查找学生的信息输入要查找学生的学号,输出要查找学生的信息输入要删除学生的学号,输出删除后的学生信息输入要修改学生的学号,选择要修改的科目,输入修改后的分数输出学生的学号姓名,语文,数学和英语成绩输入学生的学号姓名,语文,数学和英语成绩选择要统计的科目输入分数段输出这个科目在这个分数段内的人数选择要排序的科目输出排序后的结果输入要查找学生的姓名,输出要查找学生的信息输入要查找学生的学号,输出要查找学生的信息输入要删除学生的学号,输出删除后的学生信息输入要修改学生的学号,选择要修改的科目,输入修改后的分数输出学生的学号姓名,语文,数学和英语成绩输入学生的学号姓名,语文,数学和英语成绩2.2数据结构概要设计structstudent{/*学生信息结构类型定义*/}students[Maxsize];3.详细设计3.1数据结构详细设计structstudent{/*学生信息结构类型定义*/intnum;/*学号*/charname[10];/*姓名*/intchinese,math,english;/*三门课程成绩*/}students[Maxsize];/*结构变量名表*/变量说明:num整型变量用来存放学号name[10]字符型变量用来存放学生姓名ChinesemathEnglish整型变量用来存放三门课成绩3.2系统功能详细设计voidnew_student(structstudentstudents[])/*新增学生信息*/voidoutput_student(structstudentstudents[])/*输出学生信息*/voidupdate_student(structstudentstudents[],intnum)/*修改学生信息*/voiddelect_student(structstudentstudents[],intnum)/*删除学生信息*/voidsearch1_student(structstudentstudents[],intnum)/*按学号查找*/voidsearch2_student(structstudentstudents[],charname/*按姓名查找*/voidsort_student(structstudentstudents[])/*成绩排序*/voidstatistics_student(structstudentstudents[])/*成绩统计*/开始主函数流程图开始输出主菜单输出主菜单输入选项代号S<0~9>输入选项代号S<0~9>S=0?S=0?YES新建学生信息S=1?NO新建学生信息S=1?YES输出学生信息S=2?NO输出学生信息S=2?YESNO修改学生信息S=3?YES修改学生信息S=3?NOS=4?删除学生信息YESS=4?删除学生信息NOS=5?按学号查找学生信息YESS=5?按学号查找学生信息NOS=6?按姓名学生信息S=6?按姓名学生信息NOS=7?成绩排序S=7?成绩排序结束结束成绩统计成绩统计NO新增学生信息函数流程图开始开始输入学号输入学号输入姓名输入姓名输入语文成绩输入语文成绩输入数学成绩输入数学成绩输入英语成绩输入英语成绩Count=count+1Count=count+1结束结束输出学生信息流程图开始开始输出没有学生信息Count=0?输出没有学生信息Count=0?NOFFor(i=0;i<count;i++)输出学号输出学号输出姓名输出姓名输出语文成绩输出语文成绩输出数学成绩输出数学成绩输出英语成绩输出英语成绩结束结束修改学生信息流程图开始开始输入要修改学生学号输入要修改学生学号选择要修改的科目选择要修改的科目S<1~3>输入修改后的分数输入修改后的分数M输出NotFound!S输出NotFound!Students[i].num=num?NO语文成绩=MS=1?YES语文成绩=MS=1?数学成绩=MS=2?数学成绩=MS=2?YESNO输出修改后的学生信息英语成绩=M输出修改后的学生信息英语成绩=M结束结束删除学生信息函数流程图开始开始输入要删除学生学号输入要删除学生学号输出输出NoFound!Students[i].numStudents[i].num=num?YES输出删除成功输出删除成功输出删除后学生信息输出删除后学生信息结束结束按学号查询学生信息函数流程图开始开始输入要查询学生学号输入要查询学生学号输出没有学生信息 输出没有学生信息Count=0?Count=0?NO输出NoFound!输出NoFound!Students[i].num=num?NOYES输出要查询的学生信息输出要查询的学生信息结束结束按姓名查找学生信息函数流程图开始开始CCount=0?输出NoFound!输出NoFound!输入要查询学生姓名YES输入要查询学生姓名输出没有学生信息输出没有学生信息StrcmpStrcmp(s1,s2)=0?NOYES输出要查询的学生信息输出要查询的学生信息结束结束成绩排序函数流程图开始开始选择排序科目选择排序科目S<1~3>语文成绩排序S=1?语文成绩排序S=1?YESNO数学成绩排序S=2?数学成绩排序S=2?YES输出所选课程排序后的信息英语成绩排序NO输出所选课程排序后的信息英语成绩排序结束结束成绩统计函数流程图开始开始选择要统计的科目选择要统计的科目 输入要统计的分数段输入要统计的分数段M~N统计语文成绩在M~N统计语文成绩在M~N中的人数S=1?YES统计数学成绩在M~N中的人数统计数学成绩在M~N中的人数S=2?YESNO统计英语成绩在M~N统计英语成绩在M~N中的人数输出统计后的结果结束结束4.运行结果图1菜单界面图2新增学生信息图3输出学生信息图4修改学生信息图5删除学生信息图6按学号查询学生信息图7按姓名查询学生信息图8成绩排序图9成绩统计5.课程设计总结5.1编程中的问题及解决方法在制作按学生姓名查询学生信息时采用“==”对两字符串进行比较而使程序不能正常运行经过改正调用字符串比较函数strcmp(s1,s2)对字符串进行比较从而解决了这个问题。5.2小结这次的课程设计是对我们这一学期《C语言程序设计》的一个总结与检验,对我来说还是有比较大难度的,在设计的过程中也遇到了许多的问题,这跟平时的知识积累不够,实践不够是有很大的关系的,许多知识都是一知半解,一些定义也不是很清楚,总感觉就是那样的可是一做起来却总是出错。但是通过翻阅书籍,请教别人等方法最终完成了这次的课程设计,同时也锻炼了自己综合所学知识,解决实际问题的能力,达到了学以致用的目的。随着科学技术的不断发展,计算机技术在我们生活中的应用更是无处不在,因此我们更应该学好这门课程掌握好这门课程。5.3心得体会通过这次的C语言课程设计,我觉的对自己的能力有了很大的提高,不仅培养了自己综合运用所学知识发现,提出,分析和解决实际问题的能力更加增强了自己实践的能力,虽然在编写程序的过程中也遇到了很多的问题有时会因一小点错误而使编译失败重新修改。但是失败的次数越多我们积累的经验就越多。不论在编译过程中经历了多少次的失败但在成功的那一刻我们的心中是喜悦的。不懂就问,多多实践,能够把平时所学的知识拼凑起来完成一个完整的程序,使自己思考问题更加的周密,也使自己更加的有耐心。但是我们对C语言的理解和使用还在一个初级阶段,我们要想掌握它要学习的还有很多,同时要懂得创新而不能一味的模仿别人,许多编程方法都是人们一步一步总结出来的,所以我们也要努力拓展自己的思维,在以后的学习中不断的提高和改进努力去寻求新的方法,以创造出更为完善的应用程序。5.4程序设计方法采用自顶向下,逐步细化的程序设计方法,以模块化设计为中心。参考文献《C语言程序设计基础》(第二版)高等教育出版社附录源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMaxsize50structstudent{intnum;charname[10];intchinese,math,english;}students[Maxsize];intcount=0;voidnew_student(structstudentstudents[]);voidoutput_student(structstudentstudents[]);voidupdate_student(structstudentstudents[],intnum);voiddelect_student(structstudentstudents[],intnum);voidsearch1_student(structstudentstudents[],intnum);voidsearch2_student(structstudentstudents[],charname[10]);voidsort_student(structstudentstudents[]);voidstatistics_student(structstudentstudents[]);intmain(void){intchoice,num;charname[10];structstudentstudnts[Maxsize];do{printf("成绩管理系统\n");printf("1:新增学生信息\n");printf("2:输出学生信息\n");printf("3:修改学生信息\n");printf("4:删除学生信息\n");printf("5:按学号查询学生信息\n");printf("6:按姓名查询学生信息\n");printf("7:成绩排序\n");printf("8:成绩统计\n");printf("0:退出\n"); printf("请输入您的选择<0~8>\n");scanf("%d",&choice);switch(choice){case1:new_student(students);break;case2:output_student(students);break;case3:printf("pleaseinputthenumberofupdatestudent:");scanf("%d",&num);update_student(students,num);break;case4:printf("pleaseinputthenumberofdelectstudent:");scanf("%d",&num);delect_student(students,num);break;case5:printf("pleaseinputthestudent'snumber:");scanf("%d",&num);search1_student(students,num);break;case6:printf("pleaseinputthestudent'sname:");scanf("%s",name);getchar();search2_student(students,name);break;case7:sort_student(students);break;case8:statistics_student(students);break;case0:break;}}while(choice!=0);printf("END!\n");return0;}voidnew_student(structstudentstudents[]){structstudents;if(count==Maxsize){printf("Thearrayisfull!\n");return;}printf("Inputthestudent'sname:");scanf("%s",);printf("Inputthestudent'snum:");scanf("%d",&s.num);printf("Inputthestudent'schinesescore:");scanf("%d",&s.chinese);printf("Inputthestudent'smathscore:");scanf("%d",&s.math);printf("Inputthestudent'senglishscore:");scanf("%d",&s.english);students[count]=s;count++;}voidoutput_student(structstudentstudents[]){inti;if(count==0){printf("countofstudentsiszero!\n");return;}printf("name\tnum\tchinese\tmath\tenglish\n");for(i=0;i<count;i++){printf("%s\t",students[i].name);printf("%d\t",students[i].num);printf("%d\t",students[i].chinese);printf("%d\t",students[i].math);printf("%d\n",students[i].english);}}voidupdate_student(structstudentstudents[],intnum){inti,course,score,flag=0;printf("choicethecourse:1.chinese2.math3.english:");scanf("%d",&course);printf("inputthenewscore:");scanf("%d",&score);for(i=0;i<count;i++)if(students[i].num==num){flag=1;break;}if(flag){switch(course){case1:students[i].chinese=score;break;case2:students[i].math=score;break;case3:students[i].english=score;break;}printf("Afterupdate:\n");printf("num\tname\tchinese\tmath\tenglish\n");printf("%d\t%s\t%d\t%d\t%d\n",students[i].num,students[i].name,students[i].chinese,students[i].math,students[i].english);}elseprintf("NoFound!\n");}voiddelect_student(structstudentstudents[],intnum){inti,j,flag=1;while(flag){for(i=0;i<count;i++)if(students[i].num==num){for(j=i;j<count;j++)students[j]=students[j+1];printf("删除成功!\n");printf("Afterdelect:\n");printf("num\tchinese\tmath\tenglish\n");for(i=0;i<count;i++)printf("%d\t%s\t%d\t%d\t%d\n",students[i].num,students[i].name,students[i].chinese,students[i].math,students[i].english);}elseflag=0;}}voidsearch1_student(structstudentstudents[],intnum){inti,flag=0;if(count==0){printf("countofstudentsiszero!\n");return;}for(i=0;i<count;i++)if(students[i].num==num){flag=1;break;}if(flag){printf("num:%d,",students[i].num);printf("name:%s,",students[i].name);printf("chinese:%d,",students[i].chinese);printf("math:%d,",students[i].math);printf("english:%d\n",students[i].english);}elseprintf("NotFound!");}voidsearch2_student(structstudentstudents[],charname[10]){inti,flag=1;if(count==0){printf("countofstudentsiszero!\n");return;}while(flag){for(i=0;i<count;i++)if(strcmp(students[i].name,name)==0){printf("num:%d,",students[i].num);printf("name:%s,",students[i].name);printf("chinese:%d,",students[i].chinese);printf("math:%d,",students[i].math);printf("english:%d\n",students[i].english);}elseflag=0;}}voidsort_student(structstudentstudents[]){inti,index,j,select;structstudenttemp;printf("pleaseinputthesubject:");printf("select:1.chinese2.math3.english:");scanf("%d",&select);switch(select){case1:for(i=0;i<count-1;i++){index=i;for(j=i+1;j<count;j++)if(students[j].chinese>students[i].chinese)index=j;temp=students[index];students[index]=students[i];students[i]=temp;}printf("num\tname\tchinese\n");for(i=0;i<count;i++)printf("%d\t%s\t%d\n",students[i].num,students[i].name,students[i].chinese);break;case2:for(i=0;i<count-1;i++){index=i;for(j=i+1;j<count;j++)if(students[j].math>students[i].math)index=j;temp=students[index];students[index]=students[i];students[i]=temp;}printf("num\tname\tmath\n");for(i=0;i<count;i++)printf("%d\t%s\t%d\n",students[i].num,students[i].name,students[i].math);break;case3:for(i=0;i<count-1;i++){index=i;for(j=i+1;j<count;j++)if(students[j].english>students[i].english)index=j;temp=students[index];students[index]=students[i];students[i]=temp;}printf("num\tname\tenglish\n");for(i=0;i<count;i++)printf("%d\t%s\t%d\n",students[i].num,students[i].name,students[i].english);break;}}voidstatistics_student(structstudentstudents[]){intm,n,i,select,total=0;printf("pleaseinputthesubject:");printf("select:1.chinese2.math3.english:");scanf("%d",&select);printf("pleaseinputthescorefrommton:");
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职(畜牧兽医)饲料营养阶段测试试题及答案
- 2025年高职蒙医学(蒙药应用)试题及答案
- 2025年高职纸制品设计(设计实操)试题及答案
- 2025年高职第二学年(环境艺术设计)AI辅助设计阶段测试试题及答案
- 2025年大学第四学年(生物学)分子生物学综合测试试题及答案
- 2025年高职第一学年(市场营销)营销策划阶段测试试题及答案
- 2025年高职水产养殖管理应用管理(管理技术)试题及答案
- 2025年大学大二(广播电视编导)电视节目编导综合测试卷
- 2025年大学(房地产开发与管理)房地产估价案例分析阶段测试题及解析
- 2026年阿坝职业学院单招综合素质笔试参考题库带答案解析
- 肿瘤化疗导致的中性粒细胞减少诊治中国专家共识解读
- 2025年查对制度考核考试题库(答案+解析)
- 云南省2025年普通高中学业水平合格性考试历史试题
- 四川省2025年高职单招职业技能综合测试(中职类)汽车类试卷(含答案解析)
- 消化系统肿瘤多学科协作(MDT)诊疗方案
- 安泰科技招聘笔试题库2025
- 二级生物安全培训课件
- 2025广东省横琴粤澳开发投资有限公司第二批社会招聘21人笔试历年典型考点题库附带答案详解试卷2套
- 塔吊拆除安全操作培训
- 2025年及未来5年中国抓娃娃机行业市场全景监测及投资前景展望报告
- 电机与拖动基础期末试卷及答案
评论
0/150
提交评论