登录

在这个站点登录

保存我的登录记录

<<忘记密码?

还没有账号?点此注册>>

Jerry

学生成绩管理系统-MySQL版-Part3-自定义效果函数

分享到:

本文已被浏览4007

为了让整个程序在外观上尽可能的好看,减少开发过程中繁琐的代码编写,每一个大项目都会事先定义一些常用的函数,在后面会更方便使用某个固定的过程.

这个作品中只定义了12个自定义函数,分了两个文件:Console.c和Myfunc.c.第一个文件是主要和控制台窗口相关的内容,第二个是一些其他的小函数.

首先这是第一个Console.c

#include <stdio.h>
#include <stdlib.h>
//只添加这俩就够了
//控制台格式操作
//更改窗体标题
void ChangeWindowTitle(const char *title){
    char cmdline[50];
    sprintf(cmdline,"title 学生成绩管理系统(MySQL)-%s",title);
    system(cmdline);
}
//更改窗体大小
void ChangeWindowSize(int Width,int Height){
    char cmdline[50];
    sprintf(cmdline,"mode con: cols=%d lines=%d",Width,Height);
    system(cmdline);
}
//暂停按任意键继续,0为不提示字,非0为提示字
void Pause(int mode){
    if(mode==0){
        system("pause>nul");
    }else{
        system("pause");
    }
}
//清屏
void CS(){
    system("cls");
}
//改屏幕颜色
void ChangeColorScreen(const char *color){
    char cmd[9];
    sprintf(cmd,"color %s",color);
    system(cmd);
}
//这个是从网上搜的按照块更改颜色,具体咋整的不太清楚,会用就行...
#include "JR_Color.h"
//按块更改颜色
static int isInitColor = 0;
HANDLE Handle_Color;    //输出窗口句柄
void initColor(){
    if(isInitColor) return ;
    isInitColor = 1;
    Handle_Color = GetStdHandle(STD_OUTPUT_HANDLE);
}
/*
    0 = 黑色      1 = 白色
    2 = 军绿色    3 = 蓝绿色
    4 = 深红色    5 = 紫色
    6 = 黄绿色    7 = 灰色
    8 = 深灰色    9 = 蓝色
    10 = 绿色    11 = 亮蓝色
    12 = 红色    13 = 粉紫色
    14 = 黄色    15 = 白色
*/
void JR_SetColor(int textcolor, int bgcolor){
    int color = textcolor + bgcolor * 16;
    initColor();
    SetConsoleTextAttribute(Handle_Color, color);
}

这一个文件是从晚上扒拉来的,具体怎么个工作原理不太清楚了

/*
* JR_Color.h (1.0)
* 字条界面颜色控制函数定义
*
* By Eric-JR Chen
* diamont1001@163.com
* 2011-6-1
*/

#ifndef JR_COLOR_H
#define JR_COLOR_H

#include <windows.h>

#define BLACK           0   //黑色
#define WHITE           1   //白色
#define ARMY_GREEN      2   //军绿色
#define BLUE_GREEN      3   //蓝绿色
#define DEEP_RED        4   //深红色
#define PURPLE          5   //紫色
#define YELLOW_GREEN    6   //黄绿色
#define GREY            7   //灰色
#define DARK_GREY       8   //深灰色
#define BLUE            9   //蓝色
#define GREEN           10  //绿色
#define BRIGHT_BLUE     11  //亮蓝色
#define RED             12  //红色
#define LIGHT_PURPLE    13  //粉紫色
#define YELLOW          14  //黄色
#define OFF_WHITE       15  //米白色


/* 设置输出颜色 */
void JR_SetColor(int textcolor, int bgcolor);

#endif

这是第二个文件MyFunc.c

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <string.h>

void ChangeColorScreen(const char *color);
void ChangeWindowSize(int Width,int Height);
void ChangeWindowTitle(const char *title);
void CS();
//读取密码,屏幕不回显
void scanPass(char *p) {
	int i=0;
	while((p[i]=getch())) {
		if(p[i]==13) break;
		if(p[i]!='b') {
			printf("*");
			i++;
		} else {
			if(i>0) {
				printf("b b");
				i--;
			}
		}
	}
	p[i]='\0';
}
//计算int长度
int Sum_ints(int number) {
	int a=0;
	if(number==0) {
		return 1;
	}
	while(number>0) {
		a++;
		number=number/10;
	}
	return a;
}
//退出部分
void Exit() {
	char select;
	printf("");
	ChangeColorScreen("4f");
	ChangeWindowSize(63,12);
	ChangeWindowTitle("退出");
	CS();
	printf("╔═════════════════════════════╗n");
	printf("║                      学生成绩管理系统                    ║n");
	printf("║                                                基于MySQL ║n");
	printf("╟─────────────────────────────╢n");
	printf("║                    确定要退出本系统么?                   ║n");
	printf("║                确定请按[Y]    否则请按[N]                ║n");
	printf("╟─────────────────────────────╢n");
	printf("║                   JerrySoft Copyright.                   ║n");
	printf("╚═════════════════════════════╝n");
	select=getch();
	switch(select) {
		case 'y':
		case 'Y':
			ChangeColorScreen("2f");
			ChangeWindowSize(63,11);
			ChangeWindowTitle("退出");
			CS();
			printf("╔═════════════════════════════╗n");
			printf("║                      学生成绩管理系统                    ║n");
			printf("║                                                  MySQL版 ║n");
			printf("╟─────────────────────────────╢n");
			printf("║                       欢迎再次使用!                      ║n");
			printf("╟─────────────────────────────╢n");
			printf("║                   JerrySoft Copyright.                   ║n");
			printf("╚═════════════════════════════╝n");
			Sleep(3000);
			ChangeColorScreen("07");
			CS();
			exit(0);
		case 'n':
		case 'N':
			break;
		default:
			printf("");
			Exit();
			break;
	}
}
//替换字符串
void strrpl(char* pDstOut, char* pSrcIn, const char* pSrcRpl, const char* pDstRpl) {
	char* pi = pSrcIn;
	char* po = pDstOut;
	int nSrcRplLen = strlen(pSrcRpl);
	int nDstRplLen = strlen(pDstRpl);
	char *p = NULL;
	int nLen = 0;
	do {
		p = strstr(pi, pSrcRpl);
		if(p != NULL) {
			nLen = p - pi;
			memcpy(po, pi, nLen);
			memcpy(po + nLen, pDstRpl, nDstRplLen);
		} else {
			strcpy(po, pi);
			break;
		}
		pi = p + nSrcRplLen;
		po = po + nLen + nDstRplLen;

	}
	while (p != NULL);
}
//bing~~发出声响
void Ring(){
    printf("");
	//这个地方里面写的是ASCII对应为BELL的那个
}

有了这些函数,程序写起来会更容易些.

 手机扫描左边的二维码,立刻将文章收入手机!
 微信扫描左边二维码,点击右上角即可分享到朋友圈!
严禁任何非授权的采集与转载,转载须经站长同意并在文章显著位置标注本文连接,站长保留追究法律责任的权利.

评论

 您需要 先登录 才可以回复.