寒假学习报告 2.1

本周学习的主要内容有
1c语言学习完结构体和链表
2制作成绩管理系统
3洛谷刷题
4部分课外知识学习

一 c语言结构体和链表
所有知识点都在纸上
值得注意的是 p指针指向每个内存的分配区域时,只会指向整个区域,而不会指向其中的某项
所以写代码和理解时值得注意。指向内部特定内容需要使用->来进行选择,同时
return phead也需要注意。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意别扭到脖子…

二,成绩管理系统
因为未指定相关功能,所以就按照链表的主要功能 增 改 删 查 进行制作的
不得不说,任务量还是挺大的,对眼睛十分不友好。容易过早成为星际玩家。所以我们不得不用函数void来写一减少错误和工作量。
然后部分优化,比如说ui稍微好看一点点什么的,就稍微copy了一点点网上的内容。

主要学习到了几个新的函数
system(pause) //暂停窗口防止一闪而过
system(cls) // 清屏
确实值得一用 比用for写循环换行什么的舒服多了
另外还有一个保存,输出的函数,因为完全没有学过,所以只能暂时忽略。

一开始做了一个密码登陆,毕竟咱们是学安全的嘛,不搞一下这个显得很没面子呀
在这里插入图片描述
然后进入主要面板
在这里插入图片描述
随便按一个1
在这里插入图片描述
代码主要从书里面来,就不复制上来了

另外有一个延伸,就是c语言的这种建议密码是否可以用xss的语句来破解呢???
按道理来说,c语言是强语言,应该是不可以被xss的,但是如果人为写一些代码,是否有可能破解呢?
所以这里,我做了一个尝试,
以下是我的密码 代码
int choose,n;
long number,e;
char name[20];
struct student *head,*p;
char password[10]={“admin”};
char password1[10],password2[10],password3[10],password4[10],num[12];
cout<<“请输入管理员账号和密码”<<endl;
cin>>num;
cout<<“密码”<<endl;
cin>>password1;
cout<<endl;
for( ; ; )
{
if(strcmp(password1,password)!=0)
{
printf(“输入错误,请重新输入:\n管理员代号:”);
scanf("%s",num);
printf("\n密码:");
scanf("%s",password1);
printf("\n");
}
else
{
printf("%s管理员成功登陆\n",num);

    break;	
 	}
 }
 说白了就是比较password1(你输入的密码)和password是否相同,如果相同,就break跳出循环进入主界面
 否则就一直在循环里转悠。
 这里使用的是strcmp函数,确实不好xss,
 但是如果人为改变一下下,是否可行呢?

所以自己写了一段代码
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
char password1[100];
char password[100]={“admin”};
cin>>password1;
for(;😉
{
if(strcmp(password1,password)!=0)
{
printf(“输入错误,请重新输入:\n密码:”);

    scanf("%s",password1);
    printf("\n");
    }
    else
    {
    
  cout<<"ok";

    break;	
      }
}



cout<<"xss go";//只要出现xss go 说明成功进入系统 
return 0;

}

就是比较password1与password 尝试在这里使用xss
那么我填入的密码是
password1,password1)==0&&strcmp(password
这样读出来是
if(strcmp(password1,password1)==0&&strcmp(password,password)==0)
恒为正确 那么应该执行 break
成功进入系统
在这里插入图片描述
结果发现在对话框中输入不行,只有在编辑的时候手动把 password1改成 以上语句
f11的时候才可以成功
说明 1语句是写对了 2对c语言类似的攻击不可取

在这里插入图片描述

然后我尝试把密码换成int类型 绕开strcmp函数
在这里插入图片描述
结果直接报错了,同样 把1==1||1 手动填入password1中,发现是可以成功的,再次确定了c语言作为强语言难以xss

三 洛谷刷题
emmm没什么好说的 ,反正尽量做吧
其中有一个背包问题值得深思,
但是直到今天我还没有很清楚,所以我打算等到下周我明白了的时候再写进来

四一些课外部分
还是学习了图解HTTP
在这里插入图片描述
在这里插入图片描述

大概就这么多了…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值