安卓APP源码和报告——学生信息管理系统

学生信息管理系统APP演示视频

《移动开发技术II》实践考核方案

适用网络工程(网络软件开发)2018级

一、考核内容:

环境配置及移动开发生命周期、控件的使用、用户界面设计、数据存储与访问、广播、服务、网络编程、蓝牙应用等知识点。

二、考核方式:

1、通过提交一个综合的项目,学会运用所学知识解决实际问题。

2、项目题目: XX管理系统APP,购物商城APP等,也可自命题。

三、考核目的:

1、掌握移动开发的生命周期

2、掌握用户界面以及自定义界面的使用

3、掌握数据库的应用

4、掌握移动开发中网络程序设计

5、掌握移动开发的程序设计方法。

四、考核要求:

1、完成项目程序设计;

2、提交的项目运行正常,界面友好,功能完善,异常处理较好;

3、项目中功能符合要求,数据库设计合理;

4、文档资料完善。

五、成绩评定:

1、记分制:百分制

2、评分标准:

序号资料类型分值评分标准备注
1项目描述文档20需求分析10分
数据库设计10分
2源程序代码60完整的源代码30分
基本功能具备10分
界面友好5分
无明显的异常10分
添加适当的注释5分
3项目的复杂性10根据每位学生的选题判断其技术难度
4界面的设计10满足APP界面设计要求,界面友好,便于操作

3、项目提交要求:

(1)项目的源程序文件,添加适当的注释,格式合理;

(2)项目描述文档,包括项目名称,需求分析,项目功能描述及各个文件功能描述;

(3)项目运行的每个页面截图到项目文档中并加以说明;

(4)设计的APP程序应包含登录页面、数据显示页面、自定义功能页面、查询页面、网络状态连接页面等,其中数据存储需要使用Sqlite数据库,登录页面可以使用SharedPerference或者数据库,并且各个页面需要布局合理;

(5)提交的源程序、项目描述文档一起打包后,命名:学号 + 姓名,如181413210张三。

六、考核时间

1、以学院安排为准。

七、其它说明:

学生在多个项目中选择一个完成,或者自选项目。通过APP项目的设计和提交,使学生能够逐渐熟悉移动开发项目的整个流程,为今后的进一步学习打下坚实的基础

考核教师签名:

学生信息管理的设计与实现

一、项目名称:学生信息管理的设计与实现

二、项目完成人:

三、项目需求分析:

学生信息的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,系统针对学校学生信息的特点以及管理中实际需要而设计。优点如下:

  1. 用户可以登录注册
  2. 详细记录每位学生信息,并且可以做出统计
  3. 系统操作人性化、简单易用
  4. 保证软件的安全性
  5. 界面流畅

四、运行环境

操作系统:android

数据库:Sqlite

五、系统功能模块

(1)注册、登录页面 (2)页面

admin 666

  1. 学生信息录入界面 (4) 信息录入成功界面

(5)学生信息浏览界面 (6)修改学生信息成功界面

(7)查询学生信息界面 (8)学生信息删除界面

(9)学生信息退出界面

  1. 核心代码如下:

AddStudentsActivity类:

public class AddStudentsActivity extends AppCompatActivity implements View.OnClickListener {
private ImageButton BtnBack;//返回按钮
private TextView tv_title;//头标题
private EditText EtNameEtNumberEtYearEtSexEtBirthEtAddressEtPhone;
//姓名、学号、年龄、性别、出生年月、地址、电话
private Button BtnSave;//保存按钮
DbStudents dbStudents;//数据库
List<StudentsBean> mData;//数据源
String number;//学号
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_students);
tv_title=findViewById(R.id.tv_title);//绑定控件
BtnBack = findViewById(R.id.btn_back);
BtnSave = findViewById(R.id.btn_save);
BtnBack.setOnClickListener(this);
BtnSave.setOnClickListener(this);
EtNumber = findViewById(R.id.add_et_number);
EtName = findViewById(R.id.add_et_name);
EtYear = findViewById(R.id.add_et_year);
EtSex = findViewById(R.id.add_et_sex);
EtBirth = findViewById(R.id.add_et_birthday);
EtAddress = findViewById(R.id.add_et_address);
EtPhone = findViewById(R.id.add_et_phone);
dbStudentsnew DbStudents(this);
mData new ArrayList<>();
initData();
}
/**
* 保存修改的信息
* */
private void initData() {
Intent intent = getIntent();
if (intent != null) {
number = intent.getStringExtra("number");
if (number != null) {
tv_title.setText("修改学生信息");
BtnSave.setText("修 改");
EtNumber.setText(intent.getStringExtra("number"));
EtName.setText(intent.getStringExtra("name"));
EtYear.setText(intent.getStringExtra("year"));
EtSex.setText(intent.getStringExtra("sex"));
EtBirth.setText(intent.getStringExtra("birth"));
EtAddress.setText(intent.getStringExtra("address"));
EtPhone.setText(intent.getStringExtra("phone"));
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_back:
Intent intent1 = new Intent(AddStudentsActivity.this, MainActivity.class);
startActivity(intent1);
break;
case R.id.btn_save:
//输入
String number = EtNumber.getText().toString().trim();
String name = EtName.getText().toString().trim();
String year = EtYear.getText().toString().trim();
String sex = EtSex.getText().toString().trim();
String birth = EtBirth.getText().toString().trim();
String address = EtAddress.getText().toString().trim();
String phone = EtPhone.getText().toString().trim();
StudentsBean studentsBeans = dbStudents.QueryFromStudentByNumber(number);
if (number != null) {//修改操作
if (name.length() > 0) {
if (dbStudents.updateStudent(number, name, year,sex,birth,address,phone)) {
Toast.makeText(AddStudentsActivity.this,"修改成功",Toast.LENGTH_LONG).show();
setResult(2);
showDeleteDialog2();
}
else {
Toast.makeText(AddStudentsActivity.this,"修改的内容不能为空!",Toast.LENGTH_LONG).show();
}

}
if (TextUtils.isEmpty(name)) {
Toast.makeText(AddStudentsActivity.this"录入失败!请输入姓名", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(number)) {
Toast.makeText(AddStudentsActivity.this"录入失败!请输入学号", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(year)) {
Toast.makeText(AddStudentsActivity.this"录入失败!请输入年龄", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(sex)) {
Toast.makeText(AddStudentsActivity.this"录入失败!请输入性别", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(birth)) {
Toast.makeText(AddStudentsActivity.this"录入失败!请输入出生年月", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(address)) {
Toast.makeText(AddStudentsActivity.this"录入失败!请输入地址", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(phone)) {
Toast.makeText(AddStudentsActivity.this"录入失败!请输入电话", Toast.LENGTH_SHORT).show();
}else if (studentsBeans != null){
Toast.makeText(AddStudentsActivity.this"学号重复", Toast.LENGTH_SHORT).show();
}
else {
System.out.println("是否为空: "+dbStudents);
dbStudents.insertStudents(number, name, year, sex, birth, address, phone);
showDeleteDialog();
}
}
}
/**
* 修改提示框
* */
private void showDeleteDialog2() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("修改成功提示")
.setMessage("已成功修改!")
.setPositiveButton("ok"new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent=new Intent(AddStudentsActivity.this,MainActivity.class);
startActivity(intent);
}
});
builder.create().show();
}
/**
* 保存提示框
* */
private void showDeleteDialog() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("录入成功提示")
.setMessage("已成功录入!\n是否继续?")
.setPositiveButton("否"new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent=new Intent(AddStudentsActivity.this,MainActivity.class);
startActivity(intent);
}
})
.setNegativeButton("是"new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//将输入框清空
EtNumber.setText("");
EtName.setText("");
EtYear.setText("");
EtSex.setText("");
EtBirth.setText("");
EtAddress.setText("");
EtPhone.setText("");
}
});
builder.create().show();
}

DeleteStudentsActivity类:

public class DeleteStudentsActivity extends AppCompatActivity {
ListView listView;//列表
List<StudentsBean> mData;//数据源
Adapter_del adapter;//适配器
DbStudents dbStudents;//数据库
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_delete_students);//控件绑定
listView = findViewById(R.id.del_lv);
dbStudents new DbStudents(this);
mData new ArrayList<>();
System.out.println("长度为:" mData.size());
//设置适配器:加载每一行数据到列表当中
adapter new Adapter_del(thismData);
listView.setAdapter(adapter);
loadData();
setLVClickListener();
}
/**
* listView长按事件
*/
private void setLVClickListener() {
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
StudentsBean studentsBean = mData.get(position);
deleteItem(studentsBean);
return false;
}
});
}
/**
* 长按删除
* */
private void deleteItem(final StudentsBean studentsBean) {
final String delNumber = studentsBean.getNumber();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示信息").setMessage("您确定要删除这条记录么?")
.setNegativeButton("取消"null)
.setPositiveButton("确定"new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
DbStudents.deleteItemFromStudentByNumber(delNumber);
mData.remove(studentsBean); //实时刷新,从数据源删除
adapter.notifyDataSetChanged();
}
});
builder.create().show();
}
/**
* 显示学生信息列表
* */
private void loadData() {
List<StudentsBean> list = DbStudents.search();
mData.clear();
mData.addAll(list);
adapter.notifyDataSetChanged();
}
/**
* 按钮点击事件
* */
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_back:
Intent intent = new Intent(DeleteStudentsActivity.this, MainActivity.class);
startActivity(intent);
finish();
break;
}
}

DataSupper类

public class Users extends DataSupport {
private String name;
private String password;
private String email;
private String addrs;
private int age;
private String sex;
public Users ( String name, String password) {
this.name = name;
this.password = password;
}
public Users ( String name, String password,String email,String addrs,String sex,int age) {
this.name = name;
this.password = password;
this.addrs = addrs;
this.email = email;
this.age = age;
this.sex = sex;
}
public Users () {
}
public String get_name () {
return name;
}
public String get_password () { return password; }
public String get_email() {
return email;
}
public int get_age(){ return age; }
public String get_addrs(){ return addrs; }
public String get_sex() { return sex; }

public void set_name(String name) {
this.name=name;
}
public void setPassword(String password) {
this.password = password;
}
public void setEmail(String email) {
this.email = email;
}
public void setAge(int age) {
this.age = age;
}
public void setAddrs(String addrs) { this.addrs = addrs; }
public void setSex(String sex) { this.sex = sex; }
}

MainActivity类:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btnAdd,btnSearch,btnMod,btnQuery,btnDelete,btnBack;
//按钮:录入、浏览、修改、查询、删除、退出
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//事件绑定
btnAdd=findViewById(R.id.add_students);
btnSearch=findViewById(R.id.search_students);
btnMod=findViewById(R.id.mod_students);
btnDelete=findViewById(R.id.delete_students);
btnQuery=findViewById(R.id.query_students);
btnBack=findViewById(R.id.btn_back);
btnBack.setOnClickListener(this);
btnQuery.setOnClickListener(this);
btnDelete.setOnClickListener(this);
btnMod.setOnClickListener(this);
btnAdd.setOnClickListener(this);
btnSearch.setOnClickListener(this);
}
/**
* 按钮点击事件
* */
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.add_students:
Intent intent1=new Intent(MainActivity.this,AddStudentsActivity.class);
startActivity(intent1);
break;
case R.id.search_students:
Intent intent2=new Intent(MainActivity.this,SearchStudentsActivity.class);
startActivity(intent2);
break;
case R.id.mod_students:
Intent intent3=new Intent(MainActivity.this,ModStudentsActivity.class);
startActivity(intent3);
break;
case R.id.query_students:
Intent intent4=new Intent(MainActivity.this,QueryStudentsActivity.class);
startActivity(intent4);
break;
case R.id.delete_students:
Intent intent5=new Intent(MainActivity.this,DeleteStudentsActivity.class);
startActivity(intent5);
break;
case R.id.btn_back:
DigLogShow();
break;
}
}
/**
* 退出提示
* */
private void DigLogShow() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("退出提示")
.setMessage("是否退出?")
.setPositiveButton("否"new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("是"new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent6=new Intent(MainActivity.this,LoginActivity.class);
SharedPreferences sharedPreferences = getSharedPreferences("zidong", Context.MODE_PRIVATE);
sharedPreferences.edit().clear().apply();
Toast.makeText(MainActivity.this,"退出成功!",Toast.LENGTH_LONG).show();
startActivity(intent6);
}
});
builder.create().show();
}
}

ModStudentSActivity类:

public class ModStudentsActivity extends AppCompatActivity implements View.OnClickListener {
ListView UpdateLv;//列表
EditText EtNumber;//学号
List<StudentsBean> mData;//数据源
Adapter_update adapter;//适配器对象
DbStudents dbStudents;//数据库

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mod_students);//绑定事件
UpdateLv = findViewById(R.id.update_lv);
EtNumber = findViewById(R.id.et_update);
mData new ArrayList<>();
adapter new Adapter_update(thismData);
UpdateLv.setAdapter(adapter);//适配器列表显示
dbStudents new DbStudents(this);
}
/**
* 按钮点击事件
* */
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_back:
Intent intent = new Intent(ModStudentsActivity.this, MainActivity.class);
startActivity(intent);
finish();
break;
case R.id.update_iv:
String number = EtNumber.getText().toString().trim();
StudentsBean studentsBeans = dbStudents.QueryFromStudentByNumber(number);//查询学号是否存在
if (TextUtils.isEmpty(number)) {
Toast.makeText(this"请输入学号!", Toast.LENGTH_SHORT).show();
else if (studentsBeans == null) {
Toast.makeText(this"该学号不存在!", Toast.LENGTH_SHORT).show();
else {
//开始搜索
List<StudentsBean> list = DbStudents.getStudentListByNumber(number);//查询该学号的所有信息
mData.clear();//将原来搜索的消息清除
mData.addAll(list);
adapter.notifyDataSetChanged();//实时更新
initData();//修改信息函数
break;

}
}
}
/**
* 修改信息点击事件,点击就会进入到修改页面进行修改
* */
private void initData() {
dbStudentsnew DbStudents(this); //创建数据库
UpdateLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
StudentsBean studentsBean = mData.get(position);
Intent intent = new Intent(ModStudentsActivity.this,AddStudentsActivity.class);
intent.putExtra("number", studentsBean.getNumber());
intent.putExtra("name", studentsBean.getName());
intent.putExtra("year", studentsBean.getYear());
intent.putExtra("sex", studentsBean.getSex());
intent.putExtra("birth", studentsBean.getBirth());
intent.putExtra("address", studentsBean.getAddress());
intent.putExtra("phone", studentsBean.getPhone());
ModStudentsActivity.this.startActivityForResult(intent, 1);
}
});
}
}

QueryStudentsActivity类:

public class QueryStudentsActivity extends AppCompatActivity implements View.OnClickListener {
ListView QueryLv;//列表
EditText EtNumberEtName;//输入框学号和姓名
List<StudentsBean> mData;//数据源
Adapter adapter;//适配器对象
DbStudents dbStudents;//数据库
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_query_students);//绑定所有事件
QueryLv = findViewById(R.id.query_lv);
EtName = findViewById(R.id.et_name);
EtNumber = findViewById(R.id.et_number);
mData new ArrayList<>();
adapter new Adapter(thismData);
QueryLv.setAdapter(adapter);
dbStudents=new DbStudents(this);
}
/**
* 按钮点击事件
* */
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_back:
Intent intent = new Intent(QueryStudentsActivity.this, MainActivity.class);
//实现页面跳转
startActivity(intent);
finish();
break;
case R.id.iv_query:
String number = EtNumber.getText().toString().trim();
String name = EtName.getText().toString().trim();
if (TextUtils.isEmpty(number)) {
Toast.makeText(this"请输入学号!", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(name)) {
Toast.makeText(this"请输入姓名!", Toast.LENGTH_SHORT).show();
else {
//开始搜索
List<StudentsBean> list = DbStudents.getStudentListByNumberAndName(number,name);
mData.clear();//将原来搜索的消息清除
mData.addAll(list);//显示在列表上
adapter.notifyDataSetChanged();//实时更新
break;
}
}
}

SearchStudentsActivity类:

public class SearchStudentsActivity extends AppCompatActivity implements View.OnClickListener {
ImageButton BtnBack;//退出按钮
ListView listView;//列表
List<StudentsBean> mData;//数据源
Adapter adapter;//适配器
DbStudents dbStudents;//数据库
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_students);//绑定事件
BtnBack = findViewById(R.id.btn_back);
BtnBack.setOnClickListener(this);
listView = findViewById(R.id.listView);
dbStudents new DbStudents(this);
mData new ArrayList<>();
System.out.println("长度为:" mData.size());
//设置适配器:加载每一行数据到列表当中
adapter new Adapter(thismData);
listView.setAdapter(adapter);
loadData();//显示学生信息列表函数
}
/**
* 显示学生信息列表
*/
private void loadData() {
List<StudentsBean> list = DbStudents.search();
mData.clear();
mData.addAll(list);
adapter.notifyDataSetChanged();//实时更新
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_back:
Intent intent = new Intent(SearchStudentsActivity.this, MainActivity.class);
startActivity(intent);
finish();
break;
}
}
}

六、数据库设计

七、总结

这次的课程学习时间比较短,所以完成的项目也不算完美,基础比较差,到做项目的时候问题就全部出来了,所以我还需要继续努力学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/2252.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hnust 湖南科技大学 2023 安卓 期中考试 复习资料

前言 ★&#xff1a;录音中提到的✦&#xff1a;推测考点致谢&#xff1a;hwl&#xff0c;lqx&#xff0c;ly&#xff0c;sw重点来源&#xff1a;7-8班 PPT和录音内容来源&#xff1a;PPT知识点大多很抽象&#xff0c;需要联系实际代码来理解多做1-9章课后习题&#xff0c;编程…

chatgpt API key 获取及延续

目录 问题描述API key 获取API key 延续注册虚拟卡虚拟卡绑定openAI 账户虚拟卡注销参考链接 问题描述 chatgpt目前已被很多人作为辅助工具&#xff0c;使用openai开放的api进行请求与应用chatgpt成为一种十分便利的操作 API key 获取 网址&#xff1a;https://openai.com/p…

安卓期末大作业——图书信息管理系统

前言 随着信息技术的高速发展&#xff0c;科技逐渐走进各行各业&#xff0c;帮助人们快速、便利地完成一些工作。BMS系统是基于Android移动设备的应用软件&#xff0c;该系统能够帮助用户在家里通过手机查看相应图书馆的馆藏情况&#xff0c;而不用到图书馆中查找。同时该系统…

安卓APP源码和设计报告——麻雀笔记

目录 一 安卓应用程序开发背景3 1.1开发背景3 1.2开发环境4 二 安卓应用程序开发理论与方法4 三 记事本应用程序的设计与实现5 3.1 拟解决的问题及目标5 3.2 总体设计6 3.3 详细设计与编码实现6 四 总结23 一 安卓应用程序开发背景 1.1开发背景 1.智能手机的市场 …

安卓APP源码和设计报告——好再来点餐

大作业文档 项目名称&#xff1a;好再来点餐专业&#xff1a;班级&#xff1a;学号&#xff1a;姓名&#xff1a; 目 录 一、项目功能介绍3 二、项目运行环境3 1、开发环境3 2、运行环境3 3、是否需要联网3 三、项目配置文件及工程结构3 1、工程配置文件3 2、工程结构…

来打卡!吴恩达3门AI新课;我用AI出版97本书;如何在创业小厂做技术领导;手把手教你用SD写好提示词 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 「讯飞听见会写」开放内测申请&#xff0c;基于AI的文件内容处理 「讯飞听见会写」是讯飞「星火认知大模型」的个人示范应用产品&…

安卓APP源码和设计报告——基于Android的垃圾分类系统

《移动应用开发》大作业报告 题 目基于Android的垃圾分类系统系 部班 级学 生 姓 名学 号指 导 教 师时 间 1、项目名称 垃圾分类系统 2、项目概述 近些年&#xff0c;由于人民生活水平是的提高&#xff0c;生活方式与生活节奏的加快&#xff0c;使我国的垃圾生产数量已远…

安卓期末大作业——购物商城(源码+18页报告)

Android系统原理及应用报告 题 目&#xff1a; 学 号&#xff1a; 班 级&#xff1a; 姓 名&#xff1a; 完成时间 报告要求须知 项目报告按照实践开发实际情况编写&#xff0c;着重工程项目的需求分析、系统功能分析及模块图、数据库及E-…

安卓APP源码和报告——音乐播放器

课 程 设 计 报 告 院 系&#xff1a;专 业&#xff1a;题 目&#xff1a;科 目&#xff1a;学 生&#xff1a;指导教师&#xff1a;完成时间&#xff1a; 目 录 1. 引言1 1.1 目的1 1.2 背景1 2. 需求分析1 3. 系统设计1 3.1总体设计1 3.2功能设计1 4. 系统开发2 4.1…

【AIGC使用教程】Notion AI 从注册到体验:如何免费使用

欢迎关注【AIGC使用教程】 专栏 【AIGC使用教程】SciSpace 论文阅读神器 【AIGC使用教程】Microsoft Edge/Bing Chat 注册使用完全指南 【AIGC使用教程】GitHub Copilot 免费注册及在 VS Code 中的安装使用 【AIGC使用教程】GitHub Copilot 免费注册及在 PyCharm 中的安装使用 …

体验不了ChatGPT?来试试POE桌面版!

POE Poe App目前备受欢迎&#xff0c;许多用户已开始使用加入ChatGPT API后引入的聊天机器人。最早在App Store推出&#xff0c;目前Poe App还没有推出针对Android用户的版本&#xff0c;但今天poe.com推出了桌面版&#xff0c;Android用户也可以通过桌面浏览器使用ChatGPT。需…

推特、微博对手Threads软件的下载、注册、使用最新超详细教程

经过马斯克不断折腾&#xff0c;推特面临用户大量流失的风险&#xff0c;尤其近期限制推文阅读量&#xff0c;更是导致大量用户出走。 于是乎&#xff0c;Meta公司7月6日正式发布对标推特的新社交平台 Threads&#xff0c;当前Threads只能在 iOS、Android 平台上安装 APP 使用&…

【ChatGPT+MindShow高效生成PPT,保姆级安装教程】

&#x1f680; AI破局先行者 &#x1f680; &#x1f332; AI工具、AI绘图、AI专栏 &#x1f340; &#x1f332; 如果你想学到最前沿、最火爆的技术&#xff0c;赶快加入吧✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域优质创作者&#x1f3c6;&am…

安卓期末大作业——日记APP

2022/2023 学年 第 一 学期 课程设计 实验报告 模 块 名 称 Android课程设计 专 业 通信工程&#xff08;嵌入式培养&#xff09; 学 生 班 级 学 生 学 号 学 生 姓 名 指 导 教 师 设计题目熟悉adt-bundle-windows-x86或android-studio-ide应用开发环境&#xff1a;安…

手把手教你怎么搭建自己的ChatGPT和Midjourney绘图(含源码)

AI程序采用NUXT3LARAVEL9开发&#xff08;目前版本V1.1.7&#xff09; 授权方式&#xff1a;三个顶级域名两次更换 1.AI智能对话-对接官方和官方反代&#xff08;markdown输出&#xff09;PS:采用百度与自用库检测文字 2.AI绘图-根据关键词绘图-增加dreamStudio绘画-增加mid…

制作自己的ChatGPT

Feb 11, 20235 min read 推荐&#xff1a;使用 NSDT场景设计器 快速搭建 3D场景。 众所周知&#xff0c;ChatGPT 目前能够取得令人印象深刻的壮举。 很可能许多人都有在他们自己的项目中使用该技术的想法。 不过需要注意的是&#xff0c;ChatGPT 目前并没有官方的 API。 使用非…

【ChatGPT】教你搭建多任务模型

ChatGPT教你搭建多任务模型 You: tell me what’s your version of gpt ? ChatGPT: As an AI language model developed by OpenAI, I am based on the GPT (Generative Pretrained Transformer) architecture. However, my version is known as GPT-3.5, which is an updat…

以一己之力搭建分布式ChatGPT

原以为去年年底ChatGPT已经火过一阵子了&#xff0c;慢慢热度会降下来。出乎意料的是&#xff0c;其热度有增无减。我也是从去年年底一直关注并使用&#xff0c;包括ChatGPT网页版、GPT3 API以及ChatGPT内测API&#xff0c;还包括其他国内外一些人工智能算法的体验。 为了方便使…

【AIGC】使用 Vercel 快速搭建 ChatGPT服务器

前言 在中国大陆境内域名提供商购买的域名&#xff0c;需要实名认证才能开启 DNS 解析。而在国外域名提供商买的域名则不用。指向中国大陆内的云服务器的域名提供的网站&#xff0c;必须备案才能正常被访问。但是任何指向国外服务器的域名却可以不受此规则的限制。Vercel 是一…

小白快速搭建 ChatGpt

小白快速搭建 ChatGpt 前言一、页面展示二、前期准备1.魔法账号2.GitHub账号3.Vercel账号 三、项目部署1.GitHub复制项目到自己的仓库2.Vercel添加项目1&#xff09;创建项目2&#xff09;导入项目3&#xff09;环境变量配置4&#xff09;Deploy 和 Ccontinue to DashBoard 即可…