个人通讯录管理系统源代码

个人通讯录管理系统源代码
个人通讯录管理系统源代码

个人通讯录管理系统

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

public class TongXunLu {

public static void main(String[] args) {

new menu();

}

}

class menu implements ActionListener{

JMenuItem zengjia,suoyou,beifen,quit,select,del;

JFrame f;

Container con;

JMenuBar bar;

String str1,str2,str3;

JFileChooser fc1 = new JFileChooser();

File fc2=new File("D://test.txt");

menu(){

f=new JFrame("通讯录管理系统");

f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

f.setSize(500, 400);

f.setLocation(130, 150);

con=f.getContentPane();

Color c=Color.YELLOW ;

Font fo=new Font("黑体",Font.BOLD,40);

JPanel pan=new JPanel();

JLabel lab=new JLabel("通讯录管理系统");

lab.setForeground(c);

lab.setFont(fo);

pan.add(lab);

con.add(pan);

bar=new JMenuBar();

f.setJMenuBar(bar);

JMenu menu1=new JMenu("文件");

JMenu menu2 =new JMenu("查询");

JMenu menu3 =new JMenu("删除");

zengjia=new JMenuItem("增加记录");

suoyou=new JMenuItem("所有记录");

beifen=new JMenuItem("文件备份");

quit=new JMenuItem("退出");

select=new JMenuItem("查询");

del=new JMenuItem("删除");

menu1.add(zengjia);

menu1.add(suoyou);

menu1.add(beifen);

menu1.addSeparator();

menu1.add(quit);

menu2.add(select);

menu3.add(del);

zengjia.addActionListener(this);

suoyou.addActionListener(this);

beifen.addActionListener(this);

quit.addActionListener(this);

select.addActionListener(this);

del.addActionListener(this);

bar.add(menu1);

bar.add(menu2);

bar.add(menu3);

f.setV isible(true);

}

public File getFile() {

int ret = fc1.showSaveDialog(null);

if (ret == JFileChooser.APPROVE_OPTION) { return fc1.getSelectedFile();

}

return null;

}

public void actionPerformed(ActionEvent evt) { if(evt.getSource()==quit) System.exit(0);

if(evt.getSource()==zengjia){

f.dispose();

new xinjian();

}

if(evt.getSource()==suoyou){

f.dispose();

new suoyou();}

if(evt.getSource()==beifen){

char[] ss=new char[1];

try{

FileReader input=new FileReader("D://test.txt");

FileWriter output=new FileWriter("D://un.txt",true);

while(input.read(ss,0,1)!=-1)

output.write(ss);

input.close();

output.close();

}catch (IOException e) {

e.printStackTrace();

}

JOptionPane.showMessageDialog(null, "你确定要备份么?");

}

if(evt.getSource()==select){

f.dispose();

new select();}

if(evt.getSource()==del){

f.dispose();

new del();}

}

}

class xinjian extends menu implements ActionListener{

JTextField tf1,tf2,tf3,tf4;

JButton bt;

xinjian(){

bt=new JButton("确认");

BorderLayout l1=new BorderLayout();

JPanel pan=new JPanel();

JPanel pan2=new JPanel();

JPanel pan3=new JPanel();

JPanel pan4=new JPanel();

JPanel pan5=new JPanel();

JPanel pan6=new JPanel();

con.setLayout(l1);

GridLayout g = new GridLayout(5,1);

Color c=Color.yellow ;

Font fo=new Font("黑体",Font.BOLD,40);

JPanel panl=new JPanel();

JLabel lab1=new JLabel("通讯录管理系统");

lab1.setForeground(c);

lab1.setFont(fo);

pan.add(lab1);

JLabel lab2=new JLabel("姓名");

tf1=new JTextField(10);

JLabel lab3=new JLabel("电话");

tf2=new JTextField(10);

JLabel lab4=new JLabel("e-mile");

tf3=new JTextField(10);

JLabel lab5=new JLabel("qq");

tf4 = new JTextField(10);

panl.add(lab1);

pan.setLayout(g);

pan2.add(lab2);pan2.add(tf1);

pan3.add(lab3);pan3.add(tf2);

pan4.add(lab4);pan4.add(tf3);

pan5.add(lab5);pan5.add(tf4);

pan6.add(bt);

tf1.addActionListener(this);

tf2.addActionListener(this);

tf3.addActionListener(this);

tf4.addActionListener(this);

bt.addActionListener(this);

pan.add(pan2);pan.add(pan3);

pan.add(pan4);pan.add(pan5);

pan.add(pan6);

con.add(BorderLayout.NORTH,panl);

con.add(BorderLayout.CENTER,pan);

}

public void actionPerformed(ActionEvent evt){

if(evt.getSource()==quit) System.exit(0);

if(evt.getSource()==zengjia){

f.dispose();

new xinjian();}

if(evt.getSource()==suoyou){

f.dispose();

new suoyou();}

if(evt.getSource()==beifen){

char[] ss=new char[1];

try{

FileReader input=new FileReader("D://test.txt");

FileWriter output=new FileWriter("D://un.txt",true);

while(input.read(ss,0,1)!=-1)

output.write(ss);

input.close();

output.close();

}catch (IOException e) {

e.printStackTrace();

}

f.dispose();

JOptionPane.showMessageDialog(null, "你确定要备份么?");

}

if(evt.getSource()==select){

f.dispose();new select();}

if(evt.getSource()==del){new del();}

if(evt.getSource()==bt)

{

String str;

str1=tf1.getText();

str2=tf2.getText();

str3=tf3.getText();

String str4 = tf4.getText();

try{

FileWriter fos1=new FileWriter("D:\\un.txt",true);

BufferedWriter output=new BufferedWriter(fos1);

str=str1+" "+str2+" "+str3+" "+str4;

output.write(str);

output.write("\n");

output.close();

}catch (IOException e) {

e.printStackTrace();

}

JOptionPane.showMessageDialog(null, "添加成功!");

tf1.setText("");

tf2.setText("");

tf3.setText("");

}

}

}

class suoyou extends menu implements ActionListener{

JTextArea ta = new JTextArea(5,5);

char[] ss=new char[1];

String str;

suoyou(){

BorderLayout gr=new BorderLayout();

con.setLayout(gr);

JPanel pan=new JPanel();

pan.setLayout(new GridLayout(1,3));

JLabel lab1=new JLabel("姓名");

JLabel lab2=new JLabel("电话");

JLabel lab3=new JLabel("e-mile");

JLabel lab4=new JLabel("qq");

pan.add(lab1);

pan.add(lab2);

pan.add(lab3);

pan.add(lab4);

try{

FileReader file=new FileReader("D://un.txt");

while(file.read(ss,0,1)!=-1)

ta.append(String.valueOf(ss));

}catch (IOException e) {

e.printStackTrace();

}

con.add(BorderLayout.NORTH,pan);

con.add(BorderLayout.CENTER,ta);

}

public void actionPerformed(ActionEvent evt) {

if(evt.getSource()==quit) System.exit(0);

if(evt.getSource()==zengjia){

f.dispose();

new xinjian();}

if(evt.getSource()==suoyou){

f.dispose();

new suoyou();}

if(evt.getSource()==beifen){

char[] ss=new char[1];

try{

FileReader input=new FileReader("D://test.txt");

FileWriter output=new FileWriter("D://un.txt",true);

while(input.read(ss,0,1)!=-1)

output.write(ss);

input.close();

output.close();

}catch (IOException e) {

e.printStackTrace();

}

f.dispose();

JOptionPane.showMessageDialog(null, "你确定要备份么?");

}

if(evt.getSource()==select){

f.dispose();

new select();}

if(evt.getSource()==del){

f.dispose();

new del();}

}

}

class select extends menu{

JTextField tf;

JButton bt1;

JTextArea ta = new JTextArea(50,54);

select(){

BorderLayout l=new BorderLayout();

con.setLayout(l);

JPanel pan=new JPanel();

JPanel pan1=new JPanel();

JLabel lab=new JLabel("姓名");

tf=new JTextField(10);

bt1=new JButton("确定");

pan.add(lab);

tf=new JTextField(10);

pan.add(tf);

pan.add(bt1);

JLabel lab1=new JLabel("姓名");

pan1.add(lab1);

JLabel lab2=new JLabel("电话");

pan1.add(lab2);

JLabel lab3=new JLabel("e-mile");

pan1.add(lab3);

JLabel lab4=new JLabel("qq");

pan1.add(lab4);

pan1.add(ta);

bt1.addActionListener(this);

con.add(BorderLayout.NORTH,pan);

con.add(BorderLayout.CENTER,pan1);

}

public void actionPerformed(ActionEvent evt) { if(evt.getSource()==quit) System.exit(0);

if(evt.getSource()==zengjia){

f.dispose();

new xinjian();}

if(evt.getSource()==suoyou){

f.dispose();

new suoyou();}

if(evt.getSource()==beifen){

char[] ss=new char[1];

try{

FileReader input=new FileReader("D://test.txt");

FileWriter output=new FileWriter("D://un.txt",true);

while(input.read(ss,0,1)!=-1)

output.write(ss);

input.close();

output.close();

}catch (IOException e) {

e.printStackTrace();

}

f.dispose();

JOptionPane.showMessageDialog(null, "你确定要备份么?");

}

if(evt.getSource()==select){

f.dispose();

new select();}

if(evt.getSource()==del){

f.dispose();

new del();}

if(evt.getSource()==bt1){

String str4,str5;

str4=tf.getText();

try {

FileReader reader=new FileReader("D:\\un.txt");

BufferedReader input=new BufferedReader(reader);

str5=input.readLine();

while(!str5.startsWith(str4))

{

str5=input.readLine();

if(str5==null){

JOptionPane.showMessageDialog(null, "没有找到该人!");

break;

}

}

if(str5!=null&&str5.startsWith(str4))

{

ta.setText(str5);

}

input.close();

} catch (IOException e) {

e.printStackTrace();

}

tf.setText("");

}

}

}

class del extends menu implements ActionListener{

JTextField tf;

JButton bt2;

JTextArea ta = new JTextArea(15,54);

del(){

BorderLayout l=new BorderLayout();

con.setLayout(l);

JPanel pan=new JPanel();

JPanel pan1=new JPanel();

JLabel lab=new JLabel("姓名");

tf=new JTextField(10);

bt2=new JButton("确认");

JLabel lab1=new JLabel("姓名");

JLabel lab2=new JLabel("电话");

JLabel lab3=new JLabel("e-mile");

JLabel lab4=new JLabel("qq");

tf=new JTextField(10);

pan.add(lab);

pan.add(tf);

pan.add(bt2);

bt2.addActionListener(this);

pan.add(lab);

pan.add(tf);

pan1.add(lab1);pan1.add(lab2);pan1.add(lab3);pan1.add(lab4);

pan1.add(ta);

con.add(BorderLayout.NORTH,pan);

con.add(BorderLayout.CENTER,pan1);

}

public void actionPerformed(ActionEvent evt) {

if(evt.getSource()==quit) System.exit(0);

if(evt.getSource()==zengjia){

f.dispose();

new xinjian();}

if(evt.getSource()==suoyou){

f.dispose();

new suoyou();}

if(evt.getSource()==beifen){

char[] ss=new char[1];

try{

FileReader input=new FileReader("D://test.txt");

FileWriter output=new FileWriter("D://un.txt",true);

while(input.read(ss,0,1)!=-1)

output.write(ss);

input.close();

output.close();

}catch (IOException e) {

e.printStackTrace();

}

f.dispose();

JOptionPane.showMessageDialog(null, "你确定要备份么?");

}

if(evt.getSource()==select){

f.dispose();

new select();}

if(evt.getSource()==del){

f.dispose();

new del();}

if(evt.getSource()==bt2){

int i=0,m=0,n=0;

String str4,str5;

StringBuffer sbuffer=new StringBuffer();

char[] ch=new char[1];

str4=tf.getText();

try {

FileReader reader=new FileReader("D:\\un.txt");

BufferedReader input=new BufferedReader(reader);

str5=input.readLine();

while(str5!=null)

{

if(str5.startsWith(str4))

{

JOptionPane.showMessageDialog(null, "你确定要删除吗!?");

i=i+1;

str5=input.readLine();

}

else {

sbuffer=sbuffer.append(str5);

sbuffer=sbuffer.append("#");

n++;

str5=input.readLine();

}

}

if(i==0){

JOptionPane.showMessageDialog(null, "没有找到该人!");

}

input.close();

reader.close();

FileWriter fos1=new FileWriter("D:\\un.txt");

BufferedWriter output=new BufferedWriter(fos1);

String []ss2=new String[100];

ss2=sbuffer.toString().split("#");

for(int j=0;j

output.write(ss2[m]);

output.write("\n");

m++;

}

output.close();

} catch (IOException e) {

e.printStackTrace();

}

tf.setText("");

try{

FileReader file=new FileReader("D:\\un.txt");

while(file.read(ch,0,1)!=-1)

ta.append(String.valueOf(ch));

file.close();

}catch (IOException e) {

e.printStackTrace();

}

}

}

}

C语言课程设计报告—手机通讯录管理系统

C程序课程设计报告 --手机通讯录管理系统 姓名:谢骏 学院:珠宝学院 学号:649 班级:141082

一课程设计目的和内容概述 1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。 2.内容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。 其中结构体,函数的调用,算法的设计是尤为重要的。 二题目 手机通讯录管理系统。 [问题描述] 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 [基本要求] 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:

A:办公类B:个人类C:商务类 (2)当选中某类时,显示出此类所有数据中的姓名和电话号码 (3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。例如:杨春商务类 当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 三程序设计 1.总体设计 首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。 2.详细设计

通讯录源代码详解

首先,对于stdlib.h头文件,你们不需要知道别的,只要了解,它里面高喊有申请动态内存空间的函数malloc() 就可以了。所以,想要使用该函数,必须加此头文件,就像想要使用printf() 和scanf()必须要加上stdio.h一样。同样,string.h头文件里也包含有好多函数,在本程序里面用的是strcmp() strcpy(),strlen()等等。 下面讲讲#define。这就是传说中的宏定义了。(额外讲一点,之所以称之为“传说中”,是因为我在接触它之前,感觉有多么多么神秘,但真正了解了,其实也没啥神秘可言)。好了不废话了,举个例子#define MAXQQ11.其中,MAXQQ 是宏名,11 是宏体,用宏名可以代替宏体。如若有一下语句:#define M 10 int a =M;则a的值就为10了;理解了吧?或许你们会问:为什么要用那么一大串字母代替一个数字呢?不麻烦么?直接a = 10;不更简单么?呵呵,其实这正是为了修改的方便才用的。比如,一个很大的程序里面多次用到常量10,但后来需要把10改为11,那么只要修改开头部分的#define M 11就可以了,而大可不必在程序中一个一个的闷着头在那里一个劲的傻找。是吧? 下面是结构体,tpyedef struct _person {…}person;至于typedef语句,我想,理论是不能解开困惑的,还是举个例子吧:如有typedef int LIKAI;LIKAI a; 语句就等同于:int a; 两位聪明的三姐四姐,明白了没?总之一句话:typedef就是为数据类型取个别名,(刚刚讲的宏定义是给常量(或表达式)取个别名);所以,我们看到下面的一个结构体里的person per;语句就等同于struct _person per; 还有再下面的addr_book *head =NULL;就等同于struct addr_book *head =NULL啦!这样可以少写一些代码(这里其实也就是少写了一个单词而已)再下面从void add()~void input_person(person *p); 都是函数声明,这一点徐慧丽同学比较了解,有疑问可以问她。 再下面是定义的多个字符串数组,其长度已经隐式的指出,就是下面所以字符个数之和。再下面就是主函数main()了,对了,关于函数的调用,三位同学还是有必要再了解一下的,但是限于篇幅,老师在这里就不再赘述。希望掌握欠佳的同学课后自行温习一下。main()函数开头,调用perint_welcome()函数,我们跳到这个函数里面看一看它的运行机制:外重for 循环内的变量i控制着屏幕的行数,在第四行(i从0~3),开始打印,if里面的三个打印字符串都打印完了呢,就直接跳到第七行,退出外重for循环,打印“回车键进入…”,等用户敲回车时,该函数执行完毕,返回到main()里调用它的地方。 然后进入while循环,循环条件永远为真,因为里面的switch语句里包含很多break语句,所以我们并不怕陷入死循环的泥沼中,嘿嘿,(因为我们不知道用户会输入多少条命令,所以要用while循环),在switch语句里,开关的钥匙是一个函数的返回值,这样可以少定义一个变量,代码也变得精简多了,好了,我们再跳到print_menu()函数里面看看:首先,清屏函数system(“cls”),(我帮你们想好了。要是老师问你们,你们只需说这是个清屏函数,是你们需要清除Dos窗口内的字符的时候,请教高人才得以知道的,嘿嘿),printf(menu);函数打印主菜单界面,并等待用户选择命令,若不在1~8的命令范围只内,提示有误,并请求再次输入,当输入命令合法的时候,返回该命令数字。然后我们在跳回主函数的switch 语句里,可以看到,无论用户选择那个命令,都会调用一个函数,这就是面向过程程序设计的一个特点,(徐慧丽同学现在知道了所谓的函数串的概念了吧?)而C++则不同,它所操作的都是由一个个类所定义的对象,而每个对象都有自己的“方法”(“方法”就是成员函数的一种牛叉的叫法,即专业名词,呵呵),体现了C++不同于C的一个特点:封装性。其实我想我们以开始学C的相对于一开始学C++的同学还是很幸运的,因为我们首先接触的是面向过程程序设计,C++ 我们以后一定会学(会了C还怕不会C++?),而我们有C的基础,可以透过语法结构,从思想上、跟不上区别于二者,对照其异同点,效果会更好,而对于他们一开始就学C++的同学,此生恐怕没有机会接触C了…所以….唉,都是题外话,不说了。

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

手机通讯录源代码

#include #include #include #include #define N 15 //最大容量为15 typedef struct //定义一个结构 { char name[10]; char haoma[15]; char leibie[10]; char dizhi[20]; }ren; //菜单 void menu() //目录 { system("cls"); //清屏 printf(" ######### 欢迎使用手机通讯录#########\n"); printf("\n"); printf("======================================================================= =======\n"); printf(" 1.~~查询~~ \n"); printf(" 2.~~添加~~ \n"); printf(" 3.~~拨号~~ \n"); printf(" 4.~~修改~~ \n"); printf(" 5.~~删除~~ \n"); printf(" 0. ~~退出~~ \n"); printf("======================================================================= =======\n"); printf("\n"); printf(" 个人通讯录\n"); printf("\n"); printf(" ~~请选择相应的功能~~:"); } void input() //查询 { int help=0; //帮助指令,如果查找所找的类别中没有数据,显示 ren ry; FILE *fp; char leibie[10]; system("cls");

通讯录管理系统

通讯录管理系统说明书 一、使用的技术和开发平台: 基于https://www.360docs.net/doc/f315820805.html,技术开发的数据库应用程序。开发平台为windows,使用的语言为C#2008,数据库为:MSSQL SERVER2008 二、系统功能模块 本系统是使用c#2008和MSSQL SERVER2008开发的一个数据库应用程序,其主要功能是实现对不同组别的联系人信息进行管理,具体来说分如下几个功能模块: 1、后台管理模块 对系统管理员账户的添加、删除、修改等操作 2、登录验证系统 系统启动时,将出现登录窗口,要求用户输入正确的用户名和密码,否则无法进入系统。 2、联系人管理系统 登录成功后将进入系统的主窗口(FormMain.cs),如下图所示: 其中组别是对联系人分的类,根据添加到数据库中的所有联系人的组别确定,是可以更改的。主窗口第一次显示时,默认显示第一个组别的所有联系人。可以在左边树形列表中选择不同的组别,同时右边的ListView自动显示不同组别的所有联系人。在联系人菜单下可以实现新增联系人、删除联系人、修改或查看联系人以及搜索,不论是新增、删除还是修改联系人完毕后,下面的ListView会同时更新显示联系人及组别。状态栏显示登录账户名和选中组别包含的联系人个数。 当用户单击新增联系人菜单项时,弹出如下窗体(FrmAdd.cs),以实现新增:

其中组别是根据数据库中已有的组别自动加载到组合框中的。当用户在ListView中选择某个联系人后再单击删除联系人菜单项,可将该联系人删除。当用户在ListView中双击某个联系人或单击修改或查看联系人菜单项,会弹出如下窗体(FrmMod.cs),以实现修改或查看联系人:不论是添加还是修改联系人时,组别都是可以修改的,注意姓名和组别不能为空。

软件体系结构 个人通讯录管理系统

课程实验报告 软件系统结构 专业 软件工程 学生姓名 张伯虎 班级 B 软件121 学 号 1210701128 指导老师 孙莉

实验一 C/S结构应用设计 一、实验目的 设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。 二、实验原理 1、C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。 2、C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。 (1)二层客户/服务器风格 (2

三、主要仪器及耗材 每人一台计算机 四、实验步骤及内容 需要实际设计开发出一个简单的基于二层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下: 1、在 SQL Server 2000中建立数据库Contact,建立表friend。 建立数据库Contact: create database Contact use contact go 建立表friend: Create table friend( Fid int identity(1,1) not null,--编号信息 Fname varchar(8) not null,--姓名信息 Fphone varchar(12) ,--电话信息 Faddress varchar(100) –地址信息 ) go 2、在Visual Studio 2000中用C#语言建立用户界面层(UI)程序:Contact 项目,主要呈现用户操作界面。

个人通讯录管理系统c语言源程序优秀版)

#include /*头文件*/ #include //包含最常用的系统函数 #include //关于字符数组的函数定义的头文件#include //控制台输入输出 //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char xingming[20]; /*定义输入名字的数组*/ char dianhua[20]; /*定义输入电话号码的数组*/ char dizhi[40]; /*定义输入地址的数组*/ } txl[100]; //默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void zhucaidan(); /*主菜单函数*/ void zengjia(); /*增加联系人函数*/ void readfile(); /*文件中读入函数*/ void writefile(); /*文件中写入函数*/ void xiugai(); /*修改联系人函数*/ void xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /*电话号码修改*/ void chazhao(); /*查找联系人函数*/

void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/ if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/

[计算机]同学通讯录信息管理

题目:同学通讯录信息管理 一、课程设计时间 2010~11第2学期第15周,即6月13日~6月17日,共计1周,20学时。 二、课程设计内容 用C语言编写软件完成以下任务: 能够对同学的通讯录信息进行数字化管理,人数不少于五人。通讯信息应保存到文件myfile.dat中。 三、课程设计要求 程序质量: ?贯彻结构化的程序设计思想。 ?用户界面友好,功能明确,操作方便。 ?用户界面中的菜单至少应包括“同学信息录入”、“同学信息修改”“同 学信息查询(根据姓名,或编号等)”、“显示全部同学信息”、“退出” 5项 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: ?课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容 参见提供的模板。 四、指导教师和学生签字 指导教师:________ 学生签名:________ 五、成绩 六、教师评语

目录 一、需求分析 (1) 二、设计分析 (3) 三、主要界面截图 (12) 四、技术要点 (16) 五、个人总结 (17) 六、参考文献 (19) 七、源程序 (19)

一、需求分析 经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块, 其中每个程序对应一个函数,他们的功能分别是:同学信息录入,同学信息修改,同学信息查询,显示全部同学信息以及退出保存。在这些函数中,前两个函数的实现是整个程序的核心,较为复杂。 1. 同学信息录入主要实现程序最初运行时学生通讯录的录入以及其后的运行中学生通讯录的追加功能。 2. 同学信息修改实现的功能是将错误的同学信息进行修改,加以完善 3. 显示学生通讯录主要功能是将学生的全部通讯录信息显示出来。 4同学信息查询实现的功能是按照学号或姓名对学生的通讯录记录进行查询。 5保存退出实现功能为将通讯录进行保存到文件中,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

通讯录管理系统需求分析

通讯录管理系统需求分析 项目编号:S1-BS-HTML-001 l项目概述 1.引言 1.1编写目的 在完成了针对通讯录管理系统的前期调查,同时与多位软件使用者进行了全面深入地探讨和分析的基础上,提出了这份软件需求规格说明书。 此需求规格说明书对《通讯录管理系统》软件做了通讯录管理系统的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。本说明书的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。 本说明书是整个软件开发的依据,它对以后阶段的工作起指导作用。本文也是项目完成后系统验收的依据。

1.2项目背景 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(mis),要求应用程序功能完备,易使用等特点。 1.3定义 需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。 2.任务概述 2.1目标 实现通讯录管理系统的基本功能,可以实现电话用户的查询、电话号码的查询、电话号码所在地的查询、电话号码的添加及删除等功能,以方便人们的记录和通讯。 2.2运行环境 2.2.2.1服务端 A. 操作系统:Windows 2003 Server 2.2.2.2客户端 A. Windows 95/98/me/Xp/2000/2003, Unix, Linux,Vista,Mac OS各版 2.3条件与限制 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(mis),要求应用程序功能完备,易使用等特点。 3.数据描述 开始 3.1数据流图 以可读写的方式打开一个数据文件 将此文件的内容读出,并存入一个新的结构体类型的数组中。 调用menu()菜单函数

题目通讯录管理系统

题目 2 通讯录管理系统 一.设计要求 1、问题描述 设有一通讯录,记录联系人的联系信息,包括联系人姓名、联系人多个联系电话、邮箱、联系地址以及所属群组。联系人按姓氏序列升序排列并按顺序编号。使用者能根据姓名或编号对联系人信息进行增删改查。请编制一程序模拟该通讯录的管理。 2、设计要求 1)基本要求 (1) 新建联系人。输入联系人的姓名、电话、email、地址和分组等信息, 并插入通讯录的正确位置。 (2) 编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号 码、修改或删除email、地址和分组等信息。 (3) 删除联系人。可按姓名或序号删除联系人的信息。 (4) 查询联系人。可按姓名或序号查询联系人的信息并输出。 (5) 群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移 除群组,并可按群组查询联系人信息。 (6) 输出通讯录。按顺序输出通讯录的全部信息。 2)以下为选做: (7) 按姓名查询联系人时可进行模糊查询。 (8) 通过文件读写实现通讯录信息的读取和记录。 二.概要设计 1.主界面设计 为了实现通讯录管理系统,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主菜单运行界面如下图

所示。 2.存储结构设计 本系统主要采用链表结构类型存储联系人信息。 3.系统功能设计 本系统分为以下7个功能模块。 (1)添加联系人:添加联系人子模块可完成添加联系人姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。 (2) 编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。 (3) 删除联系人。可按姓名或序号删除联系人的信息。 (4) 查询联系人。可按姓名或序号查询联系人的信息并输出。 (5) 群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。 (6) 输出通讯录。按顺序输出通讯录的全部信息。 (7)可选择是否保存并退出系统。 三.模块设计

个人通讯录管理系统C语言课程设计报告

重庆科技学院 《C语言程序设计》 课程设计报告 学院:_电气与信息工程学院_ 专业班级:电自专2011-01 学生姓名:蒋洪山学号: 2011630194 设计地点(单位)________ I515 ______________ __ 设计题目:__________个人通讯录管理系统 _____________ 完成日期: 2012 年12月28日 指导教师评语: ______________________ _________________ __________________________________________________________________________________ __________________________________________________________________________________ _____________________________________ __________ _ 成绩(五级记分制):______ __________ 指导教师(签字):________ ________

摘要 本次课程设计的题目为个人通讯录管理系统,要求将程序中所输入的联系人姓名、电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存的联系人信息进行显示、查询、修改、删除等功能。 我编写的程序从整体上看可分为两个部分,一部分为文件的建立、读取和保存,另一部分为通讯录功能的实现。在文件部分,我通过readfile()函数和writefile()函数从而实现了对磁盘上数据的进行写和读,通过刚开始的界面提示可以知道文件是否建立,以免丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择。在模块功能实现部分,通过scanf从键盘上输入的数字放到switch() case 循环中来实现调用zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、“修改”、“删除”等不同功能。 关键字:文件、数组、循环、函数

通讯录管理系统课程设计报告..

设计课题题目 一、课程设计目的与要求 1.课程设计目的 (1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。 (2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。 2. 课程设计要求 制作一个通讯录系统。 (1)该程序具有查找、添加、修改、删除功能。 (2)通讯录包括:姓名、电话、街道、城市、省、邮编等。 二、总体设计 根据系统的要求,系统总体设计如图1所示。

三、详细设计 1、数据结构设计 #include /*标准输入输出函数库*/ #include /*标准函数库*/ #include /*字符串函数库*/ #define FILENAME "phone.dat" struct date //定义一个结构体类型数组 { char name[10]; /*姓名*/ char phone[12]; /*电话*/ char email[20]; /*邮箱*/ char QQ[20]; /*QQ*/ } per[10]; int menu() //主菜单选择函数 2.函数说明 (1) 主函数 main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。 (2)

四、程序清单 1、头文件 #include /*标准输入输出函数库*/ #include /*标准函数库*/ #include /*字符串函数库*/ #define FILENAME "phone.dat" 2、主函数 void main() //主函数 { int n=0,i; while(1) { switch (menu()) { case 1: { printf("\n\t 通讯信息录入\n"); //信息录入 n=Input(per, n); } break; case 2: printf("\n\t\t\t 通讯录记录表\n"); //显示记录 Display(per,n); break; case 3: printf("\n\t保存功能\n"); WritetoText(per,n); //保存数据 printf("\t"); system("pause"); //操作完成后进行暂停 break; case 4: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(per,n); //删除记录 printf("\t"); system("pause"); break; case 5: printf("\n\t修改通讯录中的记录\n"); Change(per,n); //修改数据

c课程设计通讯录管理系统》

课程设计说明书(论文)课程名称 C++程序设计实践 题目通信录管理系统 专业软件工程班级 学号姓名 xx 起止日期 指导教师赵新慧成绩 辽宁石油化工大学计算机与通信工程学院

摘要 本次课程设计任务是通过编写一个通信录管理系统,学习用Visual?C++?开发简单的管理系统。采用Visual?C++?软件为主要开发工具。巩固和加深学生对C++课程的基本知识的理解和掌握,掌握C++编程和程序调试的基本技能,利用C++进行简单软件设计的基本思路和方法,提高运用C++解决实际问题的能力,掌握书写程序设计说明文档的能力使用计算机进行信息管理。实现通信录的管理功能(添加、删除、排序)、按姓名查询的功能,以及把联系人资料保存在文件中,将文件中内容读出来。使用计算机进行系统管理,不仅提高了工作效率,而且大大提高了其安全性,尤其对于复杂的信息管理,计算机能充分地发挥它的优越性,通信录管理系统是每个人不可缺少的部分,在课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual C++,在程序设计中,运用了面向对象解决问题的方法。程序通过调试运行,初步实现了设计目标。 Abstract The curriculum design task is through the preparation of a student achievement ranking management system, learning management system with Visual C++ 6 to develop simple. Using Visual C++ 6 software as the main development tool. To consolidate and deepen the students the basic knowledge of C++ course of understanding and master, master the basic skills of C++ programming, the basic idea and method of software design using C++, to improve the ability to use C++ to solve practical problems, to master the ability to write program design use of computer information management. Realization grade management functions (add, delete, sort), statistical functions (the highest score, the lowest score, average score, pass rate), student ID, name, or the name of course query results function, as well as the students' scores are stored in the file. The use of computer management system, not only

个人通讯录管理系统,java源代码

/** * 业务类 */ public class PABmanager { /** * 系统启动 */ public static void main(String[] args) { Scanner input = new Scanner(System.in); String num = input.next(); if ("1".equals(num)) { String lbmc = input.next(); String lbsm = input.next(); String lbbz = input.next(); Type type = new Type(lbmc,lbsm,lbbz); typeDao.createType(type); }else if ("2".equals(num)) { List types = typeDao.queryType(); for (int i = 0; i < types.size(); i++) { Type type =types.get(i);

} }else if ("3".equals(num)) { String lbmc = input.next(); Type type = new Type(lbmc,null,null); typeDao.deleteType(type); }else if ("4".equals(num)) { break; }else{ } } }else if ("2".equals(in2)) { break; }else{ } } }else if ("3".equals(in2)) { System.exit(-1); }else{ } } } }

学校通讯录管理系统数据库设计

数据库设计 在本实例中使用的是SQLServer 2000数据库管理系统。数据库服务器安装的位置为本机,数据库名称为commu ni catio nserver 。下面将介绍数据库分析和设计、数据表的创建、数据表关系图和创建存储过程的内容。 4.2.1 数据库分析和设计 在本节中,将根据上一节系统功能的设计分析创建各数据表的实体E-R关系图,它是数 据库设计非常重要的一步,下面用E-R图的形式表示出各实体的属性。 1. 用户E-R实体图 用户的实体具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性,ER图如图4-5所示。 图4-5 用户E-R实体图 2. 地区E-R实体图 地区的实体具有地区编号、地区名称2个属性,E-R图如图4-6所示。 图4-6 地区E-R实体图 3. 职务E-R实体图 职务的实体具有职务编号、职务名称2个属性,E-R图如图4-7所示。 图4-7 职务E-R实体图 姓名用户权限性别 1 用户E-mail 地区 职务职务名称

4. 学校E-R 实体图 学校的实体具有学校名称、学校所在地区、在校学生人数3个属性,可用 E-R 图表示, 如图4-8所示。 (学校名称X 学校一(在校学生人数 图4-8 学校E-R 实体图 5. 通讯录E-R 实体图 通讯录的实体具有联系人姓名、地址、联系电话、所属职务、所在学校、所在单位、所 属地区7个属性,E-R 图如图4-9所示。 图4-9 通讯录E-R 实体图 4.2.2 数据表的创建 在上面一节中讲解了实体的 E-R 图,本节中将根据E-R 图的内容,创建企业信息管理系 统中的各数据表,在此系统中共涉及到 5个数据表的应用,分别为如下。 1、 字段采用camel 风格定义 2、 用不同颜色区分字段 主键:蓝色 外键:白色 既是主键又是外键:淡蓝色 普通字段:青绿 学校编号 学校所在地区 联系电话 通讯录 所在单位 * 所在学校 彳所属职务

通讯录管理系统

淮北师范大学 软件系列课程设计 通讯录管理系统 学院计算机科学与技术学院学生姓名陈文超 学号20081201011 指导教师姓名陈美荣 2010年06月20日

目录 摘要........................................................ 1.绪论....................................................... 1.1 开发背景简介......................................... 1.2 管理系统的发展趋势……………………………………………… 1.2 目的目的和意义........................................ 2. 开发工具的选择............................................ 3.系统分析................................................... 3.1题目需求分析............................................ 3.2系统功能分析............................................ 4.系统总体规划............................................... 4.1概要设计............................................... 5.系统设计................................................... 5.1系统操作流程图.......................................... 5.2系统详细设计............................................ 6.调试....................................................... 7.全文总结................................................... 8.致谢..................................................... 参考文献.....................................................

通讯录管理系统(C语言)

说明 1、设计的目的 1)复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握;2)利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;3)培养学生在项目开发中团队合作精神、创新意识及实战能力。 2、设计的任务 根据学生的实际情况,进行分组选题。主要的课程设计题目如下(学生也可自主选题): 1、图书管理系统 2、学生信息管理系统 3、学生成绩管理系统 4、学生通讯录管理系统 5、职工信息管理系统 6、设计简单的计算器 课程设计采用学生自主设计和指导老师辅导相结合的方式。 3、设计要求与设计报告 设计要求: 1、任选上述题目之一,或自选题目。 2、模块化的程序设计 3、锯齿形的程序书写格式。 4、必须通过编译连接运行 设计报告: 1、设计目的和任务 2、总体设计:包括程序设计组成框图、流程图。 3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。 4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。 5、源程序清单和执行结果:清单中应有足够的注释。

设计目的和任务 (主要介绍设计的任务,为什么要设计,设计要达到什么样的目的。) 设计目的:(1)基本掌握面向过程程序设计的基本思路和方法; (2)达到熟练掌握C语言的基本知识和技能; (3)能够利用所学的基本知识和技能,解决简单的程序设计问题 程序功能:(1).学生基本信息及成绩所选科目成绩的录入。 (2).基本信息的查询(分系、班级;分科目)与修改。 (3).对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率); (4).对所开课程的成绩分析(求其平均成绩,最高分和最低分); (5).对学生考试成绩进行排名; 目录 一、总体设计 (3) 二、详细设计 (4) 三、调试与测试 (5) 四、源程序清单和执行结果 (6) 五、建议和体会 (7) 六、参考文献 (8)

手机通讯录开发源代码

设计开发源代码 1.AddContactsActivity类 package .demo.pr3; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import android.widget.Toast; import .demo.pr3.datax.ContactsTable; import https://www.360docs.net/doc/f315820805.html,er; /*增加记录操作界面*/ public class AddContactsActivity extends Activity { private EditText nameEditText; //输入框 private EditText mobileEditText; //手机输入框 private EditText qqEditText; //qq private EditText danweiEditText; //单位 private EditText addressEditText; //地址 Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/f315820805.html,yout.edit); setTitle("添加联系人"); //从已设置的页面布局查找对应的控件 nameEditText=(EditText)findViewById(https://www.360docs.net/doc/f315820805.html,); mobileEditText=(EditText)findViewById(R.id.mobile); danweiEditText=(EditText)findViewById(R.id.danwei); qqEditText=(EditText)findViewById(R.id.qq); addressEditText=(EditText)findViewById(R.id.address); } /*创建菜单 */ public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE,1, Menu.NONE, "保存"); menu.add(Menu.NONE,2, Menu.NONE, "返回"); return super.onCreateOptionsMenu(menu); } /* 菜单事件*/ public boolean onOptionsItemSelected(MenuItem item){ // TODO Auto-generated method stub

相关文档
最新文档