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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

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

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

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

4、據(jù)printf函數(shù)輸出的提示信息選擇相關(guān)操作3.查找學(xué)生信息4.刪除學(xué)生信息5.輸出學(xué)生信息6.修改學(xué)生信息0.退出學(xué)生信息管理系統(tǒng)1.創(chuàng)建學(xué)上信息表并初始化Main 主函數(shù)開始根據(jù)while語句選擇06相應(yīng)數(shù)字Switch語句實現(xiàn)具體操作2.添加學(xué)生信息根據(jù)相關(guān)調(diào)用函數(shù)輸出相應(yīng)學(xué)生信息程序結(jié)束6. 算法源代碼:#include<stdio.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 10#define

5、List_INIT_SPACE 10#define List_INC_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(Elemtyp

6、e);if(!L->elem) exit(OVERFLOW);L->length=0;L->listsize=List_INIT_SPACE;printf("有幾位同學(xué):n");scanf("%d",&n);for(i=0;i<n;i+)if(L->length=L->listsize)newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype);if(newbase) L->elem=new

7、base;L->listsize+=List_INC_SPACE;else exit(OVERFLOW);printf("請輸入第%d名同學(xué)的信息:n",i+1);printf("學(xué)號(15)n");scanf("%16s",L->elemL->length.number);printf("姓名(15)n");scanf("%16s",L->elemL->);printf("性別(男:M女:F)n");scanf("

8、;%16s",L->elemL->length.sex);printf("成績n");scanf("%10d",&L->elemL->length.score);L->length+;printf("%d名學(xué)生信息如下:n",L->length);printf("學(xué)號(15)姓名(15)性別(男:M女:F) 成績n");for(i=0;i<L->length;i+)printf("%-16s%-16s%-16s%-10dn",L-

9、>elemi.number,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)*

10、sizeof(Elemtype);if(newbase) L->elem=newbase;L->listsize+=List_INC_SPACE;else exit(OVERFLOW);printf("請輸入要插入的同學(xué)的信息:n");printf("學(xué)號(15)n");scanf("%16s",newelem.number);printf("姓名(15)n");scanf("%16s",);printf("性別(男:M女:F)n");sc

11、anf("%16s",newelem.sex);printf("成績n");scanf("%10d",&newelem.score);printf("要插入到第幾個位置:");scanf("%d",&i);while(i<1|i>L->length+1)printf("不能插入到第%d個位置!n只能插入第1到第%d個位置上!n請重新輸入要插入的位置:",L->length+1);scanf("%d",&i);

12、L->length+;for(j=L->length-1;j>i-2;j-)for(k=0;k<16;k+)L->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<16;k+)L->k=k;L->elemj.numberk=newele

13、m.numberk;L->elemj.sexk=newelem.sexk;L->elemj.score=newelem.score;printf("是否還要輸入?(Y or N)");getchar();scanf("%c",&sign);if(sign='n'|sign='N')sign='n'printf("%d名學(xué)生信息如下:n",L->length);printf("學(xué)號(15)姓名(15)性別(男:M女:F) 成績n");for(i

14、=0;i<L->length;i+)printf("%-16s%-16s%-16s%-10dn",L->elemi.number,L->,L->elemi.sex,L->elemi.score);/*3查找學(xué)生信息*/int findlist(sqlist *L)int j;char i16;printf("1.按學(xué)號查找n2.按姓名查找n請選擇:");scanf("%d",&j);if(j=1)printf("請輸入學(xué)號:");scanf("

15、;%s",i);for(j=0;j<L->length;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;j<L->length;j+)if(!strcmp(i,L->)/用數(shù)組函數(shù)return j+1;return 0;/*4刪除學(xué)生信息*/int delnode(sqlist *L)int j;c

16、har i10;printf("1.按學(xué)號刪除n2.按姓名刪除n請選擇:");scanf("%d",&j);if(j=1)printf("請輸入學(xué)號:");scanf("%s",i);for(j=0;j<L->length;j+)if(!strcmp(i,L->elemj.number)/i=L->elemj.number用數(shù)組函數(shù)for(;j<L->length;j+)L->elemj=L->elemj+1;L->length-;return 1;re

17、turn 0;elseprintf("請輸入姓名:");scanf("%s",i);for(j=0;j<L->length;j+)if(!strcmp(i,L->)/用數(shù)組函數(shù)for(;j<L->length;j+)L->elemj=L->elemj+1;/L->elemj以后的向前挪L->length-;return 1;return 0;/*5輸出學(xué)生信息*/void printlist(sqlist *L)int i;printf("%d名學(xué)生信息如下:n"

18、;,L->length);printf("學(xué)號(15)姓名(15)性別(男:M女:F) 成績n");for(i=0;i<L->length;i+)printf("%-16s%-16s%-16s%-10dn",L->elemi.number,L->,L->elemi.sex,L->elemi.score);/*6修改功能*/void reviselist(sqlist *L)int i,x,a=0;char name16;char sex16;char number16;int score;pr

19、intf("請選擇你要改的同學(xué)的姓名");scanf("%16s",name); printf("請選擇你要改的同學(xué)的信息n"); printf("1.修改學(xué)生的姓名n");printf("2.修改學(xué)生的學(xué)號n");printf("3.修改學(xué)生的性別n");printf("4.修改學(xué)生的成績n");scanf("%d",&x);switch(x)case 1:for(i=0;i<L->length;i+)if(str

20、cmp(name,L->)=0)printf("請輸入新名字");scanf("%16s",name);strcpy(L->,name);a=1;if(a=0)printf("對不起你要改的名字不存在n");break;case 2:for(i=0;i<L->length;i+) if(strcmp(name,L->)=0) printf("請輸入新學(xué)號");scanf("%16s",number);str

21、cpy(L->elemi.number,number);a=1; if(a=0)printf("對不起你要改的名字不存在n");break;case 3:for(i=0;i<L->length;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

22、=0;i<L->length;i+)if(strcmp(name,L->)=0)printf("請輸入新成績");scanf("%d",score);L->elemi.score=score;a=1;if(a=0)printf("對不起你要改的名字不存在n");break;/*0退出學(xué)生信息管理系統(tǒng)*/void tuichu(sqlist *L)if(!L->elem)free(L->elem);printf("nn再見,歡迎下次使用");exit(-2);v

23、oid main()sqlist a,*L=&a;int i;printf("*n");printf("* 學(xué)生信息管理系統(tǒng) *n"); printf("*=n");printf("*1.創(chuàng)建學(xué)生信息庫并初始化 *n"); printf("*2.添加學(xué)生信息 *n");printf("*3.查找學(xué)生信息 *n"); printf("*4.刪除學(xué)生信息 *n"); printf("* 5.輸出學(xué)生信息 *n"); printf(&

24、quot;*6.修改學(xué)生信息 *n"); printf("* 0.退出學(xué)生信息管理系統(tǒng) *n"); printf("*=n"); printf("*n");while(1)printf("nn請選擇(0-6):");scanf("%d",&i);while(i<0|i>6)printf("只能選擇0到6!請重新選擇:");scanf("%d",&i);switch(i)case 1:creatList(L);print

25、f("初始化完畢!");break;case 2:insertlist(L);break;case 3:i=findlist(L);if(!i)printf("沒有該學(xué)生n");elsei-;printf("要查找的學(xué)生:n");printf("學(xué)號 姓名 性別 成績n");printf("%-10s%-10s%-10s%-dn",L->elemi.number,L->,L->elemi.sex,L->elemi.score);break;case 4:i=delnode(L);if(!i)printf("沒有該學(xué)生n");elseprintf("該學(xué)生已刪除");break;case 5:printlist(L);break;case 6:reviselist(L);bre

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論