学生成绩管理系统数据结构.doc

发布时间:   来源:文档文库   
字号:







课程名称数据结构课程设计设计题目学生成绩管理系统计算机科学与技术





设计题目:学生成绩管理系统设计内容与要求:
编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3课程的成绩(FOX,C,ENGLISH
程序运行时显示一个简单的菜单,例如:1)信息输入(INPUT2)总分统计(COUNT3)总分排序(SORT4)查询(QUERY其中:
1)对4个学生的信息进行输入;
2)对每个学生的3门课程统计总分;
3)对4个学生的总分按降序排序并显示出来;
4)查询输入一个学号后,显示出该学生的有关信息;




成绩:
指导教师:_______________



一.问题描述.....................................................2二.基本要求.....................................................2三.数据结构.....................................................2四.总体设计.....................................................3
1.结构图......................................................32.流程图......................................................3五.详细设计..................................................5
1.录入模块....................................................52.浏览模块....................................................53.排序模块....................................................54.查找模块....................................................5六.测试与调试................................................5七.源程序清单................................................9

1


一.问题描述
编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
二.基本要求
建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH
程序运行时显示一个简单的菜单,例如:1)信息输入(INPUT2)总分统计(COUNT3)总分排序(SORT4)查询(QUERY其中:
1)对4个学生的信息进行输入;
2)对每个学生的3门课程统计总分;
3)对4个学生的总分按降序排序并显示出来;
4)查询输入一个学号后,显示出该学生的有关信息;
三.数据结构
structstudent{
charnum[10];/*学号*/charname[20];/*姓名*/intfgrade;/*佛学成绩*/intcgrade;/*C语言成绩*/integrade;/*英语成绩*/inttotal;/*总分*/
}st[100];
2


四.总体设计
1.结构图

菜单选择

4.1
学生信息管理系统
信息录入信息浏览信息排序信息查询
按学号查询按姓名查询
2.流程图
2.1录入函数

开始
创建文件

保存输入信息

返回菜单关闭文件

4.2
3


2.2排序函数

2.3查询函数
开始
创建数组排序
输出排序结果
结束4.3开始

2.4按学号查询函数
输入查询方式
调用按学号查询函数调用按姓名查询函数
返回菜单4.4开始

输出该学生的信输入要查找的学号
for循环
结束4.5
4


2.5按姓名查询函数(同上)
五.详细设计
1.录入模块
定义一个结构structstudent和数组st[N]用来储存N个学生的所有信息(学st[i].numst[i].namest[i].fgradeCst[i].cgrade、英语成绩st[i].egrade。通过for循环输入所有学生信息。用printf语句提示需要输入的内容,接着用scanf语句输入相应内容。输入完毕后套用保存函数save(m将所输入的信息写入指定文件。
2.浏览模块
声明整形变量icount其中记录输出的学生序数,count用来接收调用浏览函数时所传递过来的实参,将其值传递给导出函数load(m,使得导出的学生人数与浏览的学生人数保持一致。通过调用load函数后(即给em数组赋值),用for循环输出每一个学生的各种信息。
3.排序模块
声明整形变量i,j和结构体变量structstudenttemp,用for循环实现排序功能,利用冒泡法,以st[i].total为条件进行排序。最后用printf输出排序结果。
4.查找模块
声明整型变量k,先用printf语句显示查询菜单,用scanf输入选择的查询方式的代号,用switch(k进入所选择的具体查询函数,包括学号查询,姓名查询两种方式。
学号查询中,scanf语句输入需要查询的学号,并赋值给numfor循环,循环主体判断em[i].num中是否有输入的学号。如果有,用printf语句输出与学号相对应的该学生的所有信息,再跳出循环。按姓名查询与此方法类似,不再叙述。
六.测试与调试
1.运行程序,进入主菜单

5




6.1主菜单
2.输入数字“1,创建学生信息


6.2输入职工信息
3.输入数字“2,浏览学生信息

6




6.3浏览职工信息
4.输入数字“3,按总分排序


6.4按总分排序
5.输入数字“4,查询学生信息
5.1选择查询方式“1


7




5.2选择查询方式“2
6.5按学号查询


8
6.6按姓名查询


七.源程序清单
#include#include#includestructstudent{charnum[10];/*学号*/charname[20];/*姓名*/intfgrade;/*佛学成绩*/intcgrade;/*C语言成绩*/integrade;/*英语成绩*/inttotal;/*总分*/}st[100];voidmenu(;voidinput(;voidsave(intm;voidsave(;voiddisplay(;voidsearch(;
voidsearch_num(;voidsearch_name(;voidsort_total(;
intload(;/*定义各函数*/
intm;
voidmain({menu(;intn=0,flag;chara;do{printf("请选择你需要操作的步骤(1--4:\n";scanf("%d",&n;if(n>=0&&n<=4{flag=1;break;}else{flag=0;printf("您输入有误,请重新选择!";

9


}}while(flag==0;while(flag==1{switch(n{case1:printf("\n◆◆◆输入学生信息◆◆◆\n";printf("\n";input(;break;case2:printf("\n◆◆◆浏览学生信息◆◆◆\n";printf("\n";display(;break;case3:printf("\n◆◆◆按总分排序◆◆◆\n";printf("\n";sort_total(;break;case4:printf("\n◆◆◆查询学生信息◆◆◆\n";printf("\n";search(;break;case0:exit(0;break;default:break;}getchar(;printf("\n";printf("是否继续运行(yorn:\n";scanf("%c",&a;if(a=='y'{flag=1;system("cls";/*清屏*/menu(;/*调用菜单函数*/printf("请再次选择你需要操作的步骤(1--4:\n";scanf("%d",&n;printf("\n";}elseexit(0;}}
voidmenu(/*菜单函数*/{printf("**************欢迎进入学生信息管理系统**************\n";printf("1.录入学生信息\n";printf("2.浏览学生信息\n";printf("3.按总分排序\n";printf("4.查询学生信息\n";printf("0.退出\n";printf("**********************谢谢使用**********************\n";printf("\n";

10


printf("\n";}
voidinput(/*输入学生信息并保存*/{
inti;printf("请输入需要创建信息的学生人数(1--10:\n";scanf("%d",&m;for(i=0;i{printf("请输入学号:";scanf("%s",st[i].num;printf("请输入姓名:";scanf("%s",st[i].name;printf("请输入佛学成绩:";scanf("%d",&st[i].fgrade;printf("请输入C语言成绩:";scanf("%d",&st[i].cgrade;printf("请输入英语成绩:";scanf("%d",&st[i].egrade;st[i].total=st[i].fgrade+st[i].cgrade+st[i].egrade;/*信息输入已经完成*/}save(m;return;/*返回主界面*/}
voiddisplay(/*浏览学生信息*/{inti;intcount=0;m=load(;printf("\n学号\t姓名\t佛学成绩\tC语言成绩\t英语成绩\t总分\n";/*输出学生信息*/for(i=0;i{printf("\n%s\t%s\t%d\t\t%d\t\t%d\t\t%d\n",st[i].num,st[i].name,st[i].fgrade,st[i].cgrade,st[i].egrade,st[i].total;
}}
voidsort_total(/*按总分排序*/{
11


inti,j;structstudenttemp;/*声明结构体变量*/printf("\t学号\t姓名\t佛学成绩\tC语言成绩\t英语成绩\t总分\n";for(i=0;i对数据进行排序*/{
for(j=i+1;jif(st[i].total{temp=st[i];st[i]=st[j];st[j]=temp;}
printf("\n\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\n",st[i].num,st[i].name,st[i].fgrade,st[i].cgrade,st[i].egrade,st[i].total;
}}
voidsearch(/*查询函数*/{intk;/*定义局部变量*/m=load(;printf("\n按学号查询请按1\t按姓名查询请按2\n";printf("\n请输入查询方式:";scanf("%d",&k;switch(k/*查询方式的选择*/{case1:search_num(;break;/*按学号查询*/case2:search_name(;break;/*按姓名查询*/}printf("\nPressanykeytoentermenu......";getchar(;return;/*返回主界面*/}
voidsearch_num(/*(1按学号查找*/{inti;chartemp[30];printf("\n请输入要查找的学号:";scanf("%s",temp;for(i=0;i{if(strcmp(temp,st[i].num==0

12


{printf("\n学号\t姓名\t佛学成绩\tC语言成绩\t英语成绩\t总分\n";printf("\n%s\t%s\t%d\t\t%d\t\t%d\t\t%d\n",st[i].num,st[i].name,st[i].fgrade,st[i].cgrade,st[i].egrade,st[i].total;
}}}
voidsearch_name(/*(2按姓名查找*/{inti;
chartemp[30];printf("\n请输入要查找的姓名:";scanf("%s",temp;for(i=0;i{if(strcmp(temp,st[i].name==0{
printf("\n学号\t姓名\t佛学成绩\tC语言成绩\t英语成绩\t总分\n";printf("\n%s\t%s\t%d\t\t%d\t\t%d\t\t%d\n",st[i].num,st[i].name,st[i].fgrade,st[i].cgrade,st[i].egrade,st[i].total;
}}}
intload(/*导入函数*/{FILE*fp;intn=0;if((fp=fopen("student_list","rb"==NULL{printf("cannotopenfile\n";exit(0;}else{do{fread(&st[n],sizeof(structstudent,1,fp;n++;}while(feof(fp==0;}

13


fclose(fp;return(n-1;}
voidsave(intm/*保存文件函数*/{inti;FILE*fp;if((fp=fopen("student_list","wb"==NULL/*创建文件并判断是否能打开*/{printf("cannotopenfile\n";exit(0;}for(i=0;i将内存中学生的信息输出到磁盘文件中去*/if(fwrite(&st[i],sizeof(structstudent,1,fp!=1printf("filewriteerror\n";fclose(fp;}
14

本文来源:https://www.2haoxitong.net/k/doc/51dfbed3864769eae009581b6bd97f192279bfbd.html

《学生成绩管理系统数据结构.doc.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式