




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)生成績(jī)管理系統(tǒng)1、 課題設(shè)計(jì)的目的與要求通過軟件開發(fā)的實(shí)際操作,進(jìn)一步掌握數(shù)據(jù)庫的開發(fā)和應(yīng)用,提高數(shù)據(jù)庫的實(shí)用性,培養(yǎng)的工程的設(shè)計(jì)分析能力具體如下:1. 學(xué)習(xí)和實(shí)踐在分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng)所需要的知識(shí),包括面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì),編碼和測(cè)試方面的知識(shí);2. 進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫能力;2、 設(shè)計(jì)正文1、 系統(tǒng)需求分析學(xué)生成績(jī)管理系統(tǒng)主要滿足來自三方面的需求,這三個(gè)方面分別是學(xué)生用戶、教師用戶和管理員用戶。 (1)學(xué)生用戶是主要的需求者。主要的需求功能是查詢成績(jī),查看是否補(bǔ)考, 重修,學(xué)分等。 (2)教師用戶的主要需求功能是登記、查詢和修改學(xué)生成績(jī)。 (3)管理員用戶的功能需求
2、比較復(fù)雜,包括對(duì)學(xué)生信息、教師信息、成績(jī)信息進(jìn)行管理。在學(xué)生信息管理子模塊中,實(shí)現(xiàn)對(duì)學(xué)生信息的添加、修改、刪除操作,還可以輸入查詢條件進(jìn)行查詢操作。在教師管理子模塊中,實(shí)現(xiàn)對(duì)教師信息的添加、修改、刪除等操作。對(duì)其他信息子模塊中,要實(shí)現(xiàn)編輯院系信息,編輯班級(jí)信息,編輯課程信息。 在這個(gè)系統(tǒng)中將管理員用戶,教師用戶,學(xué)生用戶的權(quán)限進(jìn)行嚴(yán)格的劃分,管 理員擁有最高的權(quán)限,可以查看、維護(hù)系統(tǒng)中的所有信息,比如,添加,修改學(xué)生信息。而修改密碼的權(quán)限是每個(gè)用戶都有的,用以修改自己的密碼信息。通過進(jìn)行嚴(yán)格的權(quán)限劃分,可以更好地進(jìn)行管理,也可更好地保護(hù)用戶信息安全。(4) 數(shù)據(jù)詞典 數(shù)據(jù)流編號(hào):S001 數(shù)據(jù)
3、流名稱:管理員登陸信息 簡(jiǎn)稱:管理員信息 數(shù)據(jù)流來源:管理員 數(shù)據(jù)流去向:學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)流組成:管理員賬號(hào)和密碼數(shù)據(jù)流量;100/天高峰流量:500/天數(shù)據(jù)流編號(hào):S002數(shù)據(jù)流名稱: 教師登陸信息簡(jiǎn)稱: 教師信息數(shù)據(jù)流來源: 教師數(shù)據(jù)流去向:學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)流組成: 教師姓名,編號(hào)、院系數(shù)據(jù)流量;1000/天高峰流量:10000/天數(shù)據(jù)流編號(hào):S003數(shù)據(jù)流名稱:學(xué)生成績(jī)查詢信息簡(jiǎn)稱: 學(xué)生成績(jī)數(shù)據(jù)流來源: 學(xué)生數(shù)據(jù)流去向: 學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)流組成: 學(xué)生姓名、學(xué)號(hào)、成績(jī)、課程數(shù)據(jù)流量;1000/天高峰流量:10000/天 2. 系統(tǒng)總體設(shè)計(jì)2.1 設(shè)計(jì)問題域子系統(tǒng) 學(xué)生成績(jī)管
4、理系統(tǒng)時(shí)用于學(xué)生查詢成績(jī),老師登記成績(jī)和管理員維護(hù)信息的一個(gè)平 臺(tái)。整個(gè)學(xué)生成績(jī)管理系統(tǒng)分為學(xué)生模塊,教師模塊,管理員模塊和公共模塊四個(gè)模塊。 以下是學(xué)生成績(jī)管理系統(tǒng)的總設(shè)計(jì)圖和各模塊的說明2、 總體設(shè)計(jì)圖(2)各模塊功能 功能模塊 子功能模塊功能 管理員模塊 學(xué)生信息管理對(duì)學(xué)生信息進(jìn)行添加,刪除,修改 教師信息管理對(duì)教師信息進(jìn)行添加,刪除,修改 其他信息管理編輯院系,班級(jí),課程信息 學(xué)生模塊通過這個(gè)系統(tǒng)查詢自己各科成績(jī) 教師模塊通過這個(gè)系統(tǒng)登記,修改,查詢學(xué)生成績(jī) 公共模塊實(shí)現(xiàn)用戶的身份驗(yàn)證和修改密碼,退出系統(tǒng)等功能3、 系統(tǒng)詳細(xì)設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)是實(shí)現(xiàn)學(xué)生查詢成績(jī),教師登記成績(jī),管理員維
5、護(hù)信息的平臺(tái)。 整個(gè)學(xué)生成績(jī)管理系統(tǒng)分為學(xué)生模塊,教師模塊,管理員模塊和公共模塊四個(gè)模塊。4、 數(shù)據(jù)庫設(shè)計(jì) 4.1 概念模型設(shè)計(jì) 由前面的需求分析得到實(shí)體主要有3個(gè):教師、學(xué)生、管理員、課程、成績(jī) 教師屬性:姓名、編號(hào)、院系、 學(xué)生屬性:姓名、學(xué)號(hào)、院系、班級(jí) 管理員屬性:姓名、編號(hào) 課程屬性:課程名稱、課程編號(hào)、授課教師 成績(jī)屬性:課程名稱、學(xué)生姓名、教師姓名、成績(jī) (1)教師與課程的關(guān)系 教師與課程的關(guān)系是nm,一個(gè)教師可以教多個(gè)課程,一個(gè)課程可以由多個(gè)教師教(2)教師與學(xué)生的關(guān)系 教師與學(xué)生的關(guān)系是nm,一個(gè)教師可以教多個(gè)學(xué)生,一個(gè)學(xué)生由多個(gè)老師教 (3)學(xué)生與課程的關(guān)系 學(xué)生與課程的關(guān)
6、系是nm,一個(gè)學(xué)生可以有多個(gè)課程,一個(gè)課可以有多個(gè)學(xué)生上(4)學(xué)生與成績(jī)的關(guān)系nm4.2邏輯結(jié)構(gòu)設(shè)計(jì)將E-R圖轉(zhuǎn)化為關(guān)系模型: 管理員(姓名、編號(hào)) 學(xué)生(姓名、學(xué)號(hào)、院系、班級(jí) ) 教師(姓名、編號(hào)、院系) 課程(課程名稱、課程編號(hào)、授課老師) 成績(jī)(課程名稱、學(xué)生姓名、老師姓名、成績(jī))數(shù)據(jù)表設(shè)計(jì) 學(xué)生表Student的詳細(xì)數(shù)據(jù)字段 序號(hào) 字段名 字段類型說明備注索引 1 stuNamenvarchar(20)not null學(xué)生姓名 2 stuIDnvarchar(20)not null學(xué)生學(xué)號(hào)關(guān)鍵字有 3stuDepartInt學(xué)生院系號(hào) 4 stuClassInt 學(xué)生班級(jí) 5 stu
7、Pwdnvarchar(20)not null 學(xué)生密碼 教師表Teacher的詳細(xì)數(shù)據(jù)字段序號(hào)字段名字段類型說明備注索引 1 teaNamenvarchar(20)not null教師姓名 2 teaIDnvarchar(20)not null教師編號(hào)關(guān)鍵字有 3teaDepartInt教師院系號(hào) 4 teaPwdnvarchar(20)not null 教師密碼 課程表Course的詳細(xì)數(shù)據(jù)字段序號(hào) 字段名字段類型說明備注索引 1courseNamenvarchar(20)not null課程名稱 2 courseIDnvarchar(20)not null課程編號(hào)關(guān)鍵字有 3 teaNa
8、menvarchar(20)not null授課老師 成績(jī)表Score的詳細(xì)數(shù)據(jù)字段序號(hào) 字段名字段類型說明備注索引 1courseNamenvarchar(20)not null 課程名稱關(guān)鍵字有 2 stuNamenvarchar(20)not null 學(xué)生姓名關(guān)鍵字有 3 teaNamenvarchar(20)not null 教師姓名 4 score Int 成績(jī) 管理員表User的詳細(xì)數(shù)據(jù)字段 序號(hào) 字段名字段類型說明備注 1adminNamenvarchar(20)not null 管理員姓名 2 adminIDnvarchar(20)not null 管理員編號(hào)關(guān)鍵字 3 ad
9、minPwdnvarchar(20) 管理員密碼 4.3 物理結(jié)構(gòu)設(shè)計(jì)5系統(tǒng)編碼#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define LEN sizeof(Student)#define NULL 0typedef struct studentint num; /*學(xué)號(hào)*/char name20; /*姓名*/int score3; /*成績(jī)*/struct student *next;Student;int n; /*聲明一個(gè)全局變量*/Student *cin(void); Stu
10、dent *sort_1(Student *head,int); /*聲明按學(xué)號(hào)排序函數(shù)*/void print(Student *head); /*聲明顯示函數(shù)*/Student *sort_all(Student *head); /*聲明排序函數(shù)*/void find(Student *head); /*聲明查詢函數(shù)*/Student *add_new(Student *head);Student *cin()int flag; Student *head,*p1,*p2;n=0;head=(Student *)malloc(LEN);p2=head;printf("n請(qǐng)輸入第%
11、d名學(xué)生的學(xué)號(hào),學(xué)號(hào)為0表示結(jié)束輸入:",n+1); scanf("%d",&flag);while(getchar()!='n');for(;flag;) /*輸入每個(gè)學(xué)生的信息*/n+;p1=(Student *)malloc(LEN);p1->num=flag;printf("請(qǐng)輸入第%d名學(xué)生的姓名:",n); /*輸入姓名*/scanf("%s",p1->name); printf("請(qǐng)輸入第%d名學(xué)生的成績(jī):",n); /*輸入成績(jī)*/scanf("
12、;%d",&p1->score0);p1->sum=p1->score0+p1->score1+p1->score2;p2->next=p1;p2=p1;printf("n請(qǐng)輸入第%d名學(xué)生的學(xué)號(hào),沒有此學(xué)生則輸入0表示結(jié)束:",n+1); scanf("%d",&flag);p2->next=NULL;printf("nn");return head;Student *sort_all(Student *head) /*定義排序函數(shù)*/int choose;for(
13、;) printf("ntt# # # # # 學(xué)生成績(jī)統(tǒng)計(jì)排序 # # # #n");printf("tt#t1.按學(xué)生學(xué)號(hào)排序t #n");printf("tt#t8.顯示當(dāng)前學(xué)生成績(jī)t #n");printf("tt#t0.返回上一級(jí)菜單t #n");printf("請(qǐng)輸入你要執(zhí)行的操作:");scanf("%d",&choose);while(getchar()!='n');switch(choose)case 1:case 2:case 3:
14、case 4:head=sort_1(head,choose);break;case 5:print(head);sort_2(head);break;case 6:print(head);break;case 0:return head;Student *sort_1(Student *head,int choose) /*定義按學(xué)號(hào)排序函數(shù)*/Student *p1,*p2=head->next,*pm,*px;Student mid;if (!p2) return head;for(p1=p2;p1->next!=NULL;p1=p1->next)pm=p1;for(p
15、2=p1->next;p2!=NULL;p2=p2->next)switch(choose)case 1:if (pm->num>p2->num) pm=p2;break;case 2:if (pm->sum<p2->sum) pm=p2;break;case 3:if (pm->score0<p2->score0) pm=p2;break;case 4:if (pm->score1<p2->score1) pm=p2;break;case 5:if (pm->score2<p2->score
16、2) pm=p2;break;if (pm!=p1)mid=*pm;*pm=*p1;*p1=mid;px=pm->next;pm->next=p1->next;p1->next=px;printf("n排序后的成績(jī)表為:n");print(head); return head;void find(Student *head) /*定義查詢函數(shù)*/Student *p;int choose,fnum;char tem20;if (n=0) printf("n當(dāng)前系統(tǒng)沒有任何學(xué)生數(shù)據(jù)!n ");return;for(;)printf(
17、"n請(qǐng)輸入您要查詢學(xué)生的方式:nn");printf("1、按學(xué)號(hào)查詢;2、按姓名查詢;0、我不查詢了。nn");printf("請(qǐng)選擇:");scanf("%d",&choose);while(getchar()!='n');if (choose=1) printf("n請(qǐng)輸入你要查詢的學(xué)生的學(xué)號(hào),輸入0退出學(xué)號(hào)查詢:");scanf("%d",&fnum);for(;fnum;)for(p=head->next;p!=NULL&
18、;&p->num!=fnum;p=p->next);if (!p) printf("n學(xué)號(hào)為%d學(xué)生的數(shù)據(jù)為:n",p->num);printf("學(xué)號(hào)t姓名t成績(jī) 總分n");/*輸出所有的學(xué)生信息*/printf("%dt%st%st %d %d %d %dn",p->num,p->name,p->sex ,p->score0,p->score1,p->score2,p->sum);printf("nn請(qǐng)輸入你還要查詢的學(xué)生的學(xué)號(hào),輸入0表示不按學(xué)號(hào)查詢
19、了:");scanf("%d",&fnum); else if (choose=2)printf("n請(qǐng)輸入你要查詢的學(xué)生的姓名,輸入0退出姓名查詢:");scanf("%s",tem); for(;strcmp(tem,"0");)for(p=head->next;p!=NULL&&strcmp(p->name,tem);p=p->next);if (!p) else if (choose=0) printf("n你選擇了不查詢!n");br
20、eak;else printf("n你以其他方式選擇了不查詢!n");break;printf("*學(xué)生成績(jī)統(tǒng)計(jì)一覽*n");printf("學(xué)號(hào)t姓名成績(jī) 總分n");for(;p;p=p->next)printf("%dt%st%st %d %d %d %dn",p->num,p->name,p->sex ,p->score0,p->score1,p->score2,p->sum=p->score0+p->score1+p->score2); s
21、truct student *del(struct student *head,long num) /*定義刪除學(xué)生信息函數(shù)*/struct student *p1,*p2;if(head=NULL) printf("nlist null! n");return head;p1=head;while(num!=p1->num && p1->next!=NULL)p2=p1;p1=p1->next;if(num=p1->num)if(p1=head)head=p1->next;else p2->next=p1->nex
22、t;printf("delete:%ldn",num);n=n-1;else printf("%ld not deen found! n",num);return(head);int main()/*主函數(shù)即用戶的操作界面*/Student *head;int choose,i,num; /*聲明局部變量*/head=(Student *)malloc(LEN);head->next=NULL; for(;)printf("ntt* * * * * 學(xué)生成績(jī)管理系統(tǒng) * * * *n"); /*學(xué)生成績(jī)管理系統(tǒng)*/printf("tt*t3.查詢學(xué)生數(shù)據(jù)tt *n");
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全試題及答案6
- 安全活動(dòng)試題及答案
- 安全工程師考試題庫及答案
- 2025年商業(yè)銀行金融科技人才領(lǐng)導(dǎo)力與團(tuán)隊(duì)建設(shè)能力培養(yǎng)報(bào)告
- 拔火罐培訓(xùn)課件圖片
- 報(bào)社新聞培訓(xùn)課件下載
- 中國(guó)卒中中心發(fā)展課件
- 原料采購管理課件
- 心電監(jiān)護(hù)操作流程規(guī)范
- 公民科學(xué)素質(zhì)課件
- 提高分級(jí)護(hù)理的巡視率
- 醫(yī)美行業(yè)營(yíng)銷策劃方案模板
- 2025年遼寧省沈陽市中考一模道德與法治試題(原卷版+解析版)
- 2025年人教版一年級(jí)下冊(cè)數(shù)學(xué)期末模擬試卷(含答案)
- 《語文綜合實(shí)踐:走進(jìn)傳統(tǒng)節(jié)日 探尋文化根脈》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年中職語文高教版(2023)基礎(chǔ)模塊下冊(cè)
- 男性生殖系統(tǒng)超聲
- 黑龍江省2024年普通高校招生體育類本科批院校專業(yè)組投檔分?jǐn)?shù)線(歷史類)
- 兒童學(xué)習(xí)習(xí)慣養(yǎng)成與學(xué)習(xí)能力提升
- 水閘地基施工方案
- 《建立合適邊界:親子教育課件》
評(píng)論
0/150
提交評(píng)論