武漢科技大學(xué) C課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng) 鏈表
《武漢科技大學(xué) C課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng) 鏈表》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《武漢科技大學(xué) C課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng) 鏈表(23頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 二○一二 ~二○一三 學(xué)年第 一 學(xué)期 電子技術(shù)學(xué)院 課程設(shè)計(jì)報(bào)告書(shū) 課程名稱(chēng): C程序課程設(shè)計(jì) 班 級(jí): 電信DB2011級(jí)1102班 學(xué) 號(hào): xxxxxxxxxxxxxxx 姓 名: xxxx 指導(dǎo)教師: xxxx 二○一二年 九 月 一、需求分析 1、題目二 學(xué)生成績(jī)管理程序 任務(wù):自學(xué)C語(yǔ)言中相
2、關(guān)知識(shí),設(shè)計(jì)出學(xué)生成績(jī)管理程序。要求如下所述: u 錄入學(xué)生信息,每位學(xué)生錄入的信息有:姓名、學(xué)號(hào)、性別、班級(jí)、和三門(mén)功課(數(shù)學(xué),英語(yǔ),計(jì)算機(jī))的成績(jī)。以文件(myfile.txt)的形式保存每個(gè)學(xué)生的所有信息。(實(shí)驗(yàn)中:假設(shè)3個(gè)班,每個(gè)班學(xué)生人數(shù)不得少于5人) 學(xué)號(hào) 姓名 性別 班級(jí) 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 1101 王鵬 男 1班 70 58 98 1102 李燕 女 2班 68 88 95 1103 趙亞芳 女 3班 58 48 96 u 增加學(xué)生記錄,并將增加的信息以文件的(
3、myfile.txt)的形式保存。 u 刪除學(xué)生記錄,以“學(xué)號(hào)”、“姓名”為關(guān)鍵字刪除記錄,若要?jiǎng)h除的記錄不存在,給出必要的提示信息; u 統(tǒng)計(jì)各班級(jí)學(xué)生每門(mén)課程的班級(jí)平均分,并由高到低排序。 u 按學(xué)號(hào)或者姓名查詢(xún)記錄并顯示其三門(mén)功課成績(jī); u 能瀏覽顯示全部學(xué)生成績(jī),若無(wú)記錄可以顯示,給出必要的提示信息; 2、系統(tǒng)功能需求分析 該程序中需要有存儲(chǔ)、讀取外部文件的命令實(shí)現(xiàn)將信息儲(chǔ)存于指定文件中。程序中需要有建立、修改鏈表的命令實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)鏈表存儲(chǔ)方式。程序還需要一系列的提示命令使程序的易用性提高。因?yàn)樾枰獙?duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)或查詢(xún)顯示,所以需要有對(duì)鏈表數(shù)據(jù)統(tǒng)計(jì)和對(duì)鏈表指定
4、數(shù)據(jù)進(jìn)行查找的功能。 二、概要設(shè)計(jì) 文件讀取模塊 數(shù)據(jù)保存模塊 成績(jī)對(duì)比模塊 數(shù)據(jù)顯示 模塊 數(shù)據(jù)查找模塊 數(shù)據(jù)刪除模塊 數(shù)據(jù)增加模塊 成績(jī)單建立模塊 學(xué)生成績(jī)管理程序 三、詳細(xì)設(shè)計(jì) 1、建立結(jié)構(gòu)體 struct student { int num; char name[10],sex[10]; int Class,math,english,computer; struct student * next; }; int n; 2、成績(jī)單建立模塊 開(kāi)始 struct student *head,*p
5、1,*p2; n=0; p1=p2=(struct student *)malloc(LEN); 輸入第一個(gè)學(xué)生的數(shù)據(jù) head=NULL; p1->num!=0 Y 鏈表指針向后移動(dòng) N 輸入一個(gè)學(xué)生的數(shù)據(jù) 輸入學(xué)號(hào)為“0” Y
6、 N p2->next=NULL; return(head); 結(jié)束 struct student *creat(void) { struct student *head,*p1,*p2; n=0; p1=p2=(struct student *)malloc(LEN); printf("請(qǐng)輸入學(xué)生信息(按學(xué)號(hào)順序輸入)\n"); printf("學(xué)號(hào):"); scanf("%d",&p1->num); printf("姓名:"); scanf(
7、"%s",p1->name); printf("性別:"); scanf("%s",p1->sex); printf("班級(jí):"); scanf("%d",&p1->Class); printf("數(shù)學(xué):"); scanf("%d",&p1->math); printf("英語(yǔ):"); scanf("%d",&p1->english); printf("計(jì)算機(jī):"); scanf("%d",&p1->computer); head=NULL; while(1) { n=n+1; if(n==1)
8、head=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(LEN); printf("\n請(qǐng)輸入學(xué)生信息(按學(xué)號(hào)順序輸入)[當(dāng)不再輸入時(shí)在學(xué)號(hào)處輸入\"0\"結(jié)束]\n"); printf("學(xué)號(hào):");scanf("%d",&p1->num); if(p1->num==0)break; else printf("姓名:"); scanf("%s",p1->name); pr
9、intf("性別:"); scanf("%s",p1->sex); printf("班級(jí):"); scanf("%d",&p1->Class); printf("數(shù)學(xué):"); scanf("%d",&p1->math); printf("英語(yǔ):"); scanf("%d",&p1->english); printf("計(jì)算機(jī):"); scanf("%d",&p1->computer); } p2->next=NULL; return(head); } 3、數(shù)據(jù)增加模塊
10、 開(kāi)始 struct student *p0,*p1,*p2; p1=head; p0=stud; phead; p0=stud; 輸入一個(gè)學(xué)生的數(shù)據(jù) 根據(jù)學(xué)號(hào)順序找到數(shù)據(jù)應(yīng)該插入的位置 phead; p0=stud; 插入數(shù)據(jù) 返回頭指針 phead; p0=stud; 結(jié)束 struct student *insert(struct student *head,struct student *stud) { struct student *p0,*p1,*p2; p1=h
11、ead; p0=stud; if(head==NULL) {head=p0; p0->next=NULL;} else { while((p0->num>p1->num)&&(p1->next!=NULL)) {p2=p1; p1=p1->next;} if(p0->num<=p1->num) { if(head==p1) head=p0; else p2->next=p0; p0->next=p1; } else {p1->next=p0; p0->next=NULL;} } n++; printf("\n增
12、加成功!\n"); return(head); } 4、數(shù)據(jù)刪除模塊 開(kāi)始 struct student *p1,*p2; 輸入刪除的學(xué)號(hào)(姓名) 鏈表中有該數(shù)據(jù) p1==head Y Y head=p1->next N p2->
13、next=p1->next; printf(“不到該數(shù)據(jù)!\n"); 結(jié)束 struct student *del1(struct student *head,int num) { struct student *p1,*p2; if(head==NULL) {printf("\n表格不存在!\n"); return(head);} p1=head; while((num!=p1->num)&&(p1->next!=NULL)) {p2=p1; p1=p1->next;} if(num==p1->num) {
14、 if(p1==head) head=p1->next; else p2->next=p1->next; printf("\n刪除成功!\n"); n--; } else printf("\n找不到該數(shù)據(jù)!\n"); return(head); } struct student *del2(struct student *head,char *name) { struct student *p1,*p2; if(head==NULL) {printf("\n表格不存在!\n"); return(head);} p1=head; whi
15、le((strcmp(name,p1->name)!=0)&&(p1->next!=NULL)) {p2=p1; p1=p1->next;} if(strcmp(name,p1->name)==0) { if(p1==head) head=p1->next; else p2->next=p1->next; printf("\n刪除成功!\n"); n--; } else printf("\n找不到該數(shù)據(jù)!\n"); return(head); } 5、數(shù)據(jù)查找模塊
16、 開(kāi)始 struct student *p=head; 輸入查找的學(xué)號(hào)(姓名) num==p->num 或strcmp(name,p->name)==0 N Y 輸出數(shù)據(jù) Y p=p->next
17、 N p!=NULL Y 結(jié)束 void find1(struct student *head,int num) { struct student *p=head; if(head!=NULL) { do { if(num==p->num) { printf("\n學(xué)號(hào) 姓名 性別 班級(jí) 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī)\n"); printf("--
18、------------------------------------------\n"); printf("%d %-6s %s %d %-3d %-3d %-3d\n",p->num,p->name,p->sex,p->Class,p->math,p->english,p->computer); break; } else p=p->next; }while(p!=NULL); if(p==NULL) printf("\n未找到相應(yīng)信息!\n"); } else printf("
19、\n成績(jī)單為空!\n"); } void find2(struct student *head,char *name) { struct student *p=head; if(head!=NULL) { do { if(strcmp(name,p->name)==0) { printf("\n學(xué)號(hào) 姓名 性別 班級(jí) 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī)\n"); printf("--------------------------------------------\n"); printf("%d
20、 %-6s %s %d %-3d %-3d %-3d\n",p->num,p->name,p->sex,p->Class,p->math,p->english,p->computer); break; } else p=p->next; }while(p!=NULL); if(p==NULL) printf("\n未找到相應(yīng)信息!\n"); } else printf("\n成績(jī)單為空!\n"); } void print(struct student *head) { struct student
21、 *p; p=head; if(head!=NULL) { printf("學(xué)號(hào) 姓名 性別 班級(jí) 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī)\n"); printf("--------------------------------------------\n"); do { printf("%d %-6s %s %d %-3d %-3d %-3d\n",p->num,p->name,p->sex,p->Class,p->math,p->english,p->computer); p=p->next;
22、 }while(p!=NULL); } else printf("無(wú)信息!\n"); } 6、數(shù)據(jù)顯示模塊 開(kāi)始 struct student *p; p=head; head!=NULL Y 輸出一個(gè)學(xué)生的數(shù)據(jù) N p=p->next; p!=NULL Y 結(jié)束
23、 N void print(struct student *head) { struct student *p; p=head; if(head!=NULL) { printf("學(xué)號(hào) 姓名 性別 班級(jí) 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī)\n"); printf("--------------------------------------------\n"); do { printf("%d %-6s %s %d %-3d %-3d
24、 %-3d\n",p->num,p->name,p->sex,p->Class,p->math,p->english,p->computer); p=p->next; }while(p!=NULL); } else printf("無(wú)信息!\n"); } 7、成績(jī)對(duì)比模塊 開(kāi)始 struct student *p; p=head; float sum1=0,sum2=0,sum3=0,average1,average2,average3,n1=0,n2=0,n3=0; p!=NULL N p->Clas
25、s==1 Y Y sum1=sum1+p->math(englishi/computer); n1++; N p->Class==2 Y sum1=sum1+p->math(englishi/computer); n1++; p->Class==3
26、 N Y sum1=sum1+p->math(englishi/computer); n1++; p=p->next; 算出各班平均分并比較 輸出成績(jī)對(duì)比結(jié)果 結(jié)束 void compare(struct student *head) { struct student *p; p=head; float sum1=0,sum2=0,sum3=0,average1,average2,average3,n1
27、=0,n2=0,n3=0; printf(" ◎ 數(shù)學(xué)班級(jí)平均分 ◎ \n"); printf("--------------------------------------\n"); while(p!=NULL) { if(p->Class==1) {sum1=sum1+p->math; n1++;} if(p->Class==2) {sum2=sum2+p->math; n2++;} if(p->Class==3) {sum3=sum3+p->math; n3++;} p=p->next; } average1
28、=sum1/n1; average2=sum2/n2; average3=sum3/n3; if((average1>=average2)&&(average1>=average3)) { if(average2>=average3) printf("1班:%.2f 2班:%.2f 3班:%.2f\n",average1,average2,average3); else printf("1班:%.2f 3班:%.2f 2班:%.2f\n",average1,average3,average2); } else {
29、 if((average2>=average1)&&(average2>=average3)) { if(average1>=average3) printf("2班:%.2f 1班:%.2f 3班:%.2f\n",average2,average1,average3); else printf("2班:%.2f 3班:%.2f 1班:%.2f\n",average2,average3,average1); } else { if(average1>=average2) printf("3
30、班:%.2f 1班:%.2f 2班:%.2f\n",average3,average1,average2); else printf("3班:%.2f 2班:%.2f 1班:%.2f\n",average3,average2,average1); } } p=head;sum1=0;sum2=0;sum3=0;n1=0;n2=0;n3=0; printf("\n ◎ 英語(yǔ)班級(jí)平均分 ◎ \n"); printf("-------------------------------
31、-------\n"); while(p!=NULL) { if(p->Class==1) {sum1=sum1+p->english; n1++;} if(p->Class==2) {sum2=sum2+p->english; n2++;} if(p->Class==3) {sum3=sum3+p->english; n3++;} p=p->next; } average1=sum1/n1; average2=sum2/n2; average3=sum3/n3; if((average1>=average2)&&(average1>=average
32、3)) { if(average2>=average3) printf("1班:%.2f 2班:%.2f 3班:%.2f\n",average1,average2,average3); else printf("1班:%.2f 3班:%.2f 2班:%.2f\n",average1,average3,average2); } else { if((average2>=average1)&&(average2>=average3)) { if(average1>=average3) prin
33、tf("2班:%.2f 1班:%.2f 3班:%.2f\n",average2,average1,average3); else printf("2班:%.2f 3班:%.2f 1班:%.2f\n",average2,average3,average1); } else { if(average1>=average2) printf("3班:%.2f 1班:%.2f 2班:%.2f\n",average3,average1,average2); else prin
34、tf("3班:%.2f 2班:%.2f 1班:%.2f\n",average3,average2,average1); } } p=head;sum1=0;sum2=0;sum3=0;n1=0;n2=0;n3=0; printf("\n ◎ 計(jì)算機(jī)班級(jí)平均分 ◎ \n"); printf("--------------------------------------\n"); while(p!=NULL) { if(p->Class==1) {sum1=sum1+p->computer; n1++;} if(p-
35、>Class==2) {sum2=sum2+p->computer; n2++;} if(p->Class==3) {sum3=sum3+p->computer; n3++;} p=p->next; } average1=sum1/n1; average2=sum2/n2; average3=sum3/n3; if((average1>=average2)&&(average1>=average3)) { if(average2>=average3) printf("1班:%.2f 2班:%.2f 3班:%.2f\n",average1,a
36、verage2,average3); else printf("1班:%.2f 3班:%.2f 2班:%.2f\n",average1,average3,average2); } else { if((average2>=average1)&&(average2>=average3)) { if(average1>=average3) printf("2班:%.2f 1班:%.2f 3班:%.2f\n",average2,average1,average3); else printf("2
37、班:%.2f 3班:%.2f 1班:%.2f\n",average2,average3,average1); } else { if(average1>=average2) printf("3班:%.2f 1班:%.2f 2班:%.2f\n",average3,average1,average2); else printf("3班:%.2f 2班:%.2f 1班:%.2f\n",average3,average2,average1); } } } 8、數(shù)據(jù)保存模塊
38、 void save(struct student *head) { struct student *p; FILE *fp; fp=fopen("myfile.txt","wb"); p=head; while(p!=NULL) {fwrite(p,LEN,1,fp); p=p->next;} fclose(fp); printf("保存成功!\n"); } 9、數(shù)據(jù)讀取模塊 struct student *load() { struct student *head,*p1,*
39、p2; FILE *fp; n=0; head=NULL; fp=fopen("myfile.txt","rb"); head=p2=p1=(struct student *)malloc(LEN); while(fread(p1,LEN,1,fp)==1) { p2=p1; p1=(struct student *)malloc(LEN); p2->next=p1; n++; } p2->next=NULL; fclose(fp); printf("讀取成
40、功!\n"); return(head); } 10、主函數(shù) void main() { system("color 0B"); struct student *head=NULL,*stu; int num,choice; char name[10]; while(1) { system("pause"); system("cls"); printf("# # # # # # # # # # # # # # # # # # # # # # # #\n"); printf("#
41、 #\n"); printf("# ☆★☆ 學(xué)生成績(jī)管理系統(tǒng)菜單 ☆★☆ #\n"); printf("#---------------------------------------------#\n"); printf("# 1.創(chuàng)建學(xué)生成績(jī)單 #\n"); printf("#---------------------------------------------#\n"); printf("#
42、 2.增加學(xué)生信息 #\n"); printf("#---------------------------------------------#\n"); printf("# 3.刪除學(xué)生信息 #\n"); printf("#---------------------------------------------#\n"); printf("# 4.查看學(xué)生信息 #\n"); pr
43、intf("#---------------------------------------------#\n"); printf("# 5.顯示所有學(xué)生信息 #\n"); printf("#---------------------------------------------#\n"); printf("# 6.班級(jí)成績(jī)對(duì)比 #\n"); printf("#---------------------------------------------
44、#\n"); printf("# 7.保存至文件 #\n"); printf("#---------------------------------------------#\n"); printf("# 8.從文件中讀取信息 #\n"); printf("#---------------------------------------------#\n"); printf("# 9.退出系統(tǒng)
45、 #\n"); printf("# #\n"); printf("# # # # # # # # # # # # # # # # # # # # # # # #\n"); printf("\n請(qǐng)選擇所需功能:"); scanf("%d",&choice); printf("\n"); switch(choice) { case 1: head=creat(); break; c
46、ase 2: stu=(struct student *)malloc(LEN); printf("請(qǐng)輸入學(xué)生信息\n"); printf("學(xué)號(hào):"); scanf("%d",&stu->num); printf("姓名:"); scanf("%s",stu->name); printf("性別:"); scanf("%s",stu->sex); printf("班級(jí):"); scanf("%d",&stu->Class)
47、; printf("數(shù)學(xué):"); scanf("%d",&stu->math); printf("英語(yǔ):"); scanf("%d",&stu->english); printf("計(jì)算機(jī):"); scanf("%d",&stu->computer); while(1) { head=insert(head,stu); printf("請(qǐng)繼續(xù)輸入學(xué)生信息(按\"0\"退出)\n"); st
48、u=(struct student *)malloc(LEN); printf("學(xué)號(hào):"); scanf("%d",&stu->num); if(stu->num==0) break; printf("姓名:"); scanf("%s",stu->name); printf("性別:"); scanf("%s",stu->sex); printf("班級(jí):"); scanf("%d",&stu-
49、>Class); printf("數(shù)學(xué):"); scanf("%d",&stu->math); printf("英語(yǔ):"); scanf("%d",&stu->english); printf("計(jì)算機(jī):"); scanf("%d",&stu->computer); } break; case 3: printf("1.按學(xué)號(hào)刪除 2.按姓名刪除\n請(qǐng)選擇:");
50、 scanf("%d",&choice); switch(choice) { case 1: printf("輸入要?jiǎng)h除的學(xué)生學(xué)號(hào)(按\"0\"退出):"); scanf("%d",&num); while(num!=0) { head=del1(head,num); printf("輸入要?jiǎng)h除的學(xué)生學(xué)號(hào)(按\"0\"退出):");
51、 scanf("%d",&num); } break; case 2: printf("輸入要?jiǎng)h除的學(xué)生姓名(按\"0\"退出):"); scanf("%s",name); while(strcmp(name,"0")!=0) { head=del2(head,name);
52、 printf("輸入要?jiǎng)h除的學(xué)生姓名(按\"0\"退出):"); scanf("%s",name); } break; default: break; } break; case 4: printf("1.按學(xué)號(hào)查找 2.按姓名查找\n請(qǐng)選擇:"); scanf("%d",&choice); switch(choi
53、ce) { case 1: printf("輸入要查找的學(xué)生學(xué)號(hào):"); scanf("%d",&num); find1(head,num); break; case 2: printf("輸入要查找的學(xué)生姓名:"); scanf("%s",name); find2(head,name);
54、 break; default: break; } break; case 5: print(head); break; case 6: compare(head); break; case 7: save(head); break; case 8: head=load(); break; default: break; } if(choice==9) {printf("謝謝使用!\n"); break;} } }
55、 四、調(diào)試分析過(guò)程描述 1、主菜單 2、創(chuàng)建成績(jī)單 3、增加學(xué)生記錄 4、刪除學(xué)生記錄 5、顯示所有學(xué)生記錄 6、班級(jí)成績(jī)對(duì)比 7、查找學(xué)生記錄 8、保存學(xué)生記錄 9、讀取文件信息 調(diào)試過(guò)程中的問(wèn)題與反思: 此次編寫(xiě)的程序蓋內(nèi)容量很大,在編寫(xiě)過(guò)程中采用的是寫(xiě)好一個(gè)模塊測(cè)試一個(gè)模塊的方法,但是將各個(gè)模塊組合到一起后仍舊出現(xiàn)了許多小問(wèn)題,經(jīng)過(guò)多次調(diào)試才達(dá)到各個(gè)模塊協(xié)調(diào)工作。 最初程序編寫(xiě)的時(shí)候并沒(méi)有太過(guò)提示性輸出語(yǔ)句,雖然程序運(yùn)行不會(huì)受到影響,但是非編
56、寫(xiě)人員就難以使用,在調(diào)試中明顯感受到有些地方如果不加提示使用者將很難操作。最后對(duì)一些需要提示的地方慢慢修改,加入一系列提示以后才使程序比較人性化。對(duì)于界面的設(shè)計(jì),最初雖然有一個(gè)雛形,但是在實(shí)際調(diào)試過(guò)程中暴露出不少錯(cuò)位等顯示效果不佳的狀況。針對(duì)此類(lèi)問(wèn)題,必須多次全面調(diào)試,才能將程序界面編寫(xiě)得最美觀。 經(jīng)過(guò)整個(gè)調(diào)試之后,深深感受到程序調(diào)試有相當(dāng)?shù)谋匾?,很多?wèn)題不經(jīng)過(guò)反復(fù)調(diào)試是難以暴露的。如界面設(shè)計(jì)、菜單人性化等需要直觀感受的東西,也只有通過(guò)程序調(diào)試才能將它們盡可能完善。 五、課程設(shè)計(jì)小結(jié) 通過(guò)本次課程設(shè)計(jì),我熟悉了對(duì)鏈表的創(chuàng)建、增加、刪除等一些操作,先前只在課堂上聽(tīng)老師講述,自己對(duì)開(kāi)辟
57、內(nèi)存空間、結(jié)構(gòu)體指針等與鏈表相關(guān)的操作并不熟悉,在制作了這個(gè)程序之后,我對(duì)鏈表的相關(guān)操作已經(jīng)比較熟練了。 本次課程設(shè)計(jì)需要用到一系列外部文件命令,通過(guò)自學(xué)外部命令和課程設(shè)計(jì)的演練,我已經(jīng)能夠掌握外部文件的相關(guān)命令。值得一提的是,課程設(shè)計(jì)要求鏈表命令與外部文件命令相結(jié)合,通過(guò)此次程序編寫(xiě),這兩部分知識(shí)結(jié)合使用,將我所學(xué)的只是串聯(lián)起來(lái)。 課程設(shè)計(jì)所要求的程序,是我從學(xué)習(xí)C語(yǔ)言以來(lái)編寫(xiě)得最長(zhǎng)的程序,以往老師在可能上常說(shuō)命令要精簡(jiǎn)我總是不以為然,經(jīng)過(guò)本次編寫(xiě),我體會(huì)到了精簡(jiǎn)命令的重要性。對(duì)于一個(gè)小程序,可能長(zhǎng)點(diǎn)短點(diǎn)無(wú)所謂,出了問(wèn)題很容易檢查,而對(duì)于這種需要編寫(xiě)四五百行的大程序,如果不注意使用命令的
58、簡(jiǎn)單明了,可能導(dǎo)致程序編寫(xiě)量大很多,冗長(zhǎng)的程序代碼也會(huì)給程序出錯(cuò)時(shí)的檢查帶來(lái)極大的麻煩。 過(guò)去編寫(xiě)程序,都是書(shū)上的題目,完成題目就算目標(biāo)達(dá)成。而此次程序設(shè)計(jì)我需要完成的是一個(gè)完完整整有很強(qiáng)使用行的程序。因而首次讓我注意到界面的問(wèn)題,不僅僅需要編寫(xiě)出能夠正常運(yùn)行的程序,還需要給使用者一個(gè)清爽的、易操作的界面。為了達(dá)到清爽的界面,得不斷觀察程序運(yùn)行界面,不斷調(diào)試,達(dá)到最佳顯示效果;為了達(dá)到一操作性,必需添加一系列判斷語(yǔ)句同時(shí)伴隨相應(yīng)的輸出語(yǔ)句給使用者提示。這些,都是過(guò)去C語(yǔ)言練習(xí)中涉及不多的。 這次設(shè)計(jì)的程序包含了大量的獨(dú)立模塊,在編寫(xiě)過(guò)程中運(yùn)用了逐個(gè)模塊單獨(dú)編寫(xiě),單獨(dú)測(cè)試,最終聚合到一起調(diào)試的思路。這種思路以前大學(xué)計(jì)算機(jī)基礎(chǔ)課和C語(yǔ)言課都講到過(guò),但由于所編寫(xiě)的程序往往比較簡(jiǎn)單,過(guò)去并未應(yīng)用。而此次課程設(shè)計(jì)運(yùn)用到了這種思想,我也感受到了這種思想的先進(jìn)性,大大提高了工作效率。 總之,在這次課程設(shè)計(jì)中我受益匪淺,我不僅掌握了過(guò)去并未掌握的知識(shí),同時(shí)將很多以前隨聽(tīng)說(shuō)卻不曾使用過(guò)的思想付諸實(shí)踐。也體會(huì)到調(diào)試程序的重要性,從調(diào)試中我們可以發(fā)現(xiàn)很多很多編寫(xiě)時(shí)所未曾注意的問(wèn)題。C語(yǔ)言這門(mén)課,是教我們?nèi)绾尉帉?xiě)程序,絕非僅僅會(huì)解答C語(yǔ)言題目,從編寫(xiě)程序過(guò)程中,我感受到還要注重程序界面的外觀與可操作性。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案