C程序設(shè)計(jì)-學(xué)生管理系統(tǒng)和萬(wàn)年歷系統(tǒng)_第1頁(yè)
C程序設(shè)計(jì)-學(xué)生管理系統(tǒng)和萬(wàn)年歷系統(tǒng)_第2頁(yè)
C程序設(shè)計(jì)-學(xué)生管理系統(tǒng)和萬(wàn)年歷系統(tǒng)_第3頁(yè)
C程序設(shè)計(jì)-學(xué)生管理系統(tǒng)和萬(wàn)年歷系統(tǒng)_第4頁(yè)
C程序設(shè)計(jì)-學(xué)生管理系統(tǒng)和萬(wàn)年歷系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)說(shuō)明書C程序設(shè)計(jì)班級(jí):*XX:*設(shè)計(jì)題目:學(xué)生管理系統(tǒng)和萬(wàn)年歷系統(tǒng)設(shè)計(jì)時(shí)間:2008.9.1至2008.9.5指導(dǎo)教師:*評(píng)語(yǔ):評(píng)閱成績(jī):評(píng)閱教師:課程設(shè)計(jì)目的穩(wěn)固和加深對(duì)C語(yǔ)言程序設(shè)計(jì)理論知識(shí)的理解,進(jìn)一步掌握編程技巧和方法,能融會(huì)貫穿所學(xué)知識(shí),提高編程和調(diào)試程序的水平,獨(dú)立操作與綜合應(yīng)用知識(shí)的能力。在程序中解決學(xué)生管理問(wèn)題和日期查詢問(wèn)題,從而培養(yǎng)理論與實(shí)踐相結(jié)合的能力,在編程中對(duì)學(xué)到的知識(shí)進(jìn)展了全面的整理.進(jìn)一步學(xué)習(xí)了指針,數(shù)組鏈表,文件構(gòu)造體,字符串,全局變量宏和一些語(yǔ)句的綜合運(yùn)用,在主函數(shù)中用了三級(jí)菜單,方便,可行性較強(qiáng).在子函數(shù)中運(yùn)用了以前學(xué)過(guò)的知識(shí),并用了以前沒(méi)學(xué)過(guò)的方法,

2、比方用二分法來(lái)查找,更加的快捷,方便.總體構(gòu)造圖介紹以上各個(gè)模塊的功能查 詢?nèi)掌诓樵兿到y(tǒng)學(xué)生管理系統(tǒng)判斷閏年具體日期日期查詢系統(tǒng):定義一個(gè)日期構(gòu)造體,包括年月日.首先用函數(shù)fun1()來(lái)判斷輸入的日期是否為閏年,然后再用fun2()來(lái)計(jì)算出這天是這年中的第幾天.此系統(tǒng)中定義了一個(gè)全局變量,該變量用來(lái)控制閏年所帶來(lái)的具體時(shí)間的變化問(wèn)題;然后在用了一個(gè)switch語(yǔ)句,輸出具體時(shí)間.學(xué)生管理系統(tǒng):該系統(tǒng)包括查詢成績(jī)排序,用文件來(lái)做,首先把學(xué)生的信息包括學(xué)號(hào),XX和成績(jī)寫在一個(gè)文件中,然后從文件中讀出寫入的信息查詢模塊包括按學(xué)號(hào),XX和成績(jī)查詢.按學(xué)號(hào)查詢模塊中運(yùn)用了二分法又稱折半法來(lái)實(shí)現(xiàn),用whi

3、le語(yǔ)句來(lái)循環(huán)計(jì)算判斷,此法大大加速了查詢速度.按XX查詢模塊中用了一個(gè)單循環(huán)實(shí)現(xiàn),將要找的學(xué)生的XX與文件中學(xué)生的名字一一比擬假設(shè)存在就輸出該生的具體信息,假設(shè)無(wú)輸出沒(méi)有此人;按成績(jī)查詢模塊中也用了一個(gè)單循環(huán)來(lái)找出成績(jī)小與m的學(xué)生信息并給出查詢結(jié)果.排序模塊用選擇法將學(xué)生按成績(jī)有高到低排列;插入模塊中首先將要插入學(xué)生的信息輸入,然后判斷該生的學(xué)號(hào)是否與學(xué)生的學(xué)號(hào)重復(fù),假設(shè)不重復(fù)將該生按學(xué)號(hào)有小到大的順序插入;刪除模塊中首先輸入要?jiǎng)h除學(xué)生的學(xué)號(hào),判斷該生是否存在.假設(shè)存在輸出該生的具體信息,然后將剩余學(xué)生的信息給出;三源程序代碼#include"stdio.h"#inclu

4、de"stdlib.h"#include"string.h"#defineNULL0#defineN3intm;FILE*fp;structstudentlongnum;charname20;floatscore;structstudent*next;stu10;structdataintmonth;intday;intyear;data1;voidfun1()if(data1.year%4=0&&data1.year%100!=0)|(data1.year%100=0&&data1.year%400!=0)printf(

5、"該年為RUI年n");m=1;elseprintf("該年不為RUI年n");m=0;voidfun2()intn;switch(data1.month)case1:n=data1.day;break;case2: n=31+data1.day;break;case3:case5:case7: n=31+28+m+(data1.month-3)/2*61+data1.day;break;case4:case6:n=31+28+m+(data1.month-4)/2*61+31+data1.day;break;case8:case10:case12:n=

6、31*4+30*2+28+m+(data1.month-8)/2*61+data1.day;break;case9:case11:n=31*4+30*2+28+m+(data1.month-9)/2*61+31+data1.day;break;default:printf("error");printf("該日期是這一年中的第天坨",n);voidsearchcj()inti,j=0;floatm;printf("請(qǐng)輸入成績(jī)小于的學(xué)生:n");scanf("%f",&m);fp=fopen("ou

7、t3.txt","rb");if(fp=NULL)printf("errorn");exit(0);for(i=0;i<N;i+)fread(&stui,sizeof(structstudent),1,fp);if(stui.score<m)printf("%ld%s%fn",stui.num,,stui.score);j+;if(j=0)printf("cannotfindn");voidsearchxm()inti=0,j=0;charxm20;printf(&q

8、uot;請(qǐng)輸入該生的XX:");scanf("%s",xm);fp=fopen("out3.txt","rb");if(fp=NULL)printf("errorn");exit(0);for(i=0;i<N;i+)fread(&stui,sizeof(structstudent),1,fp);if(strcmp(,xm)=0)printf("%ld%s%fn",stui.num,,stui.score);j+;fclose(fp);i

9、f(j=0)printf("cannotfindn");voidsearchxh()inti=0,mid,high,low,q=-1;longnumber;printf("請(qǐng)輸入該生的學(xué)號(hào):");scanf("%ld",&number);fp=fopen("out3.txt","rb");if(fp=NULL)printf("errorn");exit(0);for(i=0;i<N;i+)fread(&stui,sizeof(structstudent)

10、,1,fp);fclose(fp);low=0;high=2;while(high>=low)mid=(low+high)/2;if(number=stumid.num)q=mid;break;elseif(number>stumid.num)low=mid+1;elsehigh=mid-1;if(q=-1)printf("cannotfindn");elseprintf("%ld%s%.2fn",stuq.num,,stuq.score);voidcjpx()inti,j;structstudenttemp;for(i=0

11、;i<N-1;i+)for(j=i+1;j<N;j+)if(stui.score<stuj.score)temp=stui;stui=stuj;stuj=temp;printf("成績(jī)有大到小排列:n");for(i=0;i<N;i+)printf("%ld%s%.2fn",stui.num,,stui.score);for(i=0;i<N-1;i+)for(j=i+1;j<N;j+)if(stui.score>stuj.score)temp=stui;stui=stuj;stuj=temp;v

12、oidshanchu()inti=0,j=0;structstudent*k;longnumber;printf("請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):n");scanf("%ld",&number);for(k=stu;k<stu+N;k+,j+)if(number=k->num)break;printf("要?jiǎng)h除的學(xué)生信息:%ld%s%fn",k->num,k->name,k->score);if(k>stu+N)printf("cannotfindn");elsefor(;j&

13、lt;N-1;j+)stuj.num=stuj+1.num;strcpy(,stuj+1.name);stuj.score=stuj+1.score;printf("剩余學(xué)生的信息:n");for(i=0;i<N-1;i+)printf("%ld%s%.2fn",stui.num,,stui.score);voidcharu()inti=0,t;structstudent*p,st;ppp:printf("請(qǐng)輸入要插入學(xué)生的學(xué)號(hào),XX,分?jǐn)?shù):n");scanf("%ld",

14、&st.num);scanf("%s",);scanf("%f",&st.score);for(i=0,p=stu;p<stu+N;p+,i+)if(st.num=p->num)printf("error,inputagain:");gotoppp;elseif(st.num<p->num)break;if(i=N)stui.num=st.num;strcpy(,);stui.score=st.score;elsefor(t=N-1;t>=i;

15、t-)stut+1.num=stut.num;strcpy(stut+1.name,);stut+1.score=stut.score;stui.num=st.num;strcpy(,);stui.score=st.score;for(i=0;i<N+1;i+)printf("%ld%s%.2fn",stui.num,,stui.score);voidmain()voidrunnian();voidxuesheng();voidchaxun();charch;printf("1日期查詢系統(tǒng)n

16、");printf("2學(xué)生管理系統(tǒng)n");printf("3退出整個(gè)系統(tǒng)n");abc:printf("請(qǐng)選擇要進(jìn)入的題目:");scanf("%c",&ch);switch(ch)case'1':runnian();break;case'2':xuesheng()b;reak;case'3':gotoend;gotoabc;end:;voidrunnian()charch;printf("a判斷是否是瑞年n");printf(

17、"b是這年中的第幾天n");printf("c退出日期系統(tǒng)n");printf("INPUTTHEDATA:");scanf("%d%d%d",&data1.year,&data1.month,&data1.day);rty:printf("請(qǐng)選擇要進(jìn)入第1題的菜單:");scanf("%c",&ch);switch(ch)case'a':fun1();break;case'b':fun2();break;cas

18、e'c':gotoend;gotorty;end:;voidxuesheng()charch;inti;chara50=""charb50=*;printf("請(qǐng)輸入學(xué)生的學(xué)號(hào)XX分?jǐn)?shù):n");for(i=0;i<N;i+)scanf("%ld%s%f",&stui.num,,&stui.score);fp=fopen("out3.txt","wb");for(i=0;i<N;i+)if(fwrite(&stui,sizeof

19、(structstudent),1,fp)!=1)printf("filewriteerrorn");fclose(fp);puts(a);puts(b);printf("A查詢n");printf("B排序n");printf("C刪除n");printf("D插入n");printf("E退出成績(jī)系統(tǒng)n");puts(a);puts(b);def:printf("請(qǐng)選擇要進(jìn)入第2題的菜單:");scanf("%c",&ch)

20、;switch(ch)case'A':chaxun();break;case'B':cjpx();break;case'C':shanchu();break;case'D':charu();break;case'E':gotoend;gotodef;end:voidchaxun()charch;chara50="n"char b50= ”*n"puts(a);puts(b);printf("d按學(xué)號(hào)查詢n");printf("e按XX查詢n");

21、printf("f按成績(jī)查詢n");printf("h退出查詢n");puts(a);puts(b);:");iop:printf("請(qǐng)選擇你要進(jìn)入的查詢菜單ch=getchar();switch(ch)case'd':searchxh();break;case'e':searchxm();break;case'f':searchcj();break;case'h':gotoend;gotoiop;end:;四:運(yùn)行結(jié)果SBC:,''?.'dov.

22、<5y4?m32-T-;?>?日期查詢系統(tǒng)z學(xué)生管理系名爐-工退出整個(gè)素統(tǒng)一是這年中的第幾天 退出日期系統(tǒng)一一INPUT THE DnTA:20BS 3 1請(qǐng)選擇零進(jìn)入第1題的菜單i 該年本為加年請(qǐng)選擇要進(jìn)入第1題的菜單: 該目期早用一年中的第69天 請(qǐng)選悻要進(jìn)入第1題的菜皂請(qǐng)選擇要進(jìn)入第1題的菜單. *請(qǐng)選擇要進(jìn)A第1題的菜單;卜請(qǐng)選擇要進(jìn)入第1題的菜單.e請(qǐng)選擇要進(jìn)入的題目二請(qǐng)選槿要進(jìn)入的題目:2 諳輸入學(xué)生的學(xué)號(hào)姓名 分醺:請(qǐng)選擇要進(jìn)入即題目;1逵判斷杲否累端車,Lyyy564ill787aooS9* 二 二二 溫*二二系 :一二結(jié) :二一成 -詢序除入出 共查排刪插退 三 I - = " I 二 一 -一 一 二 - I請(qǐng)選擇要進(jìn)入第2題的菜單;請(qǐng)選擇要進(jìn)入第2題的菜單;n查香查詢號(hào)名績(jī)杳學(xué)姓成出按按校退詢?cè)冊(cè)僌BCAWindoW55ystem32cmd,exe*

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論