java定义表示学生卡的类

java定义表示学生卡的类,第1张

import java.text.DecimalFormat

/**

 * 类名为StudentCard,属性包含:卡号,学号,学生姓名、余额等属性。

 * 编写两个带参的构造方法,一个构造方法实现给4个属性赋值,另外一个构造方法实现给卡号、学号和学生姓名三个属性赋值。

 * 编写一个方法,实现输出学生卡的基本信息的功能。

 *

 */

public class Hello {

public static void main(String[] args) {

StudentCard sc = new StudentCard("1","111","aaa",22)

sc.print()

}

}

class StudentCard{

private String kahao //卡号

private String xuehao//学号

private String studentName

private String yue//余额

public StudentCard(String kh, String xh, String 巧老肢sn, float ye){

try {

this.kahao = String.valueOf((double)1/100).replaceAll("\\.", "")

} catch (Exception e) {

this.kahao = kh

}

this.xuehao = xh

this.studentName = sn

this.yue = new 含伏DecimalFormat("0.00").format(ye)

}

public StudentCard(String kh, String xh, String sn){

try {

this.kahao = String.valueOf((double)1/100).replaceAll("\\.", "")

} catch (Exception e) {

this.kahao = kh

}

this.xuehao = xh

this.studentName = sn

}

public void print(){

System.out.println("学生卡号:" + this.kahao+"\n学生学号:"+this.xuehao+"\n学生姓名:"+this.studentName+"\n学生余额:"+this.yue)

}

public String getKahao() {

return kahao

}

public void setKahao(String kahao) {

this.kahao = kahao

}

public String getXuehao() {

return xuehao

}

public void setXuehao(String xuehao) {

this.xuehao = xuehao

}

public String getYue() {

return yue

}

public void setYue(String yue) {

this.yue = yue

}

public String getStudentName() {

return studentName

}

public void setStudentName(String studentName) {

this.studentName = studentName

}

}

=========下面是输出内容=========

学生卡号:001

学生学号:001

学生姓名:孝世张三

学生余额:22.00

------------------------------------------

// Copyright (C) 2009 沈阳工程学院信息安全工作室

// 版权所有。

//

// 文件名:模拟停车场问题.cpp

// 文件功能描述:模拟停车场问题

//

//

// 创建标识:20091214

//

// 修改标识:20091218

// 修改描述:完成编码

//----------------------------------------------------------------*/

//头文件

#include <iostream>

#include <malloc.h>

#include <string>

#include <windows.h>

//常量定义

#define MAX_STOP 4 //定义停车场最大停车棚判数

#define MAX_PLATE 10//定义车牌号最大长度

#define TIME_COUNT "秒" //定义时间单位

#define TIME_MS_TO_CONUT 1000 //定义时间进制,意为由TIME_COUNT到毫秒的进制

#define UNIT_PRICE 10//定义单位时间收费标准

using namespace std //使用std命名空间

//数据结构定义

//定义存储汽车信息的结构体

typedef struct

{

char license_plate[MAX_PLATE]//汽车牌照号简空码,定义为一个字符指针类型

char state //汽车当前状态,字符p表示停放在停车位上,字符s表示停放在便道上,每辆车的初始状态用字符i来进行表示

int time //汽车停入停车场时的时间,用来计时收费

}CAR

//定义模拟停车场的栈结构

typedef struct

{

CAR STOP[MAX_STOP] //汽车信息的存储空间

int top //用来指示栈顶位置的静态指针

}SeqStack

//定义模拟便道的队列结构

typedef struct node

{

CAR WAIT //汽车信息的存储空间

struct node *next //用来指示队列位置的动态指针

}QNode //链队列节点的类型

/链咐改/定义链队列的收尾指针

typedef struct

{

QNode *front,*rear

}LQueue //将头尾指针封装在一起的链队

//函数声明

int Empty_LQueue(LQueue *q) //判队空

int LeaveCheck(SeqStack parking , char *license_plate) //检查离开的车是否在停车场中

int QueueLength(LQueue *q)//判队长度

int Out_LQueue(LQueue *&sidewalk , char *license_plate)//出队 *** 作

int StackEmpty(SeqStack parking) //判断栈是否为空

int StackFull(SeqStack parking) //判断栈是否为满

int StackPop(SeqStack &parking) //出栈 *** 作

int StackTop(SeqStack parking , char *license_plate , int &time)//取栈顶元素

void Car_come(SeqStack &parking , LQueue *&sidewalk) //有车到来时的 *** 作

void Car_leave(SeqStack &parking , LQueue *&sidewalk) //有车离开的 *** 作

void Display(SeqStack parking) //显示停车场内的所有信息 调试时用

void InitStack(SeqStack &parking) //初始化栈

void InitList(LQueue *&sidewalk) //初始化队列

void In_LQueue(LQueue *&sidewalk , char *license_plate)//进队 *** 作

void Input_Check(char *license_plate) ////检验输入的车牌是否合法

void StackPush(SeqStack &parking , char *license_plate , int stop_time)//进栈 *** 作

void main()

{

//定义变量

SeqStack parking

LQueue *sidewalk = NULL

char *choice = new char

int flag = 1 //定义一个变量 判断是否退出

//初始化一个为空的停车场

InitStack(parking)

//初始化一个为空的便道

InitList(sidewalk)

//运行界面及功能选择

while(flag)

{

cout<<"\n\t 停车场模拟管理系统 \n\n"

cout<<"\t|--------------------------------------------------|\n\n"

cout<<"\t|本程序为停车场的模拟管理系统,有车到来时请按C键。|\n\n"

cout<<"\t|然后根据屏幕提示进行相关 *** 作,有车要走时请按l键。|\n\n"

cout<<"\t|然后根据屏幕提示进行相关 *** 作,查看停车场请按D键。|\n\n"

cout<<"\t|然后根据屏幕提示进行相关 *** 作,要退出系统请按Q键。|\n\n"

cout<<"\t|--------------------------------------------------|\n\n"

cout<<"请选择 *** 作:"

gets(choice)

if(1 != strlen(choice))

{

cout<<"请正确输入选项!"

continue

}

else

{

switch(*choice)

{

case 'c':

case 'C':

{

Car_come(parking,sidewalk)break

}

case 'l':

case 'L':

{

Car_leave(parking,sidewalk)break

}

case 'q':

case 'Q':

{

flag=0break

}

case 'd':

case 'D':

{

Display(parking)break

}

default:

cout<<"选择不正确!请重新选择!\n"

}

}

}

}

//有车到来时的 *** 作

void Car_come(SeqStack &parking , LQueue *&sidewalk)

{

//定义变量

char license_plate[MAX_PLATE]

cout<<"请输入车辆的车牌号码:"

Input_Check(license_plate)

//判断停车场是否已满,满则进入便道,不满进入停车场

if(StackFull(parking))

{

In_LQueue(sidewalk , license_plate) //进入便道

cout<<"停车场已满请在便道等候,您的位置为"<<QueueLength(sidewalk)

<<endl

}

else

{

StackPush(parking , license_plate , GetTickCount()) //进入停车场

cout<<"请进入停车场中的"<<parking.top+1<<"号停车位\n"

}

// Display(parking)

}

//有车离开时的 *** 作

void Car_leave(SeqStack &parking , LQueue *&sidewalk)

{

//定义变量

SeqStack tmpparking//定义临时停车场

char leave_license_plate[MAX_PLATE]//要离开的车牌号

char license_plate[MAX_PLATE] //存放从停车场中读出来的车牌信息

int time

InitStack(tmpparking)//初始化临时停车场

//判断停车场中是否有车

if(StackEmpty(parking))

{

cout<<"当前停车场中没有车\n"

return //退出子函数

}

cout<<"请输入要离开的车牌照:"

Input_Check(leave_license_plate)

cout<<"当前停车场中有"<<parking.top+1<<"辆车\n"

if(LeaveCheck(parking , leave_license_plate)) //判断车是否在停车场中

{

//车在停车场中

cout<<"您的车在"<<LeaveCheck(parking , leave_license_plate)<<"号车位上\n"

while(StackTop(parking , license_plate , time)

&&(strcmp(parking.STOP[parking.top].license_plate , leave_license_plate) != 0))

{

strcpy(parking.STOP[parking.top].license_plate , license_plate)

cout<<"牌照为"<<license_plate<<"的车暂时退出停车场"<<parking.top+1<<"号位\n"

StackPush(tmpparking , license_plate , time) //停车场中的车暂时退出 进入临时停车场

StackPop(parking) //出栈

}

cout<<"牌照为"<<license_plate<<"的车离开停车场"<<parking.top+1<<"号位\n"

cout<<"您在停车场中停了"<<(GetTickCount()-time)/TIME_MS_TO_CONUT<<TIME_COUNT<<endl //输出所停时间信息

cout<<"应缴费用为"<<(GetTickCount()-time)/TIME_MS_TO_CONUT*UNIT_PRICE<<"元\n" //输出费用信息

StackPop(parking) //出栈

//将临时停车场中的车停回停车场

while(StackEmpty(tmpparking) != 1)

{

StackTop(tmpparking , license_plate , time)

StackPush(parking , license_plate , time)

cout<<"牌照为"<<license_plate<<"的车进入停车场"<<parking.top+1<<"号位\n"

license_plate[0] = '\0'

StackPop(tmpparking)

}

if(parking.top+1 == MAX_STOP-1) //判断车离开前停车场是否停满

if(QueueLength(sidewalk)) //如果停满则判断便道上是否有车

{

//便道中有车 则从便道中停入停车场

Out_LQueue(sidewalk , license_plate)//出队

StackPush(parking , license_plate , GetTickCount())//入栈

cout<<"在便道中牌照为"<<license_plate<<"的车进入停车场"<<parking.top+1<<"号位\n"

}

}

else

//车不在停车场中

cout<<"您的车不在停车场中!\n"

}

//初始化顺序栈

void InitStack(SeqStack &parking)

{

parking.top = -1

}

//判栈空

int StackEmpty(SeqStack parking)

{

if(parking.top == -1)

return 1

else

return 0

}

//判栈满

int StackFull(SeqStack parking)

{

if(parking.top == MAX_STOP-1)

return 1

else

return 0

}

//入栈

void StackPush(SeqStack &parking , char *license_plate , int stop_time)

{

parking.top++

strcpy(parking.STOP[parking.top].license_plate , license_plate)

parking.STOP[parking.top].state = 'p'

parking.STOP[parking.top].time = stop_time

}

//出栈 返回栈顶指针

int StackPop(SeqStack &parking)

{

if(StackEmpty(parking))

return 0

else

return parking.top--

}

//取栈顶元素

int StackTop(SeqStack parking , char *license_plate , int &time)

{

if(StackEmpty(parking))

return 0

else

{

strcpy(license_plate , parking.STOP[parking.top].license_plate)

time = parking.STOP[parking.top].time

return 1

}

}

//显示所有

void Display(SeqStack parking)

{

if(parking.top == -1)

printf("停车场为空\n")

else

{

while(parking.top != -1)

{

cout<<"车牌号为:"<<parking.STOP[parking.top].license_plate

cout<<",停在"<<parking.top + 1 <<"号车位上"

cout<<",已停"<<(GetTickCount()-parking.STOP[parking.top].time)/TIME_MS_TO_CONUT<<TIME_COUNT<<endl

parking.top--

}

}

}

//初始化队列

void InitList(LQueue *&sidewalk)

{

sidewalk = (LQueue *)malloc(sizeof(LQueue))

sidewalk->front=sidewalk->rear = NULL

}

//入队

void In_LQueue(LQueue *&sidewalk,char *license_plate)

{

QNode *car_on_sidewalk

car_on_sidewalk = (QNode *)malloc(sizeof(QNode)) //为新节点开辟新空间

strcpy(car_on_sidewalk->WAIT.license_plate , license_plate)//将数据写入节点

car_on_sidewalk->WAIT.state = 's' //写入停车信息

car_on_sidewalk->WAIT.time = GetTickCount()//写入停车时间

car_on_sidewalk->next = NULL

if(Empty_LQueue(sidewalk)) //队空则创建第一个节点

sidewalk->front = sidewalk->rear = car_on_sidewalk

else

{

//队非空插入队尾

sidewalk->rear->next = car_on_sidewalk

sidewalk->rear = car_on_sidewalk

}

}

//判队空

int Empty_LQueue(LQueue *q)

{

if(q->front == NULL)

return 1

else

return 0

}

//判队长度 返回队长

int QueueLength(LQueue *q)

{

QNode *p=q->front

int i=0

while(p != NULL)

{

i++

p=p->next

}

return i

}

//出队 成功返回1 队空返回0

int Out_LQueue(LQueue *&sidewalk,char *license_plate)

{

QNode *car_on_sidewalk

if(Empty_LQueue(sidewalk)) //如果队空返回0

return 0

car_on_sidewalk = sidewalk->front

strcpy(license_plate , car_on_sidewalk->WAIT.license_plate)//取出队头元素

if(sidewalk->front == sidewalk->rear) //队中只有一个元素

sidewalk->front = sidewalk->rear=NULL //删除元素

else

sidewalk->front = sidewalk->front->next//队头指针后移

free(car_on_sidewalk) //释放指针

return 1

}

//检查离开的车是否在停车场中 返回车在停车场中位置 不在则返回0

int LeaveCheck(SeqStack parking,char *license_plate)

{

int flag = parking.top+1 //定义变量记录当前车在停车场中位置

if(StackEmpty(parking))

return 0

else

{

//查找离开车所在位置

while(parking.top != -1 &&strcmp(parking.STOP[parking.top].license_plate , license_plate) != 0)

{

flag--

parking.top--

}

return flag

}

}

//检验输入的车牌是否合法

void Input_Check(char *license_plate)

{

int flag = 1

int i

string tmpstr

while(flag)

{

cin>>tmpstr

getchar()

if(tmpstr.length()<MAX_PLATE)

{

for(i=0i<10i++)

license_plate[i] = tmpstr.c_str()[i]

flag = 0

}

else

cout<<"输入有误,请重新输入:"

}

}

以前的课设 你看看吧 纯手工的~~

另外,站长团上有产品团购,便宜有保证

一般情况这种系统需要用数据库。如果不用数据库,那么要用文件存储信息。

1.学生信息:其实信息很多,名字,性别,系,级,入学时间,…………………………

2.挂失:要记录挂失时间,是否取消挂失,取罩核消时间等等

3.充钱:充钱时间,是否卜孙代充,充钱人,多少钱型闷链等

4.消费:支出金额,支出地点(终端机),是否透支等

5.借书:借书时间,书代码,还书时间,是否逾期,逾期滞纳金……

综上所述,这个程序不是50-100行能做完的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12397824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存