学生成绩管理系统数据结构(共16页)

上传人:20022****wzdgj 文档编号:46029120 上传时间:2021-12-10 格式:DOC 页数:16 大小:172KB
收藏 版权申诉 举报 下载
学生成绩管理系统数据结构(共16页)_第1页
第1页 / 共16页
学生成绩管理系统数据结构(共16页)_第2页
第2页 / 共16页
学生成绩管理系统数据结构(共16页)_第3页
第3页 / 共16页
资源描述:

《学生成绩管理系统数据结构(共16页)》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据结构(共16页)(16页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 数据结构课程设计 设计题目 学生成绩管理系统 专 业 计算机科学与技术 课 程 设 计 任 务 书设计题目: 学生成绩管理系统 设计内容与要求:编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。程序运行时显示一个简单的菜单,例如:(1)信息输入(INPUT)(2)总分统计(COUNT)(3)总分排序(SORT)(4)查询(QUERY)其中:(1)对4个学生的信息进行输入;(2)对每个学生的3门课

2、程统计总分;(3)对4个学生的总分按降序排序并显示出来;(4)查询输入一个学号后,显示出该学生的有关信息; 课 程 设 计 评 语 成绩: 指导教师:_ 年 月 日专心-专注-专业目 录一问题描述编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。二基本要求建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。程序运行时显示一个简单的菜单,例如:(1)信息输入(INPUT)(2)总分统计(COUNT)(3)总分排序(SORT)(4)查询(QUERY)其中:(1)对4个学生的信息进行输入;(2)对每个学生的3门课程统计总分;(3)对

3、4个学生的总分按降序排序并显示出来;(4)查询输入一个学号后,显示出该学生的有关信息;三数据结构struct studentchar num10;/*学号*/char name20;/*姓名*/int fgrade;/*佛学成绩*/int cgrade;/*C语言成绩*/int egrade;/*英语成绩*/int total;/*总分*/st100;四总体设计学生信息管理系统菜单选择信息录入信息浏览信息排序信息查询按学号查询按姓名查询1.结构图图4.12.流程图2.1录入函数开始创建文件输入信息保存关闭文件返回菜单图4.2开始输出排序结果结束创建数组排序2.2 排序函数图4.3开始输入查询方

4、式调用按学号查询函数调用按姓名查询函数返回菜单2.3 查询函数开始输入要查找的学号输出该学生的信息结束for循环图4.42.4 按学号查询函数图4.52.5 按姓名查询函数(同上)五 详细设计1.录入模块定义一个结构struct student和数组stN用来储存N个学生的所有信息(学号sti.num、姓名sti.name、佛学成绩sti.fgrade、C语言成绩sti.cgrade、英语成绩sti.egrade)。通过for循环输入所有学生信息。用printf语句提示需要输入的内容,接着用scanf语句输入相应内容。输入完毕后套用保存函数save(m)将所输入的信息写入指定文件。2.浏览模块

5、声明整形变量i和count,其中记录输出的学生序数,count用来接收调用浏览函数时所传递过来的实参,将其值传递给导出函数load(m),使得导出的学生人数与浏览的学生人数保持一致。通过调用load函数后(即给em数组赋值),用for循环输出每一个学生的各种信息。3.排序模块声明整形变量i,j和结构体变量struct student temp,用for循环实现排序功能,利用冒泡法,以sti.total<stj.total为条件进行排序。最后用printf输出排序结果。4.查找模块声明整型变量k,先用printf语句显示查询菜单,用scanf输入选择的查询方式的代号,用switch(k)进

6、入所选择的具体查询函数,包括学号查询,姓名查询两种方式。学号查询中,用scanf语句输入需要查询的学号,并赋值给num。用for循环,循环主体判断emi.num中是否有输入的学号。如果有,用printf语句输出与学号相对应的该学生的所有信息,再跳出循环。按姓名查询与此方法类似,不再叙述。六 测试与调试1. 运行程序,进入主菜单图6.1 主菜单2输入数字“1”,创建学生信息图6.2 输入职工信息3.输入数字“2”,浏览学生信息图6.3 浏览职工信息4.输入数字“3”,按总分排序图6.4 按总分排序5.输入数字“4”,查询学生信息5.1 选择查询方式“1”图6.5 按学号查询5.2 选择查询方式“

7、2”图6.6 按姓名查询七 源程序清单#include <stdio.h>#include <stdlib.h>#include <string.h>struct studentchar num10;/*学号*/char name20;/*姓名*/int fgrade;/*佛学成绩*/int cgrade;/*C语言成绩*/int egrade;/*英语成绩*/int total;/*总分*/st100;void menu();void input();void save(int m);void save();void display();void sear

8、ch();void search_num();void search_name();void sort_total(); int load();/*定义各函数*/int m;void main()menu();int n=0,flag;char a;doprintf("请选择你需要操作的步骤(1-4):n");scanf("%d",&n);if(n>=0&&n<=4)flag=1;break;elseflag=0;printf("您输入有误,请重新选择!");while(flag=0);while(

9、flag=1)switch(n)case 1:printf("n 输入学生信息n");printf("n");input();break;case 2:printf("n 浏览学生信息n");printf("n");display();break; case 3:printf("n 按总分排序n");printf("n");sort_total();break;case 4:printf("n 查询学生信息n");printf("n")

10、;search();break;case 0:exit(0);break;default:break;getchar();printf("n");printf("是否继续运行(y or n):n");scanf("%c",&a);if(a='y')flag=1;system("cls"); /*清屏*/menu(); /*调用菜单函数*/printf("请再次选择你需要操作的步骤(1-4):n");scanf("%d",&n);printf(&

11、quot;n");elseexit(0);void menu() /*菜单函数*/printf(" *欢迎进入学生信息管理系统*n");printf(" 1.录入学生信息n");printf(" 2.浏览学生信息n");printf(" 3.按总分排序n");printf(" 4.查询学生信息n");printf(" 0.退出n");printf(" *谢谢使用*n");printf("n");printf("n&q

12、uot;);void input() /*输入学生信息并保存*/ int i; printf("请输入需要创建信息的学生人数(1-10):n"); scanf("%d",&m); for(i=0;i<m;i+) printf("请输入学号:"); scanf("%s",sti.num); printf("请输入姓名:"); scanf("%s",sti.name); printf("请输入佛学成绩:"); scanf("%d&quo

13、t;,&sti.fgrade); printf("请输入C语言成绩:"); scanf("%d",&sti.cgrade); printf("请输入英语成绩:"); scanf("%d",&sti.egrade); sti.total=sti.fgrade+sti.cgrade+sti.egrade; /*信息输入已经完成*/ save(m); return;/*返回主界面*/void display()/*浏览学生信息*/int i;int count=0;m=load();printf(

14、"n学号t姓名t佛学成绩tC语言成绩t英语成绩t总分n");/*输出学生信息*/for(i=0;i<m+count;i+) printf("n%st%st%dtt%dtt%dtt%dn",sti.num,sti.name,sti.fgrade,sti.cgrade,sti.egrade,sti.total);void sort_total() /*按总分排序*/int i,j;struct student temp; /*声明结构体变量*/printf("t学号t姓名t佛学成绩tC语言成绩t英语成绩t总分n");for(i=0;

15、i<m;i+)/*对数据进行排序*/ for(j=i+1;j<m;j+)if(sti.total<stj.total)temp=sti; sti= stj; stj=temp; printf("nt%st%st%dtt%dtt%dtt%dn",sti.num,sti.name,sti.fgrade,sti.cgrade,sti.egrade,sti.total);void search() /*查询函数*/int k; /*定义局部变量*/m=load();printf("n按学号查询请按1,t按姓名查询请按2n"); printf(&

16、quot;n请输入查询方式:"); scanf("%d",&k);switch(k)/*查询方式的选择*/case 1:search_num();break;/*按学号查询*/ case 2:search_name();break;/*按姓名查询*/printf("nPress any key to enter menu.");getchar();return; /*返回主界面*/void search_num()/*(1)按学号查找*/int i;char temp30;printf("n 请输入要查找的学号:")

17、;scanf("%s",temp);for( i=0;i<m;i+)if(strcmp(temp,sti.num)=0) printf("n学号t姓名t佛学成绩tC语言成绩t英语成绩t总分n");printf("n%st%st%dtt%dtt%dtt%dn",sti.num,sti.name,sti.fgrade,sti.cgrade,sti.egrade,sti.total);void search_name()/*(2)按姓名查找*/int i; char temp30;printf("n 请输入要查找的姓名:&q

18、uot;);scanf("%s",temp);for( i=0;i<m;i+)if(strcmp(temp,sti.name)=0) printf("n学号t姓名t佛学成绩tC语言成绩t英语成绩t总分n");printf("n%st%st%dtt%dtt%dtt%dn",sti.num,sti.name,sti.fgrade,sti.cgrade,sti.egrade,sti.total);int load() /*导入函数*/FILE*fp;int n=0;if(fp=fopen("student_list"

19、;,"rb")=NULL)printf("cannot open filen");exit(0);elsedofread(&stn,sizeof(struct student),1,fp);n+;while(feof(fp)=0);fclose(fp);return(n-1);void save(int m)/*保存文件函数*/int i;FILE*fp;if(fp=fopen("student_list","wb")=NULL)/*创建文件并判断是否能打开*/printf("cannot open filen");exit(0);for(i=0;i<m;i+)/*将内存中学生的信息输出到磁盘文件中去*/if(fwrite(&sti,sizeof(struct student),1,fp)!=1)printf("file write errorn");fclose(fp);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!