班級通訊錄c語言
㈠ 用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");
}