写好了视图

This commit is contained in:
lsy2246 2024-01-02 00:43:38 +08:00
parent 00a0f92ff3
commit e16dbaea48
9 changed files with 388 additions and 15 deletions

View File

@ -0,0 +1,21 @@
#ifndef GLOBAL_VARIABLES_H //检查函数有没有被声明
#define GLOBAL_VARIABLES_H //定义宏
struct Personal_Information//定义个人信息结构体变量
{
unsigned int id;//编号
char name[20];//姓名
bool sex;//性别
unsigned int student_id;//学号
unsigned int class;//班级
unsigned int year;//入学年份
char phone[11];//手机号
unsigned int course_number[20];//课程编号
};
extern struct Personal_Information that_person;//当前的联系人
extern bool pick_revision;//判断文件有没有修改完成
extern bool pick_view_mode;//判断查看视图的模式
extern unsigned Total;//学生总数
#endif //GLOBAL_VARIABLES_H

View File

@ -1,15 +1,19 @@
#ifndef EFFECT_KEYSTROKE_H //检查宏有没有被定义过
#define EFFECT_KEYSTROKE_H //定义宏
//按键ascll码定义
#define UP 72 // 方向键:上
#define DOWN 80 // 方向键:下
#define LEFT 75 // 方向键:左
#define RIGHT 77 // 方向键:右
#define CTRL_A 1 // 功能键: Ctrl+A
#define CTRL_D 4 // 功能键: Ctrl+D
#define CTRL_S 19 // 功能键: Ctrl+S
#define CTRL_F 6 // 功能键: Ctrl+F
#define ESC 27 // 功能键: ESC
#define TAB 9 // 功能键: TAB
#define ENTER 13 //功能键: Enter
#define CTRL_A 1 // 功能键: 上一夜
#define CTRL_D 4 // 功能键: 下一页
#define CTRL_S 19 // 功能键:保存
#define CTRL_F 6 // 功能键:查找
#define CTRL_Z 26 // 功能键:重新读档
#define ESC 27 // 功能键:退出
#define TAB 9 // 功能键:切换
#define ENTER 13 // 功能键:回车
#define DELETE 127// 功能键:删除
#endif //EFFECT_KEYSTROKE_H

View File

@ -1,6 +1,6 @@
#include <windows.h>
void HideCursor ()//隐藏光标
void HideCursor ( void )//隐藏光标
{
CONSOLE_CURSOR_INFO curInfo; //定义光标信息的结构体变量
curInfo . dwSize = 1; //如果没赋值的话,光标隐藏无效

View File

@ -1,5 +1,9 @@
#ifndef FUNCTION_STATEMENT_PAGE_H //检查宏有没有被定义过
#define FUNCTION_STATEMENT_PAGE_H //定义宏
void system_start(void);//管理系统主页
void newly_built(void);//新增联系人页面
void print_view_mode1(void);//打印视图模式
void print_view_mode2(void);//打印列表模式
#endif //FUNCTION_STATEMENT_PAGE_H

View File

@ -2,6 +2,7 @@
#define FUNCTION_STATEMENT_EFFECT_H //定义宏
#include "effect_keystroke.h"//包含按键头文件
#include "Global_variables.h"//包含全局变量头文件
void HideCursor ();//隐藏光标

View File

@ -2,17 +2,23 @@
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
//自定义头文件
#include "founction_statement_page.h"//界面
#include "function_statement_effect.h"//功能
//初始化全局变量
bool pick_revision = true;//初始化文件是否修改
bool pick_view_mode = false;//视图模式
unsigned int Total =0;//初始化学生总数
//主函数
int main ( void )
{
//定义变量
char start_pick='0';//开始的选择
static char start_pick='0';//开始的选择
srand((unsigned)time(NULL));
while(1)
{
//打印菜单
@ -20,7 +26,15 @@ int main ( void )
system ( "cls" );//清屏
printf ( "\n\n\n\n\n\n\n\n" );
color(2);//设置颜色
printf ("\t\t\t\t\t\t————欢迎使用学生管理系统————\n");
printf ("\t\t\t\t\t\t 欢迎使用学生管理系统\n");
printf ("\t\t\t\t\t\t");
for ( int i = 0 ; i < 28 ; ++ i )
{
color(rand()%9+1);//设置颜色
printf ("");
}
printf("\n");
color(1);//设置颜色
printf ("\t\t\t\t\t\t[Enter]");
color(7);//设置颜色
@ -32,13 +46,17 @@ int main ( void )
color(4);//设置颜色
printf ("\t\t\t\t\t\t按下相应按键进入对应模式\n");
//获取用户的输入
start_pick=(char)_getch();
if(_kbhit())
{
start_pick=(char)_getch();
}
//判断用户输入
switch(start_pick)
{
case ENTER:
{
start_pick='0';
system_start();//管理系统主页
break;
}
case ESC:
@ -46,7 +64,7 @@ int main ( void )
return 0;
}
}
Sleep(2);
}
return 0;
}
}

View File

@ -0,0 +1,13 @@
//头文件
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
//自定义头文件
#include "function_statement_effect.h"//功能
void newly_built(void)
{
}

View File

@ -0,0 +1,107 @@
//头文件
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
//自定义头文件
#include "founction_statement_page.h"//界面
#include "function_statement_effect.h"//功能
struct Personal_Information that_person={1,"梁师谊",true,2023150,1,2020,"18888888888",{1,2,3}};//当前的联系人
void print_view_mode1(void)//打印视图模式
{
//将原来的清空
for ( int i = 3 ; i < 28 ; ++ i )
{
for ( int j = 0 ; j < 100 ; ++ j )
{
CursorJump ( i , j );//位置跳转
printf (" ");
}
}
//打印
CursorJump ( 3 , 0 );//位置跳转
color(7);
printf ("编号 ");
printf ("姓名\t");
printf ("性别 ");
printf ("学号\t");
printf ("班级\t");
printf ("入学年份 ");
printf ("手机号码\t");
printf ("选课编号");
for ( int i = 5 ; i < 27 ; i+=2 )
{
//编号
CursorJump ( i , 0 );//位置跳转
color (10);
printf ("%d ",that_person.id);
//姓名
CursorJump ( i , 6 );//位置跳转
color (13);
printf ("%s",that_person.name);
//性别
CursorJump ( i , 16 );//位置跳转
if(that_person.sex)
{
color (11);
printf ("");
}
else
{
color (12);
printf ("");
}
//学号
CursorJump ( i , 22 );//位置跳转
color (9);
printf ("%d",that_person.student_id);
//班级
CursorJump ( i , 32 );//位置跳转
color (14);
printf ("%d班",that_person.class);
//入学年份
CursorJump ( i , 40 );//位置跳转
color (9);
printf ("%d年",that_person.year);
//电话号码
CursorJump ( i , 50 );//位置跳转
color (15);
printf ("%s",that_person.phone);
CursorJump ( i , 64 );//位置跳转
for ( int j = 0 ; that_person.course_number[j] != '\0' ; ++ j )
{
if(j>0)
{
color (12);
printf (",");
}
color (11);
printf ("%d",that_person.course_number[j]);
}
}
}
void print_view_mode2(void)//打印列表模式
{
//将原来的清空
for ( int i = 3 ; i < 28 ; ++ i )
{
for ( int j = 0 ; j < 100 ; ++ j )
{
CursorJump ( i , j );//位置跳转
printf (" ");
}
}
for ( int i = 4 ; i < 28 ; i+=2 )
{
for ( int j = 6 ; j < 92 ; j+=10 )
{
CursorJump ( i , j );//位置跳转
color (11);
printf ("%s",that_person.name);
}
}
}

View File

@ -0,0 +1,205 @@
//头文件
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
//自定义头文件
#include "founction_statement_page.h"//界面
#include "function_statement_effect.h"//功能
static void printf_start_image ( void )//打印图像信息
{
//上边按键信息
system ( "cls" );//清屏
color ( 10 );
printf ( "\t\t\t学生管理\n" );
color ( 14 );
printf ( "[ESC] " );
color ( 12 );
printf ( "退出 " );
color ( 14 );
printf ( "[CTRL+Z] " );
color ( 12 );
printf ( "重新读档 " );
color ( 14 );
printf ( "[CTRL+S] " );
color ( 12 );
printf ( "保存修改 " );
color ( 14 );
printf ( "[TAB] " );
color ( 12 );
printf ( "切换视图 " );
color ( 14 );
printf ( "[WSAD/箭头键] " );
color ( 12 );
printf ( "移动选择 " );
color ( 14 );
printf ( "[CTRL+A/D] " );
color ( 12 );
printf ( "翻页\n" );
//打印边界
color ( 15 );
for ( int i = 0 ; i < 100 ; ++ i )//上面的
{
printf ( "" );
}
for ( int i = 0 ; i < 100 ; ++ i )//底部
{
CursorJump ( 28 , i );//位置跳转
printf ( "" );
}
for ( int i = 0 ; i < 30 ; ++ i )
{
CursorJump ( i , 100 );//位置跳转
printf ( "|" );
}
for ( int i = 101 ; i < 120 ; ++ i )//个人信息那里
{
CursorJump ( 5 , i );//位置跳转
printf ( "" );
}
CursorJump ( 6 , 104 );//位置跳转
color ( 13 );
printf ( "学生个人信息" );
CursorJump ( 28 , 45 );//位置跳转
color ( 13 );
printf ( "状态栏" );
//打印右边按键信息
CursorJump ( 0 , 101 );//位置跳转
color ( 14 );
printf ( "[N]" );
color ( 12 );
printf ( " 新建学生" );
CursorJump ( 1 , 101 );//位置跳转
color ( 14 );
printf ( "[F]" );
color ( 12 );
printf ( " 查找学生" );
CursorJump ( 2 , 101 );//位置跳转
color ( 14 );
printf ( "[E]" );
color ( 12 );
printf ( " 编辑信息" );
CursorJump ( 3 , 101 );//位置跳转
color ( 14 );
printf ( "[Q]" );
color ( 12 );
printf ( " 查看成绩" );
CursorJump ( 4 , 101 );//位置跳转
color ( 14 );
printf ( "[Delete] " );
color ( 12 );
printf ( "删除学生" );
//底部信息
CursorJump ( 29 , 0 );//位置跳转
color(9);
printf (" 当前状态:");
if(pick_revision)
{
color(11);
printf("未修改\t");
}
else
{
color(11);
printf("未保存\t");
}
color(9);
printf ("学生总数:");
color(11);
printf("%d\t",Total);
if(pick_view_mode)
{
color(9);
printf ("视图模式:");
color(11);
printf("详细模式\t");
}
else
{
color(9);
printf ("视图模式:");
color(11);
printf("列表模式\t");
}
color(9);
printf ("选择编号:");
color(11);
printf("%d\t",that_person.id);
color(9);
printf ("");
color(11);
printf("%d/%d",that_person.id%10,Total%10);
color(9);
printf ("");
//打印时间
color ( 11 );
CursorJump ( 0 , 50 );//位置跳转
time_t now_time;
time ( & now_time );
printf ( "当前时间为:%s\n" , asctime ( gmtime ( & now_time ) ) );
}
void system_start ( void )
{
printf_start_image ( );//打印图像信息
if(pick_view_mode)//打印视图模式
{
print_view_mode1();//打印视图模式
}
else
{
print_view_mode2();//打印列表模式
}
while ( 1 )
{
//更新时间
color ( 11 );
CursorJump ( 0 , 50 );//位置跳转
time_t now_time;
time ( & now_time );
printf ( "当前时间为:%s\n" , asctime ( gmtime ( & now_time ) ) );
//接收用户输入
if ( _kbhit ( ) )
{
static char tmp_input;//临时接收输入
tmp_input=(char)_getch();//接收用户的输入
if(tmp_input==ESC)
{
if(pick_revision)
{
return;
}
else
{
MessageBox(0,"修改未保存","警告",0);
}
}
else if(tmp_input ==TAB)
{
if(pick_view_mode)//打印视图模式
{
pick_view_mode=false;
print_view_mode1();//打印视图模式
}
else
{
pick_view_mode=true;
print_view_mode2();//打印列表模式
}
}
else if(tmp_input=='N'||tmp_input=='n')
{
newly_built();//新增联系人页面
}
}
}
}