学籍信息管理系统设计源代码

合集下载

学籍信息源代码

学籍信息源代码

#include<stdio.h>#include<string.h>#define N 10struct date_type{int year;int month;}date;struct stud_type{char academy[10];char class1[10];int num;char name[10];char sex[4];struct date_type date;char address[10];int score[3];float average;int sum;int jilu;};struct stud_type stu[N];void duru(struct stud_type stu[]); /*数据读入*/void Add(struct stud_type stu[]); /*增加学生*/void Delete(struct stud_type stu[]); /*删除学生*/void Modify(struct stud_type stu[]); /*修改学生*/void Search(struct stud_type stu[]); /*查询学生*/void Print(struct stud_type stu[]); /*输出所有学生信息*/void Stat(struct stud_type stu[]); /*统计*/void Save(struct stud_type stu[]); /*数据存盘*/int r=0;void main(){int x;duru(stu);do{printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※欢迎使用本软件※\n");printf("※~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~※\n");printf("※指导老师:张老师※\n");printf("※※\n");printf("※制作者:黄同学※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~** \n");printf("******************学籍管理系统******************\n");printf("** **\n");printf("** 1.录入学生信息**\n");printf("****\n");printf("********* 2.修改学生信息*********\n");printf("****\n");printf("**** 3.查询学生信息****\n");printf("****\n");printf("************* 4.浏览所有学生信息**********\n");printf("****\n");printf("**** 5.删除学生信息****\n");printf("** **\n");printf("********* 6.综合统计*********\n");printf("** **\n");printf("**0.保存并退出系统**\n");printf("****\n");printf("**********************************************\n");printf("**----------------------------------------------- -----------------***\n");printf("请在0-6中选择: ");scanf("%d",&x);switch(x){case 1:Add(stu); /*录入模块*/break;case 2:Modify(stu); /*修改模块*/break;case 3:Search(stu); /*查询模块*/break;case 4:Print(stu); /*输出模块*/break;case 5:Delete(stu); /*删除模块*/break;case 6:Stat(stu); /*统计模块*/break;case 0:Save(stu);break;}}while(x!=0);}void Add (struct stud_type stu[]) /*录入模块*/{int i;char k;for(i=r;i<N;i++){printf("\n 请输入学院:");scanf("%s",stu[i].academy);printf("\n 请输入班级:");scanf("%s",stu[i].class1);printf("\n 请输入学号:");scanf("%d",&stu[i].num);printf("\n 请输入姓名:");scanf("%s",stu[i].name);printf("\n 请输入性别:");scanf("%s",stu[i].sex);printf("\n请输入出生年月:");scanf("%d%d",&stu[i].date.year,&stu[i].date.month);printf("\n 请输入地址:");scanf("%s",stu[i].address);printf("\n 请输入成绩:");scanf("%d%d%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);r=r+1;stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];stu[i].average=stu[i].sum/3.0;printf("----------是否继续??(y/n):");scanf("%s",&k);if(k=='y'||k=='Y') continue;elseprintf("**********录入结束!**********\n\n");return;}}void Save(struct stud_type stu[]) /*保存模块*/{FILE *fp1; /*指向文件的指针*/int i;stu[0].jilu=r;if((fp1=fopen("E:\\xj.txt","wb"))==NULL) /*打开文件,并判断打开是否正常*/{printf("**********打开文件失败!**********\n\n");return;printf("开始存盘!\n");for(i=0;i<r;i++)if(fwrite(&stu[i],sizeof(struct stud_type),1,fp1)==0)printf("**********数据存盘失败!**********\n\n");fclose(fp1);printf("**********存盘成功!**********\n"); /*显示保存成功*/}void Search(struct stud_type stu[]) /*查询模块*/{int y=0,i,k;printf("请输入学号:");scanf("%d",&k);for(i=0;i<r;i++){if(k==stu[i].num){printf("学院:%s\n班级:%s\n学号:%d\n姓名:%s\n性别:%s\n出生年月:%d%d\n地址:%s\n 成绩:\nC语言:%d高数:%d英语:%d\n",stu[i].academy,stu[i].class1,stu[i].num,stu[i].name,stu[i].sex,stu[i].date.year,stu[i].date. month,stu[i].address,stu[i].score[0],stu[i].score[1],stu[i].score[2]);y=1;}}if(y==0)printf("**********查无此人!**********\n\n");return;}void Delete(struct stud_type stu[]) /*删除模块*/{int i,j,k,y=0;int m=16899168,n;printf("请输入密码:");scanf("%d",&n);if(n==m);else{printf("**********密码错误!**********\n\n");return;}printf("请输入学号:");scanf("%d",&k);for(i=0;i<r;i++){if(k==stu[i].num)for(j=i;j<r;j++)stu[j]=stu[j+1];r=r-1;printf("**********删除成功!**********\n\n");y=1;}}if(y==0)printf("**********查无此人!**********\n\n");}void Print(struct stud_type stu[]) /*输出模块*/ {int i,j,k,n;struct stud_type t;printf(" 1.按学号排序,2.按总分排序(由高到低)\n");printf("\n请在1和2中选择:");scanf("%d",&n);if(n==1) /*选择排序*/ for(i=0;i<r-1;i++){k=i;for(j=i+1;j<r;j++)if(stu[k].num>stu[j].num)k=j;if(k!=i){t=stu[i];stu[i]=stu[k];stu[k]=t;}}if(n==2)for(i=0;i<r-1;i++){k=i;for(j=i+1;j<r;j++)if(stu[k].sum<stu[j].sum)k=j;if(k!=i){t=stu[i];stu[i]=stu[k];stu[k]=t;}for(i=0;i<r;i++){printf("\n学院\t班级\t学号\t姓名\t性别\t出生年月\t地址\n");printf("%s\t%s\t%d\t%s\t%s\t%d %d\t\t%s\n",stu[i].academy,stu[i].class1,stu[i].num,stu[i].name,s tu[i].sex,stu[i].date.year,stu[i].date.month,stu[i].address);printf("C语言\t高数\t英语\t平均分\t总分\n");printf("%d\t%d\t%d\t%0.1f\t%d\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average,stu[i ].sum);}}void Stat(struct stud_type stu[]) /*统计模块*/{int i,j,k;printf("0.C语言1.高数2.英语");printf("请在0-2中选择:");scanf("%d",&j);k=j;printf("90-100:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]>=90)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}printf("80-90:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]<90&&stu[i].score[k]>=80)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}printf("70-80:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]<80&&stu[i].score[k]>=70)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}printf("60-70:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]<70&&stu[i].score[k]>=60)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}printf("60分以下:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]<60)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}}void Modify(struct stud_type stu[]) /*修改模块*/{int k,i,y=0;int m=16899168,n;printf("请输入密码:");scanf("%d",&n);if(n==m);else{printf("**********密码错误!**********\n\n");return;}printf("************修改学生信息************\n");printf("\n请输入要修改学生的学号: ");scanf("%d",&k);for(i=0;i<r;i++){if(k==stu[i].num){printf("\n请输入新内容:\n");printf("\n 请输入学院:");scanf("%s",stu[i].academy);printf("\n 请输入班级:");scanf("%s",stu[i].class1);printf("\n 请输入学号:");scanf("%d",&stu[i].num);printf("\n 请输入姓名:");scanf("%s",stu[i].name);printf("\n 请输入性别:");scanf("%s",stu[i].sex);printf("\n请输入出生年月:");scanf("%d%d",&stu[i].date.year,&stu[i].date.month);printf("\n 请输入地址:");scanf("%s",stu[i].address);printf("\n 请输入成绩:");scanf("%d%d%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);printf("\n**********修改成功!**********\n\n");y=1;}}if(y==0)printf("**********查无此人!**********\n\n");return;}void duru(struct stud_type stu[]) /*数据读入模块*/{int i;FILE *fp; /*指向文件的指针*/if((fp=fopen("E:\\xj.txt","rb"))==NULL) /*打开文件,并判断打开是否正常*/{printf("打开文件失败!\n");return;}printf("文件开始读取!\n");rewind(fp);for(i=0;i<=r;i++){fread(&stu[i],sizeof(struct stud_type),1,fp);r=stu[0].jilu;}printf("\n文件成功读取!\n");fclose(fp);r=stu[0].jilu;}。

c语言学籍管理系统源代码

c语言学籍管理系统源代码

c语言学籍管理系统源代码学籍管理系统的背景及意义随着社会的不断发展和教育的普及,学籍管理工作日益被重视。

传统的手工管理学籍的方式效率低下,存在着各种弊端,以致无法满足现代学校管理的需求。

因此,开发一款高效、便捷、可靠的学籍管理系统成为普遍需求,为了提高管理效率、减少工作难度,学籍管理系统被越来越广泛地使用。

本文将介绍一款基于C语言开发的学籍管理系统的源代码。

基本功能该学籍管理系统可以实现学生信息的录入、删除、修改和查询,以及学生的成绩录入、修改和查询。

此外,该系统还具备数据存储和文件读写的功能,能够自动保存学生信息和成绩数据,保障数据的安全性和可靠性。

模块设计该系统按照功能模块划分,主要分为三个模块:学生信息管理模块、学生成绩管理模块和数据存储与文件读写模块。

学生信息管理模块该模块主要实现学生信息的录入、删除、修改和查询等基本功能。

以下为该模块的主要源代码:```struct student {char name[20]; // 姓名int id; // 学号char sex[5]; // 性别char major[20]; // 专业};struct student stu[1000]; // 学生信息结构体数组int num_of_stu = 0; // 学生总数void add_student() { // 添加学生信息printf("请输入学生姓名:");scanf("%s", stu[num_of_stu].name);printf("请输入学生学号:");scanf("%d", &stu[num_of_stu].id);printf("请输入学生性别:");scanf("%s", stu[num_of_stu].sex);printf("请输入学生专业:");scanf("%s", stu[num_of_stu].major);num_of_stu++;printf("添加成功!\n");}void delete_student() { // 删除学生信息int delete_id;printf("请输入要删除的学生学号:");scanf("%d", &delete_id);int index = search_student_by_id(delete_id); if (index == -1) {printf("该学号不存在!\n");return;}for (int i = index; i < num_of_stu - 1; i++) { stu[i] = stu[i + 1];}num_of_stu--;printf("删除成功!\n");}void modify_student() { // 修改学生信息int modify_id;printf("请输入要修改的学生学号:");scanf("%d", &modify_id);int index = search_student_by_id(modify_id); if (index == -1) {printf("该学号不存在!\n");return;}printf("请输入学生姓名:");scanf("%s", stu[index].name);printf("请输入学生学号:");scanf("%d", &stu[index].id);printf("请输入学生性别:");scanf("%s", stu[index].sex);printf("请输入学生专业:");scanf("%s", stu[index].major);printf("修改成功!\n");}int search_student_by_id(int id) { // 根据学号查询学生信息for (int i = 0; i < num_of_stu; i++) {if (stu[i].id == id) {return i;}}return -1;}void query_student() { // 查询学生信息int query_id;printf("请输入要查询的学生学号:");scanf("%d", &query_id);int index = search_student_by_id(query_id);if (index == -1) {printf("该学号不存在!\n");return;}printf("姓名\t学号\t性别\t专业\n");printf("%s\t%d\t%s\t%s\n", stu[index].name,stu[index].id, stu[index].sex, stu[index].major);}```学生成绩管理模块该模块主要实现学生成绩信息的录入、修改和查询等功能。

学籍管理系统使用说明

学籍管理系统使用说明

附件2学籍管理系统使用说明一、系统环境和相关说明(一)客户端系统环境win98/win2000/winxp+IE6.0(在此系统的“个人办公”-—“网络硬盘”中下载“共享目录/admin/ie6sp1。

rar"文件安装,IE的“工具"菜单“Internet选项”中的“常规”-—“Internet临时文件"设置为“每次访问此页时检查”.)(二)网址:http://222。

16。

143.252/oa/如果是winxp操作系统,请在IE的“工具”菜单中“关闭弹出窗口阻止程序"。

如果IE中安装了上网助手,请停止拦截当前站点广告。

如果要把此网址添加到收藏夹,先在IE地址栏中输入222。

16.143。

252并添加到收藏夹,然后更改收藏夹中网址的URL地址和名称。

(三)各校登录OA系统后,自行给相关学籍管理工作人员建立用户名。

用户名编码规则:姓名是三字的用姓的拼音全部字母和名的拼音的第一个字母,姓名是两字的用姓和名的拼音全部字母。

如:张三江的用户名应为zhangsj,李四的用户名应为lisi。

如果系统中已有该用户,就在用户名后从1开始添加顺序编号。

如lisi1,lisi2,lisi3。

二、“初中学籍”使用说明(一)使用网上学籍管理系统的目的在于进一步规范和完善学籍管理,准确掌握初中学籍数据,并为区内统测和中考报名提供相关数据.从今年的初一开始使用网上学籍管理系统,今后每年的初一学生区内转学先在小升中报名系统中完成转学操作,然后由区招办将各校招收的区内小学生名册及相关资料导入到学籍管理系统中;各校招收的非区内小学生,由各校在学籍管理系统中“添加学生”录入相关资料。

(二)在“学生管理”模块中单击学号可以编辑该学生的基本信息,需要将小升中电脑号修改为新的学号(学号编码规则见下文),并录入班级。

单击“添加学生”按钮可以添加学生,需要录入相关信息。

添加完学生后会在“学籍异动"中自动生成一条转学的学籍异动申请。

学生基本信息管理系统

学生基本信息管理系统

沈阳工程学院课程设计(面向对象程序设计)设计题目:学生基本信息管理系统系别信息学院班级组长姓名组员姓名指导教师职称起止日期:2014年12月1日起——至2014年12月12日止沈阳工程学院课程设计任务书(面向对象程序设计)课程设计题目:学生基本信息管理系统系别信息学院班级组长姓名组员姓名指导教师职称课程设计进行地点:实训F任务下达时间:2014 年11月19 日起止日期:2014年12月1日起——至2014年12月12日止教研室主任朱克敌2014年11月15日批准1.课程设计的原始资料及依据面向对象程序设计课程设计的前驱条件是要求学生们必须具备“程序设计基础”、“面向对象程序设计”、“软件工程导论”等计算机专业基础理论知识,本次课程设计需要在符合这种前提条件下实施。

首先,成立项目小组并推举有责任心的学生担当项目组长,全组成员在组长的带领下,采用自选和老师指定相结合的方式确定了本次课程设计的题目。

本次课程设计要求学生首先查阅课程相关的资料,进一步加深对课程内容的理解,运用所学知识和所掌握的分析与设计的方法,完成一个较完整的面向对象程序设计,在此基础上利用Java语言对其进行实现,实现一个功能较为完善、界面友好、操作性强的应用程序,使学生们真正地锻炼了设计和编程能力。

2.课程设计的主要内容及要求要求参加课程设计的学生们要重新认真复习面向对象程序设计的理论知识和技能,熟练掌握Java编程工具,灵活运用所学理论知识和技能应用于该项目的设计与开发中,加深理解面向对象程序设计的编程技巧和方法。

具体要求如下:1.成立项目开发小组并选举项目组长。

2.根据设计要求小组选定设计题目。

3.每天要求项目组长要至少组织召开一次会议,总结、汇报和布置任务。

4.每次会议要求保留会议记录并存档。

5.发挥团队合作精神共同完成如下内容:(1) 开发背景(2) 系统分析(3) 系统设计(4) 代码实现6.组长要根据能力合理地分配任务,每个组员都要积极参与每项工作。

学籍管理系统流程图

学籍管理系统流程图

1、学生(xué sheng)学籍管理系统数据流图一、顶层(dǐnɡ cénɡ):二、0层:三、 1层1、学生学籍管理系统数据字典1.数据流条目数据流名称:全部记录别名:无简述:最新更新后所有关于学生学籍的记录来源:数据库去向:加工“记录筛选”数据流量:不限组成:学号+姓名+家庭住址+马哲+英语+毛概+邓理+成绩+排名①数据存储条数据存储名称:学生成绩记录别名:无简述:存放学生所有可供查询的成绩信息组成:学号+姓名+成绩+排名等组织方式:索引文件,以学学号为关键字查询要求:要求能立即查询②数据存储条数据存储名称:个人信息记录别名:无简述:存放学生所有可供查询的个人信息组成:学号+姓名+家庭住址等组织方式:索引文件,以学学号为关键字查询要求:要求能立即查询③数据存储条数据存储名称:用户密码记录别名:无简述:存放所有用户可供查询的用户密码信息组成:学号+姓名+用户名等组织方式:索引文件,以学学号为关键字查询要求:要求能立即查询2 数据项条目①数据项名称:学号别名:无简述:所有学校学生的学号类型:字符串取值范围及含义:第1-4位:入学年份第 5-6 位:院系代码第 7-8 位:专业代码第 9-10 位:班级号第10-11位:班内编号②数据项名称:用户名别名:无简述:所有用户的用户名类型:字符串取值范围及含义:26个英文字母和0-9十个数字组合,不含特殊符号③数据项名称:家庭住址别名:无简述:所有学校学生的家庭住址类型:字符串取值范围及含义:汉字,26个英文字母和0-9十个数字组合④数据项名称:新考试科目别名:无简述:所有学校学生的新加考试科目类型:字符串取值范围及含义:汉字,26个英文字母和0-9十个数字组合3 加工条目①加工名:更改的记录激发条件:学生成绩记录,个人信息记录以及用户密码记录被改动优先级:普通输入:新记录输出:更新数据、数据未改动加工逻辑:根据现有数据库if 新记录<>旧记录then 更新数据 else 数据未改动endif②加工名:更改的记录激发条件:学生成绩记录,个人信息记录以及用户密码记录被删除优先级:普通输入:删除记录输出:数据已删除、数据不存在加工逻辑:根据现有数据库if 删除记录=旧记录then 数据已删除else 数据不存在endif③加工名:更改的记录激发条件:学生成绩记录插入新数据优先级:普通输入:新数据输出:数据排序加工逻辑:根据新数据库for(m=0,m<=人数,m++)if 第一人成绩<第二人成绩then i=第二人成绩else i=第一人成绩endfor endif输出比较好了的数组即为排名3、学生(xué sheng)学籍管理系统E—R图4、学生(xué sheng)学籍管理系统状态图。

学籍系统实验报告

学籍系统实验报告

西安交通大学实验报告课程程序设计基础实验名称课内实验第页共 6 页系别__ 计算机科学与技术实验日期 2011年 12 月11 日专业班级____ 计算机13 实验报告日期 2011年12月11 日姓名__吕鑫_ 学号报告退发 ( 订正、重做 )同组人___________________ _ _ 教师审批签字实验题目:使用C编程实现一个学籍管理系统1.程序设计与分析功能:实现学生信息的输入,删除,查询,排序,输出。

由于使用链表,可以进行动态定义,因此扩大学生信息的可存储性。

结构体的使用使数据容易操作。

指针的定义则是数据处理更方便。

算法:使用switch语句加循环的方式构成主函数,简单明了。

主函数见下:int main(){ int choice;struct student *input();struct student *HEAD=NULL;struct student *he(struct student *head);struct student *delet(struct student *head);void select(struct student *head);struct student *order(struct student *head);void output(struct student *head);choice=0;while(choice!=6){printf("1.input\n2.delete\n3.select\n4.order\n5.output\n6.quit\nplease input your option\n");scanf("%d",&choice);switch(choice){case 1:HEAD=input();he(HEAD);continue;case 2:delet(HEAD);;continue;case 3:select(HEAD);continue;case 4:order(HEAD);continue;case 5:output(HEAD);continue;case 6:break;}}return 0;}2.程序设计中存在的问题和解决思路主要困难:链表的不熟悉使编程颇为困难,主程序的反复循环不易处理。

C语言学籍管理系统(内含源代码)

C语言学籍管理系统(内含源代码)

学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。

2、能根据输入的学号查询学生,进行信息的修改。

3、能根据输入的学号从结构体数组中删除学生的记录。

4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。

5、能在屏幕上以列表的方式输出所有学生的信息。

三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。

系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。

程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。

以下是这些函数原型及功能设计。

(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。

全国中小学生学籍信息管理系统

全国中小学生学籍信息管理系统

全国中小学生学籍信息管理系统1. 系统简介全国中小学生学籍信息管理系统是一款用于管理全国中小学生学籍信息的系统。

本系统旨在提供一个快速、高效、准确的方式来管理学生的个人信息、学籍信息、成绩信息以及其他相关信息,并可以方便地进行查询和统计。

2. 功能列表2.1 学生信息管理•添加学生信息:录入学生的基本信息,包括姓名、性别、出生日期、家庭住址等。

•修改学生信息:根据学生的学籍号或其他唯一标识,修改学生的基本信息。

•删除学生信息:根据学生的学籍号或其他唯一标识,删除学生的信息。

•查询学生信息:根据学生的学籍号、姓名、性别等条件,查询学生的信息。

•导出学生信息:将学生的信息导出为Excel或CSV格式文件。

2.2 学籍信息管理•添加学籍信息:为学生添加学籍信息,包括入学时间、学院专业、班级等。

•修改学籍信息:根据学生的学籍号或其他唯一标识,修改学生的学籍信息。

•删除学籍信息:根据学生的学籍号或其他唯一标识,删除学生的学籍信息。

•查询学籍信息:根据学生的学籍号、姓名、学院专业等条件,查询学生的学籍信息。

•导出学籍信息:将学生的学籍信息导出为Excel或CSV格式文件。

2.3 成绩信息管理•添加成绩信息:为学生添加成绩信息,包括科目、成绩、考试时间等。

•修改成绩信息:根据学生的学籍号或其他唯一标识,修改学生的成绩信息。

•删除成绩信息:根据学生的学籍号或其他唯一标识,删除学生的成绩信息。

•查询成绩信息:根据学生的学籍号、姓名、科目等条件,查询学生的成绩信息。

•导出成绩信息:将学生的成绩信息导出为Excel或CSV格式文件。

2.4 统计分析•学生人数统计:按照年级、性别等条件进行学生人数的统计。

•成绩分析统计:对学生的成绩进行汇总、排名和分析。

•学生地域分布统计:根据学生的家庭住址,统计学生的地域分布情况。

3. 技术实现全国中小学生学籍信息管理系统使用以下技术进行实现:•前端:采用HTML、CSS和JavaScript进行界面设计和交互逻辑的实现。

全国生源地代码一览表教育部最新公布

全国生源地代码一览表教育部最新公布

全国生源地代码一览表教育部最新公布对于广大学生和教育工作者来说,生源地代码是一个重要的标识符号。

它不仅关系到学生的学籍管理、考试报名等诸多方面,也在教育资源的分配和统计中发挥着关键作用。

近日,教育部最新公布了全国生源地代码一览表,这一消息引起了社会各界的广泛关注。

生源地代码的制定并非随意为之,而是经过了严谨的规划和系统的设计。

它的主要目的是为了实现对学生来源地的精确分类和统计,以便更好地了解各地教育发展的状况,为教育政策的制定和资源的合理配置提供有力的数据支持。

在这份最新公布的全国生源地代码一览表中,涵盖了我国各个省、自治区、直辖市以及特别行政区。

每个地区都被赋予了独特的代码,这些代码具有明确的编码规则和含义。

以省级行政区为例,代码通常由几位数字组成,不同的数字组合代表着不同的省份。

而在省级代码的基础上,又进一步细分到市、县(区)级,形成了一个层次分明、结构清晰的编码体系。

比如说,北京市的代码可能是“01”,而北京市下辖的朝阳区代码可能就是“0105”。

这样的编码方式既简洁明了,又便于在计算机系统中进行处理和分析。

通过这些代码,教育部门能够迅速准确地获取学生的生源地信息,从而为教育管理和决策提供科学依据。

这份生源地代码一览表对于学生个人来说也具有重要意义。

在高考、考研等各类考试报名中,往往需要填写生源地信息。

准确填写生源地代码能够确保报名信息的准确性和完整性,避免因信息错误而带来不必要的麻烦。

同时,在高校招生录取过程中,生源地代码也有助于学校了解学生的来源分布,为制定招生计划和开展针对性的招生宣传提供参考。

对于教育机构和学校来说,生源地代码更是管理工作中的重要工具。

学校可以通过对生源地代码的分析,了解不同地区学生的入学情况,从而优化招生策略,提高招生质量。

在教学管理方面,也可以根据生源地的特点,有针对性地开展教学活动,满足不同地区学生的学习需求。

此外,教育研究人员也可以利用生源地代码进行相关的教育研究。

学生信息管理系统 数据库课程设计

学生信息管理系统 数据库课程设计

目录第一章系统概述 (1)1.1 系统开发的背景 (1)1。

2系统开发的意义 (1)第二章系统需求分析 (2)2.1系统功能要求 (2)2。

2 需求分析概述 (2)2。

3 系统层次划分 (3)2.4 系统数据流图 (3)2。

5 数据字典 (4)第三章系统总体设计目标 (11)3.1 系统总体设计目标 (11)3。

2 系统概念设计 (12)3.2.1 概念模式(E—R 图) (12)3.2.2 关系模式 (14)3。

2.3 关系模式规范化说明 (15)3。

2.4 系统数据库表结构 (15)第四章数据库系统实现 (18)4.1系统实现工具简介 (18)4.2 学生信息管理系统数据库实现 (19)结束语 (32)参考文献 (33)第一章系统概述1.1 系统开发的背景随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增加。

面对庞大的信息量,传统的人工方式管理会导致学生信息管理上的混乱,人力与物力过多浪费,管理费用的增加,从而使学校管理人员的负担过重,影响整个学校的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的学生信息管理系统,对学生信息进行集中统一的管理。

通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。

另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性.提高学生信息管理的工作效率,作到信息的规范管理,科学统计和快速查询,让该系统更好的为学校,社会服务。

1。

2系统开发的意义学生信息管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生信息管理的效率.因此,开发一套能够为用户提供充足的信息和快捷的查询手段的学生信息管理系统,将是非常必要的,也是十分及时的。

学籍管理系统(课程答辩)

学籍管理系统(课程答辩)
scanf("%s",Stu[0].name);
printf("please input spec\n");
scanf("%s",Stu[0].spec);
printf("please input greade\n");
scanf("%d",&Stu[0].greade);
printf("please input sex\n");
scanf("%s",Stu[0].sex);
函数功能:在屏幕上以列表的方式输出学生所有信息。调用printhead()输出表头,在调用listone()函数注意输出个条记录。
(8)void quit(void);
函数功能:退出菜单系统,并调用exit(0)系统函数结束程序运行。
(9)voidsteargrade(stuct stumessage stu[]);
printf("\t\t\t删除学生信息,请选择3\n");
printf("\t\t\t查询学生信息,请选择4\n");
printf("\t\t\t输出学生信息,请选择5\n");
printf("\t\t\t退出系统,请选择6\n");
printf("\n\t\t\t\t\t\t\t\t\t\t\t\t\n");
函数功能:在屏幕上输入系统及版权信息并等待用户响应。
(2)Void menuofmain(struct stumessage stu[]);
函数功能:在屏幕上显示主菜单,接收用户选择并响应用户相应操作。
(3)Void append(struct stumessage stu[]);

全国生源地代码一览表教育部最新公布

全国生源地代码一览表教育部最新公布

全国生源地代码一览表教育部最新公布在教育领域,生源地代码是一项重要的标识,它对于学生的学籍管理、教育资源分配以及相关政策的实施都有着关键的作用。

近日,教育部最新公布了全国生源地代码一览表,为教育工作的精准开展提供了有力的支持。

生源地代码是什么呢?简单来说,它是一组用于标识学生来源地区的数字或字母组合。

这些代码的制定并非随意为之,而是经过了精心的规划和设计,以确保能够准确反映学生的出生地或户籍所在地等信息。

全国生源地代码的制定有着严格的标准和规范。

教育部在制定过程中,充分考虑了我国地域辽阔、行政区划复杂的特点,力求使代码能够清晰、准确地涵盖全国各地。

通过科学合理的编码规则,每个地区都被赋予了独一无二的代码,避免了混淆和歧义。

这份最新公布的全国生源地代码一览表,对于教育部门和学校来说意义重大。

首先,它有助于精准统计学生的来源分布情况。

通过对生源地代码的分析,教育部门可以清楚地了解不同地区的学生数量、比例等信息,从而为教育资源的合理分配提供依据。

比如,对于学生数量较多的地区,可以适当增加教育投入,建设更多的学校、配备更优质的师资力量;而对于学生数量较少的地区,则可以采取集中办学等方式,提高教育资源的利用效率。

其次,生源地代码对于学籍管理也至关重要。

在学生的学籍档案中,生源地代码是一项重要的信息。

它能够确保学籍信息的准确性和完整性,方便学校对学生进行管理和跟踪。

同时,在学生升学、转学等过程中,生源地代码也能够为相关手续的办理提供便利,避免因信息不准确而导致的延误和错误。

对于学生个人而言,生源地代码也有着一定的影响。

在一些教育优惠政策的实施中,生源地往往是重要的考量因素。

比如,某些地区可能会对本地生源提供奖学金、助学金等支持,而准确的生源地代码能够确保学生能够享受到应有的政策优惠。

那么,我们如何查询和使用这份全国生源地代码一览表呢?一般来说,教育部门和学校会将相关信息发布在官方网站上,供有需要的人员查询。

学籍管理系统

学籍管理系统

学籍管理系统目录一、学籍管理系统概述 (2)1.1项目的背景与意义 (2)1.1、背景 (2)1.2业务模式 (2)二、可行性分析 (3)2.1系统功能及分析: (3)2.1.1系统功能目标: (3)2.1.2系统功能分析: (3)2.2系统的逻辑模型 (5)2.2.1业务流程分析 (5)2.2.2 数据流程分析 (5)2.2.3数据字典 (6)三、系统总体功能需求 (8)3.1.学生信息管理模块 (8)3.1.1新生信息管理 (8)3.1.2毕业学生信息管理 (8)3.1.3学生学籍更改 (9)3.2学生成绩管理模块 (9)3.3信息查询模块 (9)四、系统建模 (11)4.1系统用例模型 (11)4.1.1角色的确定 (11)4.1.2创建用例 (12)4.1.3创建用例关系图 (13)4.2系统动态模型 (13)4.2.1创建时序图 (13)4.2.2创建协作图 (18)4.3创建系统类图 (22)一、学籍管理系统概述随着网络技术和软件技术的飞速发展,特别是Internet/Intranet的出现及其相关技术的迅速发展,信息革命带来了全球范围市场竞争的日益加剧,对传统的办公教学和生活方式产生了巨大的冲击。

办公自动化就是采用Internet/Intranet技术,基于工作流的概念,使内部人员方便快捷的共享信息,高效的协同工作;改变过去复杂,低效的手工办公方式,实现迅速,全方位的信息采集,信息处理。

校园网的建设,为学籍管理系统提供了技术保障。

学籍管理系统是一个由学校学籍管理信息中心监控,各教学系(部)、教研室分级管理,由学生档案管理、成绩管理、查询管理、打印报表等几部分组成。

1.1项目的背景与意义1.1、背景学籍管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

学生信息系统源代码

学生信息系统源代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define MY1 printf("\t学号\t姓名\t性别\t年龄\t出生年月\t地址\t电话\t")#define MY2 printf("\n%d\t%6s\t%4s\t%2d\t%4d%2d%2d\t%4s\t%6s\t\n",s[i].num,s[i].name,s[i].sex,s[i].age,s[ i].a.year,s[i].a.month,s[i].a.day,s[i].address,s[i].tel)#define MAX 20int i;int sum;/*时间结构体类型*/struct date{int year;int month;int day;}a;struct s_message{int num;char name[20];char sex[5];int age;struct date a;char address[50];char tel[11];char email[20];}s[MAX];/*保存学生信息模块*/void save_message(int sum){int i;FILE *fp;if((fp=fopen("D:\\s.txt","wb"))==NULL){printf("reading file is wrong!\n");return;}for (i=0;i<sum;i++){if(fwrite(&s[i],sizeof(struct s_message),1,fp)!=1)printf("writing file is wrong!\n");}fclose(fp);}/*读取学生信息模块*/int read_message(){FILE *fp;int i=0;if((fp=fopen("D:\\s.txt","rb"))==NULL){printf("\n\n***********暂时无任何库存信息,按回车键进入主菜单选择基本信息的录入!***********\n");return 0;}while(feof(fp)==0) /*feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。

学生学籍管理系统需求分析

学生学籍管理系统需求分析

学生学籍管理系统需求分析一、系统概述学生学籍管理系统是一个用于管理学生学籍信息的系统,旨在提高学校管理效率,方便学生、教师和行政人员查询和操作。

该系统将实现学生信息管理、课程管理、成绩管理、考勤管理等功能,支持多种查询方式,并具备安全性和可靠性。

二、用户需求1.学生:查询个人信息、选课、查看成绩及考勤情况。

2.教师:查询学生信息、录入学生成绩、考勤情况等,并具备导出和打印功能。

3.行政人员:管理学生信息、课程设置、成绩录入等,并具备审核和统计功能。

三、功能需求1.学生信息管理:包括学生基本信息(姓名、性别、出生日期等)、家庭情况、联系方式等。

2.课程管理:课程设置、选课、课程表查询等。

3.成绩管理:成绩录入、成绩查询、成绩导出等功能。

4.考勤管理:学生考勤情况录入、考勤查询等。

5.查询功能:支持按姓名、学号等字段查询学生信息、课程信息和成绩信息。

6.统计功能:按班级、课程等字段对学生信息进行统计,生成报表。

7.用户管理:管理用户账号和权限,支持添加、删除和修改用户信息。

8.系统设置:支持系统参数设置和数据备份等功能。

四、非功能需求1.可靠性:系统应具备较高的可靠性,保证数据的安全性和完整性。

2.性能:系统应具备较好的性能,保证查询和操作的速度。

3.易用性:系统应具备简单易用的界面,方便用户操作。

4.可维护性:系统应具备较好的可维护性,方便进行升级和故障排除。

5.可扩展性:系统应具备较好的可扩展性,方便进行功能扩展和升级。

五、约束和限制1.技术约束:系统应采用成熟的技术和架构,保证系统的稳定性和安全性。

2.人力约束:系统开发过程中应合理分配人力和时间资源,保证项目的顺利进行。

3.时间约束:系统开发应按照预定计划进行,确保按时交付。

4.预算约束:系统开发应在预算范围内进行,避免超出预算。

六、假设和依赖性1.数据来源:假设学生信息来源于学校各班级和学生管理部门,课程信息来源于教务部门,教师信息来源于人事部门。

课程设计:学生学籍管理系统源代码

课程设计:学生学籍管理系统源代码

#include”stdio。

h”#include"conio。

h”#include"stdlib。

h”#include”string。

h"#define N 1000 //N为可输入的学生总人数,可根据需要更改#define M 2 //M为宏定义的(在创建密码函数中)可建立的登陆用户个数,可更改struct student //定义学生信息结构体数组{char num[9]; //学号char name[20]; //姓名char depar[15]; //院系char zhuanye[15];//专业char classes[5]; //班级char age[3];//年龄char sex[4]; //性别char nation[5]; //民族char birth[9]; //出生日期char add[10];//籍贯};struct code //定义密码结构体数组{char name[20];char code[7];}co[M],s0;//确认是否新创建密码文件模块int code(){FILE *fp;if((fp=fopen("学生学籍管理系统__code。

txt","rt"))==NULL){printf(”密码文件不存在,请输入新的用户名及密码:\n");//若不存在此密码文件,则提示用户创建密码printf("请输入任意键继续!”);getch();system("cls");return 1; //无密码文件返回1 }elsereturn 0; //已有密码文件返回0 }//新创建初始密码void code_input(){FILE *fp;int i;if((fp=fopen(”学生学籍管理系统__code。

txt”,"wt"))==NULL);//当建立密码文件成功时,进入for循环for(i=0;i〈M;i++) //M为宏定义的可建立的登陆用户个数,可更改{printf("请录入第%d个用户名:",i+1);//创建不同的用户名及密码scanf(”%s",co[i]。

学籍信息记录薄

学籍信息记录薄

HUNAN UNIVERSITY 程序设计训练报告学生姓名易伟浪殷婷婷学生学号20110704115 20110704106 专业班级测控技术与仪器一班指导老师洪跃山2012 年7 月 4 日一. 需求分析随着计算机技术的日益发达,计算机软件功能已涉入生活的诸多方面。

其中对学生籍贯信息的管理就是其中的一个小小的方面。

利用计算机软件来管理学生籍贯信息能够克服传统的文档管理的不足。

通过计算机实现学生籍贯信息管理薄具有存储信息量大,方便查询,修改,添加,删除,浏览等传统纸质文档不具备的良好功能。

二. 程序功能说明 1.功能分析说明图:2.各项功能说明:a.主菜单:用于显示系统主模块信息,供用户选择。

b.录入学生籍贯信息:用来将员工信息输入到计算机中,并保存到数据文件中,此模块还具有添加学生籍贯信息的功能。

c.查询学生籍贯信息:可按学号和姓名查找学生籍贯信息。

d.浏览学生籍贯信息:将系统中已有学生籍贯信息全部列出。

e.修改学生籍贯信息:根据学号进行查询,修改指定字段内容。

f.删除学生籍贯信息:删除指定学号的学生籍贯信息。

以上模块可由用户选择执行,另外,当用户运行此程序时,必须判断学生信息是否曾经保存过。

若学生籍贯信息事先未保存,必须先进行学生籍贯信息的录入。

三.软件基本操作先打开源程序,编译,运行。

然后根据提示输入相关内容。

具体如下:1.若学生籍贯信息已存在(即data.dat文件被创建,且不为空),输入Y或y,进入主界面。

若学生籍贯信息已存在则按其他键,进入主界面。

如图所示(主界面):2.输入要选择的项目(选择1),进入界面(按照提示进行输入):a.若学籍信息已保存过,则输入的信息添加到文件中。

b.若学学籍信息未保存过,输入的信息组成链表首次存到文件中。

c.若不再继续添加,则输入其他键,此时程序会将调用print()函数将文件中信息显示出来。

再输入除n或N的其他键,保存刚输入的内容。

d.最后保存完毕时,输入任意键返回主界面。

(完整版)JAVA课程设计---学籍管理系统

(完整版)JAVA课程设计---学籍管理系统

JAVA课程设计题目: JAVA学籍管理系统姓名:学号:班级:日期:目录二、具体实现 (2)三、运行调试与分析讨论 (4)四、设计体会与小结 (12)五、参考文献 (12)六、附录 (13)一、设计思路随着社会经济的发展,入学的同学越来越多,为方便对同学学籍信息的的管理,设计学籍管理软家来管理本班级同学的学籍信息。

该软件应支持添加、删除、修改、查询功能。

并且查询功能分为两种情况显示查询的结果:查询方式主要是支持学号查询,例如:输入“111”,则显示该学生的信息。

运用流式、卡片、整体布局方式对系统的主界面和各功能界面进行设计;通过连接数据库的方式来实现对数据的存储;各功能实现时访问数据库,并对数据信息进行读取,运用Java语句对其进行输出,学号查询时显示在文本框中;管理员登录、管理员添加信息,系统提示功能用来提醒用户的错误操作和输入时的错误信息,提醒用户进行改正二、具体实现该系统中的信息存储在数据库中,并实现以下各功能:管理员登录:管理员帐号admin,密码:12345,进行增删查改。

添加功能:添加数据信息,当有新同学进入是可以添加该同学的信息。

通过文本框读入添加信息,连接数据库后储存数据。

精确查询:输入要查询同学的学号,显示出该同学的信息。

通过文本框读入要查找的信息,用SQL语句在数据库中进行查找.删除功能:该功能和精确查询功能在同一功能模块中实现,有于删除同学信息并更新数据库信息。

修改功能:当同学的信息改变时,用此功能更新同学信息。

通过对数据库信息的更新保存最新信息。

每种功能通过一个类来实现:类分分为主类、精确查询类、修改类、添加类、增加类。

主类(Info_manager )实现系统主界面以及和各功能界面的连接;精确查询类(SearchStudent )实现对数据库中数据的精确查询;修改类(MdifyStudent)实现对数据的修改更新;添加类(AddStudent)向数据库中添加新数据;删除类(DeleteStudent)实现对数据的删除。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<stdio.h>#define N 50#define M 200int stumax=0,scoremax=0;FILE *fp;struct student{char num[9]; //学号char name[20]; //姓名int sex; //性别int room; //宿舍号码long int tel; //电话号码}stu[N];struct stuscore{char num[9]; //学号char coursenum[10]; //课程编号char course[15]; //课程名称float point; //学分int nscore; //平时成绩int expscore; //实验成绩int examscore; //卷面成绩int comscore; //综合成绩float getpoint;//实得学分}score[M],score1[M];void enter_stu();void input_stu(int j);void enter_score();void input_score(int i);void com_score(int i);void browse_stu();void browse_score();void search();void search_stu();void search_num();void search_name();void search_room();void search_score();void printf_onestu_score(char snum[]);void delete_one();void order();void order_course_num();void order_course();void order_printf(int k);/***********菜单***********/void menu(){int w1;char n;/*变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围内*/system("cls");do{puts("**************************************************************** \n\n");puts("\t ***************** 总菜单*****************\n\n");puts("\t*** 1.输入学生的基本信息***");puts("\t*** 2.浏览学生的基本信息***");puts("\t*** 3.输入学生的成绩基本信息***");puts("\t*** 4.浏览学生的成绩基本信息***");puts("\t*** 5.查询信息功能***"); puts("\t*** 6.删除信息功能***");puts("\t*** 7.排序:按综合成绩或实得学分***");puts("\t*** 8.退出***"); puts("\n\n************************************************************* ***");printf("\n选择要进行的功能代号(1-8):[ ]\b\b");scanf("%c",&n);if(n<'1'||n>'8') /*对选择的数字作判断*/{w1=1;printf("\n\n 请输入数字1~8!\n\n");}else{w1=0;/*选择功能*/switch(n){case'1':enter_stu();break; /*输入基本信息模块*/case'2':browse_stu();break; /*浏览基本信息模块*/case'3':enter_score();break; /*输入成绩基本信息模块*/case'4':browse_score();break; /*浏览成绩基本信息模块*/case'5':search();break; /*查找模块*/case'6':delete_one();break; /*删除学籍模块*/case'7':order();break; /*排序模块*/case'8':exit(0);}}}while(w1==1); getch();}/**********主函数*********/void main(){menu(); /*进入菜单*/}/*公用函数********************************************************************* **//*保存所有分数*/void save_score(){int i;if((fp=fopen("b.txt","w+"))==NULL) /*以输出方式打开,在此前的记录被覆盖*/{printf("\n 不能打开文件.");getch();}for(i=0;i<scoremax;i++)if(fwrite(&score[i],sizeof(struct stuscore),1,fp)!=1)printf("\n 文件输入错误.");fclose(fp);printf("\n 输入数据结束.Press any key to continue . . .");getch();}/*保存所有学生信息*/void save(){int i;if((fp=fopen("a.txt","w+"))==NULL) /*以输出方式打开,在此前的记录被覆盖*/{printf("\n不能打开文件");getch();}for(i=0;i<stumax;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("\n文件输入错误.");fclose(fp);}/*显示一个分数,形参i表示显示第i个记录*/void printf_one_score(int i){printf("\n学号:%s 课程编号:%s 课程名称:%s 学分:%f\n 平时成绩:%d 实验成绩:%d 卷面成绩:%d 综合成绩:%d 实得学分:%f",score[i].num,score[i].coursenum,score[i].course,score[i].point,score[i].nscore, score[i].expscore,score[i].examscore,score[i].comscore,score[i].getpoint);}/*显示一个学生信息,形参j表示显示第j个记录*/void printf_one_stu(int j){printf("\n学号:%s 姓名:%s 性别:%d 宿舍号码:%d 电话号码:%ld",stu[j].num,stu[j].name,stu[j].sex,stu[j].room,stu[j].tel);}/*删除一个分数,形参i表示删除第i个记录*/void delete_one_score(int i){printf_one_score(i);score[i]=score[scoremax];scoremax--;printf("\n删除学生数据成功!Press any key to continue . . .");getch();save_score();}/*录入模块********************************************************************* **//*学生信息录入*/void enter_stu(){int i,n,es1;printf("\n要输入多少学生基本信息(1~%d)? ",N-1);scanf("%d",&n); /*要输入的学生基本信息的个数*/es1=n+stumax; /*输入n个后应有的记录个数*/printf("\n输入信息:");for(i=stumax;i<es1;i++)input_stu(i); /*调用输入学生基本信息函数*/printf("\n共输入%d 项基本信息.Press any key to continue . . .",n);getch();menu();/*提示输入任务结束,按任意键返回主菜单*/}/*录入一个学生信息*/void input_stu(int j){int i1,k=0,d;switch((j+1)%10){case 1:printf("\n Input the %dst student's information:",j+1);break;case 2:printf("\n Input the %dnd student's information:",j+1);break;default:printf("\n Input the %dth student's information:",j+1);}printf("\n学号姓名性别宿舍号码电话号码\n"); scanf("%s%s%d%d%ld",stu[j].num,stu[j].name,&stu[j].sex,&stu[j].room,&stu[j].tel);stumax++; /*输入一个信息,总数加1*/for(i1=0;i1<stumax;i1++)if(i1!=j&&strcmp(stu[i1].num,stu[j].num)==0) /*表示学号已存在*/{k=1; /*k为学号是否已存在标记,k=1表存在*/printf_one_stu(i1); /*显示已存在的学号的信息*/printf("\n此学生存在!"); /*提示学号已存在*/stumax--; /*总数减1,删除输入信息*/printf("\n删除信息成功!");save(); /*调用保存函数*/break;}if(k==0) /*表示学号不重复*/{printf("\n输入信息成功!"); /*提示输入成功*/save(); /*调用保存函数*/}}/*学生成绩信息录入*/void enter_score(){int i,n,es1;printf("\n要输入的学生基本信息的个数(1~%d)? ",M-1);scanf("%d",&n); /*要输入的学生基本信息的个数*/es1=n+scoremax; /*输入n个后应有的记录个数*/printf("\n输入数据:\n");for(i=scoremax;i<es1;i++)input_score(i); /*调用输入学生成绩基本信息函数*/ save_score(); /*调用保存学生成绩基本信息函数*/printf("\n 共输入了%d 项数据.Press any key to continue . . .",n);getch();menu();/*提示输入任务结束,按任意键返回主菜单*/}/*录入一个成绩*/void input_score(int i){int j,j1,k,c;float a;switch((i+1)%10){case 1:printf("\n Input the %dst student's score:",i+1);break;case 2:printf("\n Input the %dnd student's score:",i+1);break;default:printf("\n Input the %dth student's score:",i+1);}printf("\n学号课程编号课程名称学分平时成绩实验成绩卷面成绩\n");scanf("\n%s%s%s%f%d%d%d",score[i].num,score[i].coursenum,score[i].course,&a, &score[i].nscore,&score[i].expscore,&score[i].examscore);score[i].point=a;com_score(i); /*调用计算综合成绩、实得学分函数*/scoremax++;for(j1=0;j1<stumax;j1++)if(strcmp(score[i].num,stu[j1].num)==0)break;if(j1==stumax) /*学生不存在*/{printf("\n该学生不存在!");delete_one_score(i);/**************/}else/*学生存在*/{for(k=0;k<scoremax;k++){if(k!=i&&strcmp(score[k].num,score[i].num)==0&&strcmp(score[k].coursenum,scor e[i].coursenum)==0&&strcmp(score[k].course,score[i].course)==0) /*该学生该课程已存在*/{printf("\n该学生的此项信息已经存在!");delete_one_score(i);/**************/break;}if((strcmp(score[k].coursenum,score[i].coursenum)==0&&strcmp(score[k].course,sco re[i].course)!=0)||(strcmp(score[k].coursenum,score[i].coursenum)!=0&&strcmp(scor e[k].course,score[i].course)==0)) /*该课程编号和课程名称与前面矛盾并提示删除哪一个*/{printf("\n课程编号和课程名称不符:");printf("\n成绩信息[%d]:",i);printf_one_score(i); /*显示矛盾课程*/printf("\n成绩信息[%d]:",k);printf_one_score(k); /*显示矛盾课程*/printf("\n 1)删除成绩[%d] 2)删除成绩[%d]? [ ]\b\b",i,k);scanf("%d",&c);switch(c){case 1:delete_one_score(i);break; /*调用删除函数*/default:delete_one_score(k); /*调用删除函数*/}break;}}if(k==scoremax)printf("\n输入信息成功! Press any key to continue . . .");getch();}}/*计算综合成绩*/void com_score(int i){if(score[i].expscore==-1) /*判断是否有实验*/score[i].comscore=score[i].nscore*0.3+score[i].examscore*0.7;elsescore[i].comscore=score[i].nscore*0.15+score[i].expscore*0.15+score[i].examscore* 0.7;switch(score[i].comscore/10){case 10:case 9: score[i].getpoint=score[i].point*1.0;break;case 8: score[i].getpoint=score[i].point*0.8;break;case 7: score[i].getpoint=score[i].point*0.75;break;case 6: score[i].getpoint=score[i].point*0.6;break;default:score[i].getpoint=0;}printf("\n综合成绩计算结束. Press any key to continue . . .");getch();}/*浏览模块********************************************************************* **//*浏览学生信息*/void browse_stu(){int i;for(i=0;i<stumax;i++) /* stumax 为总的学生数*/printf_one_stu(i); /*调用显示一个学生基本信息函数*/ printf("\n浏览学生基本信息结束.Press any key to continue . . .");getch();menu();}/*浏览学生成绩信息*/void browse_score()int j;for(j=0;j<scoremax;j++) /* stumax 为总的学生数*/printf_one_score(j); /*调用显示一个学生成绩基本信息函数*/ printf("\n浏览学生成绩信息结束.Press any key to continue . . .");getch();menu();}/*查找模块********************************************************************* **//*查找*/void search(){int c,c1;printf("\n查找中...\n 选择要查询的信息:\n1)学生基本信息2)学生成绩3)返回菜单[ ]\b\b");scanf("%d",&c); /*选择查找内容*/if(c>=1&&c<=3)switch(c){case 1:search_stu();break; /*调用查找学生基本信息函数*/case 2:search_score();break; /*调用查找学生成绩基本信息函数*/default:menu();}printf("\n查询结束...\n 是否继续查询? 1)是2)否[ ]\b\b"); /*询问是否继续查找*/scanf("%d",&c1);switch(c1){case 1:search();break; /*继续查找*/default:menu();}}/*查找学生信息*/void search_stu(){int i,c;printf("\n 查找学生信息中...\n 选择查询方式:\n1)学号2)姓名3)宿舍编号4)返回查询? [ ]\b\b");scanf("%d",&c); /*选择查找方式*/switch(c){case 1:search_num();break; /*调用按学号查询函数*/case 2:search_name();break; /*调用按姓名查询函数*/case 3:search_room();break; /*调用按宿舍号查询函数*/default:printf("\n继续查询...");}printf("\n查询结束. Press any key to continue . . .");getch();}/*按学号查找学生信息*/void search_num(){int i,c;char n1[9];printf("\n请输入要查询学生的学号: ");scanf("%s",&n1); /*输入要查询的学号*/for(i=0;i<stumax;i++)if(strcmp(stu[i].num,n1)==0){printf_one_stu(i); /*显示查到的记录*/break;}if(i==stumax){printf("\n此学号不存在!\n查询下一个学号? 1)是2)否[ ]\b\b"); /*未查到相应记录,询问是否继续查找*/scanf("%d",&c);switch(c){case 1:search_num();break; /*继续按此方式查找*/default:printf("\n继续查找...");}}else{printf("\n学生信息查询结束. Press any key to continue . . .");getch();}}/*按姓名查找学生信息*/void search_name(){int i,c,sn1=0;char n2[20];printf("\n输入要查询学生的名字: ");scanf("%s",&n2);for(i=0;i<stumax;i++)if(strcmp(stu[i].name,n2)==0){printf_one_stu(i); /*显示查到的记录*/sn1++;}if(sn1==0){printf("\n此学生不存在!\n查询下一个学生? 1)是2)否[ ]\b\b"); /*未查到相应记录,询问是否继续查找*/scanf("%d",&c);switch(c){case 1:search_name();break; /*继续按此方式查找*/default:printf("\n继续查询...");}}else{printf("\n查询结束. Press any key to continue . . .");getch();}}/*按宿舍查找学生信息*/void search_room(){int i,c,r,sr1=0;printf("\n输入要查询学生的宿舍号码: ");scanf("%d",&r);for(i=0;i<stumax;i++)if(stu[i].room==r){printf_one_stu(i); /*显示查到的记录*/sr1++;}if(sr1==0){printf("\n这个宿舍号码不存在!\n查询下一个宿舍号码? 1)是2)否[ ]\b\b"); /*未查到相应记录,询问是否继续查找*/scanf("%d",&c);switch(c){case 1:search_room();break; /*继续按此方式查找*/default:printf("\n继续查询...");}}else{printf("\n查询结束. Press any key to continue . . .");getch();}}/*按学号查找学生成绩*/void search_score(){int i,a,s1;char n3[9];printf("\n输入要查询成绩的学生的学号: ");scanf("%s",n3);printf_onestu_score(n3); /*显示查到的记录*/printf("\n查询结束. \n 是否查询其他学生? 1)是2)否[ ]\b\b"); /*询问是否继续查找*/scanf("%d",&s1);switch(s1){case 1:search_score();break; /*继续按此方式查找*/default:printf("\n查询结束. Press any key to continue . . .");getch();}}/*显示一个学生的所有分数*/void printf_onestu_score(char snum[]){int i,j,k=0,a1;float gp=0;for(j=0;j<stumax;j++)if(strcmp(snum,stu[j].num)==0){printf("\n学号: %s 姓名:%s",stu[j].num,stu[j].name);printf("\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");break;}if(j==stumax)printf("\n此学生不存在!");else{for(i=0;i<scoremax;i++)if(strcmp(score[i].num,snum)==0) /*显示该学生的所有成绩*/{printf_one_score(i);k++;gp+=score[i].getpoint;}printf("\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");printf("\n共修: %d 科实得总学分: %-5.1f\n",k,gp);printf("\n此学生成绩显示完毕. Press any key to continue . . .");getch();}}/*删除*/void delete_one(){int i,j,sd1=0,sd2,sd3;char c[9];printf("\n你要删除哪位同学的信息记录? \n请输入他的学号:");scanf("%s",c); /*输入要删除的学号*/for(i=0;i<stumax;i++)if(strcmp(stu[i].num,c)==0)break;if(i==stumax) /*未找到学生*/printf("\n未找到该学生!");else/*找到学生*/{printf_one_stu(i); /*显示学生基本信息记录*/printf("\n要删除这些信息么? 1)是2)否并返回[ ]\b\b");scanf("%d",&sd2); /*删除确认?*/if(sd2==1) /*确认*/{stu[i]=stu[stumax-1]; /*删除该学生基本信息*/stumax--;printf("\n删除学生信息成功!\n");save(); /*调用保存学生基本信息函数*/for(j=0;j<scoremax;j++) /*删除该学生的成绩信息*/if(strcmp(score[j].num,c)==0){delete_one_score(j); /*调用删除成绩函数*/sd1++;}if(sd1==0)printf("\n该学生无成绩记录."); /*该学生无成绩记录*/printf("\n删除信息成功.");}}printf("\n删除其他学生的成绩? 1)是2)否[ ]\b\b"); /*是否继续删除*/scanf("%d",&sd3);switch(sd3){case 1:delete_one();break; /*继续删除*/default: printf("\n查询学生的号码结束. Press any key to continue . . .");getch();menu();}}/*********排序*********/void order(){int c;printf("排序中...\n按什么排序: 1)课程编号2)课程[ ]\b\b");scanf("%d",&c); /*指定按什么排序*/switch(c){case1:order_course_num();printf("\n排序结束. Press any key to continue . . .");break; /*选择按课程编号排序*/case2:order_course();printf("\n排序结束. Press any key to continue . . .");break;/*选择按课程名称排序*/default:printf("\n输入错误. 请重新输入(1~2)!\n");order();}getch();menu();}/*按课程编号排序*/void order_course_num(){int i,j,k=0;char cnum[10];struct stuscore sco;printf("\n输入要排序的课程编号:");scanf("%s",cnum); /*输入要排序的课程编号*/for(i=0;i<scoremax;i++)if(strcmp(score[i].coursenum,cnum)==0) /*查找对应信息并保存在score1[M]中*/{score1[k]=score[i]; /* score1[M]为全局数组*/k++;}for(i=0;i<k-1;i++)for(j=i+1;j<k;j++){if(score1[i].comscore>score1[j].comscore) /*升序排序*/{sco=score1[i];score1[i]=score1[j];score1[j]=sco;}}order_printf(k); /*调用显示函数*/printf("\n排序结束Press any key to continue . . .");getch();}/*按课程名称排序*/void order_course(){int i,j,k=0;char c[15];struct stuscore sco;printf("\n输入要排序的课程名称:");scanf("%s",c); /*输入要排序的课程名称*/for(i=0;i<scoremax;i++)if(strcmp(score[i].course,c)==0) /*查找对应信息并保存在score1[M]中*/{score1[k]=score[i];k++;}for(i=0;i<k-1;i++)for(j=i+1;j<k;j++){if(score1[i].comscore>score1[j].comscore) /*升序排序*/{sco=score1[i];score1[i]=score1[j];score1[j]=sco;}}order_printf(k); /*调用显示函数*/printf("\n排序结束.Press any key to continue . . .");getch();}/*排序显示*/void order_printf(int k){int w1,i,c;do{printf("\n选择排序的顺序:\n 1)升序2)降序[ ]\b\b"); /*选择显示顺序*/scanf("%d",&c);if(c>=1&&c<=2){w1=0;switch(c){case 1:for(i=0;i<k;i++) /*选择升序显示*/printf("\n 学号:%s 课程编号:%-10s 课程名称:%-15s 综合成绩:%5d 实得学分:%f",score1[i].num,score1[i].coursenum,score1[i].course,score1[i].comscore,score1 [i].getpoint);break;case 2:for(i=k-1;i>=0;i--) /*选择降序显示*/printf("\n 学号:%s 课程编号:%-10s 课程名称:%-15s 综合成绩:%5d 实得学分:%f",score1[i].num,score1[i].coursenum,score1[i].course,score1[i].comscore,score1 [i].getpoint);break;}printf("\nPress any key to continue . . .");getch();}else{w1=1;printf("\n输入错误请重新输入(1~2)!");}}while(w1==1);printf("\n排序结束.Press any key to continue . . .");getch();}。

相关文档
最新文档