課程設計c語言
⑴ c語言課程設計
自己做吧,這樣才能學到東西!
⑵ c語言課程設計
剛為別人做了一個,和你這個很像,不過用的是單項鏈表方式而不是array.
自己修改下滿足你的要求吧
#include <stdio.h>
#include <string.h>
#include <stddef.h>
struct StudentCard {
int index; //學生號
char name[80]; //姓名
int age; //年齡
char sex[80]; //性別
int classroom; //班級
char school[80]; //學校
char birthday[80]; //出生年月
struct StudentCard *next; //到下一個學生卡,鏈表
};
typedef struct StudentCard ELEMENT; //自定義符號
typedef ELEMENT *LINK;
LINK add(LINK head){ //加入一個新的學生信息,該函數將返回一個struct的指針
int index,age,classroom;
char name[80],sex[80],school[80],birthday[80];
printf("Please input index number: ");
scanf("%d",&index);
printf("Please input name: ");
scanf("%s",name);
printf("Please input age: ");
scanf("%d",&age);
printf("Please input sex(nan or nv): ");
scanf("%s",sex);
printf("Please input classroom: ");
scanf("%d",&classroom);
printf("Please input school: ");
scanf("%s",school);
printf("Please input birthday :");
scanf("%s",birthday);
if (!head){ //如果是頭鏈表為空的情況,也就是輸入第一個學生卡
head=malloc(sizeof(ELEMENT));
head->index=index;
head->age=age;
head->classroom=classroom;
strcpy(head->name,name);
strcpy(head->sex,sex);
strcpy(head->school,school);
strcpy(head->birthday,birthday);
head->next=NULL; //下一個元素為NULL,空
printf("Successful!\n");
return head; //返回頭鏈
}
else{
LINK tail=head;//用一個哨兵指針指向頭元素
while ((tail)&&(tail->index!=index))
//在tail為NULL並且tail的index不與用戶輸入的index相等之前,tail一直跳到下一個元素
tail=tail->next;
if (tail) //如果存在這個tail
printf("index has already existed! Failed!\n");
else{
tail=head;//再次初始化
while (tail->next) //當哨兵的下一個元素存在時,哨兵跳到哨兵下一個元素
tail=tail->next;
//當上面這個循環結束後,此時tail的下一個元素必定為NULL
tail->next=malloc(sizeof(ELEMENT));//創建新的元素
tail=tail->next; //跳轉到下一個新創建的元素
tail->index=index;
tail->age=age;
tail->classroom=classroom;
strcpy(tail->name,name);
strcpy(tail->sex,sex);
strcpy(tail->school,school);
strcpy(tail->birthday,birthday);
tail->next=NULL;
printf("Successful!\n");
return head;
}
}
}
void Print_ALL(LINK head){//該函數輸出所有學生信息
LINK tail=head;
if (!head) //如果頭元素為NULL,就是鏈表無一個元素
printf("Empty List!\n");
else{
printf("Indx\tName\tAge\tSex\tClass\tSchool\tBirth\n");
while (tail){//知道哨兵為NULL之前,一直輸出哨兵的內容
printf("%d\t%s\t",tail->index,tail->name);
printf("%d\t%s\t%d\t",tail->age,tail->sex,tail->classroom);
printf("%s\t%s\n",tail->school,tail->birthday);
tail=tail->next;
}
}
};
void Print_DEPEND_INDEX(LINK head){ //該函數輸出指定的學生號的學生信息
int tem;
LINK tail=head;
printf("Please input the index number of student: ");
scanf("%d",&tem);
if (!head)
printf("Empty List!\n");
else{
while ((tail)&&(tail->index!=tem))
tail=tail->next;
if (!tail)
printf("student not existed!\n");
else{
printf("Indx\tName\tAge\tSex\tClass\tSchool\tBirth\n");
printf("%d\t%s\t",tail->index,tail->name);
printf("%d\t%s\t%d\t",tail->age,tail->sex,tail->classroom);
printf("%s\t%s\n",tail->school,tail->birthday);
}
}
}
void Print_DEPEND_CLASS(LINK head){ //該函數輸出指定的班級的學生信息
int tem;
LINK tail=head;
printf("Please input classroom: ");
scanf("%d",&tem);
if (!head)
printf("Empty List!\n");
else{
while ((tail)&&(tail->classroom!=tem))
tail=tail->next;
if (!tail)
printf("No such classroom!\n");
else{
printf("Indx\tName\tAge\tSex\tClass\tSchool\tBirth\n");
while (tail){
if (tail->classroom==tem){
printf("%d\t%s\t",tail->index,tail->name);
printf("%d\t%s\t%d\t",tail->age,tail->sex,tail->classroom);
printf("%s\t%s\n",tail->school,tail->birthday);
}
tail=tail->next;
}
}
}
}
void Print_DEPEND_SEX(LINK head){ //該函數輸出男或女同學信息
char tem[80];
printf("please input sex(nan or nv): ");
scanf("%s",tem);
if (!head)
printf("Empty List!\n");
else{
LINK tail=head;
while ((tail)&&(strcmp(tem,tail->sex)!=0))
//當不相等或者tail有效時,tail跳到下一個元素
tail=tail->next;
if (!tail)
printf("No %s student!\n",tem);
else{
tail=head;
printf("Indx\tName\tAge\tSex\tClass\tSchool\tBirth\n");
while (tail){
if (strcmp(tem,tail->sex)==0){
printf("%d\t%s\t",tail->index,tail->name);
printf("%d\t%s\t%d\t",tail->age,tail->sex,tail->classroom);
printf("%s\t%s\n",tail->school,tail->birthday);
}
tail=tail->next;
}
}
}
}
LINK Edit(LINK head){ //該函數用來修改信息
int tem;
LINK tail=head;
printf("Please input index of student: ");
scanf("%d",&tem);
if (!head){
printf("Empty List!\n");
return NULL;
}
else{
while ((tail)&&(tail->index!=tem))
tail=tail->next;
if (!tail){
printf("No such student!\n");
return head;
}
else{
printf("Please input name: ");
scanf("%s",tail->name);
printf("Please input age: ");
scanf("%d",&tail->age);
printf("Please input sex(nan or nv): ");
scanf("%s",tail->sex);
printf("Please input classroom: ");
scanf("%d",&tail->classroom);
printf("Please input school: ");
scanf("%s",tail->school);
printf("Please input birthday :");
scanf("%s",tail->birthday);
printf("Edit successful!\n");
return head;
}
}
}
LINK DELETE(LINK head){ //該函數用來刪除學生信息
int tem;
LINK tail=head;
printf("Please input index of student: ");
scanf("%d",&tem);
if (!head){
printf("Empty List!\n");
return NULL;
}
else if ((head->index==tem)&&(!head->next)){//當頭元素滿足並且鏈表只有一個元素
printf("Deleted!\n");
return NULL;
}
else if ((head->index==tem)&&(head->next)){//當頭元素滿足並且鏈表有許多元素
printf("Deleted!\n");
return head->next;
}
else{ //當滿足條件的元素在鏈表中間或者結尾
while ((tail)&&(tail->index!=tem))
tail=tail->next;
if (!tail){
printf("No such student!\n");
return head;
}
else{
if (!tail->next){//當滿足條件的元素在鏈表結尾
LINK tail2=head;//新的哨兵
while (tail2->next!=tail)
tail2=tail2->next;
tail2->next=NULL; //直接指向為NULL,表示鏈表尾,跳過tail
printf("Deleted!\n");
return head;
}
else{ //當滿足條件的元素在鏈表中間
LINK tail2=head;//新的哨兵
while (tail2->next!=tail)
tail2=tail2->next;
tail2->next=tail->next; //跳過tail這個元素
printf("Deleted!\n");
return head;
}
}
}
}
void Display_MENU(){
printf("\t*********studentcard management system*********\n");
printf("\t1.Input student's informations (add a student)\n");
printf("\t2.Print all students' informations\n");
printf("\t3.Input index number,print selected student's information\n");
printf("\t4.Input classroom number,print informations of those students\n");
printf("\t5.Input index number, modify information\n");
printf("\t6.Input index number, remove information\n");
printf("\t7.Print nan or nv informations\n");
printf("\t8.Display Menu\n");
printf("\t9.Exit\n");
printf("\t***********************************************\n");
}
int main(){
LINK head=NULL; //鏈表頭的初始化
int asker;
Display_MENU();
while(1){
printf(">>");
scanf("%d",&asker);
if (asker==1)//加入新學生信息
head=add(head);
else if (asker==2)//輸出所有學生信息
Print_ALL(head);
else if (asker==3) //輸入學生號,輸出學生信息
Print_DEPEND_INDEX(head);
else if (asker==4) //輸入班級,輸出學生信息
Print_DEPEND_CLASS(head);
else if (asker==5) //輸入學生號,修改學生信息
head=Edit(head);
else if (asker==6) //輸入學生號,刪除學生信息
DELETE(head);
else if (asker==7) //輸入男或女,輸出學生信息
Print_DEPEND_SEX(head);
else if (asker==8) //顯示菜單
Display_MENU();
else if (asker==9) //退出程序,也就是退出while(1)循環
break;
else
printf("please select correct number!\n");
}
printf("system log-out!\n");
return 0;
}
⑶ C語言課程設計
建好結構體,用鏈表操作然後慢慢調試 還是比較簡單的。。
這種基礎問題最好還是自己做。。
⑷ 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 <iostream.h>
#include <iomanip.h>
#define SN 10 // 學生人數
#define CN 3 // 課程數目
int course; // 要排序的那門課程
struct student
{ int num;
char name[10];
int score[CN];
};
void bubble(struct student *pstu) //冒泡排序(從大到小)
{ struct student tmp;
for (int i = 0; i < SN; i++) // 要排SN個數,則應排SN遍:
{
for(int j = 0; j < SN - i - 1; j++)
{
if(pstu[j+1].score[course] > pstu[j].score[course]) //比較相鄰的兩個數:
{ tmp = pstu[j+1];
pstu[j+1]= pstu[j];
pstu[j]= tmp;
} //對調兩個數,需要有"第三者"參以
}
}
}
void output(struct student *pstu)
{
cout<<setw(8)<<"學號";
cout<<setw(10)<<"姓名";
cout<<setw(8)<<"語文";
cout<<setw(8)<<"數學";
cout<<setw(8)<<"外語"<<endl;
for(int i=0;i<SN;i++)
{ cout<<setw(8)<<pstu[i].num;
cout<<setw(10)<<pstu[i].name;
for (int j=0;j<CN;j++)
cout<<setw(8)<<pstu[i].score[j];
cout<<endl;}
}
void avgscore(struct student *pstu)
{
int sum[CN],n;
for(n=0; n<CN; n++)
{ sum[n]=0;
for(int j=0; j<SN; j++)
sum[n]+=pstu[j].score[n];
}
cout<<"各科課程的平均成績:";
for(n=0;n<CN; n++)
cout<<setw(5)<<sum[n]/SN;
cout<<endl;
}
void maxmin(struct student *pstu)
{
int max[CN],min[CN],n;
for(n=0; n<CN; n++)
{ max[n]=0;
min[n]=100;
for(int j=0; j<SN; j++)
{ if (pstu[j].score[n]>max[n])
max[n]=pstu[j].score[n];
if (pstu[j].score[n]<min[n])
min[n]=pstu[j].score[n];
}
}
cout<<"各科課程的最高分: ";
for(n=0;n<CN; n++)
cout<<setw(5)<<max[n];
cout<<endl;
cout<<"各科課程的最低分: ";
for(n=0;n<CN; n++)
cout<<setw(5)<<min[n];
cout<<endl;
}
void main()
{
struct student stu[SN]={
{2004101,"林志穎",89,67,90},
{200,"楊呀呀",65,80,56},
{2004103,"周星馳",76,66,71},
{2004104,"畫風",60,76,88},
{2004105,"王小鴨",82,90,78},
{2004106,"陳道明",70,81,93},
{2004107,"劉德華 ",85,60,76},
{2004108,"鄒石牆 ",80,76,61},
{2004109,"林大",70,66,98},
{2004110,"張依依",62,60,87},
};
int n;
cout<<setw(30)<<"*** 學生成績管理 ***"<<endl<<endl;
cout<<"要對第幾門課程的成績排序: ";
cin>>n; //輸入要排序的第幾門課程
course=n-1;
struct student *pstu=stu;
cout<<endl;
bubble(pstu);
output(pstu);
cout<<endl;
maxmin(pstu);
avgscore(pstu);
}
**************************************************
⑹ C語言課程設計
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <conio.h>
typedef struct linknode
{
long number; /* 編號 */
char name[51]; /* 名稱 */
double price; /* 價格 */
long amount; /* 數量 */
double money; /* 總價 */
char procer[21]; /* 生產商 */
struct linknode *next;
} linknode;
linknode *head, *tail;
int NODSIZE;
void error(const char *errmsg);
void init();
void eatenter();
void input(linknode *node);
void insert();
void locate(linknode **pprev, linknode **pnext);
void remove();
void modify();
void output(linknode *node);
void search();
void cleanup();
void display();
void error(const char *errmsg)
{
puts(errmsg);
cleanup();
exit(1);
}
void init()
{
NODSIZE = sizeof(linknode);
head = tail = (linknode *)malloc(NODSIZE);
if (head == NULL)
error("無法分配內存!");
memset(head, 0, sizeof(linknode));
printf("歡迎使用簡單貨物信息管理系統\n");
}
void eatenter()
{
while (getchar() != '\n');
}
void input(linknode *node)
{
printf("商品名稱: ");
scanf("%50[^\n]", node->name);
eatenter();
printf("商品價格: ");
scanf("%lf", &node->price);
eatenter();
printf("商品數量: ");
scanf("%ld", &node->amount);
eatenter();
printf("商品生產商: ");
scanf("%20[^\n]", node->procer);
eatenter();
node->money = node->price * node->amount;
}
/* 添加信息 */
void insert()
{
linknode *node;
long num;
printf("\n請根據提示輸入商品信息(編號0結束)\n");
while (1)
{
printf("商品編號: ");
scanf("%ld", &num);
eatenter();
if (num == 0)
break;
node = (linknode *)malloc(NODSIZE);
if (node == NULL)
error("無法分配內存!");
node->number = num;
input(node);
tail->next = node;
tail = node;
tail->next = NULL;
}
}
void locate(linknode **pprev, linknode **pnext)
{
char choice, nm[51];
long num;
int invalid;
printf("請選擇查找方式:\n");
printf("1: 名稱 2: 編號\n");
do
{
invalid = 0;
choice = getchar();
eatenter();
if (choice != '1' && choice != '2')
{
printf("無效選項!請重新輸入。\n");
invalid = 1;
}
}
while (invalid);
if (choice == '1')
{
printf("貨物名稱: ");
scanf("%50[^\n]", nm);
}
else
{
printf("貨物編號: ");
scanf("%ld", &num);
}
eatenter();
printf("\n");
*pprev = head, *pnext = head->next;
invalid = 0;
while (*pnext)
{
if (choice == '1' && !strcmp((*pnext)->name, nm))
{
invalid = 1;
}
else if ((*pnext)->number == num)
{
invalid = 1;
}
if (invalid)
break;
(*pprev) = (*pnext);
(*pnext) = (*pnext)->next;
}
}
/* 刪除信息 */
void remove()
{
linknode *prev, *cursor;
locate(&prev, &cursor);
if (cursor)
{
printf("成功刪除記錄\n");
prev->next = cursor->next;
if (cursor == tail)
tail = prev;
free(cursor);
}
else
{
printf("無法找到記錄\n");
}
printf("按任何鍵返回上層菜單...\n");
getch();
}
/* 修改信息 */
void modify()
{
linknode *prev, *cursor;
locate(&prev, &cursor);
if (cursor)
{
printf("貨物編號: ");
scanf("%ld", &cursor->number);
eatenter();
input(cursor);
printf("成功更新記錄\n");
}
else
{
printf("無法找到記錄\n");
}
printf("按任何鍵返回上層菜單...\n");
getch();
}
void output(linknode *node)
{
printf("商品編號: %ld\n", node->number);
printf("商品名稱: %s\n", node->name);
printf("商品價格: %.2f\n", node->price);
printf("商品數量: %ld\n", node->amount);
printf("商品生產商: %s\n", node->procer);
printf("商品總價: %.2f\n\n", node->money);
}
void search()
{
linknode *prev, *cursor;
locate(&prev, &cursor);
if (cursor)
{
output(cursor);
}
else
{
printf("無法找到記錄\n");
}
printf("按任何鍵返回上層菜單...\n");
getch();
}
void cleanup()
{
linknode *cursor = head;
while (cursor)
{
head = head->next;
free(cursor);
cursor = head;
}
}
void display()
{
linknode *cursor = head->next;
while (cursor)
{
output(cursor);
cursor = cursor->next;
}
printf("按任何鍵返回上層菜單...\n");
getch();
}
void main()
{
char choice;
printf("歡迎使用簡單商品管理系統\n");
init();
while (1)
{
printf("請選擇相關操作:\n");
printf("1: 添加記錄\t2: 刪除記錄\t");
printf("3: 查詢記錄\n4: 修改記錄\t");
printf("5: 顯示記錄\t6: 退出程序\n");
choice = getchar();
eatenter();
switch ( choice )
{
case '1':
insert();
break;
case '2':
remove();
break;
case '3':
search();
break;
case '4':
modify();
break;
case '5':
display();
break;
case '6':
cleanup();
exit(0);
}
system("cls");
}
}
⑺ C語言課程設計
做一個猜數字的游戲,參考代碼:
#include "stdio.h"
#include "conio.h"
#include "dos.h"
#include "stdlib.h"
void main()
{
int z,z1,ia,ib,iindex,iindex1,i,ag,i_1,i_2,easy,xianshi;/*定義變數*/
int i1[5],i2[5];
char yesno;
chooes:/*設置GOTO點*/
printf("please chooes :\n 1 for nomal\n 2 for hard\n please input 1 or 2 :");/*選擇難度開始*/
scanf("%d",&easy);
if(easy==1)
{
iindex1=20;
}
else
{
if(easy==2)
{
iindex1=10;
}
else
{
if(easy==520)
{
shua();/*調用刷小屏涵數*/
printf("wahahahaaaaa.......\nyou choose -=Crazy=- model!!!\n");
iindex1=5;
getch();
}
else
{
shua();/*調用刷小屏涵數*/
printf("**erroy...\n please input again...\n 1 or 2:");
goto chooes;
}
}
}
for(iindex=0;iindex<10;iindex++)/*為變數賦值*/
{
i1[iindex]=0;
i2[iindex]=0;
}
ia=0,ib=0,z=11;
iindex=0;
do/*隨機選取1-9999的數,放棄1-999的數,選擇1000-9999的數*/
{
for(iindex=0;iindex {z=random(100)*random(100);}/*隨機選數*/
i1[3]=z%10;/*把隨即數分成4個*/
i1[2]=z/10%10;
i1[1]=z/100%10;
i1[0]=z/1000%10;
}
while(z<1000||i1[0]==i1[1]||i1[0]==i1[2]||i1[0]==i1[3]||i1[1]==i1[2]||i1[1]==i1[3]||i1
[2]==i1[3]||i1[0]==0);/*判斷每一位數是否相同,如果是則重新輸出*/
shua();/*調用刷小屏涵數*/
printf("Now!!you have %d lifes!!Game Star!!\n",iindex1);/*游戲開始*/
printf(" please input 4 numbers :\n\n");
for(xianshi=10;iindex1>0;iindex1-=1,xianshi-=1)/*iindex1決定嘗試次數*/
{ do
{
printf("*");
scanf("%d",&z1);
i2[3]=z1%10;/*把玩家輸入的數分離成4個*/
i2[2]=z1/10%10;
i2[1]=z1/100%10;
i2[0]=z1/1000%10;
if(z1>9999||z1<1000||i2[0]==i2[1]||i2[0]==i2[2]||i2[0]==i2[3]||i2[1]
==i2[2]||i2[1]==i2[3]||i2[2]==i2[3]||i2[0]==0)/*判斷玩家輸入數字是否每一位不同,是則重新輸入
*/
{
shua();/*調用刷小屏涵數*/
printf("\n**erroy...\n please input again :\n\n");
continue;
}
else
{
break;
}
}while(1);/*設置非0,使循環直到break*/
ib=0;/*開始判斷:數字正確,位置錯誤的個數(B)*/
if(i1[0]==i2[1])ib++;
if(i1[0]==i2[2])ib++;
if(i1[0]==i2[3])ib++;
if(i1[1]==i2[0])ib++;
if(i1[1]==i2[2])ib++;
if(i1[1]==i2[3])ib++;
if(i1[2]==i2[0])ib++;
if(i1[2]==i2[1])ib++;
if(i1[2]==i2[3])ib++;
if(i1[3]==i2[0])ib++;
if(i1[3]==i2[1])ib++;
if(i1[3]==i2[2])ib++;
for(ia=0,iindex=0;iindex<4;iindex++)/*開始判斷位置正確,數字錯誤的數(A)*/
{
if(i1[iindex]==i2[iindex])
{
ia++;
}
}
printf("-----\n");
printf("*%dA%dB\n\n",ia,ib);
gotoxy(60,11-xianshi),printf("%2d. %d * %dA%dB",11-xianshi,z1,ia,ib);/*在右邊顯
示出之前的輸入*/
shua();/*調用刷小屏涵數*/
if(z==z1)
{
printf("\n");
break;
}
else
{
printf(" you have last %d life...\n try again :\n\n",iindex1-1);
continue;
}
}
if(iindex1==0)/*判斷輸贏*/
{
printf("ans is *%d*\n",z);
printf("***sorry you lose...***");
for(i=10;i>0;i--)
{ sound(100*i);
delay(10000000);
nosound();
}
}
else
{ printf("***GREAT!! You WIN!!***");
for(i=1;i<10;i++)
{ sound(100*i);
delay(10000000);
nosound();
}
}
getch();
printf(" \n\nplay again?? y/n : ");/*是否重來*/
scanf("%s",&yesno);
if(strcmp('y',yesno)==0)
{
clrscr();/*清屏*/
goto chooes;
}
else
{
if(strcmp('n',yesno)==0)
{
printf(" 88...\n");
printf(" press any key to quit...");
}
else
{
shua();
printf(" sorry,input again...\n y/n : ");
}
}
getch();
}
shua()/*刷小屏涵數*/
{
int i_1,i_2;
for(i_1=0;i_1<40;i_1++)
{
for(i_2=0;i_2<25;i_2++)
{
gotoxy(i_1,i_2),printf(" ");
}
}
gotoxy(1,1);
}
⑻ c語言課程設計
課程設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發展的日新日異,當今計算機應用在是生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發技術十分重要的。
我的題目是文章處理系統的設計,對於我們這些新手來說,這是很大的考驗,我一千次一萬次的問自己,怎麼才能找到課堂所學與實際應用的最佳結合點?怎麼才能讓自己的程序在篇幅上簡單,在使用價值上豐富?怎樣讓自己的業余更靠近專業?怎樣讓自己的計劃更具有序性,而不會忙無一用?機會是老師,學校,以及無數代教育工作者給的,而能力是自己的,耐性是需要的。經過自己的琢磨,聽取了師姐,師兄們的建議,還查閱了很多書籍,才做到了心中有數,才了解了C語言課程設計的真正用意——培養自學能力,養成程序編輯的好習慣。我從來不相信車到山前必有路的說法,認為那隻是懶惰者自尋懶惰的借口,我要積極,要把握,要努力。
回顧起此次課程設計,至今我仍感慨頗多,的確,從從拿到題目到完成整個編程,從理論到實踐,在整整半個學期的日子裡,可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體……通過這次課程設計之後,一定把以前所學過的知識重新溫故。
這次課程設計終於順利完成了,在設計中遇到了很多編程問題,最後在郭老師的辛勤指導下,終於游逆而解。同時,在郭老師的身上我學得到很多實用的知識,在次我表示感謝!同時,對給過我幫助的所有同學和各位指導老師再次表示忠心的感謝
在課程設計過程中,我學到了很多人生的哲理,懂得怎麼樣去制定計劃,怎麼樣去實現這個計劃,並掌握了在執行過程中怎麼樣去克服心理上的不良情緒,黑夜過去了,我們收獲的是黎明。在本次實踐中,給我印象最為深刻的是在文件刪除程序的編譯過程中,先有我的各個子程序都已經編輯成功,那麼這最後的程序就將是我成功的關鍵。老天不會讓我太過順利,他在這最後的時刻設置的障礙,是要考驗我的能力,他要置我於死地?在這個問題的解決上,我打了退堂鼓,我不能忍受長時間的無功而反,時間正在消磨我的意志。沒有了柳暗花明的一天,那麼我怎麼能說經受住了考驗?謝謝老師的那句話,她說:人力有所不能及,然而,人的精神是不會敗倒的。我鼓起勇氣,到處問,到處查資料,黃天不負有心人,在一篇文章上,終於看到了我所特別要求的函數,我實現了組合是關鍵的理論。不得不說這是精神的勝利,是永不言敗的精神讓我的程序重見天日。謝謝給我指點迷津的老師。
6月11日,我們的課程設計結束了,但是它留給我的印象是不可磨滅的。無論我以後會不會涉及到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語言課程設計目的
沒得題目??那就隨便寫三。。。比如啥子增加編程技巧,熟練對你那個編程軟體的應用,鞏固你們教的所學的啥子知識什麼的````