c課程設計總結
『壹』 c語言課程設計
#include <stdio.h>
int z;
void p(int *x, int y)
{ ++*x;
y--;
z=*x+y+z;
printf("%d, %d, %d#", *x, y, z);
}
void main()
{ int x=1, y=5, z=9;
p(&x, y);
printf("%d, %d, %d#", x, y, z);
}
『貳』 c語言課程設計 心得誰能幫我編幾句啊
經過此次上機實驗,我對C語言的理解又更進一步,對學好它更有信心了…………我一般是這樣的
『叄』 c語言課程設計報告
自己編的,你修改下就是了,
滿意請採納。
#include"stdio.h"
#define SIZE 5
struct stu
{
char name[10];
int no;
int age;
char add[10];
}stu[SIZE];
void readdat();
void writedat();
void change();
main()
{
char k;
printf(" 歡迎進入學生信息管理系統\n");
printf("\n\n 1.學生信息輸入系統 ");
printf(" 2.學生信息查詢系統\n");
printf(" 3.學生信息修改系統\n\n\n");
began:
printf("\n\n請輸入選項:");
scanf("%d",&k);
switch(k)
{
case 1: writedat(); break;
case 2: readdat(); break;
case 3: change(); break;
default: goto began;
}
goto began;
while(1);
}
void writedat()
{
FILE *fp;
char i;
printf("\n\n請輸入學生的姓名、學號、年齡和地址:\n");
for(i=0;i<SIZE;i++)
{
printf("輸入%d號學生信息:",i+1);
scanf("%s %d %d %s",stu[i].name,&stu[i].no,&stu[i].age,stu[i].add);
}
if((fp=fopen("E:\\a.dat","wb"))==NULL)
{
printf("Open Error\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&stu[i],sizeof(struct stu),1,fp)!=1)
printf("write error\n");
}
fclose(fp);
}
void readdat()
{
FILE *fp;
int i,k,kk;
jixu:
printf("查詢全部請輸入0,查詢單個請輸入1:");
scanf("%d",&k);
if((fp=fopen("E:\\a.dat","rb"))==NULL)
{
printf("Read Error\n");
return;
}
if(k==0)
{
printf("編號 姓名 學號 年齡 地址\n");
for(i=0;i<SIZE;i++)
{
if(fread(&stu[i],sizeof(struct stu),1,fp)!=1)
{
if(!feof(fp))
printf("write error\n");
return;
}
printf("%-5d%-8s%-8d%-5d%s\n",i+1,stu[i].name,stu[i].no,stu[i].age,stu[i].add);
}
}
else if(k==1)
{
printf("請輸入學生的編號:");
scanf("%d",&kk);
printf("編號 姓名 學號 年齡 地址\n");
if(fread(&stu[kk-1],sizeof(struct stu),1,fp)!=1)
{
if(!feof(fp))
printf("write error\n");
return;
}
printf("%-5d%-8s%-8d%-5d%s\n",kk,stu[kk-1].name,stu[kk-1].no,stu[kk-1].age,stu[kk-1].add);
}
else
{
printf("輸入錯誤!");
goto jixu;
}
fclose(fp);
}
void change()
{
FILE *fp;
char i,kk;
while(1)
{
printf("請輸入修改信息學生的編號(0退出):");
scanf("%d",&kk);
if(kk==0)
return;
printf("編號 姓名 學號 年齡 地址\n");
if((fp=fopen("E:\\a.dat","rb"))==NULL)
{
printf("Read Error\n");
return;
}
for(i=0;i<SIZE;i++)
if(fread(&stu[i],sizeof(struct stu),1,fp)!=1)
{
if(!feof(fp))
printf("write error\n");
return;
}
printf("%-5d%-8s%-8d%-5d%s\n",kk,stu[kk-1].name,stu[kk-1].no,stu[kk-1].age,stu[kk-1].add);
printf("請輸入學生的姓名、學號、年齡和地址:\n");
scanf("%s %d %d %s",stu[kk-1].name,&stu[kk-1].no,&stu[kk-1].age,stu[kk-1].add);
if((fp=fopen("E:\\a.dat","wb"))==NULL)
{
printf("Open Error\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&stu[i],sizeof(struct stu),1,fp)!=1)
printf("write error\n");
}
fclose(fp);
}
}
『肆』 C課程設計
/******頭文件(.h)***********/
#include "stdio.h" /*I/O函數*/
#include "stdlib.h" /*標准庫函數*/
#include "string.h"/*字元串函數*/
#include "ctype.h" /*字元操作函數*/
#define M 50 /*定義常數表示記錄數*/
typedef struct /*定義數據結構*/
{
char name[20]; /*姓名*/
char units[30]; /*單位*/
char tele[10]; /*電話*/
}ADDRESS;
/******以下是函數原型*******/
int enter(ADDRESS t[]); /*輸入記錄*/
void list(ADDRESS t[],int n); /*顯示記錄*/
void search(ADDRESS t[],int n); /*按姓名查找顯示記錄*/
int delete(ADDRESS t[],int n); /*刪除記錄*/
int add(ADDRESS t[],int n); /*插入記錄*/
void save(ADDRESS t[],int n); /*記錄保存為文件*/
int load(ADDRESS t[]); /*從文件中讀記錄*/
void display(ADDRESS t[]); /*按序號查找顯示記錄*/
void sort(ADDRESS t[],int n); /*按姓名排序*/
void qseek(ADDRESS t[],int n); /*快速查找記錄*/
void (); /*文件復制*/
void print(ADDRESS temp); /*顯示單條記錄*/
int find(ADDRESS t[],int n,char *s) ; /*查找函數*/
int menu_select(); /*主菜單函數*/
/******主函數開始*******/
main()
{
int i;
ADDRESS adr[M]; /*定義結構體數組*/
int length; /*保存記錄長度*/
clrscr(); /*清屏*/
for(;;)/*無限循環*/
{
switch(menu_select()) /*調用主菜單函數,返回值整數作開關語句的條件*/
{
case 0:length=enter(adr);break;/*輸入記錄*/
case 1:list(adr,length);break; /*顯示全部記錄*/
case 2:search(adr,length);break; /*查找記錄*/
case 3:length=delete(adr,length);break; /*刪除記錄*/
case 4:length=add(adr,length); break; /*插入記錄*/
case 5:save(adr,length);break; /*保存文件*/
case 6:length=load(adr); break; /*讀文件*/
case 7:display(adr);break; /*按序號顯示記錄*/
case 8:sort(adr,length);break; /*按姓名排序*/
case 9:qseek(adr,length);break; /*快速查找記錄*/
case 10:();break; /*復制文件*/
case 11:exit(0); /*如返回值為11則程序結束*/
}
}
}
/*菜單函數,函數返回值為整數,代表所選的菜單項*/
menu_select()
{
char s[80];
int c;
gotoxy(1,25);/*將游標定為在第25行,第1列*/
printf("press any key enter menu......\n");/*提示壓任意鍵繼續*/
getch(); /*讀入任意字元*/
clrscr(); /*清屏*/
gotoxy(1,1);
printf("********************MENU*********************\n\n");
printf(" 0. Enter record\n");
printf(" 1. List the file\n");
printf(" 2. Search record on name\n");
printf(" 3. Delete a record\n");
printf(" 4. add record \n");
printf(" 5. Save the file\n");
printf(" 6. Load the file\n");
printf(" 7. display record on order\n");
printf(" 8. sort to make new file\n");
printf(" 9. Quick seek record\n");
printf(" 10. the file to new file\n");
printf(" 11. Quit\n");
printf("***********************************************\n");
do{
printf("\n Enter you choice(0~11):"); /*提示輸入選項*/
scanf("%s",s); /*輸入選擇項*/
c=atoi(s); /*將輸入的字元串轉化為整型數*/
}while(c<0||c>11); /*選擇項不在0~11之間重輸*/
return c; /*返回選擇項,主程序根據該數調用相應的函數*/
}
/***輸入記錄,形參為結構體數組,函數值返回類型為整型表示記錄長度*/
int enter(ADDRESS t[])
{
int i,n;
char *s;
clrscr(); /*清屏*/
printf("\nplease input num \n"); /*提示信息*/
scanf("%d",&n); /*輸入記錄數*/
printf("please input record \n"); /*提示輸入記錄*/
printf("name unit telephone\n");
printf("------------------------------------------------\n");
for(i=0;i<n;i++)
{
scanf("%s%s%s",t[i].name,t[i].units,t[i].tele); /*輸入記錄*/
printf("----------------------------------------------\n");
}
return n; /*返回記錄條數*/
}
/*顯示記錄,參數為記錄數組和記錄條數*/
void list(ADDRESS t[],int n)
{
int i;
clrscr();
printf("\n\n*******************ADDRESS******************\n");
printf("name unit telephone\n");
printf("------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%-20s%-30s%-10s\n",t[i].name,t[i].units,t[i].tele);
if((i+1)%10==0) /*判斷輸出是否達到10條記錄*/
{
printf("Press any key continue...\n"); /*提示信息*/
getch(); /*壓任意鍵繼續*/
}
printf("************************end*******************\n");
}
/*查找記錄*/
void search(ADDRESS t[],int n)
{
char s[20]; /*保存待查找姓名字元串*/
int i; /*保存查找到結點的序號*/
clrscr(); /*清屏*/
printf("please search name\n");
scanf("%s",s); /*輸入待查找姓名*/
i=find(t,n,s); /*調用find函數,得到一個整數*/
if(i>n-1) /*如果整數i值大於n-1,說明沒找到*/
printf("not found\n");
else
print(t[i]); /*找到,調用顯示函數顯示記錄*/
}
/*顯示指定的一條記錄*/
void print(ADDRESS temp)
{
clrscr();
printf("\n\n********************************************\n");
printf("name unit telephone\n");
printf("------------------------------------------------\n");
printf("%-20s%-30s%-10s\n",temp.name,temp.units,temp.tele);
printf("**********************end***********************\n");
}
/*查找函數,參數為記錄數組和記錄條數以及姓名s */
int find(ADDRESS t[],int n,char *s)
{
int i;
for(i=0;i<n;i++)/*從第一條記錄開始,直到最後一條*/
{
if(strcmp(s,t[i].name)==0) /*記錄中的姓名和待比較的姓名是否相等*/
return i; /*相等,則返回該記錄的下標號,程序提前結結束*/
}
return i; /*返回i值*/
}
/*刪除函數,參數為記錄數組和記錄條數*/
int delete(ADDRESS t[],int n)
{
char s[20]; /*要刪除記錄的姓名*/
int ch=0;
int i,j;
printf("please deleted name\n"); /*提示信息*/
scanf("%s",s);/*輸入姓名*/
i=find(t,n,s); /*調用find函數*/
if(i>n-1) /*如果i>n-1超過了數組的長度*/
printf("no found not deleted\n"); /*顯示沒找到要刪除的記錄*/
else
{
print(t[i]); /*調用輸出函數顯示該條記錄信息*/
printf("Are you sure delete it(1/0)\n"); /*確認是否要刪除*/
scanf("%d",&ch); /*輸入一個整數0或1*/
if(ch==1) /*如果確認刪除整數為1*/
{
for(j=i+1;j<n;j++) /*刪除該記錄,實際後續記錄前移*/
{
strcpy(t[j-1].name,t[j].name); /*將後一條記錄的姓名拷貝到前一條*/
strcpy(t[j-1].units,t[j].units); /*將後一條記錄的單位拷貝到前一條*/
strcpy(t[j-1].tele,t[j].tele); /*將後一條記錄的電話拷貝到前一條*/
}
n--; /*記錄數減1*/
}
}
return n; /*返回記錄數*/
}
/*插入記錄函數,參數為結構體數組和記錄數*/
int add(ADDRESS t[],int n)/*插入函數,參數為結構體數組和記錄數*/
{
ADDRESS temp; /*新插入記錄信息*/
int i,j;
char s[20]; /*確定插入在哪個記錄之前*/
printf("please input record\n");
printf("************************************************\n");
printf("name unit telephone\n");
printf("--------------------------------------------------\n");
scanf("%s%s%s",temp.name,temp.units,temp.tele); /*輸入插入信息*/
printf("------------------------------------------------\n");
printf("please input locate name \n");
scanf("%s",s); /*輸入插入位置的姓名*/
i=find(t,n,s); /*調用find,確定插入位置*/
for(j=n-1;j>=i;j--) /*從最後一個結點開始向後移動一條*/
{
strcpy(t[j+1].name,t[j].name); /*當前記錄的姓名拷貝到後一條*/
strcpy(t[j+1].units,t[j].units); /*當前記錄的單位拷貝到後一條*/
strcpy(t[j+1].tele,t[j].tele); /*當前記錄的電話拷貝到後一條*/
}
strcpy(t[i].name,temp.name); /*將新插入記錄的姓名拷貝到第i個位置*/
strcpy(t[i].units,temp.units); /*將新插入記錄的單位拷貝到第i個位置*/
strcpy(t[i].tele,temp.tele); /*將新插入記錄的電話拷貝到第i個位置*/
n++; /*記錄數加1*/
return n; /*返回記錄數*/
}
/*保存函數,參數為結構體數組和記錄數*/
void save(ADDRESS t[],int n)
{
int i;
FILE *fp; /*指向文件的指針*/
if((fp=fopen("record.txt","wb"))==NULL) /*打開文件,並判斷打開是否正常*/
{
printf("can not open file\n");/*沒打開*/
exit(1); /*退出*/
}
printf("\nSaving file\n"); /*輸出提示信息*/
fprintf(fp,"%d",n); /*將記錄數寫入文件*/
fprintf(fp,"\r\n"); /*將換行符號寫入文件*/
for(i=0;i<n;i++)
{
fprintf(fp,"%-20s%-30s%-10s",t[i].name,t[i].units,t[i].tele);/*格式寫入記錄*/
fprintf(fp,"\r\n"); /*將換行符號寫入文件*/
}
fclose(fp);/*關閉文件*/
printf("****save success***\n"); /*顯示保存成功*/
}
/*讀入函數,參數為結構體數組*/
int load(ADDRESS t[])
{
int i,n;
FILE *fp; /*指向文件的指針*/
if((fp=fopen("record.txt","rb"))==NULL)/*打開文件*/
{
printf("can not open file\n"); /*不能打開*/
exit(1); /*退出*/
}
fscanf(fp,"%d",&n); /*讀入記錄數*/
for(i=0;i<n;i++)
fscanf(fp,"%20s%30s%10s",t[i].name,t[i].units,t[i].tele); /*按格式讀入記錄*/
fclose(fp); /*關閉文件*/
printf("You have success read data from file!!!\n"); /*顯示保存成功*/
return n; /*返回記錄數*/
}
/*按序號顯示記錄函數*/
void display(ADDRESS t[])
{
int id,n;
FILE *fp; /*指向文件的指針*/
if((fp=fopen("record.txt","rb"))==NULL) /*打開文件*/
{
printf("can not open file\n"); /*不能打開文件*/
exit(1); /*退出*/
}
printf("Enter order number...\n"); /*顯示信息*/
scanf("%d",&id); /*輸入序號*/
fscanf(fp,"%d",&n); /*從文件讀入記錄數*/
if(id>=0&&id<n) /*判斷序號是否在記錄范圍內*/
{
fseek(fp,(id-1)*sizeof(ADDRESS),1); /*移動文件指針到該記錄位置*/
print(t[id]); /*調用輸出函數顯示該記錄*/
printf("\r\n");
}
else
printf("no %d number record!!!\n ",id); /*如果序號不合理顯示信息*/
fclose(fp); /*關閉文件*/
}
/*排序函數,參數為結構體數組和記錄數*/
void sort(ADDRESS t[],int n)
{
int i,j,flag;
ADDRESS temp; /*臨時變數做交換數據用*/
for(i=0;i<n;i++)
{
flag=0; /*設標志判斷是否發生過交換*/
for(j=0;j<n-1;j++)
if((strcmp(t[j].name,t[j+1].name))>0) /*比較大小*/
{
flag=1;
strcpy(temp.name,t[j].name); /*交換記錄*/
strcpy(temp.units,t[j].units);
strcpy(temp.tele,t[j].tele);
strcpy(t[j].name,t[j+1].name);
strcpy(t[j].units,t[j+1].units);
strcpy(t[j].tele,t[j+1].tele);
strcpy(t[j+1].name,temp.name);
strcpy(t[j+1].units,temp.units);
strcpy(t[j+1].tele,temp.tele);
}
if(flag==0)break; /*如果標志為0,說明沒有發生過交換循環結束*/
}
printf("sort sucess!!!\n"); /*顯示排序成功*/
}
/*快速查找,參數為結構體數組和記錄數*/
void qseek(ADDRESS t[],int n)
{
char s[20];
int l,r,m;
printf("\nPlease sort before qseek!\n"); /*提示確認在查找之前,記錄是否已排序*/
printf("please enter name for qseek\n"); /*提示輸入*/
scanf("%s",s); /*輸入待查找的姓名*/
l=0;r=n-1; /*設置左邊界與右邊界的初值*/
while(l<=r) /*當左邊界<=右邊界時*/
{
m=(l+r)/2; /*計算中間位置*/
if(strcmp(t[m].name,s)==0) /*與中間結點姓名欄位做比較判是否相等*/
{
print(t[m]); /*如果相等,則調用print函數顯示記錄信息*/
return ; /*返回*/
}
if(strcmp(t[m].name,s)<0) /*如果中間結點小*/
l=m+1; /*修改左邊界*/
else
r=m-1; /*否則,中間結點大,修改右邊界*/
}
if(l>r) /*如果左邊界大於右邊界時*/
printf("not found\n"); /*顯示沒找到*/
}
/*復制文件*/
void ()
{
char outfile[20]; /*目標文件名*/
int i,n;
ADDRESS temp[M]; /*定義臨時變數*/
FILE *sfp,*tfp; /*定義指向文件的指針*/
clrscr();/*清屏*/
if((sfp=fopen("record.txt","rb"))==NULL) /*打開記錄文件*/
{
printf("can not open file\n"); /*顯示不能打開文件信息*/
exit(1); /*退出*/
}
printf("Enter outfile name,for example c:\\f1\\te.txt:\n"); /*提示信息*/
scanf("%s",outfile); /*輸入目標文件名*/
if((tfp=fopen(outfile,"wb"))==NULL) /*打開目標文件*/
{
printf("can not open file\n"); /*顯示不能打開文件信息*/
exit(1); /*退出*/
}
fscanf(sfp,"%d",&n); /*讀出文件記錄數*/
fprintf(tfp,"%d",n);/*寫入目標文件數*/
fprintf(tfp,"\r\n"); /*寫入換行符*/
for(i=0;i<n;i++)
{
fscanf(sfp,"%20s%30s%10s\n",temp[i].name,temp[i].units,
temp[i].tele); /*讀入記錄*/
fprintf(tfp,"%-20s%-30s%-10s\n",temp[i].name,
temp[i].units,temp[i].tele); /*寫入記錄*/
fprintf(tfp,"\r\n"); /*寫入換行符*/
}
fclose(sfp); /*關閉源文件*/
fclose(tfp); /*關閉目標文件*/
printf("you have success file!!!\n"); /*顯示復製成功*/
}
『伍』 求C語言課程設計報告 程序已經寫好了 就是報告不知道怎麼寫 T-T
課程設計說明書規范要求
說明書是體現和總結課程設計成果的載體,一般不應少於3000字。
1、說明書基本格式
說明書手寫或列印均可。手寫要用統一的課程設計用紙,用黑或藍黑墨水書寫工整;列印時統一使用word文檔,正文採用小4號宋體,A4開紙,頁邊距均為20mm,行間距採用18磅,裝訂線留5mm。
正文各級標題編號的示例如下圖所示。
一級標題:小三號,宋體加粗,居左,18磅行距,段後0.5行,段前為0。
二級標題:四號,黑體,居左,18磅行距,段後為0.5,段前0行。
三級標題:小四號,黑體,居左,18磅行距,段後為0.5,段前0行。
正文內容起首空兩格。
2、說明書結構及要求
(1)封面,包括題目、系(部)、班級、學生姓名、學號、指導教師及時間(年、月、日)等項。
(2)摘要(僅對論文),摘要是論文內容的簡短陳述。關鍵詞應為反映論文主題內內容的通用技術詞彙,一般為3--4個左右,一定要在摘要中出現。
(3)目錄,要求層次清晰,給出標題及頁次。其最後一項是無序號的「參考文獻」。
(4)正文,正文應按照目錄所定的順序依次撰寫,要求計算準確,論述清楚、簡練、通順,插圖清晰,書寫整潔。文中圖、表及公式應規范地繪制和書寫。
(5)參考文獻,參考文獻必須是學生在課程設計中真正閱讀過和運用過的,文獻按照在正文中的出現順序排列。要求參考《畢業設計工作規程》。
(6)課程設計資料的裝訂,課程設計按以下順序裝訂成冊:封面、課程設計任務書、成績評定表、目錄、摘要、正文、設計體會及今後的改進意見、參考文獻、圖紙。
『陸』 C 課程設計
#include<iostream>
#include<iomanip.h>
#include<math.h>
usingnamespacestd;
intmain()
{
doublesample[6]={6.22,5.46,4.70,3.85,2.48,0.70},ym[6],r[6];
doubleb0,b1,b2,b3;
intflag,i;
b0=sample[0];
for(b2=-10;b2<10;b2+=0.01)
for(b3=-10;b3<10;b3+=0.01)
{
flag=1;
b1=sample[1]-b0-b2-b3;
for(i=2;i<6;i++)
if(fabs(b1-((sample[i]-b0)/i-b2*i-b3*i*i))>0.025)
{flag=0;break;}
if(flag)
{
cout<<"b0=6.22,b1="<<b1<<",b2="<<b2<<",b3="<<b3<<endl;
cout<<"------------------------------ ";
cout<<"xyymr% ";
cout<<"------------------------------ ";
for(i=0;i<6;i++)
{
ym[i]=b0+b1*i+b2*i*i+b3*i*i*i;
r[i]=fabs(ym[i]-sample[i])/sample[i]*100;
cout<<setw(2)<<i<<setw(6)<<sample[i];
cout<<setw(7)<<ym[i]<<setw(7)<<setprecision(2)<<r[i]<<endl;
}
cout<<"------------------------------ ";
return0;
}
}
return0;
}
『柒』 c語言課程設計報告
作業的話自己做最有幫助了、
我們老師也布置過,做好了,不過沒有流程圖
『捌』 c語言課程設計總結 題目是學生成績記錄薄設計
我簡單寫,請借鑒:
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "math.h"
#include "time.h"
#include "string.h"
#include<iostream>
using namespace std;
struct Student //定義學生結構
{
char id[20]; //id
char name[11]; //姓名
char res[4]; //成績
int end; //存儲時顯示換行, 可去掉
Student(){end = 0x0a0d;} //回車,換行
}list[100]; //100個賬號, 測試
void main()
{
srand((unsigned)time(0)); //種子
char buf[256]; //緩存
//初始化學生100名
int i;
for(i=0;i<100;++i)
{
strcpy(list[i].id ,itoa(i,buf,10));
strcpy(list[i].name ,"某人");
strcpy(list[i].res, itoa(rand()%100,buf, 10));
}
//保存數據
FILE * pf = fopen("data.txt", "wb");
for(i=0;i<100;++i)
{
fwrite(&list[i], sizeof(Student), 1, pf);
}
fclose(pf);
//讀出數據
Student list_1[100]; //新數組
pf = fopen("data.txt", "rb");
for(i=0;i<100;++i)
{
fread( &list_1[i], sizeof(Student), 1, pf);
}
//顯示 list_1 測試
for(i=0;i<100;++i)
{
cout<<list_1[i].id<<" "<<list_1[i].name <<" "<<list_1[i].res<<endl;
}
}