修改了一下 感觉比上一次好

/*学生成绩管理系统V3.0(链表版)
某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入)。使用链表编程成实现如下菜单驱动的学生成绩管理系统。
1.从文件读入每个学生个人信息和成绩信息,可以由键盘输入文件名。读入成功提示读入学生记录的个数,不成功提示相应出错信息。
2.增量式手动录入每个学生的学号(8位数字)、姓名和各科考试成绩。不考虑中文姓名,不考虑重名情况下的处理,学生的学号是唯一的。
3.计算每门课程的总分和平均分;
4.计算每个学生的总分和平均分;
5.按每个学生的总分由高到低排出名次表;
6.按每个学生的总分由低到高排出名次表;
7.按学号由小到大排出成绩表;
8.按姓名的字典顺序排出成绩表;
9.按学号查询学生排名及其考试成绩;
10.按姓名查询学生排名及其考试成绩;需要考虑学生重名的情况。
11.按优秀(100-90)、良好(89-80)、中等(79-70)、及格(69-60)、不及格(59-0)5个类别,对每门课程分别统计每个类别的人数以及所占的百分比;并将计算结果输出到文件,文件名可由键盘输入。
12.输出每个学生的学号、姓名、各科考试成绩、总分和平均分;
13.将每个学生的个人信息和成绩写入文件,可由键盘输入文件名;
要求程序运行后先显示如下菜单,并提示用户输入选项(菜单式循环显示,直到选择0.exit 整个程序退出):*/
#include<stdio.h>
#include<windows.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include "StudentLogin.h"
#include "StudentRegister.h"
#include "STUDENT.h"
/*************************************************************
*************************声明函数*****************************
**************************************************************/
void Help(); //帮助
void Regard(); //关于
int main(); //主函数
void Login(); //总登录页面
void RegisterS(); //学生注册
void RegisterA(); //管理员注册
void LoginA(); //管理员登录
void LoginS(); //学生登录
void Register(); //总注册页面
void Set();
void L1();
void L2();
void L3();
void L4();
void L5();
void L6();
void L7();
void L8();
/*******************全局变量************************/
int An; //第An个注册的管理员

void Set(){
int choice;
system("cls");
printf("\t\t┏━━━━━━━━━━━━━━━━━━┓\n");
printf("\t\t┃ 学生成绩管理系统V3.0(管理) ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 1.每门课程总分与平均分 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 2.学生总分排名 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 3.学生学号排名 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 4.学生姓名排名(字典) ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 5.查询学生信息(学号) ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 6.查询学生信息(姓名) ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 7.成绩类别分析 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 8.全部学生信息 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 0.返回上一级 ┃\n");
printf("\t\t┗━━━━━━━━━━━━━━━━━━┛\n");
scanf("%d",&choice);
switch(choice){
case 1: L1(); break;
case 2: L2(); break;
case 3: L3(); break;
case 4: L4(); break;
case 5: L5(); break;
case 6: L6(); break;
case 7: L7(); break;
case 8: L8(); break;
case 0: Login(); break;
default: printf("输入错误,请重新输入!\n"); system("pause"); Login(); break;
}
system("pause");
Set();
}

void Login() //总登录页面
{
int choice;
system("cls");
printf("\t\t┏━━━━━━━━━━━━━━━━━━┓\n");
printf("\t\t┃ 学生成绩管理系统V3.0(登录) ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 请选择: ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 1.管理学生信息 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 2.录入新的学生信息 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 0.返回上一级 ┃\n");
printf("\t\t┗━━━━━━━━━━━━━━━━━━┛\n");
scanf("%d",&choice);
switch(choice){
case 1: Set(); break;
case 2: Register(); break;
case 0: main(); break;
default: printf("输入错误,请重新输入!\n"); system("pause"); Login(); break;
}

}
void Register() //总注册页面
{
int i;
system("cls");
RegisterS();printf("\n恭喜,录入成功!\n"); system("pause");
}
int main()
{
int choice; //选择操作
do{
system("cls");
printf("\t\t┏━━━━━━━━━━━━━━━━━━┓\n");
printf("\t\t┃ 学生成绩管理系统V3.0(链表版) ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 1.登录管理系统 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 2.帮助 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 3.关于 ┃\n");
printf("\t\t┃ ┃\n");
printf("\t\t┃ 0.退出系统 ┃\n");
printf("\t\t┗━━━━━━━━━━━━━━━━━━┛\n");
printf("请输入您的选择:\n");
scanf("%d",&choice);
switch(choice)
{
case 1:
Login();
break;
case 2:
Help();
break;
case 3:
Regard();
break;
case 0:
printf("信息保存中");
for(int i=0;i<6;i++)
{
printf(".");
Sleep(1000);
}
exit(0);
break;
default:
printf("输入错误,请重新输入!\n");
system("pause");
break;
}

}while(choice>0);

return 0;
}
void Help() //帮助
{
system("cls");
printf("首页->帮助\n\n");
printf(" 本系统操作简单,功能强大,但是任何试图输入不规范格式的行为可能会带来意想不到的后果,\n");
printf("为了您自身的的信息安全,请不要随意操作!\n");
printf("\n\n请按任意键继续!\n");
system("pause");
}
void Regard() //关于
{
system("cls");
printf("首页->关于\n\n");
printf(" 本系统由制作者呕心泣血通宵达旦写成,请尊重我们的劳动成果,严禁盗版,翻录必究!\n");
printf("\n\n请按任意键继续!\n");
system("pause");
}

#include<stdio.h>
#include<windows.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#define LEN sizeof(struct students)
#ifndef STUDENT
#define STUDENT
struct students{
int Number;
char Name[10];
char Sex[5];
int Age;
float Chinese;
float math;
float English;
float Sum;
float Average;
struct students *Next;
}z[30];
struct students *p1,*p2,*head,*p;
FILE *fp,*jp;
#endif

#include<stdio.h>
#include<windows.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include"STUDENT.h"
struct students *qq,*q,*headq,*qq0,*q0;
void L8(){
system("cls");

char wen[10];
printf("请输入要存储所有学生信息的文件名:\n");
scanf("%s",wen);
if((jp=fopen(wen,"w+"))==NULL){
printf("建立文件失败!按任意键退出!\n");system("pause");exit(0);
}
fprintf(jp,"学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");

if((fp=fopen("student.txt","r"))==NULL){
printf("打开文件失败!按任意键退出!\n");system("pause");exit(0);
}
qq=(struct students*)malloc(LEN);
qq->Next=NULL;
printf("学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");
while(EOF!=fscanf(fp,"%d\t%s\t%s\t%d\t%f\t%f\t%f\t%f\t%f\n",&qq->Number,qq->Name,qq->Sex,&qq->Age,&qq->Chinese,&qq->math,&qq->English,&qq->Sum,&qq->Average)) {
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
}
free(qq);
qq=NULL;
fclose(fp);
fclose(jp);

}
void L1(){
float c=0.0,m=0.0,e=0.0,s=0.0;
int k=0;
char wen[10];
system("cls");
printf("请输入要存储所有学生信息的文件名:\n");
scanf("%s",wen);
if((jp=fopen(wen,"w+"))==NULL){
printf("建立文件失败!按任意键退出!\n");system("pause");exit(0);
}
fprintf(jp,"\t\t语文成绩\t数学成绩\t英语成绩\n");

qq=(struct students*)malloc(LEN);
if((fp=fopen("student.txt","r"))==NULL){
printf("打开文件失败!按任意键退出!\n");system("pause");exit(0);
}
printf("\t\t语文成绩\t数学成绩\t英语成绩\n");
while(EOF!=fscanf(fp,"%d\t%s\t%s\t%d\t%f\t%f\t%f\t%f\t%f\n",&qq->Number,qq->Name,qq->Sex,&qq->Age,&qq->Chinese,&qq->math,&qq->English,&qq->Sum,&qq->Average)) {
c+=qq->Chinese;m+=qq->math;e+=qq->English;s+=qq->Sum;
k++;
}
free(qq);
qq=NULL;
printf("总分:\t\t%.2f\t\t%.2f\t\t%.2f\t\t\n",c,m,e);
fprintf(jp,"总分:\t\t%.2f\t\t%.2f\t\t%.2f\t\t\n",c,m,e);
printf("平均分:\t%.2f\t\t%.2f\t\t%.2f\t\t\n",c/k,m/k,e/k);
fprintf(jp,"平均分:\t%.2f\t\t%.2f\t\t%.2f\t\t\n",c/k,m/k,e/k);
fclose(fp);
fclose(jp);
}
void L2(){
system("cls");
int k=0,i,l=0;
char wen[10];
printf("请输入要存储所有学生信息的文件名:\n");
scanf("%s",wen);
if((jp=fopen(wen,"w+"))==NULL){
printf("建立文件失败!按任意键退出!\n");system("pause");exit(0);
}
fprintf(jp,"学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");

qq=(struct students*)malloc(LEN);
headq=qq;
if((fp=fopen("student.txt","r"))==NULL){
printf("打开文件失败!按任意键退出!\n");system("pause");exit(0);
}
printf("学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");
while(1) {
if(EOF!=fscanf(fp,"%d\t%s\t%s\t%d\t%f\t%f\t%f\t%f\t%f\n",&qq->Number,qq->Name,qq->Sex,&qq->Age,&qq->Chinese,&qq->math,&qq->English,&qq->Sum,&qq->Average)){
q=(struct students*)malloc(LEN);
qq->Next=q;
qq=q;
k++;
}
else{
qq->Next=NULL;
break;
}
}
fclose(fp);
qq=headq;
if(k==1){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fclose(jp);
}
else if(k==2){
q=qq->Next;
if(qq->Sum<q->Sum){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",q->Number,q->Name,q->Sex,q->Age,q->Chinese,q->math,q->English,q->Sum,q->Average);
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",q->Number,q->Name,q->Sex,q->Age,q->Chinese,q->math,q->English,q->Sum,q->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
}
else{
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",q->Number,q->Name,q->Sex,q->Age,q->Chinese,q->math,q->English,q->Sum,q->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",q->Number,q->Name,q->Sex,q->Age,q->Chinese,q->math,q->English,q->Sum,q->Average);
}
fclose(jp);
}
else if(k>2){
for(i=1;i<=k;i++){
qq=headq;
while(qq->Next!=NULL){
l++;
if(l==1){
q=qq->Next;
if(qq->Sum<q->Sum){
headq=q;
qq0=headq;
qq->Next=q->Next;
q->Next=qq;
}
else{
qq0=qq;
qq=q;
}
}
else{
q=qq->Next;
if(qq->Sum<q->Sum){
qq->Next=q->Next;
q->Next=qq;
qq0->Next=q;
qq0=q;
}
else{
qq0=qq;
qq=q;
}

}
}
l=0;
}
qq=headq;
while(qq->Next!=NULL){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
qq=qq->Next;
}
fclose(jp);
}

}
void L3(){
system("cls");
int k=0,i,l=0;
char wen[10];
printf("请输入要存储所有学生信息的文件名:\n");
scanf("%s",wen);
if((jp=fopen(wen,"w+"))==NULL){
printf("建立文件失败!按任意键退出!\n");system("pause");exit(0);
}
fprintf(jp,"学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");

qq=(struct students*)malloc(LEN);
headq=qq;
if((fp=fopen("student.txt","r"))==NULL){
printf("打开文件失败!按任意键退出!\n");system("pause");exit(0);
}
printf("学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");
while(1) {
if(EOF!=fscanf(fp,"%d\t%s\t%s\t%d\t%f\t%f\t%f\t%f\t%f\n",&qq->Number,qq->Name,qq->Sex,&qq->Age,&qq->Chinese,&qq->math,&qq->English,&qq->Sum,&qq->Average)){
q=(struct students*)malloc(LEN);
qq->Next=q;
qq=q;
k++;
}
else{
qq->Next=NULL;
break;
}
}
fclose(fp);
qq=headq;
if(k==1){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fclose(jp);
}
else if(k==2){
q=qq->Next;
if(qq->Number<q->Number){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",q->Number,q->Name,q->Sex,q->Age,q->Chinese,q->math,q->English,q->Sum,q->Average);
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",q->Number,q->Name,q->Sex,q->Age,q->Chinese,q->math,q->English,q->Sum,q->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
}
else{
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",q->Number,q->Name,q->Sex,q->Age,q->Chinese,q->math,q->English,q->Sum,q->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",q->Number,q->Name,q->Sex,q->Age,q->Chinese,q->math,q->English,q->Sum,q->Average);
}
fclose(jp);
}
else if(k>2){
for(i=1;i<=k;i++){
qq=headq;
while(qq->Next!=NULL){
l++;
if(l==1){
q=qq->Next;
if(qq->Number<q->Number){
headq=q;
qq0=headq;
qq->Next=q->Next;
q->Next=qq;
}
else{
qq0=qq;
qq=q;
}
}
else{
q=qq->Next;
if(qq->Number<q->Number){
qq->Next=q->Next;
q->Next=qq;
qq0->Next=q;
qq0=q;
}
else{
qq0=qq;
qq=q;
}

}
}
l=0;
}
qq=headq;
while(qq->Next!=NULL){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
qq=qq->Next;
}
fclose(jp);
}
}
void L4(){
system("cls");
char max[30][10],t[10];
int i,k=0,j;

char wen[10];
printf("请输入要存储所有学生信息的文件名:\n");
scanf("%s",wen);
if((jp=fopen(wen,"w+"))==NULL){
printf("建立文件失败!按任意键退出!\n");system("pause");exit(0);
}
fprintf(jp,"学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");

qq=(struct students*)malloc(LEN);
headq=qq;
if((fp=fopen("student.txt","r"))==NULL){
printf("打开文件失败!按任意键退出!\n");system("pause");exit(0);
}
printf("学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");
while(1) {
// printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
if(EOF!=fscanf(fp,"%d\t%s\t%s\t%d\t%f\t%f\t%f\t%f\t%f\n",&qq->Number,qq->Name,qq->Sex,&qq->Age,&qq->Chinese,&qq->math,&qq->English,&qq->Sum,&qq->Average)){
strcpy(max[k],qq->Name);
q=(struct students*)malloc(LEN);
qq->Next=q;
qq=q;
k++;
}
else{
qq->Next=NULL;
break;
}
}
fclose(fp);
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
if(strcmp(max[i],max[j])==1)
{
strcpy(t,max[i]);
strcpy(max[i],max[j]);
strcpy(max[j],t);
}
for(i=0;i<k;i++){
qq=headq;
for(j=0;j<k;j++)
if(strcmp(qq->Name,max[i])==0){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
fprintf(jp,"%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
break;
}
else qq=qq->Next;
}
fclose(jp);

}
void L5(){
system("cls");
int a,t=0,i,k=0;
printf("请输入您想搜索的学生学号:\n");
scanf("%d",&a);
system("cls");
qq=(struct students*)malloc(LEN);
headq=qq;
if((fp=fopen("student.txt","r"))==NULL){
printf("打开文件失败!按任意键退出!\n");system("pause");exit(0);
}
printf("学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");
while(1) {
// printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
if(EOF!=fscanf(fp,"%d\t%s\t%s\t%d\t%f\t%f\t%f\t%f\t%f\n",&qq->Number,qq->Name,qq->Sex,&qq->Age,&qq->Chinese,&qq->math,&qq->English,&qq->Sum,&qq->Average)){
q=(struct students*)malloc(LEN);
qq->Next=q;
qq=q;
k++;
}
else{
qq->Next=NULL;
break;
}
}
fclose(fp);
qq=headq;
for(i=0;i<k;i++){
if(a==qq->Number){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
t=1;
break;
}
else qq=qq->Next;
}
if(t!=1)printf("没有该生信息!\n");
}
void L6(){
system("cls");
char a[10];
int k=0,t,i;
printf("请输入您想搜索的学生姓名:\n");
scanf("%s",a);
system("cls");
qq=(struct students*)malloc(LEN);
headq=qq;
if((fp=fopen("student.txt","r"))==NULL){
printf("打开文件失败!按任意键退出!\n");system("pause");exit(0);
}
printf("学号\t\t姓名\t\t性别\t年龄\t语文成绩\t数学成绩\t英语成绩\t总分\t\t平均分\n");
while(1) {
// printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
if(EOF!=fscanf(fp,"%d\t%s\t%s\t%d\t%f\t%f\t%f\t%f\t%f\n",&qq->Number,qq->Name,qq->Sex,&qq->Age,&qq->Chinese,&qq->math,&qq->English,&qq->Sum,&qq->Average)){
q=(struct students*)malloc(LEN);
qq->Next=q;
qq=q;
k++;
}
else{
qq->Next=NULL;
break;
}
}
fclose(fp);
qq=headq;
for(i=0;i<k;i++){
if(strcmp(a,qq->Name)==0){
printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
t=1;
break;
}
else qq=qq->Next;
}
if(t!=1)printf("没有该生信息!\n");
}
void L7(){
system("cls");
int c[5],m[5],e[5],s[5];
int i,k=0;
for(i=0;i<5;i++){
c[i]=0;
e[i]=0;
m[i]=0;
}
system("cls");

char wen[10];
printf("请输入要存储所有学生信息的文件名:\n");
scanf("%s",wen);
if((jp=fopen(wen,"w+"))==NULL){
printf("建立文件失败!按任意键退出!\n");system("pause");exit(0);
}

qq=(struct students*)malloc(LEN);
headq=qq;
if((fp=fopen("student.txt","r"))==NULL){
printf("打开文件失败!按任意键退出!\n");system("pause");exit(0);
}
while(1) {
// printf("%d\t%s\t\t%s\t%d\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",qq->Number,qq->Name,qq->Sex,qq->Age,qq->Chinese,qq->math,qq->English,qq->Sum,qq->Average);
if(EOF!=fscanf(fp,"%d\t%s\t%s\t%d\t%f\t%f\t%f\t%f\t%f\n",&qq->Number,qq->Name,qq->Sex,&qq->Age,&qq->Chinese,&qq->math,&qq->English,&qq->Sum,&qq->Average)){
//11.按优秀(100-90)、良好(89-80)、中等(79-70)、及格(69-60)、不及格(59-0)5个类别,对每门课程分别统计每个类别的人数以及所占的百分比;并将计算结果输出到文件,文件名可由键盘输入。
if(qq->Chinese>=90)c[0]++;
else if(qq->Chinese>=80)c[1]++;
else if(qq->Chinese>=70)c[2]++;
else if(qq->Chinese>=60)c[3]++;
else if(qq->Chinese<60)c[4]++;
if(qq->math>=90)m[0]++;
else if(qq->math>=80)m[1]++;
else if(qq->math>=70)m[2]++;
else if(qq->math>=60)m[3]++;
else if(qq->math<60)m[4]++;
if(qq->English>=90)e[0]++;
else if(qq->English>=80)e[1]++;
else if(qq->English>=70)e[2]++;
else if(qq->English>=60)e[3]++;
else if(qq->English<60)e[4]++;
q=(struct students*)malloc(LEN);
qq->Next=q;
qq=q;
k++;
}
else{
qq->Next=NULL;
break;
}
}
fclose(fp);
printf("\t\t语文成绩\t数学成绩\t英语成绩\n"); fprintf(jp,"\t\t语文成绩\t数学成绩\t英语成绩\n");
printf("优秀人数\t%d\t\t%d\t\t%d\n",c[0],m[0],e[0]); fprintf(jp,"优秀人数\t%d\t\t%d\t\t%d\n",c[0],m[0],e[0]);
printf("优秀率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[0]/1.0/k,m[0]/1.0/k,e[0]/1.0/k); fprintf(jp,"优秀率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[0]/1.0/k,m[0]/1.0/k,e[0]/1.0/k);
printf("良好人数\t%d\t\t%d\t\t%d\n",c[1],m[1],e[1]); fprintf(jp,"良好人数\t%d\t\t%d\t\t%d\n",c[1],m[1],e[1]);
printf("良好率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[1]/1.0/k,m[1]/1.0/k,e[1]/1.0/k); fprintf(jp,"良好率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[1]/1.0/k,m[1]/1.0/k,e[1]/1.0/k);
printf("中等人数\t%d\t\t%d\t\t%d\n",c[2],m[2],e[2]); fprintf(jp,"中等人数\t%d\t\t%d\t\t%d\n",c[2],m[2],e[2]);
printf("中等率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[2]/1.0/k,m[2]/1.0/k,e[2]/1.0/k); fprintf(jp,"中等率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[2]/1.0/k,m[2]/1.0/k,e[2]/1.0/k);
printf("及格人数\t%d\t\t%d\t\t%d\n",c[3],m[3],e[3]); fprintf(jp,"及格人数\t%d\t\t%d\t\t%d\n",c[3],m[3],e[3]);
printf("及格率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[3]/1.0/k,m[3]/1.0/k,e[3]/1.0/k); fprintf(jp,"及格率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[3]/1.0/k,m[3]/1.0/k,e[3]/1.0/k);
printf("挂科人数\t%d\t\t%d\t\t%d\n",c[4],m[4],e[4]); fprintf(jp,"挂科人数\t%d\t\t%d\t\t%d\n",c[4],m[4],e[4]);
printf("挂科率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[4]/1.0/k,m[4]/1.0/k,e[4]/1.0/k); fprintf(jp,"挂科率\t\t%.2f\t\t%.2f\t\t%.2f\n",c[4]/1.0/k,m[4]/1.0/k,e[4]/1.0/k);

fclose(jp);
}

#include<stdio.h>
#include<windows.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include"STUDENT.h"
#define LEN sizeof(struct students)
void RegisterS()
{
p2=(struct students*)malloc(LEN);
p2->Next=NULL;
printf("请输入学号:\n");
scanf("%d",&p2->Number);
printf("请输入姓名:\n");
scanf("%s",p2->Name);
printf("请输入性别:\n");
scanf("%s",p2->Sex);
printf("请输入年龄:\n");
scanf("%d",&p2->Age);
printf("请输入语文成绩:\n");
scanf("%f",&p2->Chinese);
printf("请输入数学成绩:\n");
scanf("%f",&p2->math);
printf("请输入英语成绩:\n");
scanf("%f",&p2->English);
p2->Sum=p2->Chinese+p2->math+p2->English;
p2->Average=p2->Sum/3;
fp=fopen("student.txt","a");
fprintf(fp,"%d\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",p2->Number,p2->Name,p2->Sex,p2->Age,p2->Chinese,p2->math,p2->English,p2->Sum,p2->Average);
free(p2);
fclose(fp);

}

时间: 2024-10-12 04:43:41

修改了一下 感觉比上一次好的相关文章

学习Git的一点心得以及如何把本地修改、删除的代码上传到github中

一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Git的常用命令. 二:学习Git中远程仓库的问题: Git的远程仓库:就是管理你代码的地方,这个是Github中提供的有,只要你在Github中注册一下你就可以获得无限个Git的远程仓库. 我的Github中的远程仓库如下图所示: 对远程仓库我首先理解为:在Gitbash中敲一个命令:Git init

修改 ueditor1_4_3-utf8-php 它的图片上传地址

本来是这样的 至少应该是在,myapp目录下吧,从myapp文件夹,我的网站才刚开始啊...你让我将来怎么设置?麻烦... 找到uploader的文件 $rootPath = $_SERVER['DOCUMENT_ROOT']; 是不是这个? 百度一下 php几个预定义变量$_SERVER['DOCUMENT_ROOT'] <?php echo 'documentroot:'.$_SERVER['DOCUMENT_ROOT'].'<br>'; //根目录,在apache的配置文件里定义:

WPF | 修改鼠标停留在Button上时的Style

这里用到属性触发器,当Button的IsMouseOver属性值为True时,我们对其样式进行修改,这里以修改Button背景色为例. 首先是启动后未触发时的效果图: 我一开始想到的就是直接修改其Background属性,代码如下: <Button Height="30" Width="150" BorderBrush="{x:Null}" BorderThickness="0"> <Button.Style

修改phpmyadmin文件的最大上传大小

修改php.ini 1.file_uploads on 是否允许通过HTTP上传文件的开关 2.upload_tmp_dir 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 3.upload_max_filesize 20m 望文生意,即允许上传文件大小 4.post_max_size 30m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值. 上传>8M的大体积文件,只设置上述四项还一定能行的通.除非你的网络真有100M/S的上传高速,否则你还得继续

客户端无法退出AD域控,无法修改计算机名字(服务器上的安全数据没有此工作站信任关系的计算机账户!)

今天早上有一台客户机,昨天使用人修改自己的密码后,发现无法登陆,提示:服务器上的安全数据没有此工作站信任关系的计算机账户!后排查发现,既无法退域,也无法修改DNS后缀,也无法修改计算机名字! 解决办法: 经过多次研究,已经搞定,网上已经有的办法我就不说了,大家或许会发现基本上没有用,我用的办法是:1.在域控上删除这台电脑的计算机名字,同时在dns服务器上删除他的DNS解析记录:2.重新获取IP,并且客户端重新注册DNS:ipconfig /registerdns 3.在AD上重置该用户的密码:4

gitlab连接并批量修改数据库账号邮箱地址(上)

最近,由于公司的域名发生变化,导致需要批量修改gitlab的账号.这个工作对于运维人员来说,工作量还是相对较大的.因此,尝试通过脚本修改数据库的方式进行批量修改. 整个过程大致分为几个阶段: 1)搞清楚gitlab的数据库结构 2)使用Python对相关的字段进行修改,若发现以@xxx结尾的域名,自动替换为@aaa的域名 注:本文中所采用的gitlab安装方式为官方默认的yum安装 1)gitlab的数据库采用的是postgresql,连接库时需要修改pg_hba.conf文件的相关配置 vim

利用Aspose.Pdf将扫描的电子书修改为适合在kindle上查看

很多扫描版的电子书,留有很大的页边距,大屏的设备看起来没有啥影响,可是在kindle上看起来就麻烦了,放大操作简直就没法用,最好能把留白去掉. 将pdf文件转换为图片这个看看 例子里的 JpegDevice就可以了 设置需要裁剪的区域首先将图片显示在pictureBox上,然后用鼠标画个差不多的框就可以了,可能有方法识别书籍的内容区,那个我不会.潜在的问题是有的书籍扫描得不是很好,偏得比较多,可能会导致内容被删除, 将图片组装为pdf书有个特殊的地方是dpi问题,计算像素的时候,Aspose.P

raspbian修改swap分区为硬盘上的分区

一直以为raspbian的swap分区和平常装系统时候的swap分区是一样的,最近用u盘插在树莓派上运行后发现这个交换分区和我想象中不一样. 百度后发现它是一个文件挂上去的.直接搞把! [email protected]:~ $ swapon -s Filename                                Type            Size    Used    Priority /var/swap                               file

CKeditor七牛云JS SDK前端上传插件修改

七牛云官方有放出JS SDK,没有我想使用的CKeditor前端上传插件,所以结合七牛官方的Javascript SDK对CKeditor做了一些修改使它能够直接上传到七牛云,又同时保留了上传到本地服务的接口. 优点和缺点1.在前端上传到七牛云,不消耗服务器带宽和流量.空间.2.保留了CKeditor上传到自己服务器的能力.3.支持拖拽和剪切板黏贴图片上传(因为是保存为png格式,建议只黏贴色彩单调的图片,要不然图片会很大,浪费流量).4.拖拽和剪切板黏贴图片.不支持4M以上的文件,因为没有分块