




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、學(xué)生信息管理系統(tǒng)程序設(shè)計 1、 軟件開發(fā)目的 該軟件主要是實現(xiàn)對學(xué)生基本信息進(jìn)行系統(tǒng)化的管理,首先可以對學(xué)生基本信息進(jìn)行錄入和存取,其次可以瀏覽學(xué)生的相關(guān)信息,然后可以刪除和插入學(xué)生的相關(guān)信息,還有就是可按學(xué)號或按學(xué)生姓名查詢此學(xué)生的相關(guān)信息。由此來系統(tǒng)化管理學(xué)生基本信息,并達(dá)到簡易操作的目的。 2、 功能分析說明圖 3、 各項功能說明 (1)學(xué)生基本信息的錄入和保存: 在鏈表中的適當(dāng)位置插入一個學(xué)生信息節(jié)點,一次添加一條學(xué)生信息(添加內(nèi)容包含學(xué)號、姓名、年齡),如果添加的學(xué)號已經(jīng)在文件中存在,則不能添加到文件中去,應(yīng)顯示錯誤提示語;如果添加成功,則顯示成功提示語。添加操作完畢后,應(yīng)該詢問用戶
2、是否繼續(xù)執(zhí)行此操作。如果用戶不繼續(xù),則退回到程序初始界面。 (2)顯示學(xué)生信息: 此功能是顯示一個學(xué)生信息節(jié)點中的信息,并在屏幕上顯示出來。 (3)刪除學(xué)生信息: 進(jìn)入該項功能界面后,刪除學(xué)生信息,一次刪除一條學(xué)生信息。 (4)按學(xué)號查找學(xué)生信息: 按學(xué)號查詢學(xué)生信息,要求顯示 文件 中 與 用戶輸入的學(xué)號 相匹配的學(xué)生信息,要求顯示學(xué)號、姓名、年齡等字段,如果文件中沒有學(xué)生信息,則顯示提示語。查詢操作完畢后,應(yīng)該詢問用戶是否繼續(xù)執(zhí)行此操作。如果用戶不繼續(xù),則退回到程序初始界面。 (5)按姓名查找學(xué)生信息: 按姓名查詢學(xué)生信息,要求顯示 文件 中 與 用戶輸入的學(xué)號 相匹配的學(xué)生信息,要求顯示
3、學(xué)號、姓名、年齡等字段,如果文件中沒有學(xué)生信息,則顯示提示語。查詢操作完畢后,應(yīng)該詢問用戶是否繼續(xù)執(zhí)行此操作。如果用戶不繼續(xù),則退回到程序初始界面。 (6)修改學(xué)生信息 修改學(xué)生信息中的某一項信息,一次更新一條學(xué)生信息(更新內(nèi)容包含學(xué)號、姓名、年齡等字段值),如果更新的學(xué)號在文件中不存在,則不能更新,應(yīng)該顯示錯誤提示語;如果更新成功,則顯示成功提示語。更新操作完畢后,應(yīng)該詢問用戶是否繼續(xù)執(zhí)行此操作。如果用戶不繼續(xù),則退回到程序初始界面。 (7)退出系統(tǒng),結(jié)束任務(wù)。 4、 軟件功能的驗收標(biāo)準(zhǔn) 1有較為美觀簡潔大方的菜單,能保證用戶方便、直觀、快捷的熟悉并使用軟件的各項功能。 2有嚴(yán)密正確的數(shù)據(jù)驗
4、證功能和數(shù)據(jù)處理功能,能夠查詢、插入、修改和刪除學(xué)生信息。 3系統(tǒng)要有一定的可靠性。 問題補充: 不方便貼出來,發(fā)到我郵箱也可!slr1130 最佳答案 #include <stdio.h> #include <malloc.h> #include <string.h> #include <io.h> #define NULL 0 #define LEN sizeof(struct student) #define FILE_DATA_PATH c:student.txt struct student long int num; char nam
5、e20; int age; char sex4; char birthday10; char address30; long int tele_num; char E_mail20; struct student *next; ; int TOTAL_NUM = 0; struct student *head = NULL; void welcome(); void mainmenu(); void record(); void insert(struct student *stu); void display(struct student *stu); void displayAll();
6、void query(); void query_by_num(); void query_by_name(); void readData(); void writeData(); void freeAll(); void del(); void change(); void devise(struct student *p); int main() char userName9; char userPWD7; int i; welcome(); for(i = 0; i < 3; i+) printf(n管理員初始用戶名和密碼均為adminn); printf(請輸入您的用戶名:);
7、 scanf(%s, userName); printf(n請輸入您的密碼:); scanf(%s, userPWD); if (strcmp(userName,admin)=0) && (strcmp(userPWD,admin)=0) /用戶名和密碼正確,顯示主菜單 mainmenu(); break; else if (i < 2) /用戶名或密碼錯誤,提示用戶重新輸入 printf(用戶名或密碼錯誤,請重新輸入!); else /連續(xù)3次輸錯用戶名或密碼,退出系統(tǒng)。 printf(您已連續(xù)3次將用戶名或密碼輸錯,系統(tǒng)將退出!); return 0; /顯示歡迎信息
8、 void welcome() printf(+-+n); printf(| |n); printf(| 歡迎使用學(xué)生信息管理系統(tǒng) |n); printf(| |n); printf(+-+n); /系統(tǒng)主菜單 void mainmenu() int choice; choice = -1; readData(); printf(n溫馨提示:為保證您的操作得到保存,請按正常順序退出系統(tǒng)_n); do printf(nnn); printf(ttt-n); printf(ttt+ 學(xué)生信息管理系統(tǒng) |n); printf(ttt-n); printf(ttt+ 1-錄入學(xué)生信息 |n); pri
9、ntf(ttt+ 2-瀏覽學(xué)生信息 |n); printf(ttt+ 3-查詢學(xué)生信息 |n); printf(ttt+ 4-刪除學(xué)生信息 |n); printf(ttt+ 5-修改學(xué)生信息 |n); printf(ttt+ 0-退出系統(tǒng) |n); printf(ttt+*·*·*·*·*·*·*·*·*·*·|n); printf(ttt-n); printf(請輸入您的選擇:); scanf(%d, &choice); switch(choice) case 0: writeData
10、(); freeAll(); exit(0); case 1: record(); break; case 2: displayAll(); break; case 3: query(); break; case 4: del(); break; case 5: change(); break; default: printf(n無效選項!); break; while(choice != 0); /錄入學(xué)生信息 void record() struct student *p0; p0 = (struct student *)malloc(LEN); printf(請輸入學(xué)生的學(xué)號:); sc
11、anf(%ld,&p0->num); printf(請輸入學(xué)生的姓名:); scanf(%s,p0->name); printf(請輸入學(xué)生的年齡:); scanf(%d,&p0->age); printf(請輸入學(xué)生的性別:); scanf(%s,p0->sex); printf(請輸入學(xué)生的出生年月:); scanf(%s,p0->birthday); printf(請輸入學(xué)生的地址:); scanf(%s,p0->address); printf(請輸入學(xué)生的電話:); scanf(%ld,&p0->tele_num);
12、printf(請輸入學(xué)生的E-mail:); scanf(%s,p0->E_mail); insert(p0); printf(該學(xué)生的信息為:n); printf(-); printf(學(xué)號t姓名t年齡t性別t出生年月tt地址t電話tE-mailn); display(p0); void insert(struct student *stu) struct student *p0, *p1, *p2; p1 = head; p0 = stu; if(head = NULL) head = p0; p0->next = NULL; else while(p0->num >
13、; p1->num)&&(p1->next != NULL) p2 = p1; p1 = p1->next; if(p0->num <= p1->num) if(head = p1) head = p0; else p2->next = p0; p0->next = p1; else p1->next = p0; p0->next = NULL; TOTAL_NUM+; void display(struct student *p) printf(%ldt%st%dt%st%st%st%ldt%sn, p->nu
14、m, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail); /瀏覽學(xué)生信息 void displayAll() struct student *p; printf(學(xué)生總數(shù):%dn, TOTAL_NUM); p = head; if(head != NULL) printf(n學(xué)號t姓名t年齡t性別t出生年月t地址t電話tE-mailn); printf(-); do display(p); p = p->next; while(p != NULL);
15、 printf(n); /查詢學(xué)生信息 void query() int choice; choice = -1; do printf(n); printf(+-+n); printf(| 按學(xué)號查詢 請按 1 |n); printf(| 按姓名查詢 請按 2 |n); printf(| 取消 請按 0 |n); printf(+-+n); printf(請輸入您的選擇:); scanf(%d, &choice); switch(choice) case 0: return; case 1: query_by_num(); break; case 2: query_by_name();
16、 break; default: printf(n無效選項!); break; while(choice != 0); /按學(xué)號查詢學(xué)生信息 void query_by_num() int num; struct student *p1; printf(請輸入學(xué)生的學(xué)號:); scanf(%ld, &num); if(head=NULL) printf(無學(xué)生記錄!n); return; p1=head; while(num!=p1->num && p1->next!=NULL) p1=p1->next; if(num = p1->num) pr
17、intf(n學(xué)號t姓名t年齡t性別t出生年月t地址t電話tE-mailn); printf(-); display(p1); else printf(沒有該學(xué)生記錄,請核對!); /按姓名查詢學(xué)生信息 void query_by_name() char name20; struct student *p1; printf(請輸入學(xué)生的姓名:); scanf(%s, name); if(head=NULL) printf(無學(xué)生記錄!n); return; p1=head; while(strcmp(name, p1->name) && p1->next!=NULL)
18、 p1=p1->next; if(!strcmp(name, p1->name) printf(n學(xué)號t姓名t年齡t性別t出生年月t地址t電話tE-mailn); printf(-); display(p1); else printf(沒有該學(xué)生記錄,請核對!); /寫入文件 void writeData() FILE* fp;/文件指針 struct student *p; fp = fopen(FILE_DATA_PATH, w); if (!fp) printf(文件打開錯誤!); return; fprintf(fp,%dn, TOTAL_NUM); for(p = hea
19、d; p!= NULL; p= p->next) fprintf(fp,%ldt%st%dt%st%st%st%ldt%sn, p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail); fclose(fp); void freeAll() struct student *p1, *p2; p1=p2=head; while(p1) p2=p1->next; free(p1); p1=p2; /讀取文件 void readData
20、() FILE* fp;/文件指針 struct student *p1, *p2; fp = fopen(FILE_DATA_PATH, r); if (!fp) printf(文件打開錯誤!); return 0; fscanf(fp,%dn, &TOTAL_NUM); head = p1 = p2 = (struct student *)malloc(LEN); fscanf(fp,%ldt%st%dt%st%st%st%ldt%sn, &p1->num, p1->name, &p1->age, p1->sex, p1->birthd
21、ay, p1->address, &p1->tele_num, p1->E_mail); while(!feof(fp) p1 = (struct student *)malloc(LEN); fscanf(fp,%ldt%st%dt%st%st%st%ldt%sn, &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); p2->next = p1; p2 =
22、 p1; p2->next = NULL; fclose(fp); /刪除學(xué)生信息 void del() struct student *p1, *p2; long int num; if(head = NULL) printf(無學(xué)生記錄!n); return; printf(請輸入您要刪除的學(xué)生的學(xué)號:); scanf(%ld, &num); p1 = head; while(num != p1->num && p1->next != NULL) p2 = p1; p1 = p1->next; if(num = p1->num) if(
23、p1 = head) head = p1->next; else p2->next = p1->next; free(p1); TOTAL_NUM-; else printf(沒有該學(xué)生記錄,請核對!n); /修改學(xué)生信息 void change() struct student *p1, *p2; long int num; if(head = NULL) printf(無學(xué)生記錄!n); return; printf(請輸入您要修改的學(xué)生的學(xué)號:); scanf(%ld, &num); p1 = head; while(num != p1->num && p1->next != NULL) p2 = p1; p1 = p1->next; if(num = p1->num) devise(p1); else printf(沒有該學(xué)生記錄,請核對!n); void devise(struct student *p) int choice; choice
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 16254:2024 EN Acoustics - Measurement of sound emitted by road vehicles of category M and N at standstill and low speed operation - Engineering method
- 2025年度短信平臺數(shù)據(jù)統(tǒng)計分析服務(wù)合同范本
- 2025年度陽臺裝修封包與景觀照明系統(tǒng)安裝合同
- 化學(xué)-黑龍江省大慶市實驗中學(xué)2024-2025學(xué)年高一上學(xué)期階段考試
- 軟件開發(fā)項目管理計劃
- 秘書工作任務(wù)安排計劃
- 韻律之聲學(xué)校聲樂社團(tuán)訓(xùn)練計劃
- 從規(guī)劃到執(zhí)行的工作計劃流程
- 持續(xù)改進(jìn)班級工作方法計劃
- 從消費者行為看品牌優(yōu)化計劃
- 《網(wǎng)絡(luò)安全防護(hù)項目教程》課件項目4 網(wǎng)絡(luò)病毒和惡意代碼分析與防御
- 四川省達(dá)州市達(dá)川區(qū)2023-2024學(xué)年八年級下學(xué)期期末道德與法治試題
- 賬期協(xié)議書賬期合同書
- 信息技術(shù)課程標(biāo)準(zhǔn)2023版:義務(wù)教育小學(xué)階段
- 職業(yè)技術(shù)學(xué)院環(huán)境工程技術(shù)專業(yè)《水處理技術(shù)》課程標(biāo)準(zhǔn)
- 2024年興業(yè)銀行股份有限公司校園招聘考試試題參考答案
- 2024年中國國際航空股份有限公司校園招聘考試試題含答案
- 2024年常德職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- 天津市河?xùn)|區(qū)2023-2024學(xué)年九年級上學(xué)期期末數(shù)學(xué)試題
- 2023-2024學(xué)年統(tǒng)編版語文 七年級下冊第21課《古代詩歌五首-己亥雜詩(其五)》課件
- 駕駛證延期申請委托書
評論
0/150
提交評論