#include

#include

#include

int readstudents(struct students stu[]); //读取学生信息

int readsexcode(struct sexcode sex[]); //读取性别代码

int readcollegecode(struct collegecode colle[]); //读取学院代码

void transform(struct students stu[],struct sexcode sexy[],struct collegecode colle[],int a,int b,int c); //录入

void namesort(struct students stu[],int a); //按照姓名排序

void averagesort(struct students stu[],int a); //平均分排序

void searchcollege(struct students stu[],int a); //按学院搜索学生

void namesearch(struct students stu[],int a); //按名字搜索

void printstudent(struct students stu[],struct sexcode sex[],struct collegecode colle[],int a,int b,int c); //输出

void change(struct students stu[],int a);

int passwordfun();

void passwordchange();

void averagefun(struct students stu[],int a);

struct students{

int num;

char name[];

int sexnum;

char sex[];

int collegenum;

char college[];

int score[];

float average;

};

struct sexcode{

int sexnum;

char sex[];

};

struct collegecode{

int collegenum;

char college[];

};

int main()

{

int a,b,c;

int choice;

struct students stu[];

struct sexcode sexy[];

struct collegecode colle[];

int t = passwordfun();

if(t == ){

printf("请使用正确密码重新登陆程序!\n");

return ;

}

while(){

system("cls");

printf("***********学生成绩系统菜单************ \n* 1. 原始文件读取 *\n* 2. 按姓名排序,输出 *\n* 3. 按平均成绩排序,输出 *\n* 4. 输出给定学院学生 *\n* 5. 修改给定学生成绩信息 *\n* 6. 按姓名查询学生,输出 *\n* 7. 修改系统密码 *\n* 0. 返回上一级菜单 *\n***************************************\n");

scanf("%d",&choice);

switch(choice){

case : system("cls");

a = readstudents(stu);

b = readsexcode(sexy);

c = readcollegecode(colle);

transform(stu,sexy,colle,a,b,c);

averagefun(stu,a);

printf("原始文件读取完毕!\n0. 返回上一级菜单 \n");

scanf("%d",&choice);

if(choice == ) break;

case : system("cls");

namesort(stu,a);

printstudent(stu,sexy,colle,a,b,c);

printf("\n0. 返回上一级菜单 \n");

scanf("%d",&choice);

if(choice == ) break;

case : system("cls");

averagesort(stu,a);

printstudent(stu,sexy,colle,a,b,c);

printf("\n0. 返回上一级菜单 \n");

scanf("%d",&choice);

if(choice == ) break;

case : system("cls");

searchcollege(stu,a);

printf("\n0. 返回上一级菜单 \n");

scanf("%d",&choice);

if(choice == ) break;

case : system("cls");

change(stu,a);

printf("修改成功!\n");

printf("\n0. 返回上一级菜单 \n");

scanf("%d",&choice);

if(choice == ) break;

case : system("cls");

namesearch(stu,a);

printf("\n0. 返回上一级菜单 \n");

scanf("%d",&choice);

if(choice == ) break;

case : system("cls");

passwordchange();

printf("\n0. 返回上一级菜单 \n");

scanf("%d",&choice);

if(choice == ) break;

case : system("cls");

printf("欢迎使用,下次再见!\n");

system("pause");

exit();

}

}

return ;

}

int readstudents(struct students stu[]) //读取学生信息

{

int i = ;

FILE *fp;

fp = fopen("D:\\abc\\Student_Info.txt","r+");

if(fp == ){

printf("can not open this file\n");

exit ();

}

fscanf(fp,"%d",&stu[i].num);

while(!feof(fp)){

fscanf(fp,"%s%d%d",stu[i].name,&stu[i].sexnum,&stu[i].collegenum);

for(int j = ;j < ; j++ ){

fscanf(fp,"%d",&stu[i].score[j]);

}

i++;

fscanf(fp,"%d",&stu[i].num);

}

fclose(fp);

return i;

}

int readsexcode(struct sexcode sexy[]) //读取学生性别信息

{

int i = ;

FILE *fp;

fp = fopen("D:\\abc\\S_Info.txt","r");

if(fp == ){

printf("can not open this file\n");

exit ();

}

fscanf(fp,"%d",&sexy[i].sexnum);

while(!feof(fp)){

fscanf(fp,"%s",sexy[i].sex);

i++;

fscanf(fp,"%d",&sexy[i].sexnum);

}

fclose(fp);

return i;

}

int readcollegecode(struct collegecode colle[]) //读取学生学院信息

{

int i = ;

FILE *fp;

fp = fopen("D:\\abc\\C_Info.txt","r");

if(fp == ){

printf("can not open this file\n");

exit ();

}

fscanf(fp,"%d",&colle[i].collegenum);

while(!feof(fp)){

fscanf(fp,"%s",colle[i].college);

i++;

fscanf(fp,"%d",&colle[i].collegenum);

}

fclose(fp);

return i;

}

void averagefun(struct students stu[],int a) //平均分

{

for(int i = ; i < a; i++){

int sum = ;

for(int j = ; j < ; j++){

sum = sum + stu[i].score[j];

}

stu[i].average = 1.0 * sum / ;

}

return ;

}

void namesort(struct students stu[],int a) //按姓名排序

{

for(int i = ; i < a-; i++){

for(int j = i+; j < a ; j++){

if(strcmp(stu[i].name,stu[j].name) < ){

struct students temp = stu[i];

stu[i] = stu[j];

stu[j] = temp;

}

}

}

return ;

}

void averagesort(struct students stu[],int a) // 按平均分排序

{

for(int i = ; i < a-; i++){

for(int j = i+; j < a ; j++){

if(stu[i].average < stu[j].average){

struct students temp = stu[i];

stu[i] = stu[j];

stu[j] = temp;

}

}

}

return ;

}

void printstudent(struct students stu[],struct sexcode sexy[],struct collegecode colle[],int a,int b,int c) //输出信息

{

for(int i = ;i < a; i++){

printf("%d%8s%4s%12s",stu[i].num,stu[i].name,stu[i].sex,stu[i].college);

for(int j = ; j < c; j++){

printf("%4d",stu[i].score[j]);

}

printf("%7.2f\n",stu[i].average);

}

return ;

}

void transform(struct students stu[],struct sexcode sexy[],struct collegecode colle[],int a,int b,int c) //修改信息

{

for(int i = ; i < a; i++){

for(int j = ; j < b; j++){

if(stu[i].sexnum == sexy[j].sexnum){

strcpy(stu[i].sex,sexy[j].sex);

break;

}

}

for(int j = ; j < c; j++){

if(stu[i].collegenum == (colle[j].collegenum - )){

strcpy(stu[i].college,colle[j].college);

break;

}

}

}

}

void searchcollege(struct students stu[],int a) //查找学院并输出

{

char collegename[];

printf("请输入需要查找的学院的名称:\n") ;

scanf("%s",collegename);

for(int i = ;i < a; i++){

if(strcmp(stu[i].college,collegename) == ){

printf("%d%8s%4s%12s",stu[i].num,stu[i].name,stu[i].sex,stu[i].college);

for(int j = ; j < ; j++){

printf("%4d",stu[i].score[j]);

}

printf("%7.2f\n",stu[i].average);

}

}

return ;

}

void namesearch(struct students stu[],int a) //按姓名查找

{

printf("请输入需要查找的学生的姓名:\n");

char name[];

scanf("%s",name);

for(int i = ;i < a; i++){

if(strcmp(stu[i].name,name) == ){

printf("%d%8s%4s%12s",stu[i].num,stu[i].name,stu[i].sex,stu[i].college);

for(int j = ; j < ; j++){

printf("%4d",stu[i].score[j]);

}

printf("%7.2f\n",stu[i].average);

}

}

return ;

}

void change(struct students stu[],int a) //按名字搜索修改分数

{

char name[];

printf("请输入需要修改成绩的学生的姓名:\n");

scanf("%s",name);

printf("请输入改学生各科成绩,不需要修改的按原样输入:\n");

for(int i = ;i < a; i++){

if(strcmp(stu[i].name,name) == ){

for(int j = ; j <= ; j++){

printf("第%d门成绩: ",j);

scanf("%d",&stu[i].score[j-]);

printf("\n");

}

}

}

int i = ;

FILE *fp;

fp = fopen("D:\\abc\\Student_Info.txt","w");

if(fp == ){

printf("can not open this file\n");

exit ();

}

while(i

fprintf(fp,"%d %s %d %d",stu[i].num,stu[i].name,stu[i].sexnum,stu[i].collegenum);

for(int j = ;j < ; j++ ){

fprintf(fp," %d",stu[i].score[j]);

if(j == ){

fprintf(fp,"\n");

}

}

i++;

}

fclose(fp);

return ;

}

int passwordfun() //密码

{

char password_1[],password_2[],password_3[];

int i = ;

FILE *fp;

fp = fopen("D:\\abc\\password.txt","r");

if(fp == ){

printf("can not open this file\n");

exit ();

}

fscanf(fp,"%s",password_2);

fclose(fp);

if(password_2[i] == '\0'){ //当检测到密码文本为空时

printf("欢迎使用学生成绩管理系统!\n首次使用系统,您可以直接进入主菜单,进入主菜单后请及时修改密码!\n");

system("pause");

return ;

}

else

{

printf("请输入系统密码:\n");

//保存输入的密码

char s[];

int t,n_,x;

for(x=;x

s[x]=getch();

if(s[x]=='\r') break;

printf("*");

}

s[x]='\0';

for(t=;t

password_1[t]=s[t];

}

for(i = ; password_2[i] != '\0'; i++){

if(password_2[i] <= && password_2[i] >= ){ //password_2为真实密码

password_3[i] = password_2[i] - ; //密码密文加密(+3)

}else{

password_3[i] = - password_3[i];

} //password_3为按算法处理后的真实密码

}

password_3[i] = '\0';

if(strcmp(password_1,password_3) == ){

return ;

}else{

printf("密码错误!\n程序结束!请使用正确密码重新登入程序!\n");

system("pause");

return ;

}

}

}

void passwordchange() //密码修改

{

FILE *fp;

char newpassword_1[];

char newpassword_2[];

int i = ;

printf("请输入新的密码:\n");

scanf("%s",newpassword_1);

for(i = ; newpassword_1[i] != '\0'; i++){

if(newpassword_1[i] + <= ){

newpassword_2[i] = newpassword_1[i] + ;

}else{

newpassword_2[i] = newpassword_1[i] + -;

}

}

newpassword_2[i] = '\0';

fp = fopen("D:\\abc\\password.txt","w");

if(fp == ){

printf("can not open this file\n");

exit ();

}

fprintf(fp,"%s",newpassword_2);

fclose(fp);

printf("密码修改成功!\n");

return ;

}

c&plus;&plus;链表实现学生成绩管理系统&lpar;简易版&rpar;

#include using namespace std; typedef struct student{ int id;//学号 string sex; string ...

《C语言 学生成绩管理系统》

/* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: 学生成绩 ...

第一次写C语言小程序,可以初步理解学生成绩管理系统的概念

1 成绩管理系统概述 1.1  管理信息系统的概念  管理信息系统(Management Information Systems,简称MIS),是一个不断发展的新型学科,MIS的定义随着科技的进步也在 ...

《C语言编写 学生成绩管理系统》

/* (程序头部凝视開始) * 程序的版权和版本号声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名: 学生成绩管理 ...

【学生成绩管理系统】 大二c语言作业

几年前写的了,只能在命令行窗口运行,虽然比较挫,还是有一定参考价值... #include #include #include

C语言项目:学生成绩管理系统

C语言项目:学生成绩管理系统    1.数据结构:学生信息:学号.姓名.年龄.性别.3课成绩    2.功能:   (1)增加学生记录    (2)  删除学生记录    (3)  查找学生信息(学号 ...

C语言实现---学生成绩管理系统

C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示. 完整代码如下: #include #include ...

JAVA语言课堂测试01源代码(学生成绩管理系统)

package 考试; /*信1807-8 * 20183798 * 向瑜 */ import java.util.Scanner; //ScoreInformation 类 class ScoreI ...

学生成绩管理系统-JAVA语言测试

首先右键新建一个工程project 选择Java Project,单击next下一步 project命名为“学生成绩管理系统”,点击finish继续 右键src文件夹新建Package包,取名为te ...

随机推荐

关于javascript在作用域中的变量定义你所不知道的一些东西

//先看一段代码 var a = 100; function test(){ alert(a); var a = 200; } test(); /* 结果:undifined 原因:js引擎在执行sc ...

Metro之GridView控件的使用-绑定不同的模板样式显示

最终实现的效果如下: 添加MenuDataSource.cs,字段ImageStyle是用来标识套用的样式 public class MenuGroup { public string GroupTi ...

vijos 1053Easy sssp

P1053Easy sssp Accepted 标签:图结构 最短路     描述 输入数据给出一个有N(2 <= N <= 1,000)个节点,M(M <= 100,000)条边的 ...

python学习之copy模块

Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象.2. copy.deepc ...

从某一日期开始过day天的日期

一个SX问我的,我就写了写......从2010.1.1开始,给了一组测试数据3的话输出2010.1.4星期1,所以说2010.1.1是星期五,总星期就是 (day+5)%7==0?7:(day+5) ...

ubuntu14&period;04安装ia32-lib

sudo apt-get install libc6:i386 sudo -i cd /etc/apt/sources.list.d echo "deb http://old-release ...

腾讯QQ会员技术团队:人人都可以做深度学习应用:入门篇(下)

四.经典入门demo:识别手写数字(MNIST) 常规的编程入门有"Hello world"程序,而深度学习的入门程序则是MNIST,一个识别28*28像素的图片中的手写数字的程序 ...

Android 性能测试——Heap Viewer 工具

Android 性能测试--Heap Viewer 工具 Heap Viewer能做什么? 实时查看App分配的内存大小和空闲内存大小 发现Memory Leaks Heap Viewer使用条件 5 ...

野生程序员对&period;NETFramework 4&period;0 ThreadPool的理解

ThreadPool 类 提供一个线程池,该线程池可用于执行任务.发送工作项.处理异步 I/O.代表其他线程等待以及处理计时器. 命名空间:   System.Threading程序集:  mscor ...

html标签分类

在这里做个存档吧,区分一下常用的html标签,行内元素.块状元素.行内块状元素! 那个h标签下面的三横是


标签. 顺便给个附加的css,你们仔细体会一下 body *{border: ...

c语言按给定成绩查询,C语言学生成绩管理系统(简易版)相关推荐

  1. android学生成绩查询代码,android学生成绩查询系统.pdf

    android学生成绩查询系统 嵌入式系统课程设计报告 学生成绩查询系统手机端 I 摘要 在 世纪的今天,互联网已深入世界的各个角落.而WAP技术的发展和无线业务的成 21 熟,为人们获取各种信息提供 ...

  2. 中学生成绩查询c语言编程,c语言学生成绩管理系统

    一 实验内容: 1.实验名称:学生成绩管理. 2.试验目的: 1) 利用所学的三种程序基本结构以及数组.用户自定义函数进行一个简单管理系统的设计,进一步理解和掌握C语言的语法以及三种基本程序结构的综合 ...

  3. c语言实现学生二科成绩的单链表,c++链表实现学生成绩管理系统(简易版)

    #include using namespace std; typedef struct student{ int id;//学号 string sex; string name; int cpp;/ ...

  4. 成绩管理系统c语言流程图,C语言可视化程序课程的设计:学生成绩管理系统.doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 C语言可视化程序课程的设计:学生成绩管理系统.d ...

  5. c语言学生成绩统计问题分析,学生成绩统计c语言教程分析.doc

    课 程 设 计 课程名称____C语言课程设计___ 题目名称____学生成绩统计_____ 学生学院______物理学院_______ 专业班级____电子科学与技术___ 学 号_____3110 ...

  6. C语言链表学生成绩制作成链表,C语言程序设计课程设计基于链表的学生成绩管理系统.doc...

    C语言程序设计课程设计基于链表的学生成绩管理系统 华北科技学院计算机系综合性实验报告 PAGE 第 PAGE 10 页 华北科技学院计算机系综合性实验 实 验 报 告 课程名称 C语言程序设计 实验学 ...

  7. 视频教程- 桫哥-GOlang基础-Go语言实战:成语查询-Go语言

    桫哥-GOlang基础-Go语言实战:成语查询 多年互联网从业经验: 有丰富的的企业网站.手游.APP开发经验: 曾担任上海益盟软件技术股份有限公司项目经理及产品经理: 参与项目有益盟私募工厂.睿妙影 ...

  8. C语言-编写程序,根据输入的学生成绩给出相应的等级,大于或等于90分以上的等级为A,60分以下的等级为E,其余每10分为一个等级。(switch语句)

    用switch语句改写C语言-编写程序,根据输入的学生成绩给出相应的等级,大于或等于90分以上的等级为A,60分以下的等级为E,其余每10分为一个等级.(else if语句) #include< ...

  9. 2021高考成绩查询衢州,2021浙江衢州中考成绩查询时间 衢州中考成绩查询入口

    2021浙江衢州中考成绩查询时间,考试季来临,高考的舞台已落下帷幕,接下来就是中考该粉墨登场了.那么,同学和家长最关心的应该就是中考成绩查询时间了,今天,小编整理了衢州中考成绩查询入口,下面就和小编一 ...

最新文章

  1. 赋值语句和赋值表达式
  2. 一文完全理解定时器实现技术
  3. 青源LIVE第22期|旷视刘松涛:YOLOX,高性能目标检测的最新实践
  4. 反编译DLL并修改再生成DLL
  5. 深度之眼课程打卡-统计学习方法01
  6. 一个用Shell脚本写的猜丁壳游戏
  7. ssl1125-集合【哈希表二分查找+快排】
  8. Github星标超3k的推荐系统入门资料合集(含教程、论文、代码、数据)
  9. python下俄罗斯方块的游戏设计_[源码和文档分享]基于Python的PyGame的俄罗斯方块游戏设计与实现...
  10. 【嵌入式设计】嵌入式低功耗设计
  11. pythondifflib详解_python difflib模块示例讲解
  12. GDAL源码剖析(三)之Swig编译和帮助文档生成
  13. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_01-自定义查询页面-服务端-Dao...
  14. 大神级ppt作品欣赏_超写实绘画,逼真到让你怀疑自己的双眼,各路超写实大神作品欣赏...
  15. 使用base64格式生成图片
  16. littleVGL总结
  17. oracle会计工作总结,EBS 创建会计科目 小结
  18. BlueCoat SG CPU高问题
  19. 二阶可导的充要条件_可导函数在x
  20. Nowcoder. 链表的回文结构

热门文章

  1. SpringBoot 查询根据时间数据-数据库时区错误
  2. 基于Java毕业设计研究生推免系统源码+系统+mysql+lw文档+部署软件
  3. 英语六级考600分以上是一种怎样的体验?
  4. 基于conga实现RHCS简单部署
  5. 2020东北大学计算机考研科目,2020东北大学计算机考研初试科目、参考书目、招生人数汇总...
  6. 【探花交友DAY 07】即时通讯模块的实现
  7. 神仙级python入门教程(非常详细),从零基础入门到精通,从看这篇开始!
  8. matlab画一个正弦函数y=sin(x)(全网最简便,没有之一)
  9. 如何使用ADC测量我们设备的锂电池电压
  10. 4款黑科技级别的宝藏APP,轻松满足你的多种需求,请低调收藏