资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程设计说明书 NO.16沈 阳 大 学 课程设计说明书 NO.16沈 阳 大 学 简单的学生信息管理系统简单的学生信息管理系统 1 1课程设计的目的课程设计的目的通过设计学生信息管理系统,来加深对C 语言课程所学知识的理解,基本掌握面向过程程序设计的基本思路和方法;达到熟练掌握 C 语言的基本知识和技能;进一步巩固 C 语言语法规则。学会编制结构清晰、风格良好、数据结构适当的语言程序,从而具备解决综合性实际问题的能力。 充分发挥广大同学的潜力,通过此次程序设计初步掌握设计学生成绩管理系统的基本方法学生成绩管理系统是一个教学单位不可缺少的部分他的教学内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在缺点。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,他已进入人类社会的各个领域并发挥着越来越重要的作用,作为计算机应用的一部分,使用计算机对学生信息及成绩进行管理,具有手工管理所无法比拟的优点2设计方案论证与源程序清单设计方案论证与源程序清单课程设计说明书 NO.16沈 阳 大 学 2.1 设计思路:设计思路:过的 C 语言知识,掌握好结构体,指针,文件的操作以及 C 语言算法,就程序本身来看,功能 1 和 4 的算法相似,输入一条记录到结构体中去,其中有一部很关键,就是通过 gets 将所有的多余的字符,回车读去,否则就会出错。功能 2 是显示所有的记录,通过循环输出,格式也比较重要。功能 3 为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的时候,要用到 strcmp1,strcpy2等函数。功能 5 为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找到就将此记录都向前移一位,返回 n-1。功能 6 的算法在 5 中就已经体现了,输入姓名,一一比较。功能 7 为新增的功能,因为考虑到原来给出的函数中竟然没有对学生成绩的统计功能,因此新增此功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息等。 2.2 程序设计功能模块程序设计功能模块图图 1 学生信息管理系统学生信息管理系统学生成绩管理系统输 入 记 录显 示 记 录按 学 号 排 序插 入删 除查 找统 计课程设计说明书 NO.16沈 阳 大 学 输入数据For i=0 to i=n-1For j=0 to j=n-1T F studentj.studentnumstudentj+1 .studentnumstudentj.studentnumstudentj+ 1.studentnum studentj. num j+1 num 输出数据图图 2 按学号排序流程图按学号排序流程图选择输入数据并调用菜单函数流程图如图 3 所示。图图 3.3.调用菜单函数调用菜单函数功能模块功能模块调用菜单函数 menu()输入需要操作的步骤(07)While(c7)Return(c-0)课程设计说明书 NO.16沈 阳 大 学 图图 3 3 switch 语句流程图语句流程图输入 nswitch(n) 获得 n 的值当 flag=1是 case 1 否 case 2 是 否 case 3 是 否是 case 4 否Case5 否是 Case6 否是是 否是 否Input( )Display ()Sort()Insert ()Del ()Quer y() Stisti c()tCase7Case8Out ()Defau lt break课程设计说明书 NO.16沈 阳 大 学 图图 4 for 语句流程图语句流程图2.3 源程序源程序#include /*引用库函数*/#include#include#includetypedef struct /*定义结构体数组*/char num10; /*学号*/char name20; /*姓名*/int score; /*成绩*/Student;Student stu80; /*结构体数组变量*/int menu_select() /*菜单函数*/char c;dosystem(“cls“); /*运行前清屏For j=o to istudiN Yj=iScore7);return(c-0); /*返回选择*/int Input(Student stud,int n) /*输入若干条记录*/int i=0;char sign,x10; /*x10为清除多余的数据所用*/while(sign!=n /*交互输入*/scanf(“ttt%s“,studn+i.num);printf(“ttt 姓名:“);scanf(“ttt%s“,studn+i.name);printf(“ttt 成绩:“);scanf(“ttt%d“,gets(x); /*清除多余的输入*/printf(“ttt 是否还有其他人?(Y/N)“);scanf(“ttt%c“, /*输入判断*/i+;return(n+i);void Display(Student stud,int n) /*显示所有记录*/课程设计说明书 NO.16沈 阳 大 学 int i;printf(“ttt-n“); /*格式头*/printf(“ttt 学号 姓名 成绩n“);printf(“ttt-n“);for(i=1;i1 /*格式*/printf(“ttt“);system(“pause“);printf(“ttt-n“);printf(“ttt“);system(“pause“);void Sort_by_num(Student stud,int n) / *按学号排序*/int i,j,*p,*q,s;char t10;for(i=0;i0)strcpy(t,studj+1.num);strcpy(studj+1.num,studj.num);strcpy(studj.num,t);strcpy(t,studj+1.name);strcpy(studj+1.name,studj.name) ; strcpy(studj.name,t); p=q=s=*p;*p=*q;*q=s;课程设计说明书 NO.16沈 阳 大 学 int Insert_a_record(Student stud,int n) /*插入一条记录*/char x10; /*清除多余输入所用*/printf(“ttt 学号:“); /*交互式输入*/scanf(“ttt%s“,studn.num);printf(“ttt 姓名:“);scanf(“ttt%s“,studn.name);printf(“ttt 成绩:“);scanf(“ttt%d“,gets(x);n+;Sort_by_num(stud,n); /*调用排序函数*/printf(“ttt 添加成功!n“); /*返回成功信息*/return(n);int Delete_a_record(Student stud,int n) /*按姓名查找,删除一条记录*/char s20;int i=0,j;printf(“ttt 姓名:“); /*交互式问寻*/scanf(“%s“,s);while(strcmp(studi.name,s)!=0if(studk.scorestudi.score) k=i;aver=1.0*sum/n;printf(“ttt 总共记录数: %d .n“,n); /*总共记录数*/printf(“ttt 最高分:n“); /*最高分*/printf(“ttt 学号:%s 姓名:%s 成绩:%dn“,studj.num,studj.name,studj.score);printf(“ttt 最低分:n“); /*最低分*/printf(“ttt 学号:%s 姓名:%s 成绩:%dn“,studk.num,studk.name,studk.score);课程设计说明书 NO.16沈 阳 大 学 printf(“ttt 平均分: %5.2fn“,aver); /*平均分*/void main() /*主函数*/int n=0;for(;)switch(menu_select() /*选择判断*/case 1:printf(“ttt 输入n“); /*输入
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号