當前位置:首頁 » 課程大全 » c程序課程設計答案

c程序課程設計答案

發布時間: 2021-03-06 02:51:17

⑴ 求c語言課程設計答案

//從最小的三位來數100開始循環源,求出這個數的五進制數和七進制數,
//比較是否符合條件不符合條件繼續循環,符合條件輸出,結束循環.
//本程序沒有考慮不存在這個數的情況!
#include "stdio.h"
#include "stdlib.h"
void co(int i,int k,int a[])
{int t=0;
while(i)

}

main()
{int wu[3],qi[3],i;
for(i=100;i<=999;i++)
{co(i,5,wu);
co(i,7,qi);
if((wu[0]==qi[2])&&(wu[1]==qi[1])&&(wu[2]==qi[0]))

}
system("pause");
}
.
希望能夠幫助你 ^_^ 也希望能夠選為最佳答案!

⑵ 急求C語言課程設計答案

留個郵箱

⑶ c語言課程設計!急!!!

#include<stdio.h>
#include<stdlib.h>//應用動態存儲分配函數//
#include<time.h>
# define LEN sizeof(struct question)
struct question
{
char ask[200];//選擇題題目//
char answer[4][80];//選擇題選項,每個答案的長度//
int right;//正確答案//
struct question *next;//next是指針類型的成員,
//它指向struct question類型數據(即next所在的結構體類型)
//使用指針類型成員存放下一個結點的地址
//此步驟實現了問題的連續輸入輸入
};
int menu(void);//聲明菜單選擇函數
struct question *seek(struct question *seek,long len,long max);//尋找讀取答案的位置
struct question *insert(struct question *fst,const struct question *ad);//插入試題
void getquestion(struct question *s);//獲取問題,選項,以及正確答案
void savefile(const struct question *a,FILE *sf);//保存最佳答案在文件中//
struct question *loadfile(struct question *b,FILE *lf);//讀取題目,將題目添加到列表中
int getanswer(void);//得到答案
int getyouranswer(void);//得到考生答案
void explainquestion(const struct question *q,int n);//統計答對題目數,顯示得分
//選擇菜單//
int menu(void)
{
int v;
printf("1—添加選擇題\n2—回答選擇題\n3—退出\n");
scanf("%d",&v);
return v;
}
//seek函數確定一個讀取答案的位置,len代表要讀取的答案數,max代表列表的長度//
struct question *seek(struct question *seek,long len,long max)
{
int i;
srand(time(NULL));
while(i=rand()%max+len<max);//隨機選取一個讀題目的位置//
while(i--)
seek=seek->next;//找到指定的位置//
return seek;
}
//向列表中插入試題//
struct question *insert(struct question *fst,const struct question *ad)
{
struct question *newptr=(struct question *)malloc(LEN);//分配新的內存空間//
if (newptr==NULL)
exit(0);
*newptr=*ad;
newptr->next=fst;
return newptr;
}
//獲取問題,選項,以及正確答案//
void getquestion(struct question *s)
{
int i=0;
printf("請輸入選擇題題目:\n");
scanf("%s",s->ask);//指向結構體中的成員//
while(i<4)
{
printf("請輸入選項%c的答案:\n",i+'A');
scanf("%s",s->answer[i++]);
}
s->right=getanswer();
}
//試題保存//
void savefile(const struct question *a,FILE *sf)//使用const說明成員函數//
{
fclose(sf);
if((sf=fopen("kstm.dat","w"))==NULL)//以寫的方式重新打開文件//
return;
while(a)
{
fwrite(a,sizeof(struct question),1,sf);
a=a->next;
}
}
//從文件中讀取題目,將題目添加到列表中//
struct question *loadfile(struct question *b,FILE *lf)
{
struct question temp;
while (fread(&temp,sizeof(struct question),1,lf))
b=insert(b,&temp);
return b;
}

//統計答對題目數,顯示得分//
void explainquestion(const struct question *que,int n)
{
int i=0,t=0;
char result[1001],*p=result;
for(i=0;t<n;que=que->next,t++)
{
printf("%s\nA.%s\nB.%s\nC.%s\nD.%s\n\n",que->ask,que->answer[0],que->answer[1],que->answer[2],que->answer[3]);
if((*p=que->right)==(*(p+1)=getyouranswer()))
++i;
p+=2;
}
*p='\0';
printf("\n%-20s%-20s%s\n","標准答案","你的答案","評價");
for(p=result;*p!='\0';p+=2)
printf("%-20c%-20c%s\n",*p,*(p+1),*p==*(p+1)?"正確":"錯誤");
printf("\n你回答了%d道題,答對%d道題目,得分:%.2f\n\n",n,i,(float)(i*100.00/n));
}
//得到選擇題的答案//
int getanswer(void)
{
static int i=1;
int c=0;//必須進行初始化,避免出現偶然性的錯誤//
while(c<'A'||c>'D')//確保輸入的答案是ABCD中的一個//
{
printf("請輸第%d題的正確答案:",i);
scanf("%c",&c);
printf("\n");
if(c>96)
c=c-32;//實現小寫向大寫的轉換//
}i++;
return c;
}
int getyouranswer(void)
{
int c=0;//必須進行初始化,避免出現偶然性的錯誤//
while(c<'A'||c>'D')//確保輸入的答案是ABCD中的一個//
{
printf("請輸入你的答案:");
scanf("%c",&c);
if(c>96)
c=c-32;//實現小寫向大寫的轉換//
}
return c;
}
main()
{
struct question *start=NULL,temp;
long int choice,line=0,c;
FILE *fp=fopen("kstm.dat","a+");//用'a+'方式打開文件名為'kstm.dat'文件,可添可讀//
start=loadfile(start,fp);
printf(" *****歡迎使用此考試系統,請輸入你要執行的步驟的編號*****\n");
while((choice=menu())!=3)//如果考生不選3-退出//
if(choice==1)
{
getquestion(&temp);
start=insert(start,&temp);
++line;//統計列表的長度//
}
else if(choice==2)
{
printf("請輸入要回答的問題數量:");
scanf("%d",&c);
start=seek(start,c,line);
explainquestion(start,c);
}
savefile(start,fp);
fclose(fp);
return 0;
}

⑷ c語言課程設計成績管理系統 ,跪求答案。

這有個自己改改!就可以了!
主函數在最後!
#ifndef H_STUDENT_HH /*xxx如果沒有定義*/
#define H_STUDENT_HH /*xxx定義xx*/

#include "stdio.h"
#include "string.h"
#include "malloc.h"

#define LEN sizeof(struct message_student) /*一個結構體數組元素的長度*/
#define numsubs 5 /*學科數目*/
typedef struct message_student /*結構體定義*/
{
char number[6];
char name[20];
char sex[4];
float subject[numsubs];
float score;
float average;
int index;
}student;

extern int numstus; /*學生數目*/
extern student *pointer; /*指向結構體數組*/
extern int lens;

int menu_select(); /*函數聲明*/
int openfile(student stu[]);
int findrecord(student stud[]);
int writetotext(student stud[]);
void welcome();
void display1();
void showtable();
void sort(student stu[]);
void deleterecord(student stu[],int i);
void addrecord(student stud[]);
void display(student stud[],int n1,int n2);
void amendrecord(student stud[]);
void count(student stud[]);
void sortnum(student stud[]);
void sortnum2(student stud[]);
void sortname(student stud[]);
void sortname2(student stud[]);
void sortcount(student stud[]);
void sortcount2(student stud[]);
void statistic(student stud[]);
void display1();

#endif

#include "stdio.h"
int menu_select()
{
char c;
printf("\n\n");
printf(" | 1. 增加學生記錄 5.統計信息 |\n");
printf(" | 2. 查詢學生記錄 6.打開文件 |\n");
printf(" | 3. 修改學生記錄 7.保存文件 |\n");
printf(" | 4. 學生紀錄排序 8.顯示記錄 |\n");
printf(" | 0.退出系統 |\n");
printf("\n\n");
printf("請選擇(0-8):");
c=getchar();
getchar();
return (c-'0');
}

#include "stdio.h"
int findrecord(student stud[]) /*查找信息*/
{
char str[2];
int i,num;
if(numstus==0)
{
printf("沒有可被查找的記錄\n");
return -1;
}
else
{
printf("以何種方式查找?\n1.學號\t2.姓名\t3.名次\n");
gets(str);
if(str[0]=='1') /*按學號查找*/
{
printf("請輸入學號:");
gets(str);
for(i=0;i<=numstus;i++)
if(strcmp(str,stud[i].number)==0)
{
display(stud,i,i);
break;
}
else continue;
}
else if(str[0]=='2') /*按姓名查找*/
{
printf("請輸入姓名:");
gets(str);
for(i=0;i<=numstus;i++)
if(strcmp(str,stud[i].name)==0)
{
display(stud,i,i);
break;
}
else continue;
}
else if(str[0]=='3') /*按名次查找*/
{
printf("請輸入名次:");
scanf("%d",&num);
getchar();
for(i=0;i<=numstus;i++)
if(num==stud[i].index)
{
display(stud,i,i);
break;
}
else continue;
}
if(i>numstus)
{
printf("沒有查找所要的信息。\n");
return -1;
}
return i;
}
}

#include"stdio.h"
int openfile(student stu[])
{
int i=0,j;
FILE *fp;
char filename[20],str[2];
if(numstus!=0)
{
printf("已經有記錄存在,是否保存?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(stu);
}
printf("請輸入文件名:");
gets(filename);
numstus=0;
if((fp=fopen(filename,"rb+"))==NULL)
{
printf("無法打開該文件\n");
return(-1);
}
fscanf(fp,"%d",&numstus);
fgetc(fp);
while(i<numstus)
{
fscanf(fp,"%s",stu[i].number);
fscanf(fp,"%s",stu[i].name);
fscanf(fp,"%s",stu[i].sex);
for(j=0;j<numsubs;j++)
fscanf(fp,"%f",&stu[i].subject[j]);
fscanf(fp,"%f",&stu[i].score);
fscanf(fp,"%f",&stu[i].average);
fscanf(fp,"%d",&stu[i].index);
i++;
}
fclose(fp);
printf("文件讀取成功\n");
printf("是否顯示紀錄?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
display(stu,0,numstus-1);
return(0);
}
#include "stdio.h"
void sort(student stud[])
{
int i,j=0;
char str[5];
student *p;
p=stud;
if(numstus==0)
{
printf("沒有可供查詢的記錄!");
}
while(1)
{
for(i=0;;i++)
{
printf(" 請輸入查詢方式:");
printf("(直接輸入回車則結束查詢操作)\n");
printf("1.按照學號\t");
printf("2.按照姓名\t");
printf("3.按照名次\n");
gets(str);
if(strlen(str)==0) break;
if(str[0]=='1')
{
printf("請輸入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortnum2(p);
else
sortnum(p);
display(stud,0,numstus-1);
}
else if(str[0]=='2')
{
printf("請輸入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortname2(p);
else
sortname(p);
display(stud,0,numstus-1);
}
else if(str[0]=='3')
{
printf("請輸入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortcount2(p);
else
sortcount(p);
display(stud,0,numstus-1);
}
else printf("請輸入1~3");
printf("是否退出排序?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y') break;
}
return;
}
}
void sortnum(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j+1].number,stud[j].number)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortnum2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j].number,stud[j+1].number)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortname(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j+1].name,stud[j].name)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortname2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j].name,stud[j+1].name)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortcount(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j+1].index>stud[j].index)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortcount2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j].index>stud[j+1].index)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
#include"stdio.h"
void statistic(student stud[]) /*新增功能,輸出統計信息*/
{
int i,j=0,k=0;
char c1,str[2];
float average[numsubs],sum=0;
if(numstus==0)
printf("沒有可被查找的記錄\n");
else
{
while(1)
{
printf("下面將統計考試成績\n");
printf("請選擇你要統計哪科的成績 1.A\t2.B\t3.C\t4.D\t5.E\n");
c1=getchar();
printf("\t一共有個%d記錄\n",numstus); /*總共記錄數*/
switch(c1)
{
case '1':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[0];
if(stud[k].subject[0]>stud[i].subject[0]) k=i;
if(stud[j].subject[0]<stud[i].subject[0]) j=i;
}
average[0]=sum/numstus;
printf("\t科目A的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[0]);
printf("\t科目A的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[0]);
printf("\t科目A的平均分是 %5.2f\n",average[0]); /*平均分*/
break;
case '2':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[1];
if(stud[k].subject[1]>stud[i].subject[1]) k=i;
if(stud[j].subject[1]<stud[i].subject[1]) j=i;
}
average[1]=sum/numstus;
printf("\t科目B的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[1]);
printf("\t科目B的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[1]);
printf("\t科目B的平均分是 %5.2f\n",average[1]); /*平均分*/
break;
case '3':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[2];
if(stud[k].subject[2]>stud[i].subject[2]) k=i;
if(stud[j].subject[2]<stud[i].subject[2]) j=i;
}
average[2]=sum/numstus;
printf("\t科目C的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[2]);
printf("\t科目C的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[2]);
printf("\t科目C的平均分是 %5.2f\n",average[2]); /*平均分*/
break;
case '4':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[3];
if(stud[k].subject[3]>stud[i].subject[3]) k=i;
if(stud[j].subject[3]<stud[i].subject[3]) j=i;
}
average[3]=sum/numstus;
printf("\t科目D的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[3]);
printf("\t科目D的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[3]);
printf("\t科目D的平均分是 %5.2f\n",average[3]); /*平均分*/
break;
case '5':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[4];
if(stud[k].subject[4]>stud[i].subject[4]) k=i;
if(stud[j].subject[4]<stud[i].subject[4]) j=i;
}
average[4]=sum/numstus;
printf("\t科目E的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[4]);
printf("\t科目E的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[4]);
printf("\t科目E的平均分是 %5.2f\n",average[4]); /*平均分*/
break;
default:printf("輸入錯誤!請輸入1~5之間的數\n");
}
sum=0;
getchar();
printf("是否繼續進行統計?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y') ;
else break;
}
}
}

#include"stdio.h"
int writetotext(student stud[]) /*將所有記錄寫入文件*/
{
int i=0,j;
FILE *fp;
char filename[20];
printf("輸入文件名稱:");
gets(filename);
fp=fopen(filename,"w");
fprintf(fp,"%d\n",numstus);
while(i<numstus)
{
fprintf(fp,"%s %s %s ",stud[i].number,stud[i].name,stud[i].sex);
for(j=0;j<numsubs;j++)
fprintf(fp,"%f ",stud[i].subject[j]);
fprintf(fp,"%f %f %d ",stud[i].score,stud[i].average,stud[i].index);
i++;
}
fclose(fp);
printf("已成功存儲!\n");
display(stud,0,numstus-1);
numstus=0;
return 0;
}

#include"stdio.h"
void welcome()
{
printf("\t*************************************************************\n");
printf("\t\t\t\t歡迎進入學生成績管理系統\t\t\t\t\t\t\t\t 曉 歡迎使用!\n");
printf("\t*************************************************************\n");
printf("\t\t\t\t\t\t本系統由「曉」一組親情製作\n\n");
printf("\t\t\t\t\t\t製作人員列表: \n");
printf("\t\t\t\t\t\t吳彥兵 黃進 汪紅波\n\t\t\t\t\t\t劉玉蕭 楊超 章耀\n");
printf("輸入回車進入菜單欄:\n");
printf("\n\n");
getchar();
}

void showtable()
{
printf("-------------------------------------------------------------------------------\n");
printf("學號\t姓名\t性別\tA\tB\tC\tD\tE 總分 平均分 名次\n");
printf("-------------------------------------------------------------------------------\n");
}

void display(student stud[],int n1,int n2)
{
int i;
showtable(); /*顯示表頭*/
for(i=n1;i<=n2;i++)
printf("%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f %.1f %.1f %d\t\n",stud[i].number,stud[i].name,stud[i].sex,stud[i].subject[0],stud[i].subject[1],stud[i].subject[2],stud[i].subject[3],stud[i].subject[4],stud[i].score,stud[i].average,stud[i].index);
/*通過循環輸出數據*/

}
void display1()
{
printf("\t\t本系統由曉一組親情製作\n\n");
printf("\t\t製作人員列表: \n");
printf("\t\t\t\t\t\t吳彥兵 黃進 汪紅波\n\t\t\t\t\t\t劉玉蕭 楊超 章耀\n");
printf("\t\t\t=========歡迎下次使用=========");
printf("\n\n");
getchar();
}

#include"stdio.h"
#include<string.h>
void amendrecord(student stud[])
{
char str[5]; /*供用戶輸入*/
int i=-1,j;

if(numstus==0) /*沒有記錄返回*/
printf("沒有可供修改的記錄!");
while(i<0)
{
i=findrecord(stud);
if(i>=0)
{
printf("要刪除這個學生的信息嗎?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
{
deleterecord(stud,i);
count(stud);
}
else
{
printf("確定要修改這個學生的信息嗎?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
{

printf("下面請重新輸入學生的信息:\n");
printf("請輸入學號:");
gets(stud[i].number);
printf("請輸入姓名:");
gets(stud[i].name);
printf("請輸入性別(男/女 1/0):");
gets(str);
if(str[0]=='0')
strcpy(stud[i].sex,"女");
else
strcpy(stud[i].sex,"男");
stud[i].score=0;
printf("請按順序輸入成績:");
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i].subject[j]);
stud[i].score+=stud[i].subject[j];
}
getchar();
stud[i].average=stud[i].score/numsubs;
}
count(stud);
}
display(stud,0,numstus-1);
}
printf("是否繼續進行其他修改?(y/n)\n");
gets(str);
if(str[0]=='y'||str[0]=='Y')
i=-1;
else i=1;
}
}

void deleterecord(student stu[],int i) /*刪除信息*/
{
int j;

while(i>=0)
{
for(j=i;j<numstus;j++)
stu[j]=stu[j+1];
numstus--;
printf("刪除成功!\n");

}
}

void count(student stud[])
{
int i,j;
for(i=0;i<numstus;i++)
{
stud[i].index=1;
for(j=0;j<numstus;j++)
if(stud[j].score>stud[i].score)
stud[i].index++;
}
}

#include "stdio.h"
void addrecord(student stud[])
{
int i=0,j,num;
char str[5];
if(numstus!=0)
{
printf("已有記錄存在是否覆蓋?(y/n)\n");
gets(str);
if(str[0]=='Y'||str[0]=='y')
i=0;
else i=numstus;
}

printf("請輸入增加的學生信息條目數:");
scanf("%d",&num);
if(i==0)
numstus=num;
else numstus+=num;
if(numstus>lens)
{
lens+=50;
pointer=(student *)realloc(pointer,lens*LEN);
}
printf("請輸入學生信息:\n");
for(;i<numstus;i++)
{
getchar();
printf("請輸入學號:");
gets(pointer[i].number);
printf("請輸入姓名:");
gets(pointer[i].name);
printf("請輸入性別(男/女 1/0):");
gets(pointer[i].sex);
if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女");
else strcpy(pointer[i].sex,"男");
printf("請輸入各科成績:(按ABCDE的順序):");
stud[i].score=0;
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i].subject[j]); /*計算總分*/
stud[i].score+=stud[i].subject[j];
}
stud[i].average=stud[i].score/numsubs; /*計算平均分*/
}
count(stud); /*附名次*/
display(stud,0,numstus-1);
getchar();
}
#include "stdio.h"
int numstus;
int lens;
student *pointer;
void main()
{
int i=1;
char str[2];
lens=100;
pointer=(student *)malloc(lens*LEN); /*分配內存*/
numstus=0;
welcome(); /*歡迎界面*/
while(i>0)
{
i=menu_select(); /*控制菜單*/
switch(i)
{
case 1:addrecord(pointer);break; /*增加學生信息*/
case 2:findrecord(pointer);break; /*查詢學生信息*/
case 3:amendrecord(pointer);break; /*修改學生信息*/
case 4:sort(pointer);break; /*學生信息排序*/
case 5:statistic(pointer);break; /*統計信息*/
case 6:openfile(pointer);break; /*打開文件*/
case 7:writetotext(pointer);break; /*保存文件*/
case 8:display(pointer,0,numstus-1);break; /*顯示記錄*/
case 0:
if(numstus!=0) printf("是否保存當前記錄?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(pointer);
i=-1;break; /*退出系統*/
default:printf("請輸入數字0~8:\n");i=1; /*輸入錯誤*/
}
}
printf("\t\t======歡迎再次使用本系統======= \n");
display1();
}

⑸ 求一道C語言課程設計的答案,實在做不出來了!

只能幫到這了,有點瑕疵。。。


#include <stdio.h>

#include <stdlib.h>

#include <string.h>


int countWord(FILE *file);

int getWord(FILE *file, char word[], int pos);

int sameWord(FILE *file, char word[]);


int main(void)

{

int i = 0, size = 0, j = 0, k = 0, n = 0, flag = 0;

char word[20] = {''}, wordSave[100][20] = {''}, fileNameOne[20] = {''}, fileNameTwo[20] = {''}, fileNameThree[20] = {''};

float per = 0.0;

FILE *fileOne = NULL, *fileTwo = NULL, *fileThree = NULL;


printf("請輸入文件1的路徑:(c:\\str1.txt)");

scanf("%s", fileNameOne);

printf("請輸入文件2的路徑:(c:\\str1.txt)");

scanf("%s", fileNameTwo);


printf("請輸入要保存文件的、的路徑:(c:\\str1.txt)");

scanf("%s", fileNameThree);

fileOne = fopen(fileNameOne, "r");

fileTwo = fopen(fileNameTwo, "r");

fileThree = fopen(fileNameThree, "w");

size = countWord(fileOne);


i = 0;

printf(" 在文件1中: ");

fwrite(" 在文件1中: ", sizeof(char), 12, fileThree);

while(i <= size)

{

memset(word, '', 20);

i = getWord(fileOne, word, i);

j = sameWord(fileOne, word);

for(n = 0; wordSave[n][0] != ''; n++)

{

if(strcmpi(wordSave[n], word) == 0)

flag = 1;

}


if(flag == 0)

{

strcpy(wordSave[k++], word);

per = 1.0 * j / size;

printf("%-10s 出現了: %-3d 次, 占: %%%f ", word, j, per);

fprintf(fileThree, "%-10s 出現了: %-3d 次, 占: %%%f ", word, j, per);

}

else

flag = 0;

}


memset(wordSave, '', sizeof(wordSave));

size = countWord(fileTwo);


i = 0;

j = 0;

k = 0;

printf(" 在文件2中: ");

fwrite(" 在文件2中: ", sizeof(char), 12, fileThree);

//printf("size = %d ", size);

while(i <= size)

{

memset(word, '', 20);

i = getWord(fileOne, word, i);

j = sameWord(fileTwo, word);


for(n = 0; wordSave[n][0] != ''; n++)

{

if(strcmpi(wordSave[n], word) == 0)

flag = 1;

}


if(flag == 0)

{

strcpy(wordSave[k++], word);

per = 1.0 * j / size;

printf("%-10s 出現了: %-3d 次, 占: %%%f ", word, j, per);

fprintf(fileThree, "%-10s 出現了: %-3d 次, 占: %%%f ", word, j, per);

}

else

flag = 0;


}


fclose(fileOne);

fclose(fileTwo);

fclose(fileThree);

return 0;

}


int countWord(FILE *file)

{

int sum = 0, flag = 0;

char ch = 0;


rewind(file);

while(feof(file) == 0)

{

ch = fgetc(file);


while((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch < 'Z'))

{

flag = 1;

ch = fgetc(file);

}


if(flag == 1)

{

++sum;

flag = 0;

}

}


return sum;

}


int getWord(FILE *file, char word[], int pos)

{

int flag = 0, i = 0, j = 0;

char ch = 0, str[20] = {''};


fseek(file, pos, SEEK_SET);

// printf("ftell = %d ", ftell(file));


while(feof(file) == 0)

{

ch = fgetc(file);

if(ch == ' ')

{

pos = ftell(file) - 1;

// printf("pos = %d ", pos);

}


while((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch < 'Z'))

{

// printf("%c ", ch);

flag = 1;

str[i++] = ch;

ch = fgetc(file);

// printf("%d ", ftell(file));

// getchar();

}


// printf("ftell = %d ,i = %d ", ftell(file), i);

// getchar();

if(flag == 1)

{

strcpy(word, str);


// printf("i + pos + j = %d, j = %d ", i + pos + j, j);

// getchar();

return (i + pos + j);

}


++j;

}

return 0;

}


int sameWord(FILE *file, char word[])

{

int sum = 0, flag = 0, i = 0;

char ch = 0, str[20] = {''};


rewind(file);


while(feof(file) == 0)

{

ch = fgetc(file);


while((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch < 'Z'))

{

flag = 1;

str[i++] = ch;

ch = fgetc(file);

}


if(flag == 1)

{

flag = 0;

i = 0;


if(strcmpi(word, str) == 0)

{

sum++;

}


memset(str, '', 20);

}

}


return sum;


}

⑹ C語言課程設計解答

給你推薦一些c語言學習的資料:
C程序設計(譚浩強) : http://www.gshu.cn/detail/0/146.htm
C語言資料大全1.0 : http://www.gshu.cn/detail/0/11.htm
21天學通C語言第六版(PDG) : http://www.gshu.cn/detail/0/141.htm
C語言初學者入門講座 : http://www.gshu.cn/detail/0/337.htm
C程序設計習題參考解答.rar : http://www.gshu.cn/detail/0/147.htm
C語言學習和精華文摘 : http://www.gshu.cn/detail/0/450.htm
C語言課程設計案例精編 : http://www.gshu.cn/detail/0/426.htm
C專家編程(中文版) : http://www.gshu.cn/detail/0/204.htm
C語言經典實例 : http://www.gshu.cn/detail/0/430.htm
C語言聖經(英文) : http://www.gshu.cn/detail/0/276.htm
ANSI C語言標准 : http://www.gshu.cn/detail/0/206.htm
高質量C/C++編程指南 : http://www.gshu.cn/detail/0/207.htm
C語言函數大全(語法著色版) : http://www.gshu.cn/detail/0/482.htm

⑺ 誰有C語言課程設計答案啊

#include<iostream>
#include<string>
using namespace std;
#define MAX 2 //停車場車位數
#define price 0.05 //每分鍾收取的費用
typedef struct time
{
int hour;
int min;
}Time;//定義時間結點
typedef struct node
{
string num;
Time reach;
Time leave;
}CarNode;//定義每輛車的牌號,進入時刻,開出時刻
typedef struct NODE
{
CarNode *stack[MAX+1];
int top;
}SeqStackCar;//用棧定義,構造停車場
typedef struct car
{
CarNode *data;
struct car *next;
}QueueNode;//用隊列結點定義,構造停車場外的單個等候車輛
typedef struct Node
{
QueueNode *head;
QueueNode *rear;
}LinkQueueCar;//用隊列定義,構造停車場外的等候便道

void InitStack(SeqStackCar *); //初始化堆棧函數聲明
int InitQueue(LinkQueueCar *); //初始化隊列頭結點函數聲明
int Arrival(SeqStackCar *,LinkQueueCar *); //車輛進入時登記函數聲明
void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *);//車輛離開時函數聲明
void List(SeqStackCar,LinkQueueCar); /*查看停車場內車輛情況及
便道上車輛情況的函數聲明*/
void main( )
{
SeqStackCar Enter,Temp;//初始棧,中轉棧
LinkQueueCar Wait;//便道隊列
int a;
InitStack(&Enter);
InitStack(&Temp);
InitQueue(&Wait);//初始化
while(1)
{
cout<<"********************************************************************"<<endl;
cout<<" 歡迎光臨停車場!";
cout<<"(*^__^*) !";
cout<<endl<<"車輛到達登記->請按 1";
cout<<" 車輛離開登記->請按 2"<<endl;
cout<<"車輛停靠查詢->請按 3";
cout<<" 退出系統->請按 4"<<endl;//系統選項設置
while(1)
{
cin>>a;
if(a>=1&&a<=4) break;
else cout<<endl<<"請選擇: 1~4.";
}
switch(a)
{
case 1:Arrival(&Enter,&Wait);break;//調用入停車場函數
case 2:Leave(&Enter,&Temp,&Wait);break;//調用出停車場函數
case 3:List(Enter,Wait);break;//調用查看函數
case 4:exit(0);
default: break;
}
}
}
void InitStack(SeqStackCar *s) //堆棧初始化
{
s->top=0;
s->stack[s->top]=NULL;
}
int InitQueue(LinkQueueCar *Q)//隊列初始化
{
Q->head=new QueueNode ;
if(Q->head!=NULL)
{
Q->head->next=NULL;
Q->rear=Q->head;
return 1;
}
else return -1;
}
void PRINT(CarNode *p,int room) //輸出離開停車場的車輛情況
{
int A,B,C,D;
cout<<"\n車輛離開的時間:";
cin>>p->leave.hour>>p->leave.min;
cout<<"離開車輛的車牌號為:";
cout<<p->num;
cout<<endl<<"其到達時間為: "<<p->reach.hour<<":"<<p->reach.min;
cout<<"離開時間為: "<<p->leave.hour<<":"<<p->leave.min;
A=p->reach.hour;
B=p->reach.min;
C=p->leave.hour;
D=p->leave.min;
cout<<endl<<"應交費用為: "<<((C-A)*60+(D-B))*price<<"元"<<endl;
cout<<"車輛離開登記完畢!"<<endl;
cout<<"*********************************************************************"<<endl;
delete p;
}
int Arrival(SeqStackCar *Enter,LinkQueueCar *W)
{
CarNode *p;
QueueNode *t;
p=new CarNode;
cout<<"********************************************************************"<<endl;
cout<<"車輛到達登記開始:"<<endl;
cout<<endl<<"請輸入車牌號:";
cin>>p->num;
if(Enter->top<MAX)//如果車位未滿則進停車場內
{
Enter->top++;
cout<<endl<<"車輛在車場第"<<Enter->top<<"位置.";
cout<<endl<<"車輛到達時間:";
cin>>p->reach.hour>>p->reach.min;
cout<<endl<<"車輛到達登記完畢!"<<endl;
cout<<"*********************************************************************"<<endl;
Enter->stack[Enter->top]=p;
return 1;
}
else //如果車位已滿,則停靠在便道上
{
cout<<"*********************************************************************"<<endl;
cout<<endl<<"該車須在便道等待!有車位時進入車場"<<endl;
t=new QueueNode ;
t->data=p;
t->next=NULL;
W->rear->next=t;
W->rear=t;
return 1;
}
}
void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W)
{
int room;
CarNode *p,*t;
QueueNode *q;

if(Enter->top>0)
{
while(1)
{
cout<<"*********************************************************************"<<endl;
cout<<"車輛離開登記開始:"<<endl;
cout<<endl<<"請輸入車在車場的位置/1--"<<Enter->top<<"/:";
cin>>room;
if(room>=1&&room<=Enter->top) break;
}
while(Enter->top>room)//從停車場堆棧向中轉堆棧移動車輛,直到要離開車輛的位置停止
{
Temp->top++;
Temp->stack[Temp->top]=Enter->stack[Enter->top];
Enter->stack[Enter->top]=NULL;
Enter->top--;
}
p=Enter->stack[Enter->top];
Enter->stack[Enter->top]=NULL;
Enter->top--;
while(Temp->top>=1)//將中轉堆棧中的車輛移回停車場堆棧
{
Enter->top++;
Enter->stack[Enter->top]=Temp->stack[Temp->top];
Temp->stack[Temp->top]=NULL;
Temp->top--;
}
cout<<"*********************************************************************"<<endl;
cout<<"車輛離開登記結算:"<<endl;
PRINT(p,room);
if((W->head!=W->rear)&&Enter->top<MAX)
{
q=W->head->next;
t=q->data;
Enter->top++;
cout<<endl<<"便道的"<<t->num<<"號車進入車場第";
cout<<Enter->top<<"位置."<<endl;
cout<<"請輸入"<<t->num<<"號車進入車場的時間:";
cin>>t->reach.hour>>t->reach.min;
W->head->next=q->next;
if(q==W->rear) W->rear=W->head;
Enter->stack[Enter->top]=t;
delete q;
}
else cout<<endl<<"便道里沒有車"<<endl;
}
else cout<<endl<<"車場里沒有車."<<endl;
}
void List1(SeqStackCar *S) //查看停車場內車輛情況的函數定義
{
int i;
if(S->top>0)
{
cout<<"********************************************************************"<<endl;
cout<<endl<<"車場內部車輛停靠情況:"<<endl;
cout<<endl<<"位置 到達時間 車牌號"<<endl;
for(i=1;i<=S->top;i++)
{
cout<<i;
cout<<" "<<S->stack[i]->reach.hour<<":"<<S->stack[i]->reach.min;
cout<<" "<<S->stack[i]->num<<endl;
}
}
else cout<<endl<<"車場里沒有車"<<endl;
cout<<"********************************************************************"<<endl;
}
void List2(LinkQueueCar *W) //查看便道上停靠車輛情況的函數定義
{
QueueNode *p;
p=W->head->next;
if(W->head!=W->rear)
{
cout<<"********************************************************************"<<endl;
cout<<endl<<"便道停靠車輛情況:"<<endl;
while(p!=NULL)
{
cout<<endl<<"車輛牌號:";
cout<<p->data->num<<endl;
p=p->next;
}
}
else cout<<endl<<"便道里沒有車."<<endl;
cout<<"********************************************************************"<<endl;
}
void List(SeqStackCar S,LinkQueueCar W) //車輛列表顯示函數
{
int flag,tag;
flag=1;
while(flag)
{
cout<<"********************************************************************"<<endl;
cout<<"車輛停靠查詢開始:"<<endl;
cout<<endl<<"請選擇 1|2|3:"<<endl;
cout<<"1.車場列表"<<endl<<"2.便道列表"<<endl<<"3.返回主菜單"<<endl;
while(1)
{
cin>>tag;
if(tag>=1||tag<=3) break;
else cout<<endl;
cout<<"請選擇 1~3:";
}
switch(tag)
{
case 1:List1(&S);
cout<<"車輛停靠查詢結束!"<<endl;break;
case 2:List2(&W);
cout<<"車輛停靠查詢結束!"<<endl;break;
case 3:flag=0;break;
default: break;
}
}
cout<<"********************************************************************"<<endl;
}

⑻ C語言程序設計 (學生選修課程設計)

這是我做的,你看是否滿意?可能有點大,但也沒辦法呀,你的題目也比較大,呵呵!所以,如果滿意,多給我追加點分!
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct course
{
char number[15],name[25];
int kind,time,lessontime,practicetime,credit,term;
}type;
FILE *fp1;
void overview(); //瀏覽函數,負責瀏覽整個課程信息
void seek(); //查詢函數,負責查詢課程信息
void choose_course();//選課函數,負責讓用戶選課
void out(type temp);
void input();
int main()
{
int n,i;
if((fp1=fopen("course_information.txt","wb"))==NULL)
{printf("創建文件失敗!\n");exit(0);}
printf("請輸入要存儲的課程數目:\n");
scanf("%d",&n);
printf("開始創建文件,請輸入課程信息:\n\n");
for(i=0;i<n;i++)
{
printf("請輸入第%d門課程的信息:\n",i+1);
input();
printf("\n");
}
printf("如想瀏覽整個課程信息,請輸入1;如想查詢課程信息,請輸入2; 如想進行選課,請輸入3;如想結束選修課系統,請輸入0!\n");
while((scanf("%d",&n))!=EOF)
{
if(n==1)
overview();
if(n==2)
seek();
if(n==3)
choose_course();
if(n==0)
exit(0);
printf("\n\n如想繼續操作,只要按規則輸入你要進行的操作即可!\n規則:如想瀏覽整個課程信息,請輸入1;如想查詢課程信息,請輸入2;如想進行選課,請輸入3!\n");
}
printf("歡迎您使用此程序進行選課,謝謝!\n");
fclose(fp1);
return 0;
}
void input()
{
course c_a;
printf("請輸入課程編碼: ");
scanf("%s",c_a.number);
printf("請輸入課程名: ");
scanf("%s",c_a.name);
printf("請輸入課程性質:限選課,請輸入1;選修課,請輸入2;必修課,請輸入3! ");
scanf("%d",&c_a.name);
printf("請輸入課程總學時: ");
scanf("%d",&c_a.time);
printf("請輸入課程授課時間: ");
scanf("%d",&c_a.lessontime);
printf("請輸入課程實驗或實踐時間: ");
scanf("%d",&c_a.practicetime);
printf("請輸入課程學分: ");
scanf("%d",&c_a.credit);
printf("請輸入課程所在的學期,比如第二學期,就輸入2即可。");
scanf("%d",&c_a.term);
fwrite(&c_a,sizeof(struct course),1,fp1);//將一個結構體元素寫入文件中
}
void out(type temp)
{
printf("課程代碼: %s\n課程名: %s\n",temp.number,temp.name);
printf("課程名: %s\n",temp.name);
if(temp.kind==1)
printf("課程性質: Limited optional course\n");
else if(temp.kind==2)
printf("課程性質: Optional course\n");
else if(temp.kind==3)
printf("課程性質: Required Courses\n");
else
printf("該編碼系統不認識,即無對應的課程性質存在!\n");
printf("課程總學時: %d\n課程授課學時: %d\n實驗或上機學時: %d\n學分: %d\n課程開課學期: %d\n\n",temp.time,temp.lessontime,temp.practicetime,temp.credit,temp.term);
}
void overview()
{
rewind(fp1);
course temp;
printf("整個課程信息如下:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
out(temp);
}
void seek()
{
int judge,credit=0,kind=0;
char a='N';
course temp;
printf("如想按學分查詢,請輸入1;如想按課程性質,請輸入2:\n");
scanf("%d",&judge);
rewind(fp1); //將文件指針位置置為開頭
if(judge==1)
{
printf("請輸入要查詢的學分:\n");
scanf("%d",&credit);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(credit==temp.credit)
out(temp);
}
else if(judge==2)
{
printf("請輸入你要查找課程的性質(限選課,請輸入1;選修課,請輸入2;必修課,請輸入3):");
scanf("%d",&kind);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(temp.kind==kind)
out(temp);
}
else
printf("不好意思,無此類查詢!\n");
}
void choose_course()
{
rewind(fp1);
course temp;
int judge=1,n=0,time=0,credit=0;
char choose[20][20];
r1: printf("請開始填寫課程編號進行選課:\n");
while(judge==1)
{
printf("請輸入你所選課程的標號: ");
scanf("%s",choose[n]);
n++;
printf("如想繼續選課,請輸入1;如想提交,請輸入0!\n");
scanf("%d",&judge);
}
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(int i=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{time=time+temp.time;credit=temp.credit;break;}
}
if(time<270||credit<40)
goto r1;
printf("你所選的課為:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(int i=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{out(temp);break;}
}
}

⑼ C語言課程設計答案

#include<stdio.h>
void hanoi(int n,char a,char b,char c);//移動盤子
void move(int num,char fron,char to);//顯示盤子移動次數
main()
{
int n;
printf("輸入盤子數:");
scanf("%d",&n);
printf("移動盤子的版步數:\n",n);
hanoi(n,'A','B','C');
}
void hanoi(int n,char a,car b,char c)
{
if(n==1) { move(n,a,b)};//盤子從a移動到b
else {
hanoi(n-1,a,c,b);//將第n-1個盤權子,藉助於b由a移動到c
move(n,a,b);//第n個盤子由a-》b
hanoi(n-1,c,b,a);//將第n-1個盤子,藉助於a由c移動到b
}
}
void move(int num,char from,char to)
{
printf("move %d:form %c to %c \n",num,form,to);
}

⑽ 清華大學出版 2016年第一版的c語言程序設計實驗指導及課程設計答案

2016年第一版的c語言程序設計實驗指導及課程設計答案 網路一下,然後下載。

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919