程序設計基礎課程設計報告_第1頁
程序設計基礎課程設計報告_第2頁
程序設計基礎課程設計報告_第3頁
程序設計基礎課程設計報告_第4頁
程序設計基礎課程設計報告_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

程序設計基礎課程設計報告i國5%挈俄課程設計(大作業(yè))報告課程名稱:程序設計基礎 設計題目:學生成績記錄薄設計院系:信息技術學院 一班級:設計者: 學號: 指導教師: 設計時間:2013?78,-2013.7?13信息技術學院昆明學院課程設計(大作業(yè))任務書院(系):信息技術學院專業(yè):計算機科學與技術號:任務起止日期:2013.7.8-2013.7.13課程設計題目:學生成績記錄薄設計I課程設計要求:(1)通過課程設計,進一步掌握C語言的語法結構,基本流程,更加深入和全面理解所學的基本概念、基本原理和基本方法。(2)獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛煉學生的分析解決實際問題的能力。提高程序編制、程序調(diào)試及綜合應用的能力(3)明確課程設計的目的,通過布置具有一定難度的,能綜合運用所學知識的程序設計題目。(4)程序設計經(jīng)過需求分析,明確程序設計題目要求,進行合理的設計,編碼階段編出的程序易讀、易懂并具有良好的交互性,界面清晰。測試階段應指導學生編寫測試用例,盡量多地找出程序中的錯誤,進行調(diào)試。工作計劃及安排: 第一天的,兩個人合作選定題目,建立起程序的構思圖形,了解題目意思,確立程序的方向,并且查閱一些資料開始構建程序。第二天,兩人商量分工合作,確定誰寫那段函數(shù),并且在總體思路的框架下,逐步寫程序,并確保證程序無誤。第三天,將小程序合并,進行調(diào)試,對里面出現(xiàn)的問題協(xié)商合作共同解決。第四天,開始寫實驗報告,對每次失敗原因進行總結,并且整合兩人思想纂寫報告。第五天,實訓課也接近尾聲,和班上的同學交流心得體會。指導教師簽字 2013年7月8日課程設計(大作業(yè))成績姓名指導教師:姓名指導教師:課程設計題目:學生成績記錄薄設計總結通過一周C語言課程設計,不僅增加了我對C語言學習的興趣,還讓我對C語言有了更深的了解。在這次的實訓中,我們通過自己動手查找資料,并自己設計程序,還上機運行驗證我們的程序。雖然在上機調(diào)試過程中,我遇到了很多的困難,(比如:很難理解一些邏輯思維上的東西)但通過自己不斷的重新理解和修正,還是成功的完成了程序的設計。那種喜悅感難以用言語來表達,這讓我感覺到學習也可以是快樂的。在這次設計我不單單學習到了C語言的知識,也學到了許多計算機應用基礎知識,對計算機的機體也有了一個大體的了解。有許多知識,光靠老師上課所講的和自己看書得到的,還遠遠不夠,C語言主要是通過上機來熟悉并且運用的,這次的實訓課讓我深刻的明白了這一點。所以在以后的學習生活中,我要經(jīng)常寫程序并上機進行調(diào)試,不斷從中學習新的知識。還有一點就是:不懂就問。遇到難題實在解決不了的,問老師同學,和同學共同討論,有合作精神也是很重要的。希望以后還有更多的實訓機會,讓我得到鍛煉。指導教師評語成績填表時間: 指導教師簽名學生成績記錄薄設計一、課程設計目的與要求.課程設計目的(1)綜合運用之前所學知識(選擇控制,循環(huán)控制,數(shù)組,函數(shù),指針,結構體和文件等)來完成一個簡單的信息管理程序的設計。(2)充分體現(xiàn)和體會函數(shù)在程序設計中的必要性和實用性,并反映主函數(shù)main()在程序設計中的實現(xiàn)思路和方法。.課程設計要求設計一個簡易學生成績記錄簿設計,其中包括:姓名,學號,C語言成績;具體功能:

績;系統(tǒng)以菜單方式工作績;創(chuàng)建學生成績信息并以磁盤文件保存;讀取磁盤文件并顯示輸出所有學生的成查詢學生成績(1)按學號查詢成績查詢學生成績盤;添加成績記錄;修改指定姓名或學號的學生的成績并可存顯示輸出60分以下、盤;添加成績記錄;修改指定姓名或學號的學生的成績并可存顯示輸出60分以下、60~79、80~89、90分以上各分數(shù)段的學生信息。二、總體設計根據(jù)系統(tǒng)的要求,系統(tǒng)總體設計如圖1所示。

三、詳細設計1、數(shù)據(jù)結構設計#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>intn=4;structstudentintnum;/*intnum;/*學號*/charname[10];/*姓名*/floatscore[3];/*成績*/}2.函數(shù)說明1.主函數(shù)1.主函數(shù)main()允許用戶通過菜單進行功能選擇,使用相應的功能代碼來調(diào)用對應的函數(shù)功能。2.其他部分功能函數(shù)包括(1)將學生成績信息保存為文件voidsave();算法思想:①定義指向文件的指針變量;

②輸入保存路徑及文件名,打開文件,若不能打開文件給出提示信息;③將存有學生成績信息的結構體數(shù)組信息依次保存到文件中。(2)學生成績信息錄入函數(shù)voidinput()算法思想:①依次錄入結構體數(shù)組中所包含的各個成員;②直到輸入的結構體成員中信息為4,數(shù)據(jù)輸入結束;③返回實際錄入的學生成績信息數(shù)。(3)從文件中讀出學生成績信息voidoutput();算法思想:①定義指向結構體變量的指針和指向文件的指針;②輸入文件的路徑,打開文件,若不能打開文件給出提示信息;③將文件中的信息依次讀出,:后結構體的指③將文件中的信息依次讀出,:后結構體的指針為NULL。3.函數(shù)設計(1)主菜單函數(shù)main()功能:函數(shù)返回值為整數(shù),代表所選的菜單項intmain()printf("小?可可不否可可下?可可不否可可下?可可不否可可下?可可不否可可下?可可不否可可下****************\n");printf("§\n");printf("§<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>§\n");printf("§ >>歡迎進入學生成績記錄系統(tǒng)<< §\n");printf("§>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<§\n");printf(" §§w”);printf("§【1】 創(chuàng)建學生成績信息 §\n");

printf("顯示所§\n");printf("§【2】 顯示所有學生成績信息 §\n");printf("§§\n");添加學printf("§【3】 添加學生成績信息 §\n");printf("查詢學§\n");printf("§【4】 查詢學生成績信息 §\n");printf("§\n");TOC\o"1-5"\h\zprintf("§【5】 修改學生的信息 §\n");printf(" §§\n");printf("§【6】 按分數(shù)段顯示學生的信息 §\n");printf(" §§\n");printf("§【0】 退出 §\n");printf("§\n");printf("至布布至.下布否至布不至.下布否至布不至.下布否至布不至.下布否至布不至.可不否下****************\n");printf("請輸入相應菜單編號:”);}(2)我負責編寫的程序A.添加學生信息voidAddstudent(){FILE*fp;structstudents;fp=fopen("stu.dat","ab");if((fp=fopen("stu.dat","ab"))==NULL)printf("Fileopenerror!\n");elseprintf(”請輸入所增加學生的學號姓名c語言成績:\n");scanf("%d",&s.num);scanf("%s",);scanf("%f",&s.score[0]);fwrite(&s,sizeof(structstudent),1,fp);fclose(fp);/*關閉文件*/}printf("寫入成功!\n");}//endfunctionAddstudent;B.修改學生成績voidmodify()intnumber,i;printf("請輸入要修改信息的學生學號:");scanf("%d",&number);for(i=0;i<n;i++)if(number==stud[i].num)break;/*查找判斷*/if(i<n)/*查找判斷*/

printf("請輸入修改后的學生的信息:”);printf("\n請輸入學生的c語言成績:”);scanf("%f",&stud[i].score[0]);save();}elseprinf("沒找到該學生的信息\n");system("paues");system("cls");C.查詢學生成績voidnamecheck(void);voidscorecheck(void);voidsearchmenu(){printf("*****歡迎進入學生成績查詢系統(tǒng)\n");printf("*\n");printf("*\n");printf("*printf("*\n");printf("*\n");printf("*按姓名查詢成績2 按學號查詢成績3 返回上一層\n");printf("* 4 退出\n");printf("至布布至.下布否至布不至.下布否至布不至.下布否至布不至.下布否否布布至.\n");printf("請輸入相應菜單編號printf("請輸入相應菜單編號:");intm;scanf("%d",&m);switch(m)namecheck();printf("\n");system("PAUSE");system("CLS");break;scorecheck();printf("\n");system("PAUSE");system("CLS");break;main();break;exit(0);break;}}voidnamecheck()charname[10];printf("按照姓名查詢請按\n");printf("\n請輸入姓名:");scanf("%s",&name);printf("查詢結果\n");printf("學號姓名c語言成績\n");if(strcpy(stud[i].name,name))printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}voidscorecheck()

intb;printf("按照學號查詢請按5");printf("\n請輸入學號:");scanf("%d",&b);printf("查詢結果\n");printf("學號printf("學號姓名c語言成績\n");for(i=0;i<n;i++)if(stud[i].num==b){printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}}

四、程序清單和執(zhí)行結果.頭文件#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>intn=4;structstudentintnum; /*學號*/charname[10];/*charname[10];/*姓名*/floatscore[3];/*成績*//******floatscore[3];/*成績*//******以下是函數(shù)原型*******/voidsave(void);voidinput(void);voidoutput(void);voidmodify。;voidsearchmenu(void);voidnamecheck(void);voidoutput(void);voidmodify。;voidsearchmenu(void);voidnamecheck(void);/*修改信息*//*查詢信息*//*按姓名查詢*/voidscorecheck(void);voidAddstudent();voidsclsearch();示voidscorecheck(void);voidAddstudent();voidsclsearch();示*//*按學號查詢*//*添加信息*//*成績按分數(shù)段顯.函數(shù)源程序代碼與運行結果[1]函數(shù)源程序代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>intn=4;structstudent{intnum;charname[10];floatscore[3];}stud[100];inti,choose,a,t=0;longintnum;intmain()voidsave(void);voidinput(void);voidoutput(void);voidmodify();voidsearchmenu(void);voidAddstudent();voidsclsearch();while(1)printf("****************\n");printf(" §§\n");printf("§<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>§\n");printf("§ >>歡迎進入學生成績記錄系統(tǒng)<< §\n");printf("

§?>????????????<?<??<<<<<<<<<<<<<<<<<<<§\nn);printf(n§W”);創(chuàng)建printf(n§[1] 創(chuàng)建學生成績信息§W”);顯示printf(n顯示printf(H§[2] 所有學生成績信息 §\n”);printf(n§\曖);添加printf(n§【3】 添加學生成績信息§W”);printf(n查詢printf(H§【4】 查詢學生成績信息 §W”);printf(n§\nn);printf(H§[5] 修改學生的信息§\n改學生的信息§\nn);printf("§\n");按分printf("§【6】 按分數(shù)段顯示學生的信息§\n");printf("§\n");出printf("出printf("§\n");printf("printf("§【0】 §\n");小?可可不否可可下?可可不否可可下?可可不否可可下?可可不否可可下?可可不否可可下****************\n");printf("請輸入相應菜單編號:”);scanf("%d",&a);switch(a)input();save();break;output();printf("\n");system("PAUSE");system("CLS");break;Addstudent();printf("\n");system("PAUSE");system("CLS");break;searchmenu();printf("\n");system("PAUSE");system("CLS");break;modify。;printf("\n");system("PAUSE");system("CLS");break;sclsearch();printf("\n");system("PAUSE");system("CLS");break;case0:exit(0);default:;}}return0;}voidsave(){FILE*fp;if((fp=fopen("stu.dat","wb"))==NULL)/*以只寫的方式打開文件*/printf("無法打開文件!\n");return;}for(i=0;i<n;i++)if(fwrite(&stud[i],sizeof(structstudent),1fp)!=1)/*寫入字節(jié)為1的信息在文件中*/prinf("文件寫入錯誤!\n");fclose(fp);/*關閉文件*/}void1叫口式)〃錄入學生成績{inti;chara;for(i=0;i<n;i++){printf("\n 請輸入學生成績信息:\n");printf("\n請依次輸入學號、姓名、c語言成績:\n");scanf("%d%s%f",&stud[i].num,stud[i].name,&stud[i].score[0]);printf("輸入:y(繼續(xù)),n(終止)!\n");fflush(stdin);scanf("%c",&a);if(a=='n'IIa=='N')break;}n=i+1;}voidAddstudent()FILE*fp;structstudents;fp=fopen("stu.dat","ab");if((fp=fopen("stu.dat","ab"))==NULL)printf("Fileopenerror!\n");elseprintf(”請輸入所增加學生的學號姓名c語言成績:\n");scanf("%d",&s.num);scanf("%s",);scanf("%f",&s.score[0]);fwrite(&s,sizeof(structstudent),1,fp);fclose(fp);/*關閉文件*/}printf("寫入成功!\n");}//endfunctionAddstudent;voidoutput(){inti;//floats;FILE*fp;if((fp=fopen("stu.dat","rb"))==NULL){printf("cannotopenfile\n");exit(0);}printf("\n學號姓名c語言成績\n");for(i=0;fread(&stud[i],sizeof(structstudent),1即)==1;i++){printf("%d %10s %10.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}fclose(fp);n=i;}voidmodify()intnumber』;printf("請輸入要修改信息的學生學號:");scanf("%d",&number);for(i=0;i<n;i++)if(number==stud[i].num)break;/*查找判斷*/if(i<n)/*查找判斷*/printf("請輸入修改后的學生的信息:”);printf("\n請輸入學生的c語言成績:");

scanf("%f",&stud[i].score[0]);save();}elseprintf("沒找到該學生的信息\n");system("paues");system("cls");}voidnamecheck(void);voidscorecheck(void);voidsearchmenu(){printf("*****歡迎進入學生成績查詢系統(tǒng)******\n");printf("*\n");printf("*******\n");printf("*\n");printf("*\n");printf("*\n");printf("*\n");按姓名查詢成績按學號查詢成績返回上一層printf("<j^ <^> <j^ <^>至布布至.下布否至布不至.下布否至布不至.下布否至布不至.下布否否布布至.\n");printf("請輸入相應菜單編號:”);intm;scanf("%d",&m);switch(m){namecheck();printf("\n");system("PAUSE");system("CLS");break;scorecheck();printf("\n");system("PAUSE");system("CLS");break;main();break;exit(0);break;}voidnamecheck()charname[10];printf("\n請輸入姓名charname[10];printf("\n請輸入姓名:");scanf("%s",&name);printf("查詢結果\n");printf("學號printf("學號姓名c語言成績\n");if(strcpy(stud[i].name,name))printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}voidscorecheck()intb;

intb;printf("\n請輸入學號:");scanf("%d",&b);printf("查詢結果\n");printf("學號printf("學號姓名c語言成績\n");for(i=0;i<n;i++)if(stud[i].num==b)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}}voidsclsearch()inti;printf("90分以上:\n");printf("學號printf("學號姓名c語言成績\n");for(i=0;i<n;i++)if(stud[i].score[0]>=90)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);printf("80~89:\n");printf("學號printf("學號姓名c語言成績\n");for(i=0;i<n;i++)if(stud[i].score[0]>=80&&stud[i].score[0]<90)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);printf("70~79:\n");printf("學號printf("學號姓名c語言成績,”);for(i=0;i<n;i++)if(stud[i].score[0]>=70&&stud[i].score[0]<80)

printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);printf("60~69:\n");printf("學號printf("學號姓名c語言成績\n");for(i=0;i<n;i++)if(stud[i].score[0]>=60&&stud[i].score[0]<70)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);printf("60分以下:\n");printf("學號printf("學號姓名c語言成績\n");for(i=0;i<n;i++)if(stud[i].score[0]<60)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);

}}(1)系統(tǒng)以菜單方式工作lC\Dehu.g\C.axe*?!蛴?gt;!由*奇*.':>..空.“口不.£'?!蛴?gt;!由*奇*.':>..空.“口不.£':<'*己*.由:<:由內(nèi)門£.盧£由;<;奇>!由*奇京電々“口電<??????????????>?????????????I >以迎進入學生成象正求系統(tǒng)?!?gt;>>>>>>>??>>>>>>>?>>>>>><<<<<<<<???<<<<<<<?<<<<I【1】 創(chuàng)建學生成績信息■【之】 顯示所有苧注成績,信息1【3】 添加學生成績信息I 專詢學生成績信息/ 15】 修改學注的信息| EG 技分數(shù)段顯示學三的信息S[?] ]艮出請輸入相應菜單編號二■(2)學生成績錄入aw'':.<仃.--.口aw'':.<仃.--.口.--.口.--.■■■■--■,.■■■■■--■.■■■■■--■.■■■■■--■.■■■■■--■.■■■■-.W<<<<<<<<<<<C<<<<<<<<<K<<<<<>->>>>>>>>>>>>>>>>>>>>>>>>>->>>>>玳迎迸入學生成績記錄事統(tǒng)《>》欽迎過入學上也項記示器疣燈>>>>>>>>>>>>>>>>>?>>>>>>>><<<<<<<<<<<<?<<<<<<<<<<<<<11_1 jpg-【2】 顯布所有苧生成薪,(§■息【3】 添加學生成績信息【3】 方詢學生成績信息IG 修改學生的"信息16】 按分數(shù)段顯于學生的信息[o] ]艮!"H請輸入相應菜單編號: 1請愉平生成親信啟;請依次輸入學號,姓名,『語言成績二11±56的人.股繼續(xù),Y冬止》,V詰愉入學生成親信息;〃依次輸入學號、姓名、匚語言成舜同1人:”陽知,Y冬止”話軸入學生成須伯息:標依次輸入學號、姓名、匚語言成壽□vang9t暢入:V〈繼竦),n〈蟀止X宿箱大寧生成防信,息:植恢次瑜入,平號一姓名、廠傳三球和-Im(3)顯示所有學生成績力卜,力卜,已門可學麗。>iuKU 囹」建學生成繳估息工力 顯示所有學在成績信息Ea] 添加竽生成績估息M 咨詢學生成績信息KS] 保險學生的伯總[61 按分數(shù)段顯示當先的宿生、Ei —————————————————————————— [I、!J<4吾言成績EG,0O.IEIO02.?自

(4)查詢學生成績按姓名查詢灰*D=\,C\De:biig\C_H3EE:_■_??????????<?????>????????????含?歡迎進入學生成績記錄壽統(tǒng)行>>>>>>??>>>>>???>>>>>><<<?<<<<<??<<<<<<<??<<LUlilfl倒建毛土成汨信息也1Tl方字1.由^信息添加學生成績佶息出:旬學生成寫信目、南應*I的信用[G][H]按分數(shù)段顯示學生的佶息退出LUlilfl倒建毛土成汨信息也1Tl方字1.由^信息添加學生成績佶息出:旬學生成寫信目、南應*I的信用[G][H]按分數(shù)段顯示學生的佶息退出I首II,文辿混人學士莊得r:黎學號查詢成亙叵_!_一房RIII按學號查詢

□\C\Detiiig:□\C\Detiiig:\C.?se*(5)修改學生成績5"?:\C\Det]ug\C.eke,<<<<<<??<<<<<?<<<<<<<<<<>?>>>>>>>??>>>>>>>?>>>>>>>〉就迎過入學生或兼元錄系統(tǒng)皴>>?>>???>>??????>????????<<?<???口】 創(chuàng)建學生成締信息【2】 顯不,斤有學件成績信息乜】 添力n學生成績信息14] 查詢學生成績信息15】 像改學生的信息16] 按分數(shù)段顯示學生的信息[□] i艮土! 蘭學號:2故后的苧注的信息:1?雙’后I也\ 運士:78(6)按分數(shù)段顯示學生成績Bis\C\Detiug\iCHaHe一就迎進入學生成績記錄系統(tǒng)《>>>>>>>>>>>>>>>>>?>>>>>>>><<<<<<<<

溫馨提示

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

評論

0/150

提交評論