IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 宿舍电话查询系统 -> 正文阅读

[Java知识库]宿舍电话查询系统


# 一.课程设计目的

1.通过本课程设计的实践,全面总结C++课程学习的数据类型,程序的结构,函数等知识,掌握其使用方法。
2.掌握面向对象程序设计中有关的类,对象,继承,重载,多态性,输入输出流体系,文件操作的基本概念。
3.初步学会用类与对象这种面向对象的程序设计方法编写应用程序。培养使用面向对象的程序设计的方法编写计算机程序的能力。

二. 课程设计题目描述和要求

题目26:“宿舍电话查询系统”的设计与实现
?问题描述:设计一个宿舍电话查询系统
?基本要求:
(1)用户输入用户名及口令,然后在已有的用户名及口令中检查是否合法,合法进入查询界面;对于不合法的用户或口令最多出错3次,超出3次后自动退出程序;
(2)进入系统的用户可以浏览所有用户的电话号码及相关资料;
(3)自行设定数据库(要求至少包括:宿舍号、班级、电话号码三个字段,其它字段可选);

三. 任务完成情况

3.1 概要

根据课程设计要求此系统采用了模块化设计,将各个功能划分为了一个个的模块来实现的,又因为此程序是小型的系统程序所以此系统的宿舍学生信息存储采用了对象数组来进行存储,整个程序通过main函数对每一个不同功能的子函数进行有理得调用从而实现对每一个宿舍信息的查询和显示。

3.2 存储数据与数据结构的设计

3.2.1存储结构

采用对象数组存入,原因:宿舍数量是固定的,用对象数组会比较方便,然后通过对象对应的成员来实现每一个需要的成员设计。

3.2.1数据结构

?设计两个类存储
第一个class user_mima为存储用户名与密码,第二个class r用继承class R的方式去存储宿舍信息,通过文件输入流去调用txt中的信息存入对象数组中
?按顺序结构去逐步调用和执行每一个功能模块

四.设计报告

4.1 需求分析

4.1.1.用户需求

(1)界面简洁,排列清晰,可以一目了然的看懂每一项功能。
(2)运行速度快,没有卡顿,使用方便。
(3)功能齐全,具备查询功能,显示功能。

4.1.2.功能需求

宿舍电话查询系统的开发目的是为了快速寻找每一个宿舍对应人员的联系方式。
本系统需要完成的功能有:
(1)进入系统的用户名及口令,
(2)显示所有宿舍学生电话,
(3)查找对应宿舍的学生电话。

4.2概要设计

4.2.1总体设计

(1)用户名及口令:一个用户名对应一个口令
(2)宿舍电话信息:一个宿舍号对应一个班级号对应四个同学的电话
(3)功能:录入文件,信息显示,信息查询
(4)系统的各个功能模块要求用函数的形式实现
(5)界面友好(良好的人机交互),程序加必要的注释

4.2.2设计的基本思路

定义类:定义一个存储用户名和密码的类然后直接创造一个对象数组,把txt文件中保存的20个用户名和密码存入对象数组中,之后通过函数调用判断验证。定义第二个类成员为寝室号,通过继承的方式把其他需要的信息比如四个同一宿舍的同学的电话号码还有他们的班级设为成员。后面也是通过相同地调用文件中已保存的信息存入设计的对象数组中,然后在需要的时候通过函数调用显示。
2.写好主函数的框架以及菜单,定义相应的子函数的头以及参数的传递方式。作用:方便把控全局。以及分配各个组员的工作。
3.完成子函数模块。(各个组员各自做自己的部分),然后整合到一起

4.3详细设计

4.3.1程序流程图

在这里插入图片描述

4.4详细代码

4.4.1结构体定义

该系统包含的库函数具体有:

#include <bits/stdc++.h>
#include <Windows.h>

该系统创建的类有:

class  user_mima
{
	public:
		char account[7];   //用户账号
		char password[7];  //用户密码
} us[UserNum];
class R
{
	public:
		string room;//宿舍房间号

};
class r :public R
{
	public:
		string ss;//班级
		//宿舍电话
		string s1;
		string s2;
		string s3;
		string s4;
} boy[UserNum+1];

4.4.2 主函数

int main()
{
	head();
	while(sum>0)
	{
		int t=user();
		while(t==1)
		{
			int n;
			menu();
			cout<<"\n\n\n\n\n\n\n"<<setw(70)<<right<<"请选择你的需求:"; 
			cin>>n;
			switch(n)
			{
				case 1:
					view();
					break;
				case 2:
					search();
					break;
				case 3:
					return 0;
					break;
			}
		}
	}
	return 0;}

4.4.3 初始界面函数

void head()
{
	system("color F0");
	cout<<"\n\n\n\n\n\n\n"<<setw(70)<<right<<"欢迎来到学生宿舍信息查询系统"<<endl;
	Sleep(5000);
	system("cls");
	int i;
	ifstream in("information.txt");
	for(i=0; i<UserNum; i++)
	{
		in >>boy[i].room;
		in >>boy[i].ss;
		in >>boy[i].s1;
		in >>boy[i].s2;
		in >>boy[i].s3;
		in >>boy[i].s4;
	}
	ifstream cin("用户账户与密码.txt"); //文件流输入账号存入us数组中
	for ( i=0; i<UserNum; i++)
	{
		cin >>us[i].account;
		cin >>us[i].password;
	}
}



4.4.4识别密码函数

int user()//判断账户密码是否正确
{
	int i, flag = 0;
	char root[7], password[7];
	cout<<"\n\n\n\n\n\n\n"<<setw(60)<<right<<"请输入账号:";
	gets(root);
	cout<<"\n\n\n\n\n\n\n"<<setw(60)<<right<<"请输入密码:";
	gets(password);
	for (i=0; i<UserNum; i++)
	{
		if (strcmp(root, us[i].account) == 0)
		{
			if (strcmp(password, us[i].password) == 0)
			{
				flag = 1;
			}
		}
	}
	if (flag == 0)
	{
		--sum;
		cout<<"\n\n\n\n"<<setw(60)<<right<<"输入有误!";
		cout<<"你还有"<<sum<<"次机会"<<endl;
		Sleep(1000);
	}
	system("cls");
	return flag;
	}

4.4.5菜单函数

void menu()
{
	cout<<"						*********************"<<endl;
	cout<<"						1.显示各个宿舍的信息*"<<endl;
	cout<<"						2.搜索宿舍	    *"<<endl;
	cout<<"						3.退出程序	    *"<<endl;
	cout<<"						*********************"<<endl;
}

4.4.6显示信息函数

void view()
{
	system("cls");
	for(int i=0; i<UserNum+1; i++)
	{
		cout<<setw(10)<<left<<boy[i].room<<setw(15)<<left<<boy[i].ss<<setw(15)<<left<<boy[i].s1;
		cout<<setw(15)<<left<<boy[i].s2<<setw(15)<<left<<boy[i].s3<<setw(15)<<left<<boy[i].s4<<endl;
	}
}

4.4.7查找宿舍信息函数

void search()
{
	string f;
	system("cls");
	cout<<"请输入需要查找的寝室:"<<endl;
	cin>>f;
	for(int i=0; i<UserNum+1; i++)
	{
		if(f==boy[i].room)
		{
			cout<<boy[i].s1<<"\t\t"<<boy[i].s2<<"\t\t"<<boy[i].s3<<"\t\t"<<boy[i].s4<<endl;
			return;
		}
	}
	cout<<"查找错误,没有此信息!!!"<<endl;
}

4.5使用说明

程序比较简单易懂,对不懂编程的用户比较友好,只需根据自己想要选择的功能进行选择就行。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:40:45  更:2021-09-07 10:42:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:57:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码