怎样做一个C语言课程信息管理系统
首先 要定义机构体
然后就是设计函数 也就是系统功能 录入 查询 删除 修改等
switch语句设计菜单
#include stdio.h
#include stdlib.h
#define NULL 0
typedef struct student
{
char clas[20];
char name[20];
char number[20];
int math;
int english;
int computer;
float sum;
float ave;
struct student *next;
}XSSJ;
void freerecord(XSSJ *p)
{
XSSJ *q;
while(p!=NULL)
{
q=p;
p=p-next;
free(q);
}
}
XSSJ *addrecord(XSSJ *p)
{
XSSJ head,*q;
head.next=p;
p=head;
while(p-next!=NULL)
p=p-next;
while(1)
{
char text[80];
q=(XSSJ *)malloc(sizeof(XSSJ));
if(q==NULL)
return(head.next);
q-next=NULL;
printf("\n请输入学生的班级、姓名、学号和数学、英语、计算机成绩:");
gets(text);
if(text[0]=='\0')
break;
sscanf(text,"%s%s%s%d%d%d",q-clas,q-name,q-number,q-math,q-english,q-computer);
p-next=q;
p=q;
}
return(head.next);
}
XSSJ *createrecord(XSSJ *p)
{
freerecord(p);
return(addrecord(NULL));
}
XSSJ *deleterecord(XSSJ *p)
{
char number[10];
XSSJ *q,head;
printf("\n请输入你要删除的学生学号:\n");
gets(number);
for(head.next=p,q=head;p!=NULL;p=p-next)
{
if(strcmp(p-number,number)!=0)
q=p;
else
{
q-next=p-next;
free(p);
printf("\n学号为%s的学生成绩已经删除。\n",number);
return(head.next);
}
}
printf("\n没有学号为%s的学生成绩。\n",number);
return(head.next);
}
void searchrecord(XSSJ *p)
{
char number[10];
printf("\n请输入你要查询的学生学号\n");
gets(number);
for(;p!=NULL;p=p-next)
{
if(strcmp(p-number,number)==0)
{
printf("\n班级%s\t姓名%s\t学号%s\t数学%d\t英语%d\t计算机%d\n",p-clas,p-name,p-number,p-math,p-english,p-computer);
}
}
printf("\n没有你要查询的成绩\n");
}
void displayrecord(XSSJ *p)
{
printf("\n班级\t姓名\t学号\t数学\t英语\t计算机\t\n");
for(;p!=NULL;p=p-next)
printf("\n%s\t%s\t%s\t%d\t%d\t%d\n",p-clas,p-name,p-number,p-math,p-english,p-computer);
printf("\n");
}
void displaymenu() //显示菜单
{
printf("\n\n______________菜单___________________\n");
printf("1:创建新纪录\t");
printf("2:添加新纪录\n");
printf("3:删除纪录 \t");
printf("4:查询纪录 \n");
printf("5:显示纪录 \t");
printf("0:退出系统 \n");
printf("\n请选择:");
}
int choiceitem(void)
{
int choice;
char line[80];
do
{
displaymenu();
gets(line);
choice=atoi(line);
}
while(choice0||choice6);
return(choice);
}
void main()
{
XSSJ *head=NULL;
int choice;
do
{
choice=choiceitem();
switch(choice)
{
case 1: head=createrecord(head);
break;
case 2: head=addrecord(head);
break;
case 3: head=deleterecord(head);
break;
case 4: searchrecord(head);
break;
case 5: displayrecord(head);
break;
}
}
while(choice!=0);
printf("\n\nEND!");
freerecord(head);
}
hhxy 11tx 06(这个是我的标 不是程序)
这个是我做的 没有名次排序的功能 我没有做出来呢 我也刚学这个 希望对你有帮助
网络安全这块主要是学的什么内容?
网络安全是一个很广的方向,现在市场上比较火的岗位有:安全运维、渗透测试、web安全、逆向、安全开发、代码审计、安服类岗位等。根据岗位不同工作上需要的技术也有部分差异。
如果编程能力较好,建议可以从事web安全、逆向、代码审计、安全开发等岗位。如果对编程没兴趣,可以从事安全运维、渗透测试、web安全、网络安全架构等工作。
如果要学习全栈的安全工程师,那么建议学习路线如下:
1. 学习网络安全:路由交换技术、安全设备、学会怎么架构和配置一个企业网络安全架构
2. 学习系统安全:windows系统和Linux系统、如服务器的配置部署、安全加固、策略、权限、日志、灾备等。客户端的安全加固等
3. 学习渗透攻防:信息收集技术、社会工程学、端口检测、漏洞挖掘、漏洞验证,恶意代码、逆向、二进制等。
4. 学习web安全:sql注入、XSS、CSRF、上传漏洞、解析漏洞、逻辑漏洞、包含漏洞等挖掘及修复
5. 学习安全服务类:风险评估、等级保护、安全咨询、安全法律法规解读等
6. 学习CTF技术:有过CTF经验一定会是企业最喜欢的一类人才
ctf一般多少题
ctf一般题目类型有七种,包括MISC、PPC、CRYPTO、PWN、REVERSE、WEB、STEGA。
1.MISC(Miscellaneous)类型,即安全杂项,题目或涉及流量分析、电子取证、人肉搜索、数据分析等等。
2.PPC(Professionally Program Coder)类型,即编程类题目,题目涉及到编程算法,相比ACM较为容易。
3.CRYPTO(Cryptography)类型,即密码学,题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。这种4.PWN类型,PWN在黑客俚语中代表着攻破、取得权限,多为溢出类题目。
5.REVERSE类型,即逆向工程,题目涉及到软件逆向、破解技术。
6.STEGA(Steganography)类型,即隐写术,题目的Flag会隐藏到图片、音频、视频等各类数据载体中供参赛者获取。
7.WEB类型,即题目会涉及到常见的Web漏洞,诸如注入、XSS、文件包含、代码执行等漏洞。