数据结构--宿舍管理查询软件
景德镇陶瓷大学
实践周课程设计报告
实验名称 |
编写宿舍管理查询软件 |
姓 名 |
杨茹 |
班 级 |
17信管一班 |
学 号 |
117060300109 |
完成日期 |
2018年12月27日 |
- 实验目的
为宿舍管理人员编写一个宿舍管理查询软件
- 设计要求
- 采用交互工作方式
- 建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
- 查询菜单(用二分查找实现以下操作)
- 按姓名查询
- 按学号查询
- 按宿舍号查询
- 打印任一查询结果(可以连续操作)
- 需求分析
- 性能分析
宿舍内入住若干学生,每个宿舍都有唯一独立编码,入住学生有唯一的姓名、学号。编写宿舍管理系统,添加学生的姓名、学号、宿舍号为关键字,创建相应函数实现各种排序、查找和插入删除等操作。使用这些关键字及函数方便进行宿舍管理。
- 功能分析
- 实现交互工作方式,各项操作结束后均应返回主菜单;
- 建立数据文件:系统本无任何信息数据,需开发一个“信息输入”功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,学生信息包括:姓名,学号,宿舍号;
- 显示:信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能;
- 排序:本系统按关键字(姓名、学号、房号)进行冒泡排序;
- 查询:采用二分查找方式,分别实现按关键字(姓名、学号、房号)查询功能;
- 删除:于有些同学因为不同原因而离校,所以设计了删除功能;
- 插入:由于有新同学入校,所以设计了插入功能;、
- 打印:将查询到的某一学生信息或全部学生信息打印;
- 退出:退出交互工作系统。
功能 |
输入 |
查询 |
排序 |
显示 |
插入 |
删除 |
退出 |
(图1 功能简图)
- 用户需求
- 创建欢迎界面;
- 创建线性表,提示用户输入信息,并现实显示信息,输出各种关键字信息,便于用户查阅;
- 创建主界面,建立主选择菜单和子选择菜单,便于用户操作;
- 创建返回主菜单的函数,人性化设计;
- 提供推出选项,操作完毕需要退出时,提供选项,便于使用者退出交互工作系统;
- 优化程序,提供友好界面,操作键如下:
0:退出程序 1:按姓名排序 2:按学号排序
3:按宿舍号排序 4:按姓名查找 5:按学号查找
6:按宿舍号查找 7:按学号插入 8:按学号删除
- 框架设计
宿舍管理系统功能模块图及流程图 |
姓名 |
学号 |
宿舍号 |
学 生 信 息 表 |
按照姓名排序,冒泡排序 |
按照学号排序,冒泡排序 |
按照宿舍排序,冒泡排序 |
排序模块 |
按照姓名从小到大查找,二分法查找 |
按照学号从小到大查找,二分法查找 |
按照宿舍从小到大查找,二分法查找 |
查找模块 |
按照学号从小到大插入 |
按照学号从小到大删除 |
插入和删除 |
(图2 功能模块图)
y |
1<=f<=8 |
f<0或f>8 |
f=0 |
显示学生信息 |
是否继续 |
按姓名排序 |
按学号排序 |
按宿舍号排序 |
按姓名查找 |
按学号查找 |
按宿舍号查找 |
按学号插入 |
按学号删除 |
输入 姓名 |
输入 学号 |
输入 宿舍号 |
输入 信息 |
输入 学号 |
退出 |
开始 (主界面) |
输入学生信息 |
是否继续输入 |
输入整数t |
判断t |
y |
(图 3 系统流程图)
- 概要设计
- 存储结构
单链表存储,结构体定义为
typedef struct{ //定义结构体成员
char name[20];
int num; //学号宿舍号为整型
int room;
}stu;
stu stud;
typedef struct{
int Length; //当前长度
stu *Elem; //存储空间基址
int ListSize; //当前分配的存储容量
}LinkList;
- 数据设计
int f 全局变量,指选择的操作键数
char name[20] 姓名
int num 学号
int room 宿舍号
int Length 为线性表的当前长度
stu *Elem; 指示线性表的基地址
int Listsize 当前分配的存储容量
char c 进入主界面的任意键
ch 判断字符y或n
int i,j 冒泡排序中,i为外层循环次数,j为内层循环次数
int i 打印学生信息时,i作为循环变量
int m;,int n;,int a m,n,a在二分查找中分别代表房号,学号,姓名
int i,j,k; i,j,k在按学号插入中作为循环变量
int i,j,k=-1 i,j,k在按学号删除中作为循环变量
- 函数设计
int menu(); //列出主菜单
void Init(LinkList &L) //初始化线性表
void Create(LinkList &L) //创建学生信息表
void Shuru(LinkList L) //学生信息录入
void Disp() //返回主界面,调用menu()函数实现
void Sorte(LinkList &L) //按照姓名由小到大排序,冒泡排序
void Sortn(LinkList &L) //按照学号由小到大排序,冒泡排序
void Sortr(LinkList &L) //按照宿舍号由小到大排序,冒泡排序
void chazhaoe(LinkList &L) //按姓名从小到大查找,二分查找
void chazhaon(LinkList &L) //按学号从小到大查找,二分查找
void chazhaor(LinkList &L) //按宿舍号从小到大查找,二分查找
void Insert(LinkList &L) //按学号从小到大插入该学生
void Delete(LinkList &L) //按学号从小到大删除该学生
int panduan2(char ch) //如果学生不存在,判断是否继续查找,通过if语句,文件操作函数实现
void panduan3() //如果已无学生记录则返回主界面,通过调用其他函数和文件操作函数实现
void print1 LinkList L) //打印学生信息,通过调用文件操作函数实现
void print2(LinkList L,int mid)//输出学生信息,通过调用文件查找函数实现
void main() //主函数,系统操作入口
- 详细设计
实验源代码如下:
// 17信管宿舍管理系统.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 40
#define increase 10
int f,t=0;
typedef struct{
char name[20];
int num;
int room;
}stu;
stu stud;
typedef struct{
int Length;
stu *Elem;
int ListSize;
}LinkList;
void Init(LinkList &L){ //初始化
L.Length=0;
L.Elem=(stu *)malloc(N * sizeof(stu ));
L.ListSize=N;
}
void menu(){ //菜单界面
printf("\n");
printf("----------------------------17信管1班宿舍管理查询系统---------------------------\n");
printf("\n");printf("\n");
printf(" 1、 按姓名排序\n"); printf("\n");
printf(" 2、 按学号排序\n"); printf("\n");
printf(" 3、 按宿舍号排序\n"); printf("\n");
printf(" 4、 按姓名查找\n"); printf("\n");
printf(" 5、 按学号查找\n"); printf("\n");
printf(" 6、 按宿舍号查找\n"); printf("\n");
printf(" 7、 按学号插入\n"); printf("\n");
printf(" 8、 按学号删除\n");
printf("\n");printf("\n");printf("\n");
printf("提示:当输入的数字键为0时,退出操作\n");
if(t==1)
{
printf("请输入数字键(1——8为操作键):");
scanf_s("%d",&f);
if(f<0||f>9)
{
system("cls");
printf("\n");
printf("输入的数字不对,请在原处重新输入\n");printf("\n");
menu();
}
}
}
void Disp(){ //返回主界面
char c;
fflush(stdin);printf("\n");
printf("请按任意键进入主界面:");
scanf_s("%c",&c);
system("cls");
}
void Shuru(LinkList L) //输入学生信息
{
printf("请输入姓名:");
fflush(stdin); //清空输入缓冲区,得到正确的输入数据
gets_s(stud.name);
printf("请输入学号:");
scanf_s("%d",&stud.num);
printf("请输入宿舍号:");
scanf_s("%d",&stud.room);
}
void Create(LinkList &L) //创建学生信息表
{
if(L.Length>=L.ListSize) //超过学生人数的初值重新输入
{
stu *newbase;
newbase=(stu *)realloc(L.Elem,(N+increase) * sizeof(stu ));
L.Elem=newbase;
L.ListSize+=increase;
}
int i=2;
char ch;printf("\n");
printf("--------------------------开始创建线性表--------------------------\n");
printf("\n");
printf("请输入第1个学生信息\n");
Shuru(L);
ch=getchar();
strcpy_s(L.Elem[L.Length].name,stud.name);
L.Elem[L.Length].num=stud.num;
L.Elem[L.Length].room=stud.room;
L.Length++;
printf("\n");
printf("是否继续输入?<y/n>:");
scanf_s("%c",&ch);
printf("\n");printf("\n");
while(ch=='y')
{
printf("请输入第%d个学生的信息\n",i);
Shuru(L);
strcpy_s(L.Elem[L.Length].name,stud.name);
L.Elem[L.Length].num=stud.num;
L.Elem[L.Length].room=stud.room;
L.Length++;
i++;
ch=getchar();
printf("\n");
printf("是否继续输入?<y/n>:");
scanf_s("%c",&ch);
printf("\n");printf("\n");
}
if(ch=='n')
system("cls");
}
void Sortr(LinkList &L) //按照宿舍号号排序由小到大排序,冒泡排序
{
int i,j;
stu temp;
for(i=0;i<L.Length-1;i++)
for(j=i+1;j<L.Length;j++)
if(L.Elem[i].room>L.Elem[j].room)
{
temp=L.Elem[i];
L.Elem[i]=L.Elem[j];
L.Elem[j]=temp;
}
}
void Sortn(LinkList &L) //按照学号排序由小到大排序,冒泡排序
{
int i,j;
stu temp;
for(i=0;i<L.Length-1;i++)
for(j=i+1;j<L.Length;j++)
if(L.Elem[i].num>L.Elem[j].num)
{
temp=L.Elem[i];
L.Elem[i]=L.Elem[j];
L.Elem[j]=temp;
}
}
void Sorte(LinkList &L) //按照姓名排序由小到大排序,冒泡排序
{
int i,j;
stu temp;
for(i=0;i<L.Length-1;i++)
for(j=i+1;j<L.Length;j++)
if(strcmp(L.Elem[i].name,L.Elem[j].name)>0)
{
temp=L.Elem[i];
L.Elem[i]=L.Elem[j];
L.Elem[j]=temp;
}
}
void print1(LinkList &L) //打印学生信息
{
int i;
printf("\n");
printf("姓名 学号 宿舍号 \n");printf("\n");
for(i=0;i<L.Length;i++)
printf("%-15s%-3d%15d\n",L.Elem[i].name,L.Elem[i].num,L.Elem[i].room);
}
void print2(LinkList &L,int mid) //打印查找到的学生信息
{
printf("查找成功------->该学生信息为:\n");
printf("姓名 学号 宿舍号\n");printf("\n");
printf("%-15s%-3d%15d\n",L.Elem[mid].name,L.Elem[mid].num,L.Elem[mid].room);
}
int Panduan1(char ch) //有学生
{
scanf_s("%c",&ch);
printf("是否继续查找?<y/n>:");
fflush(stdin);
scanf_s("%c",&ch);
if(ch=='y')
{
system("cls");
return(1);
}
else
return 0;
}
int Panduan2(char ch) //该学生不存在,是否继续查找
{
scanf_s("%c",&ch);
printf("该学生不存在,是否继续查找?<y/n>:");
fflush(stdin);
scanf_s("%c",&ch);
if(ch=='y')
{
system("cls");
return(1);
}
else
return 0;
}
void Panduan3() //判断没有学生信息后的操作,返回主界面
{
printf("\n");
printf("已无学生记录\n");
printf("\n");
Disp();
menu();
}
void chazhaor(LinkList &L) //按宿舍号从小到大查找,二分查找
{
if(L.Length==0)
Panduan3();
else
{
int low=0,high=L.Length,mid,flag=0;
int m;
char ch='y';
printf("\n"); printf("\n");
printf("按宿舍号查找---------->请输入要查找的宿舍号:");
scanf_s("%d",&m);
printf("\n");
while(low<=high)
{
mid=(low+high)/2;
if(m==L.Elem[mid].room)
{
flag=1;
break;
}
else if(m>L.Elem[mid].room)
low=mid+1;
else
high=mid-1;
}
if(flag==1)
{
print2(L,mid);
if(Panduan1(ch))
chazhaor(L);
else
{
system("cls");
menu();
}
}
else
{
if(Panduan2(ch))
chazhaor(L);
else
{
system("cls");
menu();
}
}
}
}
void chazhaon(LinkList &L) //按学号从小到大查找,二分查找
{
if(L.Length==0)
Panduan3();
else
{
int low=0,high=L.Length,mid,flag=0;
int n;
char ch='y';
printf("\n"); printf("\n");
printf("按学号查找---------->请输入要查找的学号:");
scanf_s("%d",&n);
printf("\n");
while(low<=high)
{
mid=(low+high)/2;
if(n==L.Elem[mid].num)
{
flag=1;
break;
}
else if(n>L.Elem[mid].num)
low=mid+1;
else
high=mid-1;
}
if(flag==1)
{
print2(L,mid);
if(Panduan1(ch))
chazhaon(L);
else
{
system("cls");
menu();
}
}
else
{
if(Panduan2(ch))
chazhaon(L);
else
{
system("cls");
menu();
}
}
}
}
void chazhaoe(LinkList &L) //按姓名查找,二分查找
{
if(L.Length==0)
Panduan3();
else
{
int low=0,high=L.Length,mid,flag=0;
printf("\n");printf("\n");
printf("按姓名查找---------->请输入要查找的姓名:");
char a[15],ch='y';
scanf_s("%s",&a);
printf("\n");
while(low<=high)
{
mid=(low+high)/2;
if(strcmp(a,L.Elem[mid].name)==0)
{
flag=1;
break;
}
else if(strcmp(a,L.Elem[mid].name)>0)
low=mid+1;
else
high=mid-1;
}
if(flag==1)
{
print2(L,mid);
if(Panduan1(ch))
chazhaoe(L);
else
{
system("cls");
menu();
}
}
else
{
if(Panduan2(ch))
chazhaoe(L);
else
{
system("cls");
menu();
}
}
}
}
void Insert(LinkList &L) //按学号从小到大插入该学生
{
int i,j ,k;
char ch;
printf("\n");
printf("插入的学生信息为:\n");
printf("姓名:");
fflush(stdin);
gets_s(stud.name);
printf("学号:");
scanf_s("%d",&stud.num);
printf("宿舍号:");
scanf_s("%d",&stud.room);
if(L.Length==0)
{
strcpy_s(L.Elem[L.Length].name,stud.name);
L.Elem[L.Length].num=stud.num;
L.Elem[L.Length].room=stud.room;
}
for(i=0;i<L.Length;i++)
{
if(stud.num<L.Elem[i].num)
{
k=i;
for(j=L.Length;j>k;j--)
L.Elem[j]=L.Elem[j-1];
strcpy_s(L.Elem[k].name,stud.name);
L.Elem[k].num=stud.num;
L.Elem[k].room=stud.room;
break;
}
else
{
strcpy_s(L.Elem[L.Length].name,stud.name);
L.Elem[L.Length].num=stud.num;
L.Elem[L.Length].room=stud.room;
}
}
L.Length++;
fflush(stdin);
printf("\n");
printf("是否继续插入><y/n>:");
scanf_s("%c",&ch);
if(ch=='y')
Insert(L);
else
system("cls");
}
void Delete(LinkList &L) //删除学生信息
{
int i,j,k=-1;
char ch;
printf("\n");printf("\n");
printf("请输入要删除学生的学号:");
scanf_s("%d",&stud.num);
for(i=0;i<L.Length;i++)
{
if(stud.num==L.Elem[i].num)
{
printf("该学生的信息为:\n");
printf("\n");
printf("%-15s%-3d%15d\n",L.Elem[i].name,L.Elem[i].num,L.Elem[i].room);
k=i;
for(j=k;j<L.Length-1;j++)
L.Elem[j]=L.Elem[j+1];
printf("\n");
break;
}
}
if(i>=L.Length)
printf("该学生不存在\n");
if(k>=0)
L.Length--;
fflush(stdin);
printf("\n");
printf("是否继续删除?<y/n>:");
scanf_s("%c",&ch);
system("cls");
if(ch=='y')
Delete(L);
else
system("cls");
}
void main(){
LinkList L;
Init(L);
char ch;
system("color d");
printf("\n");
printf("-----------------------欢迎进入17信管一班宿舍管理查询系统-----------------------\n");
printf("\n");
printf("请按任意键开始操作:");
scanf_s("%c",&ch);
system("cls"); //将屏幕先前显示的内容删除掉
Create(L);
system("cls");
t=1;
menu();
while(f!=0)
{
system("cls");
switch(f)
{
case 1:Sorte(L); //按照姓名排序
printf("\n");
if(L.Length==0)
{
printf("已无学生记录\n");
printf("\n");
Disp();
menu();
}
else
{
printf("按姓名排序:\n");
print1(L);
Disp(); //调用返回主界面
menu();
}
break;
case 2:Sortn(L); //按学号排序
printf("\n");
if(L.Length==0)
{
printf("已无学生记录\n");
printf("\n");
Disp();
menu();
}
else
{
printf("按学号排序:\n");
print1(L);
Disp();
menu();
}
break;
case 3:Sortr(L); //按房间号排序
printf("\n");
if(L.Length==0)
{
printf("已无学生记录\n");
printf("\n");
Disp();
menu();
}
else
{
printf("按宿舍号排序:\n");
print1(L);
Disp();
menu();
}
break;
case 4:Sorte(L); //先调用按姓名排序函数进行排序
chazhaoe(L); //再调用按姓名查找函数进行(二分)查找
break;
case 5:Sortn(L); //姓名
chazhaon(L);
break;
case 6:Sortr(L); //宿舍号
chazhaor(L);
break;
case 7:Sorte(L); //调用插入函数
Insert(L);
system("cls");
printf("显示插入后的学生信息:\n");
print1(L);
Disp();
menu();
break;
case 8:Delete(L); //调用删除函数
if(L.Length==0)
{
printf("\n");
printf("学生记录已经被删除完\n");
printf("\n");
Disp();
menu();
}
else
{
printf("显示删除后的学生信息:\n");
print1(L);
Disp();
menu();
}
break;
}
}
}
- 调试分析
- 测试数据
姓名 学号 宿舍号
杨茹 109 602 (删除)
訾欣 108 603
彭珠 131 602
孙友田 104 604 (插入)
李倩 105 602 (插入)(删除)
- 测试结果
- 欢迎界面
- 学生信息输入
- 主菜单
- 按姓名排序
- 按学号排序
- 按宿舍号排序
- 按姓名查找
- 按学号查找
- 按宿舍号查找
- 插入学生信息
(插入:信息输入界面)
(插入:信息输出界面)
- 删除学生信息
(删除一人)
(继续删除一人)
(删除:最终输出界面)
- 退出
- 判断学生不存在
1
- 心得体会
通过本次数据结构课程设计实践周,我学习到了很多。本次课程设计内容是编写一个宿舍管理系统,完成这个项目我用时四天:
第一天 |
分析系统功能模块,设计程序框图,查找相关资料,编写代码框架 |
第二天 |
编写代码,填充内容,完成实验设计 |
第三天 |
调试代码,分析结果,编写实验报告 |
第四天 |
完成实验报告,进行总结。 |
在实验过程中,我充分利用了时间,在完成实验设计的同事,复习课本内容,巩固了知识点,许多曾经不知道的知识,通过互联网资源结合自身实践,现在也能了解掌握,比如:
1、在VS中,system("cls");的功能是将屏幕先前显示的内容删除掉
2、fflush(stdin); 功能是清空输入缓冲区,得到正确的输入数据
3、system("color d");功能是改变整个控制台的颜see,用 system("color
0A"); 其中color后面的0是背景色代号,A是前景色代号,每个数字可以为以下任何值之一。各颜色代码如下:
0 = 黑色 1 = 蓝色 8 = 灰色 9 = 淡蓝色
2 = 绿色 3 = 湖蓝色 A = 淡绿色 B = 淡浅绿色
4 = 红色 5 = 紫色 C = 淡红色 D = 淡紫色
6 = 黄色 7 = 白色 E = 淡黄色 F = 亮白色
4、scanf()和gets()输入函数的不同之处,scanf()输入字符串时不能带空格,否则不能输出空格后的字符,而gets()可以。
5、strmp()函数,比较两个字符串
设这两个字符串为str1,str2,
若str1=str2,则返回零;
若str1<str2,则返回负数;
若str1>str2,则返回正数。
6、在使用vs的时候,使用scanf和strcpy以及gets函数都会报错,说这几个函数存在安全问题。带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。比如 scanf是不安全的 建议使用scanf_s替换,scanf_s多了一个参数,缓冲区大小,这可以防止缓冲区溢出。
在程序设计中,我使用Panduan1(),Panduan2(),Print1(),print2(),Disp()等函数来实现程序优化,对线性表、二分查找、冒泡排序有了进一步了解。但在实验过程中我也遇到了许多问题,有的是如if(**==**)漏写等号,数据未初始化等细节方面的问题,在调试分析中都可以检查出来,但是仍然有一些知识性问题来求助于网络和同学。其中在“按照名字查询void chazhaoe(LinkList &L) ”这一函数中遇到一些问题,程序不稳定,此功能经常会失灵,不能发挥相应的功能效果,目前我仍在寻找解决办法。
编程是一门实践学问,在以后我一定会多加练习,增加实践,提高自己的编程能力。
数据结构--宿舍管理查询软件相关推荐
- 数据结构课设——宿舍管理查询软件(文件读取与查找排序)
问题描述 任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求: (1)采用交互工作方式 (2)可以增加.删除.修改信息 (3)建立数据文件,数据文件按关键字(姓名.学号.房号)进行排序(选择 ...
- C语言宿舍管理查询软件
C语言宿舍管理查询软件 发任务书日期:2022 年6月22日 课 程 设 计 任 务 书 1.设计目的: <数据结构>课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在 ...
- java二分查找宿舍管理_1、任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:
(1)采用交互工作方式...
1.任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求: (1)采用交互工作方式 2016-08-22 0 0 0 暂无评分 其他 1 积分下载 如何获取积分? 1.任务:为宿舍管理人员编写 ...
- 宿舍管理查询软件 C语言 中文摘要,宿舍管理查询软件 课程设计报告.doc
宿舍管理查询软件 课程设计报告 课 程 设 计 课程设计名称: 宿舍管理查询软件 专 业 班 级 : 计科0604 学 生 姓 名 : 胡方俊 学 号 :20064140414 指 导 教 师 : 白 ...
- 数据结构综合训练报告--学生宿舍管理查询软件开发(论文+详细代码)
摘要:当今社会正在飞速进步,计算机化管理正是在当今时代下发展起来的.21世纪的今天,信息社会占据着主流地位,计算机在各行各业中的也已经得到了普及,自动化.信息化.数据化的管理越来越广泛应用于各个领域. ...
- c语言宿舍管理查询软件,宿舍管理查询软件--数据结构,c语言
四.功能模块说明 输入学生宿舍信息模块:完成宿舍信息的录入,可以选择从平台手动输入,也可以选择从指定文件中读取. 保存学生宿舍信息模块,完成宿舍信息的保存. 排序学生宿舍信息模块,完成按关键字排序的功 ...
- 宿舍管理查询软件系统
宿舍管理查询软件系统 题目描述 为宿舍管理人员编写一个宿舍管理查询软件. 基本要求 (1)采用交互工作方式 (2)可以增加.删除.修改信息 (3)建立数据文件 ,数据文件按关键字(姓名.学号.房号)进 ...
- 查询宿舍信息的c语言,学生宿舍管理软件C语言源代码(完整版)
学生宿舍管理系统C语言代码 一.需求分析 该程序是由C语言编写的一个宿舍管理查询软件,其主要功能是实现对学生信息的增加.删除.修改.查询.排序.存储.加载.其中查询可以分别以姓名.学号.寝室号为关键字 ...
- c语言课设宿舍管理程序,C语言程序课程设计宿舍管理软件.doc
C语言程序课程设计宿舍管理软件.doc 课程设计(论文) 题 目 名 称 宿舍管理软件 课 程 名 称 C语言程序课程设计 学 生 姓 名 学 号 系 .专 业 信息工程系.信息大类 指 导 教 师 ...
最新文章
- bert as service
- PYQT5登录界面跳转主界面方法
- 修改boot.ini
- SpringCloud之微服务
- php禁用了所有命令执行的函数 怎么搞,PHP通过bypass disable functions执行系统命令的方法汇总...
- 2021ICPC(澳门) - LCS Spanning Tree(广义后缀自动机)
- java返回两个string_java – 为什么String.intern()方法返回两个不同的结果?
- 带有GSON和抽象类的JSON
- cordova 实现网页缓存_如何解决ionic,cordova混合开发的app缓存大的问题
- Java并发:Callable、Future和FutureTask
- python 除法总返回浮点
- java session超时判断_详解SpringBoot中Session超时原理说明
- msys2(msys2-i686-20180531)32位下安装GMT4.5.6
- matlab中si是什么意思,Sitsang是什么意思
- python 分词 词性_分词及词性标注
- 电脑软件测试英雄联盟,揭秘英雄联盟的自动化测试
- 【EXLIBRIS】#小词旮旯# 003 Comrade
- PAT乙级1068 万绿丛中一点红 (20 分)
- 树莓派系统安装和调试 总结整理篇
- 以下数值中 不能用作C语言标识符,C语言题库及答案(选择题)