标签:属性 tle char s 调整 函数名 home lines 字体颜色 学生
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
typedef struct STU {
char name[20];
char sex[5];
char num[20];
char _class[20];
char score[5];
};
void home(void) { //显示进入画面
printf("\n\n\n\n");
printf("================================================================================\n\n");
printf("================================================================================\n\n");
printf("*************************欢迎使用学生成绩管理系统*******************************\n\n");
printf("-----------------------------------------------------------------制作人:Sogger\n\n");
printf("****************************----Welcome!----************************************\n\n");
printf("================================================================================\n\n");
printf("================================================================================\n\n");
printf(" 请按任意键进入学生成绩管理系统\n\n\n\n\n");
system("pause >nul");
system("cls");
}
void end(void) { //显示结束画面
printf("\n\n\n");
printf("================================================================================\n\n");
printf("================================================================================\n\n");
printf("*************************感谢使用学生成绩管理系统***********************************\n\n");
printf("********************************************************************************\n\n");
printf("================================================================================\n\n");
printf("请按任意键退出学生管理系统\n");
system("pause >nul");
exit(0);
}
void Output(struct STU* stu2) { //对成绩排行进行输出
system("cls");
int i;
printf(" 成绩排行如下\n\n");
printf("\t姓名\t性别\t学号\t\t班级\t\t线代成绩\n");
for (i = 0; i < 10; i++) {
printf(" %s %s %s %s %s\n", stu2[i].name, stu2[i].sex, stu2[i].num, stu2[i]._class, stu2[i].score);
}
}
void ScoreTotal(struct STU* stu) { //对成绩进行排行
struct STU temp;
int i,j;
for (i = 0; i < 9; i++) {
for (int j = i + 1; j < 10; j++) {
if (stu[j].score > stu[i].score) {
temp = stu[j];
stu[j] = stu[i];
stu[i] = temp;
}
}
}
Output(stu);
}
int main() {
FILE* fp;
STU stu[10],stu2[10];
int i,a;
char temp[10][20];
char stu1[10][100];
system("title 学生成绩管理系统"); //设置标题
system("mode con cols=80 lines=25"); //调节窗口高度宽度
system("color F5"); //调节背景和字体颜色
home();
for (i = 0; i < 10; i++) {
printf(" 请录入学生信息\n\n");
printf(" 学生%d\n\n", i+1);
printf(" 姓名\t性别\t学号\t\t班级\t\t线代成绩\n");
printf(" ");
scanf("%s %s %s %s %s", stu[i].name, stu[i].sex, stu[i].num, stu[i]._class, &stu[i].score);
strcpy(temp[i], stu[i].name);
strcat(temp[i], ".txt");
if ((fp = fopen(temp[i], "w+")) == NULL) {
printf("File open error!\n");
exit(0);
}
fprintf(fp, "%s %s %s %s %s", stu[i].name, stu[i].sex, stu[i].num, stu[i]._class, stu[i].score);
if (fclose(fp)) {
printf("Can not close the file!\n");
exit(0);
}
system("cls"); //清空当前界面
}
printf(" 以下是十位同学的信息\n\n");
printf("\t姓名\t性别\t学号\t\t班级\t\t线代成绩\n");
for (i = 0; i < 10; i++) {
if ((fp= fopen(temp[i], "r")) == NULL) {
printf("File open error!\n");
exit(0);
}
strcpy(stu2[i].name, stu[i].name);
fscanf(fp, "%s %s %s %s %s", stu2[i].name, stu2[i].sex, stu2[i].num, stu2[i]._class, stu2[i].score);
printf(" %s %s %s %s %s\n", stu2[i].name, stu2[i].sex, stu2[i].num, stu2[i]._class, stu2[i].score);
}
printf("\n\n\n 是否查看排行?\n 【1】是 【2】 否\n");
printf("\t\t\t\t");
scanf("%d", &a);
if (a == 1) ScoreTotal(stu2);
if (fclose(fp)) {
printf("Can not close the file!\n");
exit(0);
}
system("pause >nul"); //暂停且不显示任何东西
system("cls");
end();
return 0;
}
功能:实际上相当于执行一个DOS命令
? 用法: system("DOS命令");
? 下面介绍几个用法:
作用:改变屏幕窗口的背景色和文字颜色
参数选择:颜色属性由两个十六进制数字指定 ,第一个为背景色,第二个则为文字颜色
? 每个数字可以为以下任何值之一:
? 参数:0 = 黑色 1 = 蓝色 2 = 绿色 3 = 浅绿色 4 = 红色 5 = 紫色 6 = 黄色 7 = 白色 8 = 灰色
? 9 = 淡蓝色 A = 淡绿色 B = 淡浅绿色 C = 淡红色 D = 淡紫色 E = 淡黄色 F = 亮白色
如:添加代码 system("color 9F"),可以将屏幕窗口背景色设置为蓝色,文字颜色设置为白色。
? 注意:1. 如果只给定一个参数,则只设置背景色。如:system("color 9"),背景色为蓝色,文字颜色不变
? 2.如果没有给定任何参数,如:system("color"),该命令会将颜色还原到cmd启动时的默认颜色
? 作用:暂停程序运行,以便于在屏幕上观察程序的执行结果
? 正常情况下,在运行结果后面会显示:按任意键继续. . .
? 这时候就很烦躁了,强迫症看着会很不爽,于是...
? 如果不想显示提示,可以使用输出重定向命令:
system("pause >nul");
? 这样屏幕上就不再显示“按任意键继续. . .”的提示了~~~~
? 注意:是nul,不是null !!!
? 大于号>,表示将命令结果输出重定向到文件、打印机等其他设备中
? nul是DOS中的一个虚拟的空设备,">nul"表示把命令产生的屏幕显示信息重定向(>)到虚拟空设备
? (nul),这样在屏幕上就不会显示pause命令的执行结果了~~
? 作用:清除屏幕信息...
? 作用:为程序调试的DOS窗口加上标题
? 效果如下:、
? 作用:调整DOS窗口的高度和宽度
? 。。。
。。。
? 。。。
? 。。。
标签:属性 tle char s 调整 函数名 home lines 字体颜色 学生
原文地址:https://www.cnblogs.com/Sogger/p/12079999.html