学籍管理系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scanf("%s%s",&time[j],&site[j]); } for(i=0;i<4;i++)
for(j=i+1;j<5;j++) while(strcmp(time[i],time[j])==0&&strcmp(site[i],site[j])==0) { printf("\n\n%s科目与%s科目相冲突,请重新输%s的考试
1.1 系统实现的目标
课程设计的任务: 制作一个小型的学生学籍管理系统,要求制作一个菜单,实现数据的 录入,数据的显示,数据查找,数据的删除,数据的保存,数据的统 计,数据的修改,系统的退出。系统的设计要求用到C面向对象的程序 设计,要求用到类来实现,同时每一个功能用到一个函数。
基本功能: 学生基本信息录入
这部分是各科目各分数段人数统计,我们采用单科学生循环模式, a[j][]中j所代表的科目名称,我们只选取0~100分的人员进行操作,在实 际输入的过程中可能会有输入的错误,我们将不在分数段的人不纳入统 计范围,并且报错,除以10可以帮助我们选择相对应的分数段进行人数 的相加。
for(i=0;i<5;i++) { printf("\n请输入%s的补考时间、地点:",sbj[i]);
块,并相应的调用模块使用的函数进行运算,并使用break在调用完函
数后退出switch语句。
然后询问用户是否继续操作,使用do-while语句来确认用户的输入
的合法性,并使用使用getch语句来读取,然后使用外层的do-while判
断是否退出循环;
而myprint函数简单使用了printf语句来显现将主菜单打印在屏幕上
后面的学习生的学号和他的进行对比,如果后面某个学生的学号筱宇第 一个学生的学号,将这个学生的所有性能系和第一个学生对调,那么这 个学生的信息就放在了第一位,如果后面还有这样的情况,将他们的位 置对调。循环完后面所有的学生后就确定了第一位的学生是学号最小 的。然后进行第二个排序,也是和后面的所有学生进行对比,有符合情 况的,交换位置。一次进行到倒数第二个,最后一个就不用比较了,他 就是最大的。
就可开始进行操作。
1.2、 结构框架图 主菜单
保存退
出系统 修改学
生信息 学生信
息排序 查询学
生信息
录入学
生信息
删除学
生信息
此外,有几个特别的语言需要说明:
do
{ mainprint();
printf("
");
choose=getche( );
switch(choose)
{
case'1':scoreInput();break; /*成绩录入*/
给它添加了很多功能。在帮同学修改程序的过程中,也遇到过一个问题。在头文件后定义了子 函数,可是之后忘了编写子函数,在纠错时,有的是不会发现错误的,但是连接过程中就会报 告出错。我觉得在以后的编程过程中,最好用什么函数写什么函数,后者在写完一个子函数后 再在头文件底下声明。 C语言实习基本上由老师引导,自己很多都靠自学,不明白的问老师,自学能力得到了很大的 培养。在实习过程中,我感觉到一点,程序是不能一气呵成的。至少一气呵成的程序不会尽善 尽美。程序编写要一步一步的完成。首先,对于要编的程序要有一个总体思路。要明确想要什 么。只要把思路理清楚了,程序就好编写了。把程序分割成几个块,即多个函数,一块一块的 编写。然后将分散的函数用另外的函数连接起来或者用main函数连接。到这一步,程序也就初 步编成了,之后便是调试,检查错误。最后我觉得还可以对于已经编写好的程序进行一些修改 添加,使它更加人性化。优化程序的阶段是很重要的。
一、 分析系统功能,绘制系统功
能结构框架图
1.1、 分析系统功能
(1) 用户进入主菜单后,就会在看到,菜单选项中添加有系统的各
项功能,进入的
应的选项就可进行相应的操作.其主要功能有:
1、录入学生信息 2、删除学生信息
3、查询学生信息 4、学生信息排序
5、改学生信息
6、保存退出系统
(2) 用户选择所需操作的选项,进入相应的操作界面,在这里用户
将他的信息输出且结束循环体,如果没有,即自动断出,那么查询所代
表的i=n,这样,我们就判断出这个学生的信息不存在。
调试结果
学生管理界面
四.编程中遇到的困难解决方法总 结心得
在学习C语言编程的过程中,经常会在语句结束时少“;”或者把中文输入的引号输入文件,
很难发现错误所在。 由于原来题目要求较少,题目较简单,在编译时,我先按照题目要求将它编写好,之后又
扩展功能: 学生数据的添加、修改、与删除 学生数据的读取与存储 系统特点:
系统要能够对相应的数据进行很好的测试,系统的统计对每一科的 总成绩,平均成绩,及格律都进行了统计;系统数据的录入。
1.2 系统实现方案
第一步:分析题目,建立类并派生出它的子类,画出类图。 第二步:画出流程,根据流程图编写程序清单 第三步:上机调试程序(使用单步调试,设置断点、分块调试的方 法)。 第五步:及时整理资料,撰写课程设计报告中有关这个题目的内容。
printf("\n
即将进入主菜单,要继续选择吗(Y/N)?\n");
do
{
yes_no=getche( );
}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='y'||yes_no=='Y');
使用该语句来实现在用户输入选择项后,程序判断后进Βιβλιοθήκη Baidu对应模
case'2':scoreStat();break;
case'3':studentStatus();break;
case'4':mynew();break;
case'0':break;
default:printf("\n %c是非法选项!\n"); break;
}
if(choose=='0') break;
时间、地点:",sbj[i],sbj[j],sbj[j]); scanf("%s%s",&time[j],&site[j]);
} 补考的考试时间和地点键盘输入,想将所有的补考信息输入,然后
进行比较,依次使每一科的信息都和其他的相对比,选出时间相互冲突
的,再次输入,直至所有的时间都不相冲。
printf("\n请输入要查学的学生的姓名:");
的功能。
for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(ex2[i].num,ex2[j].num)>0) { temp=ex2[i]; ex2[i]=ex2[j]; ex2[j]=temp; }
进行排序时,我们需要先将最开始的学生当成学号最小的学生,用
程序实践报告
姓名: 张涛 班级:电子信息工程1202班 学号: 20123684
【摘要】 学籍管理系统设计涉及学生信息的录入,显示,查找,删 除,修改,统计,保存,退出等功能,从而能够对信息进行处理。程序 中运用了相关类的知识,同时定义了一定数量的数据及成员函数。程序 使用了数组记录统计的相关数据,运用了指针实现相应功能函数的功 能,程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的 调试。
而这部分的模式也是按平均分排序的主要模式。 for(j=0;j<5;j++)
for(i=0;i<n;i++) { if(list[i][j]>100||list[i][j]<0) e++;
else {t=(int)list[i][j]/10; switch(t) { case 10:a[j][0]++;break; case 9:a[j][0]++;break; case 8:a[j][1]++;break; case 7:a[j][2]++;break; case 6:a[j][3]++;break; default:a[j][4]++;break; }}
scanf("%s",&ch);
for(i=0;i<n;i++)
if(strcmp(ex4[i].name,ch)==0)
{ printf("\n 您查询的是学号为%s的学生,他的成绩如
下:",ex4[i].num);
printf("\n 高数:%-7.1f,英语:%-7.1f,c语言编程:%-7.1f,电路
设计:%-7.1f,法律基
础:%-7.1f\n",ex4[i].score[0],ex4[i].score[1],ex4[i].score[2],ex4[i].score[3],ex4[i].score[4]
break;}
if(i==n)printf("\n
查无此人.......\n");
查询单个学生信息,输入学生的姓名,查找,如果有符合的学生,
for(j=i+1;j<5;j++) while(strcmp(time[i],time[j])==0&&strcmp(site[i],site[j])==0) { printf("\n\n%s科目与%s科目相冲突,请重新输%s的考试
1.1 系统实现的目标
课程设计的任务: 制作一个小型的学生学籍管理系统,要求制作一个菜单,实现数据的 录入,数据的显示,数据查找,数据的删除,数据的保存,数据的统 计,数据的修改,系统的退出。系统的设计要求用到C面向对象的程序 设计,要求用到类来实现,同时每一个功能用到一个函数。
基本功能: 学生基本信息录入
这部分是各科目各分数段人数统计,我们采用单科学生循环模式, a[j][]中j所代表的科目名称,我们只选取0~100分的人员进行操作,在实 际输入的过程中可能会有输入的错误,我们将不在分数段的人不纳入统 计范围,并且报错,除以10可以帮助我们选择相对应的分数段进行人数 的相加。
for(i=0;i<5;i++) { printf("\n请输入%s的补考时间、地点:",sbj[i]);
块,并相应的调用模块使用的函数进行运算,并使用break在调用完函
数后退出switch语句。
然后询问用户是否继续操作,使用do-while语句来确认用户的输入
的合法性,并使用使用getch语句来读取,然后使用外层的do-while判
断是否退出循环;
而myprint函数简单使用了printf语句来显现将主菜单打印在屏幕上
后面的学习生的学号和他的进行对比,如果后面某个学生的学号筱宇第 一个学生的学号,将这个学生的所有性能系和第一个学生对调,那么这 个学生的信息就放在了第一位,如果后面还有这样的情况,将他们的位 置对调。循环完后面所有的学生后就确定了第一位的学生是学号最小 的。然后进行第二个排序,也是和后面的所有学生进行对比,有符合情 况的,交换位置。一次进行到倒数第二个,最后一个就不用比较了,他 就是最大的。
就可开始进行操作。
1.2、 结构框架图 主菜单
保存退
出系统 修改学
生信息 学生信
息排序 查询学
生信息
录入学
生信息
删除学
生信息
此外,有几个特别的语言需要说明:
do
{ mainprint();
printf("
");
choose=getche( );
switch(choose)
{
case'1':scoreInput();break; /*成绩录入*/
给它添加了很多功能。在帮同学修改程序的过程中,也遇到过一个问题。在头文件后定义了子 函数,可是之后忘了编写子函数,在纠错时,有的是不会发现错误的,但是连接过程中就会报 告出错。我觉得在以后的编程过程中,最好用什么函数写什么函数,后者在写完一个子函数后 再在头文件底下声明。 C语言实习基本上由老师引导,自己很多都靠自学,不明白的问老师,自学能力得到了很大的 培养。在实习过程中,我感觉到一点,程序是不能一气呵成的。至少一气呵成的程序不会尽善 尽美。程序编写要一步一步的完成。首先,对于要编的程序要有一个总体思路。要明确想要什 么。只要把思路理清楚了,程序就好编写了。把程序分割成几个块,即多个函数,一块一块的 编写。然后将分散的函数用另外的函数连接起来或者用main函数连接。到这一步,程序也就初 步编成了,之后便是调试,检查错误。最后我觉得还可以对于已经编写好的程序进行一些修改 添加,使它更加人性化。优化程序的阶段是很重要的。
一、 分析系统功能,绘制系统功
能结构框架图
1.1、 分析系统功能
(1) 用户进入主菜单后,就会在看到,菜单选项中添加有系统的各
项功能,进入的
应的选项就可进行相应的操作.其主要功能有:
1、录入学生信息 2、删除学生信息
3、查询学生信息 4、学生信息排序
5、改学生信息
6、保存退出系统
(2) 用户选择所需操作的选项,进入相应的操作界面,在这里用户
将他的信息输出且结束循环体,如果没有,即自动断出,那么查询所代
表的i=n,这样,我们就判断出这个学生的信息不存在。
调试结果
学生管理界面
四.编程中遇到的困难解决方法总 结心得
在学习C语言编程的过程中,经常会在语句结束时少“;”或者把中文输入的引号输入文件,
很难发现错误所在。 由于原来题目要求较少,题目较简单,在编译时,我先按照题目要求将它编写好,之后又
扩展功能: 学生数据的添加、修改、与删除 学生数据的读取与存储 系统特点:
系统要能够对相应的数据进行很好的测试,系统的统计对每一科的 总成绩,平均成绩,及格律都进行了统计;系统数据的录入。
1.2 系统实现方案
第一步:分析题目,建立类并派生出它的子类,画出类图。 第二步:画出流程,根据流程图编写程序清单 第三步:上机调试程序(使用单步调试,设置断点、分块调试的方 法)。 第五步:及时整理资料,撰写课程设计报告中有关这个题目的内容。
printf("\n
即将进入主菜单,要继续选择吗(Y/N)?\n");
do
{
yes_no=getche( );
}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='y'||yes_no=='Y');
使用该语句来实现在用户输入选择项后,程序判断后进Βιβλιοθήκη Baidu对应模
case'2':scoreStat();break;
case'3':studentStatus();break;
case'4':mynew();break;
case'0':break;
default:printf("\n %c是非法选项!\n"); break;
}
if(choose=='0') break;
时间、地点:",sbj[i],sbj[j],sbj[j]); scanf("%s%s",&time[j],&site[j]);
} 补考的考试时间和地点键盘输入,想将所有的补考信息输入,然后
进行比较,依次使每一科的信息都和其他的相对比,选出时间相互冲突
的,再次输入,直至所有的时间都不相冲。
printf("\n请输入要查学的学生的姓名:");
的功能。
for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(ex2[i].num,ex2[j].num)>0) { temp=ex2[i]; ex2[i]=ex2[j]; ex2[j]=temp; }
进行排序时,我们需要先将最开始的学生当成学号最小的学生,用
程序实践报告
姓名: 张涛 班级:电子信息工程1202班 学号: 20123684
【摘要】 学籍管理系统设计涉及学生信息的录入,显示,查找,删 除,修改,统计,保存,退出等功能,从而能够对信息进行处理。程序 中运用了相关类的知识,同时定义了一定数量的数据及成员函数。程序 使用了数组记录统计的相关数据,运用了指针实现相应功能函数的功 能,程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的 调试。
而这部分的模式也是按平均分排序的主要模式。 for(j=0;j<5;j++)
for(i=0;i<n;i++) { if(list[i][j]>100||list[i][j]<0) e++;
else {t=(int)list[i][j]/10; switch(t) { case 10:a[j][0]++;break; case 9:a[j][0]++;break; case 8:a[j][1]++;break; case 7:a[j][2]++;break; case 6:a[j][3]++;break; default:a[j][4]++;break; }}
scanf("%s",&ch);
for(i=0;i<n;i++)
if(strcmp(ex4[i].name,ch)==0)
{ printf("\n 您查询的是学号为%s的学生,他的成绩如
下:",ex4[i].num);
printf("\n 高数:%-7.1f,英语:%-7.1f,c语言编程:%-7.1f,电路
设计:%-7.1f,法律基
础:%-7.1f\n",ex4[i].score[0],ex4[i].score[1],ex4[i].score[2],ex4[i].score[3],ex4[i].score[4]
break;}
if(i==n)printf("\n
查无此人.......\n");
查询单个学生信息,输入学生的姓名,查找,如果有符合的学生,