C语言如何实现财务管理系统
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关C语言如何实现财务管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下包括1.录入班级成员信息2.排序3.修改学生信息4.
千家信息网最后更新 2025年11月07日C语言如何实现财务管理系统
这篇文章将为大家详细讲解有关C语言如何实现财务管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体内容如下
包括
1.录入班级成员信息
2.排序
3.修改学生信息
4.删除指定学号学生
5.查找学生
6.添加财务信息
7.查询详细表
8.显示所有学生信息
9.退出
详细事项:本系统包括管理员登录和普通同学登录,两种登录方式的权限不一样,例如:同学登录只能修改自己学号的信息。初次使用(本地文件为空)需要初始化系统。每次使用完一个功能,会自动返回主函数。使用时需要注意本地文件是否齐全,包括:student.txt(储存学生信息),account.txt(储存财务信息),zh2.txt(储存账户信息),zh3.txt(储存账户信息),file2.txt(储存密码信息),file1.txt(储存密码信息)。本代码使用链表和文件系系统。本代码只是抱砖引玉。
/*首次使用,进行系统初始化 */ #include#include #include #include #include #include char password[9]; //记录密码 char password2[9]; //记录密码 int log; //登录状态函数 int ac; struct student{ char num[15]; //学号 char name[20]; //姓名 char sex; //性别 int age; //年龄 int clas; //班级 char mail[20]; //邮箱 char number[13]; //电话号码 };typedef struct node{ //定义一个结构体 struct student data; struct node *next; }s;void in(s *head); //信息的读取 void menu(); //菜单函数 void add(s *head); //录入函数 void dele(s *head); //删除函数 void mod(s *head); //修改函数 void query(s *head); //查询函数 void sort(s *head); //排序函数 void account(); //财务收入 void print() ; //显示总财务 void printall(); //显示所有学生信息 void out(s *head); //信息的存储 void in(s *head){ FILE *fp; s *p; fp = fopen("student.txt","r"); while (!feof(fp)) { p= (s*)malloc(sizeof(s)); fscanf(fp,"%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,&p->data.sex,&p->data.age,&p->data.clas,p->data.mail,p->data.number); p->next=NULL; s *last=head->next; if(last!=NULL){ //当链表不为空时 ,才可以让last=head while(last->next){ //当last不为空时 ,当while结束时,这个last指向的就是最后一个结点 last=last->next; } last->next=p; }else{ head->next=p; //链表为空 } } fclose(fp);}void out(s *head){ s *p; FILE *fp; if((fp=fopen("student.txt","w"))==NULL){ printf("File open error!\n"); exit(0); } for(p=head->next;p;p=p->next) //把学生信息存进文件中 fprintf(fp,"%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); fclose(fp);}void menu(){ char ch[6],*m,ch3; system("cls"); /*实现清屏操作,即清除之前输入的东西*/ s *head=(s*)malloc(sizeof(s)); head->next=NULL; int i; if(log==1) { printf("1.录入班级成员信息\n"); printf("2.排序\n"); printf("3.修改学生信息\n"); printf("4.删除指定学号学生\n"); printf("5.查找学生\n"); printf("6.添加财务信息\n"); printf("7.查询详细表\n"); printf("8.显示所有学生信息\n"); printf("9.退出\n"); for(i=1;i<=50;i++) //分割线 printf("-"); printf("\n请选择(可多选):"); scanf("%s",ch); m=ch; for(;*m!='\0';m++) //用数组指针实现多函数操作 { switch(*m){ case '1':system("cls");add(head);break; case '2':system("cls");sort(head);break; case '3':system("cls");mod(head);break; case '4':system("cls");dele(head);break; case '5':system("cls");query(head);break; case '6': account();break; case '7': print();break; case '8':printall();break; case '9':exit(0); } } system("cls"); } if(log==2) { printf("因为权限问题,您只能使用一下功能\n"); printf("3.修改学生信息\n"); printf("4.查询信息\n"); printf("6.添加财务信息\n"); printf("7.查询详细表\n"); printf("8.显示所有学生信息\n"); printf("9.退出\n"); for(i=1;i<=50;i++) //分割线 printf("-"); printf("\n请选择(可多选):"); scanf("%s",ch); m=ch; for(;*m!='\0';m++) //用数组指针实现多函数操作 { switch(*m){ case '3':system("cls");mod(head);break; case '4':system("cls");dele(head);break; case '6': account();break; case '7': print();break; case '8':printall();break; case '9':return; } } system("cls"); }}void add(s *head){ //录入函数 FILE *fp; int i,temp=0,sum; //temp用来标记邮箱 sum用来标记电话号码的位数 int x; system("cls"); s *p; do{ p=(s*)malloc(sizeof(s)); //申请一个内存; printf("请输入学号:\n"); scanf("%s",p->data.num); //获取学号 s *q; q=head->next; //指针指向下一个 while(q!=NULL){ //p已经指向尾部了,所以要定义一个别的指针来做for循环遍历 if(strcmp(p->data.num,q->data.num)==0){ getchar(); printf("学号重复,请重新输入:\n"); scanf("%s",p->data.num); } q=q->next; } getchar(); printf("\n请输入姓名:\n"); scanf("%s",p->data.name); getchar(); printf("\n请输入性别(男生填m,女生填w):\n"); scanf("%c",&p->data.sex); while(1){ if((p->data.sex=='w')||(p->data.sex=='m')) break; else{ getchar(); //要在每一项输入之后,读入任意一个字符才能下一步操作 printf("性别符号输入错误,请重新输入:\n"); //防止出入其他符号 scanf("%c",&p->data.sex); } } getchar(); printf("\n请输入年龄:\n"); scanf("%d",&p->data.age); getchar(); printf("\n请填入班级,仅数字:\n"); scanf("%d",&p->data.clas); getchar(); printf("\n请输入邮箱(必须有@):\n"); scanf("%s",p->data.mail); while(1){ for(i=0;p->data.mail[i]!='\0';i++){ if(p->data.mail[i]=='@'){ temp=1; } } if(temp==0){ printf("邮箱中不包含@,请重新输入:\n"); scanf("%s",p->data.mail); }else break; } getchar(); printf("\n请输入电话号码,必须是11位:\n"); scanf("%s",p->data.number); while(1){ sum=0; for(i=0;p->data.number[i]!='\0';i++){ sum+=1; } if(sum!=11){ getchar(); printf("号码位数超过11位或者少于11位,请重新输入:\n"); scanf("%s",p->data.number); }else break; } p->next=NULL; s *last=head->next; if(last!=NULL){ //当链表不为空时 ,才可以让last=head while(last->next){ //当last不为空时 ,当while结束时,这个last指向的就是最后一个结点 last=last->next; } last->next=p; }else{ head->next=p; //链表为空 } getchar(); printf("\n是否还要继续录入,是请输入1,否请输入0\n"); scanf("%d",&x); if(x==0) break; if(x==1) system("cls"); //清空屏幕 }while(1); if((fp=fopen("student.txt","a"))==NULL){ printf("File open error!\n"); exit(0); } for(p=head->next;p;p=p->next) //把学生信息存进文件中 fprintf(fp,"%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); fclose(fp); printf("\n信息已经存入文件\n"); system("pause"); s *k; p=head->next; while(p!=NULL){ //清空链表,只剩head,方便之后的操作 k=p->next; free(p); p=k; } head->next=NULL; if(x==0) menu(); }void dele(s *head){ //删除函数 int temp=0,i,flag2; in(head); //信息的读取 s *p,*q; char numb[15]; FILE *fpw=fopen("tmp.txt","w"); char ch2; ch2='-'; system("cls"); printf("请输入学号:"); scanf("%s",numb); for(q=head,p=head->next;p;q=p,p=p->next){ //遍历链表,条件是p存在 if(strcmp(numb,p->data.num)==0){ temp=1; system("cls"); printf("学生信息如下:"); printf("学号:%s\n",p->data.num); printf("姓名:%s\n",p->data.name); printf("性别:%c\n",p->data.sex); printf("年龄:%d\n",p->data.age); printf("班级:%d\n",p->data.clas); printf("邮箱:%s\n",p->data.mail); printf("电话号码:%s\n",p->data.number); for(i=1;i<=50;i++){ //分割线 printf("%c",ch2); } printf("\n"); printf("是否要删除此学生信息?(1或2)\n"); scanf("%d",&flag2); if(flag2==2) { printf("取消删除,三秒后返回主菜单"); Sleep(3000); menu(); } if(flag2==1){ if(q){ q->next=p->next; //将前一个指针指向要删除的后一个结点 out(head); } else{ head->next=p->next; out(head); } free(p); printf("信息已删除"); printf("三秒后返回主菜单"); Sleep(3000); menu(); } } } if(temp==1){ //如果temp等于一说明信息已经删除,把改过后的链表重新写入文件中 out(head); } if(temp==0){ //没有找到学生的信息 for(i=1;i<=50;i++) printf("%c",ch2); printf("\n没有找到此学生信息,按任意键退出\n"); printf("三秒后返回主菜单"); Sleep(3000); menu(); } s *k; p=head->next; while(p!=NULL){ //清空链表,只剩head,方便之后的操作 k=p->next; free(p); p=k; } head->next=NULL;}void mod(s *head){ //修改函数 int nums; FILE *fp; system("cls"); //清空屏幕 s *p,*q; //作为链表中的指针 in(head); char *m; //用来控制修改的信息编号 int temp=0; int i,sui,ban,j=1;//代表修改的年龄班级 char num1[15]; char ch[8]; char xuehao[15],ming[20],xingbie,youxiang[20],haoma[20];//代表要修改的信息名 printf("请输入要修改的学生的学号:\n"); getchar(); scanf("%s",num1); nums= atoi(num1);// printf("%d",nums); if(log==2) { if(nums != ac) { while(j) { printf("您只能修改自己的信息,请输入正确信息"); scanf("%s",num1); nums= atoi(num1); if(ac==nums) { j=0; } } } } for(p=head->next;p;p=p->next){ //遍历列表,寻找与输入相同的学号 if(strcmp(num1,p->data.num)==0){ temp=1; //找到信息后的标记 printf("1.学号:%s\n",p->data.num); //找到后显示出完整信息 printf("2.姓名:%s\n",p->data.name); printf("3.年龄:%d\n",p->data.age); printf("4.班级:%d\n",p->data.clas); printf("5.邮箱:%s\n",p->data.mail); printf("6.电话号码:%s\n",p->data.number); printf("0.退出\n"); for(i=1;i<=50;i++){ //分割线 printf("-"); } printf("\n"); printf("请输入要修改信息的相应序号(可多选):\n"); scanf("%s",ch); getchar(); m=ch; for(;*m!='\0';m++){ //用循环来解决修改多个学生信息的问题 switch(*m){ case '1':printf("请输入要修改学号的内容:\n"); scanf("%s",xuehao); strcpy(p->data.num,xuehao);break; case '2':printf("\n请输入要修改姓名的内容:\n"); scanf("%s",ming); strcpy(p->data.name,ming);break; case '3':printf("\n请输入要修改年龄的内容:\n"); scanf("%d",&sui); p->data.age=sui;break; case '4':printf("\n请输入要修改班级的内容:\n"); scanf("%d",&ban); p->data.clas=ban;break; case '5':printf("\n请输入要修改邮箱的内容:\n"); scanf("%s",youxiang); strcpy(p->data.mail,youxiang);break; case '6':printf("\n请输入要修改电话号码的内容:\n"); scanf("%s",haoma); strcpy(p->data.number,haoma);break; case '0':break; } } getchar(); printf("修改后的信息如下:\n"); printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);//输出修改后的信息 system("pause");//防止闪屏 } } if(temp==1){ //如果temp等于一说明信息已经删除,把改过后的链表重新写入文件中 out(head); } if(temp==0){ //没找到学生信息 printf("没有此学生的信息\n"); system("pause"); } s *k; p=head->next; while(p!=NULL){ //清空链表,只剩head,方便之后的操作 k=p->next; free(p); p=k; } head->next=NULL; printf("三秒后返回主菜单"); Sleep(3000); menu();}void query(s *head){ //查询函数 s *p; //p用来遍历查找的内容 in(head); p=head->next; system("cls"); int i,sui,ban,temp=0; //temp用来标记是否找到信息 char ch; char xuehao[15],ming[20],xingbie,youxiang[20],haoma[20]; //用来输入查找的信息 printf("1.学号\n"); printf("2.姓名\n"); printf("3.年龄\n"); printf("4.班级\n"); printf("5.邮箱\n"); printf("6.电话号码\n"); printf("7.显示所有学生的信息\n"); printf("0.退出\n"); for(i=1;i<=50;i++){ printf("-"); //分割线 } printf("\n"); printf("请选择输入要查询的信息编号:\n"); getchar(); ch=getchar(); if(ch=='1'){ getchar(); printf("请输入要查找的信息内容:\n"); scanf("%s",xuehao); temp=1; while(p){ if(strcmp(xuehao,p->data.num)==0){ //找到的话输出 printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); system("pause"); } p=p->next; } } if(ch=='2'){ getchar(); printf("请输入要查找的信息内容:\n"); scanf("%s",ming); temp=1; while(p){ if(strcmp(ming,p->data.name)==0){ printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); system("pause"); } p=p->next; } } if(ch=='3'){ getchar(); printf("请输入要查找的信息内容:\n"); scanf("%c",&xingbie); temp=1; while(p){ if(xingbie==p->data.sex){ printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); system("pause"); } p=p->next; } } if(ch=='4'){ getchar(); printf("请输入要查找的信息内容:\n"); scanf("%d",&sui); temp=1; while(p){ if(sui==p->data.age){ printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); system("pause"); } p=p->next; } } if(ch=='5'){ getchar(); printf("请输入要查找的信息内容:\n"); scanf("%d",&ban); temp=1; while(p){ if(ban==p->data.clas){ printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); system("pause"); } p=p->next; } } if(ch=='6'){ getchar(); printf("请输入要查找的信息内容:\n"); scanf("%s",youxiang); temp=1; while(p){ if(strcmp(youxiang,p->data.name)==0){ printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); system("pause"); } p=p->next; } } if(ch=='7'){ getchar(); printf("请输入要修查找的信息内容:\n"); scanf("%s",haoma); temp=1; while(p){ if(strcmp(haoma,p->data.name)==0){ printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); system("pause"); } p=p->next; } } if(ch=='8'){ getchar(); temp=1; while(p){ printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number); system("pause"); p=p->next; } } if(temp==0) { printf("没有找到此学生的信息\n"); printf("三秒后返回主菜单"); Sleep(3000); menu(); } s *k; p=head->next; while(p!=NULL){ //清空链表,只剩head,方便之后的操作 k=p->next; free(p); p=k; } head->next=NULL; printf("查询完毕\n"); printf("三秒后返回主菜单"); Sleep(3000); menu();}void sort(s *head){ //排序函数 system("cls"); //清空屏幕 s *p,*q; in(head); q=head; p=head->next; s *w; w=head->next; char ch; printf("请输入要排序的内容(1是学号、2是年龄):\n"); getchar(); scanf("%c", &ch); if (ch == '1'){ s *temp = (s*)malloc(sizeof(s)); while (p != NULL) { while (p->next != NULL) //按照学号大小排序 { if (strcmp(p->data.num, p->next->data.num)<0) { temp->data = p->data; p->data = p->next->data; p->next->data = temp->data; } p = p->next; } p = q->next; q = p; } } else{ s *temp = (s*)malloc(sizeof(s)); while (p != NULL) { while (p->next != NULL) //按照年龄大小排序 { if (p->data.age < p->next->data.age) { temp->data = p->data; p->data = p->next->data; p->next->data = temp->data; } p = p->next; } p = q->next; q = p; } } printf("\n排序后的信息如下:\n"); while (w != NULL){ //将排序后的链表输出 printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",w->data.num,w->data.name,w->data.sex,w->data.age,w->data.clas,w->data.mail,w->data.number); w = w->next; }system("pause"); out(head); s *k; p=head->next; while(p!=NULL){ //清空链表,只剩head,方便之后的操作 k=p->next; free(p); p=k; } head->next=NULL; printf("三秒后返回主菜单"); Sleep(3000); menu();}void account(){ int n; char date[25]; char item[40]; char s1[45]; char count[12]; FILE *fp; if((fp=fopen("account.txt","at"))==NULL) { printf("Cannot open file strike any key exit!"); getch(); exit(1); } printf("请输入次数"); scanf("%d",&n); while(n) { printf("请输入姓名\n"); scanf("%s",&s1); fputs(s1,fp); printf("请输入日期\n"); scanf("%s",&date); fputs(date,fp); printf("请输入名称\n"); scanf("%s",&item); fputs(item,fp); printf("请输入金额"); scanf("%s",&count); fputs(count,fp); n--; } fclose(fp); printf("三秒后返回主菜单"); Sleep(3000); menu();}void print(){ //打印所有财务数据 char str[10000]; FILE *fp; int qq; if((fp=fopen("account.txt","rt"))==NULL) { printf("Cannot open file strike any key exit!"); getch(); exit(1); } fgets(str,1000,fp); //获取文件内容 printf("%s",str); //打印内容 printf("\n"); printf("1返回主菜单");fclose(fp); //关闭文件 scanf("%d",&qq); if(qq==1) { menu(); } } void printall(){ //打印所有是学生信息函数 char str[1000]; FILE *fp; int qq; if((fp=fopen("student.txt","rt"))==NULL) { printf("Cannot open file strike any key exit!"); getch(); exit(1); //找不到文件退出程序 } while((fgets(str,1024,fp))!=NULL) { printf(str); } //打印内容 fclose(fp); //关闭文件 printf("1返回主菜单"); scanf("%d",&qq); if(qq==1) { menu(); }}void first(){ //读取文件 FILE *fp,*fp1; /*定义文件指针*/ char s[9],s1[9],s2[9],s3[9],ch,n; int i; ch='_'; if((fp=fopen("file.txt","r"))==NULL) { printf("\n 请进行初始化操作!\n"); for(i=1;i<=50;i++)/*用来做分割线*/ printf("%c",ch); getch(); /*是输入一个字符,但不显示在屏幕上*/ do{ printf("\n 设置密码,不得超过八位数 \n"); for(i=0;i<8&&((s[i]=getch())!=13);i++) /*13代表的是回车*/ putch('*'); /*显示字符*/ printf("\n 再确认一次密码 \n"); for(i=0;i<8&&((s1[i]=getch())!=13);i++) putch('*'); s[i]='\0'; s1[i]='\0'; if(strcmp(s,s1)!=0) /*判断两次密码输入是否一致*/ printf("\n 两次密码输入不一致,请重新输入 \n"); else break; } while(1); /*当括号里是1时表示无限循环*/ if((fp1=fopen("file.txt","w"))==NULL){ printf("\n 系统创建失败,请按任意键退出 \n"); /*打开文件,把密码存进去*/ getch(); exit(1); } for(i=0;s[i]!='\0';i++) putw(s[i],fp1); /*将数组元素(即密码)放入文件中*/ fclose(fp1); /*关闭文件*/ printf("\n 系统初始化成功,按任意键退出后,再重新进入 \n"); getch(); exit(1); } else{ i=0; while(!feof(fp)&&i<8) s2[i++]=getw(fp); /*从文件读出字符赋给数组*/ s2[i]='\0'; strcpy(password,s2); /*将数组s2的字符复制给password*/// enroll(); } if((fp=fopen("file2.txt","r"))==NULL) { printf("\n 请进行初始化操作!\n"); for(i=1;i<=50;i++)/*用来做分割线*/ printf("%c",ch); getch(); /*是输入一个字符,但不显示在屏幕上*/ do{ printf("\n 设置密码,不得超过八位数 \n"); for(i=0;i<8&&((s[i]=getch())!=13);i++) /*13代表的是回车*/ putch('*'); /*显示字符*/ printf("\n 再确认一次密码 \n"); for(i=0;i<8&&((s1[i]=getch())!=13);i++) putch('*'); s[i]='\0'; s1[i]='\0'; if(strcmp(s,s1)!=0) /*判断两次密码输入是否一致*/ printf("\n 两次密码输入不一致,请重新输入 \n"); else break; } while(1); /*当括号里是1时表示无限循环*/ if((fp1=fopen("file2.txt","w"))==NULL){ printf("\n 系统创建失败,请按任意键退出 \n"); /*打开文件,把密码存进去*/ getch(); exit(1); } for(i=0;s[i]!='\0';i++) putw(s[i],fp1); /*将数组元素(即密码)放入文件中*/ fclose(fp1); /*关闭文件*/ printf("\n 系统初始化成功,按任意键退出后,再重新进入 \n"); getch(); exit(1); } else{ i=0; while(!feof(fp)&&i<8) s3[i++]=getw(fp); /*从文件读出字符赋给数组*/ s2[i]='\0'; strcpy(password2,s3); /*将数组s2的字符复制给password*/ }// enroll(); }void enroll(){ //登录函数 int flag=0; int i,n=5; char str[9]; printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf(" ---------------------------------------------------------------- \n"); printf(" | 欢迎使用财务管理系统 | \n"); printf(" | | \n"); printf(" | 请选择登录方式:1管理员登录 2班级成员登录 | \n"); printf(" ---------------------------------------------------------------- \n"); if(getch()=='1') { log=1; }else { log=2; } switch(log) { case 1: printf("请输入账号\n"); scanf("%d",&ac); while(n) { printf("\n"); printf("请输入密码"); for(i=0;i<8&&((str[i]=getch())!=13);i++) putch(str[i]); //获取键盘输入的内容 str[i]='\0'; for(int j=0;j 关于"C语言如何实现财务管理系统"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
输入
信息
密码
文件
学生
内容
函数
学号
系统
财务
班级
菜单
登录
字符
年龄
排序
号码
姓名
数组
邮箱
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
拱谷世界服务器搭建
潜渊症搜不到服务器列表
适合学生做的网络安全实验
人脸数据库是什么意思
服务器插件更新
我的世界国际版24小时服务器
腾讯公司实习生软件开发薪资
世界智能科技与网络安全
文件服务器和数据库数据清理
电脑服务器怎么设置网络
网络安全手文案
档案网络安全管理专项防护行动
华亭市网络安全检查
大专学校计算机网络技术顶岗实习
互联网母服务器
北京华企互联网络科技
苏州互联网软件开发代理商
中国知网比对数据库
互联网展台科技馆设计
网络安全法的主要职责是什么
重庆博彩软件开发
pe我的世界服务器
一年级网络安全第一课视频
数据库系统实训项目
河源服务器散热片批发商
国际贸易情报 海关数据库
找回服务器
村级网络技术不成熟如何解决
it软件开发优选企业
宁夏浪潮服务器维修维保