




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 數 據 結 構 課 程 設 計設 計 題 目: 學生信息管理系統(順序) 姓名及學號 : 專 業 班 級: 09計算機科學與技術 指 導 教 師: 完 成 時 間: 信息工程學 院 計算機科學 系課題名稱學生信息管理系統(順序表)院 系信息工程學院年級專業10計科特色學 號姓 名成 績1042157103何業祥1042157104孔磊磊10421571019王 舒課題設計目的與設計意義1、課題設計目的:課程設計任務是為了實現學生信息的相關操作,方面用戶快速得到學生的各種信息,并且能進行信息的更新、插入、刪除等操作。課程設計的主要目的:熟練利用數據結構各種算法思想設計程序;掌握C語言基本語法;
2、通過課程設計,加深對數據結構課程所學內容的進一步理解和鞏固;加深對結構化課程設計思想的理解,并設計合理的模塊化結構;提高程序開發功能,能運用合理的控制流程編寫清晰高效的程序;培養分析問題、解決問題的能力。在課程設計中,我們充分發揮小組優勢完成課程設計,同時也體會到小組合作的重要性與必要性。2、課題設計意義:指導教師:年 月 日 安徽新華學院課程設計成績評定表(本科)目 錄一、實驗目的 1二、實驗內容 1三、基本要求 1四、算法設計思想 1五、算法流程圖 1六、算法源代碼 6七、運行結果 22八、收獲和體會 25九、致謝 25 1. 實驗目的:通過制作學生信息管理系統 (1) 基本掌握面向過程程
3、序設計的的基本思路和方法;(2) 達到熟練掌握C語言的基本知識和技能;(3) 能夠利用所學的基本知識和技能,解決簡單的程序設計問題。2實驗內容: 輸入一個班學生的學號,姓名,性別,成績。編程插入學生信息,設計查找每個學生的信息,刪除學生信息,輸出學生信息,修改學生信息,報表和顯示學生信息,及退出學生信息管理系統。3基本要求:(1)硬件:微機,打印機各一臺(2)軟件:Visual C+,windows74. 算法設計思想(1).分析程序的功能要求,劃分程序功能模塊。 (2). 畫出系統流程圖。 (3). 代碼的編寫。定義數據結構和各個功能子函數。 (4). 程序的功能調試。 5. 算法的流程圖根
4、據printf函數輸出的提示信息選擇相關操作3.查找學生信息4.刪除學生信息5.輸出學生信息6.修改學生信息0.退出學生信息管理系統1.創建學上信息表并初始化Main 主函數開始根據while語句選擇06相應數字Switch語句實現具體操作2.添加學生信息根據相關調用函數輸出相應學生信息程序結束6. 算法源代碼:#include#include#include#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 10#define List_INIT_SPACE 10#define List_INC_SPACE 1typed
5、ef structchar number15;char name10;char sex10;int score;Elemtype;typedef structElemtype *elem;int length;int listsize;sqlist;/*1創建空順序表并初始化*/void creatList(sqlist *L)int i=0,n;Elemtype *newbase;L-elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemtype);if(!L-elem) exit(OVERFLOW);L-length=0;L-listsize
6、=List_INIT_SPACE;printf(有幾位同學:n);scanf(%d,&n);for(i=0;ilength=L-listsize)newbase=(Elemtype*)realloc(L-elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype);if(newbase) L-elem=newbase;L-listsize+=List_INC_SPACE;else exit(OVERFLOW);printf(請輸入第%d名同學的信息:n,i+1);printf(學號(15)n);scanf(%16s,L-elemL-length.
7、number);printf(姓名(15)n);scanf(%16s,L-elemL-);printf(性別(男:M女:F)n);scanf(%16s,L-elemL-length.sex);printf(成績n);scanf(%10d,&L-elemL-length.score);L-length+;printf(%d名學生信息如下:n,L-length);printf(學號(15)姓名(15)性別(男:M女:F) 成績n);for(i=0;ilength;i+)printf(%-16s%-16s%-16s%-10dn,L-elemi.number,L-elemi.na
8、me,L-elemi.sex,L-elemi.score);/*2向順序表中插入元素*/void insertlist(sqlist*L)int i,j,k;char sign=y;Elemtype *newbase;Elemtype newelem;while(sign!=n)if(L-length=L-listsize)newbase=(Elemtype*)realloc(L-elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype);if(newbase) L-elem=newbase;L-listsize+=List_INC_SPACE
9、;else exit(OVERFLOW);printf(請輸入要插入的同學的信息:n);printf(學號(15)n);scanf(%16s,newelem.number);printf(姓名(15)n);scanf(%16s,);printf(性別(男:M女:F)n);scanf(%16s,newelem.sex);printf(成績n);scanf(%10d,&newelem.score);printf(要插入到第幾個位置:);scanf(%d,&i);while(iL-length+1)printf(不能插入到第%d個位置!n只能插入第1到第%d個位置上!n請重新
10、輸入要插入的位置:,L-length+1);scanf(%d,&i);L-length+;for(j=L-length-1;ji-2;j-)for(k=0;k=L-k;L-elemj.numberk=L-elemj-1.numberk;L-elemj.sexk=L-elemj-1.sexk;L-elemj.score=L-elemj-1.score;j+;for(k=0;k=k;L-elemj.numberk=newelem.numberk;L-elemj.sexk=newelem.sexk;L-ele
11、mj.score=newelem.score;printf(是否還要輸入?(Y or N);getchar();scanf(%c,&sign);if(sign=n|sign=N)sign=n;printf(%d名學生信息如下:n,L-length);printf(學號(15)姓名(15)性別(男:M女:F) 成績n);for(i=0;ilength;i+)printf(%-16s%-16s%-16s%-10dn,L-elemi.number,L-,L-elemi.sex,L-elemi.score);/*3查找學生信息*/int findlist(sqlist *L)int
12、 j;char i16;printf(1.按學號查找n2.按姓名查找n請選擇:);scanf(%d,&j);if(j=1)printf(請輸入學號:);scanf(%s,i);for(j=0;jlength;j+)if(!strcmp(i,L-elemj.number)/i=L-elemj.number用數組函數return j+1;return 0;elseprintf(請輸入姓名:);scanf(%s,i);for(j=0;jlength;j+)if(!strcmp(i,L-)/用數組函數return j+1;return 0;/*4刪除學生信息*/int delnod
13、e(sqlist *L)int j;char i10;printf(1.按學號刪除n2.按姓名刪除n請選擇:);scanf(%d,&j);if(j=1)printf(請輸入學號:);scanf(%s,i);for(j=0;jlength;j+)if(!strcmp(i,L-elemj.number)/i=L-elemj.number用數組函數for(;jlength;j+)L-elemj=L-elemj+1;L-length-;return 1;return 0;elseprintf(請輸入姓名:);scanf(%s,i);for(j=0;jlength;j+)if(!strcmp(i,L-e
14、)/用數組函數for(;jlength;j+)L-elemj=L-elemj+1;/L-elemj以后的向前挪L-length-;return 1;return 0;/*5輸出學生信息*/void printlist(sqlist *L)int i;printf(%d名學生信息如下:n,L-length);printf(學號(15)姓名(15)性別(男:M女:F) 成績n);for(i=0;ilength;i+)printf(%-16s%-16s%-16s%-10dn,L-elemi.number,L-,L-elemi.sex,L-elemi.score)
15、;/*6修改功能*/void reviselist(sqlist *L)int i,x,a=0;char name16;char sex16;char number16;int score;printf(請選擇你要改的同學的姓名);scanf(%16s,name); printf(請選擇你要改的同學的信息n); printf(1.修改學生的姓名n);printf(2.修改學生的學號n);printf(3.修改學生的性別n);printf(4.修改學生的成績n);scanf(%d,&x);switch(x)case 1:for(i=0;ilength;i+)if(strcmp(name,L-el
16、)=0)printf(請輸入新名字);scanf(%16s,name);strcpy(L-,name);a=1;if(a=0)printf(對不起你要改的名字不存在n);break;case 2:for(i=0;ilength;i+) if(strcmp(name,L-)=0) printf(請輸入新學號);scanf(%16s,number);strcpy(L-elemi.number,number);a=1; if(a=0)printf(對不起你要改的名字不存在n);break;case 3:for(i=0;ilength;i+)if
17、(strcmp(name,L-)=0)printf(請輸入新性別);scanf(%16s,sex);strcpy(L-elemi.sex,sex);a=1;if(a=0)printf(對不起你要改的名字不存在n);break;case 4:for(i=0;ilength;i+)if(strcmp(name,L-)=0)printf(請輸入新成績);scanf(%d,score);L-elemi.score=score;a=1;if(a=0)printf(對不起你要改的名字不存在n);break;/*0退出學生信息管理系統*/void tuichu(sql
18、ist *L)if(!L-elem)free(L-elem);printf(nn再見,歡迎下次使用);exit(-2);void main()sqlist a,*L=&a;int i;printf(*n);printf(* 學生信息管理系統 *n); printf(*=n);printf(*1.創建學生信息庫并初始化 *n); printf(*2.添加學生信息 *n);printf(*3.查找學生信息 *n); printf(*4.刪除學生信息 *n); printf(* 5.輸出學生信息 *n); printf(*6.修改學生信息 *n); printf(* 0.退出學生信息管理系統 *n)
19、; printf(*=n); printf(*n);while(1)printf(nn請選擇(0-6):);scanf(%d,&i);while(i6)printf(只能選擇0到6!請重新選擇:);scanf(%d,&i);switch(i)case 1:creatList(L);printf(初始化完畢!);break;case 2:insertlist(L);break;case 3:i=findlist(L);if(!i)printf(沒有該學生n);elsei-;printf(要查找的學生:n);printf(學號 姓名 性別 成績n);printf(%-10s%-10s%-10s%-
20、dn,L-elemi.number,L-,L-elemi.sex,L-elemi.score);break;case 4:i=delnode(L);if(!i)printf(沒有該學生n);elseprintf(該學生已刪除);break;case 5:printlist(L);break;case 6:reviselist(L);break;case 0:tuichu(L);7.運行結果:(1) 初始化(2) 信息錄入(3) 信息插入(4) 信息查詢(5) 刪除信息(6) 修改學生信息(7) 退出系統8收獲及體會: 通過這次實訓,增加了我們學習軟件技術的興趣,加強了小組成員之間的協作能力。雖然對軟件技術的具體內容還不是很了解,但通過對C語言這門課程的學習,已發現程序設計的樂趣。在對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- CJ/T 85-1999草坪剪草機
- CJ/T 81-2015機械攪拌澄清池攪拌機
- CJ/T 412-2012中低速磁浮交通道岔系統設備技術條件
- CJ/T 250-2007建筑排水用高密度聚乙烯(HDPE)管材及管件
- CJ/T 181-2003給水用孔網鋼帶聚乙烯復合管
- 2025年考試前的復習狀態調整試題及答案
- 秋招運營面試題目及答案
- 網絡計算資源管理在2025年考試中的案例分析試題及答案
- 社會工作者考試動態學習方法及試題及答案
- 測試cp的測試題及答案
- 職業道德與法治綜合練習2024-2025學年中職高教版
- 【MOOC】《學術寫作與國際發表》(北京科技大學)章節測驗慕課答案
- 房屋市政工程生產安全重大事故隱患判定標準(2024版)宣傳畫冊
- 《中國國家處方集》課件
- 2008年武漢單位勞動合同范本
- 2024年官方獸醫牧運通考試題庫(含答案)
- 氣壓傳動課件 項目五任務二 壓印設備壓力順序閥控制回路
- 工程款支付審批表
- 施耐德PLC-標準指令庫
- 小學體育與健康 水平三 第五章 低單杠 教案(PDF版 )
- 封陽臺換窗戶免責協議書
評論
0/150
提交評論