C課程設(shè)計(jì)信息管理-學(xué)生信息管理系統(tǒng)_第1頁
C課程設(shè)計(jì)信息管理-學(xué)生信息管理系統(tǒng)_第2頁
C課程設(shè)計(jì)信息管理-學(xué)生信息管理系統(tǒng)_第3頁
C課程設(shè)計(jì)信息管理-學(xué)生信息管理系統(tǒng)_第4頁
C課程設(shè)計(jì)信息管理-學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)說明書PAGE28內(nèi)蒙古科技大學(xué)本科生課程設(shè)計(jì)說明書題目:C語言課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)學(xué)生姓名:學(xué)號:專業(yè):班級:指導(dǎo)教師:日期:內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書課程名稱C語言課程設(shè)計(jì)設(shè)計(jì)題目學(xué)生信息管理系統(tǒng)指導(dǎo)教師時間一、教學(xué)要求1.鞏固和加深學(xué)生對C語言課程的基本知識的理解和掌握

2.掌握C語言編程和程序調(diào)試的基本技能

3.利用C語言進(jìn)行基本的軟件設(shè)計(jì)

4.掌握書寫程序設(shè)計(jì)說明文檔的能力

5.提高運(yùn)用C語言解決實(shí)際問題的能力二、設(shè)計(jì)資料及參數(shù)每個學(xué)生在教師提供的課程設(shè)計(jì)題目中任意選擇一題,獨(dú)立完成,題目選定后不可更換。某班學(xué)生基本信息管理,包括以下功能:從鍵盤輸入包括學(xué)號、姓名、性別、出生年月日、籍貫、所在院系、專業(yè)、獎懲信息等,并將其保存在磁盤文件里具有進(jìn)行單項(xiàng)查詢或多項(xiàng)查詢的功能(即按照給定的關(guān)鍵字姓名等找出滿足條件的紀(jì)錄)具有插入、修改和刪除信息的功能具有輸出文件數(shù)據(jù)信息的功能三、設(shè)計(jì)要求及成果1.分析課程設(shè)計(jì)題目的功能需求(可選用數(shù)組或鏈表實(shí)現(xiàn),可多人(最多3人)協(xié)作完成一個題目)

2.寫出詳細(xì)設(shè)計(jì)說明(至少包括功能實(shí)現(xiàn)分析和模塊流程圖)

3.編寫程序代碼,調(diào)試程序使其能正確運(yùn)行(代碼書寫要規(guī)范,標(biāo)示符要見名知意,要有必要的注釋,每人至少3個函數(shù),每人至少200行代碼,不包括注釋和花括號)

4.設(shè)計(jì)完成的軟件要便于操作和使用

5.設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告(請嚴(yán)格按照模板進(jìn)行排版)四、進(jìn)度安排第一天

選擇課程設(shè)計(jì)題目,分析課題的要求

第二天

編程

第三天

編程及調(diào)試

第四天

寫課程設(shè)計(jì)報(bào)告

第五天

提交課程設(shè)計(jì)報(bào)告(打印稿及電子稿)五、評分標(biāo)準(zhǔn)1.根據(jù)平時上機(jī)考勤、表現(xiàn)和進(jìn)度,教師將每天點(diǎn)名和檢查2.根據(jù)課程設(shè)計(jì)完成情況,必須有可運(yùn)行的軟件。

3.根據(jù)課程設(shè)計(jì)報(bào)告的質(zhì)量,如有雷同,則所有雷同的所有人均判為不及格。六、建議參考資料1.《C語言程序設(shè)計(jì)》,譚浩強(qiáng),清華大學(xué)出版社2.《C語言程序設(shè)計(jì)課程設(shè)計(jì)》,劉振安,機(jī)械工業(yè)出版社目錄內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書 I目錄 II第一章需求分析 31.1 引言 31.2 任務(wù)概述 31.3 數(shù)據(jù)描述 31.4 功能需求 31.5 性能需求 41.6 運(yùn)行需求 41.7 任務(wù)計(jì)劃 4第二章 概要設(shè)計(jì) 42.1 總體設(shè)計(jì) 42.2 數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)) 62.3 接口設(shè)計(jì)//函數(shù)聲明 62.4 運(yùn)行界面設(shè)計(jì) 7第三章 詳細(xì)設(shè)計(jì) 83.1 輸入模塊設(shè)計(jì) 83.2 輸出模塊設(shè)計(jì) 83.3 查找模塊設(shè)計(jì) 93.4 排序模塊設(shè)計(jì) 103.5 保存及讀取模塊設(shè)計(jì) 10第四章 測試分析 124.1 測試程序執(zhí)行情況 124.2 出現(xiàn)的問題和解決的方法 15第五章 用戶手冊(可選) 165.1 使用說明 165.2 運(yùn)行說明 16第六章 課程設(shè)計(jì)總結(jié) 17附錄:程序代碼 18參考文獻(xiàn) 28致謝 28第一章需求分析引言學(xué)生基本信息管理系統(tǒng)任務(wù)概述1、建立學(xué)生信息,信息至少包含學(xué)生姓名,學(xué)號,性別,年齡,出生日期,家庭地址,e-mail,電話地址等;2、能夠提供新建、瀏覽、查找、修改和刪除通訊錄信息的功能;3、能夠提供安不同方式查詢的功能;如按姓名或電話等查詢;數(shù)據(jù)描述structstudent{charNO[20];charname[20];intage;charsex[3];/*'F'表示性別男,'M'表示性別女*/charbirthday[10];charaddress[30];charphone[20];chare_mail[20];structstudent*next;//下個結(jié)點(diǎn)};功能需求1、輸入功能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生信息記錄的輸入。2、刪除功能:對指定學(xué)生的信息進(jìn)行刪除。3、修改功能:對指定學(xué)生的信息進(jìn)行修改。4、查詢功能:選擇某種方式并輸入該信息查詢符合條件的學(xué)生信息。5、排序功能:以英語課程的分?jǐn)?shù)為依據(jù)對學(xué)生信息進(jìn)行排序。6、顯示功能:將以上功能操作后的學(xué)生信息顯示出來。7、退出主菜單。性能需求1、輸入功能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生信息記錄的輸入。2、刪除功能:對指定學(xué)生的信息進(jìn)行刪除。3、修改功能:對指定學(xué)生的信息進(jìn)行修改。4、查詢功能:選擇某種方式并輸入該信息查詢符合條件的學(xué)生信息。5、排序功能:以英語課程的分?jǐn)?shù)為依據(jù)對學(xué)生信息進(jìn)行排序。6、顯示功能:將以上功能操作后的學(xué)生信息顯示出來。7、退出主菜單。運(yùn)行需求1、從鍵盤輸入包括學(xué)號、姓名、性別、出生年月日、籍貫、所在院系、專業(yè)、獎懲信息等,并將其保存在磁盤文件里。2、具有進(jìn)行單項(xiàng)查詢或多項(xiàng)查詢的功能(即按照給定的關(guān)鍵字姓名等找出滿足條件的紀(jì)錄)。3、具有插入、修改和刪除信息的功能。4、具有輸出文件數(shù)據(jù)信息的功能。任務(wù)計(jì)劃概要設(shè)計(jì)總體設(shè)計(jì)總體結(jié)構(gòu)我們采取模塊化方式進(jìn)行程序設(shè)計(jì),要求程序的功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及整體結(jié)構(gòu)設(shè)計(jì)合理。也可根據(jù)自己對題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式(至少采用文本菜單界面,如能采用圖形菜單界面更好)工作,運(yùn)行界面友好,演示程序以用戶和計(jì)算機(jī)的對話方式進(jìn)行。2、輸入要刪除的學(xué)生的編號,刪除學(xué)生信息。2、輸入要刪除的學(xué)生的編號,刪除學(xué)生信息。1、輸入學(xué)生的信息:學(xué)生姓名,學(xué)號,性別年齡,出生日期,電話菜單:新增學(xué)生信息刪除學(xué)生信息導(dǎo)入學(xué)生信息學(xué)生信息搜索學(xué)生信息保存退出5、保存學(xué)生信息:提示保存成功4、輸入你要查找你學(xué)生姓名3、輸出學(xué)生的學(xué)生姓名,學(xué)號,性別,年齡,出生日期,家庭地址,e-mail,電話6、退出系統(tǒng)學(xué)生管理系統(tǒng)功能模塊圖數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))structstudent{charNO[20];charname[20];intage;charsex[3];/*'F'表示性別男,'M'表示性別女*/charbirthday[10];charaddress[30];charphone[20];chare_mail[20];structstudent*next;//下個結(jié)點(diǎn)};接口設(shè)計(jì)//函數(shù)聲明表2.1:函數(shù)列表函數(shù)名函數(shù)格式//即函數(shù)首部函數(shù)功能voidshow_menu();void顯示菜單voidmenu();void執(zhí)行菜單voidcreat_stu();void建立鏈表voidinsert_stu();void學(xué)生信息錄入voidprint_stu();void學(xué)生信息瀏覽voidsearch_NO();void以學(xué)號方式查詢信息voidsearch_name();void以姓名方式查詢信息voidarrage_stu();void排序voiddel_stu();void刪除學(xué)生信息voidrevise_stu();void修改學(xué)生信息voidsave();void保存信息運(yùn)行界面設(shè)計(jì)主菜單模塊采用switch()函數(shù)從鍵盤選擇相應(yīng)菜單的對應(yīng)功能。switch(c){getchar();case1:insert_stu();break;//學(xué)生信息錄入case2:print_stu();break;//學(xué)生信息瀏覽case3:search_NO();break;//以學(xué)號方式查詢信息case4:search_name();break;//以姓名方式查詢信息case5:del_stu();break;//刪除學(xué)生信息case6:revise_stu();break;//修改學(xué)生信息case7:arrage_stu();break;//保存信息case0:exit(0);//退出}詳細(xì)設(shè)計(jì)輸入模塊設(shè)計(jì)數(shù)據(jù)插入模塊采用scanf()函數(shù)輸入新聯(lián)系人信息插入至結(jié)構(gòu)數(shù)組中。PF("\t\t輸入學(xué)生學(xué)號:\t");scanf("%s",p1->NO);//學(xué)號PF("\t\t輸入學(xué)生姓名:\t");scanf("%s",p1->name);//姓名PF("\t\t輸入學(xué)生年齡:\t");scanf("%d",&p1->age);//年齡PF("\t\t輸入學(xué)生性別:\t");scanf("%s",p1->sex);//性別PF("\t\t輸入學(xué)生出生年月:\t");scanf("%s",p1->birthday);//出生年月PF("\t\t輸入學(xué)生地址:\t");scanf("%s",p1->address);//地址PF("\t\t輸入學(xué)生電話:\t");scanf("%s",p1->phone);//電話PF("\t\t輸入學(xué)生E-mail:\t");scanf("%s",p1->e_mail);//E-mailn++;輸出模塊設(shè)計(jì)數(shù)據(jù)瀏覽模塊采用分屏顯示,每屏3條記錄。用fread或fscanf讀文件,輸出結(jié)果。for(p=head->next;p!=NULL;p=p->next)//讀出信息{PF("※※※※※※※※※※※※※※※※※※學(xué)生信息瀏覽※※※※※※※※※※※※※※※※※※\n");PF("\t\t學(xué)生學(xué)號:\t%s\n",p->NO);PF("\t\t學(xué)生姓名:\t%s\n",p->name);PF("\t\t學(xué)生年齡:\t%d\n",p->age);PF("\t\t學(xué)生性別:\t%s\n",p->sex);PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);PF("\t\t學(xué)生地址:\t%s\n",p->address);PF("\t\t學(xué)生電話:\t%s\n",p->phone);PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);PF("\n");}//輸出信息}查找模塊設(shè)計(jì)1)按姓名查找模塊通過鍵盤輸入要查找的學(xué)生姓名,然后與結(jié)構(gòu)數(shù)組中的姓名信息逐一比對,找出學(xué)生信息并輸出voidsearch_name()//學(xué)生姓名信息查找{STU*p=NULL;charname[20];if(head==NULL)//判斷鏈表是否為空{(diào)PF("文檔中無記錄!\n");return;}PF("輸入學(xué)生姓名:");scanf("%s",name);for(p=head->next;p!=NULL;p=p->next)//讀出信息{if(!strcmp(p->name,name))3)按學(xué)號查找模塊通過鍵盤輸入要查找的學(xué)生學(xué)號,然后與結(jié)構(gòu)數(shù)組中的電話信息逐一比對,找出學(xué)生信息并輸出voidsearch_NO()//學(xué)生學(xué)號信息查找{STU*p=NULL;charNO[20];if(head==NULL)//判斷鏈表是否為空{(diào)PF("文檔中無記錄!\n");return;}PF("請輸入學(xué)生學(xué)號:");scanf("%s",NO);for(p=head->next;p!=NULL;p=p->next)//讀出信息{if(!strcmp(p->NO,NO))排序模塊設(shè)計(jì)保存及讀取模塊設(shè)計(jì)1)按姓名查找模塊通過鍵盤輸入要查找的學(xué)生姓名,然后與結(jié)構(gòu)數(shù)組中的姓名信息逐一比對,找出學(xué)生信息并輸出voidsearch_name()//學(xué)生姓名信息查找{STU*p=NULL;charname[20];if(head==NULL)//判斷鏈表是否為空{(diào)PF("文檔中無記錄!\n");return;}PF("輸入學(xué)生姓名:");scanf("%s",name);for(p=head->next;p!=NULL;p=p->next)//讀出信息{if(!strcmp(p->name,name))3)按學(xué)號查找模塊通過鍵盤輸入要查找的學(xué)生學(xué)號,然后與結(jié)構(gòu)數(shù)組中的電話信息逐一比對,找出學(xué)生信息并輸出voidsearch_NO()//學(xué)生學(xué)號信息查找{STU*p=NULL;charNO[20];if(head==NULL)//判斷鏈表是否為空{(diào)PF("文檔中無記錄!\n");return;}PF("請輸入學(xué)生學(xué)號:");scanf("%s",NO);for(p=head->next;p!=NULL;p=p->next)//讀出信息{if(!strcmp(p->NO,NO))測試分析測試程序執(zhí)行情況主菜單輸入學(xué)生信息學(xué)生信息瀏覽按學(xué)號查找學(xué)生信息按姓名查找學(xué)生信息刪除學(xué)生信息修改學(xué)生信息退出出現(xiàn)的問題和解決的方法出現(xiàn)的問題就是不能進(jìn)行排序,解決方法為刪除。用戶手冊(可選)使用說明運(yùn)行說明課程設(shè)計(jì)總結(jié)在我們上機(jī)調(diào)試程序的過程中,我遇到了很多的問題,說實(shí)話這次課程設(shè)計(jì)自己沒有出多大的力,大部分都是借鑒同學(xué)的設(shè)計(jì)成果,自己設(shè)計(jì)是總是覺得沒有頭緒,無從下手??吹酵瑢W(xué)認(rèn)真看程序的樣子,還有修改程序時的熟練,我很羨慕他,我想,我要將C語言學(xué)好,在將來能為我的就業(yè)加分。在這期末考試前期,學(xué)院給我們安排的課程設(shè)計(jì)周,總讓我們覺的有些為難我們,這樣一個復(fù)雜困難而又繁瑣的作業(yè),似乎弄得我們既沒有時間也沒有心情復(fù)習(xí),我曾一度地抱怨過學(xué)院,在完成它之后,我發(fā)現(xiàn)我錯了,課程設(shè)計(jì)不僅讓我們鞏固了所學(xué)的知識,還使得我們學(xué)習(xí)到了更多平時所忽略的,最重要的是,它磨礪了我們,讓我們在大學(xué)的下一個階段能更好的成長。附錄:程序代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#definePFprintf#defineLENsizeof(structstudent)//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆定義結(jié)構(gòu)體◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆structstudent{ charNO[20]; charname[20]; intage; charsex[3];/*'F'表示性別男,'M'表示性別女*/ charbirthday[10]; charaddress[30]; charphone[20]; chare_mail[20]; structstudent*next;//下個結(jié)點(diǎn)};typedefstructstudentSTU;STU*head=NULL;//全局指針intn,i=0;//全局變量//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆自定義函數(shù)◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidshow_menu();//顯示菜單voidmenu();//執(zhí)行菜單voidcreat_stu();//建立鏈表voidinsert_stu();//學(xué)生信息錄入voidprint_stu();//學(xué)生信息瀏覽voidsearch_NO();//以學(xué)號方式查詢信息voidsearch_name();//以姓名方式查詢信息voiddel_stu();//刪除學(xué)生信息voidrevise_stu();//修改學(xué)生信息voidsave();//保存信息voidmain(){ creat_stu();menu();}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆創(chuàng)建鏈表◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidcreat_stu(){ FILE*fp; longsize; STU*p1,*p2; head=(STU*)malloc(sizeof(STU)); head->next=NULL; if((fp=fopen("fname.txt","r"))==NULL) { printf("這是新表\n"); return; } fseek(fp,0L,2); size=ftell(fp); if(!size) { printf("這是空表\n"); return; }//開始創(chuàng)建鏈表 rewind(fp);//移動到文件首 p2=head->next;//找到當(dāng)前位置 while(!feof(fp)) { p1=(STU*)malloc(sizeof(STU)); fscanf(fp,"%s%s%d%s%s%s%s%s\n",p1->NO,p1->name,&p1->age, p1->sex,p1->birthday,p1->address,p1->phone,p1->e_mail); p1->next=NULL;//創(chuàng)建節(jié)點(diǎn)完 if(head->next==NULL) head->next=p1; else p2->next=p1; p2=p1; n++; } p2->next=NULL; fclose(fp);}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆執(zhí)行菜單◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidmenu(){ intc; show_menu(); while(1) { scanf("%d",&c);switch(c) { getchar(); case1:insert_stu();break; case2:print_stu();break; case3:search_NO();break; case4:search_name();break; case5:del_stu();break; case6:revise_stu();break; case0:exit(0); } //執(zhí)行菜單選項(xiàng) show_menu(); }}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆顯示菜單◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidshow_menu(){ PF("\n"); PF("\n※※※※※※※※※※※※※※※※※※菜單※※※※※※※※※※※※※※※※※※\n"); PF("\t\t◆1.輸入學(xué)生信息◆\n"); PF("\t\t★2.瀏覽學(xué)生信息★\n"); PF("\t\t◆3.以學(xué)號方式查詢信息◆\n"); PF("\t\t★4.以姓名方式查詢信息★\n"); PF("\t\t◆5.刪除學(xué)生信息◆\n"); PF("\t\t★6.修改學(xué)生信息★\n"); PF("\t\t★0.退出★\n"); PF("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); PF("\n請選擇\n");}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生信息錄入◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidinsert_stu()//學(xué)生信息錄入{ n=0;STU*p1=NULL,*p2=NULL; p1=(STU*)malloc(sizeof(STU)); PF("\n※※※※※※※※※※※※※※※※※※錄入學(xué)生信息※※※※※※※※※※※※※※※※※※\n");//錄入學(xué)生信息 PF("\t\t輸入學(xué)生學(xué)號:\t"); scanf("%s",p1->NO);//學(xué)號 PF("\t\t輸入學(xué)生姓名:\t"); scanf("%s",p1->name);//姓名 PF("\t\t輸入學(xué)生年齡:\t"); scanf("%d",&p1->age);//年齡 PF("\t\t輸入學(xué)生性別:\t"); scanf("%s",p1->sex);//性別 PF("\t\t輸入學(xué)生出生年月:\t"); scanf("%s",p1->birthday);//出生年月 PF("\t\t輸入學(xué)生地址:\t"); scanf("%s",p1->address);//地址 PF("\t\t輸入學(xué)生電話:\t"); scanf("%s",p1->phone);//電話 PF("\t\t輸入學(xué)生E-mail:\t"); scanf("%s",p1->e_mail);//E-mailn++; if(head->next==NULL) { head=(STU*)malloc(LEN); head->next=p1; } else { for(p2=head;p2->next!=NULL;p2=p2->next);/*找到最后的結(jié)點(diǎn),然后將增加的結(jié)點(diǎn)掛在它上面*/ p2->next=p1; } p1->next=NULL;save();//保存到文件}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生信息瀏覽◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidprint_stu()//學(xué)生信息瀏覽{ STU*p=NULL; if(head==NULL)//判斷鏈表是否為空 { PF("文檔中無記錄!\n"); return; } for(p=head->next;p!=NULL;p=p->next)//讀出信息 { PF("※※※※※※※※※※※※※※※※※※學(xué)生信息瀏覽※※※※※※※※※※※※※※※※※※\n"); PF("\t\t學(xué)生學(xué)號:\t%s\n",p->NO); PF("\t\t學(xué)生姓名:\t%s\n",p->name); PF("\t\t學(xué)生年齡:\t%d\n",p->age); PF("\t\t學(xué)生性別:\t%s\n",p->sex); PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday); PF("\t\t學(xué)生地址:\t%s\n",p->address); PF("\t\t學(xué)生電話:\t%s\n",p->phone); PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail); PF("\n"); } //輸出信息}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生學(xué)號信息查找◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidsearch_NO() //學(xué)生學(xué)號信息查找{ STU*p=NULL; charNO[20]; if(head==NULL)//判斷鏈表是否為空 { PF("文檔中無記錄!\n"); return; } PF("請輸入學(xué)生學(xué)號:");scanf("%s",NO); for(p=head->next;p!=NULL;p=p->next)//讀出信息 { if(!strcmp(p->NO,NO)) { PF("※※※※※※※※※※※※※※※※※※您查找的學(xué)生是※※※※※※※※※※※※※※※※※※\n"); PF("\t\t學(xué)生學(xué)號:\t%s\n",p->NO); PF("\t\t學(xué)生姓名:\t%s\n",p->name); PF("\t\t學(xué)生年齡:\t%d\n",p->age); PF("\t\t學(xué)生性別:\t%s\n",p->sex); PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday); PF("\t\t學(xué)生地址:\t%s\n",p->address); PF("\t\t學(xué)生電話:\t%s\n",p->phone); PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail); PF("\n"); i=1; } //輸出信息 if(!i) { PF("無該生信息!請查證:");//沒找到信息時的處理 return; } }}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生姓名信息查找◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidsearch_name()//學(xué)生姓名信息查找{ STU*p=NULL; charname[20]; if(head==NULL)//判斷鏈表是否為空 { PF("文檔中無記錄!\n"); return; } PF("輸入學(xué)生姓名:");scanf("%s",name); for(p=head->next;p!=NULL;p=p->next)//讀出信息 { if(!strcmp(p->name,name)) { PF("※※※※※※※※※※※※※※※※※※您查找的學(xué)生是※※※※※※※※※※※※※※※※※※\n"); PF("\t\t學(xué)生學(xué)號:\t%s\n",p->NO); PF("\t\t學(xué)生姓名:\t%s\n",p->name); PF("\t\t學(xué)生年齡:\t%d\n",p->age); PF("\t\t學(xué)生性別:\t%s\n",p->sex); PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday); PF("\t\t學(xué)生地址:\t%s\n",p->address); PF("\t\t學(xué)生電話:\t%s\n",p->phone); PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail); PF("\n"); i=1; } //輸出信息 if(!i) { PF("無該生信息!請查證:");//沒找到信息時的處理 return; } }}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆刪除學(xué)生信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voiddel_stu(){ STU*p=NULL; if(head==NULL) //判斷鏈表是否為空 { PF("文檔中無記錄!\n"); return; } else { charNO[20]; PF("請輸入學(xué)生的學(xué)號:\t"); scanf("%s",NO); for(p=head;p!=NULL;p=p->next) { if(!strcmp(p->next->NO,NO)) //驗(yàn)證信息是否正確 { PF("※※※※※※※※※※※※※※※※※※您要刪除的學(xué)生是※※※※※※※※※※※※※※※※※※\n"); PF("\t\t學(xué)生學(xué)號:\t%s\n",p->next->NO); PF("\t\t學(xué)生姓名:\t%s\n",p->next->name); PF("\t\t學(xué)生年齡:\t%d\n",p->next->age); PF("\t\t學(xué)生性別:\t%s\n",p->next->sex); PF("\t\t學(xué)生出生年月:\t%s\n",p->next->birthday); PF("\t\t學(xué)生地址:\t%s\n",p->next->address); PF("\t\t學(xué)生電話:\t%s\n",p->next->phone); PF("\t\t學(xué)生E-mail:\t%s\n",p->next->e_mail); PF("\n"); //輸出要刪除的信息 i=1; if(p->next->next) { p->next=p->next->next; } else p->next=NULL; n--; save(); return; } if(!i) { PF("無該生信息!請查證:");//沒找到信息時的處理 return; } } }}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆修改學(xué)生信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidrevise_stu(){ STU*p=NULL; if(head==NULL)//判斷鏈表是否為空 { PF("文檔中無記錄!\n"); return; } charNO[20]; PF("請輸入學(xué)生的學(xué)號:\t"); scanf("%s",NO); for(p=head->next;p!=NULL;p=p->next) { if(!strcmp(p->NO,NO)) //驗(yàn)證信息是否正確 { PF("※※※※※※※※※※※※※※※※※※您要修改的學(xué)生是※※※※※※※※※※※※※※※※※※\n"); PF("\t\t學(xué)生學(xué)號:\t%s\n",p->NO); PF("\t\t學(xué)生姓名:\t%s\n",p->name); PF("\t\t學(xué)生年齡:\t%d\n",p->age); PF("\t\t學(xué)生性別:\t%s\n",p->sex); PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday); PF("\t\t學(xué)生地址:\t%s\n",p->address); PF("\t\t學(xué)生電話:\t%s\n",p->phone); PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail); PF("\n"); //輸出要修改信息 i=1;PF("※※※※※※※※※※※※※※※※※※修改學(xué)號為%s的學(xué)生※※※※※※※※※※※※※※※※※※\n",NO); strcpy(p->NO,NO); PF("\t\t輸入修改學(xué)生學(xué)號:\t"); scanf("%s",p->NO); PF("\t\t輸入修改學(xué)生姓名:\t"); scanf("%s",p->name); PF("\t\t輸入修改學(xué)生年齡:\t"); scanf("%d",&p->age); PF("\t\t輸入修改學(xué)生性別:\t"); scanf("%s",p->sex); PF("\t\t輸入修改學(xué)生出生年月:\t"); scanf("%s",p->birthday); PF("\t\t輸入修改學(xué)生地址:\t"); scanf("%s",p->address); PF("\t\t輸入修改學(xué)生電話:\t"); scanf("%s",p->phone); PF("\t\t輸入修改學(xué)生E-mail:\t"); scanf("%s",p->e_mail); PF("\n");//輸入修改信息 save(); } if(!i) { PF("無該生信息!請查證:"); /*沒找到信息時的處理*/ return; } }}//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆保存信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆voidsave(){ printf("※※※※※※※※※※※※※※※※※※保存信息并結(jié)束※※※※※※※※※※※※※※※※※※\n"); STU*p=NULL; FILE*fp; char*filename="fname.txt"; if((fp=fopen("fname.txt","w"))==NULL)//出錯檢測 { printf("\n打不開文件!\n"); return; } if(head->next==NULL) { printf("\n信息為空!\n"); return; } else p=head->next; while(p!=NULL) { fprintf(fp,"%s%s%d%s%s%s%s%s\n",p->NO,p->name,p->age, p->sex,p->birthday,p->address,p->phone,p->e_mail); //存入文件 p=p->next; } printf("保存完畢!\n"); fclose(fp);}參考文獻(xiàn)《C語言程序設(shè)計(jì)》,譚浩強(qiáng),清華大學(xué)出版社致謝基于C8051F單片機(jī)直流電動機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺控制器的研制基于單片機(jī)的軟起動器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號檢測儀基于單片機(jī)的電機(jī)運(yùn)動控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測量儀的研制基于單片機(jī)的紅外測油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動信號的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動譯碼系統(tǒng)設(shè)計(jì)與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機(jī)的μC/OS-Ⅱ的研究基于單片機(jī)的一體化智能差示掃描量熱儀系統(tǒng)研究HYPERLI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論