C语言程序设计学生成绩管理系统设计.docx
- 文档编号:2392212
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:23
- 大小:152.41KB
C语言程序设计学生成绩管理系统设计.docx
《C语言程序设计学生成绩管理系统设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计学生成绩管理系统设计.docx(23页珍藏版)》请在冰豆网上搜索。
C语言程序设计学生成绩管理系统设计
课程设计成果报告
题目:
学生成绩管理系统设计
课程:
程序设计基础
1设计目的
本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完《程序设计基础》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:
1、巩固和加深学生对C语言课程的基本知识的理解和掌握;
2、掌握C语言编程和程序调试的基本技能;
3、利用C语言进行基本的软件设计;
4、掌握书写程序设计说明文档的能力;
5、提高运用C语言解决实际问题的能力。
2设计任务内容
学生成绩管理系统设计
学生成绩相关信息包括:
学号、姓名、班级、数学成绩、英语成绩、计算机成绩等(学号唯一),总成绩。
系统要求实现如下功能:
1)系统功能以菜单方式工作;
2)数据的添加:
从键盘输入数据存放到结构体数组中;
3)数据的插入:
从指定位置插入一条记录;
4)数据的输出:
在屏幕上显示出所添加的数据;
5)数据的删除:
从指定位置删除一条记录;
6)数据的查找,通常以两种方式进行查找,如姓名、记录号(或学号、职工号等);
7)数据的排序;
8)退出系统。
以上每个内容需要通过单独的函数来实现,数据以结构体数组的形式组织。
3系统总体设计
4系统详细设计
本系统用来储存多名学生的信息,并对信息进行相关的处理,使用结构体实现相关功能。
结构体代码如下:
typedefstruct//为结构体起别名stu[N],简化程序。
{
charno[20];//定义no为char型数据,且长度有20列。
charname[20];
charClass[20];
intmath,english,computer,all;//定义结构体中的所有元素。
}Student;
Studentstu[N];
相关函数:
结构体函数、main(主函数)、Input(输入函数)、Output(输出函数)、Findname(按姓名查询函数)、Findno(按学号查询函数)、Delete(删除函数)、Insert(插入函数)、Rank(排序函数)、exit(退出函数)
4.1输入学生信息
输入学生信息就是对定义的结构体中的成员进行赋值。
其中,用户需要输入的是学号、姓名、班级、数学成绩、英语成绩、计算机成绩,以及是否继续的指令,总成绩由求和函数实现。
代码如下:
voidInput()//用户自定义Input函数,实现数据的输入功能。
{
chark,x[20];
while(k!
='n'&&k!
='N')//当输入的不是N或者n时,执行该循环。
{
printf("输入学生学号:
");
scanf("%s",stu[n].no);
printf("输入学生姓名:
");
scanf("%s",stu[n].name);
printf("输入学生班级:
");
scanf("%s",stu[n].Class);
printf("输入学生的数学成绩:
");
scanf("%d",&stu[n].math);
printf("输入学生的英语成绩:
");
scanf("%d",&stu[n].english);
printf("输入学生的计算机成绩:
");
scanf("%d",&stu[n].computer);
stu[n].all=stu[n].math+stu[n].english+stu[n].computer;//输入学生的各项信息,并赋值到结构体中。
gets(x);//清除多余的输入内容。
printf("输入下一个?
(Y/N)\n");
scanf("%c",&k);
n++;//执行完一次循环后,将全局变量n(成员数)自增1。
}
}
4.2输出学生信息
输出学生信息就是将结构体中所有成员的各个元素的值显示在屏幕上,使用%-10d或者%-10s格式(左对齐,每个数据占10列)可将数据用表列形式输出,使用循环语句将i个成员信息全部输出。
代码如下:
voidOutput()//用户自定义Output函数,实现数据的输出功能。
{
inti;
printf("-------------------------------------------------------------------\n");
printf("学号姓名班级数学英语计算机总成绩\n");
printf("-------------------------------------------------------------------\n");
for(i=0;i { printf("%-10s%-10s%-10s%-10d%-10d%-10d%-10d\n",stu[i].no,stu[i].name,stu[i].Class,stu[i].math,stu[i].english,stu[i].computer,stu[i].all); printf("-------------------------------------------------------------------\n"); }//使用for循环语句,输出结构体中所有成员信息。 } 4.3删除学生信息 删除学生信息就是将第i+1个成员的每个元素赋值到要删除的第i个成员的相应元素的位置上,再输出结构体中的前i个成员信息,使用循环结构依次执行到第n个成员,实现对第i个成员的删除。 代码如下: voidDelete()//用户自定义Output函数,实现数据的输入功能。 { charx[20];//输入要删除的学生姓名,char型数据占20列。 intj,i=0; printf("输入要删除的学生姓名: "); scanf("%s",x); while(strcmp(stu[i].name,x)! =0&&i i++;//比较输入的x数据与结构体中name元素,若不相同,i自增1。 if(i==n) { printf("未找到相关学生信息! \n"); }//若i与n值相同,说明无此数据,输出“未找到学生信息! ”。 for(j=i;j { strcpy(stu[j].no,stu[j+1].no); strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j].Class,stu[j+1].Class);//将stu[j+1]中的内容复制到stu[j]中。 stu[j].math=stu[j+1].math; stu[j].english=stu[j+1].english; stu[j].computer=stu[j+1].computer; stu[j].all=stu[j+1].all; }//将结构体中的元素赋值给前一元素。 n--;//数据删除后,全局变量n值(成员数)自减1。 printf("该学生信息已删除! \n"); } 4.4查询学生信息 4.4.1根据姓名查询 按照学生姓名查找学生信息,要求用户输入学生的姓名,再与结构体中的数据进行一一比对,输出结构体中与该数据相同的成员的所有信息,从而实现查找功能。 代码如下: voidFindname()//用户自定义函数,实现对指定数据的查找功能。 { chars[20];//定义用户输入的学生姓名数据为char型,占20列。 inti=0; printf("请输入要查询的学生姓名: "); scanf("%s",s); while(strcmp(stu[i].name,s)! =0&&i i++;//当输入的姓名与当前姓名不相同时,i自增1,比较下一个成员。 if(i==n) { printf("未找到相关学生信息! \n"); } printf("-------------------------------------------------------------------\n"); printf("学号姓名班级数学英语计算机总成绩\n"); printf("-------------------------------------------------------------------\n"); printf("%-10s%-10s%-10s%-10d%-10d%-10d%-10d\n",stu[i].no,stu[i].name,stu[i].Class,stu[i].math,stu[i].english,stu[i].computer,stu[i].all); printf("-------------------------------------------------------------------\n"); }//以表列的形式输出查找到的成员的相关信息。 4.4.2根据学号查询 按照学生学号查找学生信息,要求用户输入学生的学号,再与结构体中的数据进行一一比对,输出结构体中与该数据相同的成员的所有信息,从而实现查找功能。 代码如下: voidFindno()//用户自定义函数,实现对指定数据的查找功能。 { chars[20];//定义用户输入的学生学号数据为char型,占20列。 inti=0; printf("请输入要查询的学生学号: "); scanf("%s",s); while(strcmp(stu[i].no,s)! =0&&i i++;//当输入的学号与当前学号不相同时,i自增1,比较下一个成员。 if(i==n) { printf("未找到相关学生信息! \n"); } printf("-------------------------------------------------------------------\n"); printf("学号姓名班级数学英语计算机总成绩\n"); printf("-------------------------------------------------------------------\n"); printf("%-10s%-10s%-10s%-10d%-10d%-10d%-10d\n",stu[i].no,stu[i].name,stu[i].Class,stu[i].math,stu[i].english,stu[i].computer,stu[i].all); printf("-------------------------------------------------------------------\n"); }//以表列的形式输出查找到的成员的相关信息。 4.5插入学生信息 插入学生信息时,用户输入要插入的位置i,当要插入位置大于结构体成员总数时,直接将数据插入到结构体最后(相当于直接执行输入函数);当要插入位置小于等于结构体成员总数时,将i~j中的每一项分别向后移动一个位置,再将要插入的数据赋值给第i个位置。 代码如下: voidInsert()//用户自定义Insert函数,实现将学生信息插入指定位置的功能。 { inti,j; printf("请输入要插入的位置: "); scanf("%d",&i); if(i>n) {//当要插入位置大于结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 学生 成绩管理系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)