學生信息管理系統(tǒng)順序表實驗_第1頁
學生信息管理系統(tǒng)順序表實驗_第2頁
學生信息管理系統(tǒng)順序表實驗_第3頁
學生信息管理系統(tǒng)順序表實驗_第4頁
學生信息管理系統(tǒng)順序表實驗_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 數(shù) 據(jù) 結 構 課 程 設 計設 計 題 目: 學生信息管理系統(tǒng)(順序) 姓名及學號 : 專 業(yè) 班 級: 09計算機科學與技術 指 導 教 師: 完 成 時 間: 信息工程學 院 計算機科學 系課題名稱學生信息管理系統(tǒng)(順序表)院 系信息工程學院年級專業(yè)10計科特色學 號姓 名成 績1042157103何業(yè)祥1042157104孔磊磊10421571019王 舒課題設計目的與設計意義1、課題設計目的:課程設計任務是為了實現(xiàn)學生信息的相關操作,方面用戶快速得到學生的各種信息,并且能進行信息的更新、插入、刪除等操作。課程設計的主要目的:熟練利用數(shù)據(jù)結構各種算法思想設計程序;掌握c語言基本語法;

2、通過課程設計,加深對數(shù)據(jù)結構課程所學內容的進一步理解和鞏固;加深對結構化課程設計思想的理解,并設計合理的模塊化結構;提高程序開發(fā)功能,能運用合理的控制流程編寫清晰高效的程序;培養(yǎng)分析問題、解決問題的能力。在課程設計中,我們充分發(fā)揮小組優(yōu)勢完成課程設計,同時也體會到小組合作的重要性與必要性。2、課題設計意義:指導教師:年 月 日 安徽新華學院課程設計成績評定表(本科)目 錄一、實驗目的 1二、實驗內容 1三、基本要求 1四、算法設計思想 1五、算法流程圖 1六、算法源代碼 6七、運行結果 22八、收獲和體會 25九、致謝 2525 / 29文檔可自由編輯1. 實驗目的:通過制作學生信息管理系統(tǒng)

3、(1) 基本掌握面向過程程序設計的的基本思路和方法;(2) 達到熟練掌握c語言的基本知識和技能;(3) 能夠利用所學的基本知識和技能,解決簡單的程序設計問題。2實驗內容: 輸入一個班學生的學號,姓名,性別,成績。編程插入學生信息,設計查找每個學生的信息,刪除學生信息,輸出學生信息,修改學生信息,報表和顯示學生信息,及退出學生信息管理系統(tǒng)。3基本要求:(1)硬件:微機,打印機各一臺(2)軟件:visual c+,windows74. 算法設計思想(1).分析程序的功能要求,劃分程序功能模塊。 (2). 畫出系統(tǒng)流程圖。 (3). 代碼的編寫。定義數(shù)據(jù)結構和各個功能子函數(shù)。 (4). 程序的功能調

4、試。 5. 算法的流程圖根據(jù)printf函數(shù)輸出的提示信息選擇相關操作3.查找學生信息4.刪除學生信息5.輸出學生信息6.修改學生信息0.退出學生信息管理系統(tǒng)1.創(chuàng)建學上信息表并初始化main 主函數(shù)開始根據(jù)while語句選擇06相應數(shù)字switch語句實現(xiàn)具體操作2.添加學生信息根據(jù)相關調用函數(shù)輸出相應學生信息程序結束6. 算法源代碼:#include#include#include#define ok 1#define error 0#define overflow -2#define maxsize 10#define list_init_space 10#define list_inc

5、_space 1typedef structchar number15;char name10;char sex10;int score;elemtype;typedef structelemtype *elem;int length;int listsize;sqlist;/*1創(chuàng)建空順序表并初始化*/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

6、=0;l-listsize=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-

7、eleml-length.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.numb

8、er,l-,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+=l

9、ist_inc_space;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

10、到第%d個位置上!n請重新輸入要插入的位置:,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=newel

11、em.sexk;l-elemj.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(

12、sqlist *l)int 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用數(shù)組函數(shù)return j+1;return 0;elseprintf(請輸入姓名:);scanf(%s,i);for(j=0;jlength;j+)if(!strcmp(i,l-)/用數(shù)組函數(shù)return j+1;return 0;/*4刪除學生信

13、息*/int delnode(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用數(shù)組函數(shù)for(;jlength;j+)l-elemj=l-elemj+1;l-length-;return 1;return 0;elseprintf(請輸入姓名:);scanf(%s,i);for(j=0;jlength;j+)if(

14、!strcmp(i,l-)/用數(shù)組函數(shù)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

15、-elemi.score);/*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(str

16、cmp(name,l-)=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;

17、ilength;i+)if(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退出學生信息管理系統(tǒng)*/vo

18、id tuichu(sqlist *l)if(!l-elem)free(l-elem);printf(nn再見,歡迎下次使用);exit(-2);void main()sqlist a,*l=&a;int i;printf(*n);printf(* 學生信息管理系統(tǒng) *n); printf(*=n);printf(*1.創(chuàng)建學生信息庫并初始化 *n); printf(*2.添加學生信息 *n);printf(*3.查找學生信息 *n); printf(*4.刪除學生信息 *n); printf(* 5.輸出學生信息 *n); printf(*6.修改學生信息 *n); printf(* 0.退

19、出學生信息管理系統(tǒng) *n); 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(%-10

20、s%-10s%-10s%-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) 退出系統(tǒng)8收獲及體會: 通過這次實訓,增加了我們學習軟件技術的興趣,加強了小組成員之間的協(xié)作能力。雖然對軟件技術的具體內容還不是很了解,但通過對c語言這門課程的學習,已

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論