版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 信息科學(xué)與技術(shù)學(xué)院</b></p><p> 程序設(shè)計基礎(chǔ)課程設(shè)計報告</p><p> 題目名稱: 學(xué)生考勤管理系統(tǒng) </p><p> 學(xué)生姓名: </p><p> 學(xué) 號:
2、 </p><p> 專業(yè)班級: </p><p> 指導(dǎo)教師: </p><p><b> 2012年7月6日</b></p><p><b> 目錄</b></p><p><b
3、> 目錄1</b></p><p> 1. 課程設(shè)計題目與要求2</p><p> 1.1 課題目的和要求2</p><p> 1.3 課題意義2</p><p><b> 2 總體設(shè)計3</b></p><p> 2.1功能模塊設(shè)計3</p>
4、<p> 2.2系統(tǒng)設(shè)計方案3</p><p><b> 3 詳細(xì)設(shè)計4</b></p><p> 3.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計4</p><p> 3.2 主模塊設(shè)計5</p><p> 3.2.1建立學(xué)生缺課記錄子模塊5</p><p> 3.2.2修改學(xué)生缺課
5、記錄子模塊6</p><p> 3.2.3修改學(xué)生缺課記錄子模塊7</p><p> 3.2.4查看單科曠課記錄子模塊7</p><p> 3.2.5查看學(xué)生曠課記錄子模塊8</p><p> 3.2.6載入學(xué)生曠課記錄子模塊9</p><p> 3.2.7儲存學(xué)生曠課記錄子???0</p&
6、gt;<p> 4. 運行結(jié)果12</p><p><b> 4.1運行12</b></p><p> 5. 課程設(shè)計總結(jié)16</p><p><b> 結(jié)束語16</b></p><p><b> 參考文獻16</b></p>
7、<p><b> 附錄:源代碼17</b></p><p> 1. 課程設(shè)計題目與要求</p><p> 1.1 課題目的和要求</p><p> 設(shè)計目的:要求實現(xiàn)---“學(xué)生考勤管理程序”記錄學(xué)生的缺課情況,它包括:缺課日期、第幾節(jié)課、課程名稱、學(xué)生姓名、缺課類型(遲到、早退、請假及曠課)。</p><
8、;p> 1.2 設(shè)計要求: </p><p> 1.錄入學(xué)生的缺課記錄;</p><p> 2.修改某個學(xué)生的缺課記錄;</p><p> 3.查詢某個學(xué)生的缺課情況;</p><p> 4.統(tǒng)計某段時間內(nèi),某門課曠課學(xué)生姓名及曠課次數(shù),按曠課次數(shù)由多到少排序; </p><p> 5.統(tǒng)計某段時間內(nèi)
9、,有學(xué)生曠課的課程及曠課人次,按曠課人次由多到少排序;</p><p> 6.系統(tǒng)以菜單方式工作。</p><p><b> 1.3 課題意義</b></p><p> 程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。通過程序?qū)嵺`,強化學(xué)生的計算機應(yīng)用技能,使學(xué)生驗證、鞏固和充實所學(xué)的理論知識, 加深對相關(guān)內(nèi)容的理解,拓寬知識面,培養(yǎng)學(xué)生的創(chuàng)新精神和實
10、踐能力</p><p> 學(xué)生考勤管理程序可以大大減緩學(xué)生考勤人員的工作量, 方便了平時上課學(xué)生的出勤率的管理。</p><p><b> 2 總體設(shè)計</b></p><p><b> 2.1功能模塊設(shè)計</b></p><p> 根據(jù)分析整個系統(tǒng)主要劃分為7個功能模塊,分別執(zhí)行要求中的功
11、能。數(shù)據(jù)管理中實現(xiàn)對學(xué)生的基本信息、課程的基本信息、學(xué)生缺課的查詢、添加、刪除和修改,以及具體缺課缺課內(nèi)容,是遲到、早退、請假、曠課。查詢管理通過根據(jù)學(xué)生姓名,課程姓名 時間段兒等信息,查詢單個學(xué)生的缺課記錄,單科課的曠課記錄,單個學(xué)生的曠課記錄。功能模塊圖如圖1所示。、</p><p><b> 圖1功能模塊圖</b></p><p><b> 2.2
12、系統(tǒng)設(shè)計方案</b></p><p> 此程序是過程性語言設(shè)計的。運用多種條件語句,主體采用的是鏈表指針。系統(tǒng)的設(shè)計采用了數(shù)組語句、選擇語句和循環(huán)語句,在需要處理大量同類數(shù)據(jù)時,這樣就使程序書寫更加簡潔。程序使用了布爾函數(shù)。選擇語句多采用if多分支選擇結(jié)構(gòu)與switch語句。首先計算switch表達(dá)式,然后在caes子句中尋找值相等的常量表達(dá)式,并以此為入口符號,由此開始順序執(zhí)行。循環(huán)語句采用了fo
13、r語句等、do-while語句,for語句用于已知循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),括號中的三個量分別用來表示循環(huán)變量初值、循環(huán)終值和循環(huán)增量。do-while語句先循環(huán)后判斷, Break語句在switch語句中,保證多分支情況的正確執(zhí)行,在循環(huán)語句中,強制終止本層循環(huán)。保存和讀取函數(shù)是典型的函數(shù)功能,一個程序是由若干個函數(shù)組成的,保存和讀取函數(shù)是和其他函數(shù)互相調(diào)用的。</p><p><b> 3 詳細(xì)設(shè)計&l
14、t;/b></p><p> 3.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計</p><p> struct xueke</p><p> {char xueke_name[50];</p><p> int people_num;</p><p><b> };</b></p><p
15、> 這是定義了一個xueke結(jié)構(gòu)體,用來存放一個學(xué)科名及其相應(yīng)的曠課人數(shù);</p><p> struct student</p><p> {char name[50];</p><p> long time;</p><p> int lesson_time;</p><p> char les
16、son_name[50];</p><p> int chidao_num;</p><p> int zaotui_num;</p><p> int qingjia_num;</p><p> int kuangke_num;</p><p> struct student *next;</p>
17、;<p> };這是定義了一個student的結(jié)構(gòu)體,用來存放一個學(xué)生的考勤記錄,</p><p> 其中有,字符數(shù)組name[50],lesson_name[50],分別存放學(xué)生名字,</p><p> 缺課課程名字;int型變量lesson_time,chidao_num,zaotui_num,qingjia_num,
18、 kuangke_num,分別來存放,缺課節(jié)次,遲到次數(shù),早退次數(shù),請假次數(shù),曠課次數(shù) long型變量time,記錄時間。</p><p> 3.2 主模塊設(shè)計</p><p> 3.2.1建立學(xué)生缺課記錄子模塊</p><p> 要建立的學(xué)生人數(shù),學(xué)生基本信息(包括缺課時間、學(xué)生姓名、課程名稱、節(jié)次、遲到次數(shù)、早退次數(shù)、請假次數(shù)、曠課次
19、數(shù))可用creat()函數(shù)如圖1.</p><p><b> 圖1</b></p><p> 3.2.2修改學(xué)生缺課記錄子模塊</p><p> 根據(jù)要修改的學(xué)生姓名以及科目名稱找到相應(yīng)的信息,再選擇要修改的項目進行單項修改 如圖2</p><p><b> 圖2</b></p>
20、<p> 3.2.3修改學(xué)生缺課記錄子模塊</p><p> 根據(jù)人名可以查出該學(xué)生的所有缺課記錄 如圖3</p><p><b> 圖3</b></p><p> 3.2.4查看單科曠課記錄子模塊</p><p> 根據(jù)學(xué)科名稱和時間范圍查出所有在該范圍內(nèi)曠課的學(xué)生以及次數(shù) 如圖4</p&
21、gt;<p><b> 圖4</b></p><p> 3.2.5查看學(xué)生曠課記錄子模塊</p><p> 根據(jù)要查詢的學(xué)科名稱及時間段查出在改時間段內(nèi)該門課上曠課的人數(shù) 如圖5</p><p><b> 圖5</b></p><p> 3.2.6載入學(xué)生曠課記錄子模塊<
22、;/p><p> 可以載入實現(xiàn)儲存在當(dāng)前文件夾中txt文件中所儲存的數(shù)據(jù) 如圖6</p><p><b> 圖6</b></p><p> 3.2.7儲存學(xué)生曠課記錄子???lt;/p><p> 進入系統(tǒng)界面,順序的完成各項操作,進行數(shù)據(jù)的輸入,信息的保存調(diào)用相應(yīng)的函數(shù)打開相應(yīng)的地址,查詢各項信息。如圖7</p&g
23、t;<p><b> 圖7</b></p><p><b> 4. 運行結(jié)果</b></p><p><b> 4.1運行</b></p><p><b> 開始菜單</b></p><p><b> 圖1 開始菜單&
24、lt;/b></p><p><b> 主菜單</b></p><p><b> 圖2 主菜單</b></p><p> 1.建立學(xué)生缺課記錄</p><p> 圖2建立學(xué)生缺課記錄</p><p><b> 修改學(xué)生缺課紀(jì)錄</b>&
25、lt;/p><p> 圖3修改學(xué)生缺課記錄</p><p> 3.查詢學(xué)生缺課記錄</p><p> 圖4查詢學(xué)生缺課記錄</p><p> 4.查看單科曠課記錄</p><p> 圖5查看單科曠課記錄</p><p> 5.查看學(xué)生曠課記錄</p><p>
26、圖6查看學(xué)生曠課記錄</p><p> 6.載入學(xué)生曠課記錄</p><p> 圖7載入學(xué)生曠課記錄</p><p> 7. 儲存學(xué)生曠課記錄</p><p> 圖8儲存學(xué)生曠課記錄</p><p><b> 5. 課程設(shè)計總結(jié)</b></p><p> 課程設(shè)
27、計順利完成,題目所要求的功能也都一一實現(xiàn),可以對學(xué)生的缺課信息進行添加,修改,刪除以及查詢的顯示。不過這個程序還有些不夠完善,例如不能往當(dāng)前文件夾中的txt文件中添加記錄。</p><p><b> 結(jié)束語</b></p><p> 整個系統(tǒng)的設(shè)計過程對于我來說算是個學(xué)習(xí)、探索的過程,通過實踐和對比別人開發(fā)程序的過程。在整個設(shè)計過程中,出現(xiàn)過很多的問題,很多繁瑣的
28、東西都需要反復(fù)的修改,主要是前期工作不徹底,對系統(tǒng)的需求分析的要求認(rèn)識不夠清楚,使得在后邊的工作中不得不經(jīng)常反復(fù)去修改。使我體會到設(shè)置中每一步的重要性。所以在分析一個問題時,我們需要站在一個有遠(yuǎn)見的高度。</p><p> 通過此次設(shè)計,我不但對C++語言編程有了更深刻的認(rèn)識,積累了使用軟件工程的思想來開發(fā)軟件的經(jīng)驗,更重要的是學(xué)會了在對待問題時應(yīng)該考慮到哪些方面和怎么解決問題。</p><
29、p> 雖然時間緊迫但我學(xué)會了很多,也感到自身知識的貧乏,希望在日后的努力中能做出更完善的系統(tǒng)。</p><p><b> 參考文獻</b></p><p><b> 附錄:源代碼</b></p><p> #include<cstdio></p><p> #includ
30、e<iostream></p><p> #include<malloc.h></p><p> #include<cstring></p><p> #include<iomanip></p><p> #define NULL 0</p><p> #def
31、ine guding 10</p><p> #define LEN sizeof(struct student)</p><p> using namespace std;</p><p> int student_num;</p><p> FILE *fp1;</p><p> struct xueke
32、</p><p> {char xueke_name[50];</p><p> int people_num;</p><p><b> };</b></p><p> struct student</p><p> {char name[50];</p><p&
33、gt; long time;</p><p> int lesson_time;</p><p> char lesson_name[50];</p><p> int chidao_num;</p><p> int zaotui_num;</p><p> int qingjia_num;</p&
34、gt;<p> int kuangke_num;</p><p> struct student *next;</p><p><b> };</b></p><p> void chaxun(struct student *head)</p><p><b> {int i;<
35、/b></p><p> char chaxun_name[50];</p><p> cout<<"請輸入要查詢的人名:";</p><p> cin>>chaxun_name;</p><p> struct student *p;</p><p> if
36、(head==NULL)</p><p> cout<<"聯(lián)系人為空";</p><p><b> p=head;</b></p><p> for(i=0;i<student_num;i++)</p><p> {if(strcmp(chaxun_name,p->na
37、me)==0)</p><p> {cout<<"缺課時間:"<<p->time<<" 學(xué)生姓名:"<<p->name<<" 課程名稱:"<<p->lesson_name<<" 節(jié)次:"<<p
38、->lesson_time<<endl</p><p> <<"遲到次數(shù):"<<p->chidao_num<<" 早退次數(shù):"<<p->zaotui_num<<" 請假次數(shù):"<<p->qingjia_n
39、um<<" 曠課次數(shù):"<<p->kuangke_num<<endl;</p><p><b> }</b></p><p> p=p->next; }</p><p><b> }</b></p><p> st
40、ruct student *xiugai(struct student *head)</p><p> {char xiugai_name[50];</p><p> char xiugai_xueke_name[50];</p><p><b> int k;</b></p><p> cout<<
41、"請輸入要修改的學(xué)生姓名與學(xué)科名稱【格式:學(xué)生姓名(空格)學(xué)科名稱】:";</p><p> cin>>xiugai_name>>xiugai_xueke_name;</p><p> struct student *p1,*p2; </p><p> p2=(struct student *)malloc(LEN)
42、;</p><p><b> p1=head;</b></p><p> if(head==NULL)</p><p> {cout<<"沒有學(xué)生信息\n";</p><p> return head; }</p><p> while((strcmp(x
43、iugai_name,p1->name)!=0||strcmp(xiugai_xueke_name,p1->lesson_name)!=0)&&(p1->next!=NULL))</p><p> p1=p1->next;</p><p> if(strcmp(xiugai_name,p1->name)==0&&strcmp
44、(xiugai_xueke_name,p1->lesson_name)==0)</p><p> { cout<<"==================================== 修改信息 =================================\n"; </p><p> cout<<"
45、 1-修改缺課時間 \n";</p><p> cout<<" 2-修改學(xué)生姓名 \n";</p><p> cout<<"
46、 3-修改課程名稱 \n";</p><p> cout<<" 4-修改第幾節(jié)缺課 \n";</p><p> cout<<"
47、 5-修改遲到次數(shù) \n";</p><p> cout<<" 6-修改早退次數(shù) \n";</p><p> cout<<"
48、 7-修改請假次數(shù) \n";</p><p> cout<<" 8-修改曠課次數(shù) \n\n";</p><p> cout<<"=====================================
49、===========================================\n";</p><p><b> cin>>k;</b></p><p><b> switch(k)</b></p><p><b> {case 1:</b></p>
50、<p> cout<<"請輸入新的缺課時間:";</p><p> cin>>p1->time;</p><p><b> break;</b></p><p><b> case 2:</b></p><p> cout<
51、<"請輸入新的學(xué)生姓名:";</p><p> cin>>p1->name;</p><p><b> break;</b></p><p><b> case 3:</b></p><p> cout<<"請輸入新的課程名稱
52、:";</p><p> cin>>p1->lesson_name;</p><p><b> break;</b></p><p><b> case 4:</b></p><p> cout<<"請輸入新的缺課節(jié)次:";<
53、/p><p> cin>>p1->lesson_time;</p><p><b> break;</b></p><p><b> case 5:</b></p><p> cout<<"請輸入新的遲到次數(shù):";</p><
54、p> cin>>p1->chidao_num;</p><p><b> break;</b></p><p><b> case 6:</b></p><p> cout<<"請輸入新的早退次數(shù):";</p><p> cin>
55、;>p1->zaotui_num;</p><p><b> break;</b></p><p><b> case 7:</b></p><p> cout<<"請輸入新的請假次數(shù):";</p><p> cin>>p1->q
56、ingjia_num;</p><p><b> break;</b></p><p><b> case 8:</b></p><p> cout<<"請輸入新的曠課次數(shù):";</p><p> cin>>p1->kuangke_num;&
57、lt;/p><p><b> break; }</b></p><p><b> }</b></p><p> return head;</p><p><b> }</b></p><p> struct student *creat()<
58、/p><p><b> {</b></p><p><b> int i,b;</b></p><p> struct student *head,*p1,*p2; </p><p> cout<<"請輸入要建立資料的學(xué)生人數(shù):";</p>
59、<p><b> cin>>b;</b></p><p> head=p2=NULL;</p><p> p1=(struct student *)malloc(LEN);</p><p> cout<<"【輸入格式:缺課時間(空格)學(xué)生姓名(空格)課程名稱(空格)第幾節(jié)(空格)遲到次數(shù)(空
60、格)早退次數(shù)(空格)請假次數(shù)(空格)曠課次數(shù)】\n";</p><p> cout<<"請輸入第1名學(xué)生信息:";</p><p> cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1-&g
61、t;chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num;</p><p><b> head=p1;</b></p><p><b> p2=p1;</b></p><p> student_n
62、um+=1;</p><p> for(i=1;i<b;i++)</p><p><b> {</b></p><p> p1=(struct student*)malloc(LEN);</p><p> cout<<"請輸入第"<<i+1<<&quo
63、t;名學(xué)生信息:";</p><p> cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1-&g
64、t;kuangke_num;</p><p> p2->next=p1;</p><p><b> p2=p1;</b></p><p> student_num+=1;</p><p><b> }</b></p><p> p2->next=NULL
65、; </p><p> return head;</p><p><b> }</b></p><p> void print(struct student *head)</p><p> {struct student *p;</p><p><b> p=head
66、;</b></p><p> if(p==NULL)</p><p> cout<<"沒有學(xué)生信息\n";</p><p> while(p!=NULL)</p><p> { cout<<"缺課時間:"<<p->time<<
67、;" 學(xué)生姓名:"<<setw(10)<<p->name<<" 課程名稱:"<<p->lesson_name<<" 節(jié)次:"<<p->lesson_time<<endl</p><p> <<"遲到次數(shù)
68、:"<<p->chidao_num<<" 早退次數(shù):"<<p->zaotui_num<<" 請假次數(shù):"<<p->qingjia_num<<" 曠課次數(shù):"<<p->kuangke_num<<endl
69、;</p><p> p=p->next;}</p><p><b> }</b></p><p> struct student *tongji_lesson(struct student *head)</p><p> {struct student *p1,*p2,*p3;</p>
70、<p> char lesson[50];</p><p> long look_time1,look_time2;</p><p> int xunhuan_num=0;</p><p> p3=(struct student *)malloc(LEN);</p><p> if(head==NULL)</p>
71、;<p> {cout<<"沒有學(xué)生信息";</p><p> return(head); }</p><p><b> p1=head;</b></p><p> p2=p1->next;</p><p> while(xunhuan_num<stud
72、ent_num)</p><p> {while(p2!=NULL)</p><p><b> {</b></p><p> if(p2->kuangke_num>p1->kuangke_num)</p><p><b> {</b></p><p>
73、; p3->chidao_num=p2->chidao_num;</p><p> p3->kuangke_num=p2->kuangke_num;</p><p> p3->qingjia_num=p2->qingjia_num;</p><p> p3->zaotui_num=p2->zaotui_num;
74、</p><p> p3->lesson_time=p2->lesson_time;</p><p> p3->time=p2->time;</p><p> strcpy(p3->lesson_name,p2->lesson_name);</p><p> strcpy(p3->name,p
75、2->name);</p><p> p2->chidao_num=p1->chidao_num;</p><p> p2->kuangke_num=p1->kuangke_num;</p><p> p2->qingjia_num=p1->qingjia_num;</p><p> p2-&
76、gt;zaotui_num=p1->zaotui_num;</p><p> p2->lesson_time=p1->lesson_time;</p><p> p2->time=p1->time;</p><p> strcpy(p2->lesson_name,p1->lesson_name);</p>
77、<p> strcpy(p2->name,p1->name);</p><p> p1->chidao_num=p3->chidao_num;</p><p> p1->kuangke_num=p3->kuangke_num;</p><p> p1->qingjia_num=p3->qingjia
78、_num;</p><p> p1->zaotui_num=p3->zaotui_num;</p><p> p1->lesson_time=p3->lesson_time;</p><p> p1->time=p3->time;</p><p> strcpy(p1->lesson_name
79、,p3->lesson_name);</p><p> strcpy(p1->name,p3->name);</p><p><b> }</b></p><p><b> p1=p2;</b></p><p> p2=p2->next;</p><
80、;p><b> }</b></p><p><b> p1=head;</b></p><p> p2=p1->next;</p><p> xunhuan_num++;</p><p><b> }</b></p><p> c
81、out<<"請輸入要查看的學(xué)科名稱:";</p><p> cin>>lesson;</p><p> cout<<"請輸入要查看的時間范圍【輸入格式:時間(空格)時間】";</p><p> cin>>look_time1>>look_time2;</p
82、><p> p1=head; </p><p> while(p1!=NULL)</p><p> {if(strcmp(lesson,p1->lesson_name)==0&&look_time1<=p1->time&&p1->time<=look_time2)</p><p&
83、gt; cout<<"學(xué)生姓名:"<<p1->name<<" 曠課次數(shù):"<<p1->kuangke_num<<endl;</p><p> p1=p1->next; }</p><p> return head;</p><p>&l
84、t;b> }</b></p><p> struct student *tongji_student(struct student *head)</p><p> { struct xueke a[10];</p><p> int n,i,j,zhongjian;</p><p> struct stude
85、nt *p1;</p><p> char zhongjian_name[50];</p><p> long look_time1,look_time2;</p><p> if(head==NULL)</p><p> {cout<<"沒有學(xué)生信息\n";</p><p>
86、 return head; </p><p><b> }</b></p><p> cout<<"請輸入一共的學(xué)科數(shù):";</p><p><b> cin>>n;</b></p><p> for(i=0;i<n;i++)</p&g
87、t;<p> {cout<<"請輸入第"<<i+1<<"個學(xué)科名稱:";</p><p> cin>>a[i].xueke_name;</p><p> a[i].people_num=0; </p><p><b> }</b><
88、;/p><p> cout<<"請輸入要查看的時間范圍由小到大【輸入格式:時間(空格)時間】";</p><p> cin>>look_time1>>look_time2;</p><p><b> p1=head;</b></p><p> for(i=0;i
89、<n;i++)</p><p> {while(p1!=NULL&&look_time1<=p1->time&&p1->time<=look_time2)</p><p> {if(a[i].xueke_name==p1->lesson_name)</p><p> a[i].people_n
90、um+=p1->kuangke_num;</p><p> p1=p1->next;}</p><p><b> p1=head; </b></p><p><b> }</b></p><p> for(j=0;j<n-1;j++)
91、 </p><p> for(i=0;i<n-1-j;i++)</p><p> {if(a[i].people_num<a[i+1].people_num)</p><p> {zhongjian=a[i+1].people_num;</p><p> a[i+1
92、].people_num=a[i].people_num;</p><p> a[i].people_num=zhongjian;</p><p> strcpy(zhongjian_name,a[i+1].xueke_name);</p><p> strcpy(a[i+1].xueke_name,a[i].xueke_name);</p>&
93、lt;p> strcpy(a[i].xueke_name,zhongjian_name);}</p><p> else if(a[i].people_num==a[i+1].people_num&&strcmp(a[i].xueke_name,a[i+1].xueke_name)>0)</p><p> { zhongjian=a[i+1].
94、people_num;</p><p> a[i+1].people_num=a[i].people_num;</p><p> a[i].people_num=zhongjian;</p><p> strcpy(zhongjian_name,a[i+1].xueke_name);</p><p> strcpy(a[i+1].xu
95、eke_name,a[i].xueke_name);</p><p> strcpy(a[i].xueke_name,zhongjian_name);}</p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p> {cout<<"學(xué)科名稱
96、:"<<a[i].xueke_name<<" 曠課次數(shù):"<<a[i].people_num<<endl;</p><p> return head;}</p><p> return head;</p><p><b> }</b></p>&l
97、t;p> struct student *zairu()</p><p> {struct student *p1=NULL,*p2=NULL,*head=NULL;</p><p> struct student student_ziliao[100];</p><p> int i=0,n=0;</p><p> if((
98、fp1=fopen("xueshengziliao.txt","rb+"))==NULL)</p><p> { printf("cannot open file\n");</p><p> return(head); } </p><p> while(!feof(fp1))</p>
99、<p> {if(fread(&student_ziliao[i],LEN,1,fp1)!=1)</p><p> {if(feof(fp1))</p><p> {fclose(fp1); </p><p><b> break; }</b></p><p> printf("f
100、ile read error\n");}</p><p><b> i++;</b></p><p><b> }</b></p><p><b> n=i;</b></p><p> student_num=n;</p><p>
101、p1=p2=(struct student *)malloc(LEN);</p><p><b> head=p1;</b></p><p> for(i=0;i<n;i++)</p><p> {p1->chidao_num=student_ziliao[i].chidao_num;</p><p>
102、; p1->kuangke_num=student_ziliao[i].kuangke_num;</p><p> strcpy(p1->lesson_name,student_ziliao[i].lesson_name);</p><p> p1->lesson_time=student_ziliao[i].lesson_time;</p><
103、p> strcpy(p1->name,student_ziliao[i].name);</p><p> p1->qingjia_num=student_ziliao[i].qingjia_num;</p><p> p1->time=student_ziliao[i].time;</p><p> p1->zaotui_num
104、=student_ziliao[i].zaotui_num;</p><p> p2->next=p1;</p><p><b> p2=p1;</b></p><p> p1=(struct student*)malloc(LEN); }</p><p> p2->next=NULL;</p&
105、gt;<p> return(head);</p><p><b> }</b></p><p> void chucun(struct student *head)</p><p> {struct student *p1;</p><p><b> p1=head;</b&g
106、t;</p><p> fp1=fopen("xueshengziliao.txt","wb+");</p><p> while(p1!=NULL)</p><p> {fwrite(p1,LEN,1,fp1);</p><p> p1=p1->next; }</p>&l
107、t;p> fclose(fp1);</p><p> cout<<" 儲存成功\n";</p><p><b> }</b></p><p> void main()</p><p><b> {</b></
108、p><p> struct student *head;</p><p> int a,b,c;</p><p> zhuye: cout<<"$$$$$$$$$$$$$$$$$$$$$$ 歡迎使用學(xué)生考勤管理系統(tǒng) V1.0.0 $$$$$$$$$$$$$$$$$$\n"; </p><p>
109、; cout<<" 1_進入管理\n\n\n";</p><p> cout<<" 2_查看系統(tǒng)相關(guān)信息\n\n\n";</p><p> cout<<"$$$$$$$$$$$$$$$
110、$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n\n\n\n\n";</p><p><b> cin>>a;</b></p><p><b> if(a==1)</b></p><p><b> {
111、</b></p><p><b> do</b></p><p> { cout<<"********************************************************************************\n";</p><p> cout<&
112、lt;" 1_建立學(xué)生缺課記錄\n";</p><p> cout<<" 2_修改學(xué)生缺課記錄\n";</p><p> cout<<"
113、 3_查詢學(xué)生缺課記錄\n";</p><p> cout<<" 4_查看單科曠課記錄\n";</p><p> cout<<" 5_查看學(xué)生曠課記錄\n";</p>
114、<p> cout<<" 6_載入學(xué)生曠課記錄\n";</p><p> cout<<" 7_儲存學(xué)生曠課記錄\n";</p><p> cout<<"
115、 8_退出考勤管理程序\n";</p><p> cout<<"********************************************************************************\n";</p><p><b> cin>>b;&
116、lt;/b></p><p><b> switch(b)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> head=creat();</p><p> print(hea
117、d);</p><p><b> break;</b></p><p><b> case 2:</b></p><p> head=xiugai(head);</p><p> print(head);</p><p><b> break;</b
118、></p><p><b> case 3:</b></p><p> chaxun(head);</p><p><b> break;</b></p><p><b> case 4:</b></p><p> head=tongji
119、_lesson(head);</p><p><b> break;</b></p><p><b> case 5:</b></p><p> head=tongji_student(head);</p><p><b> break;</b></p>
120、<p><b> case 6:</b></p><p> head=zairu();print(head);</p><p><b> break;</b></p><p><b> case 7:</b></p><p> chucun(head);&l
121、t;/p><p><b> break;}</b></p><p> }while(b!=8);</p><p><b> }</b></p><p><b> else </b></p><p> {cout<<"*****
122、*************************本系統(tǒng)版權(quán)歸喻思遠(yuǎn)個人所有!***********************\n";</p><p> cout<<"******************************請聯(lián)系我:tel:18799760125,QQ:1010582011***********\n";</p><p> c
123、out<<"******************************返回主頁請按1*************************************\n";</p><p><b> cin>>c;</b></p><p><b> if(c==1)</b></p><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生考勤管理系統(tǒng)課程設(shè)計報告1
- 學(xué)生考勤系統(tǒng)設(shè)計課程設(shè)計報告
- 學(xué)生考勤管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計-學(xué)生考勤管理系統(tǒng)
- 課程設(shè)計---考勤管理系統(tǒng)報告書
- 考勤管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計報告-學(xué)生考勤管理系統(tǒng)的設(shè)計與實現(xiàn)
- 考勤管理課程設(shè)計報告
- 學(xué)生考勤系統(tǒng)c語言課程設(shè)計
- c語言課程設(shè)計學(xué)生考勤系統(tǒng)
- c語言課程設(shè)計學(xué)生考勤系統(tǒng)
- 《學(xué)生管理系統(tǒng)》課程設(shè)計報告
- 學(xué)生管理系統(tǒng)課程設(shè)計報告
- 學(xué)生管理系統(tǒng)課程設(shè)計報告
- 職工考勤管理信息系統(tǒng)-課程設(shè)計報告
- 職工考勤管理信息系統(tǒng)-課程設(shè)計報告
- 數(shù)據(jù)庫課程設(shè)計---學(xué)生考勤系統(tǒng)
- ic卡考勤管理系統(tǒng)課程設(shè)計
- 學(xué)生選課管理系統(tǒng)課程設(shè)計報告
- java課程設(shè)計報告學(xué)生管理系統(tǒng)
評論
0/150
提交評論