学生信息管理系统设计(学生信息管理系统毕业论文设计怎么做)

2024-04-25 22:10:19 :17

学生信息管理系统设计(学生信息管理系统毕业论文设计怎么做)

本文目录

学生信息管理系统毕业论文设计怎么做

课题研究的主要内容及拟解决的问题。 1·有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。2·学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。3·学生信息的修改。4·班级信息管理的输入,包括输入班级设置、年级信息等。5·班级信息管理的修改。6·班级管理信息的查询。7·学校基本课程信息的输入。8·基本课程信息的修改。9·学生课程的设置和修改。10·学生成绩信息的输入。11·学生成绩信息的修改。12·学生成绩信息的查询。13·学生成绩信息的统计。 针对一般学生管理系统的需求,通过对学生学习过程的内容和数据流程分析,设计如下面所示的数据项和数据结构: ·学生基本信息:包括的数据项有:学生学号、学生姓名、性别、出生日期、班号、联系电话、入学日期、家庭地址、注备等。 ·班级信息:包括的数据项有:班号、所在年级等。 ·课程基本信息:包括的数据项有:课程号、课程名称、课程类别等。 ·课程设置信息:包括的数据项有:年级信息、所学课程等。 ·学生成绩信息:包括的数据项有:考试编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。 需要的话,可以联系我。。

学生信息管理系统设计

这个程序需要你有一个gradeInfo.txt文件存储着学生信息,最后输出的数据也是在这里写的。如果你需要另外输出在其他文件,可以将输出处的函数文件名改一下就可以了。下面的程序是我以前的C++大作业,比你要求的功能多一些,我都有注释。希望给lz一些参考。C++大作业做起来还是很有意思的,所以希望lz加油去做一下。#include 《iostream》using std::cin;using std::cout;using std::cerr;using std::endl;using std::ios;#include 《fstream》using std::ofstream;using std::ifstream;using std::fstream;#include 《string》using std::string;#include 《iomanip》using std::setw;int enterChoice(); void searchGrade(string names,int row);void changeGrade(string names,int row);void deleteGrade(string names,int& row);void addGrade(string names,int& row);int getRow(ifstream& inp);void getID(ifstream& inp,string names);void countGrade(string names,int row);void saveResult(string names,int row);void showGrade(string names,int row);void averGrade(int Chinese,int row);int main(){ ifstream infile("gradeInfo.txt"); if(!infile){ cerr《《"文件打开错误,gradeInfo.txt不存在."《《endl; exit (1);} int row=getRow(infile); infile.close();//确定目前的学生数为row ifstream infile2("gradeInfo.txt"); //最多提供60个学生的成绩管理.根据目前合理的课程班人数确定.可根据需要进行更改. string names; //学生姓名 string ID; //学生学号 int Chinese; //语文成绩 int Math; //数学成绩 int Eng; //英语成绩 getID(infile2,names,ID,Chinese,Math,Eng);//从文件中读入学生资料. infile2.close(); int part; //其值代表了用户所选模块. //系统的主菜单.用户选择将要进行的操作. while(part!=4){ cout《《"\n **欢迎进入学生信息管理系统**"《《endl 《《"------------------------------------"《《endl 《《" 请选择您要进行的操作"《《endl 《《" 1-学生成绩信息维护"《《endl 《《" 2-学生成绩信息查询"《《endl 《《" 3-学生成绩统计"《《endl 《《" 4-退出系统"《《endl 《《"------------------------------------"《《endl; cin》》part; if (part==1){ int choice; //用户在信息维护模块所选择的执行功能. while((choice=enterChoice())!=4){ switch(choice){ case 1: addGrade(names,ID,Chinese,Math,Eng,row); break; case 2: deleteGrade(names,ID,Chinese,Math,Eng,row); break; case 3: changeGrade(names,ID,Chinese,Math,Eng,row); break; default: cerr《《"您的选择不正确"《《endl; break; } } } if (part==2){ cout《《"请选择:"《《endl 《《"1-按学号或姓名查询"《《endl 《《"2-查看所有学生信息"《《endl; int allOrPart; cin》》allOrPart; if (allOrPart==1) searchGrade(names,ID,Chinese,Math,Eng,row); if (allOrPart==2) showGrade(names,ID,Chinese,Math,Eng,row); } if (part==3){ cout《《"请选择:"《《endl 《《"1-查询单科目某一分数段的学生分布情况"《《endl 《《"2-计算单科平均分数"《《endl; int averOrPart; cin》》averOrPart; if (averOrPart==2) averGrade(Chinese,Math,Eng,row); if (averOrPart==1) countGrade(names,ID,Chinese,Math,Eng,row); } } return 0;}//此函数用于获取当前系统中存储获的学生信息条数.int getRow(ifstream& inp){ int row=0; string a,name,ID; int mark; inp》》a》》a》》a》》a》》a; //跳过第一行的目录结构. while(inp){ inp》》name》》ID》》mark》》mark》》mark; row++; } return row-1;}//此函数用于从文本文档中读取数据到内存以备用户在终端进行操作.void getID(ifstream& inp,string names){ string a; inp》》a》》a》》a》》a》》a; //跳过第一行的目录结构. int i=0; while(inp){ inp》》names; i++; }}//此函数实现学生成绩信息维护模块的子菜单.int enterChoice(){ cout《《"\n 请输入您要进行的操作"《《endl 《《" | 1-增加学生信息 |"《《endl 《《" | 2-删除学生信息 |"《《endl 《《" | 3-修改学生信息 |"《《endl 《《" | 4-返回上层 |"《《endl; int choice; cin》》choice; return choice;}//此函数为用户提供学生成绩的查询功能,使用学生姓名或学号均可.void searchGrade(string names,int row){ string searchGoal; cout《《"\n请输入学生学号或姓名"《《endl; cin》》searchGoal; bool found; for (int j=0;j《row;j++){ if (names==searchGoal){ cout《《"查询结果"《《endl 《《"姓名 学号 语文 数学 英语"《《endl 《《setw(6)《《names《《endl; found=true; break; } } if (found!=true) cout《《"所查找的学生成绩不存在"《《endl;}//此函数可删除系统中存储的学生信息记录.void deleteGrade(string names,int& row){ cout《《"\n请输入要删除信息的学生姓名或学号"《《endl; string delName; cin》》delName; bool found; for (int j=0;j《row;j++){ if (names==delName){ found=true; names="\0"; ID="\0"; Chinese=-1; Math=-1; Eng=-1; saveResult(names,ID,Chinese,Math,Eng,row); cout《《"该生信息已成功删除"《《endl; } } if (found!=true) cout《《"要删除的学生信息不存在"《《endl;}//此函数可向文本文件中写入新的学生信息.void addGrade(string names,int& row){ string newID; cout《《"\n请先输入学生学号:"《《endl;//学生可能存在重名现象,但是他们的学号是唯一的 //因此通过学号来判断要增加的学生信息是否重复. cin》》newID; bool exist; for (int j=0;j《row;j++) if(newID==ID){ cout《《"该学生信息已存在"《《endl; exist=true; break;} if (exist!=true){ cout《《"\n请再输入学生姓名和三科成绩,中间以空格键分开"《《endl; ID=newID; cin》》names; row++; saveResult(names,ID,Chinese,Math,Eng,row); cout《《"学生信息增加成功"《《endl; }}//此函数可更改学生的各项信息.void changeGrade(string names,int row){ string changeGoal; cout《《"\n请输入要更改信息的学生姓名或学号:"; cin》》changeGoal; bool found; int changeNum;//用户的修改内容选项 for (int j=0;j《row;j++){ if (names==changeGoal){ found=true; cout《《"该学生原始信息为:"《《endl 《《"姓名 学号 语文 数学 英语"《《endl 《《setw(6)《《names 《《setw(6)《《Chinese 《《setw(6)《《Eng《《endl 《《"请选择:"《《endl 《《"1-修改学生姓名"《《endl 《《"2-修改学生学号"《《endl 《《"3-修改语文成绩"《《endl 《《"4-修改数学成绩"《《endl 《《"5-修改英语成绩"《《endl; cin》》changeNum; cout《《"请输入修改后的内容:"; switch(changeNum){ case 1: cin》》names; break; case 2: cin》》ID; break; case 3: cin》》Chinese; break; case 4: cin》》Math; break; case 5: cin》》Eng; break; } saveResult(names,ID,Chinese,Math,Eng,row); cout《《"\n修改成功!"《《endl 《《"修改后的学生信息为:"《《endl 《《"姓名 学号 语文 数学 英语"《《endl 《《setw(6)《《names 《《setw(6)《《Chinese 《《setw(6)《《Eng《《endl; } } if (found!=true) cout《《"要修改的学生信息不存在"《《endl;}//此函数可统计某一科目再某个分数段上的学生分布,包括学生的姓名,学号,成绩,以及在这个分数段上的学生人数.void countGrade(string names,int row){ string subject; int low,high; int countResult=0; cout《《"\n请输入要查询的课程名和分数段,中间用空格分开,如:英语 60 70"《《endl; cin》》subject》》low》》high; cout《《subject《《"成绩在"《《low《《"-"《《high《《"分数段的学生为:"《《endl; for (int i=0;i《row;i++){ if (subject=="语文"&&Chinese《=high){ countResult++; cout《《setw(7)《《names《《setw(7)《《"学号" 《《setw(5)《《ID《《setw(7)《《"分数" 《《setw(7)《《Chinese《《endl; } if (subject=="数学"&&Math《=high){ countResult++; cout《《setw(7)《《names《《setw(7)《《"学号" 《《setw(5)《《ID《《setw(7)《《"分数" 《《setw(7)《《Math《《endl; } if (subject=="英语"&&Eng《=high){ countResult++; cout《《setw(7)《《names《《setw(7)《《"学号" 《《setw(5)《《ID《《setw(7)《《"分数" 《《setw(7)《《Eng《《endl; } } cout《《"\n共"《《countResult《《"人"《《endl;}//此函数可将内存中的学生信息数据变动保存到文本文件中.void saveResult(string names,int row){ ofstream outfile("GradeInfo.txt"); outfile《《" 姓名 学号 语文 数学 英语"《《endl; for (int n=0;n《row;n++){ if (names!="\0") outfile《《setw(7)《《names 《《setw(7)《《Chinese 《《setw(7)《《Eng《《endl; }}//显示目前系统中记录的所有的学生信息.void showGrade(string names,int row){ for (int n=0;n《row;n++){ if (names!="\0") cout《《setw(7)《《names 《《setw(7)《《Chinese 《《setw(7)《《Eng《《endl; }}//计算单科平均分数void averGrade(int Chinese,int row){ cout《《"请选择所要计算平均分数的科目:"《《endl 《《"1-语文"《《endl 《《"2-数学"《《endl 《《"3-英语"《《endl; int subject; cin》》subject; int sum=0; for (int n=0;n《row;n++){ if (Eng!=-1) { if (subject==1) sum+=Chinese; if (subject==2) sum+=Math; if (subject==3) sum+=Eng; } else row=row-1; } double averGrade; averGrade=static_cast《double》(sum)/static_cast《double》(row); cout《《"该科目的平均成绩为:"《《averGrade《《endl;}

如何设计一个学生信息管理系统

要求设计的管理系统能够实现以下功能:1.每一条记录包括一个学生的学号、姓名、3个成绩(平时成绩、作业成绩、考试成绩)2.成绩录入功能:(成绩信息用文件保存,可以一次完成若干条记录)3.成绩信息显示浏览功能,完成全部学生记录的显示。4.查询功能:完成按姓名查找学生记录,并显示5.成绩信息的删除:按学号进行删除某学生的成绩6.排序功能:按学生总成绩进行排序1.首先,列出所需要的头文件以及声明所需要的函数,细心的同学会发现,就算是数字,也用了字符串,方便输入以及存取信息。2.下面可以直接写主函数,也可以在声明函数的时候,直接定义函数,在最后写主函数。效果图如下:主函数菜单包括了题目中的所需信息,在每个选项的函数里都加了mei()这个函数,这个函数只是为了有一个这样的效果这个就是为了每次进行一次操作之后,有一个进入成绩管理系统的提示信息。3.下面就是函数部分了,从第一个开始,添加学生,如果你在成绩管理系统菜单选1,就会进入添加学生的界面,按照提示输入对应的信息即可。在这个函数中,有学生数量的计数器,也有循环,直到在相应位置输入n即可跳出循环。

学生管理系统怎么做求解

随着移动平台的崛起,越来越多的传统PC软件被移植到移动平台,而Android占领着最大的市场份额。Android平台是一个面向大众的系统,并且是开源的,开发者随时都可以查看系统源代码,使用java作为主要开发语言,具有以下优势。

(1) 随时随地使用,不受地点限制;

(2) 统一移动平台软件使用风格;

(3) 操作方便快捷、多用户独立使用;

(4) 数据永久性保存,随时可以翻阅查看。

 

请点击输入图片描述

据调查很多高校存在学生因忘记课表而导致上课迟到、上课地点出错等现象,针对这一现象,基于Android技术结合实际开发经验,研究了移动学习管理软件。学习管理系统是学生管理自己课程安排的重要组成部分,良好的课程安排系统可以让学生安排自己的课程学习计划和充分利用某些学校教育资源。在编写本系统软件之前,我查阅了很多相关资料。

经过分析,系统实现了课程安排、课程查询、制定学习计划、学习总结等必需的功能,其操作简单,界面友好,运行比较稳定,适用于班级课程表管理。软件采用最主流的Android软件应用开发风格,并使用Android的原生组件进行开发,在UI设计上采用了移动平台上最主流的设计理念:简单和引导。

 

请点击输入图片描述

系统满足以下功能:

(1)课程表的创建与查询,实现根据自己的上课情况来创建自己的课程表,并精确查询。

(2)课程信息的创建与查询,详细了解任课老师、上课方式、联系方式、学科性质等。

(3)课程学习时间的设定与管理(相当于学习计划),制定学习计划,利用自由时间学习。

(4)学习效果的反馈与总结,把最近学习的知识做一个总结,发布到手机上,供日后查阅。系统分为六大模块:注册模块、登录模块、课表查询与设置模块、课程查询模块、学习规划模块和学习总结模块。

 

请点击输入图片描述

一、注册模块用户必须注册后才可以登陆,这样不仅实现用户信息的保密,也可以实现多个用户同时使用同一台设备进行登陆,安全快捷。用户和密码的长度不能低于6个字符,否则无法完成注册。

 

二、登录模块用户注册以后就可以登陆学习管理系统进行相关的操作。

 

三、课表查询与设置模块本模块可以实现课表的创建与查询,同时附带任课老师的详细信息。通过这个功能解决学生因忘记上课时间和上课地点而上课迟到、走错教室的情况,极大地提高学习效率。

 

四、课程查询模块课程查询模块是课表查询模块的一个衍生功能,通过在课表设置与查询模块设置课程表,然后在课程查询模块精确快速的查询课程的名称、上课时间、上课地点、任课老师及联系方式。

 

五、学习规划模块在这个模块中学生能制作自己的学习计划,具体到哪一个时间点学习什么东西,自由的学习。例如:2015年5月11日——2015年6月11日7:20——8:20学习英语。

学生信息管理系统

#include《stdio.h》/*我们也做过的*/#include《stdlib.h》#include《string.h》#define MAX_LEN 10#define STU_NUM 30#define COURSE_NUM 6typedef struct student{long num;char name;float score;float sum;float aver;}STU;int Menu(void);void ReadScore(STU stu,int n,int m);void AverSumofEveryStudent(STU stu,int n,int m);void AverSumofEveryCourse(STU stu,int n,int m);void SortbyScore(STU stu,int n,int m,int (*compare)(float a,float b));int Ascending(float a,float b);int Descending(float a,float b);void SwapFloat(float *x,float *y);void SwapLong(long *x,long *y);void SwapChar(char x);void AsSortbyNum(STU stu,int n,int m);void SortbyName(STU stu,int n,int m);void SearchbyNum(STU stu,int n,int m);void SearchbyName(STU stu,int n,int m);void StatisticAnalysis(STU stu,int n,int m);void PrintScore(STU stu,int n,int m);void WritetoFile(STU record,int n,int m);void ReadfromFile(STU record,int *n,int *m);int main(){char ch;int n=0,m=0;STU stu;while(1){ch=Menu();switch (ch){case 1:printf("Input student number(n《=%d):",STU_NUM);scanf("%d",&n);printf("Input course number(m《=%d):",COURSE_NUM);scanf("%d",&m);ReadScore(stu,n,m);break;case 2:AverSumofEveryCourse(stu,n,m);break;case 3:AverSumofEveryStudent(stu,n,m);break;case 4:SortbyScore(stu,n,m,Descending);printf("\nSort in descending order by score:\n");PrintScore(stu,n,m);break;case 5:SortbyScore(stu,n,m,Ascending);printf("\nSort in ascending order by score:\n");PrintScore(stu,n,m);break;case 6:AsSortbyNum(stu,n,m);printf("\nSort in ascending order by score:\n");PrintScore(stu,n,m);break;case 7:SortbyName(stu,n,m);printf("\nSort in dictionary order by score:\n");PrintScore(stu,n,m);break;case 8:SearchbyNum(stu,n,m);break;case 9:SearchbyName(stu,n,m);break;case 10:StatisticAnalysis(stu,n,m);break;case 11:PrintScore(stu,n,m);break;case 12:WritetoFile(stu,n,m);break;case 13:ReadfromFile(stu,&n,&m);break;case 14:printf("End of program!\n");exit(0);default :printf("Input error!\n");}}return 0;}/*函数功能:显示菜单并获得用户键盘输入的选项*/int Menu(void){int itemSelected;printf("Management for Students’ scores\n");printf("1.Input record\n");printf("2.Caculate total and average score of every course \n");printf("3.Caculate total and average score of every student \n");printf("4.Sort in descending order by score \n");printf("5.Sort in ascending order by score \n");printf("6.Sort in ascending order by number \n");printf("7.Sort in dictionary order by name \n");printf("8.Search by number \n");printf("9.Search by name \n");printf("10.Statistic analysis \n");printf("11.List record \n");printf("12.write to a file \n");printf("13.read from a file \n");printf("0.Exit \n");printf("Please Input your choice:"); //读入用户输入scanf("%d",&itemSelected);return itemSelected;}/*函数功能:输入n个学生的m门课程成绩*/void ReadScore(STU stu,int n,int m){int i,j;printf("Input students’ ID,name and score:\n");for(i=0;i《n;i++){scanf("%ld%s",&stu.name);for(j=0;j《m;j++){scanf("%f",&stu);}}}/*函数功能:计算每个学生各门课程的总分和平均分*/void AverSumofEveryStudent(STU stu,int n,int m){int i,j;for(i=0;i《n;i++){stu.sum=0;for(j=0;j《m;j++){stu;}stu.sum/m:-1;printf("student %d: sum = %.0f,aver = %.0f\n",i+1,stu.aver);}}/*函数功能:计算每门课程的总分和平均分*/void AverSumofEveryCourse(STU stu,int n,int m){int i,j;float sum;for(j=0;j《m;j++){sum=0;for(i=0;i《n;i++){sum;}aver/n:-1;printf("course %d:sum = %.0f,aver = %.0f\n",j+1,sum);}}/*函数功能:按选择法将数组sum中的元素值排序*/void SortbyScore(STU stu,int n,int m,int (*compare)(float a,float b)){int i,j,k,t;for(i=0;i《n-1;i++){k=i;for(j=i+1;j《n;j++){if((*compare)(stu.sum)) k=j;}if(k!=i){for(t=0;t《m;t++){SwapFloat(&stu);}SwapFloat(&stu.sum);SwapFloat(&stu.aver);SwapLong(&stu.num);SwapChar(stu.name);}}}/*使数据按升序排序*/int Ascending(float a,float b){return a《b;}/*使数据按降序排序*/int Descending(float a,float b){return a》b;}/*交换两个单精度浮点型数据*/void SwapFloat(float *x,float *y){float temp;temp=*x;*x=*y;*y=temp;}/*交换两个长整形数据*/void SwapLong(long *x,long *y){long temp;temp=*x;*x=*y;*y=temp;}/*交换两个字符串*/void SwapChar(char x){char temp;strcpy(temp,x);strcpy(x,y);strcpy(y,temp);}/*函数功能:按选择法将数组num的元素值按从低到排高序*/void AsSortbyNum(STU stu,int n,int m){int i,j,k,t;for(i=0;i《n-1;i++){k=i;for(j=i+1;j《n;j++){if(stu.num) k=j;}if(k!=i){for(t=0;t《m;t++){SwapFloat(&stu);}SwapFloat(&stu.sum);SwapFloat(&stu.aver);SwapLong(&stu.num);SwapChar(stu.name);}}}/*函数功能:交换法实现字符串按字典顺序排序*/void SortbyName(STU stu,int n,int m){int i,j,t;for(i=0;i《n-1;i++){for(j=i+1;j《n;j++){if(strcmp(stu.name)《0){for(t=0;t《m;t++){SwapFloat(&stu);}SwapFloat(&stu.sum);SwapFloat(&stu.aver);SwapLong(&stu.num);SwapChar(stu.name);}}}}/*函数功能:按学号查找学生成绩并显示查找结果*/void SearchbyNum(STU stu,int n,int m){long number;int i,j;printf("Input the number you want to search");scanf("%ld",&number);for(i=0;i《n;i++){if(stu.num==number){printf("%ld \t%s \t",stu.name);for(j=0;j《m;j++){printf("%.0f \t",stu);}printf("%.0f\t%.0f\n",stu.aver);return;}}printf("\n Not Found! \n");}/*函数功能:按姓名的字典顺序排出成绩表*/void SearchbyName(STU stu,int n,int m){char x;int i,j;printf("Input the number you want to search");scanf("%s",x);for(i=0;i《n;i++){if(strcmp(stu.name,x)==0){printf("%ld \t%s \t",stu.name);for(j=0;j《m;j++){printf("%.0f \t",stu);}printf("%.0f\t%.0f\n",stu.aver);return;}}printf("\n Not Found! \n");}/*函数功能:统计各分数段的学生人数及所占的百分比*/void StatisticAnalysis(STU stu,int n,int m){int i,j,total,t;for(j=0;j《m;j++){printf("For course %d:\n",j+1);memset(t,0,sizeof(t)); //将数组t的全部元素初始化为0for(i=0;i《n;i++){if(stu++;else if (stu++;else if (stu++;else if (stu++;else if (stu++;else if (stu++;}for(total=0,i=0;i《=5;i++){total=total+t;}for(i=0;i《=5;i++){if(i==0) printf("《60\t%d\t%.2f%%\n",t/n*100);else if(i==5) printf("%d\t%d\t%.2f%%\n",(i+5)*10,t/n*100);else printf("%d-%d\t%d\t%.2f%%\n",(i+5)*10,(i+5)*10+9,t/n*100);}}}/*函数功能:打印学生成绩*/void PrintScore(STU stu,int n,int m){int i,j;for(i=0;i《n;i++){printf("%ld\t%s\t",stu.name);for(j=0;j《m;j++){printf("%.0f\t",stu);}printf("%.0f\t%.0f\n",stu.aver);}}/*输出n个学生的学号,姓名及m门课程的成绩到文件student.txt中*/void WritetoFile(STU stu,int n,int m){FILE *fp;int i,j;if((fp=fopen("student.txt","w"))==NULL){printf("Failure to open score.txt!\n");exit(0);}fprintf(fp,"%d\t%d\n",n,m); //将学生人数和课程门数写入文件for(i=0;i《n;i++){fprintf(fp,"%10ld%10s",stu.name);for(j=0;j《m;j++){fprintf(fp,"%10.0f",stu);}fprintf(fp,"%10.0f%10.0f\n",stu.aver);}fclose(fp);}/*从文件中读取学生的学号,姓名及成绩等信息写入到结构体数组stu中*/void ReadfromFile(STU stu,int *n,int *m){FILE *fp;int i,j;if((fp=fopen("student.txt","r"))==NULL){printf("Failure to open score.txt!\n");exit(0);}fscanf(fp,"%d\t%d",n,m); //从文件中读出学生人数和课程门数for(i=0;i《 *n;i++){fscanf(fp,"%10ld",&stu.num);fscanf(fp,"%10s",stu.name);for(j=0;j《 *m;j++){fscanf(fp,"%10f",&stu);}fscanf(fp,"%10f%10f",&stu.aver); //不能用%10.0f}fclose(fp);}

C语言程序设计 学生信息管理系统

给你一个看看#include《stdio.h》#include 《time.h》#include《conio.h》 /*清屏*/#include 《stdlib.h》 /*显示目录*/#include《string.h》 #define MAX 80 void input(); /*输入数据函数*/void sort();/*排序数据函数*/void sort1(); void sort2(); void sort3(); void display();/*显示数据函数*/ void display1();void insert(); /*插入数据函数*/void del(); /*删除数据函数*/void average(); /*平均值函数*/void find();/*查找数据函数*/void find1();void find2(); void save(); /*保存数据函数*/void read(); /*读出数据函数*/void del_file(); /*删除文件函数*/void modify(); /*修改文件函数*/int now_no=0; struct student { int no; char name; char sex; float score1; float score2; float score3; float sort; float ave; float sum; }; struct student stu,*p; main()/*主函数*/ { int as; char ch; do{ start: printf("\n\n\n\t\t\t欢迎使用学生成绩管理系统\n"); printf("\n\n\n\n\n\n\t\t******************按任意键继续********************"); ch=getch(); } while(!ch); system("cls"); /*一下为功能选择模块*/ do { printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员总成绩信息\n\t\t\t\t3.对总成绩排序\n\t\t\t\t4.显示学员单科成绩排序\n\t\t\t\t5.添加学员信息\n\t\t\t\t6.删除学员信息\n\t\t\t\t7.修改学员信息\n\t\t\t\t8.查询学员信息\n\t\t\t\t9.从文件读入学员信息\n\t\t\t\t10.删除文件中学员信息\n\t\t\t\t11.保存学员信息\n\t\t\t\t12.退出\n"); printf("\t\t\t\t选择功能选项(输入所选功能前的数字):"); fflush(stdin); /*可用可不用,用于清除缓存防止下次用scanf输入是出现错误*/ scanf("%d",&as); switch(as) { case 1:system("cls"); input(); break; case 2:system("cls"); display(); break; case 3:system("cls"); sort(); break; case 4:system("cls"); display1(); break; case 5:system("cls"); insert(); break; case 6:system("cls"); del(); break; case 7:system("cls"); modify(); break; case 8:system("cls"); find(); break; case 9:system("cls"); read(); break; case 10:system("cls"); del_file(); break; case 11:system("cls"); save(); break; case 12:system("exit"); exit(0); default:system("cls"); goto start; } }while(1);/*while(1),1表示真,所以while(1)表示永远循环下去,一般在while(1)的循环体内都有break 或者return 跳出循环*/ /*至此功能选择结束*/ } void input()/*原始数据录入模块*/ { int i=0; char ch; do { printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1); printf("\n输入学生编号:"); scanf("%d",&stu.no); fflush(stdin); printf("\n输入学员姓名:"); fflush(stdin); gets(stu.name); printf("\n输入学员性别:"); fflush(stdin); gets(stu.sex); printf("\n输入学员成绩1:"); scanf("%f",&stu.score1); printf("\n输入学员成绩2:"); fflush(stdin); scanf("%f",&stu.score2); printf("\n输入学员成绩3:"); fflush(stdin); scanf("%f",&stu.score3); printf("\n\n"); i++; now_no=i; printf("是否继续输入?(Y/N)"); fflush(stdin); ch=getch(); system("cls"); } while(ch!=’n’&&ch!=’N’); system("cls"); } void sort()/*排序数据函数*/ { struct student temp; int i,j; average(); for(i=1;i《now_no;i++) { for(j=1;j《=now_no-i;j++) { if(stu.ave) { temp=stu; stu; stu=temp; } } } printf("排序以完成进入功能2可进行显示\n"); system("pause"); system("cls");} void sort1()/*排序数据函数*/ { struct student temp; int i,j; for(i=1;i《now_no;i++) { for(j=1;j《=now_no-i;j++) { if(stu.score1) { temp=stu; stu; stu=temp; } } } } void sort2()/*排序数据函数*/ { struct student temp; int i,j; for(i=1;i《now_no;i++) { for(j=1;j《=now_no-i;j++) { if(stu.score2) { temp=stu; stu; stu=temp; } } } } void sort3()/*排序数据函数*/ { struct student temp; int i,j; for(i=1;i《now_no;i++) { for(j=1;j《=now_no-i;j++) { if(stu.score3) { temp=stu; stu; stu=temp; } } } }void display()/*显示数据函数*/ { int i; char as; average(); do { printf("\t\t\t班级学员信息列表\n"); printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n"); for(i=0;i《now_no&&stu;i++) printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu.ave); printf("\t\t按任意键返回主菜单."); fflush(stdin); as=getch(); } while(!as); system("cls"); }void display1()/*显示数据函数*/{ int i; char as; do { printf("\t\t\t班级学员score1成绩排序\n"); printf("\t编号\t姓名\t性别\t成绩1\n"); sort1(); for(i=0;i《now_no&&stu;i++) printf("\t%d\t%s\t%s\t%.2f\t\n",stu.score1); printf("\t\t\t班级学员score2成绩排序\n"); printf("\t编号\t姓名\t性别\t成绩2\n"); sort2(); for(i=0;i《now_no&&stu;i++) printf("\t%d\t%s\t%s\t%.2f\t\n",stu.score2); printf("\t\t\t班级学员score3成绩排序\n"); printf("\t编号\t姓名\t性别\t成绩3\n"); sort3(); for(i=0;i《now_no&&stu;i++) printf("\t%d\t%s\t%s\t%.2f\t\n",stu.score3); printf("\t\t按任意键返回主菜单."); fflush(stdin); as=getch(); } while(!as); system("cls"); }void insert()/*插入数据函数*/ { char ch; do { printf("\n\t\t输入新插入学员队信息\n"); printf("\n输入学生编号:"); scanf("%d",&stu.no); fflush(stdin); printf("\n输入学员姓名:"); fflush(stdin); gets(stu.name); printf("\n输入学员性别:"); fflush(stdin); gets(stu.sex); printf("\n输入学员成绩1:"); fflush(stdin); scanf("%f",&stu.score1); printf("\n输入学员成绩2:"); fflush(stdin); scanf("%f",&stu.score2); printf("\n输入学员成绩3:"); fflush(stdin); scanf("%f",&stu.score3); printf("\n\n"); now_no=now_no+1; sort(); printf("是否继续输入?(Y/N)"); fflush(stdin); ch=getch(); system("cls"); } while(ch!=’n’&&ch!=’N’); } void del()/*删除数据函数*/ { int inum,i; printf("输入要删除学员的编号:"); fflush(stdin); scanf("%d",&inum); for(i=0;i《now_no;i++) { if(stu.no==inum) { if(i==now_no)now_no-=1; else { stu; now_no-=1; } sort(); break; } } system("cls"); } void save()/*保存数据函数*/ { FILE *fp; int i; char filepath; printf("输入要保存的文件路径:"); fflush(stdin); gets(filepath); if((fp=fopen(filepath,"w"))==NULL) { printf("\n保存失败!"); exit(0); } for(i=0;i《now_no;i++) { stu.score3; stu.sum/3; fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu.ave); } fclose(fp); printf("学生信息已保存在%s中!\n",filepath); system("pause"); system("cls"); } void find()/*查询函数*/ { int i; char str,as; do { printf("输入要查询的学生姓名:"); fflush(stdin); gets(str); for(i=0;i《now_no;i++) if(!strcmp(stu.name,str)) { printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n"); printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu.ave); } printf("\t\t按任意键返回主菜单."); fflush(stdin); as=getch(); } while(!as); system("cls"); } void average()/*求平均数*/ { int i; for(i=0;i《now_no;i++) { stu.score3; stu.sum/3; } } void modify()/*修改数据函数*/ { int i; char str; printf("输入要修改的学生姓名:"); fflush(stdin); gets(str); for(i=0;i《now_no;i++) { if(!strcmp(stu.name,str)) { system("cls"); printf("\n\t\t输入新插入学员队信息\n"); printf("\n输入学生编号:"); fflush(stdin); scanf("%d",&stu.no); printf("\n输入学员性别:"); fflush(stdin); gets(stu.sex); printf("\n输入学员成绩1:"); fflush(stdin); scanf("%f",&stu.score1); printf("\n输入学员成绩2:"); fflush(stdin); scanf("%f",&stu.score2); printf("\n输入学员成绩3:"); fflush(stdin); scanf("%f",&stu.score3); printf("\n\n"); sort(); break; } } system("cls"); } void read() { FILE *fp; int i; char filepath; printf("输入要读入的文件路径:"); fflush(stdin); gets(filepath); if((fp=fopen(filepath,"r"))==NULL) { printf("找不到%s文件!\n",filepath); system("pause"); exit(0); } now_no=0; for(i=0;i《MAX&&!feof(fp);i++) { fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu.ave); now_no++; } fclose(fp); printf("保存的在文件%s中的所有信息已经读入!\n",filepath); system("pause"); /*按任意键继续*/ system("cls"); } void del_file() { FILE *fp; char filepath; printf("输入要删除的文件路径:"); fflush(stdin); gets(filepath); fp=fopen(filepath,"w"); fclose(fp); printf("保存的在文件%s中的所有信息已经删除!\n",filepath); system("pause"); system("cls"); }

设计题目: 学生信息管理系统设计

#include "stdio.h" #include "stdlib.h" #include "string.h" int shoudsave=0; /* */ struct student { char num;/* 学号 */ char name; char sex; int cgrade; int mgrade; int egrade; int totle; int ave; char neartime;/* 最近更新时间 */ }; typedef struct node { struct student data; struct node *next; }Node,*Link; void menu() { printf("********************************************************************************"); printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n"); printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n"); printf("\t5保存学生资料\t\t\t\t\t0退出系统\n"); printf("********************************************************************************\n"); } void printstart() { printf("-----------------------------------------------------------------------\n"); } void Wrong() { printf("\n=====》提示:输入错误!\n"); } void Nofind() { printf("\n=====》提示:没有找到该学生!\n"); } void printc() /* 本函数用于输出中文 */ { printf(" 学号\t 姓名 性别 英语成绩 数学成绩 C语言成绩 总分 平均分\n"); } void printe(Node *p)/* 本函数用于输出英文 */ { printf("%-12s%s\t%s\t%d\t%d\t%d\t %d\t %d\n",p-》data.num,p-》data.name,p-》data.sex,p-》data.egrade,p-》data.mgrade,p-》data.cgrade,p-》data.totle,p-》data.ave); } Node* Locate(Link l,char findmess) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */ { Node *r; if(strcmp(nameornum,"num")==0) /* 按学号查询 */ { r=l-》next; while(r!=NULL) { if(strcmp(r-》data.num,findmess)==0) return r; r=r-》next; } } else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */ { r=l-》next; while(r!=NULL) { if(strcmp(r-》data.name,findmess)==0) return r; r=r-》next; } } return 0; } void Add(Link l) /* 增加学生 */ { Node *p,*r,*s; char num; r=l; s=l-》next; while(r-》next!=NULL) r=r-》next; /* 将指针置于最末尾 */ while(1) { printf("请你输入学号(以’0’返回上一级菜单:)"); scanf("%s",num); if(strcmp(num,"0")==0) break; while(s) { if(strcmp(s-》data.num,num)==0) { printf("=====》提示:学号为’%s’的学生已经存在,若要修改请你选择’4 修改’!\n",num); printstart(); printc(); printe(s); printstart(); printf("\n"); return; } s=s-》next; } p=(Node *)malloc(sizeof(Node)); strcpy(p-》data.num,num); printf("请你输入姓名:"); scanf("%s",p-》data.name); getchar(); printf("请你输入性别:"); scanf("%s",p-》data.sex); getchar(); printf("请你输入c语言成绩:"); scanf("%d",&p-》data.cgrade); getchar(); printf("请你输入数学成绩:"); scanf("%d",&p-》data.mgrade); getchar(); printf("请你输入英语成绩:"); scanf("%d",&p-》data.egrade); getchar(); p-》data.totle=p-》data.egrade+p-》data.cgrade+p-》data.mgrade; p-》data.ave=p-》data.totle / 3; /* 信息输入已经完成 */ p-》next=NULL; r-》next=p; r=p; shoudsave=1; } } void Qur(Link l) /* 查询学生 */ { int sel; char findmess; Node *p; if(!l-》next) { printf("\n=====》提示:没有资料可以查询!\n"); return; } printf("\n=====》1按学号查找\n=====》2按姓名查找\n"); scanf("%d",&sel); if(sel==1)/* 学号 */ { printf("请你输入要查找的学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf("\t\t\t\t查找结果\n"); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else if(sel==2) /* 姓名 */ { printf("请你输入要查找的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { printf("\t\t\t\t查找结果\n"); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else Wrong(); } void Del(Link l) /* 删除 */ { int sel; Node *p,*r; char findmess; if(!l-》next) { printf("\n=====》提示:没有资料可以删除!\n"); return; } printf("\n=====》1按学号删除\n=====》2按姓名删除\n"); scanf("%d",&sel); if(sel==1) { printf("请你输入要删除的学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { r=l; while(r-》next!=p) r=r-》next; r-》next=p-》next; free(p); printf("\n=====》提示:该学生已经成功删除!\n"); shoudsave=1; } else Nofind(); } else if(sel==2) { printf("请你输入要删除的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { r=l; while(r-》next!=p) r=r-》next; r-》next=p-》next; free(p); printf("\n=====》提示:该学生已经成功删除!\n"); shoudsave=1; } else Nofind(); } else Wrong(); } void Modify(Link l) { Node *p; char findmess; if(!l-》next) { printf("\n=====》提示:没有资料可以修改!\n"); return; } printf("请你输入要修改的学生学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf("请你输入新学号(原来是%s):",p-》data.num); scanf("%s",p-》data.num); printf("请你输入新姓名(原来是%s):",p-》data.name); scanf("%s",p-》data.name); getchar(); printf("请你输入新性别(原来是%s):",p-》data.sex); scanf("%s",p-》data.sex); printf("请你输入新的c语言成绩(原来是%d分):",p-》data.cgrade); scanf("%d",&p-》data.cgrade); getchar(); printf("请你输入新的数学成绩(原来是%d分):",p-》data.mgrade); scanf("%d",&p-》data.mgrade); getchar(); printf("请你输入新的英语成绩(原来是%d分):",p-》data.egrade); scanf("%d",&p-》data.egrade); p-》data.totle=p-》data.egrade+p-》data.cgrade+p-》data.mgrade; p-》data.ave=p-》data.totle/3; printf("\n=====》提示:资料修改成功!\n"); shoudsave=1; } else Nofind(); } void Disp(Link l) { int count=0; Node *p; p=l-》next; if(!p) { printf("\n=====》提示:没有资料可以显示!\n"); return; } printf("\t\t\t\t显示结果\n"); printstart(); printc(); printf("\n"); while(p) { printe(p); p=p-》next; } printstart(); printf("\n"); } void Tongji(Link l) { Node *pm,*pe,*pc,*pt,*pa; /* 用于指向分数最高的接点 */ Node *r=l-》next; if(!r) { printf("\n=====》提示:没有资料可以统计!\n"); return ; } pm=pe=pc=pt=pa=r; while(r!=NULL) { if(r-》data.cgrade》=pc-》data.cgrade) pc=r; if(r-》data.mgrade》=pm-》data.mgrade) pm=r; if(r-》data.egrade》=pe-》data.egrade) pe=r; if(r-》data.totle》=pt-》data.totle) pt=r; if(r-》data.ave》=pa-》data.ave) pa=r; r=r-》next; } printf("------------------------------统计结果--------------------------------\n"); printf("总分最高者:\t%s %d分\n",pt-》data.name,pt-》data.totle); printf("平均分最高者:\t%s %d分\n",pa-》data.name,pa-》data.ave); printf("英语最高者:\t%s %d分\n",pe-》data.name,pe-》data.egrade); printf("数学最高者:\t%s %d分\n",pm-》data.name,pm-》data.mgrade); printf("c语言最高者:\t%s %d分\n",pc-》data.name,pc-》data.cgrade); printstart(); } void Sort(Link l) { Link ll; Node *p,*rr,*s; ll=(Link)malloc(sizeof(Node)); /* 用于做新的连表 */ ll-》next=NULL; if(l-》next==NULL) { printf("\n=====》提示:没有资料可以排序!\n"); return ; } p=l-》next; while(p) { s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息 */ s-》data=p-》data; s-》next=NULL; rr=ll; while(rr-》next!=NULL && rr-》next-》data.totle》=p-》data.totle) rr=rr-》next; if(rr-》next==NULL) rr-》next=s; else { s-》next=rr-》next; rr-》next=s; } p=p-》next; } free(l); l-》next=ll-》next; printf("\n=====》提示:排序已经完成!\n"); } void Save(Link l) { FILE* fp; Node *p; int flag=1,count=0; fp=fopen("c:\\student","wb"); if(fp==NULL) { printf("\n=====》提示:重新打开文件时发生错误!\n"); exit(1); } p=l-》next; while(p) { if(fwrite(p,sizeof(Node),1,fp)==1) { p=p-》next; count++; } else { flag=0; break; } } if(flag) { printf("\n=====》提示:文件保存成功.(有%d条记录已经保存.)\n",count); shoudsave=0; } fclose(fp); } void main() { Link l;/* 连表 */ FILE *fp; /* 文件指针 */ int sel; char ch; char jian; int count=0; Node *p,*r; printf("\t\t\t\t学生成绩管理系统\n\t\t\t\t-------福建农业职业学院计应0501 黄欢(32号)\n"); l=(Node*)malloc(sizeof(Node)); l-》next=NULL; r=l; fp=fopen("C:\\student","rb"); if(fp==NULL) { printf("\n=====》提示:文件还不存在,是否创建?(y/n)\n"); scanf("%c",&jian); if(jian==’y’||jian==’Y’) fp=fopen("C:\\student","wb"); else exit(0); } printf("\n=====》提示:文件已经打开,正在导入记录......\n"); while(!feof(fp)) { p=(Node*)malloc(sizeof(Node)); if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中 */ { p-》next=NULL; r-》next=p; r=p; /* 将该接点挂入连中 */ count++; } } fclose(fp); /* 关闭文件 */ printf("\n=====》提示:记录导入完毕,共导入%d条记录.\n",count); while(1) { menu(); printf("请你选择操作:"); scanf("%d",&sel); if(sel==0) { if(shoudsave==1) { getchar(); printf("\n=====》提示:资料已经改动,是否将改动保存到文件中(y/n)?\n"); scanf("%c",&ch); if(ch==’y’||ch==’Y’) Save(l); } printf("\n=====》提示:你已经退出系统,再见!\n"); break; } switch(sel) { case 1:Add(l);break; /* 增加学生 */ case 2:Del(l);break;/* 删除学生 */ case 3:Qur(l);break;/* 查询学生 */ case 4:Modify(l);break;/* 修改学生 */ case 5:Save(l);break;/* 保存学生 */ case 9:printf("\t\t\t==========帮助信息==========\n");break; default: Wrong();getchar();break; } } } /* */ /* 学生成绩管理程序 编制一个统计学生考试分数的管理程序。 设学生成绩已以一个学生一个记录的形式存储在文件中, 每位学生记录包含的信息有:姓名,学号和各门功课的成绩。 程序具有以下几项功能:求出各门课程的总分,平均分,按姓名, 按学号寻找其记录并显示,浏览全部学生成绩和按总分由高到低显示学生信息等。 */ #include 《stdio.h》 #define SWN 3 /* 课程数 */ #define NAMELEN 20 /* 姓名最大字符数 */ #define CODELEN 10 /* 学号最大字符数 */ #define FNAMELEN 80 /* 文件名最大字符数 */ #define BUFLEN 80 /* 缓冲区最大字符数 */ /* 课程名称表 */ char schoolwork = {"Chinese","Mathematic","English"}; struct record { char name; /* 姓名 */ char code; /* 学号 */ int marks; /* 各课程成绩 */ int total; /* 总分 */ }stu; struct node { char name; /* 姓名 */ char code; /* 学号 */ int marks; /* 各课程成绩 */ int total; /* 总分 */ struct node *next; /* 后续表元指针 */ }*head; /* 链表首指针 */ int total; /* 各课程总分 */ FILE *stfpt; /* 文件指针 */ char stuf; /* 文件名 */ /* 从指定文件读入一个记录 */ int readrecord(FILE *fpt,struct record *rpt) { char buf; int i; if(fscanf(fpt,"%s",buf)!=1) return 0; /* 文件结束 */ strncpy(rpt-》name,buf,NAMELEN); fscanf(fpt,"%s",buf); strncpy(rpt-》code,buf,CODELEN); for(i=0;i《SWN;i++) fscanf(fpt,"%d",&rpt-》marks); for(rpt-》total=0,i=0;i《SWN;i++) rpt-》total+=rpt-》marks; return 1; } /* 对指定文件写入一个记录 */ writerecord(FILE *fpt,struct record *rpt) { int i; fprintf(fpt,"%s\n",rpt-》name); fprintf(fpt,"%s\n",rpt-》code); for(i=0;i《SWN;i++) fprintf(fpt,"%d\n",rpt-》marks); return ; } /* 显示学生记录 */ displaystu(struct record *rpt) { int i; printf("\nName : %s\n",rpt-》name); printf("Code : %s\n",rpt-》code); printf("Marks :\n"); for(i=0;i《SWN;i++) printf(" %-15s : %4d\n",schoolwork); printf("Total : %4d\n",rpt-》total); } /* 计算各单科总分 */ int totalmark(char *fname) { FILE *fp; struct record s; int count,i; if((fp=fopen(fname,"r"))==NULL) { printf("Can’t open file %s.\n",fname); return 0; } for(i=0;i《SWN;i++) total=0; count=0; while(readrecord(fp,&s)!=0) { for(i=0;i《SWN;i++) total; count++; } fclose(fp); return count; /* 返回记录数 */ } /* 列表显示学生信息 */ void liststu(char *fname) { FILE *fp; struct record s; if((fp=fopen(fname,"r"))==NULL) { printf("Can’t open file %s.\n",fname); return ; } while(readrecord(fp,&s)!=0) { displaystu(&s); printf("\n Press ENTER to continue...\n"); while(getchar()!=’\n’); } fclose(fp); return; } /* 构造链表 */ struct node *makelist(char *fname) { FILE *fp; struct record s; struct node *p,*u,*v,*h; int i; if((fp=fopen(fname,"r"))==NULL) { printf("Can’t open file %s.\n",fname); return NULL; } h=NULL; p=(struct node *)malloc(sizeof(struct node)); while(readrecord(fp,(struct record *)p)!=0) { v=h; while(v&&p-》total《=v-》total) { u=v; v=v-》next; } if(v==h) h=p; else u-》next=p; p-》next=v; p=(struct node *)malloc(sizeof(struct node)); } free(p); fclose(fp); return h; } /* 顺序显示链表各表元 */ void displaylist(struct node *h) { while(h!=NULL) { displaystu((struct record *)h); printf("\n Press ENTER to continue...\n"); while(getchar()!=’\n’); h=h-》next; } return; } /* 按学生姓名查找学生记录 */ int retrievebyn(char *fname, char *key) { FILE *fp; int c; struct record s; if((fp=fopen(fname,"r"))==NULL) { printf("Can’t open file %s.\n",fname); return 0; } c=0; while(readrecord(fp,&s)!=0) { if(strcmp(s.name,key)==0) { displaystu(&s); c++; } } fclose(fp); if(c==0) printf("The student %s is not in the file %s.\n",key,fname); return 1; } /* 按学生学号查找学生记录 */ int retrievebyc(char *fname, char *key) { FILE *fp; int c; struct record s; if((fp=fopen(fname,"r"))==NULL) { printf("Can’t open file %s.\n",fname); return 0; } c=0; while(readrecord(fp,&s)!=0) { if(strcmp(s.code,key)==0) { displaystu(&s); c++; break; } } fclose(fp); if(c==0) printf("The student %s is not in the file %s.\n",key,fname); return 1; } main() { int i,j,n; char c; char buf; FILE *fp; struct record s; clrscr(); printf("Please input the students marks record file’s name: "); scanf("%s",stuf); if((fp=fopen(stuf,"r"))==NULL) { printf("The file %s doesn’t exit, do you want to creat it? (Y/N) ",stuf); getchar(); c=getchar(); if(c==’Y’||c==’y’) { fp=fopen(stuf,"w"); printf("Please input the record number you want to write to the file: "); scanf("%d",&n); for(i=0;i《n;i++) { printf("Input the student’s name: "); scanf("%s",&s.name); printf("Input the student’s code: "); scanf("%s",&s.code); for(j=0;j《SWN;j++) { printf("Input the %s mark: ",schoolwork); scanf("%d",&s.marks); } writerecord(fp,&s); } fclose(fp); } } fclose(fp); getchar(); /*clrscr();*/ puts("Now you can input a command to manage the records."); puts("m : mean of the marks."); puts("t : total of the marks."); puts("n : search record by student’s name."); puts("c : search record by student’s code."); puts("l : list all the records."); puts("s : sort and list the records by the total."); puts("q : quit!"); while(1) { puts("Please input command:"); scanf(" %c",&c); /* 输入选择命令 */ if(c==’q’||c==’Q’) { puts("\n Thank you for your using."); break; /* q,结束程序运行 */ } switch(c) { case ’m’: /* 计算平均分 */ case ’M’: if((n=totalmark(stuf))==0) { puts("Error!"); break; } printf("\n"); for(i=0;i《SWN;i++) printf("%-15s’s average is: %.2f.\n",schoolwork/n); break; case ’t’: /* 计算总分 */ case ’T’: if((n=totalmark(stuf))==0) { puts("Error!"); break; } printf("\n"); for(i=0;i《SWN;i++) printf("%-15s’s total mark is: %d.\n",schoolwork); break; case ’n’: /* 按学生的姓名寻找记录 */ case ’N’: printf("Please input the student’s name you want to search: "); scanf("%s",buf); retrievebyn(stuf,buf); break; case ’c’: /* 按学生的学号寻找记录 */ case ’C’: printf("Please input the student’s code you want to search: "); scanf("%s",buf); retrievebyc(stuf,buf); break; case ’l’: /* 列出所有学生记录 */ case ’L’: liststu(stuf); break; case ’s’: /* 按总分从高到低排列显示 */ case ’S’: if((head=makelist(stuf))!=NULL) displaylist(head); break; default: break; } } }

Access学生信息管理系统设计目标

随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长。面对庞大的信息量,有必要开发学生管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。本学生信息管理系统包括学生记录、添加新生、学生信息,查询学生信息,学生信息统计以及系统退出等几个模块。管理员登录后可以对学生的各项信息进行管理。可以说,现在传统的学生的各项管理所具备的功能几乎都可以在互联网上进行互联网高效运作,虽然传统学生管理的手段不同,但是随着互联网的发展,它将有力的改变现存学生管理模式,给教育单位以高效低成本的发展空间。本学生管理系统的系统设计是基于HTML语言,嵌套ASP编程技术,以IIS为服务平台,实现基于网络学生管理系统的构建。本篇论文介绍了该系统的开发环境和运行平台、ASP、HTML脚本,而后台的数据库则使用ACCESS数据库管理整个学生管理系统的后台数据。

C++设计一个学生信息管理系统

#include《iostream》#include《fstream》#include《string》#include《cstring》using namespace std;class Student{ //学生类private: string number; //学号 string name; //姓名 int age; //年龄 char sex; //性别 string grade; //班级public: Student(); //无参构造 Student(string Num,string Nam,int Age,char Sex,string Gra):number(Num),name(Nam),age(Age),sex(Sex),grade(Gra){}//有参构造 ~Student(){} //析构 virtual void Display(); //显示学生信息 virtual void Add(); //声明新增学生对象的函数 virtual int FindRevise(string str) {if(str==number) return 1;else return 0;} void Setname(string str) {name=str;} //修改姓名 void SetGrade(string str) {grade=str;} //修改班级};Student::Student(){ //定义学生类无参构造函数 number="001"; name="Zhangsan"; age=18; sex=’M’; grade="One";}void Student::Display(){ //定义显示学生信息函数 cout《《"学号:"《《number《《endl; cout《《"姓名:"《《name《《endl; cout《《"年龄:"《《age《《endl; cout《《"性别:"《《sex《《endl; cout《《"年级:"《《grade《《endl;}void Student::Add(){ //定义增加学生信息函数 cout《《"请输入"《《endl; cout《《"学号:";cin》》number; cout《《"姓名:";cin》》name; cout《《"年龄:";cin》》age; cout《《"性别:";cin》》sex; cout《《"年级:";cin》》grade;}class Undergrade:public Student{ //本科生类,继承了学生类private: double score1; //成绩1 double score2; //成绩2 double score3; //成绩3 double score4; //成绩4 Student monitor; //班长(学生类)public: Undergrade(); //无参构造 Undergrade(string Num,string Nam,int Age,char Sex,string Gra,double s1,double s2,double s3,double s4,Student Mon):Student(Num,Nam,Age,Sex,Gra){ score1=s1; score2=s2; score3=s3; score4=s4; monitor=Mon; }//有参构造 virtual void Display_monitor();//定义显示班长信息函数 ~Undergrade(){} //析构 void Display();//声明显示本科生类学生信息函数 void Add(); //声明新增本科类学生的函数 virtual void AddMon();//声明增加班长信息的函数 int FindRevise(string str); //用于查找判断该学号是否为该学生 str为学号 void Revise(int n); //修改学生信息,n为需要修改的信息(详细见ReviseMenu)};Undergrade::Undergrade(){ //定义本科生类学生无参构造函数 score1=100; score2=100; score3=100; score4=100; Student t; monitor=t;}void Undergrade::Display_monitor(){ //定义显示本科生信息函数 monitor.Display();}void Undergrade::Display(){ //定义显示本科生信息函数 Student::Display(); cout《《"成绩1:"《《score1《《endl; cout《《"成绩2:"《《score2《《endl; cout《《"成绩3:"《《score3《《endl; cout《《"成绩4:"《《score4《《endl; cout《《"班长:"《《endl; Display_monitor();}void Undergrade::AddMon(){ //定义增加班长信息的函数 monitor.Add();}void Undergrade::Add(){ //定义增加本科生信息函数 Student::Add(); cout《《"成绩1:";cin》》score1; cout《《"成绩2:";cin》》score2; cout《《"成绩3:";cin》》score3; cout《《"成绩4:";cin》》score4; cout《《"班长:"《《endl; AddMon();}int Undergrade::FindRevise(string str){//用于查找判断该学号是否为该学生 str为学号 if(Student::FindRevise(str)) return 1; else return 0;}void Undergrade::Revise(int n){ //修改学生信息 n为修改的具体类型(详情见ReviseMenu) string str; switch(n){ case 1:{ cout《《"请输入新姓名:";cin》》str; Student::Setname(str); break; } case 2:{ cout《《"请输入新班级:";cin》》str; Student::SetGrade(str); break; } }}class Graduate:public Student{//研究生类private: double scoreA; //成绩a double scoreB; //成绩b Student monitor; //班长(学生类) string res_direction;//研究方向 string res_teacher; //研究导师 double pay;//工资public: Graduate(); //无参构造 Graduate(string Num,string Nam,int Age,char Sex,string Gra,double A,double B,Student Mon,string Dir,string Tea,double Pay):Student(Num,Nam,Age,Sex,Gra){ scoreA=A; scoreB=B; monitor=Mon; res_direction=Dir; res_teacher=Tea; pay=Pay; }//有参构造 void Display_monitor();//声明显示班长信息函数 ~Graduate(){} //析构 void Display();//声明显示研究生类学生信息函数 void Add();//新增学生信息 void AddMon();//新增班长信息 int FindRevise(string str);//用于查找判断该学号是否为该学生 str为学号 void Revise(int n);//修改学生信息 n为修改的具体类型(详情见ReviseMenu)};Graduate::Graduate(){ //定义研究生类学生无参构造函数 scoreA=100; scoreB=100; Student t; monitor=t; res_direction="Zhang"; res_teacher="Zhang"; pay=999;}void Graduate::Display_monitor(){ //定义显示班长信息函数 monitor.Display();}void Graduate::Display(){ //定义显示研究生信息函数 Student::Display(); cout《《"成绩A:"《《scoreA《《endl; cout《《"成绩B:"《《scoreB《《endl; cout《《"班长:"《《endl; Display_monitor(); cout《《"研究方向:"《《res_direction《《endl; cout《《"研究导师:"《《res_teacher《《endl; cout《《"工资:"《《pay《《endl;}void Graduate::AddMon(){//定义增加班长信息的函数 monitor.Add();}void Graduate::Add(){ //定义增加研究生信息函数 Student::Add(); cout《《"成绩A:";cin》》scoreA; cout《《"成绩B:";cin》》scoreB; cout《《"班长:"《《endl; AddMon(); cout《《"研究方向:";cin》》res_direction; cout《《"研究导师:";cin》》res_teacher; cout《《"工资:";cin》》pay;}int Graduate::FindRevise(string str){//用于查找判断该学号是否为该学生 str为学号 if(Student::FindRevise(str)) return 1; else return 0;}void Graduate::Revise(int n){ //修改学生信息 n为修改的具体类型(详情见ReviseMenu) string str; switch(n){ case 1:{ cout《《"请输入新姓名:";cin》》str; Student::Setname(str); break; } case 2:{ cout《《"请输入新班级:";cin》》str; Student::SetGrade(str); break; } }}void MainMenu() //主菜单{ cout《《"\n\t学 生 管 理 系 统"; cout《《"\n*******************************\n"; cout《《" \t1.添加新本科类学生\n"; cout《《" \t2.添加新研究生类学生\n"; cout《《" \t3.显示本科类学生信息\n"; cout《《" \t4.显示研究生类学生信息\n"; cout《《" \t5.修改本科类学生信息\n"; cout《《" \t6.修改研究生类学生信息\n"; cout《《" \t7.删除本科类学生信息\n"; cout《《" \t8.删除研究生类学生信息\n"; cout《《" \t9.\n"; cout《《" \t10.\n"; cout《《"\n*******************************\n"; cout《《"请选择:";}void ReviseMenu() //定义修改学生信息的函数{ cout《《"\n***************************\n"; cout《《"1.修改姓名\n"; cout《《"2.修改班级"; cout《《"\n***************************\n"; cout《《"请选择:";}int main(){ Undergrade UndGra; //定义本科生对象数组 int UndGraVis;//用于判断本科生是否存在 Graduate Gra; //定义研究生对象数组 int GraVis;//用于判断研究生是否存在 int i,UndGraPeo=1,GraPeo=1,a; memset(UndGraVis,1,sizeof(UndGraVis)); memset(GraVis,1,sizeof(GraVis)); while(1) { MainMenu(); int c; cin》》c; cout《《endl; switch(c) { case 1:{//新增本科生 UndGra.Add(); cout《《"已成功添加!"《《endl; UndGraPeo++; break; } case 2:{//新增研究生 Gra.Add(); cout《《"已成功添加!"《《endl; GraPeo++; break; } case 3:{//显示本科生 if(UndGraPeo==1) cout《《"无记录!\n"; else{ for(i=1;i《UndGraPeo;i++){ if(!UndGraVis) continue; UndGra.Display(); cout《《endl; } } break; } case 4:{//显示研究生 if(GraPeo==1) cout《《"无记录!\n"; else{ for(i=1;i《GraPeo;i++){ if(!GraVis) continue; Gra.Display(); cout《《endl; } } break; } case 5:{//修改本科生信息 ReviseMenu(); int n; cin》》n; string str; int num=0; cout《《"请输入该学生学号:";cin》》str; for(i=1;i《UndGraPeo;i++){ if(UndGra.FindRevise(str)) {num=i;break;} } if(num==0||!UndGraVis) {cout《《"输入错误!"《《endl;break;} //未找到该学生 else UndGra.Revise(n); cout《《"修改成功!"《《endl; break; } case 6:{//修改研究生信息 ReviseMenu(); int n; cin》》n; string str; int num=0; cout《《"请输入该学生学号:";cin》》str; for(i=1;i《GraPeo;i++){ if(Gra.FindRevise(str)) {num=i;break;} } if(num==0||!GraVis) {cout《《"输入错误!"《《endl;break;} else Gra.Revise(n); cout《《"修改成功!"《《endl; break; } case 7:{//删除本科生信息 string str; int num=0; cout《《"请输入该学生学号:";cin》》str; for(i=1;i《UndGraPeo;i++){ if(UndGra.FindRevise(str)) {num=i;break;} } if(num==0||!UndGraVis) {cout《《"输入错误!"《《endl;break;} //未找到该学生 else UndGraVis=0; cout《《"已删除!"《《endl; break; } case 8:{//删除研究生信息 string str; int num=0; cout《《"请输入该学生学号:";cin》》str; for(i=1;i《GraPeo;i++){ if(Gra.FindRevise(str)) {num=i;break;} } if(num==0||!GraVis) {cout《《"输入错误!"《《endl;break;} //未找到该学生 else GraVis=0; cout《《"已删除!"《《endl; break; } default:cout《《"输入错误!\n"; } } return 0;}这可绝对可用 我们刚刚 做完这个

学生信息管理系统设计(学生信息管理系统毕业论文设计怎么做)

本文编辑:admin

更多文章:


见习医生和实习医生的区别?实习医生什么时候才能考证

见习医生和实习医生的区别?实习医生什么时候才能考证

本文目录见习医生和实习医生的区别实习医生什么时候才能考证实习医生格蕾剧情介绍(医学与人生的交织)26岁是实习医生还是主治医生如何评价实习医生的工作表现实习医生才会下乡吗实习医生和谁学习实习医生遇到过哪些有趣的事情实习医生名字在前还是在后实习

2024年5月1日 03:00

湖北的春节作文?我的家乡湖北作文

湖北的春节作文?我的家乡湖北作文

本文目录湖北的春节作文我的家乡湖北作文湖北暴雨作文400字我的家乡湖北写作文暑期湖北暴雨作文600字湖北特大暴雨作文600字湖北暴雨的作文500字暑假湖北强降雨作文300字湖北家乡的景物写作文湖北的春节作文   在平平淡淡的日常中,大家都不

2024年6月2日 17:40

小学一年级语文上册教案(小学一年级上册语文教案5篇)

小学一年级语文上册教案(小学一年级上册语文教案5篇)

本文目录小学一年级上册语文教案5篇小学一年级上册语文教案精致模板冀教版一年级语文上册教案5篇小学一年级语文上册教案小学一年级上册语文教案五篇一年级上册语文教案全册完整版精选小学一年级上册语文教案5篇 1.小学一年级上册语文教案   教学

2024年3月2日 12:10

幼儿园大班家长评语(幼儿园大班家长评价孩子的评语)

幼儿园大班家长评语(幼儿园大班家长评价孩子的评语)

本文目录幼儿园大班家长评价孩子的评语幼儿园大班简单的家长评语大全幼儿园大班家长评价大班幼儿园家长评语怎么写家长评语怎么写幼儿园大班幼儿园大班家长评语幼儿园大班幼儿家长评语大班幼儿园家长评语简短幼儿园大班家长评价孩子的评语幼儿园大班家长评价孩

2024年2月28日 02:10

誓词内容?公民宣誓词有哪些

誓词内容?公民宣誓词有哪些

本文目录誓词内容公民宣誓词有哪些誓字有哪些词语誓词的解释誓词的解释是什么简短而温暖的婚礼誓词宪法宣誓誓词中国人民解放军军人誓词少先队经典誓词少先队员誓词入党誓词用什么颜色誓词内容法律分析:党员誓词内容是“我志愿加入中国共产党,拥护党的纲领,

2024年6月8日 17:20

欢声笑语的反义词(“欢声笑语“的反义词是什么啊)

欢声笑语的反义词(“欢声笑语“的反义词是什么啊)

本文目录“欢声笑语“的反义词是什么啊欢声笑语的反义词是什么欢声笑语反义词欢声笑语反义词是什么欢歌笑语的近义词和反义词是什么“欢声笑语“的反义词是什么啊泣声无语、愁眉苦脸、鬼哭狼嚎、唉声叹气、号啕大哭、鬼哭狼嚎、痛不欲声 希望采纳愁眉苦脸 唉

2024年3月6日 03:00

初中学校工作计划(初中学校普法教育工作计划)

初中学校工作计划(初中学校普法教育工作计划)

本文目录初中学校普法教育工作计划2021-2022初中学校年度工作计划精选初中学校2022年春季学期工作计划初中学校2022教学工作计划中学学校工作计划范文大全初中学校普法教育工作计划    【篇一】初中学校普法教育工作计划

2024年4月27日 07:00

王维是哪个朝代的哪里的人?四首田园风景诗,谢谢

王维是哪个朝代的哪里的人?四首田园风景诗,谢谢

本文目录王维是哪个朝代的哪里的人四首田园风景诗,谢谢请留盘石上下一句是什么王维是哪个朝代的哪里的人王维(701-761),字摩诘( jié),盛唐时期的著名诗人,官至尚书右丞,原籍祁(今山西 祁县),迁至蒲州(今山西省永济),崇信佛教,人称

2024年3月7日 20:00

花飨逝者的意思 花飨逝者的含义?哀悼疫情牺牲者的祝福语

花飨逝者的意思 花飨逝者的含义?哀悼疫情牺牲者的祝福语

本文目录花飨逝者的意思 花飨逝者的含义哀悼疫情牺牲者的祝福语花飨逝者春暖斯人什么意思花飨逝者,春暖斯人是什么意思花飨逝者的意思 花飨逝者的含义1、飨:招待。花飨逝者:用花来招待死者。意为向死者献花。 2、花飨逝者这个词语常用于悼念逝世者的

2024年4月11日 07:40

12月25日勿忘国耻(勿忘国耻的内容有哪些)

12月25日勿忘国耻(勿忘国耻的内容有哪些)

本文目录勿忘国耻的内容有哪些八国联军侵华那年,12月24日至26日在北京都干了些什么坏事勿忘国耻演讲稿勿忘国耻振兴中华国家公祭日手抄报铭记历史 勿忘国耻真正的含义是什么918是什么意思 918是什么纪念日铭记历史勿忘国耻手抄报内容西方的平安

2024年2月25日 08:00

学校主题活动方案?学校创建文明校园开展了哪些活动

学校主题活动方案?学校创建文明校园开展了哪些活动

本文目录学校主题活动方案学校创建文明校园开展了哪些活动学校活动方案范文学校的活动都有哪些啊学校活动有哪些学校有哪些活动学校活动都有哪些学校活动分类红领巾示范学校活动情况总结学校活动策划方案模板2021学校主题活动方案 学校主题活动方案5篇

2024年6月5日 12:00

非主流备注前缀(简体,中英结合,最好带有符号)?qq好友备注前缀

非主流备注前缀(简体,中英结合,最好带有符号)?qq好友备注前缀

本文目录非主流备注前缀(简体,中英结合,最好带有符号)qq好友备注前缀QQ群备注前缀(分男女)一定要非常好听,有非常好看好看的备注前缀,急求啊QQ备注前缀,要好看的qq备注前缀 要好听的 好看的在QQ备注前加什么前缀好看非主流QQ好友备注前

2024年4月7日 11:20

七年级下册语文期中(七年级语文下册期中复习要点)

七年级下册语文期中(七年级语文下册期中复习要点)

本文目录七年级语文下册期中复习要点初一下册期中语文知识点总结初一下册语文期中考试质量分析七年级语文下册期中考试知识点第二学期七年级语文下册期中试卷及答案七年级下册语文期中测试卷七年级语文下册期中试题及答案参考七年级下册语文期中测试题中学七年

2024年6月16日 03:50

梦幻西游诗意名字(梦幻西游有诗意的名字)

梦幻西游诗意名字(梦幻西游有诗意的名字)

本文目录梦幻西游有诗意的名字梦幻西游诗意名字 梦幻西游诗意名字有哪些《梦幻西游》手游诗意名字有哪些梦幻西游诗意帮派名字 梦幻西游诗意帮派名字精选2022梦幻西游手游诗意名字梦幻西游手游好听诗意的游戏名字梦幻西游诗意名字女梦幻西游有诗意的名字

2024年5月12日 01:20

寻找创业项目(现在什么项目最赚钱(寻找创业热点,抓住商机))

寻找创业项目(现在什么项目最赚钱(寻找创业热点,抓住商机))

本文目录现在什么项目最赚钱(寻找创业热点,抓住商机)农村创业的五大黄金领域如何找到创业好项目如何挖掘创业机会及选择创业项目现在什么项目最赚钱(寻找创业热点,抓住商机)引言如今,创业已经成为了许多人追求财富和自由的方式之一。然而,市场竞争激烈

2024年6月1日 04:40

校园文化建设情况(江南学校校园文化建设情况汇报)

校园文化建设情况(江南学校校园文化建设情况汇报)

本文目录江南学校校园文化建设情况汇报校园文化建设的活动总结谈校园文化建设校园文化建设工作调查报告校园文化艺术环境基本情况加强校园文化建设 营造和谐育人氛围:如何营造良好的园内育人氛围校园文化建设应采取哪些措施江南学校校园文化建设情况汇报校园

2024年6月19日 00:00

适合办公室集体玩的游戏_办公室集体游戏有哪些?办公室里可以玩什么集体游戏

适合办公室集体玩的游戏_办公室集体游戏有哪些?办公室里可以玩什么集体游戏

本文目录适合办公室集体玩的游戏_办公室集体游戏有哪些办公室里可以玩什么集体游戏好玩的办公室游戏适合办公室玩的游戏有哪些办公室小游戏都有哪些办公室开早会小游戏15个适合办公室人群的游戏适合办公室集体玩的游戏_办公室集体游戏有哪些游戏一:大树与

2024年5月18日 10:50

有幸遇到好老师的感慨(有幸遇见老师的简短句子)

有幸遇到好老师的感慨(有幸遇见老师的简短句子)

本文目录有幸遇见老师的简短句子遇到老师是我的幸运句子荣幸遇到好老师的句子遇到好老师是人生的幸运的句子感慨遇到好老师的句子感恩遇到好老师的句子遇见好的老师优美句子感恩有幸遇良师的唯美句子有幸遇到好老师的感慨(30句)有幸遇见老师的简短句子有幸

2024年5月20日 22:30

标准物质管理(标准物质管理有哪几大要素)

标准物质管理(标准物质管理有哪几大要素)

本文目录标准物质管理有哪几大要素冶金标准样品管理办法国家标准物质有谁审批如何保证标准气体的量值可靠性职业卫生检测实验室金属标准物质过期怎么处理如何正确的使用管理国家标准物质实验室管理系统哪家的比较好标准物质管理办法计量器具新产品管理办法无法

2024年6月16日 13:40

泥塑人物的制作过程?手工艺术|泥人张的来源是什么

泥塑人物的制作过程?手工艺术|泥人张的来源是什么

本文目录泥塑人物的制作过程手工艺术|泥人张的来源是什么泥塑是什么意思 介绍泥塑的定义和历史胡深人物介绍天津泥塑以谁为代表玉田泥塑的泥塑名家中国天津的泥人张,算是现实主义雕塑吗中国泥塑界谁最有名泥人张是什么晚清案头泥塑的代表人物是天津的(  

2024年6月23日 06:10