当前位置:首页 » 编程语言 » 班级通讯录c语言

班级通讯录c语言

发布时间: 2022-06-02 16:27:51

㈠ 用c语言做一个班级通讯录,要求有学号、姓名、性别、手机号码、QQ号、电子邮件、MSN、家庭住址、办公地址

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct student
{
char num[20];//学号
char name[20];//用户姓名
char phone[20];//电话号码
char addr[100];//通讯地址
struct student *next;
};

void insert(student* head)//添加一条记录
{
student *p=head;
student *newStud=(student*)malloc(sizeof(student));
printf("输入添加用户信息\n");
printf("学号:");
scanf("%s",newStud->num);
printf("姓名:");
scanf("%s",newStud->name);
printf("电话:");
scanf("%s",newStud->phone);
printf("地址:");
scanf("%s",newStud->addr);
while(p->next!=NULL)
{
if(strcmp(p->num,newStud->num)==0)
{
printf("此学号的用户已存在!\n");
return;
}
p=p->next;
}
p->next=newStud;
newStud->next=NULL;
printf("添加成功\n");
}

void update(student *head)//修改一条记录
{
student *p=head->next;
char num[20];
printf("输入待修改用户学号:");
scanf("%s",num);
while(p!=NULL)
{
if(strcmp(p->num,num)==0)
{
printf("输入修改后信息\n");
printf("学号:");
scanf("%s",&p->num);
printf("姓名:");
scanf("%s",&p->name);
printf("电话:");
scanf("%s",&p->phone);
printf("地址:");
scanf("%s",&p->addr);

printf("修改成功\n");
return;
}
p=p->next;
}
printf("不存在此学号的用户");
}
void delRecord(student *head) //删除一条记录
{
student *p1,*p2;
p1=head;
p2=p1->next;
char num[20];
printf("输入待删除用户学号:");
scanf("%s",num);
while(p2!=NULL)
{
if(strcmp(p2->num,num)==0)//找到则删除此用户
{
p1->next=p2->next;
free(p2);
printf("删除成功\n");
return;
}
p1=p2; //没找到则继续遍历
p2=p2->next;
}
printf("不存在此学号的用户\n");
}

void findByNum(student *head)//按学号查找
{
student *p=head->next;
char num[20];
printf("输入待查找用户学号:");
scanf("%s",num);
while(p!=NULL)
{
if(strcmp(p->num,num)==0)
{
printf("学号:%s\n",p->num);
printf("姓名:%s\n",p->name);
printf("电话:%s\n",p->phone);
printf("地址:%s\n",p->addr);
return;
}
p=p->next;
}
printf("不存在此学号的用户\n");
}

void findByName(student *head)//按姓名查找
{
student *p=head->next;
char name[20];
printf("输入待查找用户姓名:");
scanf("%s",name);
while(p!=NULL)
{
if(strcmp(p->name,name)==0)
{
printf("学号:%s\n",p->num);
printf("姓名:%s\n",p->name);
printf("电话:%s\n",p->phone);
printf("地址:%s\n",p->addr);
return;
}
p=p->next;
}
printf("不存在此姓名的用户\n");
}

void main()
{
student *head=(student*)malloc(sizeof(student));
head->next=NULL;
char choice;

printf("\t*****************************\n");
printf("\t1,添加一条记录\n");
printf("\t2,修改一条记录\n");
printf("\t3,删除一条记录\n");
printf("\t4,按学号查找\n");
printf("\t5,按姓名查找\n");
printf("\t6,退出\n");
printf("\t请按键选择\n");
printf("\t*****************************\n");

while(true)
{
printf("请按键选择操作:\n");
fflush(stdin); //清除缓冲区
choice=getch();
switch(choice)
{
case '1':
insert(head);
break;
case '2':
update(head);
break;
case '3':
delRecord(head);
break;
case '4':
findByNum(head);
break;
case '5':
findByName(head);
break;
case '6':
exit(0);
default:
printf("输入错误\n");
}
}
}
你的num应该是char类型吧?
还有,name数组长度不用那么大啊,好浪费空间!
我测试了下,没什么问题,要是有什么问题可以hi我
另外,站长团上有产品团购,便宜有保证

㈡ C语言的课程设计,做的是全班同学通讯录,然而我并不懂程序是怎样调用的

里面包括文件的调用,各种查找,筛选的函

㈢ C语言编辑 高分 班级通讯录管理系统

VC的,可以稍加修改,TC和VC差别不大,你可以先测试下,可以留言我看到就会给你发过去

㈣ 用c语言编写通讯录程序

这个属于基本的结构体数组和文件读写操作。

㈤ C语言编程 为班里同学设计一份班级通讯录。编写功能菜单。记录每一位同学的学号,姓名,性别,手机号码

这建议你看下c primer plus这本书的最后一章,有详细的介绍。

㈥ c语言实验题,使用共同体类型,建立一个班级通讯录,其中包括30名学生和5名任课教师

union_people
{
struct{
//里面自己写

}student;

struct{
}teacher;

}

㈦ 怎么用C语言编写简单的班级通讯录系统的管理与实现

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "iostream.h"
#include "fstream.h"

typedef struct goal /*成绩*/
{
float course1;
float course2;
float course3;
float course4;
float course5;
}goal;

typedef struct base /*基本信息*/
{
int num;
char name[20];
char sex[4];
int age;
long tel;
goal *brother;
}base;

typedef struct student
{
int num;
base *firstchild;
struct student *firstbrother;
}student;

student *creatroot(void)
{
student *root;
root=(student*)malloc(sizeof(student));
root->firstchild=NULL;
root->firstbrother=NULL;
root->num=9999;
return (root);
}

int number(student *root)
{
student *p=root;
int num=0;
while(p->firstbrother)
{
p=p->firstbrother;
num++;
}
printf("总共%d条记录\n",num);
return num;
}

int jiemian()
{
int c;
printf("\n\n**********学生信息管理*********\n\n");
printf("1 批量登记学生基本信息\n");
printf("2 修改学生基本信息\n");
printf("3 删除学生基本信息\n");
printf("4 新增学生基本信息\n");
printf("5 登记成绩(初始化全部成绩)\n");
printf("6 修改成绩\n");
printf("7 插入新成绩\n");
printf("8 浏览全部学生基本信息\n");
printf("9 查询\n");
printf("0 退出\n");
printf("\n*******************************\n");
printf("\n Enter you choice(0~9):\n");
scanf("%d",&c);
while(c<0||c>9)
{
printf("\nwrong input again:\n");
scanf("%d",&c);
}
return(c);
}

student *bublesort(student *root)
{
student *q,*p,*r;
r=NULL;
while(r!=root->firstbrother)
{
p=root->firstbrother;q=root;
while(p->firstbrother!=r)
{
if(p->num>p->firstbrother->num)
{
q->firstbrother=p->firstbrother;
p->firstbrother=q->firstbrother->firstbrother;
q->firstbrother->firstbrother=p;
}
q=q->firstbrother;p=q->firstbrother;
}
r=p;
}
return(root);
}

student *loadbase(student *root) /*基本信息管理*/
{
int i,n;
student *p1,*p2;
base *q1;
goal *t;
p2=root;
if(root->firstbrother!=NULL)
{
while(p2->firstbrother)
{p2=p2->firstbrother;}
}

printf("要登记多少条学生基本信息?\n");
scanf("%d",&n);

for(i=0;i<n;i++)
{
p1=(student*)malloc(sizeof(student));
q1=(base*)malloc(sizeof(base));
t=(goal*)malloc(sizeof(goal));
p1->firstchild=q1;
q1->brother=t;
printf("学号\t姓名\t年龄\t性别\t电话\n");
scanf("%d",&q1->num);p1->num=q1->num;
scanf("%s",q1->name);
scanf("%d",&q1->age);
scanf("%s",q1->sex);
scanf("%ld",&q1->tel);
t->course1=t->course2=t->course3=t->course4=t->course5=0;
p2->firstbrother=p1;
p2=p1;
}
p1->firstbrother=NULL;
bublesort(root);

return(root);
}
student *modifybase(student *root)
{
student *p;
base *q;
int num,c;
printf("输入要修改的学号:\n");
scanf("%d",&num);
p=root->firstbrother;
while(p!=NULL&&(p->num!=num))
{
p=p->firstbrother;
}
if(p==NULL)
{printf("学号不存在!\n");}
else
{
q=p->firstchild;
printf("\n\n***********选择需要修改的记录*********\n\n");
printf("1 学号\n");
printf("2 姓名\n");
printf("3 性别\n");
printf("4 年龄\n");
printf("5 电话\n");
printf("6 返回\n");
printf("\n\n**************************************\n\n");
printf("\n Enter you choice(1~6):\n");
scanf("%d",&c);
while(c<0||c>6)
{
printf("\nwrong input again:\n");
scanf("%d",&c);
}
switch(c)
{
case 1: printf("原学号: %d\t输入新学号:\t",q->num);scanf("%d",&q->num);p->num=q->num;break;
case 2: printf("原姓名: %s\t输入新姓名:\t",q->name);scanf("%s",q->name);break;
case 3: printf("原性别: %s\t输入新性别:\t",q->sex);scanf("%s",q->sex);break;
case 4: printf("原年龄: %d\t输入新年龄:\t",q->age);scanf("%d",&q->age);break;
case 5: printf("原电话: %ld\t输入新电话:\t",q->num);scanf("%ld",&q->tel);break;
case 6: return NULL;
}
root=bublesort(root);
}
return(root);
}
student *delbase(student *root)
{
int num;
student *p,*q;
p=root->firstbrother;q=root;
printf("输入要删除的学号:\t");
scanf("%d",&num);
while(p!=NULL&&p->num!=num)
{
q=p;
p=p->firstbrother;
}
if(p==NULL)
{printf("学号不存在!\n");}
else
{q->firstbrother=p->firstbrother;
free(p);}
return(root);
}
student *insertbase(student *root)
{
int num;
student *p,*q;
base *t;
p=root;
printf("输入要插入的学号");
scanf("%d",&num);
while((p->firstbrother!=NULL)&&(num>p->firstbrother->num))
{
p=p->firstbrother;
}
q=(student*)malloc(sizeof(student));
t=(base*)malloc(sizeof(base));
q->firstchild=t;
t->brother=(goal*)malloc(sizeof(goal));
t->brother->course1=t->brother->course2=t->brother->course3=t->brother->course4=t->brother->course5=0;
printf("学号: %d\n",num);
printf("姓名\t年龄\t性别\t电话\n");
q->num=t->num=num;
scanf("%s",t->name);
scanf("%d",&t->age);
scanf("%s",t->sex);
scanf("%ld",&t->tel);
q->firstbrother=p->firstbrother;
p->firstbrother=q;
return(root);
}

student *loadgoal(student *root) /*成绩信息管理*/
{
student *p;
base *q;
goal *t;
if(root->firstbrother==NULL)
{
printf("请输入学生基本信息:\n");
loadbase(root);
}
else
{
p=root->firstbrother;
while(p!=NULL)
{
q=p->firstchild;
t=q->brother;
printf("学号:%d\n",q->num);
printf("课程1\t课程2\t课程3\t课程4\t课程5\n");
scanf("%f",&t->course1);
scanf("%f",&t->course2);
scanf("%f",&t->course3);
scanf("%f",&t->course4);
scanf("%f",&t->course5);
p=p->firstbrother;
}
}
return(root);
}
student *insertgoal(student *root)
{
student *p;
base *q;
goal *t;
int num;
printf("请输入学号\n");
scanf("%d",&num);
p=root->firstbrother;
while(p!=NULL&&p->num!=num)
{
p=p->firstbrother;
}
if(p==NULL)
printf("学号不存在!\n");
else
{
q=p->firstchild;
t=q->brother;
printf("学号:%d\n",q->num);
printf("课程1\t课程2\t课程3\t课程4\t课程5\n");
scanf("%f",&t->course1);
scanf("%f",&t->course2);
scanf("%f",&t->course3);
scanf("%f",&t->course4);
scanf("%f",&t->course5);
}
return(root);
}

student *modifygoal(student *root)
{
student *p;
base *q;
goal *t;
int num,c;
printf("输入要修改的学号:\n");
scanf("%d",&num);
p=root->firstbrother;
while(p!=NULL&&p->num!=num)
{
p=p->firstbrother;
}
if(!p)
{printf("学号不存在!\n");}
else
{
q=p->firstchild;
if(!q->brother)
printf("没有已登记的成绩!\n");
else
{
t=q->brother;
printf("\n\n***********选择需要修改的记录*********\n\n");
printf("1 课程1\n");
printf("2 课程2\n");
printf("3 课程3\n");
printf("4 课程4\n");
printf("5 课程5\n");
printf("6 返回\n");
printf("\n\n**************************************\n\n");
printf("\n Enter you choice(1~6):\n");
scanf("%d",&c);
while(c<0||c>6)
{
printf("\nwrong input again:\n");
scanf("%d",&c);
}
switch(c)
{
case 1: printf("原成绩: %f\t输入新成绩:\t",t->course1);scanf("%f",&t->course1);break;
case 2: printf("原成绩: %f\t输入新成绩:\t",t->course2);scanf("%f",&t->course2);break;
case 3: printf("原成绩: %f\t输入新成绩:\t",t->course3);scanf("%f",&t->course3);break;
case 4: printf("原成绩: %f\t输入新成绩:\t",t->course4);scanf("%f",&t->course4);break;
case 5: printf("原成绩: %f\t输入新成绩:\t",t->course5);scanf("%f",&t->course5);break;
case 6: return NULL;
}
}
}
return(root);
}

void find(student *root) /*查询*/
{
student *p=root->firstbrother;
base *q;
goal *t;
int c=1,num;
printf("输入学号\n");
scanf("%d",&num);
while(p!=NULL&&p->num!=num)
{
p=p->firstbrother;
}
if(p==NULL)
{printf("学号不存在!\n");}
else
{
q=p->firstchild;

printf("查询(基本信息/成绩)?(1/0)\n");
scanf("%d",&c);
if(c==1)
{
printf("学号\t姓名\t年龄\t性别\t电话\n");
printf("%d ",q->num);
printf("%s ",q->name);
printf("%d ",q->age);
printf("%s ",q->sex);
printf("%ld\n",q->tel);
}
else if((c==0))
{
if(q->brother==NULL)
{printf("无成绩,请输入成绩\n");root=loadgoal(root);}
t=q->brother;
printf("学号: %d\n",q->num);
printf("课程1\t课程2\t课程3\t课程4\t课程5\n");
printf("%f ",t->course1);
printf("%f ",t->course2);
printf("%f ",t->course3);
printf("%f ",t->course4);
printf("%f \n",t->course5);
}
}
}

void print(student *root) /*浏览*/
{
student *p=root->firstbrother;
base *q;
if(!p)
printf("无内容!\n");
while(p)
{
q=p->firstchild;
printf("num :%d\n",p->num);
printf("学号\t姓名\t年龄\t性别\t电话\n");
printf("%d ",q->num);
printf("%s ",q->name);
printf("%d ",q->age);
printf("%s ",q->sex);
printf("%ld\n",q->tel);
p=p->firstbrother;
}
}
student *insertsave(void) /*申请新结点*/
{
student *s1;
base *b1;
goal *g1;
s1=(student*)malloc(sizeof(student));
s1->num=0;
b1=(base*)malloc(sizeof(base));
b1->age=0;b1->num=0;b1->tel=0;strcpy(b1->name,"0");strcpy(b1->sex,"0");
g1=(goal*)malloc(sizeof(goal));
g1->course1=g1->course2=g1->course3=g1->course4=g1->course5=0;
s1->firstchild=b1;
s1->firstbrother=NULL;
b1->brother=g1;
return(s1);
}

void savenum(int num)
{

fstream in;
in.open("number.txt",ios::in|ios::out);
if(in.fail())
{
printf("文件不存在\n");
return;
}
in<<num;
in.close();
}
int loadnum(void)
{
int num=0;
fstream out;
out.open("number.txt",ios::in|ios::out);
if(out.fail())
{
printf("文件不存在\n");
return 0;
}
out>>num;
out.close();
return num;

}

void savetofile(student *root)
{
student *ps;
int i,num=number(root);
ps=root->firstbrother;
if(ps==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
fstream in;
in.open("student.txt",ios::in|ios::out);
if(in.fail())
{
printf("文件不存在\n");
return;
}
savenum(num);
for(i=0;i<num;i++)
{
in<<ps->firstchild->num;
in<<" ";
in<<ps->firstchild->name;
in<<" ";
in<<ps->firstchild->age;
in<<" ";
in<<ps->firstchild->sex;
in<<" ";
in<<ps->firstchild->tel;
in<<" ";
in<<ps->firstchild->brother->course1;
in<<" ";
in<<ps->firstchild->brother->course2;
in<<" ";
in<<ps->firstchild->brother->course3;
in<<" ";
in<<ps->firstchild->brother->course4;
in<<" ";
in<<ps->firstchild->brother->course5;
in<<" ";
ps=ps->firstbrother;
}
in.close();
}

student *loadfromfile(void)
{
student *p,*q,*root;
int i,num=0;
root=creatroot();
fstream out;
out.open("student.txt",ios::in|ios::out);
if(out.fail())
{
printf("文件不存在\n");
return root;
}
num=loadnum();
printf("记录数:%d",num);
q=root;
for(i=0;i<num;i++)
{
p=insertsave();
q->firstbrother=p;
q=p;
out>>q->firstchild->num;
out>>q->firstchild->name;
out>>q->firstchild->age;
out>>q->firstchild->sex;
out>>q->firstchild->tel;
out>>q->firstchild->brother->course1;
out>>q->firstchild->brother->course2;
out>>q->firstchild->brother->course3;
out>>q->firstchild->brother->course4;
out>>q->firstchild->brother->course5;
q->num=q->firstchild->num;
}
out.close();
return root;
}

void choice(student *root)
{
student *t;
for(;;)
{
loop: switch(jiemian())
{
case 1: root=loadbase(root);break; /*登记基本信息*/
case 2: t=modifybase(root);if(t==NULL)goto loop;else root=t;break; /*修改基本信息*/
case 3: root=delbase(root);break; /*删除基本信息*/
case 4: root=insertbase(root);break; /*插入基本信息*/
case 5: root=loadgoal(root);break; /*登记成绩*/
case 6: t=modifygoal(root);if(t==NULL)goto loop;else root=t;break; /*修改成绩*/
case 7: insertgoal(root);break; /*插入新成绩*/
case 8: print(root);break; /*浏览*/
case 9: find(root);break; /*查看单条*/
case 0: savetofile(root);free(root);exit(1); /*退出*/
}
}
}

void main()
{
student *root;
root=loadfromfile();
choice(root);
}

没有现成的,自己改改

㈧ 求c语言编程制作一个班级通讯录,用结构定义通讯录,包括姓名,学号,手机号,email地址,QQ。

参考一下吧

/*#include "stdio.h"
int i;
void prt()
{
for(i=5;i<8;i++) printf("%c",'*');
printf("\t");
}
main()
{
for(i=5;i<=8;i++) prt();
}
*/

#include<time.h>
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#define MAX 50
void input();
void sort();
void display();
void insert();
void del();
void average();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()
{
char as;
start: printf("\t\t\t欢迎使用学生成绩管理系统\n\n");

do{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.退出\n");
printf("\t\t\t\t选择功能选项:");
as=getch();
switch(as)
{
case '1':
system("cls");
input();
break;
case '2':
system("cls");
display();
break;
case '3':
system("cls");
sort();
break;
case '4':
system("cls");
insert();
break;
case '5':
system("cls");
del();
break;
case '6':
system("exit");
exit(0);
default:
system("cls");
goto start;
}
}while(1);

}
void input()
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("%d",now_no);
printf("是否继续输入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n');
system("cls");
}
void sort()
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{temp=stu[j];<br/>stu[j]=stu[j-1];<br/>stu[j-1]=temp;<br/>}}}
}
void display()
{
int i;
char as;
float ave;
do
{
printf("\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t性别\t成绩\t成绩\t成绩\t平均值\n");
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意键返回主菜单.");
as=getch();
goto exit;
}
while(as!='n');
exit: system("cls");
}
void insert()
{
char ch;
do
{
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n输入学员成绩:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否继续输入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n');
}
void del()
{
int inum,i,j;
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
for(j=i;j<now_no;j++)
{
stu[i]=stu[i+1];
}
now_no=now_no-1;
}
break;
}
system("cls");
}

热点内容
存储过程性能优化 发布:2025-02-09 13:42:59 浏览:727
源码失窃 发布:2025-02-09 13:38:34 浏览:525
自动浏览器脚本 发布:2025-02-09 13:37:00 浏览:139
易语言问道源码 发布:2025-02-09 12:59:03 浏览:661
ip和服务器有关吗 发布:2025-02-09 12:51:26 浏览:950
极光免费脚本 发布:2025-02-09 12:50:33 浏览:394
c存储过程返回结果集 发布:2025-02-09 12:42:00 浏览:150
gs哪个配置性价比高 发布:2025-02-09 12:35:57 浏览:283
java栈数组 发布:2025-02-09 12:33:37 浏览:557
php上传文件form 发布:2025-02-09 12:33:31 浏览:157