第一篇:語言課程設計-學生成績管理系統
1、課程設計的目的、任務
《匯編語言》課程設計對于鞏固匯編語言理論知識,加強學生的實際動手能力和提高學生綜合素質十分必要。課程設計的目的主要是通過程序設計方法和技能的基本訓練,鞏固在課堂上學到的有關程序設計的基本知識和基本方法,通過實際動手能力的培養,進一步熟悉匯編語言的結構和使用方法,達到能獨立閱讀、編制和調試一定規模的匯編語言程序的水平。
2、軟件需求分析和設計
2.1學生成績管理系統是對學生成績的管理,其中包括以下幾個模塊:(1).插入一個數據(插入學生學號以及語數外三個成績)。(2)修改一個數據。(3)刪除學生成績數據。(4)查找學生成績。(5)查看學生成績的排名(6)查看學生成績分布(7)按esc鍵退出系統
2.2學生成績管理系統應該包含以下信息:學號,語文成績,英語成績,數學成績。因此,系統應該提供以下功能:(1)輸出顯示菜單。(2)輸入學生的成績(3)修改學生成績(4)刪除學生成績(5)查詢學生成績(6)顯示學生成績排名(7)顯示成績分布統計(8)按esc鍵退出系統
2.3依據程序的功能需求,該系統的功能結構圖如下
系統功能結構圖
2.4 程序流程圖:
主程序流程圖
查找學生成績
插入學生學號及成績
修改學生的成績
顯示各個學科各分數段的人數
3、程序實現說明
3.1學生管理系統中各子程序如下:
(1).輸入全部學生學號以及語文,英語,數學三科的成績。子程序名:insert 子程序描述:該子程序為輸入字程序。系統在開始的時候是沒有數據的,通過該子程序可以初始化系統,將學生的學號及成績輸入系統。
代碼:
insert proc near;定義進程子程序:插入學生,學號及 成績 call input;調用input add n,1 ret insert endp
(2).修改輸入的成績。子程序名:modify 子程序描述:通過子程序修改學生的成績 代碼:
modify proc near;定義進程子程序:修改學生學號,成績 md1:output mess1;輸出mess1 shuru;調用宏shuru:二位數據輸入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si];先查找輸入的學生是否存在
je qq1_1;查到的話,就跳轉到qq1_1輸入修改的值,也就是重新輸入。;結果相等則跳轉到qq1_1 add si,1
cmp si,bx jbe md;小于等于則跳轉到md output mess;輸出mess jmp md1;不相等繼續輸入學號
qq1_1:;轉入修改的值重新輸入。mov di,si output mess2 output mess4 mov si,0 mov cx,3
qq3_1:shuruu;cmp dx,78h;
jbe qq2_1;output ts3;jmp qq1_1;qq2_1:mov buf[si],dl output bg;add si,1 loop qq3_1 mov al,buf[0];mov chi[di],al mov al,buf[1]
分別輸入語文,英語,數學成績,并將其放 在緩沖區buf中 比較輸入的成績是否大于120,如果大于120的 話,那么重 新輸入成績 小于等于則轉移到qq2_1 輸出ts3 跳轉到qq1_1 輸出空格 將存入buf中的成績,分別賦值給存放對應科 目的成績的數組
mov eng[di],al mov al,buf[2] mov mat[di],al ret modify endp
(3).刪除學生的成績。子程序名:delete 子程序描述:通過子程序刪除學生的成績 代碼:
de proc near;刪除某個學生的記錄 sc1:output mess1 shuru;調用宏shuru,接受輸入的學號 mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xh[si];查詢輸入學號的學生信息是否存在,不存在的話,重新輸入學號 je sc2;相等則轉移到sc2 add si,1 cmp si,bx jbe sc;小于等于則轉移到sc output mess;輸出mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3;相等則轉移到sc3 mov cx,bx
sc4:mov dl,chi[si+1] mov chi[si],dl mov dl,eng[si+1] mov eng[si],dl mov dl,mat[si+1] mov mat[si],dl mov dl,xh[si+1] mov xh[si],dl add si,1 loop sc4;loop循環指令,執行操作(cx)<--(cx)-1.若 cx!=0,跳轉到標號sc處循環執行;cx=0,則推出
循環,執行loop的下一條指令 sub n,1 sc3: ret de endp
(3).查詢學生的成績。子程序名:find 子程序描述:通過子程序查詢學生的成績 代碼:
find proc near;定義進程子程序:查找學生成績 call sum;求學生的總成績 call ping;求學生的平均成績
bj1:output mess1;輸出mess1 shuru;二位數數據輸入 mov bl,n mov bh,0 mov al,dl
mov si,0
bj: cmp al,xh[si];將輸入的學號與輸入的學號相比,je i;存在的話,將此學生的成績輸出。je表示結果相
等則轉移。add si,1 cmp si,bx jbe bj;output mess jmp bj1 i: output strr2 shuzi xh[si];shuzi output bg;mov al,chi[si] cbw;shuzii ax;shuzii output bg;mov al,eng[si] cbw;shuzii ax;shuzii output bg
mov al,mat[si] cbw shuzii ax output bg;
mov al,pj[si] cbw
小于等于則轉移到bj 為二位數據輸出 輸出空格 將字節變為字
為三位數據輸出。輸出空格 將字節變為字
為三位數據輸出 輸出空格的字符串,用于與標題欄對齊
shuzii ax output bg
mov ax,si mov bl,2 mul bl mov bx,ax shuzii zc[bx];shuzii為三位數據輸出
output bg;輸出空格的字符串,用于與標題欄對齊 shuzi mc[si];shuzi為二位數據輸出 ret find endp
(4).顯示學生的成績排名。子程序名:show 子程序描述:通過子程序顯示學生的成績排名 代碼:
show proc near;定義進程子程序:顯示結果排名 call sum;調用宏sum call ping;調用宏ping call rank;調用宏rank call shuchu;調用宏shuchu ret show endp
3.2程序運行抓圖:
主菜單
修改學生成績
刪除學生成績
顯示各個學科各分數段的人數
4、程序總結
通過兩個星期的學習,努力,終于完成了報告。系統可以很好的運行。這兩個多星期的時間,幾乎每天不是在敲代碼,就是在看代碼,查書,上網。系統中用到了很多最近才學習的知識,比如宏,子程序。這些都使得代碼的運行效率提高了,代碼行數減少了。系統還用到了bios的清屏功能。這些功能如果不是做課程設計,我想我很難會接觸到這些知識。
由于自己對知識掌握的不是很牢固,其中也會碰到一些困難。每當遇到問題的時候,我會先上網去查找,看看有沒有人提過這方面的問題。互聯網是強大的,大部分的問題通過網絡都可以解決。部分找不到的問題,我就去請教班里學得好的同學。他們對知識的掌握遠超過我。這樣下來,很多問題都迎刃而解了。
課程設計是一個很好的掌握書本上知識的過程。平時上課之后,自己都不會想著去敲一些代碼聯系聯系。通過做課程設計,將理論與實踐結合了起來,對知識的理解更加深入了。
第二篇:C語言課程設計任務書(學生成績管理系統)
課程設計題目:簡單的學生成績管理的程序
要求:
一、由鍵盤輸入原始數據。原始數據內容如下:
學號姓名C程序設計高等數學英語線性代數
1王..80808080
2張..90909090
注:要求至少有20個學生的原始數據
二、實現以下功能。
程序要求主函數是一個功能選擇菜單,其它各功能用函數實現。功能要求如下:
1、原始數據的輸入
2、計算每位同學的平均分
3、計算每門課程的平均分
4、計算各分數段(90-100、80-89、60-79、60以下)的人數
5、對這些同學的成績按平均分排序,給出名次。
6、對原始數據可以進行增、刪、改的編輯操作。
7、按學號查詢學生。找到則顯示該生信息,否則提示未找到。
8、原始數據可以保存為文件,也可以從文件載入。
注:程序統計輸出結果如下:
學號姓名C程序設計高等數學英語線性代數平均分名次 1王..80808080802 2張..90909090901
…
各科平均分8585858585
C程序設計高等數學英語線性代數平均分
90-10011111
80-8911111
60-6900000
60以下00000
第三篇:課程設計--成績管理系統
“成績管理系統”課程設計指導書
課題名稱:學生成績管理系統
設計目標:按照軟件工程的規范,以SQL Server或Oracle為后臺數據庫,以Visual C++、Delphi等為前端開發工具,設計并實現一個能模擬高等學校學生成績管理的系統。
需求描述:
學生成績管理系統中:
1.系統用戶
系統的用戶是學校的學生、教師和管理員。學生使用本系統查詢自己的成績。教師使用本系統錄入和查詢自己所授課程的考試成績。教學管理員可以查詢所有課程成績,并使用本系統進行成績的統計和生成報表。
2.系統功能
(1)成績錄入:
教師可以查詢自己本學期所授課程,并錄入學生的考試成績。錄入過
程中,可以暫存已錄入的成績,當錄入完成后提交。
(2)成績維護:
教師在提交前,可以修改已錄入或暫存的學生成績;但提交后,則只
能查詢不能再進行任何修改。
教學管理員可以清除教師已提交的成績。
(3)成績查詢:
教師、教學管理員可以查詢學生考試成績。學生只允許查詢自己的考
試成績,教師只允許查詢自己所授課程的成績。
(4)成績統計:
教學管理員可以按課程、按學生、按班級等進行成績統計。
教學管理員根據核算出的總評成績統計處于優、良、中、及格、不及
格的學生人數以及占總人數的百分比。其中100-90為優,89-80為良,79-70為中,69-60為及格,60分以下為不及格。
按要求輸出成績在優、良、中、及格、不及格各區間的學生學號。
結果形式:
提交課程設計報告、源程序和可演示的軟件
課程設計報告要求:詳見課程設計模板
課程設計參考思路:
(1)熟悉數據庫和開發工具,掌握開發工具與本地數據庫的連接方法。
(2)理解系統的信息需求,進行合理的數據庫設計,建立各數據庫表。
(3)理解系統的功能需求,設計應用軟件。結合Delphi 或VC++進行系統界面
(窗體、菜單以及相應控制按鈕)的設計、連接與操縱數據庫方案的設計,編寫程序。
(4)系統運行、調試并完善。
(5)撰寫設計報告。
第四篇:C語言課程設計學生成績管理系統個人總結
C語言課程設計——學生成績管理系統
個人心得體會
(徐州工程學院 14計嵌1班 07組 張凱)
這一周以來的課程設計,不僅讓我明白了C語言的確是一門很有用的,但是又是不容易的一門課程。起初剛開始做課程設計時,以為這個課程設計不會有多難,只不過是把多個函數組合起來就好了,但是,經過這一星期的編程,發現要完完整整把程序按照要求編出來是一件很不容易的事情。然而在這一周以來的學習中,也對C語言這門課程有了更加的了解和學習。
在整個編程的過程中,可以說遇到了很多難題,但是讓我印象最深刻的是在編寫從某文件中讀取學生信息這個程序時所遇到的困難。起初,程序時編寫出來了,在組建時也沒有錯誤,但是就是實現不了這個功能,接著就是整整一天的苦戰;終于,能夠讀取文件中的信息了,可是,新問題又來了,在顯示讀取的信息時出現了亂序。另外在編寫加密代碼的時候竟然忘記了將其放在主函數中運行鬧了笑話,在指導老師的幫助下最后解決了這個問題。
每天看到一行行代碼著實有時讓人頭大。然而在這個程序完整地編寫下來,我覺得編寫程序需要很大的耐心,一個稍微大點的程序就有個幾百甚至上千行,沒有耐心是很難做得成功的。當然細心也很需要,在編程的過程中有很多錯誤都是自己的粗心造成的,有時甚至自己多次檢查都看不出來,這樣一來,會造成時間的大量浪費。
這次的課程設計也是一次很好的對自我的檢查。它讓我知道了自己在C語言的學習上還不夠認真刻苦,很多知識點還是沒有很好的掌握,甚至有些知識點很生疏,這也許就是我在編寫從某文件中讀取學生信息這一函數時老碰壁的原因所在!從這一點上來看,發現我對待學習的態度還不夠端正,有待加強。
不管怎么說,經過這一次課程設計,在C語言方面的收獲最大,讓我讀代碼的能力大大提升了不少,也鞏固了很多知識。同時也受到了指導老師劉云、鄒文輝的細心指導,非常感謝!
第五篇:C語言課程設計報告-學生成績管理系統(vc)
一、實踐的目的和要求
加深對《C語言》課程所學知識的理解,進一步鞏固C語言語法規則。學會編制結構清晰、風格良好、數據結構適當的C語言程序,從而具備解決綜合性實際問題的能力。
二、實踐內容
在熟練掌握C語言的基本知識:數據類型(整形、實型、字符型、指針、數組、結構等);運算類型(算術運算、邏輯運算、自增自減運算、賦值運算等);程序結構(順序結構、判斷選擇結構、循環結構);大程序的功能分解方法(即函數的使用)等。進一步掌握各種函數的應用,包括時間函數、繪圖函數,以及文件的讀寫操作等。
三、實踐任務 1.歡迎畫面
2.學生成績管理系統(自己設計界面)3.異或加密與解密
(1)文件加密
(2)文件解密 說明:將某一已知文件的內容以字符形式讀出,與密鑰(用戶從鍵盤輸入)的對應字符進行異或操作即可,解密同樣如此。如:設原文為ab1234,密鑰為56,則有 ab1234 565656
按二進制進行異或操作即可得到密文(亂碼)。4.移位加密與解密(1)文件加密(2)文件解密
說明:將某一已知文件的內容(限于英文字母)以字符形式讀出,根據密鑰k(用戶從鍵盤輸入)將對應字符進行移位操作即可,解密時移動方向相反。
如:設原文為abcdef,密鑰為5,則有
abcdef 每個字母按字母表向后移動位(注:z后接a)fghijkl 可得到密文(亂碼)。5.輔助運算(1)整數N模m的乘法逆t
要求:輸入整數N和m,求出t,若t不存在,給出信息。提示:這三個數滿足:N*t%m=1,使用窮舉法。
例如:當N為11,m為26時,由于(11×19)%26=1,所以11模26的乘法逆為19。(2)統計字母個數
要求:輸入一段英文字母,統計各個字母的個數,并按個數從大到小排序輸出。
提示:字母大小寫等價。輸出格式為:字母:個數。(3)OTP加密
要求:輸入同等長度的原文x和密鑰k(英文字母),根據公式 c=(x+k)%26 得到密文,并輸出。
提示:將26個字母按0~25編號,將原文字母和對應位置的密鑰字母的編號按上述公式進行計算后得到一個新的字母。
四、設計流程圖
流程圖另附!
五、相關程序 1 歡迎畫面
#include
initgraph(&gd,&gm,“c: urboc2”);Copy();DrawSnow();getch();closegraph();}
void Copy(){
setcolor(0);
setfillstyle(SOLID_FILL,15);fillellipse(200,200,4,4);size=imagesize(196,196,204,204);save1=malloc(size);save2=malloc(size);
getimage(196,196,204,204,save1);getimage(96,96,104,104,save2);}
void Pr(){
int s[15]={0,100,150,200,150,200,250,150,250,300,250,150,100,250,350};setcolor(change/10);settextstyle(0,0,4);
outtextxy(150,200,“Welcome!!”);sound(s[change/10]);}void DrawSnow(){int i;int sx[62];randomize();for(i=0;i<62;i++)sx[i]=(i+2)*10;cleardevice();while(!kbhit()){ Pr();
if(snownum!=100){
snow[snownum].speed=2+random(5);i=random(62);
snow[snownum].x=sx[i];
snow[snownum].y=10-random(100);} for(i=0;i putimage(snow[i].x,snow[i].y,save2,COPY_PUT);Pr(); if(snownum!=100)snownum++;/*delay(300);*/ setfillstyle(SOLID_FILL,15);for(i=0;i snow[i].y+=snow[i].speed; putimage(snow[i].x,snow[i].y,save1,COPY_PUT);if(snow[i].y>500) snow[i].y=10-random(200);} change++;if(change==140)change=10;} nosound();} 2學生成績管理系統(自己設計界面)#define N 1 struct student {char num[10];char name[10];int score[4];float ave;}stu[N];main() {int i,j,max,maxi,sum;float average;for(i=0;i {printf(“Please input scores of student %d :n”,i+1);printf(“NO.:”); scanf(“%s”,stu[i].num);printf(“name:”); scanf(“%s”,stu[i].name);for(j=0;j<3;j++) {printf(“score %d :”,j+1);scanf(“%d”,&stu[i].score[j]);} } average=0;max=0;maxi=0;for(i=0;i for(j=0;j<3;j++)sum+=stu[i].score[j];stu[i].ave=sum/3.0;average+=stu[i].ave;if(sum>max){max=sum;maxi=i;} } average/=N; printf(“ NO.name score1 score2 score3 averagen”);for(i=0;i {printf(“%5s”,stu[i].num); printf(“%10s”,stu[i].name);for(j=0;j<3;j++) printf(“%9d”,stu[i].score[j]);printf(“%8.2fn”,stu[i].ave);} printf(“average=%6.2fn”,average); printf(“The highest score is : %s,score total :%dn”,stu[maxi].name,max);getch();} 3.異或加密與解密 #include void jiami(char *in,char *pwd,char *out);void main(int argc,char *argv[]){ char in[30];char out[30];char pwd[8];if(argc!=4){ printf(“Input file name:n”);gets(in); printf(“Please enter password:n”);gets(pwd); printf(“Output file name:n”);gets(out); jiami(in,pwd,out);} else { strcpy(in,argv[1]);strcpy(pwd,argv[2]);strcpy(out,argv[3]);jiami(in,pwd,out);} } void jiami(char *in,char *pwd,char *out_file){ FILE *fp1,*fp2;register char ch;int j=0;int k=0; fp1=fopen(in,“rb”);if(fp1==NULL){ printf(“Cannot open in-file!n”);exit(1);} fp2=fopen(out_file,“wb”);if(fp2==NULL){ printf(“Cannot open or create output-file!n”);exit(1);} while(pwd[++k]);ch=fgetc(fp1);while(!feof(fp1)){ fputc(ch^pwd[j>=k?j=0:j++],fp2);ch=fgetc(fp1);} fclose(fp1);fclose(fp2);} 4.移位加密與解密 #include“stdio.h” main(){ int choice=0,k;FILE *fp1,*fp2; char c,filename1[30],filename2[30]; printf(“Please input two deferent filename:”);scanf(“%s%s”,filename1,filename2);printf(“Please input the password :n”);scanf(“%d”,&k); if((fp1=fopen(filename1,“r”))==NULL) printf(“nERROR!CAN NOT OPEN THE FILEn”);else{ fp2=fopen(filename2,“w”); printf(“nChoose:(1-jiami 2-jiemi)”);scanf(“%d”, &choice);switch(choice){ case 1: do{ c=getc(fp1); if(((c>='a')&&(c<='z'-k))||((c>='A')&&(c<='Z'-k)))putc(c+k,fp2); else if(((c>'z'-k)&&(c<='z'))||((c>'Z'-k)&&(c<='Z')))putc(c-(26-k),fp2);else putc(c,fp2);}while(c!=EOF);break;case 2: do{ c=getc(fp1); if(((c>='a'+k)&&(c<='z'))||((c>='A'+k)&&(c<='Z')))putc(c-k,fp2); else if(((c>='a')&&(c<'a'+k))||((c>='A')&&(c<'A'+k)))putc(c+(26-k),fp2);else putc(c,fp2);}while(c!=EOF);break; default: printf(“nYou have choose a wrong number!Please choose again!”);} } fclose(fp1);fclose(fp2);} 5.輔助運算 (1)整數N模m的乘法逆t main(){ unsigned n,m,t=1;int c; printf(“Please enter the number:n”);scanf(“%d,%d”,&n,&m);while(t<65535){ c=n*t%m;if(c==1||c==0)break;t++;} if(t==65535||c==0) printf(“Nicheng number is not exited!n”);if(c==1) printf(“T is : %dn”,t);getch();} (2)統計字母個數 #include “string.h” main(){ int i,j,t; char a[80],b[26];int c[26];char e; printf(“Please enter the letters:n”);gets(a); for(i=0;i<26;i++)b[i]='A'+i;for(i=0;i<26;i++)c[i]=0; for(j=0;j<80;j++){for(i=0;i<26;i++){ if(a[j]==b[i]||a[j]==b[i]+32)c[i]++;} if(a[j]=='
主站蜘蛛池模板:
亚洲熟女乱色综合亚洲av|
精品成人免费一区二区不卡|
性欧美videofree高清精品|
99精品热在线在线观看视频|
精品免费一区二区在线|
手机在线亚洲国产精品|
欧美成人午夜精品久久久|
国产亚洲曝欧美曝妖精品|
亚洲欧美成人一区二区在线|
特黄三级又爽又粗又大|
黑人强伦姧人妻久久|
国产精品人成视频免费vod|
亚洲精品国产综合麻豆久久99|
夜夜躁很很躁日日躁麻豆|
国产午夜无码视频免费网站|
国产激情无码一区二区三区|
九九视频在线观看视频6|
国产av亚洲精品久久久久久小说|
亚洲日韩精品无码专区|
女高中生自慰污污网站|
国产亚洲精品福利视频在线观看|
亚洲日本va一区二区三区|
大香伊蕉在人线国产免费|
国产综合18久久久久久|
精品国产你懂的在线观看|
国语精品福利自产拍在线观看|
久久久久青草线焦综合|
色欲色香天天天综合网www|
免费超爽大片黄|
国产超碰97人人做人人爱|
无码区国产区在线播放|
日本三级香港三级三级人!妇久|
欧美色欧美亚洲日韩在线播放|
精品无码国产一区二区三区51安|
伊人久久亚洲综合影院首页|
69做爰视频在线观看|
中日韩亚洲人成无码网站|
亚洲人成无码网www电影榴莲|
国产午夜精品一区二区三区极品|
男阳茎进女阳道视频大全|
免费人成视频在线观看网站|