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

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

ID:39544075

大小:629.08 KB

页数:39页

时间:2019-07-05

上传者:无敌小子
数据结构--学生成绩管理系统_第1页
数据结构--学生成绩管理系统_第2页
数据结构--学生成绩管理系统_第3页
数据结构--学生成绩管理系统_第4页
数据结构--学生成绩管理系统_第5页
资源描述:

《数据结构--学生成绩管理系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

课程设计课程名称___数据结构基础__题目名称_学生成绩管理系统学生学院____管理学院______专业班级_学号___学生姓名_指导教师__________36 目录1系统分析11.1系统性能分析11.2系统功能需求分析11.3数据分析12系统设计22.1总体设计22.2详细设计32.2.1界面设计32.2.2各功能模块的设计32.2.2系统编码设计83.1预处理命令及结构体类型的声明83.2main函数83.3程序代码95总结3736 1系统分析1.1系统性能分析1、操作界面美观、友好,有必要的容错处理(如:能判定学号位数和只能由0~9数字字符组成、能判定合理的成绩0~100等);2、查询应根据查询条件合理选择先进的查询方法3、排序算法要求采用堆排序实现;4、分数段统计结果要求保存在单独的文件中;1.2系统功能需求分析本系统应具有以下功能:1、提供身份验证,和使用系统的权限设置、判定。2、(教师用户)能实现本班同学各学期各科成绩的录入、编辑,数据必须保存在文件中,以便反复使用。3、(学生用户)提供对学号或姓名,各学科成绩的查询。4、(学生和教师用户)能按各学期、各学科分数排序输出(每一科都要能排序输出)。5、(教师用户)能统计各科成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。1.3数据分析1.3.1.问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?1.3.2.逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;1.3.3.详细设计:36 定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;1.3.4.程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;1.3.5.程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;2系统设计2.1总体设计按系统分析的功能要求将系统划分为以下几个主要功能模块:1---学生记录录入2---学生成绩查询:按学号查询、按姓名查询3---删除记录4---排序5---修改数据6---显示全部学生记录7---统计8---更换用户9---保存记录0---退出系统36 2.2详细设计2.2.1界面设计1、菜单设计菜单主要有学生成绩录入、成绩查询、成绩排序、更换用户……设计时主要采用switch-case这个结构,从而选择调用相应的函数。子菜单也是利用这个原理方法设计的2、信息显示界面的设计信息显示主要用了for(;;)循环,输出信息,并设置好输出格式,运行时如下:2.2.2各功能模块的设计主函数主要作用是控制调用其它函数协调工作。其流程图如下:36 查询窗口36 排序窗口36 按总分排序修改窗口删除窗口36 统计窗口36 统计结果2.2.2系统编码设计3.1预处理命令及结构体类型的声明#include"stdio.h"#include"stdlib.h"#include"string.h"#include"windows.h"#defineM1003.2main函数voidmain(){welcome();IO_ReadInfo();Login();}36 3.3程序代码#include"stdio.h"#include"stdlib.h"#include"string.h"#include"windows.h"#defineM100voidLogin();/*<<<<<<<<<<<<***定义学生结构体***>>>>>>>>>>>>>>>>*/typedefstructstu{charStuID[12];charStudName[12];floatScore[5];floatAv;floatSum;inttag;}Stud;Studstud[M];intnum=0;/*<<<<<<<<<<<<***计算总分***>>>>>>>>>>>>>>>>*/floatsum(Studstud){intj;floatsum=0;for(j=0;j<5;j++){sum+=stud.Score[j];}returnsum;}/*<<<<<<<<<<<<***通过学号返回数组下标***>>>>>>>>>>>>>>>>*/intStudent_SearchByIndex(charid[]){inti;for(i=0;i>>>>>>>>>>>>>>>*/intStudent_SearchByName(charname[]){inti;for(i=0;i>>>>>>>>>>>>>>>*/intConflictID(Studstud[],intn,charID[]){inti;for(i=0;i>>>>>>>>>>>>>>>*/voidStudent_DisplaySingle(intindex){printf(" *◆◆◆◆◆◆◆◆◆◆◆◆学生成绩单◆◆◆◆◆◆◆◆◆◆* ");printf("tt姓名:<%s>t学号:<%s>",stud[index].StudName,stud[index].StuID);printf(" tt计算机操作系统:<%.2f>",(&stud[index])->Score[0]);printf(" tt大学英语:<%.2f>",(&stud[index])->Score[1]);printf(" tt基础会计:<%.2f>",(&stud[index])->Score[2]);printf(" tt数据结构:<%.2f>",(&stud[index])->Score[3]);printf(" ttJava语言设计:<%.2f>",(&stud[index])->Score[4]);printf(" tt总分:<%.2f>",(&stud[index])->Sum);printf(" tt平均分:<%.2f> ",(&stud[index])->Av);}36 /*<<<<<<<<<<<<***显示学生信息***>>>>>>>>>>>>>>>>*/voidStudent_Display(){inti;printf(" %-4s%st%-8s%-10s%-10s%-10s%-10s%-10s%-9s ","编号","学号","姓名","操作系统","大学英语","会计基础","数据结构","Java设计","总分");printf("------------------------------------------------------------------------------- ");for(i=0;iStuID,(&stud[i])->StudName,(&stud[i])->Score[0],(&stud[i])->Score[1],(&stud[i])->Score[2],(&stud[i])->Score[3],(&stud[i])->Score[4],(&stud[i])->Sum);printf("------------------------------------------------------------------------------- ");}}/*<<<<<<<<<<<<***插入学生信息***>>>>>>>>>>>>>>>>*/voidStudent_Insert(){charc;printf(" ");printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ");while(1){printf("请输入学号:");scanf("%s",&stud[num].StuID);while(ConflictID(stud,num,stud[num].StuID)){getchar();printf("学号已经存在2 请重新输入学号:");scanf("%s",&stud[num].StuID);}getchar();printf("请输入学生姓名:");scanf("%s",&stud[num].StudName);getchar();printf("请输入计算机操作系统成绩<0~100>:");36 scanf("%f",&stud[num].Score[0]);while(stud[num].Score[0]>100||stud[num].Score[0]<0){getchar();printf("输入有误2请重新输入 计算机操作系统成绩<0~100>:");scanf("%f",&stud[num].Score[0]);}getchar();printf("请输入大学英语成绩<0~100>:");scanf("%f",&stud[num].Score[1]);while(stud[num].Score[1]>100||stud[num].Score[1]<0){getchar();printf("输入有误2请重新输入 大学英语成绩<0~100>:");scanf("%f",&stud[num].Score[1]);}getchar();printf("请输入基础会计成绩<0~100>:");scanf("%f",&stud[num].Score[2]);while(stud[num].Score[2]>100||stud[num].Score[2]<0){getchar();printf("输入有误2请重新输入 基础会计成绩<0~100>:");scanf("%f",&stud[num].Score[2]);}getchar();printf("请输入数据结构基础成绩<0~100>:");scanf("%f",&stud[num].Score[3]);while(stud[num].Score[3]>100||stud[num].Score[3]<0){getchar();printf("输入有误2请重新输入 数据结构基础成绩<0~100>:");scanf("%f",&stud[num].Score[3]);}getchar();printf("请输入Java语言设计成绩<0~100>:");scanf("%f",&stud[num].Score[4]);while(stud[num].Score[4]>100||stud[num].Score[4]<0){getchar();36 printf("输入有误2请重新输入 Java语言设计成绩<0~100>:");scanf("%f",&stud[num].Score[4]);}getchar();stud[num].Sum=sum(stud[num]);stud[num].Av=stud[num].Sum/5;num++;printf("是否继续?(y/n)");scanf("%c",&c);getchar();if(c=='N'||c=='n'){break;}}}/*<<<<<<<<<<<<***推排序***>>>>>>>>>>>>>>>>*/voidsift(Studr[],intt,intw,inttag){if(tag==1){inti1,j1;Studx1;i1=t;x1=r[i1];j1=2*i1+1;while(j1<=w){if((j10))j1++;if((strcmp(x1.StuID,r[j1].StuID))>0){r[i1]=r[j1];i1=j1;j1=2*j1+1;}elsebreak;}r[i1]=x1;}if(tag==2){inti2,j2;Studx2;i2=t;x2=r[i2];j2=2*i2+1;while(j2<=w)36 {if((j2r[j2+1].Sum))j2++;if(x2.Sum>r[j2].Sum){r[i2]=r[j2];i2=j2;j2=2*j2+1;}elsebreak;}r[i2]=x2;}}voidheapsort(Studr[],intn,inttag)/*堆排序*/{inti,xx=0;Studx;for(i=n/2-1;i>=0;i--)sift(r,i,n-1,tag);for(i=n-1;i>0;i--){x=r[0];r[0]=r[i];r[i]=x;sift(r,0,i-1,tag);}printf(" %-4s%st%-8s%-10s%-10s%-10s%-10s%-10s%-9s ","编号","学号","姓名","操作系统","大学英语","会计基础","数据结构","Java设计","总分");printf("------------------------------------------------------------------------------- ");for(i=num-1;i>=0;i--){++xx;printf("%-4d%st%-8s%-10.2f%-10.2f%-10.2f%-10.2f%-10.2f%-10.1f ",xx,(&stud[i])->StuID,(&stud[i])->StudName,(&stud[i])->Score[0],(&stud[i])->Score[1],(&stud[i])->Score[2],(&stud[i])->Score[3],(&stud[i])->Score[4],(&stud[i])->Sum);printf("------------------------------------------------------------------------------- ");}}/*<<<<<<<<<<<<***按学号修改学生信息***>>>>>>>>>>>>>>>>*/36 voidStudent_ModifyByID(){while(1){charid[20];charc;intindex;printf("请输入要修改的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1){printf("学生不存在! ");}else{printf("你要修改的学生信息为: ");Student_DisplaySingle(index);printf("--请输入新值-- ");printf("请输入学号:");scanf("%s",stud[index].StuID);getchar();printf("请输入姓名:");scanf("%s",&stud[index].StudName);getchar();printf("是否要修改该学生的成绩?");scanf("%c",&c);getchar();if(c==121||c==89){printf("请输入计算机操作系统成绩<0~100>:");scanf("%f",&stud[index].Score[0]);while(stud[index].Score[0]>100||stud[index].Score[0]<0){getchar();printf("输入有误2请重新输入 计算机操作系统成绩<0~100>:");scanf("%f",&stud[index].Score[0]);}getchar();printf("请输入大学英语成绩<0~100>:");scanf("%f",&stud[index].Score[1]);while(stud[index].Score[1]>100||stud[index].Score[1]<0){getchar();printf("输入有误2请重新输入 大学英语成绩<0~100>:");36 scanf("%f",&stud[index].Score[1]);}getchar();printf("请输入基础会计成绩<0~100>:");scanf("%f",&stud[index].Score[2]);while(stud[index].Score[2]>100||stud[index].Score[2]<0){getchar();printf("输入有误2请重新输入 基础会计成绩<0~100>:");scanf("%f",&stud[index].Score[2]);}getchar();printf("请输入数据结构基础成绩<0~100>:");scanf("%f",&stud[index].Score[3]);while(stud[index].Score[3]>100||stud[index].Score[3]<0){getchar();printf("输入有误2请重新输入 数据结构基础成绩<0~100>:");scanf("%f",&stud[index].Score[3]);}getchar();printf("请输入Java语言设计成绩<0~100>:");scanf("%f",&stud[index].Score[4]);while(stud[index].Score[4]>100||stud[index].Score[4]<0){getchar();printf("输入有误2请重新输入 Java语言设计成绩<0~100>:");scanf("%f",&stud[index].Score[4]);}getchar();}stud[index].Sum=sum(stud[index]);stud[index].Av=stud[index].Sum/5;}printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}/*<<<<<<<<<<<<***按姓名修改学生信息***>>>>>>>>>>>>>>>>*/36 voidStudent_ModifyByName(){while(1){charname[20];charc;intindex;printf("请输入要修改的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if(index==-1){printf("学生不存在! ");}else{printf("你要修改的学生信息为: ");Student_DisplaySingle(index);printf("--请输入新值-- ");printf("请输入学号:");scanf("%s",stud[index].StuID);getchar();printf("请输入姓名:");scanf("%s",&stud[index].StudName);getchar();printf("是否要修改该学生的成绩?");scanf("%c",&c);getchar();if(c==121||c==89){printf("请输入计算机操作系统成绩<0~100>:");scanf("%f",&stud[index].Score[0]);while(stud[index].Score[0]>100||stud[index].Score[0]<0){getchar();printf("输入有误2请重新输入 计算机操作系统成绩<0~100>:");scanf("%f",&stud[index].Score[0]);}getchar();printf("请输入大学英语成绩<0~100>:");scanf("%f",&stud[index].Score[1]);while(stud[index].Score[1]>100||stud[index].Score[1]<0){getchar();printf("输入有误2请重新输入 大学英语成绩<0~100>:");36 scanf("%f",&stud[index].Score[1]);}getchar();printf("请输入基础会计成绩<0~100>:");scanf("%f",&stud[index].Score[2]);while(stud[index].Score[2]>100||stud[index].Score[2]<0){getchar();printf("输入有误2请重新输入 基础会计成绩<0~100>:");scanf("%f",&stud[index].Score[2]);}getchar();printf("请输入数据结构基础成绩<0~100>:");scanf("%f",&stud[index].Score[3]);while(stud[index].Score[3]>100||stud[index].Score[3]<0){getchar();printf("输入有误2请重新输入 数据结构基础成绩<0~100>:");scanf("%f",&stud[index].Score[3]);}getchar();printf("请输入Java语言设计成绩<0~100>:");scanf("%f",&stud[index].Score[4]);while(stud[index].Score[4]>100||stud[index].Score[4]<0){getchar();printf("输入有误2请重新输入 Java语言设计成绩<0~100>:");scanf("%f",&stud[index].Score[4]);}getchar();}stud[index].Sum=sum(stud[index]);stud[index].Av=stud[index].Sum/5;}printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}/*<<<<<<<<<<<<***按学生学号删除***>>>>>>>>>>>>>>>>*/voidStudent_DeleteByID()36 {inti;charid[20];intindex;printf("请输入要删除的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1){printf("学生不存在! ");}else{printf("你要删除的学生信息为: ");Student_DisplaySingle(index);printf("是否真的要删除?(y/n)");if(getchar()=='y'){for(i=index;i>>>>>>>>>>>>>>>*/voidStudent_DeleteByName(){inti;charname[20];intindex;printf("请输入要删除的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if(index==-1){printf("学生不存在! ");}else{printf("你要删除的学生信息为: ");Student_DisplaySingle(index);36 printf("是否真的要删除?(y/n)");if(getchar()=='y'){for(i=index;i>>>>>>>>>>>>>>>*/voidStudentName_Select(){charname[20];intindex;printf("请输入要查询的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if(index==-1){printf("学生不存在! ");}else{printf(" 你要查询的学生信息为: ");Student_DisplaySingle(index);}}/*<<<<<<<<<<<<***按学生学号查找***>>>>>>>>>>>>>>>>*/voidStudentID_Select(){charid[20];intindex;printf("请输入要查询的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1)36 {printf("学生不存在! ");}else{printf(" 你要查询的学生信息为: ");Student_DisplaySingle(index);}}/*<<<<<<<<<<<<***统计学生个分数段***>>>>>>>>>>>>>>>>*/voidTongJi(){inta[5]={0},b[5]={0},c[5]={0},d[5]={0},e[5]={0};inti,k;for(i=0;i=90&&stud[i].Score[k]<=100)a[k]++;if(stud[i].Score[k]>=80&&stud[i].Score[k]<=89)b[k]++;if(stud[i].Score[k]>=70&&stud[i].Score[k])c[k]++;if(stud[i].Score[k]>=60&&stud[i].Score[k]<=69)d[k]++;if(stud[i].Score[k]>=0&&stud[i].Score[k]<60)e[k]++;}}printf(" t****************成绩分数段统计如下**************** ");printf(" 成绩统计 ");printf("*********************计算机操作系统*************************** ");printf("90--100分人数:%dt80--90分人数:%dttt ",a[0],b[0]);printf("70--80分人数:%dt60--70分人数:%dttt ",c[0],d[0]);printf("60以下分人数:%dttttt ",e[0]);printf("************************************************************ ");printf("*************************大学英语***************************** ");printf("90--100分人数:%dt80--90分人数:%dttt ",a[1],b[1]);printf("70--80分人数:%dt60--70分人数:%dttt ",c[1],d[1]);printf("60以下分人数:%dttttt ",e[1]);printf("************************************************************ ");printf("*************************基础会计***************************** ");36 printf("90--100分人数:%dt80--90分人数:%dttt ",a[2],b[2]);printf("70--80分人数:%dt60--70分人数:%dttt ",c[2],d[2]);printf("60以下分人数:%dttttt ",e[2]);printf("************************************************************ ");printf("*************************数据结构***************************** ");printf("90--100分人数:%dt80--90分人数:%dttt ",a[3],b[3]);printf("70--80分人数:%dt60--70分人数:%dttt ",c[3],d[3]);printf("60以下分人数:%dttttt* ",e[3]);printf("************************************************************ ");printf("***********************Java语言设计*************************** ");printf("90--100分人数:%dt80--90分人数:%dttt ",a[4],b[4]);printf("70--80分人数:%dt60--70分人数:%dttt ",c[4],d[4]);printf("60以下分人数:%dttttt ",e[4]);printf("************************************************************* ");}voidTongJiSave(){FILE*fp1;inta[5]={0},b[5]={0},c[5]={0},d[5]={0},e[5]={0};inti,k;for(i=0;i=90&&stud[i].Score[k]<=100)a[k]++;if(stud[i].Score[k]>=80&&stud[i].Score[k]<=89)b[k]++;if(stud[i].Score[k]>=70&&stud[i].Score[k])c[k]++;if(stud[i].Score[k]>=60&&stud[i].Score[k]<=69)d[k]++;if(stud[i].Score[k]>=0&&stud[i].Score[k]<60)e[k]++;}}fp1=fopen("学生分数段统计表.txt","w");fprintf(fp1," t****************成绩分数段统计如下**************** ");fprintf(fp1," 成绩统计 ");fprintf(fp1,"*********************计算机操作系统*************************** ");fprintf(fp1,"90--100分人数:%dt80--90分人数:%dttt ",a[0],b[0]);36 fprintf(fp1,"70--80分人数:%dt60--70分人数:%dttt ",c[0],d[0]);fprintf(fp1,"60以下分人数:%dttttt ",e[0]);fprintf(fp1,"************************************************************ ");fprintf(fp1,"*************************大学英语***************************** ");fprintf(fp1,"90--100分人数:%dt80--90分人数:%dttt ",a[1],b[1]);fprintf(fp1,"70--80分人数:%dt60--70分人数:%dttt ",c[1],d[1]);fprintf(fp1,"60以下分人数:%dttttt ",e[1]);fprintf(fp1,"************************************************************ ");fprintf(fp1,"*************************基础会计***************************** ");fprintf(fp1,"90--100分人数:%dt80--90分人数:%dttt ",a[2],b[2]);fprintf(fp1,"70--80分人数:%dt60--70分人数:%dttt ",c[2],d[2]);fprintf(fp1,"60以下分人数:%dttttt ",e[2]);fprintf(fp1,"************************************************************ ");fprintf(fp1,"*************************数据结构***************************** ");fprintf(fp1,"90--100分人数:%dt80--90分人数:%dttt ",a[3],b[3]);fprintf(fp1,"70--80分人数:%dt60--70分人数:%dttt ",c[3],d[3]);fprintf(fp1,"60以下分人数:%dttttt* ",e[3]);fprintf(fp1,"************************************************************ ");fprintf(fp1,"***********************Java语言设计*************************** ");fprintf(fp1,"90--100分人数:%dt80--90分人数:%dttt ",a[4],b[4]);fprintf(fp1,"70--80分人数:%dt60--70分人数:%dttt ",c[4],d[4]);fprintf(fp1,"60以下分人数:%dttttt ",e[4]);fprintf(fp1,"************************************************************* ");fclose(fp1);printf(" tt信息已经保存到“学生分数段统计表.txt”文件中了! ");}/*<<<<<<<<<<<<***将学生信息从文件读出***>>>>>>>>>>>>>>>>*/voidIO_ReadInfo()36 {FILE*fp;inti;if((fp=fopen("StudentDatabase.txt","rb"))==NULL){printf("不能打开文件! ");return;}if(fread(&num,sizeof(int),1,fp)!=1){num=-1;}else{for(i=0;i>>>>>>>>>>>>>>>*/voidIO_WriteInfo(){FILE*fp;inti;if((fp=fopen("StudentDatabase.txt","wb"))==NULL){printf("不能打开文件! ");return;}if(fwrite(&num,sizeof(int),1,fp)!=1){printf("写入文件错误! ");}for(i=0;i>>>>>>>>>>>>>>>*/voidSatement(){voidMenu_Teacher();ints;charc;lp0:{system("cls");36 printf(" ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("★☆ ");printf("☆1*各科成绩分数段统计★ ");printf("★☆ ");printf("☆2*保存统计表★ ");printf("★☆ ");printf("☆0*返回上一级★ ");printf("★☆ ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf(" ");printf(" 请选择操作:");scanf("%d",&s);switch(s){case1:{system("cls");TongJi();break;}case2:{system("cls");TongJiSave();break;}case0:{system("cls");Menu_Teacher();break;}default:printf("错误输入!!! ");}getchar();printf("是否要返回继续(Y/N):");scanf("%c",&c);if(c==121||c==89)gotolp0;}}/*<<<<<<<<<<<<***排序窗口***>>>>>>>>>>>>>>>>*/voidSort(intx){voidMenu_Teacher();voidMenu_Student();ints;charc;lp0:{system("cls");printf(" ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("★☆ ");printf("☆1*按学号排序★ ");printf("★☆ ");printf("☆2*按总分排序★ ");printf("★☆ ");printf("☆0*返回上一级★ ");36 printf("★☆ ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf(" ");printf(" 请选择操作:");scanf("%d",&s);switch(s){case1:{system("cls");heapsort(stud,num,s);}break;case2:{system("cls");heapsort(stud,num,s);}break;case0:{system("cls");if(x==4)Menu_Teacher();if(x==2)Menu_Student();}break;default:printf("错误输入!!! ");}getchar();printf("要返回排序菜单吗(Y/N):");scanf("%c",&c);if(c==121||c==89)gotolp0;}}/*<<<<<<<<<<<<***修改窗口***>>>>>>>>>>>>>>>>*/voidModify(){voidMenu_Teacher();ints;charc;lp0:{system("cls");printf(" ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("★☆ ");printf("☆1*按学号查找修改★ ");printf("★☆ ");printf("☆2*按姓名查找修改★ ");printf("★☆ ");printf("☆0*返回上一级★ ");printf("★☆ ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf(" ");printf(" 请选择操作:");scanf("%d",&s);switch(s){case1:36 {system("cls");Student_ModifyByID();getchar();break;}case2:{system("cls");Student_ModifyByName();getchar();break;}case0:{system("cls");Menu_Teacher();break;}default:printf("错误输入!!! ");}printf("要返回修改界面继续修改吗(Y/N):");scanf("%c",&c);if(c==121||c==89)gotolp0;}}/*<<<<<<<<<<<<***删除窗口***>>>>>>>>>>>>>>>>*/voidDelect(){voidMenu_Teacher();ints;charc;lp1:{system("cls");printf(" ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("★☆ ");printf("☆1*按学号查找删除★ ");printf("★☆ ");printf("☆2*按姓名查找删除★ ");printf("★☆ ");printf("☆0*返回上一级★ ");printf("★☆ ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf(" ");printf(" 请选择操作:");scanf("%d",&s);switch(s){case1:{Student_DeleteByID();break;}case2:{Student_DeleteByName();break;}case0:{system("cls");Menu_Teacher();break;}default:printf("错误输入!!! ");}printf("要返回删除界面继续删除吗(Y/N):");scanf("%c",&c);if(c==121||c==89)gotolp1;}36 }/*<<<<<<<<<<<<***查询窗口***>>>>>>>>>>>>>>>>*/voidSearch(intx){voidMenu_Teacher();voidMenu_Student();ints;charc;lp0:{system("cls");printf(" ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("★☆ ");printf("☆1*按学号查询★ ");printf("★☆ ");printf("☆2*按姓名查询★ ");printf("★☆ ");printf("☆0*返回上一级★ ");printf("★☆ ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf(" ");printf(" 请选择操作:");scanf("%d",&s);switch(s){case1:{system("cls");StudentID_Select();break;}case2:{system("cls");StudentName_Select();break;}case0:{system("cls");if(x==1)Menu_Student();elseif(x==2)Menu_Teacher();break;}default:printf("错误输入!!! ");}printf("要返回查找界面继续查询吗(Y/N):");scanf("%c",&c);if(c==121||c==89)gotolp0;}}/*<<<<<<<<<<<<***教师窗口***>>>>>>>>>>>>>>>>*/voidMenu_Teacher(){loop:{//标志intx,i;36 intback;printf(" ");printf("tt学生成绩管理系统 ");printf("tt☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("tt☆WelcomeToStudentScoreSystem!☆ ");printf("tt★Menu:★ ");printf("tt☆1---学生成绩录入☆ ");printf("tt★2---学生成绩查询★ ");printf("tt☆3---删除学生记录☆ ");printf("tt★4---学生成绩排序★ ");printf("tt☆5---修改学生记录☆ ");printf("tt★6---显示全部学生信息★ ");printf("tt☆7---学生成绩统计☆ ");printf("tt★8---更换用户★ ");printf("tt☆9---保存☆ ");printf("tt★0---退出★ ");printf("tt☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ");printf("ttt请输入0--6 ");printf(" ");printf("请选择您所要的操作(选择(0)退出):");scanf("%d",&x);getchar();switch(x){case1:{system("cls");Student_Insert();break;}case2:{system("cls");Search(x);break;}case3:{system("cls");Delect();}break;case4:{system("cls");printf(" *◆◆◆◆◆◆◆◆◆◆◆◆排序显示◆◆◆◆◆◆◆◆◆◆* ");Sort(x);}break;case5:{printf(" ");Modify();}break;case6:{system("cls");printf(" t*◆◆◆◆◆◆◆◆◆◆◆◆学生信息显示◆◆◆◆◆◆◆◆◆◆* ");Student_Display();}break;case7:{system("cls");Satement();}break;case8:{system("cls");Login();}break;case9:{IO_WriteInfo();}break;case0:{printf(" 要保存刚才修改的信息吗(按1保存)?");scanf("%d",&i);if(i==1)IO_WriteInfo();system("cls");printf(" ");36 printf(" t╔═╗╔═╗╔═╗╔═╗╔═╗╔═╗");printf(" t║感║║谢║║您║║的║║访║║问║");printf(" t╚═╝╚═╝╚═╝╚═╝╚═╝╚═╝");exit(0);}default:{printf("选择无效,请重新输入!");getchar();system("cls");gotoloop;}}printf(" 按0键返主回菜单,按其他键结束程序 ");printf("请选择:");scanf("%d",&back);if(!back){system("cls");gotoloop;}}//标志结束位}/*<<<<<<<<<<<<***学生窗口***>>>>>>>>>>>>>>>>*/voidMenu_Student(){loop:{//标志intx;intback;printf(" ");printf("tt学生成绩管理系统 ");printf("tt☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("tt★WelcomeToStudentScoreSystem!☆ ");printf("tt☆Menu:★ ");printf("tt★1---学生成绩查询☆ ");printf("tt☆2---学生成绩排序★ ");printf("tt★3---显示全部学生信息☆ ");printf("tt☆4---更换用户★ ");printf("tt★0---退出系统☆ ");printf("tt☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("ttt请输入0--4 ");printf(" ");printf("请选择您所要的操作(选择(0)退出):");scanf("%d",&x);getchar();switch(x){case1:{system("cls");Search(x);break;}case2:{system("cls");printf(" *◆◆◆◆◆◆◆◆◆◆◆◆排序显示◆◆◆◆◆◆◆◆◆◆* ");36 Sort(x);}break;case3:{system("cls");printf(" t*◆◆◆◆◆◆◆◆◆◆◆◆学生信息显示◆◆◆◆◆◆◆◆◆◆* ");Student_Display();}break;case4:{system("cls");Login();break;}case0:{system("cls");printf(" ");printf(" t╔═╗╔═╗╔═╗╔═╗╔═╗╔═╗");printf(" t║感║║谢║║您║║的║║访║║问║");printf(" t╚═╝╚═╝╚═╝╚═╝╚═╝╚═╝");exit(0);}default:{printf("选择无效,请重新输入!");getchar();system("cls");gotoloop;}}printf(" 按0键返主回菜单,按其他键结束程序 ");printf("请选择:");scanf("%d",&back);if(!back){system("cls");gotoloop;}}//标志结束位}/*<<<<<<<<<<<<***选择用户***>>>>>>>>>>>>>>>>*/intUser(){ints;system("cls");printf(" ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf("★☆ ");printf("☆1*教师登陆★ ");printf("★☆ ");printf("☆2*学生登陆★ ");printf("★☆ ");printf("☆0*退出系统★ ");printf("★☆ ");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ ");printf(" ");printf(" 请选择操作:");scanf("%d",&s);switch(s)36 {case1:system("cls");return(s);break;case2:system("cls");return(s);break;case0:exit(0);}}/*<<<<<<<<<<<<***登录界面***>>>>>>>>>>>>>>>>*/voidLogin(){inti;intchoice;charuser[20],code[20];intw=10;system("cls");choice=User();printf(" ");printf(" ");printf(" ");printf(" t╔═╗╔═╗╔═╗╔═╗");printf(" t║欢║║迎║║登║║陆║");printf(" t╚═╝╚═╝╚═╝╚═╝");printf(" t╔═╗╔═╗╔═╗╔═╗╔═╗╔═╗╔═╗╔═╗");printf(" t║学║║生║║成║║绩║║管║║理║║系║║统║");printf(" t╚═╝╚═╝╚═╝╚═╝╚═╝╚═╝╚═╝╚═╝");printf(" ");printf("ttt请输入用户名:");scanf("%s",user);printf(" ");printf("ttt请输入密码:");for(i=0;(code[i]=getch())!=13;printf("●"),++i);code[i]=0;printf(" ttt正在检查中");for(i=0;i<=w;i++){printf("▅");Sleep(75);}if(strcmp(user,"123")==0&&strcmp(code,"123")==0&&choice==1){printf(" ttt正在进入....");Sleep(500);getchar();36 system("cls");Menu_Teacher();}elseif(strcmp(user,"456")==0&&strcmp(code,"456")==0&&choice==2){printf(" ttt正在进入....");Sleep(500);getchar();system("cls");Menu_Student();}else{printf(" ttt密码或用户名错误!请重新输入!");Sleep(500);getchar();system("cls");Login();}}/*<<<<<<<<<<<<***欢迎界面***>>>>>>>>>>>>>>>>*/voidwelcome(){inti,j=30;intw=39;printf(" ");for(i=0;i<=w;i++){printf("■");Sleep(45);}printf(" ");printf(" t████████████████████");printf(" t█████████████");printf(" t████████████████████");printf(" t█████████████");printf(" t██████████████████████ ");printf(" ");printf(" t╔════╦════╦═══════════╗");printf(" t║制作人:║郑友添║09信管3班310900575║");36 printf(" t╚════╩════╩═══════════╝");printf(" t<<<<<<<<<<<<<<<<<<<<<<<<<运行前请看说明书>>>>>>>>>>>>>>>>>>>>>>>>>>>");printf(" ");for(i=0;i<=w;i++){printf("▅");Sleep(50);}}/*<<<<<<<<<<<<***主函数***>>>>>>>>>>>>>>>>*/voidmain(){welcome();IO_ReadInfo();Login();}36 4系统运行1、系统启动后的欢迎界面如下2、主菜单如下a、教师用户菜单b、学生用户菜单36 36 5总结虽然时间很紧,但是还是把课程设计完成了。这次课程设计,通过对程序的编制,调试和运行,以及文件操作方面的运行,使我更好的熟悉了各种调用的数据类型,在调试和运行过程中使我更加的了解和熟悉程序运行的环境,提高了我对程序调试分析的能力和对错误的纠正能力,使对于一些常见问题加深了了解。编程过程中必须时时刻刻注意那些小细节,慢慢体会,才能融会贯通。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。更重要的是对算法的设计,一个好的算法可以减少很多功夫,也保证了代码的质量。总的来说,这算得上是一次比较好的作业。《数据结构》课程设计的目的和任务就是训练我们对计算机加工的数据对象进行分析的能力,选择适当的数据结构及相应算法的能力。课程设计对我而言是其对所学课程内容掌握情况的一次自我验证。通过课程设计能提高我对所学知识的综合应用能力,能全面检查并掌握所学内容;培养自己独立思考、刻苦钻研的精神。36

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭