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

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

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

本文目录

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

课题研究的主要内容及拟解决的问题。 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

更多文章:


60只蚊子写作文(四年级的小作文)

60只蚊子写作文(四年级的小作文)

本文目录四年级的小作文动物园的作文400字四年级小小动物园四年级作文怎么写四年级的小作文   无论是在学校还是在社会中,许多人都有过写作文的经历,对作文都不陌生吧,写作文是培养人们的观察力、联想力、想象力、思考力和记忆力的重要手段。相信写作

2024年3月28日 20:30

翼王石达开写过哪些诗词?石达开的诗词

翼王石达开写过哪些诗词?石达开的诗词

本文目录翼王石达开写过哪些诗词石达开的诗词求天国名将石达开的几首诗作扬鞭慷慨莅中原,不为仇雠不为恩 什么意思人头做酒杯,饮尽敌人血!此诗全文是跪求石达开诗词石达开的:五岳抱举擎天柱,喝尽黄河水倒流. 的全诗我只知道这两句!翼王石达开写过哪些

2024年3月26日 18:20

大学生勤工俭学申请理由100字6篇?勤工俭学申请理由简短200字7篇

大学生勤工俭学申请理由100字6篇?勤工俭学申请理由简短200字7篇

本文目录大学生勤工俭学申请理由100字6篇勤工俭学申请理由简短200字7篇刚进大学马上勤工俭学好吗孩子上了大学之后,应不应该让他勤工俭学大学期间一定要勤工俭学吗大学兼职有哪些勤工助学申请理由 勤工助学申请理由有什么我妈妈生病了 爸爸要在医院

2024年6月19日 19:00

泰国旅游攻略:美食、景点、文化全指南!?泰国旅游攻略

泰国旅游攻略:美食、景点、文化全指南!?泰国旅游攻略

本文目录泰国旅游攻略:美食、景点、文化全指南!泰国旅游攻略泰国自助游攻略及费用泰国旅游攻略必去景点【2023必去,泰国旅游实用攻略大全!】2022泰国旅游攻略去泰国旅游攻略泰国旅游攻略:美食、景点、文化全指南!泰国,一直以来都是东南亚的热门

2024年6月19日 06:50

三国演义第七回(《三国演义》第七回简介)

三国演义第七回(《三国演义》第七回简介)

本文目录《三国演义》第七回简介三国演义第七回佳句三国演义的第七回内容(复制粘贴原文)三国演义第七回主要内容三国演义第七回感受三国演义第七回内容概括三国演义的第七回简介三国演义第七回概括100字三国演义第七回主要内容三顾茅庐隆中对的主要内容是

2024年2月29日 04:10

数据结构课程设计报告(怎么学好数据结构啊)

数据结构课程设计报告(怎么学好数据结构啊)

本文目录怎么学好数据结构啊《数据结构 课程设计》表达式求值 实验报告数据结构课程设计报告(一元多项式的计算)写一份 数据结构课程设计报告两个部分为:二叉树的遍历和查找(折半查找)的实现《数据结构》课程设计报告:后序遍历( 用递归和非递归的方

2024年3月6日 07:10

热烈庆祝公司成立(企业周年横幅标语)

热烈庆祝公司成立(企业周年横幅标语)

本文目录企业周年横幅标语企业开业四个字霸气祝福寄语祝贺朋友公司开业贺词新公司成立祝福词(精选44句)企业周年横幅标语标语是用简短文字写出的`有宣传鼓动作用的口号。 以下是我整理的关于企业周年横幅标语,欢迎阅读。 1、xx年,风雨同舟,你我

2024年3月12日 01:50

熟能生巧歌词(求熟能生巧歌词)

熟能生巧歌词(求熟能生巧歌词)

本文目录求熟能生巧歌词林俊杰 曹操歌词熟能生巧英文版歌词翻译谁知道林俊杰《熟能生巧》有一首英文版在哪里有下载和歌词啊熟能生巧歌词关于《熟能生巧》歌词的问题请问林俊杰 歌词 “终于能自在的坦诚说爱你我一言就让你笑”是哪首歌里的谢谢!熟能生巧的

2024年6月10日 16:00

大学英语文章(大学英语作文)

大学英语文章(大学英语作文)

本文目录大学英语作文我的大学生活英语作文合集5篇大学生英语作文范文大学英语话题作文范文三篇大学英语作文:大学印象最深刻的同学大学英语作文 【精品】大学英语作文8篇   在平平淡淡的学习、工作、生活中,大家都跟作文打过交道吧,根据写作命题的

2024年5月1日 23:50

综合测评自我评价(综合素质测评自我评价300字)

综合测评自我评价(综合素质测评自我评价300字)

本文目录综合素质测评自我评价300字综合测评的自我评价综合素质自我评价精选10篇学生综合测评的自我评价大学生综合测评自我评价综合素质测评自我评价300字【 #个人简历# 导语】在日复一日的学习、工作或生活中,我们经常会被要求写一份自我评价

2024年4月15日 06:10

小学四年级语文总结(部编版四年级语文知识点总结)

小学四年级语文总结(部编版四年级语文知识点总结)

本文目录部编版四年级语文知识点总结四年级语文基础知识点归纳四年级语文知识点总结四年级语文人教版知识点归纳部编版四年级语文知识点总结 实际上,语文学科同 其它 学科一样,有自身的知识系统和复习规律。我们需要做的就是熟记这些知识系统和复习规

2024年3月28日 10:30

来历的意思?来历的意思是什么 来历造句 近义词

来历的意思?来历的意思是什么 来历造句 近义词

本文目录来历的意思来历的意思是什么 来历造句 近义词来历是什么意思来历是什么来历的拼音来历的意思和拼音-来历造句“来历”的意思关于五一劳动节的由来50字国庆节的来历150字国庆节的来历日记150字来历的意思意思是:事物所从来的地方;事物的根

2024年4月30日 13:20

qq空间主人寄语代码(求qq空间主人寄语)

qq空间主人寄语代码(求qq空间主人寄语)

本文目录求qq空间主人寄语QQ空间中主人寄语白色字体的代码是什么求高手教下QQ空间留言板主人寄语代码啊QQ空间主人寄语代码求QQ空间主人寄语给我制作一个QQ空间的主人寄语代码求qq空间主人寄语虽然现在看起来不是太好、但你只要复制到QQ空间的

2024年4月9日 07:10

代理发行代购代销有价证券是什么的主要业务?代销合同纠纷怎么处理

代理发行代购代销有价证券是什么的主要业务?代销合同纠纷怎么处理

本文目录代理发行代购代销有价证券是什么的主要业务代销合同纠纷怎么处理代购代销属于什么经营范围代采代销适用于营业范围增加前的业务吗委托他人代销货物在税法上有何说法商业企业代购代销的核算怎么做两人帮忙代买菜加送货上门怎么收费养牛代购代养代销合法

2024年5月19日 15:40

范仲淹的详细资料?范仲淹的励志故事

范仲淹的详细资料?范仲淹的励志故事

本文目录范仲淹的详细资料范仲淹的励志故事范仲的介绍范仲淹的详细资料范仲淹(989-1052),字希文。宋真宗大中祥符八年(1015年)进士,历任广德军司理参军,监泰州西溪盐税,通判陈州,知睦、苏、饶、润、越、杭等州,陕西经略安抚副使,官至参

2024年5月9日 02:20

记一次游戏的习作怎么写?记一次游戏五年级作文

记一次游戏的习作怎么写?记一次游戏五年级作文

本文目录记一次游戏的习作怎么写记一次游戏五年级作文学生记一次游戏作文10篇玩一次游戏作文400字5篇记一次游戏作文400字四年级记一次游戏400字四年级优秀作文四年级记一次游戏作文范文记一次有趣的游戏400字四年级作文四年级记一次游戏作文4

2024年4月25日 10:10

货运代理考试辅导:概述国际航空货物运输?国际货运代理人考试的考试科目

货运代理考试辅导:概述国际航空货物运输?国际货运代理人考试的考试科目

本文目录货运代理考试辅导:概述国际航空货物运输国际货运代理人考试的考试科目国际贸易方面有些什么证书可以考2005年国际货运代理《货代英语》考试真题货代从业资格考试有两次机会嘛货运代理考试辅导:概述国际航空货物运输一,国际航空机构   1

2024年4月2日 03:40

悠闲的近义词语(悠闲近义词是什么)

悠闲的近义词语(悠闲近义词是什么)

本文目录悠闲近义词是什么悠闲的同义词是..悠闲近义词悠闲近义词是什么1、悠闲的近义词是悠然悠闲意思为悠然自在闲适自得引证解释 苏教版六年级下册10螳螂捕蝉“蝉高高在上,悠闲地叫着,自由自在地喝着露水,却不知道有只螳螂在它的身后”近反义词 近

2024年4月11日 08:50

2020跨年文案(2020年跨年文案怎么发 2020年跨年表白怎么发)

2020跨年文案(2020年跨年文案怎么发 2020年跨年表白怎么发)

本文目录2020年跨年文案怎么发 2020年跨年表白怎么发跨年怎么发说说 跨年文案句子2020跨年文案 2020跨年文案列述适合跨年发朋友圈的文案最适合跨年发朋友圈的文案适合跨年夜发的小文案跨年创意文案句子 关于跨年夜文案最适合跨年发说说的

2024年6月13日 07:20

农民工返乡创业贷款(个人创业贷款怎么贷)

农民工返乡创业贷款(个人创业贷款怎么贷)

本文目录个人创业贷款怎么贷创业担保贷款怎么办理劳动局农民贷款创业农民工返乡创业贷款怎么办理创业贷款条件是什么创业贷款需要什么条件农村创业贷款怎么申请返乡创业补贴政策2023年个人创业贷款怎么贷1.先搜索进入本省的人力资源社会保障厅如图所示2

2024年4月9日 14:40