學(xué)生成績(jī)管理系統(tǒng)[共28頁(yè)]
《學(xué)生成績(jī)管理系統(tǒng)[共28頁(yè)]》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)生成績(jī)管理系統(tǒng)[共28頁(yè)](28頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、成績(jī)?cè)u(píng)定 教師簽名 嘉應(yīng)學(xué)院 計(jì)算機(jī)學(xué)院 《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告 課程名稱: 數(shù)據(jù)結(jié)構(gòu) 開(kāi)課學(xué)期: 2016-2017學(xué)年第1學(xué)期 班 級(jí): 1401 指導(dǎo)老師: 鐘治初 實(shí)驗(yàn)題目: 學(xué)生成績(jī)管理系統(tǒng) 學(xué) 號(hào): 141110043 姓 名: 蘇永達(dá) 提交時(shí)間: 2016年10月27日 一、 實(shí)驗(yàn)要求: (1) 設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng),模擬高考成績(jī)的管理。功能至少包括數(shù)據(jù)輸入,輸出,查找,插入,刪除,修改,排序,統(tǒng)計(jì)各成績(jī)段的人數(shù),考生成績(jī)的排位,報(bào)考志愿的檢索等。
2、(2) 所有輸入輸出數(shù)據(jù)均使用文本文件進(jìn)行讀寫。 (3) 所有過(guò)渡性數(shù)據(jù)使用二進(jìn)制文件進(jìn)行讀寫和保存。 (4) 設(shè)計(jì)使用平行志愿進(jìn)行出檔。 (5) 設(shè)計(jì)使用非平行志愿行進(jìn)出檔。 (6) 設(shè)計(jì)志愿時(shí),可以設(shè)計(jì)12個(gè)志愿,如果平行志愿,則前后各6個(gè)分別為第一組和第二組平行志愿處理。 (7) 設(shè)計(jì)考生記錄的字段時(shí),可以預(yù)留補(bǔ)錄志愿的字段?;蛘邔⑽翠浫】忌臄?shù)據(jù)進(jìn)行備份,然后將志愿清空后再增加補(bǔ)錄志愿。 28 二、功能: (1) 按學(xué)號(hào)順序輸入學(xué)生信息,包括學(xué)號(hào)、姓名、性別、課程單科成績(jī)(單科成績(jī)包括C語(yǔ)言、高數(shù)、大學(xué)語(yǔ)文、匯編、中近史),并存入文件中。 (2) 從文件讀取數(shù)據(jù)
3、 (3) 刪除學(xué)生信息 (4) 查詢學(xué)生信息(查詢可分為精確查詢和模糊查詢) (5) 修改學(xué)生信息(要求修改后,數(shù)據(jù)依然是按學(xué)號(hào)順序排列) (6) 插入學(xué)生信息(要求插入后,數(shù)據(jù)依然是按學(xué)號(hào)順序排列) (7) 附加功能,學(xué)生可自由發(fā)揮,如:排名、求各門課程平均分等。 三、實(shí)驗(yàn)?zāi)康? 1、掌握和鞏固C語(yǔ)言編寫的相關(guān)知識(shí)和技巧,特別是函數(shù)、指針、結(jié)構(gòu)體。 2、能夠采用模塊化思想調(diào)試程序。 3、通過(guò)該課程設(shè)計(jì)的操作與實(shí)踐,能夠根據(jù)數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)組織的方法,把現(xiàn)實(shí)世界中的實(shí)際問(wèn)題在計(jì)算機(jī)內(nèi)部表示出來(lái),并培養(yǎng)基本的、良好的程序設(shè)計(jì)技能,全面提高學(xué)生的程序設(shè)計(jì)、開(kāi)發(fā)能力。 四、
4、系統(tǒng)分析 4.1 相關(guān)基礎(chǔ)知識(shí) 選擇、循環(huán)、函數(shù)、指針、結(jié)構(gòu)體、鏈表 4.2 總體方案 架構(gòu)圖: 方案描述: 菜單:運(yùn)用switch case選擇功能,在每個(gè)case中有相對(duì)應(yīng)的調(diào)用語(yǔ)句,調(diào)用相對(duì)應(yīng)的函數(shù)。 刪除功能:調(diào)用刪除函數(shù),判斷是否保存,如果保存寫入文件。 插入功能:運(yùn)用鏈表插入。 修改功能:調(diào)用刪除函數(shù)跟插入函數(shù),先刪除再插入,從而實(shí)現(xiàn)修改功能。 查詢功能:調(diào)用菜單中的查詢函數(shù),用循環(huán)實(shí)現(xiàn)查詢功能。 排名功能:調(diào)用菜單中的排名函數(shù),通過(guò)冒泡排序法實(shí)現(xiàn)功能。 保存功能:運(yùn)用寫入文件。 五、系統(tǒng)設(shè)計(jì) 定義
5、一個(gè)student類型的結(jié)構(gòu)體,里面包含學(xué)生信息,包括學(xué)號(hào)、姓名、性別、課程單科成績(jī)(單科成績(jī)包括C語(yǔ)言、高數(shù)、大學(xué)語(yǔ)文、匯編、中近史)、總分、平均成績(jī)。 5.1 新建功能 從鍵盤輸入N個(gè)學(xué)生基本信息,包括學(xué)號(hào)、姓名、性別、課程單科成績(jī)(單科成績(jī)包括C語(yǔ)言、高數(shù)、大學(xué)語(yǔ)文、匯編、中近史),編程根據(jù)輸入信息計(jì)算各學(xué)生總分和平均分。 創(chuàng)建動(dòng)態(tài)鏈表,將學(xué)生信息存入鏈表中。在DOS屏幕上打印鏈表內(nèi)所有學(xué)生信息。 新建一個(gè)文件,將動(dòng)態(tài)鏈表中的數(shù)據(jù)(即輸入的學(xué)生信息)存入文件中。 5.2 打開(kāi)功能 打開(kāi)一個(gè)文件,從文件中讀取學(xué)生信息,并新建鏈表,將數(shù)據(jù)存入動(dòng)態(tài)鏈表。 在DOS屏幕上打印鏈表
6、內(nèi)所有學(xué)生信息。 5.3 修改功能 在DOS屏幕上打印出當(dāng)前的所有學(xué)生信息。 輸入待修改的學(xué)生學(xué)號(hào),若不存在,輸出“查無(wú)此人”;若存在,則輸入修改的信息,并存回學(xué)生信息鏈表中,存回后學(xué)生信息鏈表依然是按學(xué)號(hào)順序排列。 最后在DOS屏幕上打印出新的所有學(xué)生信息。 5.4 插入功能 在DOS屏幕上打印出當(dāng)前的所有學(xué)生信息。 輸入插入信息的條數(shù),從第一條開(kāi)始到最后一條,依次輸入每條學(xué)生信息,包括學(xué)號(hào)、姓名、性別、課程單科成績(jī)(單科成績(jī)包括C語(yǔ)言、高數(shù)、大學(xué)語(yǔ)文、匯編、中近史),根據(jù)輸入信息計(jì)算各學(xué)生總分和平均分。 若輸入的學(xué)生學(xué)號(hào)已經(jīng)存在,則輸出“該學(xué)號(hào)已存在,無(wú)法操作!”,
7、否則將學(xué)生信息插入到鏈表中,插入后鏈表中的數(shù)據(jù)依然按照學(xué)號(hào)排列。 最后在DOS屏幕上打印出新的所有學(xué)生信息。 5.5 查詢功能 查詢分為:精確查詢、模糊查詢 精確查詢: (1) 按姓名查詢 輸入待查詢的姓名; 根據(jù)順序查詢的方法,對(duì)學(xué)生的姓名依次查詢,直到查詢到與輸入的信息相匹配的信息,并在DOS屏幕上顯示出來(lái)。若需要查詢的信息不存在,系統(tǒng)則會(huì)提示找不到此人??芍貜?fù)查詢。 (2) 按學(xué)號(hào)查詢 輸入待查詢的學(xué)號(hào); 根據(jù)順序查詢的方法,對(duì)學(xué)生的學(xué)號(hào)依次查詢,直到查詢到與輸入的信息相匹配的信息,并在DOS屏幕顯示出來(lái)。若需要查詢的信息不存在,系統(tǒng)則會(huì)提示找不
8、到此人??芍貜?fù)查詢。 模糊查詢: (1) 按姓氏查詢 輸入待查詢的姓氏; 根據(jù)順序查詢的方法,對(duì)學(xué)生的姓依次查詢,當(dāng)查詢到與輸入的信息相匹配的信息,則在DOS屏幕顯示出來(lái),直到鏈表結(jié)束。若需要查詢的信息不存在,系統(tǒng)則會(huì)提示找不到相關(guān)信息??芍貜?fù)查詢。 (2) 按性別查詢 輸入待查詢的性別; 根據(jù)順序查詢的方法,對(duì)學(xué)生的性別依次查詢,當(dāng)查詢到與輸入的信息相匹配的信息,則在DOS屏幕顯示出來(lái),直到鏈表結(jié)束??芍貜?fù)查詢。 5.6 刪除功能 在DOS屏幕上打印出當(dāng)前的所有學(xué)生信息。 (1)按姓名刪除 輸入需要?jiǎng)h除的學(xué)生姓名; 根據(jù)順序查詢
9、的方法,對(duì)學(xué)生的姓名依次查詢,當(dāng)查詢到與輸入的信息相匹配的信息,則刪除該生信息,并在DOS屏幕顯示出新的所有學(xué)生信息。若需要?jiǎng)h除的信息不存在,系統(tǒng)則會(huì)提示刪除失敗。 (2)按學(xué)號(hào)刪除 輸入需要?jiǎng)h除的學(xué)生學(xué)號(hào); 根據(jù)順序查詢的方法,對(duì)學(xué)生的學(xué)號(hào)依次查詢,當(dāng)查詢到與輸入的信息相匹配的信息,則刪除該生信息,并在DOS屏幕顯示出新的所有學(xué)生信息。若需要?jiǎng)h除的信息不存在,系統(tǒng)則會(huì)提示刪除失敗。 5.7排名功能 可根據(jù)學(xué)生的總分進(jìn)行排名,并在DOS屏幕上輸出排名結(jié)果。 5.8 關(guān)于我們 在DOS屏幕上輸出系統(tǒng)相關(guān)信息。 5.9 軟件說(shuō)明 5.10 退出保存 選擇
10、‘0’退出系統(tǒng),保存功能在每段函數(shù)結(jié)束后實(shí)現(xiàn)。 5.10運(yùn)行結(jié)果 5.10.0 主界面 5.10.1 新建文件(輸入一組數(shù)據(jù),存入文件中) 5.10.2 打開(kāi)文件(打開(kāi)文件,讀取文件數(shù)據(jù)存入鏈表) 5.10.3 修改功能 5.10.4 插入功能 5.10.5 查詢功能 精確查詢-按姓名查詢 精確查詢-按學(xué)號(hào)查詢 模糊查詢-按姓氏查詢 模糊查詢-按性別查詢 5.10.6 刪除功能 按姓名刪除 按學(xué)號(hào)刪除 5.10.7 總分排名功能 5.10.9 軟件說(shuō)明
11、5.10.10 退出保存
保存功能在每段函數(shù)結(jié)束后實(shí)現(xiàn)。
六、心得體會(huì)
通過(guò)這次實(shí)驗(yàn)我們更好的掌握和鞏固C語(yǔ)言編寫的相關(guān)知識(shí)和技巧,特別是函數(shù)、指針、結(jié)構(gòu)體、鏈表等功能。通過(guò)該課程設(shè)計(jì)的操作與實(shí)踐,能夠根據(jù)數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)組織的方法,把現(xiàn)實(shí)世界中的實(shí)際問(wèn)題在計(jì)算機(jī)內(nèi)部表示出來(lái),并培養(yǎng)基本的、良好的程序設(shè)計(jì)技能,雖然在設(shè)計(jì)過(guò)程中遇到了不少問(wèn)題麻煩,在教材數(shù)據(jù)的幫助下,完成了這次程序設(shè)計(jì)。
七、源代碼
#include
12、----------------------------------------*/ #define LEN sizeof(struct student)//結(jié)構(gòu)體長(zhǎng)度 /*---------------------------------------------------------*/ #define NEW (struct student *)malloc(LEN) /*---------------------------------------------------------*/ FILE *fp;/*文件指針*/ /*---------------------
13、------------------------------------*/ struct student { int num; char name[20]; int score1,score2,score3,score4,score5; char sex; double aver; float sum; struct student *next; }; char filename[100]; struct student *creat( ) { struct student *h; struct student *p,*q;
14、 printf("需要輸入幾條信息:"); int i,n; scanf("%d",&n); printf("\n----------請(qǐng)按學(xué)號(hào)順序依次輸入學(xué)生信息----------\n"); char c=getchar(); h=NULL; for(i=1;i<=n;i++) { p=NEW; if (p==NULL) { printf("Allocation failure\n"); exi
15、t(0);
}
printf("\n");
printf("輸入姓名<如:zhangsan>: ");
gets(p->name);
printf("輸入學(xué)號(hào)<如:1>: ");
scanf("%d",&p->num);
c=getchar();
printf("輸入性別
16、ntf("輸入高數(shù)成績(jī): "); scanf("%d",&p->score2); printf("輸入大學(xué)語(yǔ)文成績(jī): "); scanf("%d",&p->score3); printf("輸入?yún)R編語(yǔ)言成績(jī): "); scanf("%d",&p->score4); printf("輸入中近史成績(jī): "); scanf("%d",&p->score5); c=getchar(); p->sum=p->score1+p->score2+p->score3+p->score4+p->score5; p->aver=(p->score1+p-
17、>score2+p->score3+p->score4+p->score5)/5.0; p->next=NULL; if (h==NULL) /* h為空,表示新結(jié)點(diǎn)為第一個(gè)結(jié)點(diǎn) */ h=p; /* 頭指針指向第一個(gè)結(jié)點(diǎn) */ else /* h不為空 */ q->next=p; /* 新結(jié)點(diǎn)與尾結(jié)點(diǎn)相連接 */ q=p;/* 使q指向新的尾結(jié)點(diǎn) */ } return
18、 h; } struct student *paixu (struct student *head) /* 總分排名 */ { system("cls"); printf("總分排名如下:\n"); struct student *op; struct student *p; struct student *p1,*p2; p1 = (struct student *) malloc (LEN); p1->next = head; head = p1;
19、 for (op = NULL; op != head; op = p) { for (p = p1 = head; p1->next->next!=op; p1 = p1->next) { if (p1->next->sum < p1->next->next->sum) { p2 = p1->next->next; p1->next->next
20、= p2->next; p2->next = p1->next; p1->next = p2; p = p1->next->next; } } } p1 = head; head = head->next; free (p1); p1 = NULL; return
21、head; } void prlist(struct student *head)/*輸出函數(shù)*/ { struct student *p; p=head; printf("\n學(xué)號(hào) 姓名 性別 c語(yǔ)言 高數(shù) 大學(xué)語(yǔ)文 匯編語(yǔ)言 中近史 總分 平均分\n"); while (p!=NULL) { printf("%d %s %c %d %d %d %d %d %.1f %.2f\n",p->num,p->name,p->sex,p-
22、>score1,p->score2,p->score3,p->score4,p->score5,p->sum,p->aver); p=p->next; } system("pause"); } /*-------------------------------------write將數(shù)據(jù)存入文件-------------------------------------------*/ void write(struct student *head) { struct student *p; p=head; if(he
23、ad!=NULL) { while(p!=NULL) { fwrite(p,LEN,1,fp); p=p->next; } } printf("文件更新成功!\n"); fclose(fp); system("pause"); system("cls"); } /*-------------------------------------read將文件數(shù)據(jù)讀入一個(gè)新鏈表中-------------------------------------------*/ struct student *read
24、(void) { struct student *head; struct student *p1,*p2; head=NULL; p1=NEW; rewind(fp);//指向文件頭 fread(p1,LEN,1,fp); while(!feof(fp)) { if(head==NULL) head=p1; else p2->next=p1; p2=p1; p1=NEW; fread(p1,LEN,1,f
25、p); } p2->next=NULL; fclose(fp); return(head); } void find(struct student *head)/* 查詢功能 */ { int t,s,i,j; struct student *p,*q; char x[10],y[2]={"0"},c[2]; char k,f; p=head; printf("精確查找:\n *1 按姓名查找\n *2 按學(xué)號(hào)查找\n 模糊查找\n *3 按姓氏查找:\n *4 按性別查找\n");
26、 scanf("%d",&s); k=getchar(); if(s==1) {printf("請(qǐng)輸入姓名:"); gets(x); while (p!=NULL) { if (strcmp(x,p->name)==0) { printf("\n學(xué)號(hào) 姓名 性別 c語(yǔ)言 高數(shù) 大學(xué)語(yǔ)文 匯編語(yǔ)言 中近史 總分 平均分\n"); printf("%d %s %c %d %d %d %d %d %.1f
27、 %.2f\n",p->num,p->name,p->sex,p->score1,p->score2,p->score3,p->score4,p->score5,p->sum,p->aver); j=1;} else i=1; q=p;p=p->next; } } else if(s==2) {printf("按學(xué)號(hào)查找:\n"); scanf("%d",&t); while (p!=NULL) { if (t==p->num) { printf("\n學(xué)號(hào) 姓名 性別 c語(yǔ)言 高數(shù) 大學(xué)
28、語(yǔ)文 匯編語(yǔ)言 中近史 總分 平均分\n"); printf("%d %s %c %d %d %d %d %d %.1f %.2f\n",p->num,p->name,p->sex,p->score1,p->score2,p->score3,p->score4,p->score5,p->sum,p->aver); j=1;} else i=1; q=p;p=p->next; } } else if(s==3) { printf("按姓氏查詢:\n")
29、; gets(c); while ( p!=NULL) { if (strncmp(c,p->name,1)==0) { printf("\n學(xué)號(hào) 姓名 性別 c語(yǔ)言 高數(shù) 大學(xué)語(yǔ)文 匯編語(yǔ)言 中近史 總分 平均分\n"); printf("%d %s %c %d %d %d %d %d %.1f %.2f\n",p->num,p->name,p->sex,p->score1,p->score2,p->sc
30、ore3,p->score4,p->score5,p->sum,p->aver); j=1;} else i=1; q=p;p=p->next; } } else if(s==4) { printf("按性別查詢:\n"); f=getchar(); while(p!=NULL) { if(f==p->sex) { printf("\n學(xué)號(hào) 姓名 性別 c語(yǔ)言 高數(shù) 大學(xué)語(yǔ)文 匯編語(yǔ)言 中近史 總分 平均分\n"); printf("%d %s %c
31、 %d %d %d %d %d %.1f %.2f\n",p->num,p->name,p->sex,p->score1,p->score2,p->score3,p->score4,p->score5,p->sum,p->aver); j=1;} else i=1; q=p;p=p->next; } } if(i=1&&j!=1) printf("Not found.輸入錯(cuò)誤\n"); system("pause"); system("cls"); }
32、 struct student *delstudent(struct student *head)/* 刪除功能 */ { int s,n,m=1; char c; struct student *p,*q; char x[10]; while(m) {printf(" *1 按學(xué)號(hào)刪除\n *2 按姓名刪除\n"); scanf("%d",&s); c=getchar(); printf("已有信息如下:\n"); prlist(head); if (head==NULL
33、) { printf("This is a empty list."); return head; } p=head; switch(s) { case 2: { printf("請(qǐng)輸入姓名:"); gets(x); while (strcmp(x,p->name)!=0 && p->next!=NULL) { q=p;p=p->next;} if (strcmp(x,p->name)==0) { if (p==head) head=p->nex
34、t; else q->next=p->next; free(p); } else {printf("Not found.\n");continue; } };m=0;break; case 1: { printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%d",&n); c=getchar(); while (n!=p->num && p->next!=NULL)
35、 { q=p;p=p->next;} if (n==p->num) { if (p==head) head=p->next; else q->next=p->next; free(p); } else {printf("Not found.\n");continue; } };m=0;break; default: print
36、f("輸入錯(cuò)誤\n");break; } } return head; } void about()/* 關(guān)于我們 */ { system("cls"); printf(" ∩_∞ , ∩_ ∩\n\n"); printf(" (●. ●) (●﹏●)\n\n"); printf(" /▓\ /█\ Hi\n\n"); pri
37、ntf(" 成員介紹\n\n"); printf(" 1.組長(zhǎng):\n\n"); printf(" 2.組員:\n\n"); printf(" 3.組員:\n\n"); printf(" 4.組員:\n\n"); printf(" 產(chǎn)品
38、信息\n\n"); printf(" 一.產(chǎn)品用途:主要用于學(xué)生成績(jī)管理與查詢.\n\n"); printf(" 二.班級(jí)成績(jī)管理系統(tǒng)主要包括:數(shù)據(jù)的錄入 \n\n"); printf(" 讀取 顯示 刪除 插入 查找 修改 排名.\n\n"); system("pause"); system("cls"); } void end() /*退出系統(tǒng)*/ { char s; printf("是否
39、退出系統(tǒng)Y/N?\n"); scanf("%c",&s); if(s==Y || s==y) exit(0); else if(s==N || s==n) return; else { printf("輸入錯(cuò)誤,請(qǐng)重新輸入\n\n");system("pause");return; } } struct student *insert(struct student *head, struct student *op)/* 插入功能 */ { struct student *p,*q; if (head=
40、=NULL)
{ head=op; /* 空表時(shí),插入結(jié)點(diǎn) */
op->next=NULL;
}
else
{ p=head;
while (op->num > p->num && p->next!=NULL)
{ q=p;p=q->next; }
if (op->num==p->num)
{ printf("\n該學(xué)號(hào)已存在,無(wú)法插入!\n");
return head;
}
else if(op->num
41、{ if (p==head) head=op; /* 在表頭插入結(jié)點(diǎn) */ else q->next=op; /* 在表中間插入結(jié)點(diǎn) */ op->next=p; } else { p->next=op; /* 在表尾插入結(jié)點(diǎn) */ op->next=NULL; } } return head; } struct studen
42、t *xiugai(struct student *head)/*修改功能*/ { struct student *op=NEW; int c; head=delstudent(head); printf("請(qǐng)輸入新名字:"); gets(op->name); printf("請(qǐng)輸入新學(xué)號(hào):"); scanf("%d",&op->num); c=getchar(); printf("請(qǐng)輸入新性別:"); scanf("%c",&op->sex); printf("請(qǐng)輸入新C語(yǔ)言成績(jī):"); scanf("%d",&op->sc
43、ore1); printf("請(qǐng)輸入新高數(shù)成績(jī):"); scanf("%d",&op->score2); printf("請(qǐng)輸入新大學(xué)語(yǔ)文成績(jī):"); scanf("%d",&op->score3); printf("請(qǐng)輸入新匯編成績(jī):"); scanf("%d",&op->score4); printf("請(qǐng)輸入新中近史成績(jī):"); scanf("%d",&op->score5); c=getchar(); op->sum=op->score1+op->score2+op->score3+op->score4+op-
44、>score5; op->aver=(op->score1+op->score2+op->score3+op->score4+op->score5)/5.0; op->next=NULL; head=insert(head,op); return head; } struct student *ca(struct student *head)/*插入功能*/ { struct student *op=NEW; char c; printf("請(qǐng)輸入名字:"); gets(op->name); printf("請(qǐng)輸
45、入學(xué)號(hào):"); scanf("%d",&op->num); c=getchar(); printf("請(qǐng)輸入性別:"); scanf("%c",&op->sex); printf("請(qǐng)輸入C語(yǔ)言成績(jī):"); scanf("%d",&op->score1); printf("請(qǐng)輸入高數(shù)成績(jī):"); scanf("%d",&op->score2); printf("請(qǐng)輸入大學(xué)語(yǔ)文成績(jī):"); scanf("%d",&op->score3); printf("請(qǐng)輸入?yún)R編成績(jī):"); scanf("%d",
46、&op->score4); printf("請(qǐng)輸入中近史成績(jī):"); scanf("%d",&op->score5); c=getchar(); op->next=NULL; head=insert(head,op); op->sum=op->score1+op->score2+op->score3+op->score4+op->score5; op->aver=(op->score1+op->score2+op->score3+op->score4+op->score5)/5.0; return head; } void help()/* 軟件說(shuō)明
47、*/ { system("cls"); printf("\n 說(shuō)明 \n\n\n"); printf(" 運(yùn)行本軟件需先使用新建文件或打開(kāi)文件功能,否則運(yùn)行出錯(cuò)。\n"); printf(" 每次使用修改 插入 刪除等功能后需重新打開(kāi)文件讀取數(shù)據(jù),\n"); printf(" 否則得到的數(shù)據(jù)是未保存的。每運(yùn)行完一個(gè)功能會(huì)自動(dòng)返回到 \n"); printf(" 主界面。
48、 \n\n\n"); printf("\n\n 純屬原創(chuàng) 禁止抄襲 \n\n"); system("pause"); system("cls"); } /*-------------------主函數(shù) 菜單--------------------------------------*/ int main() { system("color 9f"); char c,r; struct student *head; int
49、z; while(1) { printf("\n"); printf(" ╔------------------------╗ \n\n"); printf(" 歡迎使用學(xué)生成績(jī)管理系統(tǒng) \n\n"); printf(" ╚------------------------╝ \n\n"); printf("***********************************菜單***********************************\n\n"); p
50、rintf("==========================================================================\n\n"); printf("******* 1.新建文件 ***** 2.打開(kāi)文件 *******"); printf("\n\n"); printf("******* 3.修改功能 ***** 4.插入功能 *******"); printf("\n\n"); printf("*****
51、** 5.查詢功能 ***** 6.刪除功能 *******"); printf("\n\n"); printf("******* 7.排名功能 ***** 8.關(guān)于我們 *******"); printf("\n\n"); printf("******* 9.軟件說(shuō)明 ***** 0.退出系統(tǒng) *******"); printf("\n\n"); printf("請(qǐng)輸入
52、指令:"); scanf("%d",&z); c=getchar(); switch(z) { case 1: printf("請(qǐng)輸入文件路徑和新建文件名(如:d://123):"); scanf("%s",filename);//---輸入文件名,如d://123 if((fp=fopen(filename,"w+"))==NULL)//W+先新建文件在寫入數(shù)據(jù) { printf("新建文件失?。n"); } else { printf("新建文件成功!\n"); head=cre
53、at();write(head); };break; case 2:printf("\n\n讀取文件數(shù)據(jù)\n"); printf("請(qǐng)輸入讀取的文件路徑和文件名(如:d://123):"); scanf("%s",filename);/*---輸入文件名,如d://123----*/ c=getchar(); if((fp=fopen(filename,"r+"))==NULL)//r+讀文件 { printf("打開(kāi)文件失敗\n"); } else { printf("打開(kāi)文件成功\n");
54、 head=read();system("pause");printf("信息如下:\n"); prlist(head);system("cls"); };break; case 3:head=xiugai(head);prlist(head); printf("是否保存Y/N?\n");scanf("%c",&r); if(r==y||r==Y) {fp=fopen(filename,"w+");write(head);} else {printf("未保存\n");system("pause"
55、);system("cls");};break; case 4:head=ca(head);prlist(head); printf("是否保存Y/N?");scanf("%c",&r); if(r==y||r==Y) {fp=fopen(filename,"w+");write(head);}break; case 5:find(head);break; case 6:head=delstudent(head);prlist(head);printf("是否保存Y/N?\n");scanf("%c",&r)
56、; if(r==y||r==Y) {fp=fopen(filename,"w+");write(head);} else {printf("未保存\n");system("pause");system("cls");};break; case 7:head=paixu(head);prlist(head);system("cls");break; case 8:about();break; case 9:help();break; case 0:end();break; default:printf("輸入錯(cuò)誤,請(qǐng)重新輸入\n");break; } } return 0; }
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 優(yōu)化工作流程提高工作效率
- 文化創(chuàng)新優(yōu)秀課件
- 急性白血病免疫分型ppt課件
- 圓錐曲線性質(zhì)的探討與幾何證明的簡(jiǎn)單應(yīng)用
- 材料作文寫作技巧
- 機(jī)械制圖螺紋畫法
- 低價(jià)中標(biāo)合理性的確定和約束機(jī)制的研究報(bào)告
- 綜合性學(xué)習(xí)的復(fù)習(xí)
- 函數(shù)的極值與最值
- 醫(yī)療衛(wèi)生類通用PPT模板
- 中國(guó)最美的100個(gè)地方
- 住院醫(yī)師規(guī)范化培訓(xùn)發(fā)展歷程
- 六年級(jí)數(shù)學(xué)上冊(cè)百分?jǐn)?shù)解決問(wèn)題
- 某工程有限公司項(xiàng)目入廠安全培訓(xùn)教材
- 液態(tài)光學(xué)膠應(yīng)用