版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、;.北方民族大學課程設計 課程名稱: 高 級 語 言 程 序 設 計 院(部)名 稱: 信息與計算科學學院 組長姓名學號: 曹永利 20124473 同組人員姓名: 張婷、馬義花 指導教師姓名: 董建強 設 計 時 間: 2013年 6、76、27 個人程序設計(一)曹永利: 1、編寫冒泡排序和選擇排序的程序,主函數(shù)中編寫菜單調(diào)用排序函數(shù)。#include<stdio.h>void sort(int a, int size) int i,j; for(i=0;i<size-1;i+) for(j=0;j<size-i-1;j+) if(aj>aj+1) int t
2、; t=aj; aj=aj+1; aj+1=t; main() int i,a10;for(i=0;i<10;i+) scanf("%d",&ai); sort(a,10); for(i=0;i<10;i+) printf("%4d",ai); printf("n"); 6、從文件讀入一個字符處,統(tǒng)計該字符串中單詞的個數(shù)單詞之間用空格分開,空格數(shù)可以是多個。#include<stdio.h>#include<stdlib.h>#define IN 1#define OUT 0int main
3、() char szFilename256; FILE *fp; printf("input the file:"); scanf("%s",szFilename); if(fp=fopen(szFilename,"r")=NULL) printf("the file don't exist!"); exit(1); int flag=OUT; int c; int nw=0; while(c=fgetc(fp)!=EOF) if(c=' ') flag=OUT; else if(OUT=f
4、lag) flag=IN; nw+; printf("THe num is:%dn",nw); return 0; 24.輸入學生人數(shù)后輸入每個學生的成績,最后輸出學生的平均成績以及最高成績和最低成績的學生學號、姓名和成績。要求用動態(tài)分配存儲空間來實現(xiàn)(學生信息包括學號、姓名、成績)#include<stdio.h>#include<malloc.h>int main() int *p, m, i, total = 0, max = 0, min = 100; printf("輸入學生人數(shù)"); scanf("%d&qu
5、ot;, &m); p = (int *)malloc(m * sizeof(m); for(i = 0; i < m; +i) printf("輸入第%d個成績", i + 1); scanf("%d", &pi); total += pi; if(max < pi) max = pi; if(min > pi) min = pi; printf("成績的和是%dnmax = %dnmin= %d", total, max, min); 個人程序設計(二)張婷: 9,輸出100-2000之間的所有素
6、數(shù),每行輸出8個。要求調(diào)用求素數(shù)函數(shù)# include <stdio.h># include <math.h>int main(void)int count,i,m,n;count=0;for(m=100;m<=2000;m+)n=sqrt(m);for(i=2;i<=n;i+)if(m%i=0)break;if(i>n)printf("%6d",m);count+;if(count%8=0)printf("n");printf("n");return 0;#include <stdio
7、.h>int main(void)long a;int b50,n,i;scanf("%ld",&a);i=0;while(a>9)bi=a%10;a/=10;i+;bi=a;for(;i>=0;i-)printf("%d",bi);if(i!=0)printf(",");printf("n");,22,用遞歸法實現(xiàn)一個正整數(shù)的逆序輸出。# include <stdio.h>void printData(int data)if(data=0)return;printf(&quo
8、t;%d",data%10);printData(data/10);int main()int data;printf("Enter a number:");scanf("%d",&data);printData(data);printf("n");return 0;23,輸入一個長整形數(shù),從高位開始逐位分割并輸出。如輸入123456,逐位輸出1,2,3,4,5,6.#include <stdio.h>int main(void)long a;int b50,n,i;scanf("%ld&quo
9、t;,&a);i=0;while(a>9)bi=a%10;a/=10;i+;bi=a;for(;i>=0;i-)printf("%d",bi);if(i!=0)printf(",");printf("n");個人程序設計(三)馬義花:2編寫順序查找和二分查找程序,主函數(shù)中編寫菜單調(diào)用查找函數(shù)。#include<stdio.h>int shunxuchazhao(int a,int n,int x)/順序查找 int i; for(i=0;i<n;i+) if(x=ai) return i; ret
10、urn -1;int erfenchazhao(int a,int s,int e,int x) / 二分查找 int index=(s+e)/2; if(aindex=x) return index; else if(aindex>x) e=index; return erfenchazhao(a,s,e,x); else if(aindex<x) s=index; return erfenchazhao(a,s,e,x); return -1;int main()int a=1,2,3,4,5,6,7,8,9;int i,chose,index=-1;printf("
11、輸入1順序查找 輸入2二分查找 輸入其他退出程序");scanf("%d",&chose);switch(chose) case 1: index=shunxuchazhao(a,8,2);break; case 2: index=erfenchazhao(a,1,8,2);break; default:return 0;printf("index=%dn",index);4自己編寫字符串求長、拷貝、連接、刪除、插入指定字符的函數(shù),要求主函數(shù)中編寫菜單,可以分別實現(xiàn)調(diào)用。#include<stdio.h>#include&l
12、t;string.h>#include<stdlib.h>int getLenth(char *s) /求長度 int i=0; for(i=0;si!='0'i+) return i;char* copyString(char *s) /復制 int n=strlen(s); int i; char *cs=(char *)malloc(n*sizeof(char); for(i=0;i<n;i+) csi=si; return cs;char* lianjie(char *s1,char *s2) int n1=strlen(s1); int n2=
13、strlen(s2); int i,j; char *cs=(char *)malloc(n1+n2)*sizeof(char); for(i=0;i<n1;i+) csi=s1i; j=0; for(i=n1;i<n1+n2;i+) csi=s2j+; return cs;char* insert(char *s,int index,char ch) int n=strlen(s); int i,j; char *cs=(char *)malloc(n+1)*sizeof(char); for(i=0;i<index;i+) csi=si; for(i=index;i<
14、;n;i+) csi+1=si; csindex=ch; csn+1='0' s=cs; return s;int main() int chose; char *s="12345" char *s1="qwe" char *s2="qqqqqqqqqqqqqqqqqqqqqqqqq" printf("輸入1求長度 輸入2復制 輸入3鏈接 輸入4插入字符 輸入其他退出程序"); scanf("%d",&chose);switch(chose)case 1: printf(
15、"lenth=%dn",getLenth(s);break;case 2: printf("復制出的字符串是"); puts(copyString(s);break;case 3: printf("連接成的新的字符串是"); puts(lianjie(s1,s2);break;case 4: printf("插入字符后新的字符串是"); puts(insert(s,2,'y');break; default: return 0;12、 利用結構體變量求兩個復數(shù)的和、差、積。要求設計一個菜單分別調(diào)用函
16、數(shù)。#include <stdio.h>typedef struct TYPE_PLURALdouble realpart;double imaginarypart; plural;plural operator*(const plural &lp,const plural &rp)plural rtn;rtn.realpart = lp.realpart*rp.realpart - lp.imaginarypart*rp.imaginarypart;rtn.imaginarypart = lp.imaginarypart*rp.realpart + lp.real
17、part*rp.imaginarypart;return rtn;int main(int argc, char* argv)plural plr_a=5,10;plural plr_b=2,3;plural plr_c = plr_a*plr_b;小組設計 1:銷售管理系統(tǒng) 某公司有四個銷售員(編號:1-4),負責銷售五種產(chǎn)品(編號:1-5)。每個銷售員都將當天出售的每種產(chǎn)品各寫一張便條交上來。每張便條包含內(nèi)容: 1)銷售員的代號 2)產(chǎn)品的代號 3)這種產(chǎn)品的當天的銷售額 每位銷售員每天可能上繳0-5張便條。假設,收集到了上個月的所有便條,編寫一個處理系統(tǒng),讀取上個月的銷售情況(自己設定)
18、,進行如下處理。1)計算上個月每個人每種產(chǎn)品的銷售額。 2)按銷售額對銷售員進行排序,輸出排序結果(銷售員代號)3)統(tǒng)計每種產(chǎn)品的總銷售額,對這些產(chǎn)品按從高到底的順序,輸出排序結果(需輸出產(chǎn)品的代號和銷售額) 4)輸出統(tǒng)計報表 一:設計目的通過本次實訓使我們在實際應用中熟悉C語言編程步驟,掌握編程方法,并具有初步的編程能力。C語言課程設計是教學實踐環(huán)節(jié)中一項重要內(nèi)容,進行此課程設計旨在:提高和加強學生的計算機應用及軟件開發(fā)能力,使學生具備初級程序員的基本素質(zhì);培養(yǎng)學生獨立分析問題、解決問題、查閱資料以及自學能力,以適應信息管理行業(yè)日新月異的發(fā)展形勢;本次課程設計是以學生獨立思考解決問題為主,教
19、師指導為輔,結合上機操作,完成指定的任務,作出設計報告。二:總體設計 程序流程圖程序整體流程圖如圖A所示:#include<stdio.h># include <math.h> int main(void) int count,m; int prime(int m); count=0; for(m=100;m<=2000;m+) if(prime(m) printf("%6d",m); count+; if(count%8=0)printf("n"); printf("n"); 圖A整體流程圖 三:詳細設
20、計 模塊詳細說明 系統(tǒng)的功能是通過子函數(shù)調(diào)用的方式來完成的,下面對程序中用到的函數(shù)及其功能做一下說明。l void menu():顯示主菜單界面。l void data_count(data *x):以寫方式打開文件,對商品信息清零,讀入職工編號、產(chǎn)品編號、銷售量等信息,對相同職工的相同產(chǎn)品的銷售量求和后寫入文件。l void range_sxy(data *x):以讀方式打開文件,讀入信息,輸入按何種產(chǎn)品排序后對存儲職工編號的數(shù)組進行排序,最后輸出新序的職工編號信息。l void range_shangpin(data *x):從文件讀入信息,對每項產(chǎn)品的銷售量求和,按每項產(chǎn)品的總銷售量排序
21、。l void data_out(data *x):打開文件,讀入信息,求所有產(chǎn)品的銷售量的和,輸出統(tǒng)計表。l void main():主函數(shù),調(diào)用以上函數(shù),完成相應功能。l四: 調(diào)試及測試系統(tǒng)初始運行時,會顯示如圖1所示的菜單界面,用戶可以根據(jù)提示,進行相應的選擇,來完成系統(tǒng)提供的各種功能。圖1輸入界面當選擇1時,系統(tǒng)調(diào)用函數(shù)void data_count(data *x),完成相應的功能。運行界面如圖2所示,系統(tǒng)會要求用戶輸入月份,然后要求輸入這個月份中是哪個職工銷售的哪項產(chǎn)品的數(shù)量的具體信息,我們的系統(tǒng)假設有四個職工,職工編號從1至4,一共有5項產(chǎn)品,產(chǎn)品編號從1至5。職工和產(chǎn)品的數(shù)目都
22、可以更改,只要修改一下程序中的宏定義語句即可。圖2計算產(chǎn)品銷售額界面當選擇2時,系統(tǒng)調(diào)用void range_sxy(data *x),完成相應部分的功能。運行界面如圖3所示,系統(tǒng)會要求用戶輸入月份,然后排序的產(chǎn)品編號,最后給出此項產(chǎn)品的按照銷售量的大小進行的銷售員的編號的排序情況。 圖3按銷售額對銷售員排序的界面當選擇3時,系統(tǒng)調(diào)用void range_shangpin(data *x),完成對每項商品的總銷售量排序的功能,運行界面如圖4-4所示:圖4產(chǎn)品總銷售額排序界面當選擇4時,系統(tǒng)調(diào)用void data_out(data *x),完成輸出統(tǒng)計表的功能,統(tǒng)計內(nèi)容如圖5所示:圖5統(tǒng)計報表界
23、面運行說明首次打開系統(tǒng)必須輸入一部分員工信息,如果沒有員工信息文件,除了輸入功能以外,其它的功能將自動禁止, 按任意鍵退出程序。輸入時,按照提示陸續(xù)輸入每個員工的單個信息,輸入完畢,選擇“0”,程序?qū)⒆詣踊氐讲藛芜x擇界面。其它的功能模塊都在執(zhí)行程序時有相應的提示,非常容易操作。五:源程序清單:#include <stdio.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define Z 5#define R 4 /*定義宏常量便于程序的一般化*/ /*R表示銷售員個數(shù)*/ty
24、pedef struct /*縮短結構體變量名*/ int shangpinZ; /*定義結構體便于信息的存儲和讀寫,辨別*/ /*z是表示商品的種類,最后一個為該銷售員商品總和*/data;void menu() printf(" *n"); printf(" 0.結束操作n"); printf(" 1.計算上個月每個人每種產(chǎn)品的銷售額n"); printf(" 2.按銷售額對銷售員進行排序,輸出排序結果n"); printf(" 3.統(tǒng)計每種產(chǎn)品的總銷售額,輸出排序結果n"); printf
25、(" 4.輸出統(tǒng)計報表n"); printf(" *n");void data_count(data *x) /*計算上個月每個人每種產(chǎn)品的銷售額*/ FILE *fp; char fname10; int j,t; /*用于控制循環(huán)*/ int i,k,s; /*用于定義職工序號,產(chǎn)品序號,產(chǎn)品數(shù)量*/ system("cls"); printf("您想計算哪個月?n"); printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息寫入*/ scanf("%s&qu
26、ot;,fname); strcat(fname,".txt"); if(fp=fopen(fname,"wb")=NULL) /*打開文件*/ printf("can not open the filen"); exit(0); for(j=0;j<R;j+) /*對商品數(shù)量清零*/ for(t=0;t<Z;t+) (x+j)->shangpint=0; printf("please put the information about the 職工編號,產(chǎn)品編號,銷售數(shù)量n"); /*寫入信息*
27、/ for(j=0;j+) scanf("%d%d%d",&i,&k,&s); if(i=0) /*輸入職工為0時結束信息輸入*/ break; if(i>R|i<0|k>Z|k<0) printf("the information error!n"); /*避免輸入信息出錯*/ continue; else (x+i-1)->shangpink-1=(x+i-1)->shangpink-1+s;/*統(tǒng)計各個人的各種產(chǎn)品的數(shù)量,-1為了和數(shù)組中的序號相匹配*/ for(j=0;j<R;j+
28、) if(fwrite(x+j),sizeof(data),1,fp)!=1) /*把信息寫入文件中便有以后調(diào)用*/ printf("write error!n"); fclose(fp); /*關閉文件避免信息遺漏*/void range_sxy(data *x) /*按銷售額對銷售員進行排序,輸出排序結果*/ FILE *fp; char fname10; int i,k,j,t,bianhaoR=0,z; system("cls"); printf("你要哪個月的?n"); printf("請輸入月份:");
29、 /*輸入文件名,這樣可以進行各個月份信息讀入*/ scanf("%s",fname); strcat(fname,".txt"); if(fp=fopen(fname,"rb")=NULL) /*打開文件*/ printf("can not open the filen"); exit(0); for(i=0;i<R;i+) /*讀出信息*/ if(fread(x+i,sizeof(data),1,fp)!=1) printf("讀入信息出錯!"); /*讀入信息提示*/ for(i=0
30、;i<R;) /*用于存儲職工編號*/ bianhaoi=i+; printf("請輸入按何種產(chǎn)品排序n"); scanf("%d",&k); k=k-1; /*便于與結構體中的數(shù)組值對應*/ for(i=0;i<R;i+) /*按K種產(chǎn)品對銷售員排序,選擇法排序*/ t=i; for(j=i+1;j<R;j+) if(x+bianhaot)->shangpink<(x+bianhaoj)->shangpink)/*調(diào)用職工各自對應的結構體內(nèi)的產(chǎn)品數(shù)量*/ t=j; if(t!=i) z=bianhaoi; b
31、ianhaoi=bianhaot; bianhaot=z; printf("按%d產(chǎn)品對銷售員排序為:n",k+1); for(i=0;i<R;i+) printf("%5d",bianhaoi+1); getch(); fclose(fp);void range_shangpin(data *x) /*統(tǒng)計每種產(chǎn)品的總銷售額,輸出排序結果*/ FILE *fp; char fname10; int i,j,sumZ=0,bianhaoZ=0,z,t,k; system("cls"); printf("您想計算哪個月的
32、?n"); printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息讀入*/ scanf("%s",fname); strcat(fname,".txt"); if(fp=fopen(fname,"rb")=NULL) /*打開文件*/ printf("can not open the filen"); exit(0); for(i=0;i<R;i+) /*讀出信息*/ if(fread(x+i,sizeof(data),1,fp)!=1) printf(&q
33、uot;讀入信息出錯!"); for(i=0;i<Z;i+) /*對各種商品求和*/ for(j=0;j<R;j+) sumi=sumi+(x+j)->shangpini; for(i=0;i<Z;) /*用于存儲商品編號*/ bianhaoi=i+; for(i=0;i<Z;i+) printf("%3d",bianhaoi); for(i=0;i<Z;i+) /*對產(chǎn)品從高到低排序,選擇法排序*/ t=i; for(j=i+1;j<Z;j+) /*產(chǎn)品變化時,產(chǎn)品編號也隨之變化,便于輸出*/ if(sumt<su
34、mj) t=j; if(t!=i) k=sumi; sumi=sumt; sumt=k; z=bianhaoi; bianhaoi=bianhaot; bianhaot=z; printf("輸出產(chǎn)品排序n"); printf("產(chǎn)品編號 數(shù)量n"); for(i=0;i<Z;i+) printf("%-10d%-10dn",bianhaoi+1,sumi); getch(); fclose(fp);void data_out(data *x) /*輸出統(tǒng)計報表*/ FILE *fp; char fname10; int i,j,sumZ+1=0; system("cls"); printf("您想計算哪個月?n"); printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息讀入*/ scanf("%s",fname); strcat(fname,".txt"); if(fp=fopen(fname,"rb")=NULL) /*打開文
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版某三期護坡樁工程施工過程監(jiān)測與評估合同4篇
- 2025年度生態(tài)地板安裝與環(huán)保認證服務合同4篇
- 二零二五年度品牌推廣電子商務B2B購銷數(shù)字資產(chǎn)交易合同4篇
- 2025年度文化創(chuàng)意產(chǎn)業(yè)聘用員工勞動合同標準文本4篇
- 二零二五年度健康食品品牌形象設計與市場推廣合同3篇
- 二零二五年度生態(tài)農(nóng)場果品出口貿(mào)易合同4篇
- 二零二五年度家政服務合同中退款條款
- 二零二五年度商業(yè)空間面積調(diào)整補充合同4篇
- 2025年美發(fā)店大數(shù)據(jù)分析與營銷策略合作合同協(xié)議書
- 課題申報參考:媒介化加速視域下社交媒體新個體文化的建構與引導研究
- 【語文】第23課《“蛟龍”探海》課件 2024-2025學年統(tǒng)編版語文七年級下冊
- 加強教師隊伍建設教師領域?qū)W習二十屆三中全會精神專題課
- 2025警察公安派出所年終總結工作匯報
- 2024-2025學年人教版數(shù)學七年級上冊期末復習卷(含答案)
- 2024年決戰(zhàn)行測5000題言語理解與表達(培優(yōu)b卷)
- 四年級數(shù)學上冊人教版24秋《小學學霸單元期末標準卷》考前專項沖刺訓練
- 中國游戲發(fā)展史課件
- (完整版)減數(shù)分裂課件
- 銀行辦公大樓物業(yè)服務投標方案投標文件(技術方案)
- 第01講 直線的方程(九大題型)(練習)
- 微粒貸逾期還款協(xié)議書范本
評論
0/150
提交評論