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

下載本文檔

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

文檔簡介

1、1系統的意義及其功能本系統為學生證管理程序。系統任務描述:假設某校學生學生證基本信息主要包括:學號、姓名、所在系、班級等,本系統應能對這些基本信息進行管理,并要求具有以下功能:(1 )通過鍵盤輸入某位學生的學生證信息。學生證包含的信息請參看自己的學生證;(2 )給定學號,顯示某位學生的學生證信息;(3)給定某個班級的班號,顯示該班所有學生的學生證信息;(4)給定某位學生的學號,修改該學生的學生證信息;2系統的功能結構圖以及調用關系學生證管理程序鍵入某位學生的學生證信息丿1廣輸入學號、LJ'輸入某班級的班號"J廠輸入某位學生的學號rLJ1顯示該生學生證信息LJ廠按學號排序或姓名

2、排序來'顯示該班所有學生證信息修改該生的學生證信息jJ3系統功能詳細分析學生證管理系統需要完成的功能主要有:從主函數進入各個子函數:子函數包括學生證信息的鍵入、查詢信息的功能、修改學生證信息的功能、退出系統。具體功能如下:3.1學生證信息的鍵入3.2查詢信息的功能查詢記錄的主要功能是通過不同的查詢方式查詢學生的信息。先是進入查詢界面,再選擇查詢的方 式,選擇后將輸出該學生的信息。共分為兩種: 給定某個學生的學號,顯示該學生的學生證信息; 給定某個班級的班號,按學號排序來顯示該班所有學生的學生證信息;按班級排序來顯示該班所有學生的學生證信息;輸入學號,顯示該生的學生證信息開始輸入班號,顯

3、示該班所有學生的學生證信息3.3修改學生證信息的功能修改信息功能 修改信息的主要功 能是通過輸入某位 學生的學號來修改 該生的學生證信 息。先是進入修改 界面,再輸入學號, 輸入后,將輸出該 生的學生證信息, 再選擇是否修改此 記錄,選擇是,則 輸入修改的信息, 并保存修改。4運行界面主菜單界面生證信息驢生如主址信息3 !L1J 渝入詵:而 “23、±S5 1;1入汽意,輸入格式不變!學呂姓名1 0-=l4ft221 1044G209 1F>44B1O8 1044&107 B0B00B0BF男女黒女女亠十砒02010101入圧釗白息忌自S耳S1-眉虐唱時(年201 02

4、B102131020102 18EF909090)9019冃 m 01 »1 Bl 010) 身侗訃卜呂出牛H期(年 32123-41 992 112757® 丄 ¥¥2丄3343 43<119921992199219921992月 日)2 122223909學生證鍵入的界面學 息有息 證重證 ±Ai 學聲叱號一于份主冃圭冃t性院費身1 珈 選: 入號 輸寧- .1 - 1 bPL_ 1 1 12 2 月刃月 與341鄆 0 2 2 2 119 回20329-息T1 王男富間號期 時證日±ti A篦任意鍵返回王菓單:個人學生證信

5、息顯示界面M M請選庫愉入選丄頁Ll 7 7 J : >顯示班級信息的選擇輸出方式的界面詰輸入士飪紳士a-?電子丄niil臨嚴一,A 器時=2010年9月±曰占份旺號=J aa-13-134 i-tiLEI 期:ivvaiTH月T 口T2t 1 2瓷月aQ- 1 1年莘» 3C Mllv±uuuy6 1- 2 a 144=罷:®日 in ri岀需奩竟饌返回上層荼甲=按學號排序顯示該班所有學生的學生證信息界面選.-+-A04J童李四IN03年吁冃J. H32 i22 M 3312 311王五衛(wèi)_彗¥笙年討口址摳| H;32213312321

6、3S3t 192 J=t9 jA22 曰舅衽:&健返回上層菜單:按姓名排序顯示該班所有學生的學生證信息界面顯示班級信息的退出界面言息息 息 證信昱證 生人艾-87號2學1的22500 3 92 2 13s s2)3) 日12日 月12月 2 2 10年32年息子選學入改I21需號份生修 擇要62傘姓焦費身岀已 黃M4更入入入入光入息 請輸tt3請sBg.KgHaBg捌信改琴修10王間號期要時證修改學生證信息的界面5系統使用說明1、進入程序時,先以菜單形式顯示所有命令,然后用戶通過菜單項選擇操作;例如:1 學生證信息的鍵入2 輸入學號,顯示該生學生證信息3 輸入班號,顯示該班所有學生的學

7、生證信息4 給定學號,修改該生學生證信息5 退出系統請選擇1/2/3/4/5:2、鍵入學生證信息時,按照所給定的格式輸入。3、查詢信息是按學生學號和班號的形式進行查詢,填入學號后,則顯示出該生所有信息;選擇按班號查詢功能后,在選擇顯示輸出方式,分兩種:一種按學號排序;另一種是按姓名排序。 選定后,再填入班號,則顯示出該班所有學生的學生證信息(按已選定的排序方式顯示)4、修改信息是按輸入學號的形式進行修改,填入后,則顯示出該生所有信息,然后詢問是否修改, 若回答“ y”(大小寫通用),則輸入新值,否則不作修改。6C語言源程序代碼#in elude <stdio.h>#i nclude

8、 <win dows.h>II#include <malloc.h>#in elude <stri ng.h>#in elude <stdlib.h>用來使用清屏函數#defi ne LEN sizeof(struct STUcard) struct STUcard *creat();void viewpers on();void viewclass();void nu mber();void n ame();void cha nge();struct STUcard *save();struct dateint year;int mon th;

9、int day;IIstruct STUcard int nu mber;char n ame20;char sex10;char departme nt20; char class nu mber10;struct date timeofe nter; II char IDnu mber30;struct date birthday; struct STUcard *n ext; II定義結構體定義用來嵌套的結構體嵌套結構體void mai n()char c;int n=0;struct STUcard *head;char build;IIFILE *fp;fp=fope n("

10、;XX.out","rb"); if(fp=NULL)創(chuàng)建文件printf(" 文件不存在,請創(chuàng)建( Y or N ) "); scanf("%c",&build);if(build='Y')fp=fopen("XX.out","wb");elseexit(0);dosystem("cls"); / 清屏printf("1:輸入學生證信息n");printf("2:查找個人信息n");printf(&q

11、uot;3:查找班級里所有學生的學生證信息printf("4:修改學生證信息n");printf("5:退出n");printf( "*printf( "*n");printf(" n");printf(" 請選擇輸入選項 12345:>"); doc=getchar();while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!=

12、'5'); getchar();switch(c)case '1': head=creat(); break; case '2': viewperson(head); break; case '3': viewclass(head); break; case '4': change(head); break; case '5': exit(0); break;printf(" 按任意鍵返回主菜單 :n"); flushall();getchar(); printf("%

13、d",n); system("cls");while(1);int n;struct STUcard *creat() /錄入學生證信息函數struct STUcard *head,*p1,*p2;n=0;head=NULL;p1=p2=(struct STUcard *)malloc(LEN);printf(”請按以下格式輸入學生證信息,注意每個數據之間間隔一個空格!n以學號為00000000結束錄入,并且剩下的信息字符用“0”代替輸入 注意:輸入格式不變!:n");printf("學號 姓名 性別 院系 班級 入學時間(年 月曰)身份證號

14、出生日期(年 月日) n");scanf("%d %s %s %s %s %d %d %d %s %d %d %d",&p1->number,p1->name,p1->sex,p1->d epartme nt,p1->class nu mber,&p1->timeofe nter.year, &p1->timeofe nter.m on th,&p1->timeofe nter.day,p1->ID nu mber, &p1->birthday.year,&

15、p1->birthday. mon th, &p1->birthday.day);while(p1-> nu mber!=00000000)n=n+1;if(n=1) head=p1;else p2->n ext=p1;p2=p1;p仁(struct STUcard *)malloc(LEN);scan f("%d %s %s %s %s %d %d %d %s %d %d %d",&p1-> nu mber,p1-> name,p1->sex,p 1->departme nt,p1->class nu

16、mber,&p1->timeofe nter.year,&p1->timeofe nter.m onth,&p1->timeofe nter.day,p1->ID nu mber,&p1->birthday.year, &p1->birthday. mon th,&p1->birthday.day);p2-> next=NULL;free(p1);save(head);/保存文件return(head);/把已錄入信息的鏈表頭指針返回給住函數void viewperso n(struct STUca

17、rd * head) /查找個人信息函數int m,a=0;struct STUcard *p;printf("請輸入學號:");prin tf("n ");scan f("%d", &m);p=head;/獲取頭指針,以使用鏈表while(p->next!=NULL) / 判斷是否為空指針if(p->number=m)printf(" 學號: %dn 姓名: %sn 性別: %sn 院系: %sn 班級: %sn 入學時間:月°%d日 n身份證號:sn出生日期:4年4月%d0 n",

18、p->number,p->name,p->sex,p->department,p->classnumber,p->timeofenter.year,p->timeofenter.month,p->timeofenter.day,p->IDnumber,p->birthday.year,p->birthday.month,p->birthday.day);printf("n");a=a+1;p=p->next; /結點后移if(p->number=m)printf(" 學號: %dn

19、 姓名: %sn 性別: %sn 院系: %sn 班級: %sn 入學時間: 月d日n身份證號:%sn出生日期:4年4月%d日n",%4年 %d%4年 %dp->number,p->name,p->sex,p->department,p->classnumber,p->timeofenter.year,p->timeofenter.month,p->timeofenter.day,p->IDnumber,p->birthday.year,p->birthday.month,p->birthday.day);pri

20、ntf("n");a=a+1;printf("n");prin tf(”共 dA n",a);if(a=0) printf(" 對不起,查無此人 !n");void viewclass(struct STUcard * head) /查找班級信息函數char c;void number();void name(); dosystem("cls"); /清屏printf(*n");printf(" 1:按學號排序輸出n");printf(" 2:按姓名排序輸出n&qu

21、ot;);printf(" 3:退出n");printf(*n");prin tf(”n");printf("請選擇輸入選項123:>");doc=getchar();while(c!='1'&&c!='2'&&c!=3);getchar();switch(c)case '1':nu mber(head); break;case '2':n ame(head); break;case '3':exit(0); cont

22、inue;printf(”按任意鍵返回上層菜單:n");flushall();getchar();system("cls");while(1);void number(struct STUcard *head) /按學號排序char c10;int h1,a=0,i,j,k,w;char hn ame20;char hsex20;char hdepartme nt20;char hclass nu mber10;char hID number30;struct date htimeofe nter;struct date hbirthday;struct STUc

23、ard *p,*p2,*p3;p=head;p2=head;p3=p2->n ext;for(k=1;k+)/用來確定鏈表中共多少個結點if(p->n ext!=NULL) p=p->n ext;else break;for(i=0;i<k-1;i+)p2=head; p3=p2->next;for(j=0;j<k-1-i;j+)if(p2->number>p3->number)h1=p2->number;strcpy(hname,p2->name);strcpy(hsex,p2->sex); strcpy(hdepart

24、ment,p2->department); strcpy(hclassnumber,p2->classnumber); strcpy(hIDnumber,p2->IDnumber); htimeofenter=p2->timeofenter; hbirthday=p2->birthday; p2->number=p3->number;2->name,p3->name);strcpy(p2->sex,p3->sex); strcpy(p2->department,p3->department); strcpy(p2-&

25、gt;classnumber,p3->classnumber); strcpy(p2->IDnumber,p3->IDnumber); p2->timeofenter=p3->timeofenter; p2->birthday=p3->birthday;p3->number=h1;strcpy(p3->name,hname);strcpy(p3->sex,hsex); strcpy(p3->department,hdepartment); strcpy(p3->classnumber,hclassnumber); strc

26、py(p3->IDnumber,hIDnumber); p3->timeofenter=htimeofenter; p3->birthday=hbirthday; p2=p3; p3=p3->next;printf("請輸入班級: n");scanf("%s",&c); p=head;printf("n");if(strcmp(p->class nu mber,c)=O)%4年 %dprintf(" 學號:dn姓名:%sn性別:%sn院系:%sn班級:%sn入學時間: 月d日n身份證號:

27、%sn出生日期:4年4月%d日n",p->nu mber,p->n ame,p->sex,p->departme nt,p->class nu mber,p->timeofe nter.year,p->timeofe nter.m on th,p->timeofe nter.day,p->ID nu mber, p->birthday.year,p->birthday. mon th,p->birthday.day);a=a+1;p=p->n ext;prin tf("n");prin

28、tf("共 dA n",a);if(a=0) printf("對不起無此班級");void n ame(struct STUcard *head) /按姓名排序char c10;int h1,a=O,i,j,k,w;char hn ame20;char hsex20;char hdepartme nt20;char hclass nu mber10;char hID number30;struct date htimeofe nter;struct date hbirthday;struct STUcard *p,*p2,*p3;p=head;p2=he

29、ad;p3=p2->n ext;for(k=1;k+)if(p->n ext!=NULL) p=p->n ext;else break;for(i=0;i<k-1;i+)p2=head;p3=p2->n ext;for(j=0;j<k-1-i;j+)if(strcmp(p2->n ame,p3->n ame)>0)h1=p2->nu mber;strcpy(hname,p2->name);strcpy(hsex,p2->sex); strcpy(hdepartment,p2->department); strcpy(

30、hclassnumber,p2->classnumber); strcpy(hIDnumber,p2->IDnumber); htimeofenter=p2->timeofenter;hbirthday=p2->birthday;p2->number=p3->number;strcpy(p2->name,p3->name);strcpy(p2->sex,p3->sex); strcpy(p2->department,p3->department); strcpy(p2->classnumber,p3->clas

31、snumber); strcpy(p2->IDnumber,p3->IDnumber); p2->timeofenter=p3->timeofenter;p2->birthday=p3->birthday;p3->number=h1;strcpy(p3->name,hname);strcpy(p3->sex,hsex); strcpy(p3->department,hdepartment); strcpy(p3->classnumber,hclassnumber); strcpy(p3->IDnumber,hIDnumbe

32、r); p3->timeofenter=htimeofenter;p3->birthday=hbirthday;p2=p3;p3=p3->next;printf(" 請輸入班級: n");scanf("%s",&c);p=head;for(w=1;w<=k;w+)printf("n");if(strcmp(p->classnumber,c)=0)%4年 %dprintf("學號:dn姓名:sn性別:sn院系:sn班級:sn入學時間:月d日n身份證號:%sn出生日期:4年4月%d日n&qu

33、ot;, p->number,p->name,p->sex,p->department,p->classnumber, p->timeofenter.year,p->timeofenter.month,p->timeofenter.day,p->IDnumber, p->birthday.year,p->birthday.month,p->birthday.day);a=a+1;p=p->n ext;prin tf("n");prin tf("共 dA n",a);if(a=0

34、) printf("對不起無此班級");void cha nge(struct STUcard * head) /修改信息 int x;struct STUcard *p1,*p2;prin tf("輸入要修改學生的學號n");scan f("%d", &x);p仁head;while(p1-> nu mber!=x )&&(p1-> next!=NULL)p2=p1;p1=p1- >n ext;if(p1- >nu mber=x)printf("請輸入需要修改的信息:n&qu

35、ot;);prin tf("輸入學號:");scan f("%d", &p1-> nu mber);prin tf("輸入姓名:");sca nf("%s",p1- >n ame);prin tf("輸入性別:");scan f("%s",p1->sex);prin tf("輸入院系:");sca nf("%s",p1->departme nt);prin tf("輸入班級:");sc

36、a nf("%s",p1->class nu mber);printf("輸入入學時間(年月曰):");sca nf("%d %d %d",&p1->timeofe nter.year,&p1->timeofe nter.m on th,&p1->timeofe nter.day); printf("輸入身份證號:");scan f("%s",p1->ID number);printf("輸入出生日期(年月 日:”);scan f(

37、"%d %d %d",&p1->birthday.year,&p1->birthday.mo nth,&p1->birthday.day);printf("信息已修改");save(head);else printf("%d找不到該學號!n",x);struct STUcard *save(struct STUcard *head) / 保存函數 FILE *fp;struct STUcard *p;p=head;fp=fopen("XX.out","w+&quo

38、t;);if(fp=0)printf(" 不能打開文件 ");exit(0);while (p)fprintf(fp," 學號:dn姓名:sn性別:sn院系:sn班級:sn入學時間:4年%d 月%d0 n身份證號:%sn出生日期:4年4月%d0 n",p->number,p->name,p->sex,p->department,p->classnumber, p->timeofenter.year,p->timeofenter.month,p->timeofenter.day,p->IDnumber, p->birthday.

溫馨提示

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

評論

0/150

提交評論