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

學生通訊錄管理系統(C語言課程設計實驗報告)

時間:2019-05-14 03:02:06下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《學生通訊錄管理系統(C語言課程設計實驗報告)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《學生通訊錄管理系統(C語言課程設計實驗報告)》。

第一篇:學生通訊錄管理系統(C語言課程設計實驗報告)

C語言課程設計報告——劉顯安

C語言課程設計

姓名:劉顯安 學號:09041131 班級:090411 專業:計算機科學與技術 學院:信息工程學院 設計題目:學生通訊錄管理系統

指導教師:宋文琳 提交時間:2010年9月4日

第1頁(共25頁)

C語言課程設計報告——劉顯安

課程題目:學生通訊錄管理系統

要求:學生通訊錄信息包括:學號、姓名、班機、聯系電話、E-mail、宿舍等 主要功能:1、2、3、4、5、通訊錄信息錄入功能 通訊錄信息刪除功能 通訊錄信息瀏覽功能 通訊錄信息查詢功能 按學號排序功能

一、總體設計

首先,整個系統必須有一個主函數,為了盡量提高程序的易修改性,且不至于相互干擾,將每一個功能分成不同的模塊,用不同的函數來實現,例如在我寫的這個程序中,一共用了11個函數,分別是:

主菜單函數menu()、關于函數gaunyu()、幫助函數help()、輸出單個學生信息函數shuchu()、輸入函數shuru()、輸出所有學生信息函數findall()、按姓名查找函數findname()、按學號查找函數findnum()、刪除函數shanchu()、排序函數paixu()、主函數main(),這樣在整個程序的設計過程中也就一目了然,寫起來也相對輕松了不少。

這個程序我只是總體上參考了一下網上程序的架構,具體的各個函數是參照課本上《鏈表》那一章的內容的,比如結構體的建立、查找和排序等功能,這些書上都有類似的,其中排序功能雖沒有原版的,第2頁(共25頁)

C語言課程設計報告——劉顯安

但是在第六章中有一個用冒泡法排序的例題,我就是仿照這個模式來對結構體進行排序的,總之整個程序中蘊含了我很多的汗水。

二、具體設計

關于這個程序的具體設計,也不是一兩句話就能說完的,所以我也不想再在這里贅述了,因為程序里都可以看的到,幾乎每個函數都傾注了我的大量汗水,我在這上面花了不少的時間,不過從中也收獲了很多,因為不停地修改不停的調試,總之還是直接看源程序吧,因為也沒必要在這里重復地說廢話。

三、源代碼

以下是整個程序的源代碼,其中我的主菜單函數是很美觀的,但由于這里字體和板式的限制,不能很好的顯現,可以看我下面程序運行的截圖就知道了。—————————————————— #include #include #include #include #include #define NULL 0

struct student{

第3頁(共25頁)

C語言課程設計報告——劉顯安

long num;char name[20];int banji;char tel[11];char Email[20];int sushe;struct student *next;};

struct student *stu;int n;

void menu(void){ /*主菜單函數*/ system(“cls”);puts(“****************************************************************************”);puts(“** ^_^學生通訊錄管理系統^_^ **”);puts(“****************************************************************************”);puts(“******** 計 ********”);

第4頁(共25頁)

C語言課程設計報告——劉顯安

puts(“******* *******”);puts(“****** 算 ******”);puts(“***** 0 1=錄入學生通訊錄信息 *****”);puts(“**** 9 機 ****”);puts(“*** ***”);puts(“** 科 **”);puts(“*

*”);puts(“** 1 學 **”);puts(“*** ***”);puts(“**** 與 ****”);puts(“***** *****”);0 4

劉 2=

安 6=

第5頁(共25頁)

列出所有學生通訊錄 3=按姓名查詢信息 4=按學號查詢信息

5=刪除學生信息 按學號將通訊錄排序

7=關于

8=幫助

0=退出

C語言課程設計報告——劉顯安

puts(“****** 技 ******”);puts(“******* *******”);puts(“******** 術 ********”);puts(“****************************************************************************”);} void guanyu()/*關于函數*/ { system(“cls”);puts(“n ************************** ”);puts(“ *** 版權所有,翻版必究!***”);puts(“**** copyright◎劉顯安!****”);puts(“ *** 2009~2010 ***”);puts(“ **************************”);puts(“n返回主菜單請按【9】”);if(getche()=='9')menu();}

struct student *shuru(void)/*輸入函數*/

第6頁(共25頁)

C語言課程設計報告——劉顯安

{ system(“cls”);struct student *s1,*s2;n=1;int num;puts(“請輸入學生個數(提示:個數不能輸入0!):”);scanf(“%d”,&num);s1=s2=(struct student *)malloc(sizeof(struct student));puts(“*************************************************”);puts(“請輸入學號:”);scanf(“%ld”,&s1->num);puts(“請輸入學生姓名:”);scanf(“%s”,s1->name);puts(“請輸入班級:”);scanf(“%d”,&s1->banji);puts(“請輸入電話號碼:”);scanf(“%s”,s1->tel);puts(“請輸入電子郵件:”);scanf(“%s”,s1->Email);puts(“請輸入學生宿舍號:”);scanf(“%d”,&s1->sushe);stu=s1;

第7頁(共25頁)

C語言課程設計報告——劉顯安

while(nnext=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student));puts(“*************************************************”);puts(“請輸入學號:”);scanf(“%ld”,&s1->num);puts(“請輸入學生姓名:”);scanf(“%s”,s1->name);puts(“請輸入班級:”);scanf(“%d”,&s1->banji);puts(“請輸入電話號碼:”);scanf(“%s”,s1->tel);puts(“請輸入電子郵件:”);scanf(“%s”,s1->Email);puts(“請輸入學生宿舍號:”);scanf(“%d”,&s1->sushe);n=n+1;} puts(“*************************************************”);s2->next=s1;

第8頁(共25頁)

C語言課程設計報告——劉顯安

s2=s1;s2->next=NULL;return(stu);//system(“cls”);}

void shuchu(struct student *s){ /*輸出單個學生信息*/ printf(“* %-8ld”,s->num);printf(“%-15s”,s->name);printf(“%-8d”,s->banji);printf(“%-15s”,s->tel);printf(“%-15s”,s->Email);printf(“%-5d *n”,s->sushe);}

void findall()/*輸出所有學生信息*/ { system(“cls”);struct student *s;//if(n=2)//printf(“n現在有%d個學生信息,分別是:n”,n);//else

第9頁(共25頁)

C語言課程設計報告——劉顯安

printf(“n現在有%d個學生信息,分別是:n”,n);puts(“________________________________________________________________________”);puts(“* 學號 姓名 班級 電話 電子郵件 宿舍 *”);s=stu;while(s!=NULL){ shuchu(s);s=s->next;} puts(“________________________________________________________________________”);puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

void findname(){ /*按姓名查找函數*/ system(“cls”);struct student *s;char name[20];printf(“n請輸入你要查詢的學生姓名:n”);

第10頁(共25頁)

C語言課程設計報告——劉顯安

scanf(“%s”,name);s=stu;while(strcmp(s->name,name)!=0){ s=s->next;} if(s==NULL){ puts(“查無此學生姓名!”);goto end;} else { puts(“該學生的信息為:”);puts(“* 學號

姓名

電子郵件 宿舍 *”);shuchu(s);} end:;puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

第11頁(共25頁)

班級

電話

C語言課程設計報告——劉顯安

void findnum()/*按學號查找函數*/ { system(“cls”);struct student *s;puts(“請輸入你要查詢的學生學號:”);long i;scanf(“%ld”,&i);s=stu;

while(s->num!=i){ s=s->next;} if(s==NULL){puts(“查無此學生學號!”);goto end;} else { puts(“該學生的信息為:”);puts(“* 學號 姓名 班級 郵件 宿舍 *”);shuchu(s);

第12頁(共25頁)

子電話 電C語言課程設計報告——劉顯安

} end:;puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

struct student *shanchu(struct student*stu)/*刪除函數*/ { system(“cls”);long num;char s;struct student *s1,*s2;if(stu==NULL){ puts(“傻冒!沒有任何學生信息,還刪個屁啊,刪刪刪!”);goto end;} puts(“請輸入你要刪除的學生學號:”);scanf(“%ld”,&num);s1=stu;puts(“警告:你確定要刪除這個學生的信息嗎(Y/N)?”);scanf(“%s”,&s);

第13頁(共25頁)

C語言課程設計報告——劉顯安

if((s=='Y')||(s=='y')){ while((num!=s1->num)&&(s1->next!=NULL)){s2=s1;s1=s1->next;}

if(num==s1->num){ puts(“該學生的信息為:”);puts(“* 學號

姓名

班級

電話 電子郵件 宿舍 *”);shuchu(s1);if(s1==stu)stu=s1->next;else s2->next=s1->next;puts(“注意喲,該學生的信息已經刪除了!剩下的學生通訊錄信息如下:”);n=n-1;} } findall();return(stu);end:;

第14頁(共25頁)

C語言課程設計報告——劉顯安

puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

void paixu(){ /*排序函數*/ struct student *p, *p1,*p2;int i,j;int temp;char b[20];if(stu==NULL){printf(“n學生信息不存在n”);goto end;} for(i=0;inext;if(p1->num>p2->num)

{temp=p1->num;p1->num=p2->num;p2->num=temp;

strcpy(b,p1->name);strcpy(p1->name,p2->name);strcpy(p2->nam

第15頁(共25頁)

C語言課程設計報告——劉顯安

e,b);

temp=p1->banji;p1->banji=p2->banji;p2->banji=temp;

strcpy(b,p1->tel);strcpy(p1->tel,p2->tel);strcpy(p2->tel,b);

strcpy(b,p1->Email);strcpy(p1->Email,p2->Email);strcpy(p2->Email,b);temp=p1->sushe;p1->sushe=p2->sushe;p2->sushe=temp;

} p1=p1->next;} } p=stu;puts(“已按學生學號順序排序完畢!重新排序如下:”);

puts(“****************************************************************************”);puts(“* 學號 姓名 班級 電話 電子郵件 宿舍 *”);

while(p!=NULL)

第16頁(共25頁)

C語言課程設計報告——劉顯安

{ printf(“* %-8ld”,p->num);printf(“%-15s”,p->name);printf(“%-8d”,p->banji);printf(“%-15s”,p->tel);printf(“%-15s”,p->Email);printf(“%-5d *n”,p->sushe);p=p->next;} end:;puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

void help()/*幫助函數*/ { system(“cls”);puts(“n1、請按提示操作,第一次進入本系統時請按“1”錄入學生信息,”);puts(“ 否則有可能造成程序運行錯誤!”);puts(“

2、添加、修改功能本系統暫不提供,還有待以后完善,謝謝

第17頁(共25頁)

C語言課程設計報告——劉顯安

合作!”);puts(“

3、請注意查看“Num Lock”是否打開,如果沒有打開,則按數字n 鍵可能導致程序錯誤!”);puts(“

4、版權所有,翻版必究!請按“7”鍵查看關于。”);puts(“n返回主菜單請按【9】”);if(getche()=='9')menu();}

void main()/*主函數*/ { char a;menu();puts(“n您為首次使用本系統,強烈建議您按1開始錄入學生信息,”);puts(“否則有可能導致程序運行錯誤!您可以按8查看幫助.”);a=getche();while(a){ puts(“");switch(a){case'0':goto end;break;case '1': puts(”n好了,您可以開始向本系統錄入學生通訊錄信息了:

第18頁(共25頁)

C語言課程設計報告——劉顯安

“);stu=shuru();system(”cls“);menu();puts(”n學生信息錄入完畢,請輸入你的選擇(0~6):n“);

break;case '2':findall();puts(”n請輸入你的選擇(0~6):“);break;case '3':findname();puts(”n請輸入你的選擇(0~6):“);break;case '4':findnum();puts(”n請輸入你的選擇(0~6):“);break;case '5':stu=shanchu(stu);puts(”n請輸入你的選擇(0~6):“);break;case '6':paixu();puts(”n請輸入你的選擇(0~6):“);break;case '7':guanyu();puts(”n請輸入你的選擇(0~6):“);break;case '8':help();puts(”n請輸入你的選擇(0~6):“);break;default:puts(”輸錯了!笨蛋!快點按數字1鍵錄入學生信息吧!“);break;} a=getche();} end:;puts(”謝謝您使用本系統,歡迎再次使用!");

第19頁(共25頁)

C語言課程設計報告——劉顯安

} —————————————————————————

四、調試

主要是通過截圖來顯示運行過程 以下是程序運行的主界面:

按1后,開始錄入信息,程序會提示你輸入學生個數(例如本例中輸入4個),當輸完4個學生的信息時,程序會提示你已輸入完畢:

第20頁(共25頁)

C語言課程設計報告——劉顯安

學生信息錄入完畢,提示輸入(0到6)進行選擇:

第21頁(共25頁)

C語言課程設計報告——劉顯安

這時我選擇按2輸出所有學生信息,按9返回:

按3按姓名查詢信息:

按4按學號查詢信息:

第22頁(共25頁)

C語言課程設計報告——劉顯安

按5刪除學生信息,這是按學號刪除學生信息,本例中,刪除學號為41212的學生信息:

刪除成功后,系統自動將剩下的學生信息列出:

按6按學號從小到大進行排序,可以發現,排序成功:

第23頁(共25頁)

C語言課程設計報告——劉顯安

按8查看幫助函數:

呵呵,這是我設置的關于函數,滿足一下敝人的虛榮心嘛^_^,版權所有,翻版必究哦!

最后按0退出系統:

第24頁(共25頁)

C語言課程設計報告——劉顯安

呵呵,怎么樣?我寫的程序還行吧。嘿嘿……

三、總結

這個程序我只是總體上參考了一下網上程序的架構,具體的各個函數是參照課本上《鏈表》那一章的內容的,比如結構體的建立、查找和排序等功能,這些書上都有類似的,其中排序功能雖沒有原版的,但是在第六章中有一個用冒泡法排序的例題,我就是仿照這個模式來對結構體進行排序的,總之整個程序中蘊含了我很多的汗水。

第25頁(共25頁)

第二篇:C語言課程設計學生通訊錄管理系統設計

C語言課程設計學生通訊錄管理系統設計

一、題目內容的描述

學生通訊錄管理系統設計

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

功能要求如下:

1、能建立、修改和增刪學生通訊錄

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

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

二、應用程序功能的詳細說明

1、應用程序實現了可視化的系統操作界面。

2、對學生通訊錄形成了系統化的管理,操作簡便明了。

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

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

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

三、主要模塊的算法描述

學生通訊錄管理系統

刷新學生信息readfile()

查詢學生信息seek()

增加學生信息insert()

顯示學生信息display()

退出系統

修改學生信息modify()

刪除學生信息del()

保存當前學生信息save()

匯總當前學生數目number()

系統幫助help()

查詢學生信息

按姓名查詢

退出

按學號查詢

開始

以可讀寫的方式打開一個數據文件

將此文件的內容讀出,并存入一個新的結構體類型的數組中。

調用menu()菜單函數

進入while()主循環

輸入1-8中的一數值,選擇相應操作。

輸入是否為0

判斷鍵值,調用相應函數,完成相應功能。

是否已對修改存盤

調用函數save()函數,進行寫數據文件操作

結束

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

對系統所使用的變量進行定義,對函數進行聲明。

模塊二:錄入學生信息

聲明函數void

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

*fp打開文

件“student.txt“。

模塊三:學生信息的查找

聲明void

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

模塊四:學生信息的修改

聲明void

modify()為學生信息修改函數,通過switch(item)設定

所要修改的項目。

模塊五:刷新學生信息

聲明void

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

實現排序。

模塊六:增加學生信息

聲明void

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

否則繼續輸入,若是則跳出,重新循環。

模塊七:刪除學生信息

聲明void

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

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

模塊八:顯示學生信息

通過display()函數輸出學生信息。

模塊九:保存信息

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

模塊十:匯總學生數目

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

模塊十一:系統幫助

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

模塊十二:界面菜單

通過switch(num)調用以上各函數,實現功能。

1、程序采用模塊化設計,各模塊獨立,可分塊調試,個模塊由主函數控制調用。

2、其中主要模塊(readfile()、seek()、modify())都是利用數組,指針來實現數據結構設計。

3、數據庫設計的任務是確定系統所需要的數據庫。數據庫是表的集合,通常一個系統只需一個數據庫。設計人

是根據需求分析,確定數據庫所包含的表及字段、表間的關系,然后具體確定表的結構,包括字段名、字段類型及寬度,需要的索引等。根據對需求得到的數據結構進行分析,按數據輸入輸出的要求,確定表和表間的關系,進行驗證、調整、修改、完善,使其能夠實現用戶對數據和功能的要求。通訊信息表包括以下字段:學號,姓名,年齡,性別,出生年月,地址,電話,E-mail。學號為主索引。

四、結束語

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

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

2、學會靈活運用已有的知識,同時適當的拓展一些知識;比如,這次設計過程中,有一些函數以前就很少用到,甚至沒有見過,但對程序的設計及用戶界面的改善帶來方便;

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

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

五、程序源代碼清單

#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()//刷新學生信息

{

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()//查詢學生信息

......void

modify()//修改學生信息

......void

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

{

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()//增加學生信息

......void

display()//顯示當前學生信息

{

int

i;

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

printf(“學生學號,學生姓名,年齡,性別,出生年月,地址,電話,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()//保存當前學生信息

{

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()//匯總學生數目

{

int

i,girl,boy=0;

for(i=0;i

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

{boy++;}

girl=n-boy;

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

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

}

void

help()//系統幫助

{

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

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

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

}

void

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

{

int

num;

printf(“

\n\n

學生通訊錄管理系統

\n\n“);

printf(“

*********************系統功能菜單************************

\n“);

printf(“

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

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

\n“);

printf(“

1.刷新學生信息

2.查詢學生信息

\n“);

printf(“

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

\n“);

printf(“

3.修改學生信息

4.增加學生信息

\n“);

printf(“

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

\n“);

printf(“

5.按學號刪除信息

6.顯示當前信息

\n“);

printf(“

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

\n“);

printf(“

7.保存當前學生信息

8.匯總學生數目

\n“);

printf(“

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

\n“);

printf(“

9.系統幫助

10.退出系統

\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語言課程設計-通訊錄管理

課程設計報告

課程設計題目:

通訊錄管理

學生姓名:

業:

級:

指導教師:

2009年6月16日

實驗題目:

《通訊錄管理》

實驗時間、地點:

2009-6-8到2009-6-12日

信工樓307

實驗目的:

本次課程設計的主要目的是綜合運用所學的C語言知識解決一個比較實際的簡單問題,側重對數組、函數、指針、結構體和文件等相關內容的綜合應用,使同學們能進一步熟悉掌握C語言的基本語法,進一步提升自己的編程能力并逐步培養編程思維,進而不斷提高同學們解決問題的能力,并為以后的語言學習打下良好的基礎。

實驗要求:

1.獨立完成;

2.此次課程設計在規定的時間必須在實驗室完成,不得以任何理由在其他地點進行;

3.每個人需按照選題規則確定好自己的題目(注意不是多人完成一題,每人獨立完成一題),不得以任何理由選擇其他的題目,當然在完成自己的題目之后根據個人興趣可以繼續選做其他的題目;

4.課程設計完成后嚴格按照報告格式撰寫課程設計報告,并于結束后的第三天上交到學習委員統一交給老師;

5.課程設計的成績由兩部分組成:程序檢查成績(40%,每個功能占程序分的20%)+報告檢查成績(40%)+平時考核(20%)

6.每個程序實現方式可以自選,可以采用文件、鏈表、數組或其任意組合完成。

實現思路:

通訊錄信息包括:學號,姓名,班級,聯系電話,E-MAIL,宿舍等 主要功能:

(1)建立、修改和增刪學生通訊錄(2)能夠按多種方式進行查詢

按姓名查詢、按學號查詢

按宿舍查詢

(3)要求:以菜單方式操作,界面友好,易于操作

流程圖:

增加

1↓ ↓

保存

查詢

a↓

b↓

c↓

按姓名查詢

按學號查詢

按宿舍查詢

2→刪除 4→保存

5↓

5↓

退出

退出 實現過程:

3#include #include FILE *fp;int i;char ch;struct member { int number;char name[20];char telephone[13];char xuehao[50];char sushe[20];char email[20];}members[50];void Data_Menu(){ printf(“n----------------------------n”);

printf(“ 學生通訊錄 08041238”);printf(“n----------------------------n”);printf(“ 1.Add”);printf(“ 2.Delete”);printf(“ 3.Search”);printf(“ 4.Save”);printf(“ 5.Exit”);printf(“n----------------------------n”);} void Data_Menu1(){ printf(“n”);printf(“ a.Name”);printf(“nb.Xuehao”);printf(“nc.sushe”);} void Data_Load(){ int j;long k;fp=fopen(“members.txt”,“rt”);if(fp!=NULL){ for(i=1;i<50;i++){ j=fgetc(fp);if(j==EOF){ return;} k=i-1;fseek(fp,k*sizeof(struct member),SEEK_SET);fread(&members[i],sizeof(struct member),1,fp);} }else{ fp=fopen(“members.txt”,“a”);i=1;} } void Data_Add(int j){ printf(“n”);members[j].number=j;printf(“ntNo:%d”,j);printf(“ntName:”);scanf(“%s”,members[j].name);printf(“tTelephone:”);scanf(“%s”,members[j].telephone);printf(“tXuehao:”);scanf(“%s”,members[j].xuehao);printf(“tSushe:”);scanf(“%s”,members[j].sushe);printf(“tEmail:”);scanf(“%s”,members[j].email);} void Data_Show(int j){ printf(“ntNo:%d”,members[j].number);printf(“ntName:%s”,members[j].name);printf(“ntTelephone:%s”,members[j].telephone);printf(“ntXuehao:%s”,members[j].xuehao);printf(“ntSushe:%s”,members[j].sushe);printf(“ntEmail:%s”,members[j].email);} void Data_Save(){ int j;fp=fopen(“members.txt”,“a”);for(j=1;j<=i;j++){ fwrite(&members[j],sizeof(struct member),1,fp);} } main(){ char *search_name;char *search_xuehao;char *search_sushe;int j,k;Data_Load();i--;do{ Data_Menu();printf(“ Please Choose:”);ch=getche();switch(ch){ case '1': while(i<50){ i++;Data_Add(i);break;} if(i==50){ printf(“ntMessage is Filled!n”);} break;case '2': if(i<1){ printf(“ntNo Recordsn”);break;} printf(“ntDelete No:”);scanf(“%d”,&k);for(j=k;j

break;case '4': Data_Save();printf(“ Date is Saved!n”);fclose(fp);break;case '5': printf(“nt”);printf(“ Do You Want To Save Message(y/n)”);if(getche()=='y'){ Data_Save();} fclose(fp);exit(0);break;default: break;} }while(1);} 實驗總結:

經過幾天的努力,終于做出來了,在這過程中自己逐漸提高了對數組、函數、指針、結構體和文件等相關內容的綜合應用,并且進一步熟悉掌握C語言的基本語法,提升了自己的編程能力,并逐步培養編程思維,進而不斷提高自己解決問題的能力。

心得體會: 實驗雖然做成功了,但在此次試驗過程中,自己也體會到一些東西:

第一:要細心對待程序的每一個環節,否則得話將會給自己編程帶來很大的困擾.第二:要多動手去操作,只有這樣才能真正使自己的能力得到真正的提高。

第三:課外要多看以些書,光憑課本上的知識是不夠的,要自己自覺地去學習新的知識。

第四篇:C語言-通訊錄管理系統

#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(“

通訊錄管理系統

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.退出通訊錄管理系統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(“ 學號(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(“ 想繼續創建嗎?(1.是/0.不):”);scanf(“%d”,&j);if(!j)

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

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

{ printf(“ 學號(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(“ 想繼續添加嗎?(1.是/0.不):”);scanf(“%d”,&j);if(!j)return i;else printf(“恭喜你,添加成功!請繼續添加!n”);

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

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

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

{ printf(“ ** 學號姓名出生年月家庭住址郵編電話**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(“ ** 學號姓名出生年月家庭住址郵編電話**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請輸入要刪除學號:n”);scanf(“%s”,number);for(i=0;i

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

{ printf(“ttt以下是您要刪除的用戶紀錄:n”);printf(“ ** 學號姓名出生年月家庭住址郵編電話**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沒有該用戶的紀錄”);

return;

} return;

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

printf(“ 1.按姓名排序n”);printf(“ 2.按學號排序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語言程序設計學生通訊錄管理系統

#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是否繼續添加?(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);}

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

文檔為doc格式


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

相關范文推薦

    C語言大作業——學生通訊錄管理系統

    #include #include //#define NULL 0 #define LEN sizeof(struct message) struct message //定義結構體{ char name[15]; char number[15]; char phone[15]; char qq[1......

    湖南工業大學 通訊錄管理系統課程設計報告書(C語言)

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

    C語言課程設計學生選課系統

    題目一、學生選課管理系統 第一部分:課程設計名稱、目的、要求 第二部分:程序總體設計思路 第三部分:程序功能劃分、圖示及流程圖 第四部分:程序設計數據、運行結果 第五部分:程......

    c語言實驗報告三 學生成績管理系統

    1. 實驗內容 實現一個學生成績處理程序,先輸入多名學生的學號和成績,然后進入菜單,可以選擇打印,添加,修改,刪除或查詢成績(學號查詢和成績段查詢)。 2. 實驗步驟 2.1 程序1 2.1.1......

    C語言課程設計任務書(學生成績管理系統)

    課程設計題目:簡單的學生成績管理的程序要求: 一、由鍵盤輸入原始數據。原始數據內容如下: 學號姓名C程序設計高等數學英語線性代數 1王..80808080 2張..90909090 注:要求至少有......

    C語言課程設計 倉庫管理系統

    C語言課程設計 倉庫管理系統 #include struct cangku { int num; char name[20]; char introdution[50]; float square; }; typedef struct cangku Cangku; int Input(......

    學生通訊錄管理系統

    “學生通訊信息記錄系統”的設計與實現 一、設計要求 1. 問題的描述 “學生通訊信息記錄系統”是為了實現快速的對學生信息進行錄入、刪除、查找、顯示。各個功能靠函數實現......

    C語言課程設計任務書-學生通訊系統(范文模版)

    2007-2008學年第二學期 《C語言程序設計》 課程設計報告 系部: 三系專業班級: 電子資訊工程(2)班 學號:070306210姓名: 冀鵬超設計題目:同學通訊錄設計起訖日期: 2008.6.16 至 2008.6......

主站蜘蛛池模板: 日本孕妇潮喷高潮视频| 国产尤物精品视频| 免费看国产曰批40分钟| 99爱在线精品免费观看| 特大黑人娇小亚洲女| 久热这里在线精品| 丰满人妻一区二区三区视频| 偷看农村女人做爰毛片色| 亚洲精品中文字幕一区二区三区| 婷婷五月综合缴情在线视频| 国产午夜福利小视频合集| 亚洲产国偷v产偷v自拍色戒| 波多野结衣爽到高潮大喷| 亚洲国产成人久久精品99| 久久精品国产999久久久| 一道久在线无码加勒比| 日本中文字幕一区二区高清在线| 日韩欧美中文字幕在线三区| 少妇夜夜春夜夜爽试看视频| 午夜爽爽爽男女免费观看麻豆国产| 国产亚洲精品a片久久久| 欧美日韩久久中文字幕| 亚洲另类欧美在线电影| 少妇人妻系列1~100| 一夲道无码人妻精品一区二区| 特级西西人体444www高清大胆| 老师脱了内裤让我进去| 亚洲欧美在线一区中文字幕| 亚洲国产综合无码一区二区bt下| 国产精品一区二区手机在线观看| 久久久久国色av∨免费看| 国产亚洲精品第一综合不卡| 国产99久久久久久免费看| 日日噜噜夜夜狠狠久久无码区| 2021国产精品视频网站| 日韩一线无码av毛片免费| 99精品视频在线观看免费| 2023极品少妇xxxo露脸| 色吊丝中文字幕| 自拍区小说区图片区亚洲| 亚洲中文字幕精品一区二区三区|