情報管理システム
A.コード部分
#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;
}
II。実行ショット
簡単な3 .system()関数
関数名:システム()(ヘッダファイルに追加する<STDLIB.H>呼び出されなければなりません)
機能:DOSコマンドを実行するために、実際に同等です
使用法:システム( "DOSコマンド");
ここではいくつかの用法です。
(1)システム( "色の色パラメータ")
役割:背景色と文字色の画面ウィンドウを変更
設定:2桁の16進数で指定された色属性、第1の背景色、テキストの色、第二と比較
各桁は次の値のいずれかになります。
パラメータ:0 =黒1青2 =ライトグリーン=緑= 3 = 4 = 5レッドイエローパープル= 6 = 7 = 8灰白色
9 =光、青色光、緑色A = B = C =光、緑色光赤紫色D = E = F =黄色光白明るいです
例えば:、ウィンドウ画面は背景色、青色として設定することができるコードシステム(「色9F」)を追加し、テキストの色は白に設定されています。
注:のみ与えられたパラメータは、唯一の背景色を設定した場合は1。例えば:システム(「カラー9」)、背景色が青色である、テキストの色の変化
2.などの所定のパラメータのいずれかの場合:システム(「カラー」)CMDの起動時に、コマンドは、色のデフォルトの色に戻ります
(2)システム( "休止")
役割:画面上でプログラムの実行の結果を観察するためにプログラムを停止させます
通常の状況下では、結果は、実行の後ろに表示されます。任意のキーを押して続行します...
この時間は非常に過敏である、強迫性障害ウォッチングので、非常に不幸になります...
プロンプトを表示したくない場合は、コマンドを使用して出力をリダイレクトすることができます。
system("pause >nul");
画面は、もはや「続行するには任意のキーを押し...」~~~~の先端に表示されません
注:これはNULで、NOT NULL!!!
より大きい>、このようなプリンタコマンドの結果として、他の装置に出力ファイルをリダイレクトすることを示し
nul是DOS中的一个虚拟的空设备,">nul"表示把命令产生的屏幕显示信息重定向(>)到虚拟空设备
(nul),这样在屏幕上就不会显示pause命令的执行结果了~~
(3)system("cls")
作用:清除屏幕信息...
(4)system("title 标题内容")
作用:为程序调试的DOS窗口加上标题
效果如下:、
(5)system("mode con cols=窗口长度 lines=窗口宽度")
作用:调整DOS窗口的高度和宽度
。。。
。。。
。。。
。。。