




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
序號:0301學號:10416313課程設計設計課程名稱:C語言課程設計題目:成績統計系統進制轉換系統學生姓名:韓建東學院(系):懷德學院專業班級:計算機101指導教師:倪彤光設計時間:年6月13日年6月27日
常州大學課程設計任務書一懷德學院計算機專業計算機101班同學:韓建東一、設計題目成績統計系統二、設計內容假設某校學生通訊錄基礎信息關鍵包含:學號、姓名、通訊地址、電話等,本系統應能對這些基礎信息進行管理,并要求含有以下功效:1、含有學生信息添加功效2、含有學生信息刪除功效3、含有學生信息瀏覽功效4、含有學生信息查詢功效5、含有學生信息排序功效三、基礎要求1、編寫源程序要求:(1)能夠實現任務書中功效;(2)盡可能使界面友好、直觀、易操作(3)源程序要有合適注釋,使程序輕易閱讀。2、撰寫“課程設計匯報”,要求以下:(1)封面:統一采取《江蘇工業學院課程設計說明書》封面格式(2)任務書(3)目錄(4)“課程設計匯報”正文3、課程設計驗收要求:(1)運行所設計系統;(2)回復相關問題;(3)提交課程設計匯報;(4)提交源程序。四、進度安排1、系統分析、設計準備階段:4課時2、編程調試階段:22課時3、總結和書寫課程設計匯報階段:2課時4、考評階段:2課時指導老師:倪彤光年6月7日系主任:蘇兵年6月7日教學院長:楊長春年6月7日常州大學課程設計任務書二懷德學院計算機專業計算機101班同學:韓建東一、設計題目進制轉換系統二、設計內容本系統要求含有以下功效:1、含有將十進制轉換為二進制功效2、含有將十進制轉換為十六進制功效3、含有將二進制轉換為十進制功效 4、含有將十六進制轉換為十進制功效三、基礎要求1、編寫源程序要求:(1)能夠實現任務書中功效;(2)盡可能使界面友好、直觀、易操作(3)源程序要有合適注釋,使程序輕易閱讀。2、撰寫“課程設計匯報”,要求以下:(1)封面:統一采取《江蘇工業學院課程設計說明書》封面格式(2)任務書(3)目錄(4)“課程設計匯報”正文3、課程設計驗收要求:(1)運行所設計系統;(2)回復相關問題;(3)提交課程設計匯報;(4)提交源程序。四、進度安排1、系統分析、設計準備階段:4課時2、編程調試階段:22課時3、總結和書寫課程設計匯報階段:2課時4、考評階段:2課時指導老師:倪彤光年6月7日系主任:蘇兵年6月7日教學院長:楊長春年6月7日1.意義及功效 51.1系統意義 51.1.1成績管理信息系統意義 51.1.2進制算法設計意義 51.2系統功效 51.2.1成績管理信息系統功效 51.2.2進制算法設計功效 52功效結構圖 52.1成績管理信息系統 52.2進制算法設計 53.步驟圖 63.1成績管理信息系統步驟圖 64調試運行 64.1成績管理信息系統 64.2進制算法設計 65使用說明 65.1成績管理信息系統 65.2進制算法設計 66C語言源程序代碼 76.1成績管理信息系統 76.2進制算法設計 77心得體會 88實習日志 89參考文件 91.意義及功效1.1系統意義1.1.1成績管理信息系統意義為了方便學校用來統計學生數據,為學校能夠省下大量人力和物力,同時也省下了時間。1.1.2進制算法設計意義為了方便廣大初學學生愈加好了解進制之間轉換。1.2系統功效1.2.1成績管理信息系統功效1、含有學生信息添加功效2、含有學生信息刪除功效3、含有學生信息瀏覽功效4、含有學生信息查詢功效5、含有學生信息排序功效1.2.2進制算法設計功效1、含有將十進制轉換為二進制功效2、含有將十進制轉換為十六進制功效3、含有將二進制轉換為十進制功效 4、含有將十六進制轉換為十進制功效2功效結構圖2.1成績管理信息系統輸入學生信息輸入學生信息添加學生信息刪除學生信息顯示學生信息排序學生信息2.2進制算法設計輸入數據輸入數據要轉換進制輸出數據3.步驟圖3.1成績管理信息系統步驟圖4調試運行4.1成績管理信息系統4.2進制算法設計5使用說明5.1成績管理信息系統1是添加學生信息,2是刪除學生信息,3是查詢學生信息,4是排序學生信息,5是顯示學生信息,6是退出程序5.2進制算法設計先輸入要轉換為多少進制數,在輸入要轉換多少進制數6C語言源程序代碼6.1成績管理信息系統#include"stdio.h"#include"stdlib.h"#include"string.h"#defineMAX50voidadd();voiddel();voidquery();voidsort();voidlist();typedefstructemployee{intnumber; charname[20]; charsex[2];intage; charxueli[10]; floatsalary; charaddress[30]; chartel[11];}EMP;voidmain(){charc;inti; do { system("cls"); for(i=0;i<80;i++) printf("*"); printf("\t1:添加學生信息\n"); printf("\t2:刪除學生信息\n"); printf("\t3:查詢\n"); printf("\t4:排序\n");printf("\t5:顯示\n");printf("\t6:退出\n"); printf("\t請選擇輸入選項[1\\2\\3\\4\\5\\6]:\n"); do { c=getchar(); }while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&c!='6'); getchar(); switch(c) {case'1':add();break; case'2':del();break; case'3':query();break; case'4':sort();break;case'5':list();break;case'6':exit(0); } printf("按任意鍵返回主菜單:\n"); getchar(); system("cls"); }while(1);}voidadd(){EMPemploy; FILE*fp; /*以下為輸入學生信息代碼*/ printf("請輸入學生信息"); printf("\n學生號(整數0001—1999):");scanf("%d",&employ.number); getchar();printf("\n學生姓名:"); gets();printf("\n學生性別(請輸入男或女):"); gets(employ.sex);printf("\n學生年紀:"); scanf("%d",&employ.age);getchar();printf("\n學生成績:"); gets(employ.xueli);printf("\n學生班級:"); scanf("%f",&employ.salary);getchar();printf("\n學生地址:");gets(employ.address); printf("\n學生電話:"); gets(employ.tel);/*學生信息輸入代碼結束*/ printf("該學生信息為:%d%s%s%d%s%.2f%s%s\n",employ.number,,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel);/*將學生信息保留到文件中*/if((fp=fopen("XX.out","ab"))==NULL) {printf(""); getchar(); exit(0); }if(fwrite(&employ,sizeof(employ),1,fp)!=1) printf("filewriteerror\n");fclose(fp);/*保留學生信息代碼結束*/}voidquery(){intflag,number,count;EMPemploy; FILE*fp; charname[10]; printf("請輸入查找方法:"); printf("1--代表根據學生號2--代表根據姓名\n"); scanf("%d",&flag);getchar(); if(flag==1) {printf("請輸入學生號:"); scanf("%d",&number);getchar(); if((fp=fopen("XX.out","rb"))==NULL) {printf("cannotopenfileexit!"); getchar(); exit(0); }do { count=fread(&employ,sizeof(employ),1,fp);if(employ.number==number){printf("該學生信息為:%d%s%s%d%s%.2f%s%s\n",employ.number,,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel); break; } }while(count==1); //printf("%d",flag); fclose(fp); } else {printf("%d",flag); } printf("該學生不存在!\n");}voiddel(){intcount,i=0,number,j; FILE*fp; EMPemploy[MAX]; charflag;if((fp=fopen("XX.out","rb"))==NULL) {printf("cannotopenfileexit!"); getchar(); exit(0); }/*從文件中讀入數據*/ do{count=fread(&employ[i],sizeof(employ[0]),1,fp);if(count==1){i++;} }while(count==1); /*for(count=0;count<i;count++) printf("%d",employ[count].number); */ fclose(fp);printf("\n請輸入刪除學生學生號:"); scanf("%d",&number);getchar();printf("\n你確定刪除該學生嗎(y/n)");flag=getchar(); if(flag=='y'){ /*找被刪除下標識為count*/ for(count=0;count<i;count++) if(number==employ[count].number)break;/*以下為刪除代碼*/if(count<i){/*先將數組中信息刪除*/for(j=count+1;j<i;j++) { employ[j-1].number=employ[j].number; strcpy(employ[j-1].address,employ[j].address); employ[j-1].age=employ[j].age; strcpy(employ[j-1].name,employ[j].name); employ[j-1].salary=employ[j].salary; strcpy(employ[j-1].sex,employ[j].sex); strcpy(employ[j-1].tel,employ[j].tel); strcpy(employ[j-1].xueli,employ[j].xueli); } /*寫入刪除后數據*/ if((fp=fopen("XX.out","wb"))==NULL) {printf("cannotopenfileexit!"); getchar(); exit(0); }fwrite(employ,sizeof(employ[0]),i-1,fp);fclose(fp); } elseprintf("你輸入學生號不存在\n"); }}voidsort(){EMPemploy[MAX],temp; FILE*fp;intcount,n=0,flag,i,j;/*打開文件*/ if((fp=fopen("XX.out","rb"))==NULL) {printf("cannotopenfileexit!"); getchar(); exit(0); }/*從文件中讀入數據*/ do{count=fread(&employ[n],sizeof(employ[0]),1,fp);if(count==1){n++;} }while(count==1); fclose(fp);printf("1--代表根據學生號升序排序2--代表根據學生號降序排序\n"); scanf("%d",&flag);getchar(); if(flag==1){ //升序排序 for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) {if(employ[j].number>employ[j+1].number) {temp.number=employ[j].number;strcpy(,employ[j].name); strcpy(temp.sex,employ[j].sex); temp.age=employ[j].age;strcpy(temp.xueli,employ[j].xueli);temp.salary=employ[j].salary;strcpy(temp.address,employ[j].address); strcpy(temp.tel,employ[j].tel); employ[j].number=employ[j+1].number;strcpy(employ[j].name,employ[j+1].name); strcpy(employ[j].sex,employ[j+1].sex); employ[j].age=employ[j+1].age;strcpy(employ[j].xueli,employ[j+1].xueli);employ[j].salary=employ[j+1].salary;strcpy(employ[j].address,employ[j+1].address); strcpy(employ[j].tel,employ[j+1].tel);employ[j+1].number=temp.number;strcpy(employ[j+1].name,); strcpy(employ[j+1].sex,temp.sex); employ[j+1].age=temp.age;strcpy(employ[j+1].xueli,temp.xueli);employ[j+1].salary=temp.salary;strcpy(employ[j+1].address,temp.address); strcpy(employ[j+1].tel,temp.tel); } } } else{ //降序排序 for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) {if(employ[j].number<employ[j+1].number) {temp.number=employ[j].number;strcpy(,employ[j].name); strcpy(temp.sex,employ[j].sex); temp.age=employ[j].age;strcpy(temp.xueli,employ[j].xueli);temp.salary=employ[j].salary;strcpy(temp.address,employ[j].address); strcpy(temp.tel,employ[j].tel); employ[j].number=employ[j+1].number;strcpy(employ[j].name,employ[j+1].name); strcpy(employ[j].sex,employ[j+1].sex); employ[j].age=employ[j+1].age;strcpy(employ[j].xueli,employ[j+1].xueli);employ[j].salary=employ[j+1].salary;strcpy(employ[j].address,employ[j+1].address); strcpy(employ[j].tel,employ[j+1].tel);employ[j+1].number=temp.number;strcpy(employ[j+1].name,); strcpy(employ[j+1].sex,temp.sex); employ[j+1].age=temp.age;strcpy(employ[j+1].xueli,temp.xueli);employ[j+1].salary=temp.salary;strcpy(employ[j+1].address,temp.address); strcpy(employ[j+1].tel,temp.tel); } } }for(i=0;i<n;i++)printf("該學生信息為:%d%s%s%d%s%.2f%s%s\n",employ[i].number,employ[i].name,employ[i].sex,employ[i].age,employ[i].xueli,employ[i].salary,employ[i].address,employ[i].tel); }voidlist(){EMPemploy;FILE*fp;intcount;if((fp=fopen("XX.out","rb"))==NULL) {printf("cannotopenfileexit!"); getchar(); exit(0); }do{ count=fread(&employ,sizeof(employ),1,fp);if(count==1)printf("該學生信息為:%d%s%s%d%s%.2f%s%s\n",employ.number,,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel);}while(count==1);fclose(fp);}6.2進制算法設計#include<stdio.h>#include<malloc.h>//malloc函數頭文件#defineINITSIZE100//初始分配空間大小typedefintElemType;//要據需要定義數據類型typedefstruct{ElemType*data;//用于存放元素動態數組空間inttop;//棧頂指針intstacksize;//目前棧空間長度}linkStack;voidinitstack(linkStack*s)//初始化棧{s->data=(ElemType*)malloc(INITSIZE*sizeof(ElemType));//分配空間s->top=0;//棧頂指針初始化s->stacksize=INITSIZE;//初始化棧空間}intpush(linkStack*s,ElemTypex)//元素入棧{if(s->top>s->stacksize)//假如分配空間已滿,從新分配{s->data=(ElemType*)realloc(s->data,(s->stacksize+1)*sizeof(ElemType));if(!s->data)return0;//分配失敗,反回零s->stacksize++;//增加空間大小}s->data[s->top++]=x;//把元素X入棧return1;}intpop(linkStack*s)//元素出棧{if(s->top==0)return0;returns->data[--s->top];}voidlist(linkStacks)//輸出棧內元素{inti,hex;charchhex;for(i=s.top-1;i>=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3-12競爭和冒險1-邏輯冒險的判斷
- 山東省名校聯盟2024?2025學年高一下學期3月校際聯考 數學試題(含解析)
- 右江民族醫學院《有機化學B》2023-2024學年第二學期期末試卷
- 瀟湘職業學院《建筑工程質量與安全》2023-2024學年第二學期期末試卷
- 南昌大學科學技術學院《工程項目與質量管理》2023-2024學年第二學期期末試卷
- 陜西省西安市交大附中2024-2025學年第二學期十二月份月考英語試題含答案
- 濮陽科技職業學院《西方文學(上)》2023-2024學年第二學期期末試卷
- 廈門大學嘉庚學院《現代科學與工程計算(二)》2023-2024學年第二學期期末試卷
- 山西晉中理工學院《藥用動物學實驗》2023-2024學年第二學期期末試卷
- 上海嘉定區2025年高三零診綜合試題含解析
- 2025-2030中國硫酸銨行業市場運行分析及競爭格局與投資發展研究報告
- 北京市海淀區2024-2025學年第二學期期中練習暨海淀高三高三一模(海淀一模)(英語試卷+答案 )
- 2025年03月四川天府新區“蓉漂人才薈”事業單位(13人)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年高考物理壓軸題專項訓練:用力學三大觀點處理多過程運動問題(原卷版)
- 2024年河南輕工職業學院單招職業適應性測試題庫必考題
- 中醫藥行業數字化轉型的機遇與挑戰
- 育種學 課件 第9章 林木抗逆性育種學習資料
- 工程塑膠材料采購合同(2篇)
- 新污染物環境風險評估:理論與制度構建
- 2025中考英語沖刺-傳統文化詩詞
- 金融科技學知到智慧樹章節測試課后答案2024年秋重慶工商大學
評論
0/150
提交評論