學生信息管理系統_第1頁
學生信息管理系統_第2頁
學生信息管理系統_第3頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學生信息管理系統學生: 學號:班級:指導老師:日期:2、課程設計正文格式:1題目及要求學生信息管理系統此題目要求,使用結構體靜態(tài)數組存儲數據,并要求使用戶輸入的數據或者修改后的數據能夠永久保存。1.1問題提出詳細敘述本人所要實現的題目中的問題我編寫一個學生信息管理系統,主要用來管理學生基本信息。1.2本系統涉及的知識點女口:結構體、數組、循環(huán)、函數、分支、文件、字符串、指針;1.3功能分析敘述本人所要實現的題目功能1、添加學生信息,每個學生的信息包括:學號、生日、地址、班級;2、根據學號刪除該學生信息或刪除全部學生信息;3、根據學號、查詢學生信息;4、可以以表格形式輸出所有學生信息;5、輸入欲

2、修改的那人的名字后,再次進行信息修改;6、保存此學生信息系統;2功能設計畫出模塊層次結構圖學生信息管理系統退出2.1菜單設計陸Ine口些口 d一口些 口 utkrrELtut-U - 廠一 一戶二 廠二 卜二 學8忑£忑-I-老-1 1 Z 3 4- E b2.2各功能模塊的算法設計增加學生信息模塊:1.1打開文件。1.2用scanf輸入數據,保存再結構數組中。1.3用fwrite函數將結構體數組讀入學生信息文件中,關閉文件。顯示學生信息模塊:1.1只讀打開文件1.2將文件的信息讀入結構體數組中;1.3將結構體的容顯示在窗口上。1.4關閉文件。查詢學生信息模塊:1.1打開文件,讀出信

3、息;1.3如有該學號或,打印該學生的信息;1.4關閉文件。修改學生信息模塊:打開文件,讀出信息;1.11.2輸入要修改的學生信息的學號。1.3若有此學號,則重新輸入此學生信息。1.4覆蓋原先的信息,讀入文件;關閉文件。1.2 選擇要單個刪除一1.3 ,選擇全部刪除一1.5 ;1.3 打開文件,輸入要刪除的學號;1.4 若有此學號,覆蓋此條信息,已少一次數,讀入文件,關閉文件;若無,返回1.3 ;1.5 打開文件。將空字符讀入文件中,覆蓋原先 的信息,關閉文件。3程序代碼設計(-)增加模塊1)函數原形:void add(void)2)功能:利用for循環(huán)語句和scanf、getchar函數完成對

4、結構數組的輸入,再用再用fwrite函數將結構數組讀入學生信息表中。存放n個學生的信息(學號、生日、地址、班級)。3)輸入輸出:無。(二)查詢模塊1)函數原形:void search(void)2)功能:打開文件后,根據strcmp函數進行對比,可以進行學號與查詢,用fread函數將文件息讀到結構體數組中,相同就打印到窗口上。3)輸入輸出:無。(三)修改模塊1) 函數原形:void modi(void)2) 功 能:輸入要修改的,用fread函數將文件息讀到結構體數組中,根據strcmp函數進行對比,然后根據fwrite函數進行修改覆蓋,得到新文件。3)輸入輸出:無。(四)刪除模塊1)函數原形

5、:void del (void)2)功能:用fread函數將文件息讀到結構體數組中,依次將輸入的學號根據strcmp函數進行對比,然后再進行選擇性刪除。3)輸入輸出:無。(五)顯示模塊1)函數原形:void print(void)2)功能:用freed函數打開存儲的文件使其顯示在屏幕上。3)輸入輸出:無。(六)源程序代碼#i nclude<stdio.h>#in clude<stdlib.h>#i nclude<stri ng.h>void prin t(void); /顯示函數void add(void); /增加函數void search(void);

6、/查找函數void modi(void); /修改函數void del(void); /刪除函數/定義結構體typedef struct stude ntchar n ame20;char num20;char ban20;char birthday20;char pho ne20;char address200;STU;STU stu2000;FILE *fp;/主函數int main(v oid)int i;doprintf("|1n");printf("|學生信息管理系統| n");printf("|1n");prin tf(&

7、quot;| 1-增加學生信息| n");printf("| 2-刪除學生信息| n");printf("|3-查詢學生信息| n");printf("|4-顯示學生信息| n");printf("|5-修改學生信息| n");printf("| 6-退出| n");printf("|1n");prin tf("請選擇你的操作:(16)n");scan f("%d",&i);if(i=1) add();if(i=2)

8、del();if(i=3) search();if(i=4) prin t();if(i=5) modi();if(i=6) printf(" 您的使用! n");break;while(i>0&&i <7);if(i>6|i<1)printf("你的輸入錯誤n");return 0;/*增加函數*/void add(void)int m,i;為讀寫打開學生信息表文本文件if(fp=fopen("學生信息表.txt","a+")=NULL) /printf("Can

9、not open file strike any key exit!"); getchar();exit(1);printf("請輸入要添加學生的人數:");scan f("%d",&m);for(i=1;i<=m;i+)printf("請輸入:n");sca nf("%s",stui. name);prin tf("請輸入學號:n");scan f("%s",stui. nu m);printf(”請輸入班級:n");scan f(&quo

10、t;%s",stui.ba n);prin tf("請輸入生日:n");scan f("%s",stui.birthday);printf("請輸入:n");scan f("%s",stui.pho ne);prin tf("請輸入地址:n");sca nf("%s",stui.address);fwrite(&stui,sizeof(STU),1,fp); /把結構體的數據寫入學生信息表中prin tf("n");fclose(fp);

11、 /關閉學生信息表文本文件/*顯示函數*/void prin t(void)int i,n;if(fp=fopen("學生信息表.txt","r")=NULL) /為輸入打開學生信息表文本文件printf("Cannot open file strike any key exit!");exit(O);讀出學生信息地址n");for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+); /n=i;prin tf("學號班級生日printf("n");for(

12、i=0;i< n;i+)prin tf("%st %st %st %st %st %sn",stui. namestui. nu m,stui.ba n, stui.ph on e,stui.birthday,stui.address);printf("n")Jfclose(fp); /關閉學生信息表文本文件/*查詢函數*/void search(void)int i,n;char number20, name20;if(fp=fopen("學生信息表.txt","廣)=NULL) /為輸入打開學生信息表文本文件pri

13、ntf("Cannot open file strike any key exit!");exit(0);for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+);/讀取學生信息表文本文件n=i;int xz;printf("n");printf(" 1.學號查詢 n");printf(" 2.查詢 n");printf("n");printf("請選擇:n");scan f("%d",& xz);if (x

14、z=1)prin tf("n請輸入要查找學生的學號:");sca nf("%s" ,nu mber);for(i=0;i< n;i+)if(strcmp( nu mber,stui. num )=0)printf("n該學生已找到n");printf("n");printf(": %sn",);printf("學號:%sn",stui.num);printf("班級:%sn",stui.ban);printf(": %sn

15、",stui.phone);printf("出生日期:sn",stui.birthday);printf("地址:%sn",stui.address);break;elseprintf("n沒有你要找的學生!nn");elseif(xz=2)printf("請輸入要查詢者的:");for(i=0;i <n ;i+)if(strcmp( name,stui. name)=O)printf("該學生已找到n");printf("n");printf(":

16、 %sn",);printf("學號:%sn",stui.num);printf("班級:%sn",stui.ban);printf(": %sn",stui.phone);printf("出生日期:sn",stui.birthday);printf("地址:%sn",stui.address);break;elseprintf("n沒有你要找的學生!nn");fclose(fp); /關閉學生信息表文本文件/*修改函數*/void modi(vo

17、id) int i,n;char n ame20;if(fp=fopen(" 學生信息表.txt","r+")=NULL) / 為讀寫打開學生信息表文本文件printf("Cannot open file strike any key exit!");exit(0);printf("請輸入你要修改的學生的:");scan f("%s", name);for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+);n=i;for(i=0;i< n;i+)if

18、(strcmp( name,stui. num )=0)printf("n");printf(”請重新輸入:n"); scanf("%s",);printf("請重新輸入學號:n"); scanf("%s",stui.num);printf("請重新輸入班級:n"); scanf("%s",stui.ban);printf("請重新輸入地址:n"); scanf("%s",stui.address);fclo

19、se(fp);if(fp=fopen("學生信息表.txt","w")=NULL) /為輸出打開學生信息表文本文 件for(i=0;i< n;i+)fwrite(&stui,sizeof(STU),1,fp);覆蓋要修改的學生信息fclose(fp); /關閉學生信息表文本文件/*刪除函數*/void del(void)char number20,stud300;int flag=0,i,k,ch ,n ,temp;if(fp=fopen("學生信息表.txt","r")=NULL) /為輸入打開學生

20、信息表文本文件printf("Cannot open file strike any key exit!");讀出學生信息for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+);n=i;fclose(fp);printf(" l*1單個刪除*2全部刪除 *'n");prin tf("輸入你的選擇:");scan f("%d",&ch);if(ch=1)loop:printf("輸入要刪除學生的學號:");sca nf("%s&q

21、uot; ,nu mber);for(i=0;i< n;i+)if(strcmp(stui. num,nu mber)=0)flag=1; k=i;printf("*是否確定刪除?*printf("*1-j是*2否y *n");if(temp=2)goto loop;if(flag=O)printf("*列表中無此記錄*n");goto loop;for(i=k;i< n-1;i+)strcpy(stui. name,stui+1. name);strcpy(stui. nu m,stui+1. nu m);strcpy(stui.

22、ba n,stui+1.ba n);strcpy(stui.birthday,stui+1.birthday);strcpy(stui.ph on e,stui+1.ph on e);strcpy(stui.address,stui+1.address);為輸出打開學生信息表文本文件if(fp=fopen("學生信息表.txt","w")=NULL) /printf("Cannot open file strike any key exit!");n=n-1;重新輸出已修改的學生信息表for(i=0;i< n;i+)fwrite(&stui,sizeof(STU),1,fp);fclose(fp);printf(" 已刪除成功n");if(ch=2)printf(' *是否確定刪除?*n");printf(' *1-是*2-否*“);sca nf("%d", &temp);if(fp=fopen("學生信息表.txt","

溫馨提示

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

評論

0/150

提交評論