久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

C語言程序設(shè)計學(xué)生通訊錄管理系統(tǒng)

時間:2019-05-14 04:55:34下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言程序設(shè)計學(xué)生通訊錄管理系統(tǒng)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言程序設(shè)計學(xué)生通訊錄管理系統(tǒng)》。

第一篇:C語言程序設(shè)計學(xué)生通訊錄管理系統(tǒng)

#include “stdio.h” #include “stdlib.h” #include “string.h” #include “conio.h” #include “stdlib.h” #define null 0 struct record { char name[20];char phone[20];char adress[40];char postcode[10];char e_mail[30];}student[500];struct LinkList { struct record US;struct LinkList *next;}a;struct LinkList *head=null;int num=0;FILE *fp;int menu_select();int adduser();int list();int search();int display();int add();int listbyname();int dele();int save();int exit();

void main(){

system(“cls”);for(;;){ switch(menu_select()){ case 0:adduser();break;case 1:list();break;case 2:search();break;case 3:add();break;case 4:dele();break;case 5:save();break;case 6:exit(0);} } } menu_select(){ char s[80];int a;printf(“*_* press any key enter menu!*_* n”);getch();system(“cls”);printf(“tt********************MENU*********************nn”);printf(“tt 0.輸入記錄n”);printf(“tt 1.顯示記錄 n”);printf(“tt 2.按姓名查找n”);printf(“tt 3.插入記錄 n”);printf(“tt 4.刪除記錄n”);printf(“tt 5.記錄保存文件n”);printf(“tt 6.Quitn”);printf(“tt***********************************************n”);do{ printf(“n Enter you choice(0~11):”);scanf(“%s”,s);a=atoi(s);} while(a<0||a>11);return a;}

adduser(){ printf(“ntt**************** 請輸入用戶信息 ****************n”);printf(“ntt輸入姓名:”);scanf(“%s”,&student[num].name);printf(“ntt輸入電話號碼:”);scanf(“%s”,&student[num].phone);printf(“ntt輸入地址:”);scanf(“%s”,&student[num].adress);printf(“ntt輸入郵編:”);scanf(“%s”,&student[num].postcode);printf(“ntt輸入e-mail:”);scanf(“%s”,&student[num].e_mail);num++;printf(“ntt是否繼續(xù)添加?(Y/N):”);if(getch()=='y')adduser();return(0);} list(){ int i;system(“cls”);if(num!=0){ printf(“ntt*************** 以下為通訊錄所有信息************”);for(i=0;i

printf(“ntt姓名: %s”,student[i].name);printf(“ntt電話: %s”,student[i].phone);printf(“ntt地址: %s”,student[i].adress);printf(“ntt郵編: %s”,student[i].postcode);printf(“ntte-mail:%s”,student[i].e_mail);printf(“tt”);if(i+1

add(){ int i;if((fp=fopen(“student.bin”,“wb”))==NULL){ printf(“ntt文件打開失敗”);} for(i=0;i

save(){ int j;FILE*fp;fp=fopen(“student.txt”,“w”);if(fp==NULL)printf(“can't open the file.”);if(num!=0){ for(j=0;j

fwrite(student,sizeof(student),1,fp);} } printf(“保存成功!”);fclose(fp);return(0);}

第二篇:學(xué)生通訊錄管理系統(tǒng)

“學(xué)生通訊信息記錄系統(tǒng)”的設(shè)計與實現(xiàn)

一、設(shè)計要求

1.問題的描述

“學(xué)生通訊信息記錄系統(tǒng)”是為了實現(xiàn)快速的對學(xué)生信息進行錄入、刪除、查找、顯示。各個功能靠函數(shù)實現(xiàn)。2.需求分析

(1)應(yīng)該包括以下功能:輸入信息、顯示信息、查找以姓名作為關(guān)鍵字、刪除信息(2)作為一個完整的系統(tǒng),應(yīng)具有友好的界面和較強的容錯能力

二、概要設(shè)計

1.主界面設(shè)計

2.儲存結(jié)構(gòu)設(shè)計

本系統(tǒng)主要采用鏈表類型來表示儲存“學(xué)生信息記錄系統(tǒng)”中的信息。程序中定義了address結(jié)構(gòu)。其中,包括學(xué)生的姓名、宿舍信息和學(xué)號。3.系統(tǒng)功能的設(shè)計

1)輸入信息——enter();2)顯示信息———display();3)查找以姓名作為關(guān)鍵字 ———search();4)刪除信息———delete();

三、模塊設(shè)計

1.模塊設(shè)計

本成績包含兩個模塊:主程序模塊和鏈表操作模塊。2.系統(tǒng)的程序及功能設(shè)計

(1)插入學(xué)生信息

void enter()

/*輸入函數(shù),本函數(shù)循環(huán)輸入資料,當(dāng)輸入姓名為空時退出*/ {

struct address *info;

/*定義當(dāng)前結(jié)點*/

for(;;){

info=(struct address *)malloc(sizeof(struct address));

/*為當(dāng)前結(jié)點分配空間*/

if(!info)

{

printf(“n Out of memory”);

exit(0);

/*如果分配空間失敗,退出程序*/

}

printf(“輸入空姓名結(jié)束:n”);

inputs(“請輸入 姓名:”,info->name,10);

if(!info->name[0])

break;

/*如果輸入姓名為空,結(jié)束循環(huán)*/

inputs(“請輸入

院系:”,info->street,50);

inputs(“請輸入宿舍樓:”,info->city,15);

inputs(“請輸入宿舍號:”,info->state,15);

inputs(“請輸入

學(xué)號:”,info->eip,7);

insert(info,&start,&last);

/*調(diào)用結(jié)點插入函數(shù)*/ } }

五、測試分析

1.輸入學(xué)生信息

4.刪除信息

5.退出

struct address *start;

/*首結(jié)點*/ struct address *last;

/*尾結(jié)點*/ struct address *find(char *);

/*聲明查找函數(shù)*/

void enter();

/*函數(shù)聲明*/ void search();void save();

void load();void list();void ddelete(struct address **start,struct address **last);void insert(struct address *i,struct address **start,struct address **last);void inputs(char *,char *,int);void display(struct address *);int menu_select(void);

void main(){

int c;

printf(“n

歡迎使用學(xué)生通訊錄系統(tǒng)”);

printf(“nn”);

printf(“t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“t┃************************************************************┃n”);

printf(“t┃*

*

*┃n”);

printf(“t┃*

1.輸入信息

*

2.刪除信息

*┃n”);

printf(“t┃*

*

*┃n”);

printf(“t┃************************************************************┃n”);

printf(“t┃*

*

*┃n”);

printf(“t┃*

3.顯示信息

*

4.查找

*┃n”);

printf(“t┃*

*

*┃n”);

printf(“t┃************************************************************┃n”);

printf(“t┃

5.退出

┃ n”);

printf(“t┃************************************************************┃n”);

exit(0);

/*如果分配空間失敗,退出程序*/ }

printf(“輸入空姓名結(jié)束:n”);

inputs(“請輸入 姓名:”,info->name,10);

if(!info->name[0])break;

/*如果輸入姓名為空,結(jié)束循環(huán)*/

inputs(“請輸入

院系:”,info->street,50);

inputs(“請輸入宿舍樓:”,info->city,15);

inputs(“請輸入宿舍號:”,info->state,15);

inputs(“請輸入

學(xué)號:”,info->eip,7);

insert(info,&start,&last);

/*調(diào)用結(jié)點插入函數(shù)*/ }

void inputs(char *prompt,char *s,int count)

/*輸入函數(shù),有越界檢測功能*/ {

char p[255];

do }

i->next=NULL;

i->prior=NULL;

*last=i;

*start=i;

return;

}

else {

(*last)->next=i;

i->prior=*last;i->next=NULL;

*last=(*last)->next;

}

}

void ddelete(struct address **start,struct address **last)

/*刪除函數(shù)*/

{ struct address *info;

char s[80];

inputs(“請輸入 姓名:”,s,10);

/*輸入欲刪除結(jié)點的name域內(nèi)容*/

info=find(s);

if(info)

{

printf(“Deleting......n”);if(*start==info)

點的下驅(qū)作為新的首結(jié)點(入口)*/

{ *start=info->next;

if(*start)(*start)->prior=NULL;

else *last=NULL;

}

else

結(jié)點*/

{

info->prior->next=info->next;

info=info->next;

}

printf(“未找到相關(guān)信息.n”);

return NULL;}

/*輸出整個鏈表*/ void list(void){ struct address *info;

info=start;

if(info==NULL)printf(“當(dāng)前記錄為空!”);else printf(“姓名t院系t宿舍樓t宿舍號t學(xué)號tn”);

while(info)

{

};display(info);if(info->next==NULL){break;} info=info->next;

printf(“nn”);}

/*查找函數(shù)*/

/*輸入欲查找的姓名*/ /*如果沒找到,顯示Not found*/

/*如果找到,顯示該結(jié)點資料*/

七、用戶使用手冊

(1)本程序的執(zhí)行文件為“學(xué)生通訊錄管理系統(tǒng).exe”。

(2)進入本系統(tǒng)之后,隨即顯示系統(tǒng)住菜單界面。用戶可以在該界面下根據(jù)提示輸入并按回車鍵確定,執(zhí)行相應(yīng)的菜單命令。

(3)本系統(tǒng)可以對學(xué)生信息進行錄入和刪除。

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

課題:學(xué)生成績管理系統(tǒng)

姓名:孫軒宇

學(xué)號:E01014316

專業(yè):計算機科技

院系:計科院

2010.10.8

班級:10

第三篇:C語言-通訊錄管理系統(tǒng)

#include #include #include struct record{ charnum[12];char name[10];char birthday[10];char post[10];char phone[15];}data[100];intmenu_select();intcreate_record();intadd_record(int flag);int flag=0;

intfind_record(int flag);intdelete_record(int flag);voidpaixu_record(int flag);intsave_record(int flag);void main(){ for(;;){ switch(menu_select())

{ case 1: printf(“ ***********************************************n”);printf(“ ************** 通訊錄的建立 ***************n”);printf(“ ***********************************************n”);flag=create_record();break;case 2: printf(“ ***********************************************n”);printf(“ ************** 通訊錄信息的添加 *****************n”);printf(“ ***********************************************n”);flag=add_record(flag);break;case 3: printf(“ ******************************n”);printf(“ ******* 通訊錄信息查詢 *******n”);printf(“ ******************************n”);find_record(flag);

break;case 4: printf(“ ***********************************n”);printf(“ **********通訊信息的刪除***********n”);printf(“ ***********************************n”);delete_record(flag);break;case 5: printf(“ ***********************************n”);printf(“ **********通訊錄的存儲(D:)*********n”);printf(“ ***********************************n”);save_record(flag);break;case 6: printf(“ ***********************************n”);printf(“ **********通訊者的排序*********n”);printf(“ ***********************************n”);paixu_record(flag);break;case 0: printf(“t 謝謝您的使用!n”);break;

default : break;} } } intmenu_select(){ int i;printf(“

********************

n”);printf(“

Welcome!

n

”);printf(“

Form kuangminn”);printf(“

********************

n”);printf(“

n”);printf(“ n”);printf(“ n”);printf(“

通訊錄管理系統(tǒng)

n”);printf(“ n”);printf(“

======================n”);printf(“

1.通訊錄的建立n”);printf(“

2.通訊者的添加n”);printf(“

3.通訊錄的查詢n”);printf(“

4.通訊者的刪除n”);printf(“

5.通訊錄的存儲n”);printf(“

6.通訊者的排序n”);printf(“

0.退出通訊錄管理系統(tǒng)n”);printf(“

======================n”);printf(“

請選擇操作0-5 nn”);for(;;){ scanf(“%d”,&i);if(i<0||i>6)printf(“t對不起,您的輸入錯誤n”);else break;} return i;} intcreate_record(){inti,j;for(i=0;;)

{ printf(“ 學(xué)號(12)姓名(10)出生年月(10)家庭住址(30)郵編(10)電話(15)n”);printf(“-------------n”);scanf(“%s%s%s%s%s%s”,data[i].num,data[i].name,data[i].birthday, data[i].post, data[i].phone);i++;printf(“ 想繼續(xù)創(chuàng)建嗎?(1.是/0.不):”);scanf(“%d”,&j);if(!j)

return i;else printf(“恭喜你,創(chuàng)建成功!請繼續(xù)創(chuàng)建!n”);

} return i;} intadd_record(int flag){ int i=flag,j;for(i;;)

{ printf(“ 學(xué)號(12)姓名(10)出生年月(10)家庭住址(30)郵編(10)電話(15)n”);printf(“-------------n”);

scanf(“%s%s%s%s%s%s”,data[i].num,data[i].name,data[i].birthday,data[i].post, data[i].phone);i++;printf(“ 想繼續(xù)添加嗎?(1.是/0.不):”);scanf(“%d”,&j);if(!j)return i;else printf(“恭喜你,添加成功!請繼續(xù)添加!n”);

} return(i);} intfind_record(){ int i;char number[6];char named[10];intxz;printf(“--------------------n”);printf(“ 1.按學(xué)號查詢n”);printf(“ 2.按姓名查詢n”);printf(“--------------------n”);printf(“ 請選擇 : n”);

scanf(“%d”,&xz);if(xz==1){ printf(“ 請輸入要查找的學(xué)號: ”);scanf(“%s”,number);for(i=0;i

if(strcmp(data[i].num,number)==0)

{ printf(“ ** 學(xué)號姓名出生年月家庭住址郵編電話**n”);printf(“------------------------------n”);printf(“%s,%s,%s,%s,%s,%sn”,data[i].num,data[i].name,data[i].birthday,data[i].post,data[i].phone);printf(“------------------------------n”);return 0;}

} else if(xz=2){ printf(“請輸入要查找的姓名: ”);scanf(“%s”,named);for(i=0;i

{ printf(“ ** 學(xué)號姓名出生年月家庭住址郵編電話**n”);printf(“------------------------------n”);printf(“%s,%s,%s,%s,%s,%sn”,data[i].num,data[i].name,data[i].birthday,data[i].post,data[i].phone);printf(“------------------------------n”);return 0;else {printf(“對不起,沒有你要找的人!n”);return 0;} }

else {printf(“對不起,沒有你要找的人!n”);return 0;}

}

} intdelete_record(int flag)

{ inti,j;intdeletemark=0;char number[20];printf(“ttt請輸入要刪除學(xué)號:n”);scanf(“%s”,number);for(i=0;i

{ if(strcmp(data[i].num, number)==0)

{ printf(“ttt以下是您要刪除的用戶紀(jì)錄:n”);printf(“ ** 學(xué)號姓名出生年月家庭住址郵編電話**n”);printf(“------------------------------n”);

printf(“%s,%s,%s,%s,%s,%sn”,data[i].num,data[i].name,data[i].birthday,data[i].post,data[i].phone);printf(“------------------------------n”);

printf(“ttt是否刪除?(y/n)”);if(getch()=='y' || getch()=='Y')

{ for(j=i;j

} else return;

} continue;

} if(deletemark==0)

{ printf(“ttt沒有該用戶的紀(jì)錄”);

return;

} return;

} voidpaixu_record(int flag){inti,j;struct record tmp;

printf(“ 1.按姓名排序n”);printf(“ 2.按學(xué)號排序n”);scanf(“%d”,&i);if(i==1){for(i=1;i

{ if(strcmp(data[i].name, data [i-1].name)<0)

{ tmp= data[i];

j=i-1;do

{ data [j+1]= data [j];j--;}while((strcmp(tmp.name, data [j].name)<0&&j>=0));data [j+1]=tmp;

}

} printf(“ttt排序成功!”);}

if(i==2){for(j=0;jdata[i+1].num)

{tmp=data[i];data[i]=data[i+1];data[i+1]=tmp;} } }

intsave_record(int flag){

FILE*fp;int i;if((fp=fopen(“D:data.txt”,“w+”))==NULL)

{printf(“無法打開文件!”);exit(0);} for(i=0;i

{fprintf(fp,“%s,%s,%s,%s,%s,%sn”,data[i].num,data[i].name,data[i].birthday, data[i].post, data[i].phone);printf(“n”);} fclose(fp);return 0;}

第四篇:C語言課程設(shè)計學(xué)生通訊錄管理系統(tǒng)設(shè)計

C語言課程設(shè)計學(xué)生通訊錄管理系統(tǒng)設(shè)計

一、題目內(nèi)容的描述

學(xué)生通訊錄管理系統(tǒng)設(shè)計

設(shè)計一個學(xué)生通信錄,學(xué)生通迅錄數(shù)據(jù)信息構(gòu)成內(nèi)容可自行設(shè)計(如:姓名、家庭地址、郵政編碼、電話號碼等等),通信錄數(shù)據(jù)類型定義為結(jié)構(gòu)體類型。由鍵盤輸入數(shù)據(jù)(最好要考慮輸入數(shù)據(jù)輸入的格式及輸入數(shù)據(jù)的有效性),然后進行以下的功能實現(xiàn)。程序要求主函數(shù)是一個功能選擇菜單,其它各功能都用各自的函數(shù)實現(xiàn)。

功能要求如下:

1、能建立、修改和增刪學(xué)生通訊錄

2、能夠按多種方式進行查詢,例如按姓名、按電話號碼等。

3、通訊錄的數(shù)據(jù)保存在文件中,運行程序時將通訊錄數(shù)據(jù)從文件讀取到內(nèi)存中。對通訊錄進行增加、刪除、修改學(xué)生數(shù)據(jù)后,提供功能菜單,可以將內(nèi)存中修改過的通訊錄重新保存至文件。

二、應(yīng)用程序功能的詳細(xì)說明

1、應(yīng)用程序?qū)崿F(xiàn)了可視化的系統(tǒng)操作界面。

2、對學(xué)生通訊錄形成了系統(tǒng)化的管理,操作簡便明了。

3、程序具有系統(tǒng)幫助,添加、顯示、查詢、刷新、刪除、排序、保存、修改、讀取學(xué)生通訊錄的功能。各項功能均可按照文字提示操作,淺顯易懂。

4、系統(tǒng)的各個功能模塊都用函數(shù)的形式來實現(xiàn)(readfile()、seek()、modify()、sort()、insert()、del()、save()、menu())方便查看。

5.可以將信息保存在文件(“student.txt“)中,亦可將信息從文件中讀取出來,靈活方便。

三、主要模塊的算法描述

學(xué)生通訊錄管理系統(tǒng)

刷新學(xué)生信息readfile()

查詢學(xué)生信息seek()

增加學(xué)生信息insert()

顯示學(xué)生信息display()

退出系統(tǒng)

修改學(xué)生信息modify()

刪除學(xué)生信息del()

保存當(dāng)前學(xué)生信息save()

匯總當(dāng)前學(xué)生數(shù)目number()

系統(tǒng)幫助help()

查詢學(xué)生信息

按姓名查詢

退出

按學(xué)號查詢

開始

以可讀寫的方式打開一個數(shù)據(jù)文件

將此文件的內(nèi)容讀出,并存入一個新的結(jié)構(gòu)體類型的數(shù)組中。

調(diào)用menu()菜單函數(shù)

進入while()主循環(huán)

輸入1-8中的一數(shù)值,選擇相應(yīng)操作。

輸入是否為0

判斷鍵值,調(diào)用相應(yīng)函數(shù),完成相應(yīng)功能。

是否已對修改存盤

調(diào)用函數(shù)save()函數(shù),進行寫數(shù)據(jù)文件操作

結(jié)束

模塊一:頭文件,變量定義,函數(shù)的聲明

對系統(tǒng)所使用的變量進行定義,對函數(shù)進行聲明。

模塊二:錄入學(xué)生信息

聲明函數(shù)void

readfile(),說明一個文件指針FILE

*fp打開文

件“student.txt“。

模塊三:學(xué)生信息的查找

聲明void

seek()為查找函數(shù),通過switch(item)設(shè)定用學(xué)號查找,用姓名查找兩個分支。

模塊四:學(xué)生信息的修改

聲明void

modify()為學(xué)生信息修改函數(shù),通過switch(item)設(shè)定

所要修改的項目。

模塊五:刷新學(xué)生信息

聲明void

sort()將錄入學(xué)生系按升序排列,用的是“冒泡排序法”

實現(xiàn)排序。

模塊六:增加學(xué)生信息

聲明void

insert()插入學(xué)生信息,先通過判斷學(xué)生是否存在,若

否則繼續(xù)輸入,若是則跳出,重新循環(huán)。

模塊七:刪除學(xué)生信息

聲明void

del()實現(xiàn)學(xué)生信息刪除,通過學(xué)號對比確定要刪除的信

息,然后用后一個替換掉。

模塊八:顯示學(xué)生信息

通過display()函數(shù)輸出學(xué)生信息。

模塊九:保存信息

通過fp=fopen(“student.txt“,“w“);寫入信息。

模塊十:匯總學(xué)生數(shù)目

通過number()函數(shù)將已有男女生及總學(xué)生數(shù)目匯總出來。

模塊十一:系統(tǒng)幫助

通過help()函數(shù)幫助操作。

模塊十二:界面菜單

通過switch(num)調(diào)用以上各函數(shù),實現(xiàn)功能。

1、程序采用模塊化設(shè)計,各模塊獨立,可分塊調(diào)試,個模塊由主函數(shù)控制調(diào)用。

2、其中主要模塊(readfile()、seek()、modify())都是利用數(shù)組,指針來實現(xiàn)數(shù)據(jù)結(jié)構(gòu)設(shè)計。

3、數(shù)據(jù)庫設(shè)計的任務(wù)是確定系統(tǒng)所需要的數(shù)據(jù)庫。數(shù)據(jù)庫是表的集合,通常一個系統(tǒng)只需一個數(shù)據(jù)庫。設(shè)計人

是根據(jù)需求分析,確定數(shù)據(jù)庫所包含的表及字段、表間的關(guān)系,然后具體確定表的結(jié)構(gòu),包括字段名、字段類型及寬度,需要的索引等。根據(jù)對需求得到的數(shù)據(jù)結(jié)構(gòu)進行分析,按數(shù)據(jù)輸入輸出的要求,確定表和表間的關(guān)系,進行驗證、調(diào)整、修改、完善,使其能夠?qū)崿F(xiàn)用戶對數(shù)據(jù)和功能的要求。通訊信息表包括以下字段:學(xué)號,姓名,年齡,性別,出生年月,地址,電話,E-mail。學(xué)號為主索引。

四、結(jié)束語

我設(shè)計的程序總體功能大都能夠運行順利,但有許多地方比較復(fù)雜,需要進一步修改,進行簡化。通過這次課程設(shè)計的鍛煉,我收獲很多,具體歸納為以下幾點:

1、首先,也是最重要的一點,學(xué)會如何將一個復(fù)雜的問題簡化,將一個較大的問題分成幾個小問題,再一一解決這些小問題。在設(shè)計一個程序之前,要學(xué)會對程序功能進行規(guī)劃,將其分為幾個不同的功能模塊,要思路清晰,簡單易用;

2、學(xué)會靈活運用已有的知識,同時適當(dāng)?shù)耐卣挂恍┲R;比如,這次設(shè)計過程中,有一些函數(shù)以前就很少用到,甚至沒有見過,但對程序的設(shè)計及用戶界面的改善帶來方便;

3、解決問題時,要盡可能考慮全面。每一個細(xì)節(jié)都很重要,既要避免功能的重復(fù),也要避免功能疏漏的地方!

4、在這次課程設(shè)計過程中,參考了許多資料,發(fā)現(xiàn)C語言真的很有意思!比如我看到一個關(guān)于用C語言編寫的小程序:五子棋、俄羅斯方塊、推箱子等,等這次課程結(jié)束后,我就想利用C語言編寫這些小游戲。曾經(jīng)認(rèn)為C是個挺枯燥的課程,現(xiàn)在發(fā)現(xiàn)這不僅僅是個簡單的課程,而是個很實用的計算機工具!

五、程序源代碼清單

#include

#include

#include

#define

BUFLEN

#define

LEN

#define

N

struct

record

{

char

code[LEN+1];

char

name[LEN+1];

int

age;

char

sex[3];

char

time[LEN+1];

char

add[30];

char

tel[LEN+1];

char

mail[30];

}stu[N];

int

k=1,n,m;

void

readfile();

void

seek();

void

modify();

void

insert();

void

del();

void

display();

void

save();

void

number();

void

menu();

int

main()

{

while(k)

menu();

system(“pause“);

return

0;

}

void

readfile()//刷新學(xué)生信息

{

char

*p=“student.txt“;

FILE

*fp;

int

i=0;

if

((fp=fopen(“student.txt“,“r“))==NULL)

{

printf(“Open

file

%s

error!

Strike

any

key

to

exit!“,p);

system(“pause“);

exit(0);

}

while(fscanf(fp,“%s

%s%d%s

%s

%s

%s

%s“,stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)

{

i++;

i=i;

}

fclose(fp);

n=i;

printf(“錄入完畢!\n“);

}

void

seek()//查詢學(xué)生信息

......void

modify()//修改學(xué)生信息

......void

sort()//對學(xué)生信息按學(xué)號排序

{

int

i,j,*p,*q,s;

char

temp[10];

for(i=0;i

{

for(j=n-1;j>i;j--)

if(strcmp(stu[j-1].code,stu[j].code)>0)

{

strcpy(temp,stu[j-1].code);

strcpy(stu[j-1].code,stu[j].code);

strcpy(stu[j].code,temp);

strcpy(temp,stu[j-1].name);

strcpy(stu[j-1].name,stu[j].name);

strcpy(stu[j].name,temp);

strcpy(temp,stu[j-1].sex);

strcpy(stu[j-1].sex,stu[j].sex);

strcpy(stu[j].sex,temp);

strcpy(temp,stu[j-1].time);

strcpy(stu[j-1].time,stu[j].time);

strcpy(stu[j].time,temp);

strcpy(temp,stu[j-1].add);

strcpy(stu[j-1].add,stu[j].add);

strcpy(stu[j].add,temp);

strcpy(temp,stu[j-1].tel);

strcpy(stu[j-1].tel,stu[j].tel);

strcpy(stu[j].tel,temp);

strcpy(temp,stu[j-1].mail);

strcpy(stu[j-1].mail,stu[j].mail);

strcpy(stu[j].mail,temp);

p=&stu[j-1].age;

q=&stu[j].age;

s=*q;

*q=*p;

*p=s;

}

}

}

void

insert()//增加學(xué)生信息

......void

display()//顯示當(dāng)前學(xué)生信息

{

int

i;

printf(“所有學(xué)生的信息為:\n“);

printf(“學(xué)生學(xué)號,學(xué)生姓名,年齡,性別,出生年月,地址,電話,E-mail\n“);

printf(“--------------------------------------------------------------------\n“);

for(i=0;i

{

printf(“%6s,%7s,%5d,%5s,%9s,%8s,%10s,%14s\n“,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

}

void

save()//保存當(dāng)前學(xué)生信息

{

int

i;

FILE

*fp;

fp=fopen(“student.txt“,“w“);

for(i=0;i

{

fprintf(fp,“%s,%s,%d,%s,%s,%s,%s,%s\n“,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

fclose(fp);

}

void

number()//匯總學(xué)生數(shù)目

{

int

i,girl,boy=0;

for(i=0;i

if(strcmp(stu[i].sex,“1“)==0)

{boy++;}

girl=n-boy;

printf(“男生人數(shù)是:%d\n女生的人數(shù)是:%d\n“,boy,girl);

printf(“總的學(xué)生人數(shù)為:%d“,n);

}

void

help()//系統(tǒng)幫助

{

printf(“輸入性別時男為1,女為2“);

printf(“\n3.增加學(xué)生信息后,切記保存按7;\n“);

printf(“\n4.謝謝您的使用!\n“);

}

void

menu()//可視化的系統(tǒng)操作界面

{

int

num;

printf(“

\n\n

學(xué)生通訊錄管理系統(tǒng)

\n\n“);

printf(“

*********************系統(tǒng)功能菜單************************

\n“);

printf(“

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

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

\n“);

printf(“

1.刷新學(xué)生信息

2.查詢學(xué)生信息

\n“);

printf(“

*********************************************

\n“);

printf(“

3.修改學(xué)生信息

4.增加學(xué)生信息

\n“);

printf(“

*********************************************

\n“);

printf(“

5.按學(xué)號刪除信息

6.顯示當(dāng)前信息

\n“);

printf(“

*********************************************

\n“);

printf(“

7.保存當(dāng)前學(xué)生信息

8.匯總學(xué)生數(shù)目

\n“);

printf(“

*********************************************

\n“);

printf(“

9.系統(tǒng)幫助

10.退出系統(tǒng)

\n“);

printf(“

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

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

\n“);

printf(“

************************************************************

\n“);

printf(“請選擇菜單編號:“);

scanf(“%d“,&num);

switch(num)

{

case

1:readfile();break;

case

2:seek();break;

case

3:modify();break;

case

4:insert();break;

case

5:del();break;

case

6:display();break;

case

7:save();break;

case

8:number();break;

case

9:help();break;

case

10:k=0;break;

default:printf(“請在1-10之間選擇\n“);

}

}

第五篇:C語言大作業(yè)——學(xué)生通訊錄管理系統(tǒng)

#include #include //#define NULL 0 #define LEN sizeof(struct message)

struct message

//定義結(jié)構(gòu)體

{

char name[15];

char number[15];

char phone[15];

char qq[13];

char addr[25];

struct message *next;

//指向下一數(shù)據(jù)

};

int n;

void creat()

//建立電話簿

{

int num;char choice[5]={'2'};

FILE *fp;

struct message *head;

struct message *p,*q;

n = 0;

p = q =(struct message *)malloc(LEN);

fp=fopen(“通訊錄1.txt”,“wb”);

system(“cls”);

printf(“n請輸入姓名:”);

scanf(“%s”,p->name);

printf(“n請輸入電話號碼:”);

scanf(“%s”,p->phone);

printf(“n請輸入學(xué)號:”);

scanf(“%s”,p->number);

printf(“n請輸入QQ:”);

scanf(“%s”,p->qq);

printf(“n請輸入住址:”);

scanf(“%s”,p->addr);

fwrite(p,LEN,1,fp);

fclose(fp);

head = 0;

num = 1;

while(num!=0)

{

n = n+1;

if(n==1)head = p;

else q->next = p;

q = p;

p =(struct message *)malloc(LEN);

//分配存儲區(qū)

while(choice[0]!='1' && choice[0]!='0')

//判斷是否繼續(xù)

{

printf(“n1 繼續(xù)輸入n 0 返回n”);

printf(“請選擇操作:”);

scanf(“%s”,choice);

}

switch(choice[0])

{

case '1':

{

fp=fopen(“通訊錄1.txt”,“rb”);

system(“cls”);

printf(“n請輸入姓名:”);

scanf(“%s”,p->name);

printf(“n請輸入電話號碼:”);

scanf(“%s”,p->phone);

printf(“n請輸入學(xué)號:”);

scanf(“%s”,p->number);

printf(“n請輸入QQ:”);

scanf(“%s”,p->qq);

printf(“n請輸入住址:”);

scanf(“%s”,p->addr);

fwrite(p,LEN,1,fp);

fclose(fp);

choice[0] = '2';

}

continue;

case '0': num = 0;

system(“cls”);

}

}

q->next = 0;}

void add()

//添加通訊錄 {

int num;char choice[5]={'2'};

FILE *fp;

struct message *head;

struct message *p,*q;

n = 0;

p = q =(struct message *)malloc(LEN);

fp=fopen(“通訊錄1.txt”,“ab”);

system(“cls”);

printf(“n請輸入姓名:”);

scanf(“%s”,p->name);

printf(“n請輸入電話號碼:”);

scanf(“%s”,p->phone);

printf(“n請輸入學(xué)號:”);

scanf(“%s”,p->number);

printf(“n請輸入QQ:”);

scanf(“%s”,p->qq);

printf(“n請輸入住址:”);

scanf(“%s”,p->addr);

fwrite(p,LEN,1,fp);

fclose(fp);

head = 0;

num = 1;

while(num!=0)

{

n = n+1;

if(n==1)head = p;

else q->next = p;

q = p;

p =(struct message *)malloc(LEN);

while(choice[0]!='1' && choice[0]!='0')

否繼續(xù)

{

printf(“n1 繼續(xù)輸入n 0 返回n”);

printf(“請選擇操作:”);

scanf(“%s”,choice);

}

//分配空間 //輸入內(nèi)容

//分配空間

//判斷是

switch(choice[0])

{

case '1':

{

fp=fopen(“通訊錄1.txt”,“rb”);

system(“cls”);

printf(“n請輸入姓名:”);

scanf(“%s”,p->name);

printf(“n請輸入電話號碼:”);

scanf(“%s”,p->phone);

printf(“n請輸入學(xué)號:”);

scanf(“%s”,p->number);

printf(“n請輸入QQ:”);

scanf(“%s”,p->qq);

printf(“n請輸入住址:”);

scanf(“%s”,p->addr);

fwrite(p,LEN,1,fp);

fclose(fp);

choice[0] = '2';

}

continue;

case '0': num = 0;

system(“cls”);

}

}

q->next = 0;}

void findname(struct message * fphead)

{

struct message *p;

int a = 0;

char findname[20];

system(“cls”);

printf(“請輸入要查找的姓名:n”);

scanf(“%s”,findname);

for(p=fphead->next;p!=NULL;p=p->next)

{

if(strcmp(p->name,findname)==0)

{

//按姓名查找

printf(“姓名

電話號碼

學(xué)號

QQ

住址n”);

printf(“%-15s %-15s %-15s %-13s %-25sn”,p->name,p->phone,p->number,p->qq,p->addr);

a = 1;

}

}

if(a!= 1)

printf(“無此通訊錄!n”);

} void findphone(struct message * fphead)

//按電話查找

{

struct message *p;

int a = 0;

char findphone[15];

system(“cls”);

printf(“請輸入要查找的電話:n”);

scanf(“%s”,findphone);

for(p=fphead->next;p!=NULL;p=p->next)

{

if(strcmp(p->phone,findphone)==0)

{

printf(“姓名

電話號碼

學(xué)號

住址n”);

printf(“%-15s %-15s %-15s %-13s %-25sn”,p->name,p->phone,p->number,p->qq,p->addr);

a = 1;

}

}

if(a!= 1)

printf(“無此通訊錄!n”);

}

void findnumber(struct message * fphead)

//按學(xué)號查找

{

struct message *p;

int a = 0;

char findnumber[15];

system(“cls”);

QQ

printf(“請鍵入要查找的學(xué)生學(xué)號:n”);

scanf(“%s”,findnumber);

for(p=fphead->next;p!=NULL;p=p->next)

{

if(strcmp(p->number,findnumber)==0)

{

printf(“姓名

電話號碼

學(xué)號

QQ

住址n”);

printf(“%-15s %-15s %-15s %-13s %-25sn”,p->name,p->phone,p->number,p->qq,p->addr);

a = 1;

}

}

if(a!= 1)

printf(“無此通訊錄!n”);

}

void modify(struct message * fphead)

//修改記錄

{

FILE *fp;

struct message *p,*q;

int a = 0;

char findname[15];

system(“cls”);

printf(“請鍵入要查找的姓名:n”);

scanf(“%s”,findname);

for(p=fphead->next;p!=NULL;p=p->next)

{

if(strcmp(p->name,findname)==0)

{

printf(“姓名

電話號碼

學(xué)號

QQ

住址n”);

printf(“%-15s %-15s %-15s %-13s %-25snnnn”,p->name,p->phone,p->number,p->qq,p->addr);

printf(“n請鍵入新姓名:”);

scanf(“%s”,p->name);

printf(“n請鍵入新電話號碼:”);

scanf(“%s”,p->phone);

printf(“n請鍵入新學(xué)號:”);

scanf(“%s”,p->number);

printf(“n請鍵入新QQ:”);

scanf(“%s”,p->qq);

printf(“n請鍵入新住址:”);

scanf(“%s”,p->addr);

fp = fopen(“通訊錄2.txt”,“wb”);

q = fphead->next;

//P為鏈表頭指針

while(q!=0)

{

fwrite(q,LEN,1,fp);

if(q->next!=0)

q = q->next;

else

q = 0;

}

fclose(fp);

unlink(“通訊錄1.txt”);

//用新文件覆蓋原文件

rename(“通訊錄2.txt”, “通訊錄1.txt”);

printf(“修改成功!”);

a = 1;

}

}

if(a!= 1)

printf(“無此通訊錄!n”);

}

void del(struct message * fphead)

//刪除記錄

{

FILE *fp,*fq;

struct message *p,*q,*r;

char sname[15];

p = q =(struct message *)malloc(LEN);

p = fphead;

system(“cls”);

fp = fopen(“通訊錄1.txt”,“rb”);

fq = fopen(“通訊錄2.txt”,“wb”);

printf(“請輸入欲刪除記錄的姓名:”);

scanf(“%s”,sname);

while(strcmp(p->name,sname)!=0 && p->next!=0)//查找節(jié)點并刪除該節(jié)點

{

q = p;

p = p->next;

}

if(strcmp(p->name,sname)==0)

{

if(p==fphead)

fphead = p->next;

else

{

q->next = p->next;

}

r = fphead->next;

//r為鏈表頭指針

while(r!=0)

{

fwrite(r,LEN,1,fq);

if(r->next!=0)

r = r->next;

else

r = 0;

}

printf(“刪除成功!”);

}

else

{

printf(“無此通訊錄!”);

}

fclose(fp);

fclose(fq);

unlink(“通訊錄1.txt”);

//用新文件覆蓋原文件

rename(“通訊錄2.txt”, “通訊錄1.txt”);

}

struct message * open(void)

//打開文件,載入鏈表

{

FILE *fp;

struct message *p=NULL,*q=NULL,*temp=NULL,*fphead=NULL;

fp=fopen(“通訊錄1.txt”,“rb”);

fphead=(struct message *)malloc(LEN);

//分配空間

temp = q = fphead;

while(!feof(fp))

//循環(huán)讀取,載入鏈表

{

p=(struct message *)malloc(LEN);

temp=q;

q->next=p;

q=p;

fread(p,LEN,1,fp);

}

temp->next=NULL;

fclose(fp);

return(fphead);

//返回鏈表頭指針

}

void print()

//顯示通訊錄

{

struct message *p;

FILE *fp;

system(“cls”);

if((fp=fopen(“通訊錄1.txt”,“rb”))!=NULL)

{

printf(“姓名

電話號碼

學(xué)號

住址n”);

p =(struct message *)malloc(LEN);

//分配空間

while(!feof(fp))

{

fread(p,LEN,1,fp);

printf(“%-15s %-15s %-15s %-13s %-25sn”,p->name,p->phone,p->number,p->qq,p->addr);

}

fclose(fp);

}

else

{

printf(“未建立通訊錄!”);

} }

void main()

//主函數(shù) {

FILE * fp;

struct message * fphead;

int begin = 1,f;

char choice[5];

QQ

while(begin == 1)

{

printf(“tt>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”);

printf(“tttt歡迎使用學(xué)生通訊錄n”);

printf(“tt<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

printf(“ttt*主窗口菜單*nn”);

printf(“ttt1:顯示通訊錄中所有記錄;nn”);

printf(“ttt2:建立新通訊錄;nn”);

printf(“ttt3:添加新記錄;nn”);

printf(“ttt4:查詢通訊錄中的記錄;nn”);

printf(“ttt5:修改通訊錄中的記錄;nn”);

printf(“ttt6:刪除通訊錄中的記錄;nn”);

printf(“ttt0:退出通訊錄nn”);

printf(“請選擇操作:”);

scanf(“%s”,choice);

switch(choice[0])

{

case '1':

{

print();

printf(“按任意鍵返回主菜單!n”);

getch();

system(“cls”);

}

continue;

case '2':

{

creat();

}

continue;

case '3':

{

add();

}

continue;

case '4':

{

if((fp = fopen(“通訊錄1.txt”,“rb”))!= NULL)

{

fclose(fp);

system(“cls”);

printf(“1按姓名查詢;n2按電話查詢;n3按學(xué)號查詢;n”);

printf(“請輸入查詢方式:”);

scanf(“%d”,&f);

if(f==1)

{

fphead = open();

findname(fphead);

}

if(f==2)

{

fphead = open();

findphone(fphead);

}

else if(f==3)

{

fphead = open();

findnumber(fphead);

}

}

else

{

system(“cls”);

printf(“未建立通訊錄!”);

}

printf(“按任意鍵返回主菜單!n”);

getch();

system(“cls”);

}

continue;

case '5':

{

if((fp = fopen(“通訊錄1.txt”,“rb”))!= NULL)

{

fclose(fp);

fphead = open();

modify(fphead);

}

else

{

system(“cls”);

printf(“未建立通訊錄!”);

}

printf(“按任意鍵返回主菜單!n”);

getch();

system(“cls”);

}continue;

case '6':

{

if((fp = fopen(“通訊錄1.txt”,“rb”))!= NULL)

{

fclose(fp);

fphead = open();

del(fphead);

}

else

{

system(“cls”);

printf(“未建立通訊錄!”);

}

printf(“按任意鍵返回主菜單!n”);

getch();

system(“cls”);

}

continue;

case '0': exit(0);

default:

{

system(“cls”);

printf(“輸入錯誤,按任意鍵返回主菜單!n”);

getch();

system(“cls”);

}

}

}

system(“pause”);}

下載C語言程序設(shè)計學(xué)生通訊錄管理系統(tǒng)word格式文檔
下載C語言程序設(shè)計學(xué)生通訊錄管理系統(tǒng).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    學(xué)生通訊錄管理系統(tǒng)(C語言課程設(shè)計實驗報告)

    C語言課程設(shè)計報告——劉顯安 C語言課程設(shè)計 姓名:劉顯安 學(xué)號:09041131 班級:090411 專業(yè):計算機科學(xué)與技術(shù) 學(xué)院:信息工程學(xué)院 設(shè)計題目:學(xué)生通訊錄管理系統(tǒng) 指導(dǎo)教師:宋文琳 提......

    通訊錄管理系統(tǒng)

    摘 要 為了人們對他人信息的記憶方便而設(shè)計,開發(fā)的一套“通訊錄管理系統(tǒng)“軟件。 通過該題目的設(shè)計過程,可以培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計的思想,加深對高級語言基本語言要素和控制......

    C語言程序設(shè)計圖書管理系統(tǒng)

    C語言程序設(shè)計實驗報告 題 目: 圖書管理管理系統(tǒng) 院 系: 信息科技學(xué)院 專 業(yè): 姓 名: 學(xué) 號: 指導(dǎo)教師: 楊呈勇 日 期: 09-09-18 1 問題定義 ……………………………………………......

    通訊錄管理系統(tǒng)大全

    課 程 設(shè) 計 任 務(wù) 書 題目 C語言課程設(shè)計 系(部) 專業(yè)班級學(xué)生姓名學(xué)號 06 月信息科學(xué)與電氣工程學(xué)院計算機科學(xué)與技術(shù) 計職141 王雪 140819139 21 日至07 月04 日共 2......

    C++通訊錄管理系統(tǒng)

    黑龍江工程學(xué)院 第一章 問題分析和任務(wù)定義 1.1 問題分析 問題: 編寫一個通訊錄管理系統(tǒng)。要求包括通訊錄建立、增加號碼、刪除號碼、查詢號碼(按姓名、按號碼)、修改號碼、......

    手機通訊錄管理系統(tǒng)

    #include #include #include #include #include #include class Information { char name[20]; char tel[12]; char kind; char email[50]; public: Information(){} Inform......

    C語言程序設(shè)計考試系統(tǒng)

    《C語言程序設(shè)計》考試系統(tǒng) C language progamme design examination system 馬國富劉波 (安陽工學(xué)院 計算機工程系,河南 安陽455000) Ma GuoFu,liu bo (Department of Compute......

    湖南工業(yè)大學(xué) 通訊錄管理系統(tǒng)課程設(shè)計報告書(C語言)

    湖南工業(yè)大學(xué) 二〇〇九 ~ 二〇一〇學(xué)年 第 二 學(xué)期 計算機與通信學(xué)院 課程設(shè)計報告書 課程名稱: C語言課程設(shè)計 班 級: 學(xué) 號:姓 名: 指導(dǎo)老師: 二〇〇九 年 九 月 通訊錄......

主站蜘蛛池模板: 男人扒开女人腿桶到爽免费| 永久天堂网av手机版| 亚洲熟妇无码av在线播放| 一个人看的www免费视频在线观看| 妺妺窝人体色www婷婷| 精品999久久久久久中文字幕| 精品无码国产av一区二区三区| 国产精品国产三级国产av中文| 天干天干啦夜天干天2017| 亚洲精品国产一区二区小泽玛利亚| 毛片免费全部播放无码| 亚洲av无码专区亚洲av伊甸园| 粗了大了 整进去好爽视频| 国内精品伊人久久久久影院对白| 欧美性性性性性色大片免费的| 日本又色又爽又黄的a片18禁| 深夜放纵内射少妇| 伊甸园亚洲av久久精品| 一区二区三区在线 | 中国| 免费国精产品自偷自偷免费看| 无码人妻一区二区三区免费视频| 亚洲精品av无码喷奶水糖心| 人妻少妇精品无码专区动漫| 熟妇人妻中文字幕无码老熟妇| 亚洲男人的天堂www| 伊人无码精品久久一区二区| 国产精品亚洲а∨无码播放麻豆| 色婷婷亚洲精品综合影院| 亚洲精品国产精品乱码视色| 亚洲手机在线人成网站| 日本大肚子孕妇交xxx| 无遮无挡爽爽免费视频| 一二三四视频在线观看日本| 亚洲熟妇无码另类久久久| 亚洲ⅴ国产v天堂a无码二区| 人人莫人人擦人人看| 欧美一区二区三区| 男人撕开奶罩揉吮奶头视频| 97久久精品人人澡人人爽| 亚洲成av人片天堂网无码】| 亚洲色精品vr一区区三区|