今年的最后一篇博客,承接上篇,来谈谈管理系统中的各个功能具体是怎样实现的。
目录
一、知识说明
首先谈谈几个程序中很重要的元素:Sleep函数,system函数,goto函数,链表。
1、Sleep睡眠函数
使用它要添加一个<windows.h>头文件,用法很简单,Sleep(时间),这个时间在windows里是以毫秒为单位,Linux里以秒为单位。当编译器读到它时,将休眠这么长的时间再向下编译。
而我们可以利用它达成怎样一种效果呢?正常的打印一字符串,将瞬间全部显示出来,而用上Sleep,看以下代码:
void Tips(char a[])
{
int i;
for (i = 0; i < strlen(a); i++)
{
printf("%c", a[i]);
Sleep(30);
}
}
当我传入任何一个字符串,进入for循环,都将变成每打印一个字符就“暂停”30毫秒,连在一起,展示效果:
就像有人在不断地打字回你消息,程序是不是一下子就有了温度?举一反三,编写这样一个Tips函数后,整个程序中你所有想要打印在屏幕上作为提示的语句,都可以先存入一个字符数组中,然后需要提示的时候就写一个Tips(提示语句),这样就可以顺利打印啦。
2、system函数
它的功能有很多,头文件就是stdio.h。笔者目前就用了两个,分别是system("cls")和system("pause")。先说第一个,它的功能是清屏,将运行小黑框里的所有内容清除,再往下运行。当进入功能函数后,无论是自己输入还是程序提示,都会使屏幕上有非常多的内容,当你要再次进入菜单重新选择操作时,屏幕不是会显得很乱吗?这时候我们使用一个清屏函数,再打印菜单,就好像重新打开了一遍程序似的,而且上一次录入或更改的信息还保存着,非常nice。我们来看看效果:
而system("pause")是暂停函数,它不像Sleep一样过了时间就继续运行,它要你敲一下任意键才会“继续播放”,也起一个停顿的作用 。掌握它们以后,你就能在你程序的任何一个地方想清屏就清屏,想暂停就暂停啦。
3、goto函数
我们直接以主函数为例:
int main()
{
printf(" ");
char welcome[] = "欢迎使用Upping编写的学生成绩管理系统!\n";
char end[] = "系统即将关闭,期待您的下次使用!\n";
char wish[] = "祝您生活愉快";
Tips(welcome);
Sleep(1000);
A:
switch (Input())//灵活运用system函数,使每一次执行完菜单命令之后,都能清屏,使界面美观
{
case 1:
Enter();//录入功能
system("pause");
system("cls");
goto A;
case 2:
Enter();//增加功能(与录入同一函数)
system("pause");
system("cls");
goto A;
case 3:
Revise();//修改功能
system("pause");
system("cls");
goto A;
case 4:
Delete();//删除功能
system("pause");
system("cls");
goto A;
case 5:
Find();//查找功能
system("pause");
system("cls");
goto A;
case 6:
Statistic();//统计功能
system("pause");
system("cls");
goto A;
case 7:
Sort();//排序功能
system("pause");
system("cls");
goto A;
case 8:
Total_Level();//划分数线功能
system("pause");
system("cls");
goto A;
case 0: //当要退出程序时,归还动态申请存放信息的空间。
free(t);
free(pc);
printf(" ");
Tips(end);
Sleep(1000);
printf(" ");
Tips(wish);
Sleep(1000);
system("cls");
}
return 0;
}
你会发现在Switch上方有一个“A:”,而每个case里都要执行goto A语句,其实它的用法也非常好理解。就是就是goto——去往A点。不用任何判断条件的毫不犹豫跳转至A点重新走。