Java课设总结

在这次Java课设领到的题目是做一个通讯录,基于控制台输入输出。实现录入,查询,删除,展示等功能。我自己添加了一个类型输出。
期间本来还想做一个排序功能,由于时间有限,做了一部分,懒得调试,就把剩下的代码注释掉了。有心人也可以自己写一下。主代码里面,我建立一个connect类用于存放方法函数。在主函数中对其进行调用,将功能传进去,即可实现功能。用switch…case…和scanner类的调用来进行选项判别。期间遇到的最大的问题就是数组起始是从0开始而实际调用人数的话是从一开始。这样判别的时候数组第1个元素即a[0]为空。所以每次明明存进去了,条用的时候就会判别其为空。后来加了个判别式,判别数组是否为空。为空即跳过。即可实现功能。在排序方法中利用率toCharArray实现中文首字母的转换。不过没能合理的把字符串改为数字。所以功能未能实现。有时间可以试试接着做完。做一个完善出来。其实通讯录功能不适合用数组方式来实现。更适合使用列表等功能来实现。学了列表之后可以用列表来试试能否做出来。

package 课设;
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Locale;
import java.util.Scanner;



 class Person 
        {
            String name;
            String number;
            String type;
        }
class connect
{
	public int t;
            Person a[];
            public static int  no;
            public connect()
            {
                  a=new Person[100];
                  connect.no=0;
            } 

            public String add(String name,String number,String type)
            {
                if(connect.no == 0)
                System.out.println("请先添加联系人!");
                if(connect.no>99)
                return "添加失败";
                a[connect.no]=new Person();
                a[connect.no].name=name;
                a[connect.no].number=number;
                a[connect.no].type=type;
                connect.no++;
               
                return "添加成功";
            }   

            public Person seek(String name)
            {
                if(connect.no == 0)
                System.out.println("请先添加联系人!");
                for(int i=0;i<connect.no;i++)
                {  
                	if(a[i] != null)
                    if((a[i].name).equals(name))
                    {
                        System.out.println("联系人: "+a[i].name+"   电话:"+a[i].number +  "分类:"+a[i].type);
                        return a[i];
                    }
                }
                return null;    
            }

            public void look()
            {
                if(connect.no == 0)
                	System.out.println("请先添加联系人!");
                 t=connect.no/2;
                System.out.println("总存入人数为:"+t);
                for(int i=0;i<connect.no;i++)
                {
                	if(a[i] != null)
                    System.out.println("联系人: "+a[i].name+" 电话: "+a[i].number+  "分类:"+a[i].type);
                }
            }

            public String delete(String name)
            {
                if(connect.no == 0)
                System.out.println("请先添加联系人:");
                for(int i=0;i<connect.no;i++)
                { 
                	if(a[i] != null)
                    if((a[i].name).equals(name))
                    {
                        a[i]=a[connect.no-1];
                        connect.no=connect.no-1;
                        System.out.println("删除成功");
                        return "删除成功";
                    }
                }
                return "删除失败";
            }
            public String typeout(String type) {
				if(connect.no==0)
				System.out.println("请先添加联系人");	
				for(int i=0;i<connect.no;i++)
				{
					if(a[i]!=null)
					
						if((a[i].type).equals(type)) {
					
		                    System.out.println("联系人: "+a[i].name+" 电话: "+a[i].number);
						}
				}
            	
            	
            	return type;
            	
            }
            //@SuppressWarnings("unchecked")
			/*public String paixu(String[] args ) {
            	String[] scores=new String[2];
            	for(int i=0;i<connect.no;i++) {
            		if(a[i]!=null)
            			for(int t=0;t<connect.no-1;t++) {
            				a[i].name=scores[t];
            			}
            	}
            	char ss[] = str.toCharArray();//利用toCharArray方法转换
        		for (int i = 0; i < ss.length; i++) {
        			System.out.println(ss[i]);
        		}
            	//String[] strs = scores[t];
        		// 定义一个中文排序器
        		Comparator t = Collator.getInstance(Locale.CHINA);
        		// 升序排序
        		Arrays.sort(scores, t);
         
        		for (int i = 0; i < scores.length; i++) {
         
        			System.out.println(scores[i]);
         
        		}
            	
            	
            	return null;*/
				
}
public class 通讯录
{
    public static void main(String[]args)
    {
    	int num3=2;
    	
        Scanner sc=new Scanner(System.in);
        Scanner input = new Scanner(System.in);
        System.out.println("\t\t\t欢迎使用通讯录系统\n");
        System.out.println("\t\t\t1.用户端进入\n\n\t\t\t2.退出\n");
        System.out.println("____________________________________________________________________\n\n");
        System.out.print("请选择相应选项:");
        int num2 = sc.nextInt();  
        connect c = new connect();
            do {
                switch (num2)
                {
             
                case 1:
                    {
                        //connect c = new connect();
                        System.out.println("\t\t\t1.浏览\n");System.out.println("\t\t\t2.查找\n");
                        System.out.println("\t\t\t3.添加\n");System.out.println("\t\t\t4.删除\n");
                        System.out.println("\t\t\t5.按类型输出\n");System.out.println("\t\t\t6.退出\n");
                        System.out.println("输入指令:");
                        int num1 = input.nextInt();
                        switch (num1)
                        {
                            case 1:c.look();break;
                            case 2:
                            {
                                System.out.println("输入查找的名字:");
                                String n1 = sc.next();c.seek(n1);
                            }break;
                            case 3:
                            {
                                System.out.println("输入要添加的人数:");    
                                
                                int s=sc.nextInt();
                                connect.no=s;
                                for(int i=0;i<s;i++)
                                {
                                    
                                    System.out.println("请输入第"+(i+1)+"个人的姓名:");
                                    String name=sc.next();
                                    System.out.println("请输入第"+(i+1)+"个人的电话号码:");
                                    String number=sc.next();
                                    System.out.println("请输入第"+(i+1)+"个人的所属类别:");
                                    String type=sc.next();
                                    c.add(name,number,type);
                                   
                                }
                            }break;
                            case 4:
                            {
                                System.out.println("输入删除的姓名:");
                                String n3 = sc.next();c.delete(n3);
                            }break;
                            case 5:{
                            	System.out.println("请输入想查询的类型");
                            	 
                                 String n1 = sc.next();c.typeout(n1);
                            	
                            	
                            }break;
                           
                            default:
                                {
                                    System.out.println("\t\t\t谢谢您的使用\n");
                                   // System.exit(0);
                                }
                            }   
                        }break;
                case 2:System.out.println("\t\t\t谢谢您的使用\n");break;
                default:System.out.println("输入有误!");
                num2=2;
                }
                System.out.println("如果继续使用输入1,退出请输入2");
                Scanner pd=new Scanner(System.in);
                 num3 = pd.nextInt();
                 }while(num3==1);
    	System.out.println("谢谢使用!");
    }
}   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值