C语言课程设计-成绩管理系统.docx_第1页
C语言课程设计-成绩管理系统.docx_第2页
C语言课程设计-成绩管理系统.docx_第3页
C语言课程设计-成绩管理系统.docx_第4页
C语言课程设计-成绩管理系统.docx_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成绩管理系统课程设计报告学院:信息科学与技术学院专业:信息管理与信息系统班级: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数据结构概要设计struct student /*学生信息结构类型定义*/studentsMaxsize;3.详细设计3.1数据结构详细设计struct student /*学生信息结构类型定义*/int num; /*学号*/char name10; /*姓名*/int chinese,math,english; /*三门课程成绩*/studentsMaxsize; /*结构变量名表*/变量说明:num 整型变量用来存放学号 name10 字符型变量用来存放学生姓名 Chinese math English 整型变量用来存放三门课成绩 3.2系统功能详细设计void new_student(struct student students) /*新增学生信息*/void output_student(struct student students) /*输出学生信息*/void update_student(struct student students,int num)/*修改学生信息*/ void delect_student(struct student students,int num)/*删除学生信息*/void search1_student(struct student students,int num) /*按学号查找*/void search2_student(struct student students,char name/*按姓名查找*/void sort_student(struct student students) /*成绩排序*/void statistics_student(struct student students) /*成绩统计*/开始1 主函数流程图输出主菜单输入选项代号SS=0? YES新建学生信息S=1? NO YES输出学生信息S=2? NO YES NO修改学生信息S=3? YES NOS=4? 删除学生信息 YES NOS=5? 按学号查找学生信息 YES NOS=6? 按姓名学生信息 YES NOS=7? 成绩排序 YES结束 成绩统计 NO2 新增学生信息函数流程图开始输入学号输入姓名输入语文成绩输入数学成绩输入英语成绩Count=count+1结束3 输出学生信息流程图开始输出没有学生信息Count=0? YES NOFor(i=0;icount;i+)输出学号输出姓名输出语文成绩输出数学成绩输出英语成绩结束4 修改学生信息流程图开始输入要修改学生学号选择要修改的科目S输入修改后的分数M输出Not Found!Studentsi.num=num? NO语文成绩=MS=1? YES数学成绩=MS=2? NO YES NO输出修改后的学生信息英语成绩=M结束5 删除学生信息函数流程图开始输入要删除学生学号输出No Found!Studentsi.num=num? NO YES输出删除成功输出删除后学生信息结束6 按学号查询学生信息函数流程图开始输入要查询学生学号输出没有学生信息Count=0? YES NO输出No Found!Studentsi.num=num? NO YES输出要查询的学生信息结束7 按姓名查找学生信息函数流程图开始Count=0? 输出No Found!输入要查询学生姓名 YES输出没有学生信息Strcmp(s1,s2)=0? NO NO YES输出要查询的学生信息结束8 成绩排序函数流程图开始选择排序科目S语文成绩排序S=1? YES YES NO数学成绩排序S=2? YES YES输出所选课程排序后的信息英语成绩排序 NO结束9 成绩统计函数流程图开始选择要统计的科目输入要统计的分数段MN统计语文成绩在MN中的人数S=1? YES统计数学成绩在MN中的人数S=2? NO YES NO统计英语成绩在MN中的人数输出统计后的结果结束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#include#include#define Maxsize 50struct studentint num;char name10;int chinese,math,english;studentsMaxsize;int count=0;void new_student(struct student students);void output_student(struct student students);void update_student(struct student students,int num);void delect_student(struct student students,int num);void search1_student(struct student students,int num);void search2_student(struct student students,char name10);void sort_student(struct student students);void statistics_student(struct student students);int main(void) int choice,num; char name10; struct student studntsMaxsize; 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(请输入您的选择n); scanf(%d,&choice); switch(choice) case 1:new_student(students); break; case 2:output_student(students); break; case 3:printf(please input the number of update student:); scanf(%d,&num); update_student(students,num); break; case 4:printf(please input the number of delect student:); scanf(%d,&num); delect_student(students,num); break; case 5:printf(please input the students number:); scanf(%d,&num); search1_student(students,num); break; case 6:printf(please input the students name:); scanf(%s,name); getchar(); search2_student(students,name); break; case 7:sort_student(students); break; case 8:statistics_student(students); break; case 0:break; while(choice!=0); printf(END!n); return 0;void new_student(struct student students) struct student s; if(count=Maxsize) printf(The array is full!n); return; printf(Input the students name:); scanf(%s,); printf(Input the students num:); scanf(%d,&s.num); printf(Input the students chinese score:); scanf(%d,&s.chinese); printf(Input the students math score:); scanf(%d,&s.math); printf(Input the students english score:); scanf(%d,&s.english); studentscount=s; count+;void output_student(struct student students) int i; if(count=0) printf(count of students is zero!n); return; printf(nametnumtchinesetmathtenglishn); for(i=0;icount;i+) printf(%st,); printf(%dt,studentsi.num); printf(%dt,studentsi.chinese); printf(%dt,studentsi.math); printf(%dn,studentsi.english); void update_student(struct student students,int num) int i,course,score,flag=0; printf(choice the course:1.chinese 2.math 3.english:); scanf(%d,&course); printf(input the new score:); scanf(%d,&score); for(i=0;icount;i+) if(studentsi.num=num) flag=1; break; if(flag) switch(course) case 1:studentsi.chinese=score;break; case 2:studentsi.math=score;break; case 3:studentsi.english=score;break; printf(After update:n); printf(numtnametchinesetmathtenglishn); printf(%dt %st %dt %dt %dn,studentsi.num,,studentsi.chinese,studentsi.math,studentsi.english); else printf(No Found!n);void delect_student(struct student students,int num) int i,j,flag=1; while(flag) for(i=0;icount;i+) if(studentsi.num=num) for(j=i;jcount;j+) studentsj=studentsj+1; printf(删除成功!n); printf(After delect:n); printf(numtchinesetmathtenglishn); for(i=0;icount;i+) printf(%dt %st %dt %dt %dn,studentsi.num,,studentsi.chinese,studentsi.math,studentsi.english); else flag=0; void search1_student(struct student students,int num) int i,flag=0; if(count=0) printf(count of students is zero!n); return; for(i=0;icount;i+) if(studentsi.num=num) flag=1; break; if(flag) printf(num:%d,studentsi.num); printf(name:%s,); printf(chinese:%d,studentsi.chinese); printf(math:%d,studentsi.math); printf(english:%dn,studentsi.english); else printf(Not Found!);void search2_student(struct student students,char name10) int i,flag=1; if(count=0) printf(count of students is zero!n); return; while(flag) for(i=0;icount;i+) if(strcmp(,name)=0) printf(num:%d,studentsi.num); printf(name:%s,); printf(chinese:%d,studentsi.chinese); printf(math:%d,studentsi.math); printf(english:%dn,studentsi.english); else flag=0; void sort_student(struct student students) int i,index,j,select; struct student temp; printf(please input the subject:); printf(select:1.chinese 2.math 3.english:); scanf(%d,&select); switch(select) case 1:for(i=0;icount-1;i+) index=i; for(j=i+1;jstudentsi.chinese) index=j; temp=studentsindex; studentsindex=studentsi; studentsi=temp; printf(numtnametchinesen); for(i=0;icount;i+) printf(%dt%st%dn,studentsi.num,,studentsi.chinese); break; case 2:for(i=0;icount-1;i+) index=i; for(j=i+1;jstudentsi.math) index=j; temp=studentsindex; studentsindex=studentsi; studentsi=temp; printf(numtnametmathn); for(i=0;icount;i+) printf(%dt%st%dn,studentsi.num,,studentsi.math); break; case 3:for(i=0;icount-1;i+) index=i; for(j=i+1;jstudentsi.english) index=j; temp=studentsindex; studentsindex=studentsi; studentsi=temp; printf(numtnametenglishn); for(i=0;icount;i+) printf(%dt%st%dn,studentsi.num,,studentsi.english); break; void statistics_student(struct student students) int m,n,i,select,total=0; printf(please input the subject:); printf(select:1.chinese 2.math 3.english:); scanf(%d,&select); printf(please input the score from m to n:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论