版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 軟件設(shè)計(jì)報(bào)告</b></p><p> 題 目: 學(xué)生學(xué)籍管理系統(tǒng) </p><p><b> 一、 課程設(shè)計(jì)目的</b></p><p> 應(yīng)用所學(xué)的計(jì)算機(jī)基礎(chǔ)知識(shí)和所掌握的程序設(shè)計(jì)語(yǔ)言(C語(yǔ)
2、言),自主實(shí)現(xiàn)一個(gè)較為完整的小型管理信息系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)。通過(guò)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編程調(diào)試,寫(xiě)實(shí)驗(yàn)報(bào)告等環(huán)節(jié),初步掌握軟件系統(tǒng)設(shè)計(jì)的方法和步驟,訓(xùn)練靈活運(yùn)用程序設(shè)計(jì)語(yǔ)言進(jìn)行軟件開(kāi)發(fā)的能力,提高分析問(wèn)題和解決問(wèn)題的能力,提高程序設(shè)計(jì)水平,培養(yǎng)必要的工程實(shí)踐動(dòng)手能力</p><p><b> 二、課程設(shè)計(jì)內(nèi)容</b></p><p> 用所學(xué)過(guò)的C語(yǔ)言知識(shí)(文件,結(jié)構(gòu)
3、體,函數(shù))編程一個(gè)學(xué)生證的程序,并完成對(duì)數(shù)據(jù)的錄入、修改、刪除等一系列操作。</p><p><b> 三、需求分析</b></p><p> 對(duì)所開(kāi)發(fā)系統(tǒng)功能、性能的描述,想要實(shí)現(xiàn)的目標(biāo)。</p><p> 學(xué)生分配:(系別,專(zhuān)業(yè),班級(jí))</p><p> 學(xué)生信息表:(學(xué)號(hào),姓名,性別,年齡,出生年月,民族,
4、院系,班級(jí),家庭住址)</p><p> ?。?)數(shù)據(jù)存儲(chǔ):(文件讀寫(xiě))</p><p> (4)數(shù)據(jù)的更新:(刪除,修改,)</p><p> ?。?)數(shù)據(jù)的查詢:(按學(xué)號(hào))</p><p> (6)數(shù)據(jù)排序:(按學(xué)號(hào)升序排列)</p><p> ?。?)數(shù)據(jù)統(tǒng)計(jì):(按班級(jí))</p><p&g
5、t; ?。?)密碼設(shè)置:通過(guò)密碼才能進(jìn)入該系統(tǒng)。</p><p><b> 四、概要設(shè)計(jì)</b></p><p> ?。?)系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)</p><p> 對(duì)系統(tǒng)進(jìn)行分析,給出系統(tǒng)結(jié)構(gòu)圖;</p><p><b> 主函數(shù)</b></p><p> (2.
6、)功能模塊說(shuō)明</p><p> 對(duì)各個(gè)模塊進(jìn)行功能的描述。</p><p> 首先輸入密碼,密碼輸入正確之后方可進(jìn)入程序并對(duì)其進(jìn)行進(jìn)一步的操作,否則跳出程序。</p><p> 1.輸入模塊:錄入系統(tǒng)所需的全部數(shù)據(jù)信息,如學(xué)號(hào)、姓名、年齡、班級(jí)、院系等信息;</p><p> 2.存儲(chǔ)模塊:將錄入的數(shù)據(jù)存儲(chǔ),用文件的形式將錄的數(shù)據(jù)存
7、儲(chǔ); </p><p> 3.添加模塊:對(duì)所需存儲(chǔ)的數(shù)據(jù)進(jìn)添加操作;</p><p> 4.修改模塊:根據(jù)學(xué)號(hào)對(duì)需要更正的數(shù)據(jù)信息進(jìn)行修改操作;</p><p> 5.刪除模塊:對(duì)數(shù)據(jù)進(jìn)行刪除操作,根據(jù)學(xué)號(hào)將對(duì)應(yīng)記錄刪除;</p><p> 6.查詢模塊:按要求對(duì)數(shù)據(jù)進(jìn)行查詢,根據(jù)學(xué)號(hào)將該學(xué)生信息輸出;</p><
8、p> 7.統(tǒng)計(jì)模塊:按要求根據(jù)班級(jí)信息統(tǒng)計(jì)學(xué)生信息;</p><p> 8.打印模塊:按學(xué)號(hào)由小到大將學(xué)生的各項(xiàng)信息輸出;</p><p> 五、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果</p><p> 流程圖, 函數(shù)之間相互調(diào)用的圖示 ,程序設(shè)計(jì)及編碼, 運(yùn)行結(jié)果。</p><p><b> N</b></p>
9、<p> Y </p><p><b> Y</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b><
10、;/p><p><b> N</b></p><p><b> N </b></p><p> Y </p><p> N </p><p><b> Y </b></p><
11、;p><b> N</b></p><p> H Y</p><p><b> N</b></p><p><b> Y</b></p><p> 六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì)</p><p> 1、對(duì)自己設(shè)計(jì)
12、進(jìn)行評(píng)價(jià),指出合理和不足之處,提出改進(jìn)的方案。</p><p> 2、在設(shè)計(jì)過(guò)程中的感受。</p><p> 通過(guò)兩周的努力,我終于完成了這個(gè)學(xué)籍管理系統(tǒng),使其可以完成數(shù)據(jù)的錄入、存儲(chǔ)、修改等功能。在課程設(shè)計(jì)中通過(guò)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編程調(diào)試,寫(xiě)實(shí)驗(yàn)報(bào)告等環(huán)節(jié),我已經(jīng)初步掌握軟件系統(tǒng)設(shè)計(jì)的方法和步驟,提高分析問(wèn)題和解決問(wèn)題的能力以及提高程序設(shè)計(jì)水平,更為重要的是加強(qiáng)培養(yǎng)了必要的工程實(shí)踐
13、動(dòng)手能力。不足的是結(jié)構(gòu)還是過(guò)于簡(jiǎn)單,沒(méi)能用到指針及鏈表,對(duì)于時(shí)間的把握也不是很好,沒(méi)有在預(yù)期的時(shí)間內(nèi)完成預(yù)期的效果。</p><p> 在這兩周內(nèi),充分體會(huì)到了自己能力的不足,沒(méi)有老師同學(xué)的幫助可能到現(xiàn)在還不能完成這次課程設(shè)計(jì),也體會(huì)到了C語(yǔ)言的獨(dú)特魅力,值得我去進(jìn)一步的學(xué)習(xí),也是第一次將課本中的知識(shí)運(yùn)用到實(shí)踐中,讓我認(rèn)識(shí)到加強(qiáng)自我能力培養(yǎng)的重要性??傊瑢⒅R(shí)運(yùn)用于實(shí)踐是一件很不易的事情自己還需努力完善自我。
14、</p><p><b> 七、參考文獻(xiàn)</b></p><p> 《C語(yǔ)言程序設(shè)計(jì)》 王曙燕 曹錳 科學(xué)出版社 2005年2月</p><p> 《C語(yǔ)言程序設(shè)計(jì)》 譚浩強(qiáng) 清華大學(xué)出版社 1999年12月</p><p> 《C語(yǔ)言程序設(shè)計(jì)教程》 張毅坤 曹錳 張亞玲 西
15、安交通大學(xué)出版社</p><p><b> 八、附錄:源代碼</b></p><p> (略,詳見(jiàn)電子版實(shí)驗(yàn)報(bào)告)</p><p> #include "stdio.h"</p><p> #include "stdlib.h"</p><p>
16、#include "string.h"</p><p> #define N 30 //宏定義學(xué)生的總?cè)藬?shù)</p><p> typedef struct</p><p><b> {</b></p><p><b> int year;</b><
17、/p><p> int month;</p><p><b> int day; </b></p><p> }DATE; /*日期結(jié)構(gòu)體類(lèi)型*/</p><p> typedef struct </p><p><b> {</b></p>
18、<p> char id[9]; /*學(xué)號(hào)*/</p><p> char name[21];/*名字*/</p><p> char sex [7];/*性別*/</p><p> int age;/*年齡*/</p><p> DATE birth;/*出生年月*/</p><p> ch
19、ar minzu[81];/*民族*/</p><p> char depart[81];/*院系*/</p><p> char classes[21];/*班級(jí)*/</p><p> char addr[21];/*家庭住址*/</p><p> }STUDENTS;</p><p><b>
20、/*讀取模塊*/</b></p><p> int read_file(STUDENTS students[])</p><p> { FILE *fp;</p><p><b> int i=0;</b></p><p> if((fp=fopen("stu.txt",&q
21、uot;rt"))==NULL)</p><p> { printf("\n\n*****庫(kù)存文件不存在!請(qǐng)創(chuàng)建");</p><p><b> return 0;</b></p><p><b> }</b></p><p> while((fread(&a
22、mp;students[i],sizeof(STUDENTS),1,fp))==1) //每次從讀取STUDENTS的字節(jié)數(shù)</p><p><b> { </b></p><p><b> i++;</b></p><p><b> }</b></p><p&
23、gt; fclose(fp);</p><p> return i; //每次讀后保存加總數(shù)1</p><p><b> }</b></p><p><b> /*保存模塊*/</b></p><p> void
24、 save_file(STUDENTS students[],int sum)</p><p> { FILE *fp;</p><p><b> int i;</b></p><p> if((fp=fopen("stu.txt","wb"))==NULL)</p><p&
25、gt; { printf("讀文件錯(cuò)誤!\n"); //如果文件打開(kāi)錯(cuò)誤提示用戶,然后返回</p><p><b> return;</b></p><p><b> }</b></p><p> for(i=0;i<sum;i++)<
26、;/p><p> if(fwrite(&students[i],sizeof(STUDENTS),1,fp)!=1) </p><p> printf("寫(xiě)文件錯(cuò)誤!\n");</p><p> fclose(fp); //保存完畢關(guān)閉文件</p
27、><p><b> }</b></p><p><b> /*輸入模塊*/</b></p><p> int input (STUDENTS students[]) </p><p> { int s,i=0;</p><p
28、> printf("\n\n 錄入學(xué)生信息 (最多%d個(gè))\n",N);</p><p> printf(" ------------------\n");</p><p> printf("請(qǐng)輸入要錄入的學(xué)生信息個(gè)數(shù)s:");
29、 //讓用戶輸入需輸入的學(xué)生信息個(gè)數(shù)</p><p> scanf("%d",&s);</p><p> printf("\n\n 錄入學(xué)生信息\n");</p><p> printf(" ---------------
30、--------------------------------------\n");</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n 第%d個(gè)學(xué)生",i+1);</p>
31、<p> printf("\n 學(xué)號(hào):");</p><p> scanf("%s",students[i].id );</p><p> if(students[i].id==0) break; </p><p> printf("\n
32、 姓名:");</p><p> scanf("%s",students[i].name );</p><p> printf("\n 性別:");</p><p> scanf("%s",students[i].sex);</p&
33、gt;<p> printf("\n 年齡:");</p><p> scanf("%d",&students[i]. age);</p><p> printf("\n 出生日期:");</p><p>
34、 scanf("%d %d %d",&students[i].birth.year,&students[i].birth.month,&students[i].birth.day);</p><p> flushall();</p><p> printf("\n 民族:");</
35、p><p> scanf("%s",students[i].minzu);</p><p> printf("\n 院系:");</p><p> scanf("%s",students[i].depart);</p><p> printf(
36、"\n 班級(jí):");</p><p> scanf("%s",students[i].classes);</p><p> printf("\n 家庭住址:");</p><p> scanf("%s",stu
37、dents[i].addr);</p><p><b> i++;</b></p><p> }while(i<s); //當(dāng)i小于要輸入的總數(shù)s則跳出循環(huán)</p><p> printf("\n -----%d
38、個(gè)學(xué)生的信息錄入完畢!----\n",s);</p><p> printf("\n 按任意鍵返回主菜單!");</p><p><b> getch();</b></p><p> return s;
39、 //向住函數(shù)返回學(xué)生數(shù)</p><p><b> }</b></p><p><b> /*輸出模塊*/</b></p><p> void output(STUDENTS students[],int sum) </p><p&
40、gt;<b> { </b></p><p> int i=0,j=0;</p><p> int PAGE=1;</p><p> printf("\n\n --學(xué)生信息表-- 第%d頁(yè)\n\n",PAGE);</p&
41、gt;<p> printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址 \n");</p><p> printf("----------------------------------------------------------------------------");</p><
42、;p><b> do</b></p><p><b> {</b></p><p> if(students[i].id!=0)</p><p><b> {</b></p><p><b> j++;</b></p><
43、;p> if(j%PAGE!=0)</p><p><b> {</b></p><p> printf("%8s %8s %4s %4d %10d-%2d-%2d ",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.ye
44、ar,students[i].birth. month,students[i].birth. day);</p><p> printf("---------------------------------------------------------------------------");</p><p><b> }</b></p
45、><p><b> else</b></p><p><b> {</b></p><p> printf("按任意鍵繼續(xù)!");</p><p><b> getch();</b></p><p> system("
46、cls");</p><p> printf("\n\n --學(xué)生信息表-- 第%d頁(yè)\n\n", PAGE+1);</p><p> printf("--民族--院系--班級(jí)--家庭住址--\n");</p><p> printf("----------------------
47、------------------------------------------------------");</p><p> printf("%20s %20s %10s %20s",students[i].minzu,students[i].depart,students[i].classes,</p><p> students[i].addr
48、);</p><p> printf("--------------------------------------------------------------------------------");</p><p><b> }</b></p><p><b> }</b></p&g
49、t;<p><b> i++;</b></p><p><b> }</b></p><p> while (students[i].id!=0);</p><p> printf("按任意鍵返回主菜單");</p><p><b> getch
50、();</b></p><p><b> }</b></p><p><b> /*添加模塊*/</b></p><p> int add(STUDENTS students[],int sum )</p><p><b> {</b></p>
51、<p> int i=sum,choice,flag;</p><p> char add_id[9];</p><p> read_file(students); //先從文件中讀取數(shù)據(jù)</p><p><b> do</b></p>
52、<p><b> {</b></p><p> system("cls"); //清屏</p><p> printf("\n 輸入要添加的學(xué)生學(xué)號(hào)");</p><p>
53、 scanf("%s",add_id);</p><p> for(i=0;i<sum;i++)</p><p><b> {</b></p><p> if(strcmp(add_id,students[i].id)==0) //將要添加的學(xué)生學(xué)號(hào)與原來(lái)的進(jìn)行比較<
54、;/p><p> {printf("該學(xué)生信息已存在!");</p><p><b> getch();</b></p><p><b> return;}</b></p><p><b> }</b></p><p> pri
55、ntf("\n輸入要添加的學(xué)生信息\n"); </p><p> printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p> scanf("%s%s%s%d%d%d%d%S%s%s%s",student
56、s[i].id,students[i].name,students[i].sex,&students[i].age,&students[i].birth.year,&students[i].birth .month ,&students[i].birth .day,students[i].minzu ,students[i].depart ,students[i].classes ,students[i]
57、.addr );</p><p> printf(" --學(xué)生信息--\n"); //顯示新添加的學(xué)生信息</p><p> printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p
58、> printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth. month,students[i].birth. day,students[i]
59、.minzu,students[i].depart,students[i].classes,students[i].addr);</p><p><b> sum++;</b></p><p> printf("\n\n 繼續(xù)添加嗎?(Y||N)");</p><p> choice=getch();</p&g
60、t;<p> if(choice=='y'||choice=='Y')</p><p><b> {</b></p><p> flag=1; //如果選擇y則繼續(xù)添加</p><p>
61、printf("\n 繼續(xù)\n");</p><p><b> }</b></p><p> else flag=0;</p><p><b> }</b></p><p> while(flag==1);</p><p> save_fil
62、e(students,sum); //保存添加的學(xué)生信息</p><p> printf("\n 按任意鍵返回主菜單!");</p><p> getchar();</p><p> return sum;
63、 //向住函數(shù)返回值</p><p><b> }</b></p><p><b> /*修改模塊*/</b></p><p> void modify(STUDENTS students[],int sum)</p><p><b> {&l
64、t;/b></p><p> int i=0,choice,flag;</p><p> char modify_id[9];</p><p><b> do</b></p><p> {system("cls");</p><p> printf("
65、\n 輸入要修改的學(xué)生學(xué)號(hào):");</p><p> scanf("%s",&modify_id);</p><p> for(i=0;i<sum;i++)</p><p> if(strcmp(students[i].id ,modify_id)==0) //將要修改的學(xué)
66、生學(xué)號(hào)與原來(lái)存入的進(jìn)行比較</p><p><b> {</b></p><p> printf("\n --學(xué)生信息--\n"); </p><p> printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");&
67、lt;/p><p> printf("-----------------------------------------------------------------------\n");</p><p> printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s",students[i].i
68、d,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth. month, students[i].birth.day,students[i].minzu,students[i].depart,students[i].classes,students[i].addr);</p><p>
69、printf("\n 您要修改哪一項(xiàng)?\n");</p><p> printf("\n 1.姓名\n");</p><p> printf("\n 2.性別\n");
70、</p><p> printf("\n 3.年齡\n");</p><p> printf("\n 4.出生日期\n");</p><p> printf("\n
71、 5.民族\n");</p><p> printf("\n 6.院系\n");</p><p> printf("\n 7.班級(jí)\n");</p><p> printf("\n
72、 8.家庭住址\n");</p><p> printf(" \n 請(qǐng)選擇(1--8)");</p><p> scanf("%d",&choice);</p><p> switch(choice
73、)</p><p><b> {</b></p><p> case 1:printf("\n 輸入修改后的姓名");</p><p> scanf("%s",students[i].name );</p><p><b> break;</b&
74、gt;</p><p> case 2:printf("\n 輸入修改后的性別");</p><p> scanf("%s",students[i].sex);</p><p><b> break;</b></p><p> case 3:printf(&qu
75、ot;\n 輸入修改后的年齡");</p><p> scanf("%d",&students[i].age );</p><p><b> break;</b></p><p> case 4:printf("\n 輸入修改后的出生日期");</p&
76、gt;<p> scanf("%d%d%d",&students[i].birth.year ,&students[i].birth.month ,&students[i].birth.day );</p><p><b> break;</b></p><p> case 5:printf("
77、\n 輸入修改后的民族");</p><p> scanf("%s",students[i].minzu );</p><p><b> break;</b></p><p> case 6:printf("\n 輸入修改后的院系");</p><
78、;p> scanf("%s",students[i].depart);</p><p><b> break;</b></p><p> case 7:printf("\n 輸入修改后的班級(jí)");</p><p> scanf("%s",students[i]
79、.classes);</p><p><b> break;</b></p><p> case 8:printf("\n 輸入修改后的家庭住址");</p><p> scanf("%s",students[i].addr);</p><p><b>
80、 break;</b></p><p><b> }</b></p><p> printf("\n -- 學(xué)生信息--\n"); //顯示修改后的學(xué)生信息</p><p> printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-
81、月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p> printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i
82、].birth.month,students[i].birth.day,students[i].minzu,students[i].depart,students[i].classes,students[i].addr);</p><p><b> break;</b></p><p><b> }</b></p><p&
83、gt; if(i==sum) </p><p> {printf("該學(xué)生信息不存在!");</p><p><b> }</b></p><p> printf("\n\n 繼續(xù)修改嗎?(Y||N)");</p><p> choice=getch();</
84、p><p> if(choice=='Y'||choice=='y')</p><p><b> {</b></p><p> flag=1; //如果選擇y則繼續(xù)進(jìn)行修改</p><p>
85、printf("\n 繼續(xù)!");</p><p><b> }</b></p><p> else flag=0;</p><p><b> }</b></p><p> while(flag==1);</p><p> printf(
86、"\n 按任意鍵返回主菜單!");</p><p><b> }</b></p><p><b> /*刪除模塊*/</b></p><p> del( STUDENTS students[],int sum)</p><p><b>
87、; {</b></p><p> int i=0,j,choice,flag;</p><p> char del_id[9];</p><p><b> do</b></p><p><b> {</b></p><p> system("
88、cls");</p><p> printf("\n 請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):");</p><p> scanf("%s",del_id);</p><p> for(i=0;i<sum;i++)</p><p><b> {</b>&
89、lt;/p><p> if(strcmp(del_id,students[i].id )==0) //將選擇刪除的學(xué)生學(xué)號(hào)與原來(lái)保存的進(jìn)行比較</p><p><b> {</b></p><p> printf(" -- 學(xué)生信息--\n");
90、 //顯示要?jiǎng)h除的學(xué)生信息</p><p> printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p> printf("-----------------------------------------------------------------------\n")
91、;</p><p> printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth.month,students[i].birth
92、.day,students[i].minzu,students[i].depart,students[i].classes,students[i].addr);</p><p><b> }</b></p><p> if(i==sum)</p><p> printf("該學(xué)生信息不存在!");</p>
93、<p><b> }</b></p><p> printf("\n確認(rèn)刪除嗎(y||n)");</p><p> choice=getch(); //確認(rèn)是否刪除</p><p> if(choice=='y'
94、||choice=='Y')</p><p> { for(i=0;i<sum;i++) </p><p> {if(strcmp(del_id,students[i].id)==0) //將下一個(gè)學(xué)生的信息覆蓋前一個(gè)學(xué)生的信息完成刪除</p><p> for(j=i;j<sum-1;j++)</p>
95、;<p> {students[j]=students[j+1];</p><p><b> }</b></p><p> printf("\n該學(xué)生信息已刪除!\n"); </p><p><b> }</b></p><p><
96、b> }</b></p><p> printf("繼續(xù)刪除嗎?");</p><p> choice=getch();</p><p> if(choice=='y'||choice=='Y')</p><p><b> {</b><
97、/p><p> flag=1; //如果選擇y則繼續(xù)刪除</p><p> printf(" 繼續(xù)!\n");</p><p><b> }</b></p><p> else flag=0;</p&g
98、t;<p> }while(flag==1);</p><p> save_file(students,sum); //保存刪除后的結(jié)果</p><p> printf("\n 按任意鍵返回主菜單!");</p><p> return sum-1;
99、 //因刪除后所以向主函數(shù)返回原總數(shù)減1的個(gè)數(shù)</p><p><b> }</b></p><p><b> /*查尋模塊*/</b></p><p> void inquire(STUDENTS students[],int sum)</p>
100、<p><b> {</b></p><p> int i=0,flag;</p><p> char inquire_id[9];</p><p><b> do</b></p><p> { </p><p> p
101、rintf("\n 輸入要查詢的學(xué)生學(xué)號(hào):");</p><p> scanf("%s",inquire_id);</p><p> for(i=0;i<sum;i++) //將要查詢的學(xué)生學(xué)號(hào)與</p><p> if(strcmp(
102、students[i].id ,inquire_id)==0)</p><p><b> {</b></p><p> printf("\n -- 學(xué)生信息-- "); //顯示要查詢的學(xué)生信息</p><p> printf("學(xué)號(hào)--姓名
103、--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p> printf("-----------------------------------------------------------------------\n");</p><p> printf("%8s %8s %4s %4d %1
104、0d-%2d-%2d %20s %20s %10s %20s",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth.month,students[i].birth.day,students[i].minzu,students[i].depart,students[i].c
105、lasses,students[i].addr);</p><p><b> }</b></p><p> else flag=0;</p><p><b> }</b></p><p> while(flag==1);</p><p> getch();
106、 </p><p> printf("\n 按任意鍵返回主菜單!");</p><p><b> }</b></p><p><b> /*統(tǒng)計(jì)模塊*/</b>&l
107、t;/p><p> void count (STUDENTS students[],int sum)</p><p> { int i,j=0;</p><p> char s[5]; //定義要查詢的班級(jí)名</p><p> printf("請(qǐng)輸入要統(tǒng)計(jì)的班級(jí)的學(xué)生的
108、班級(jí)號(hào):");</p><p> scanf("%s",s);</p><p> for(i=0;i<sum;i++) //對(duì)所有學(xué)生信息進(jìn)行遍歷 </p><p><b> {</b></p><p> if(strcmp(
109、s,students[i].classes)==0)</p><p> j++; //如果是該班級(jí)學(xué)生則數(shù)據(jù)加1</p><p><b> }</b></p><p> printf("%s班的總?cè)藬?shù)為%d人.",s,j);</p><p&
110、gt;<b> getch();</b></p><p><b> }</b></p><p> /*按學(xué)號(hào)排序輸出*/</p><p> void sort(STUDENTS students[],int sum)</p><p><b> {int i,j;</b>
111、;</p><p> char t[9];</p><p> for(i=0;i<sum-1;i++) //遍歷所有學(xué)生信息</p><p> for(j=i+1;j<sum;j++)</p><p> { if(strcmp(students[i].id,students[j].id)&
112、gt;0)//將學(xué)號(hào)進(jìn)行比較</p><p> { strcpy(t,students[i].id);</p><p> strcpy(students[i].id,students[j].id);</p><p> strcpy(students[j].id,t);</p><p><b> }</b><
113、;/p><p><b> }</b></p><p> printf("按學(xué)號(hào)排序輸出:\n");</p><p> for(i=0;i<sum;i++)</p><p> {printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址
114、\n");</p><p> printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s\n",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth.month,studen
115、ts[i].birth.day,students[i].minzu,students[i].depart,students[i].classes,students[i].addr);</p><p> printf("\n");</p><p><b> }</b></p><p><b> getch();
116、</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> STUDENTS students [N];</p><p> int choice ,sum,mima;
117、</p><p> printf("請(qǐng)輸入密碼:");</p><p> scanf("%d",&mima);</p><p> if(mima==123) //如果輸入密碼正確則進(jìn)入該系統(tǒng)否則跳出</p><p><b> {<
118、;/b></p><p> sum=read_file (students);</p><p> if(sum==0)</p><p><b> {</b></p><p> printf("錄入基本學(xué)生信息!******\n");</p><p><b&g
119、t; getch();</b></p><p> sum=input(students);</p><p><b> }</b></p><p><b> do</b></p><p><b> {</b></p><p> sy
120、stem("cls");</p><p> printf("\n\n\n **********學(xué)生管理系統(tǒng)**********\n\n");</p><p> printf(" 1.添加學(xué)生信息\n\n");</p><p>
121、; printf(" 2.修改學(xué)生信息\n\n");</p><p> printf(" 3.刪除學(xué)生信息\n\n");</p><p> printf(" 4.查詢學(xué)生信息\n\
122、n");</p><p> printf(" 5.統(tǒng)計(jì)學(xué)生信息\n\n");</p><p> printf(" 6.按學(xué)號(hào)打印學(xué)生信息\n\n");</p><p> printf("
123、 0.退出系統(tǒng)\n\n");</p><p> printf(" 請(qǐng)選擇(0-6): ");</p><p> scanf("%d",&choice );</p><p> switch(choice )&l
124、t;/p><p><b> {</b></p><p> case 1: sum=add(students,sum); break;</p><p> case 2: modify(students,sum); break;</p><p> case 3: sum=del(stude
125、nts,sum); break;</p><p> case 4: inquire(students,sum); break;</p><p> case 5: count(students,sum); break; </p><p> case 6: sort(students,sum); br
126、eak;</p><p> case 0: </p><p> printf("謝謝使用!"); break;</p><p><b> }</b></p><p><b> }</b></p
127、><p> while(choice!=0);</p><p> save_file(students,sum); //保存各項(xiàng)操作結(jié)果</p><p><b> }</b></p><p><b> else </b></p><p> p
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生學(xué)籍管理系統(tǒng) 課程設(shè)計(jì)10
- java課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)論文
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)8
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)1
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)4
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理系統(tǒng)c課程設(shè)計(jì)報(bào)告
- 學(xué)籍管理系統(tǒng) 課程設(shè)計(jì)
- 課程設(shè)計(jì)---學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--- 學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理信息系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)學(xué)生學(xué)籍成績(jī)管理系統(tǒng)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)9
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍信息管理系統(tǒng)oracle課程設(shè)計(jì)
- 學(xué)生學(xué)籍管理系統(tǒng)-軟件工程課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論