C语言程序设计#成绩查询系统
学生成绩管理系统
【注释】:请点赞,好人一生平[yi]安[wo]。
#codeblocks程序下编写
#include<stdio.h>
#include<stdlib.h>//颜色
#include<conio.h>//清屏
#include<string.h>
#define LEN sizeof(struct student)
#define SDJ stu[s].ID,stu[s].name,stu[s].sex,stu[s].Class,stu[s].major,stu[s].SX,stu[s].YY,stu[s].CYY,stu[s].sum/**/
#define DJ stu[k].ID,stu[k].name,stu[k].sex,stu[k].Class,stu[k].major,stu[k].SX,stu[k].YY,stu[k].CYY,stu[k].sum
#define dj stu[p].ID,stu[p].name,stu[p].sex,stu[p].Class,stu[p].major,stu[p].SX,stu[p].YY,stu[p].CYY,stu[p].sum
using namespace std;
int DengLu(); /*登录*/
int PaiXu(); /*排序*/
int XiuGai(); /*修改*/
int XianShi(); /*显示*/
int LuRu(); /*录入*/
int ShanChu(); /*删除*/
int GongNeng(); /*功能选择*/
int ZhuCe(); /*注册*/
int ChaXun(); /*查询*/
int m=0; /*数据条数*/
char sr[1]; /*存放输入的判断字母的密码*/
char PASSWORD[10]; /*存放输入的密码*/
/******************学生结构体*****************/
typedef struct student
{
char name[20] ; /*姓名*/
char sex[20]; /*性别*/
char Class[20]; /*班级*/
char ID[20]; /*学号*/
char major[20]; /*专业*/
double SX,YY,CYY,sum;/*数学,英语,c语言,总分*/
} typel;
typel stu[100];
/********************主函数*****************/
int main()
{
printf("************************************************************************************************************************\n");
printf("* *\n");
printf("* *\n");
printf("* 欢迎使用成绩查询系统! *\n");
printf("* *\n");
printf("* *\n");
printf("* 1. 【登录】 *\n");
printf("* 2. 【注册】 *\n");
printf("* 3. 【退出系统】 *\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("************************************************************************************************************************\n");
system("color 2F"); /*绿色背景*/
int a;
printf("请选择服务,并输入对应数字\n");
scanf("%d",&a);
if(a!=1&&a!=2&&a!=3)
{
printf("输入数字不合法,再给你一次机会,请重新输入\n");
scanf("%d",&a);
}
switch(a)
{
case 1:
system("cls");
printf("欢迎进入【登录】页面\n");
DengLu();
break;
case 2:
system("cls");
printf("欢迎进入【注册】页面\n");
ZhuCe();
break;
case 3:
system("cls");
printf("谢谢惠顾,O(∩_∩)O拜拜~\n");
break;
}
return 0;
}
/********************注册*********************/
int ZhuCe()
{
FILE *PN; /*定义文件指针*/
if((PN=fopen("PassWord.txt","ab+"))==NULL) /*打开存放密码的文件*/
{
printf("创建密码文件失败!\n");
}
if((fread(&PASSWORD,sizeof(PASSWORD),1,PN))==1) /*判断文件中是否已存有密码*/
{
fclose(PN);
printf("注册已完成,不可重复注册。\n【重新注册】请删去密码文件中内容。\n");
printf("按<Enter>键返回主页面………………");
getch(); /*停顿一下*/
system("cls");
main();
}
else
{
char Name[10]; /*用户名*/
char Password1[10];
char Password2[10];
printf("请设置初始用户名:");
scanf("%s",Name);
printf("\n请设置密码【6位数字】:"); /*输入一次密码*/
scanf("%s",Password1);
printf("\n请确认密码【6位数字】:"); /*再次确认*/
scanf("%s",Password2);
if((strcmp(Password1,Password2))==0) /*比较两次输入是否相同密码*/
{
printf("确认密码成功!\n");
if((fwrite(&Password1,sizeof(Password1),1,PN))==1) /*把输入的密码存到文件中去*/
{
printf("恭喜,注册成功!\n");
printf("按<Enter>键返回主页面………………");
fclose(PN); /*关闭文件防止信息丢失*/
getch();
system("cls"); /*清屏*/
main();
}
else
{
printf("密码无法保存,注册失败!\n");
system("color 40");
printf("按<Enter>键返回主页面………………");
fclose(PN);
getch();
system("cls");
main();
}
}
else
{
printf("两次密码输入不同,注册失败!\n");
system("color 40");
printf("按<Enter>键返回主页面………………\n");
fclose(PN);
getch();
system("cls");
main();
}
}
fclose(PN);
return 0;
}
/*********************登录********************/
int DengLu()
{
FILE *PN;
char password[10],name[10];
PN=fopen("PassWord.txt","a+");
if(PN==NULL)
{
printf("打开密码文件失败!\n");
system("color 40"); /*红色背景以示警告*/
printf("按<Enter>键返回主页面………………\n");
fclose(PN);
getch();
system("cls");
main();
}
printf(">>欢迎您的登陆<<\n");
printf("请输入用户名:");
scanf("%s",name);
printf("\n请输入密码:");
scanf("%s",password);
fscanf(PN,"%s",PASSWORD); /*从文件中读一个密码赋给PASSWORD*/
if((strcmp(password,PASSWORD))==0) /*验证密码*/
{
printf("密码正确,登录成功!\n");
printf("¥五毛钱 的特效送给你\n");
fclose(PN);
GongNeng();
return 0;
}
else
{
printf("无此用户!!!\n");
printf("再见!\n");
system("color 40"); /*红色背景以示警告*/
printf("按<Enter>键返回主页面………………\n");
fclose(PN);
getch();
system("cls");
main();
}
fclose(PN);
return 0;
}
/********************功能选择******************/
int GongNeng()
{
printf("************************************************************************************************************************\n");
printf("* *\n");
printf("* *\n");
printf("* 尊敬的VIP用户,请选择服务! *\n");
printf("* *\n");
printf("* *\n");
printf("* 1. 【成绩录入】 4. 【修改成绩】 *\n");
printf("* 2. 【删除成绩】 5. 【查看排名】 *\n");
printf("* 3. 【成绩查询】 6. 【退出系统】 *\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("************************************************************************************************************************\n");
system("color 2F");
int b;
printf("请选择服务,并输入对应数字\n");
long time;
/*******************************************************************************¥五毛钱 的特效******************************************************************************/
for (;;)
{
system("color a"); /*第一个16进制数字代表字体颜色(下同)*/
for (time = 0; time<99999999; time++); /*循环以控制该颜色存在时间*/
system("color b");
for (time = 0; time<99999999; time++);
system("color c");
for (time = 0; time<99999999; time++);
system("color d");
for (time = 0; time<99999999; time++);
system("color e");
for (time = 0; time<99999999; time++);
system("color f");
for (time = 0; time<99999999; time++);
system("color 0");
for (time = 0; time<99999999; time++);
system("color 1");
for (time = 0; time<99999999; time++);
system("color 2");
for (time = 0; time<99999999; time++);
system("color 3");
for (time = 0; time<99999999; time++);
system("color 4");
for (time = 0; time<99999999; time++);
system("color 5");
for (time = 0; time<99999999; time++);
system("color 6");
for (time = 0; time<99999999; time++);
system("color 7");
for (time = 0; time<99999999; time++);
system("color 8");
for (time = 0; time<99999999; time++);
system("color 9");
break;
}
/******************************************************************************************************************************************************************************/
system("color 2F"); /*恢复主题绿色*/
scanf("%d",&b);
getchar();
switch(b) /*选择功能*/
{
case 1:
system("cls");
LuRu();
break;
case 2:
system("cls");
ShanChu();
break;
case 3:
system("cls");
ChaXun();
break;
case 4:
system("cls");
XiuGai();
break;
case 5:
system("cls");
PaiXu();
break;
case 6:
system("cls");
return 0;
break;
}
return 0;
}
/***************************成绩录入****************************/
int LuRu()
{
m=0;
FILE *fp;
if((fp=fopen("student.txt","ab+"))==NULL) /*以读写方式打开文件*/
{
printf("文件打开出错!!!\n");
}
while(!feof(fp)) /*文件未指到末尾返回0,以此为判断条件【计数】*/
{
if(fread(&stu[m],LEN,1,fp)==1)
{
m++;
}
}
if(m==0)
{
printf("暂无数据\n");
}
else
{
system("cls");
printf(">>当前共有%d条数据\n",m); /*输出当前数据条数*/
fclose(fp);
}
if((fp=fopen("student.txt","ab+"))==NULL)
{
printf("文件打开出错!!!");
getch();
}
printf("请确认是【Y】否【N】录入学生信息:");
scanf("%s",sr);
while(strcmp(sr,"Y")==0||strcmp(sr,"y")==0)/*录入学生信息*/
{
printf("请输入姓名:");
scanf("%s",stu[m].name);
printf("请输入性别:");
scanf("%s",stu[m].sex);
printf("请输入班级:");
scanf("%s",stu[m].Class);
printf("请输入学号:");
scanf("%s",stu[m].ID);
printf("请输入专业:");
scanf("%s",stu[m].major);
printf("请输入数学成绩:");
scanf("%lf",&stu[m].SX);
printf("请输入英语成绩:");
scanf("%lf",&stu[m].YY);
printf("请输入C语言成绩:");
scanf("%lf",&stu[m].CYY);
stu[m].sum=stu[m].SX+stu[m].YY+stu[m].CYY;
if(fwrite(&stu[m],LEN,1,fp)!=1) /*将新录入的信息写入指定的磁盘文件*/
{
printf("对不起,不能保存!");
getch();
}
else
{
printf("%s 保存成功!\n",stu[m].name);
printf("还继续输吗?(Y/N):"); /*询问是否继续*/
scanf("%s",sr);
if(strcmp(sr,"Y")==0||strcmp(sr,"y")==0)/*为存下一个数据开空间*/
{
m++;
}
}
}
/*if(strcmp(sr,"Y")!=0&&strcmp(sr,"y")!=0)
{
GongNeng();
// return 0;
}*/
fclose(fp); /*关闭文件防止信息丢失*/
printf("恭喜,录入学生成绩成功!\n");
XianShi();getch();
if(strcmp(sr,"Y")!=0&&strcmp(sr,"y")!=0)
{
system("cls");
GongNeng();
// return 0;
}
}
/******************成绩的删除*****************/
int ShanChu()
{
FILE *fp;
int i,j;
char id[20];
printf(">>删除成绩<<\n");
if((fp=fopen("student.txt","ab+"))==NULL)
{
printf("打开学生成绩文件失败!\n");
getch();
}
m=0; /*重新计数,确保能够独立运行。*/
while(!feof(fp)) /*文件指针未达到末尾返回0*/
{
if(fread(&stu[m],LEN,1,fp)==1) /*判断读取一个单位字节是否成功*/
{
m=m+1;
}
/*统计当前记录条数*/
}
fclose(fp);
XianShi();
if(m==0)
{
printf("没有成绩可删,请先录入成绩!");
getch();
}
printf("请输入要删除学生的学号:");
scanf("%s",&id);
for(i=0; i<m; i++) /*检索学号*/
{
if(strcmp(id,stu[i].ID)==0)
{
break;
}
}
if(i==m) /*检索结束未找到信息*/
{
printf("未找到该学生【%s】成绩\n",id);
getch();
return 0;
}
printf("已找到%s的成绩,是否删除:\n",stu[i].name);
scanf("%s",sr);
if(strcmp(sr,"Y")==0||strcmp(sr,"y")==0)
{
for(j=i; j<(m-1); j++)
{
stu[j]=stu[j+1];//把该学生后的数据向前移动1位
}
m=m-1;//数据组总数减一
printf("删除成功!\n");
}
else
{
return 0;
}
if((fp=fopen("student.txt","wb"))==NULL)
{
printf("无法打开文件,保存信息失败!");
getch();
}
int u;
for(u=0; u<m; u++) /*把改动的文件重新录入文件*/
{
fwrite(&stu[u],LEN,1,fp);
}
if(u==m)
{
printf("恭喜,保存成功!\n");
XianShi();
getch();
}
return 0;
}
/******************显示成绩*****************/
int XianShi()
{
printf("【学号】 【姓名】 【性别】 【班级】 【专业】 【数学】 【英语】 【思政】 【总分】\n");
for(int k=0; k<m; k++)
{
printf(" %s %s %s %s %s %.1lf %.1lf %.1lf %.1lf\n",DJ);
}
}
/******************成绩查询*****************/
int ChaXun()
{
FILE *fp;
int p;
char iid[20];
printf(">>成绩查询<<\n");
if((fp=fopen("student.txt","ab+"))==NULL)
{
printf("打开学生成绩文件失败!\n");
getch();
}
m=0;//重新计数,
while(!feof(fp))//文件指针未达到末尾返回0
{
if(fread(&stu[m],LEN,1,fp)==1)//判断读取一个单位字节是否成功
{
m=m+1;
}
/*统计当前记录条数*/
}
fclose(fp);
if(m==0)
{
printf("没有成绩可查,请先录入成绩!");
getch();
}
printf("请输入要查询学生的学号:");
scanf("%s",&iid);
for(p=0; p<m; p++)
{
if(strcmp(iid,stu[p].ID)==0)
{
break;
}
}
if(p==m)
{
printf("【%s】成绩不存在\n",iid);
getch();
return 0;
}
printf(">>查询成功!\n");
printf("【学号】 【姓名】 【性别】 【班级】 【专业】 【数学】 【英语】 【思政】 【总分】\n");
printf(" %s %s %s %s %s %.1lf %.1lf %.1lf %.1lf\n",dj);
return 0;
}
/*******************成绩修改******************/
int XiuGai()
{
FILE *fp;
int q;
char iiid[20];
printf(">>修改成绩<<\n");
if((fp=fopen("student.txt","ab+"))==NULL)
{
printf("打开学生成绩文件失败!\n");
getch();
}
m=0;//重新计数,确保能够独立运行。
while(!feof(fp))//文件指针未达到末尾返回0
{
if(fread(&stu[m],LEN,1,fp)==1)//判断读取一个单位字节是否成功
{
m=m+1;
}
/*统计当前记录条数*/
}
fclose(fp);
XianShi();
if(m==0)
{
printf("没有成绩可修改,请先录入成绩!");
getch();
return 0;
}
printf("请输入要修改学生的学号:");
scanf("%s",&iiid);
for(q=0; q<m; q++)
{
if(strcmp(iiid,stu[q].ID)==0)
{
break;
}
}
if(q==m)
{
printf("未找到该学生【%s】成绩\n",iiid);
getch();
return 0;
}
printf("已找到%s的成绩,是否修改:\n",stu[q].name);
scanf("%s",sr);
if(strcmp(sr,"Y")==0||strcmp(sr,"y")==0)
{
printf("请输入姓名:");
scanf("%s",stu[q].name);
printf("请输入性别:");
scanf("%s",stu[q].sex);
printf("请输入班级:");
scanf("%s",stu[q].Class);
printf("请输入学号:");
scanf("%s",stu[q].ID);
printf("请输入专业:");
scanf("%s",stu[q].major);
printf("请输入数学成绩:");
scanf("%lf",&stu[q].SX);
printf("请输入英语成绩:");
scanf("%lf",&stu[q].YY);
printf("请输入C语言成绩:");
scanf("%lf",&stu[q].CYY);
stu[q].sum=stu[q].SX+stu[q].YY+stu[q].CYY;
printf("修改成功!\n");
}
else
{
return 0;
}
if((fp=fopen("student.txt","wb"))==NULL)
{
printf("无法打开文件,保存信息失败!");
getch();
return 0;
}
int o;
for(o=0;o<m;o++)
{
fwrite(&stu[o],LEN,1,fp); /*把改动的文件重新录入文件*/
}
if(o==m)
{
printf("恭喜,保存成功!");
}
return 0;
}
/********************成绩排序******************/
int PaiXu()
{
FILE *fp;
printf(">>成绩排序<<\n");
if((fp=fopen("student.txt","ab+"))==NULL)
{
printf("打开学生成绩文件失败!\n");
getch();
}
m=0;//重新计数,不依赖输入函数。
while(!feof(fp))//文件指针未达到末尾返回0
{
if(fread(&stu[m],LEN,1,fp)==1)//判断读取一个单位字节是否成功
{
m=m+1;
}
/*统计当前记录条数*/
}
fclose(fp);
if(m==0)
{
printf("没有成绩可排序,请先录入成绩!");
getch();
}
typel t;
for(int w=0;w<m;w++) /*FOR循环排序*/
{
for(int c=w;c<m;c++)
{
if(stu[w].sum<stu[c].sum)
{
t=stu[w];
stu[w]=stu[c];
stu[c]=t;
}
}
}
printf("【学号】 【姓名】 【性别】 【班级】 【专业】 【数学】 【英语】 【思政】 【总分】\n");
for (int s=0; s<m; s++)
{
printf(" %s %s %s %s %s %.1lf %.1lf %.1lf %.1lf\n",SDJ);
}
getch();
return 0;
}
C语言程序设计#成绩查询系统的更多相关文章
- C语言 · 成绩查询系统
抱歉,昨天忘了往博客上更新,今天补上. 成绩查询系统 分值: 21 数学老师小y 想写一个成绩查询系统,包含如下指令: insert [name] [score],向系统中插入一条信息,表示名字为na ...
- C语言身份证信息查询系统(修改版)
很久以前写了一个<C语言身份证信息查询系统>,如果你点击链接进去看了. 估计也会被我那磅礴大气的代码震惊到的,最近复习/学习文件操作,把代码改了改,算是对以前还不会文件操作的时候的愿望,哈 ...
- 暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统
本篇文章涉及到的知识点有:Python爬虫,MySQL数据库,html/css/js基础,selenium和phantomjs基础,MVC设计模式,ORM(对象关系映射)框架,django框架(Pyt ...
- C语言-社保工资查询系统
一.简述 此次程序没有涉及函数,完成工资.保险和住房公积金税前税后的查询.工资和社保公积金算法是依据最新的北京标准计算. 五险一金标准: 税率: 1.输入编号1~6查询保险,然后再选择是依据税前工资还 ...
- C语言-用函数实现社保工资查询系统
需求: 1.有登陆操作,超过三次需重新打开登录 2.查询五险一金.税前税后工资计算,个人与单位应缴明细 3.输入税后工资和税前工资都可查询 4.退出有询问确认操作 代码如下; #include< ...
- 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总
中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...
- 《C语言程序设计》编程总结汇总
<C语言程序设计>编程总结汇总 院系: 专业年级: 班级名称: 学号: 姓名: 指导教师: 完成时间: 自我评价: 计算机科学与技术专业教研室 2018 年秋季学期 第四周编程总结 题目4 ...
- C语言程序设计第4堂作业
大家注意:本次作业稍有增加,由于放假期间大家空闲时间比较充足,将之前学习过程中遗留的问题必须在假期解决. 本次课学习主要内容: 分支结构中的二分支结构.多分支结构和else-if语句 掌握字符型数 ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...
随机推荐
- redis的主从复制(哨兵模式)
p.p1 { margin: 0; font: 10px ".SF NS Text" } Master以写为主,Slave以读为主 读写分离 容灾恢复 一.一主多从 配置文件修改: ...
- spring-cloud-gateway 服务网关
Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关.网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发.权限校验.限流控制等 ...
- 一键生成dotnet5项目解决方案
> 作为一名从2002年.Net 1.0一路走来的老码农,也持续跟进了dotnet core 1.0~3.1的变革,并不离不弃的玩起了dotnet 5. 每次接到新项目,都要从头搭建项目解决方案 ...
- 浅入Kubernetes(8):外网访问集群
目录 查询 Service Service 外部服务类型 配置 ServiceType 伸缩数量 阶段总结 在前面几篇文章中,我们学习了 kubeadm .kubectl 的一些命令,也学会了 Dep ...
- aws eks上部署 ingress-nginx 加NLB
转载自https://kubernetes.github.io/ingress-nginx/deploy/#aws In AWS we use a Network load balancer (NLB ...
- 漫谈SCA(软件成分分析)测试技术:原理、工具与准确性
摘要:本文介绍了SCA技术的基本原理.应用场景,业界TOP SCA商用工具的分析说明以及技术发展趋势:让读者对SCA技术有一个基本初步的了解,能更好的准确的应用SCA工具来发现应用软件中一些安全问题, ...
- Linux文件共享服务之NFS
NFS(Network File System) 网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可 ...
- hdu4941 map交换行列
题意: 有一个大矩阵,某些格子上有数字,然后有三种操作, 1 交换行 2 交换列 3 询问当前坐标数值 思路: 直接用map去映射行列,用二维的map去存数字就行了,水题,想不通的 ...
- Win64 驱动内核编程-32.枚举与删除注册表回调
枚举与删除注册表回调 注册表回调是一个监控注册表读写的回调,它的效果非常明显,一个回调能实现在SSDT 上 HOOK 十几个 API 的效果.部分游戏保护还会在注册表回调上做功夫,监控 service ...
- C++ Socket 简单封装
以下代码一部分来自于<网络多人游戏架构与编程>, 其它的都是我瞎写的. 备忘. 一个简单的Socket封装,没有做什么高级的操作(比如IO完成端口等等). 1 #pragma once 2 ...