c学习第二周周记

kl的学习周记(二)

1学习时间:12.14-12.21

2.学习内容:

(1).用c编写教务管理系统
(2).结束c的学习

开始干
在这里插入图片描述
主要分为三个部分来实现设计的

登陆界面
菜单见面
section 项目A
任务1 :班级信息管理系统
任务2 :教师信息管理
任务3 :学生信息管理
任务4 :课程信息管理
任务5 :成绩信息管理
菜单界面的子界面

xx信息管理
具体信息
返回菜单界面

前面的准备工作,所需要用到的数据进行相应的定义和头文件的使用
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <string.h>

#define N 10//定义数据总数为10,为了测试方便我们可以将其设置为3进行测试

enum Sex//枚举性别的两种可能
{
male,female
};

struct Student{
char name[200];
int num;//001-201
char sex[10];
int Math;//100分制
}stu[N] = { { “王一”, 100, “male”, 100 },
{“孙二”,101,“female”,56},
{“张三”,102,“male”,85} }; //罗列的测试数据,在自己使用的过程中可以将其删除掉 之后在界面之中重新输入

void PrintUi(){//登陆界面函数
printf("\t╔══════════════════════════════════════════════════════════════╗\n");
printf("\t║ ║\n");
printf("\t║ ║\n");
printf("\t║ .. ║\n");
printf("\t║ | _____________________ | ║\n");
printf("\t║ | I I | ║\n");
printf("\t║ | I 教学管理系统 I | ║\n");
printf("\t║ | I I | ║\n");
printf("\t║ | I___________________I | ║\n");
printf("\t║ !
! ║\n");
printf("\t║ .[]. ║\n");
printf("\t║ .
|
__________|___. ║\n");
printf("\t║ |::: ____ | ║\n");
printf("\t║ | 密码: | ║\n");
printf("\t║ !_____________________! ║\n");
printf("\t║ ║\n");
printf("\t║ ║\n");
printf("\t║ ║\n");
printf("\t║ ║\n");
printf("\t╚══════════════════════════════════════════════════════════════╝\n");

int Land(){//登陆函数
printf(“请输入您的登陆密码:”);
int Psssword;//初始化密码数据
int a = 7777777;//设置的密码
for (int n = 1; n <= 3; n++){
scanf("%d", &Psssword);

	if (Psssword==a){
		system("cls");
		printf("您的密码输入正确!\n");
		printf("正在登陆,请稍等…………\n");
		Sleep(4000);//登陆延时程序,产生短暂的登陆状态
		system("cls");
		return 1;//登陆成功则返回1
	}
	else{
		printf("您的密码输入错误,请您重新输入!\n",n);
	}
	if (n == 3){//登陆次数为3时 机会用尽 
	printf("您的机会已用尽!\n");
	return -1;//机会用尽表示登陆失败,则返回-1
}

}
return 0;
}

void PrintMode(){//系统菜单页面
printf(“\n");
printf("
\n”);
printf("****** \n");
printf("
教 学 系 统 \n");
printf("
\n");
printf("
\n");
printf("
1. 班级信息管理系统 \n");
printf("
2. 教室信息管理系统
\n");
printf("
**** 3. 学生信息管理********\n");
printf("****** 4. 课程信息管理 \n");
printf("
5. 成绩信息管理 \n");
printf("
\n");
printf("
\n");
printf("
\n");
printf("
**************\n");
}

int Welcome()
{//欢迎函数
PrintUi(1);//打印主界面函数
int i = Land(1);//登陆界面的调用
if (i == 1){//当登陆成功则打开菜单页面
PrintMode(1);//打印菜单界面
return 0;
}
else
{
return -1;
}
}

int Search(int i)//查询函数,为了后面输出特定的信息而进行学号的查找
{
int n;
for (n = 0; n < N; n++){
if (i == stu[n].num){//如果所输入的学号和系统内的学号相等,则返回此位的序号
return n;
}
}
return -1;//如果未找到,则返回-1
}

void InPut()
{//输入函数
int i;
printf(“提示:姓名 学号(001-201) 性别(male,female) 数学成绩(100分制)\n”);
printf(“请输入全部的学生信息:\n”);
for (i = 0; i < N; i++){
scanf("%s%d%s%f", stu[i].name, &stu[i].num, stu[i].sex, &stu[i].Math);
}
}

void SpecialPut(){
int i,c;
printf(“请输入您要查找的学号(100-109):”);
while (1){
scanf("%d", &i);
c = Search(i);//调用查找函数来进行学号的查找
if ( c== -1){//若不属于系统中的学号,则返回-1,表示输入有误
printf(“您的输入有误!\n”);
continue;
}
printf(“姓名:%s\n学号:%d\n性别:%s\n数学:%d\n”,stu[c].name, stu[c].num, stu[c].sex, stu[c].Math);
break;
}

}

void OutPut(){
int i;
printf("----------------------------------------------\n");
printf("|姓名: |学号: |性别: |数学: |\n");
for (i = 0; i < N; i++){
printf("|%s |%d |%s |%d |\n", stu[i].name, stu[i].num, stu[i].sex,stu[i].Math);
}
printf("----------------------------------------------\n");
}

void Rand(){//在排序的这个函数之中,我们也可以增添英语和语文成绩,其方式是一样的
int i, j, num,math;//设置转换的中介量
char name[20],sex[10];
for (i = 0; i < N - 1; i++){

	for (j = i+1; j < N; j++){

		if (stu[j].Math>stu[i].Math){//以冒泡法来进行排序

			math = stu[j].Math;//将数学成绩进行调换
			stu[j].Math = stu[i].Math;
			stu[i].Math = math;

			strcpy(name, stu[j].name);//对于字符串不能够进行直接转换,因为指针所指向的只是字符串的首地址
			strcpy(stu[j].name, stu[i].name);//因此使用strcpy函数来进行字符串的复制
			strcpy(stu[i].name, name);

			num = stu[j].num;//和成绩类似
			stu[j].num = stu[i].num;
			stu[i].num = num;

			strcpy(sex , stu[j].sex);//性别和名字类似
			strcpy(stu[j].sex, stu[i].sex);
			strcpy(stu[i].sex, sex);


		}
	}
}
printf("成绩的排名为:\n");
OutPut();

}

int main(){
int c = Welcome(1);
if (c == 0)
{
int choice;
printf(“请输入您要进行的操作序号:”);
scanf("%d", &choice);
switch (choice){
case 1: InPut();//信息输入
break;
case 2: OutPut();//信息全部输入
break;
case 3: SpecialPut();//按学号查找并输出此学生的信息
break;
case 4: Rand();//科目成绩排名
break;
case 0://退出系统
system(“cls”);
printf(“您选择退出系统!”);
break;
}
}
system(“pause”);
return 0;
}

总结一下,这只是写的程序的一部分,思路是比较清晰的,只是一变成代码可能就感觉敲不出了了,也百度了很多东西,代码也有一部分是别人的,这个教学教务系统我还会继续完善。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值