當前位置:首頁 » 編程語言 » c語言簡單的課程設計

c語言簡單的課程設計

發布時間: 2022-09-04 11:46:23

c語言編程 只要一個簡單的課程設計,題目是:《簡單資料庫

這個要看你的平台的,什麼資料庫,什麼操作系統,什麼開發工具
目前,資料庫基本都支持SQL語言的(LZ的就是SQL語言),而不同的資料庫對C支持的方式也不同
如windwos平台,大部分資料庫都可用ADO
當然,資料庫本身也會提供C語言開發
如oracle,支持pro*c,oci等
先找本資料庫的書看下,明白SQL語言後再參考不同的平台,看下你而要的資料庫的開發方式.

㈡ 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語言課程設計實例

#include<iostream.h>
void main()
{
char a[12][9]={{'j','a','n','u','a','r','y'},{'F','e','b','r','u','a','r','y'},{'m','a','r','c','h'},{'a','p','r','i','l'},{'m','a','y'},{'j','u','n','e'},{'j','u','l','y'},{'a','u','g','u','s','t'}, {'s','e','p','t','e','m','b','e','r'},{'o','c','t','o','b','e','r'},{'n','o','v','e','m','b','e','r'},{'D','e','c','e','m','b','e','r'}},(*p)[9]=a;
int b;
cout<<"輸入月份:";
cin>>b;
cout<<"該月的英文單詞是:"<<*(p+b-1)<<endl;
}

程序寫到這分上,我都想自殺了.......用字元串應該會簡單些,可是我沒想好..只能這樣了..

㈣ C語言課程設計

//我以前的作業

游戲說明
1.開始游戲
1)系統隨機產生一位不重復的N位數字。N的大小與等級有關。
初級:N=3 中級:N=4 高級:N=5
2)游戲者輸入所猜的不重復數字,並按回車提交。提交的數據
數應與N的大小一致,當數據位數大於N時,只取前N位。
3)系統將提交的數與它自動產生的數進行比較,輸出結果「*A*B」形式。其中A代表數字正確相應位置也正確,B代表數字正確但位置不正確。如:1A3B表示游戲者有1個數字的位置正確且數值也正確,除此以外,游戲者還猜對了3個數字,但位置不對,即游戲者已經猜出4位數據,但有3個數據位置不對!
4)游戲者有限定次數的猜測機會,在規定次數內完成,則游戲成功,否則,游戲失敗。其中,猜測次數與等級有關:
初級:10次 中級:9次 高級:8次。
5)按完成游戲所用的時間和次數計算游戲者所得分數,游戲等級越高,猜測所用的次數越少,得分越高!若游戲者得分比系統已經保存的分數的高,將提示要求輸入游戲者信息,並且保存在最佳排行之中。
2.等級設置
6)游戲者可以自行設置游戲等級:初級,中級和高級。
3.最佳排行
在最佳排行中,游戲者可以查看當前游戲的最佳排行。
4.游戲說明
在游戲說明中,游戲者可以查看游戲規則。

三.總體設計
本課程設計對模塊設計的要求如下:
(1)要求使用多文件方式實現設計;
(2)要求在各個文件內實現結構化設計;
(3)每個模塊作為一個單獨的C文件,每個文件內的函數如表所示,表中給出了各個函數的功能說明。
(4)宏和數據結構等放在頭文件中,並使用條件編譯
(1)文件及函數組成
源文件 函數名或其他成分 功能
record.h
ASK 宏定義
結構聲明 結構聲明
庫函數及函數原型聲明
game_ control.c Game_rank 設置游戲等級
Game_explain 輸出遊戲說明
game_ register.c Tiptop_record 記錄最高分
Tiptop_output 輸出最佳排行
game.c Game_main 開始游戲中心
Build_number 獲取系統隨機數字
Game_in_out 獲取游戲者數據和輸出結果
Time_command 時間控制
Game_result 游戲結果處理輸出
record.c main 主函數
Menu_select 選擇菜單
manage_menu 處理菜單

(2)函數設計
1.頭部文件
文件名稱:record.h
功 能:聲明函數原型,包含文件及自定義宏和數據結構。
要 求:報告是否能正常打開文件執行操作。
2. 設置游戲等級函數
函數原型:void Game_rank(void)
功 能:可由游戲者自行設置游戲等級
參 數:void
返 回 值:void
要 求:如果游戲者沒有進行等級設定,則默認初級進行游戲。
3. 輸出遊戲說明函數
函數原型:void Game_ explain()
功 能:輸出遊戲規則說明
參 數:void
返 回 值:void
要 求:說明游戲相應的按鍵,保證游戲者按照說明。
4. 記錄最高分函數:
函數原型:void Tiptop_register(int)
功 能:把從Get_player函數得到的游戲者信息和游戲的積分信息一同保存到指定路徑的Tiptop_register.dat文件中
參 數:int S;S為游戲積分
返 回 值:void
要 求:要求把Tiptop1.txt(初級最高分) Tiptop2.txt(中級最高分) Tiptop3.txt(高
級最高分)原來有的信息替換為現在的信息,並且只有積分大於原有信息的第
十名,才會被以替換的方式記錄;並且是降序的方式排列的。
5. 輸出最佳排行函數:
函數原型:void Tiptop_out()
功 能:輸出最佳排行信息
參 數:void
返 回 值:void
要 求:沒有信息的時候輸出提示,有信息時按降序排列輸出全部信息。
6. 開始游戲中心函數
函數原型:void Game_main()
功 能:調用Time_ control 、Build_number等函數,進行游戲的整體控制
參 數:void
返 回 值:void
要 求:注意函數的完整性,保證游戲順利進行,注意沒有設置等級時候,默認C=1!
7. 獲取系統隨機數字函數
函數原型:int *Build_number()
功 能:系統調用<time.h>文件,利用srand((unsigned) time(&)產生1個N位隨機數字,供游戲者猜測
參 數:void
返 回 值:int 8=*i:指向產生的隨機數字構成的數組的指針
要 求:產生的數字是隨機的,並且是不重復的,總共產生N(依據游戲等級而定)位數字,組成數組[初級為3個數字]。
8. 獲取游戲者游戲數據和輸出遊戲進程結果函數
函數原型:void Course_in_out()
功 能:把游戲者猜的數據讀入內存,並且分析得出結果,並輸出結果
參 數:void
返 回 值:void
要 求:用A或B的代碼表示本次的結果,其中A表示數值對位置也對,B表示數值對,但位置錯了!每次得到游戲者的猜測數據都要分析得出結果並輸出結果,以便游戲者的下一次猜測。
9. 時間控制函數
函數原型:int Time_ control()
功 能:利用<dos.h>和<time.h>文件,得到玩游戲的總時間,計算游戲積分。
參 數:void
返 回 值:int Time:游戲前後的時間差異
要 求:得到的時間是以秒為單位,數據是整型數據。
10. 游戲結果處理輸出函數
函數原型:void Game_result(int m )
功 能:計算,得出最後游戲積分
參 數:int m:整個游戲的時間
返 回 值:void
要 求:按照游戲等級,設置不同的游戲積分方式。
11. 主函數:
函數原型:void main()
功 能:調用各個子函數,實現整體程序的運行
參 數:void
返 回 值: void
要 求:控制整個游戲的順利進行。
12. 選擇菜單函數:
函數原型:void Menu_select()
功 能:得到Handle_menu的返回值,由一個switch語句選擇開始,等級,最佳排行,游戲說明,結束等菜單操作。
參 數:void
返 回 值:void
要 求:由Handle_menu得到數據可循環得到,直到得到數字5時,選擇退出菜單,方可退出遊戲,否則一直循環程序!
13. 處理菜單函數:
函數原型:int Handle_menu()
功 能:輸出菜單選擇提示,並由cin語句實現游戲者的輸入,輸入選擇相應菜單對應的菜單序號,並把相應的值傳給Menu_select函數
參 數:void
返 回 值:int n:選擇相應菜單的菜單序號
要 求:輸入的值不是相應的菜單的序號時返回0值,否則返回遊戲者的輸入值,以選擇相應菜單。

四.程序代碼
1. record.h
#include"time.h"
#include<dos.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//結構體
#define MAXSIZE 20
typedef long int ElemType; //定義結構體tiptop,存放游戲者的最高分等信息
typedef struct tiptop
{
ElemType data;
char name[MAXSIZE];
char grade[MAXSIZE];
int year;
int month;
int day;
char week[MAXSIZE];
int hour;
int minute;
int second;
}tiptop;
//全局變數
int C; //C為等級設置變數
//函數聲明
void Menu_select(); //選擇菜單函數
int manage_menu(); //處理菜單函數
void Tiptop_record(int); //記錄最高分函數
void Tiptop_output(); //輸出最佳排行函數
void Game_rank(); //設置游戲等級函數
void Game_explain(); //輸出遊戲說明函數
void Game_main(); //開始游戲中心函數
int *Build_number(); //獲取系統隨機數字函數
void Game_in_out(); //獲取游戲數據和輸出遊戲進程結果函數
int Time_command(); //時間控制函數
void Game_result(int); //游戲結果處理輸出函數

2. game_ control.c
#include"record.h"
//**********************
// 設置游戲等級函數
//**********************
void Game_rank()
{
FILE *fp;
printf("\t******************************\n");
printf("\t************1:初級************\n");
printf("\t************2:中級************\n");
printf("\t************3:高級************\n");
printf("\t******************************\n");
printf("\t請選擇游戲等級:\t");
loop:
scanf("%d",&C);
if(C<1||C>3)
{
printf("\t輸入有誤!請重新輸入:\t");
goto loop;
}
if((fp=fopen("C.txt","w"))==NULL)
{
printf("打開C.txt文件失敗!");
exit(1);
}
fwrite(&C,sizeof(int),1,fp);
fclose(fp);
if(C==1)
printf("\t等級設置為初級!\n");
if(C==2)
printf("\t等級設置為中級!\n");
if(C==3)
printf("\t等級設置為高級!\n");
printf("\n");

}
//****************
//輸出遊戲說明函數
//****************
void Game_explain()
{
printf("游戲說明:\n");
printf("\t**********************************************************\n");
printf("\t**********************************************************\n");
printf("\t①:游戲開始,系統隨機產生一位不重復的N位數字。N的大小與等級\n");
printf("\t有關:\n");
printf("\t初級:N=3\t中級:N=4\t高級:N=5\t\n");
printf("\t②:游戲者輸入所猜的不重復數字,並按回車提交。\n");
printf("\t提交的數據位數應與N的大小一致,當數據位數大於N時,只取前N位;\n");
printf("\t③:系統將提交的數與它自動產生的數進行比較,輸出結果\n");
printf("\t「*A*B」形式。其中A代表數字正確相應位置也正確,B代\n");
printf("\t表數字正確但位置不正確。如:1A3B表示游戲者有1個數字的位置\n");
printf("\t正確且數值也正確,除此以外,游戲者還猜對了3個數字,但位置不\n");
printf("\t對,即游戲者已經猜出4位數據,但有3個數據位置不對!\n");
printf("\t④:游戲者有限定次數的猜測機會,在規定次數內完成,\n");
printf("\t則游戲成功。否則,游戲失敗。其中,猜測次\n");
printf("\t數與等級有關:\n");
printf("\t初級:10次\t中級:9次\t高級:8次。\t\n");
printf("\t⑤:按完成游戲所用的時間和次數計算游戲者所得分數,\n");
printf("\t游戲等級越高,猜測所用的次數越少,得分越高!\n");
printf("\t若游戲者得分比系統已經保存的分數的高,將提示要求\n");
printf("\t輸入游戲者信息,並且保存在最佳排行之中。\n");
printf("\t⑥:游戲者可以自行設置等級!\n");
printf("\t**********************************************************\n");
printf("\t**********************************************************\n");
printf("\n");
}
3. game_ register.c
#include"record.h"
//**************
//記錄最高分函數
//**************
void Tiptop_record(int S)
{
FILE *fp;
tiptop n;
char *week[]={"星期天","星期一","星期二","星期三","星期四","星期五",
"星期六"};
time_t timep;
struct tm *t;
printf("\t恭喜您!\n");
printf("\t您獲得本游戲的最高分!\n");
//獲取名字
printf("\t請輸入您的姓名:");
printf("\t");
scanf("%s",n.name);
//獲取時間
time(&timep);
t=gmtime(&timep);
t->tm_year=1900+t->tm_year;
t->tm_mon=1+t->tm_mon;
t->tm_hour=8+t->tm_hour;
n.year=t->tm_year;
n.month=t->tm_mon;
n.day=t->tm_mday;
strcpy(n.week,week[t->tm_wday]);
n.hour=t->tm_hour;
n.minute=t->tm_min;
n.second=t->tm_sec;
//獲取等級
if(C==1)
strcpy(n.grade,"初級");
if(C==2)
strcpy(n.grade,"中級");
if(C==3)
strcpy(n.grade,"高級");
//獲取分數
n.data=S;
if(C==1)
{
if((fp=fopen("tiptop1.txt","w"))==NULL)
{
printf("\t打開tiptop1.txt文件失敗!");
exit(1);
}
fwrite(&n,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(C==2)
{
if((fp=fopen("tiptop2.txt","w"))==NULL)
{
printf("\t打開tiptop2.txt文件失敗!");
exit(1);
}
fwrite(&n,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(C==3)
{
if((fp=fopen("tiptop3.txt","w"))==NULL)
{
printf("\t打開tiptop3.txt文件失敗!");
exit(1);
}
fwrite(&n,sizeof(struct tiptop),1,fp);
fclose(fp);
}
}
//****************
//輸出最佳排行函數
//****************
void Tiptop_output()
{
int i;
FILE *fp;
tiptop p,q,r;
if((fp=fopen("tiptop1.txt","r"))==NULL)
{
printf("還沒有最佳排行!");
exit(1);
}
fread(&p,sizeof(struct tiptop),1,fp);
fclose(fp);
if((fp=fopen("tiptop2.txt","r"))==NULL)
{
printf("還沒有最佳排行!");
exit(1);
}
fread(&q,sizeof(struct tiptop),1,fp);
fclose(fp);
if((fp=fopen("tiptop3.txt","r"))==NULL)
{
printf("還沒有最佳排行!");
exit(1);
}
fread(&r,sizeof(struct tiptop),1,fp);
fclose(fp);
if(p.data==0&&q.data==0&&r.data==0)
{
printf("\t暫無最高分信息!");
printf("\n");
printf("\t是否直接進入游戲?刷新最佳排行信息?\n");
printf("\t1:是\t2:否\n");
printf("\t");
i=0;
scanf("%d",&i);
if(i==1)
{
printf("\t請設置游戲等級: \n");
Game_rank();
Game_main();
}
else
Menu_select();
}
else
{
printf("\t最佳排行:\n");
printf("\t等級\t姓名\t分數\t游戲時間\n");
if(p.data!=0)
{
printf("\t%s\t%s\t%d\t",p.grade,p.name,p.data);
printf("%d—%d—%d\t",p.year,p.month,p.day);
printf("%s\t%d:%d:%d\n",p.week,p.hour,p.minute,p.second);
}
if(q.data!=0)
{
printf("\t%s\t%s\t%d\t",q.grade,q.name,q.data);
printf("%d—%d—%d\t",q.year,q.month,q.day);
printf("%s\t%d:%d:%d\n",q.week,q.hour,q.minute,q.second);
}
if(r.data!=0)
{
printf("\t%s\t%s\t%d\t",r.grade,r.name,r.data);
printf("%d—%d—%d\t",r.year,r.month,r.day);
printf("%s\t%d:%d:%d\n",r.week,r.hour,r.minute,r.second);
}
if(p.data==0)
printf("\t初級暫無最高分信息!\n");
if(q.data==0)
printf("\t中級暫無最高分信息!\n");
if(r.data==0)
printf("\t高級暫無最高分信息!\n");

//重置最佳排行榜
if(p.data!=0&&q.data!=0&&r.data!=0)
{
printf("\t是否重置最佳排行?\n");
printf("\t1:是\t2:否\t");
i=0;
scanf("%d",&i);
if(i==1)
{
p.data=0;
q.data=0;
r.data=0;
if((fp=fopen("tiptop1.txt","w"))==NULL)
{
printf("打開tiptop1.txt文件失敗!");
exit(1);
}
fwrite(&p,sizeof(struct tiptop),1,fp);
fclose(fp);
if((fp=fopen("tiptop2.txt","w"))==NULL)
{
printf("打開tiptop2.txt文件失敗!");
exit(1);
}
fwrite(&q,sizeof(struct tiptop),1,fp);
fclose(fp);
if((fp=fopen("tiptop3.txt","w"))==NULL)
{
printf("打開tiptop3.txt文件失敗!");
exit(1);
}
fwrite(&r,sizeof(struct tiptop),1,fp);
fclose(fp);
}
}
}
}

4.game.c
#include"record.h"

//全局變數
int *c1; //產生的數保存在指針c中
int A,B; // AB均為游戲重要參數
int N; //NUM為需要猜測的數據個數
int TIME; //TIME為猜數字共有的次數
long int S; //S為游戲積分
//****************
//開始游戲中心函數
//****************
void Game_main()
{
FILE *fp;
int time;
if((fp=fopen("C.txt","r"))==NULL)
{
printf("打開C.txt文件失敗!");
printf("\n");
exit(1);
}
fread(&C,sizeof(int),1,fp);
N=C+2;
TIME=11-C;
if(C==1)
{
printf("\t游戲等級為:初級!\n");
}
if(C==2)
{
printf("\t游戲等級為:中級!\n");
}
if(C==3)
{
printf("\t游戲等級為:高級!\n");
}
printf("\t需要猜測的數字位數數為:%d,共有%d次猜測機會!",N,TIME);
printf("\n");
time=Time_command();
Game_result(time);
}
//********************
//獲取系統隨機數字函數
//********************
int *Build_number()
{
int i,j,m;
time_t t;
c1=(int *)malloc(N*sizeof(int));
if(c1==NULL)
{
printf("分配內存錯誤!\n");
printf("\n");
exit(1);
}
srand((unsigned) time(&t));
for(i=0;i<N;i++)
{
m=rand()%10; //產生一個數字
if(i==0)
*c1=m;
else
{
for(j=0;j<i;j++)
{
if(m==*(c1+j)//若原有數據之中已經有了與m相同的數字,則重新產生數字
{
i--;
break;
}
*(c1+i)=m;
}
}
}
printf("\t系統產生的數據為:");
for(i=0;i<N;i++)
printf("*");
printf("\n");
printf("\t您可以開始游戲! 計時開始...\n");
printf("\t不能有重復的數字!\n");
printf("\t數字中間用空格隔開\n");
return c1;
}
//****************************************
//獲取游戲者游戲數據和輸出遊戲進程結果函數
//****************************************
void Game_in_out()
{
int i,j,m;
int n; //游戲者猜測的數字
int a[5]; //游戲者猜測的數據構成的數組
int c[5];
int *p;
p=Build_number();
for(i=0;i<N;i++)
{
c[i]=*(p+i);
}
for(m=0;m<TIME;m++)
{
if(m==(TIME-1))
{
printf("\t**請注意:**\n");
printf("\t**僅剩下一次機會了!**\n");
printf("\t**努力!加油!**\n");
}
printf("\t請輸入第%d次猜測的數字:\t",m+1);
for(j=0;j<N;j++)
{
scanf("%d",&n);
a[j]=n;
}
A=0;
B=0;
for(i=0;i<N;i++)
{
if(a[i]==c[i])
A++;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(a[i]==c[j]&&i!=j)
B++;
}
}
printf("\t您本次猜測的結果為:\t");
printf("%d A %d B",A,B);
printf("\n");
//游戲成功控制退出猜測程序
if(A==N)
{
m=TIME;
}
}

//TIME改變,記錄游戲總次數的數據
TIME=i;
free(c1);
}
//************
//時間控制函數
//************
int Time_command()
{
int a; //游戲時間
time_t first, second;
first=time(NULL); //獲取系統時間
Game_in_out();
second=time(NULL); //再次獲取系統時間
a=(int)difftime(second,first);
return a;
}
//********************
//游戲結果處理輸出函數
//********************
void Game_result(int m)
{
FILE *fp;
tiptop p;
time_t t;
int S;
int n;
int i=0;
int minute,second;
if(A!=N)
{
S=0;
printf("\tGame over!\n");
printf("\t您本次游戲的積分為:\t%d",S);
printf("\t繼續努力!\n");
printf("\t是否繼續游戲?\n");
printf("\t1:是\t\t\t2:否");
printf("\n");
scanf("%d",&i);
if(i==1)
Game_main();
else
Menu_select();
}
else
{
printf("\t恭喜您游戲成功!");
printf("\n");
minute=m/60;
second=m%60;
printf("\t您本次游戲所用時間為:");
printf("%d分鍾%d秒\n",minute,second);
printf("\n");

//積分
if(C==1)
{
n=11-TIME;
S=n*n*n*10-m;
}
if(C==2)
{
n=10-TIME;
S=n*n*n*n*10-m;
}
if(C==3)
{
n=9-TIME;
S=n*n*n*n*n*10-m;
}
if(S<10)
{
srand((unsigned) time(&t));
S=rand()%100;
}
printf("\t您本次游戲的積分為:\t%d",S);
printf("\n");
}
//判斷是否符合最高分條件
if(C==1)
{
if((fp=fopen("tiptop1.txt","r"))==NULL)
{
printf("打開tiptop1.txt文件失敗!");
printf("\n");
exit(1);
}
fread(&p,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(C==2)
{
if((fp=fopen("tiptop2.txt","r"))==NULL)
{
printf("打開tiptop2.txt文件失敗!");
printf("\n");
exit(1);
}
fread(&p,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(C==3)
{
if((fp=fopen("tiptop3.txt","r"))==NULL)
{
printf("打開tiptop3.txt文件失敗!");
printf("\n");
exit(1);
}
fread(&p,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(S>=(p.data))
Tiptop_record(S);
//提示跳轉
if(C==1)
{
printf("\t您本次游戲等級是初級,是否要進入中級?\n");
printf("\t1:是\t\t\t2:否");
printf("\n\t");
i=0;
scanf("%d",&i);
if(i==1)
{
C=2;
if((fp=fopen("C.txt","w"))==NULL)
{
printf("打開C.txt文件失敗!");
exit(1);
}
fwrite(&C,sizeof(int),1,fp);
fclose(fp);
Game_main();
}
else
Menu_select();
}
if(C==2)
{
printf("\t您本次是中級游戲,是否要進入高級游戲呢?\n");
printf("\t1:是\t\t\t2:否");
printf("\n\t");
i=0;
scanf("%d",&i);
if(i==1)
{
C=3;
if((fp=fopen("C.txt","w"))==NULL)
{
printf("打開C.txt文件失敗!");
exit(1);
}
fwrite(&C,sizeof(int),1,fp);
fclose(fp);
Game_main();
}
else
Menu_select();
}
}

5.record.c
#include"record.h"
//******
//主函數
//******
void main()
{
printf("\n");
printf("********************************************\n");
printf("********************************************\n");
printf(" 歡迎進入猜數字游戲 \n");
printf("\n");
printf("\t設計者: \n");
printf("********************************************\n");
printf("********************************************\n");
printf("\n");
Menu_select();
}
//************
//選擇菜單函數
//************
void Menu_select()
{
while(1)
{
switch(manage_menu())
{
case 0:
printf("輸入有誤,請重新輸入!\n");
break;
case 1:
Game_main();
break;
case 2:
Game_rank();
break;
case 3:
Tiptop_output();
break;
case 4:
Game_explain();
break;
case 5:
printf("\n");
printf("\n");
printf("*************** ** ** **** ** ** ** ** *** \n");
printf("*************** ** ** ** ** **** ** ** ** ***** \n");
printf(" ** ** ** ** ** ** ** ** ** ** ******* \n");
printf(" ** ** ** ** ** ** ** ** ** ** ******* \n");
printf(" ** *********** ************* ** ** ** **** ***** \n");
printf(" ** *********** ************* ** ** ** **** ***** \n");
printf(" ** ** ** ** ** ** ** ** ** ** ***** \n");
printf(" ** ** ** ** ** ** ** ** ** ** *** \n");
printf(" ** ** ** ** ** ** **** ** ** *** \n");
printf(" ** ** ** ** ** ** ** ** ** *** \n");
printf("\n");
printf("Goodbye!\n");
exit(1);
}
}
}
//************
//處理菜單函數
//************
int manage_menu()
{
int n;
printf("\t**************************\n");
printf("\t**\t1:開始游戲\t**\n");
printf("\t**\t2:等級設置\t**\n");
printf("\t**\t3:最佳排行\t**\n");
printf("\t**\t4:游戲說明\t**\n");
printf("\t**\t5:退出遊戲\t**\n");
printf("\t**************************\n");
printf("\t請輸入相應序號選擇相應菜單:");
printf("\t");
scanf("%d",&n);
printf("\n");
if(n<1||n>5)
n=0;
return n;
}

㈤ C語言課程設計 編程實現簡單通訊錄程序

下面這個你可以參考下

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
usingnamespacestd;

#definemaxlen15
structpersons
{
intnum;
charname[20];
chare_addr[20];
chartel_no[15];
charsim_no;
chararch;
}persons[maxlen];

typedefstructlnode{
intnum;
charname[20];
chare_addr[20];
chartel_no[15];
charsim_no;
chararch;
structlnode*next;
}listnode,*linklist;

linklisthead=NULL,r=NULL;
listnode*s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9;
inti;
charname1[10],ch;chartel_no1[15];chararch1;charsim_no1;chare_addr1[20];
chars1[20];
FILE*fp;

voidcreat()
{
intj;
longk;
fp=fopen("數據文件.txt","rt");
if(fp!=NULL)
{for(i=0;i<=maxlen;i++)
{j=fgetc(fp);
if(j==EOF)
return;
k=i;
fseek(fp,k*sizeof(structpersons),0);
fread(&persons[i],sizeof(structpersons),1,fp);

s=(linklist)malloc(sizeof(listnode));
s->num=persons[i].num;
strcpy(s->name,persons[i].name);
strcpy(s->e_addr,persons[i].e_addr);
strcpy(s->tel_no,persons[i].tel_no);
s->sim_no=persons[i].sim_no;
s->arch=persons[i].arch;
if(head==NULL)
{head=s;r=head;head->next=NULL;}
else
{r->next=s;
r=s;r->next=NULL;
}}fclose(fp);}
else
{fp=fopen("數據文件.txt","w");
i=1;
}
}
voidShowA()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='A')
{
cout<<endl;
cout<<p1->name<<endl;
cout<<p1->tel_no<<endl;
cout<<p1->sim_no<<endl;}
p1=p1->next;continue;}
}
voidShowB()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='B')
{
cout<<endl;
cout<<p1->name<<endl;
cout<<p1->tel_no<<endl;
cout<<p1->sim_no<<endl;}
p1=p1->next;continue;}
}
voidShowC()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='C')
{
cout<<endl;
cout<<p1->name<<endl;
cout<<p1->tel_no<<endl;
cout<<p1->sim_no<<endl;}
p1=p1->next;continue;}
}
voidShow()
{charch1;
printf("Whicharchdoyouwanttoshow? ");
cout<<"A:同學同事"<<"B:家人"<<"C:其他"<<endl;
cout<<"請選擇:"<<endl;
cin>>ch1;
switch(ch1)
{case'A':ShowA();break;
case'B':ShowB();break;
case'C':ShowC();break;
default:cout<<"error"<<endl;
}
}

voidDelete()
{printf(" 請輸入要刪除用戶的姓名:");

cin>>name1;
p4=head;
if(strcmp(p4->name,name1)==0)
{p4=p4->next;
head=p4;
}
else
{while(strcmp(p4->next->name,name1)!=0)
p4=p4->next;
p5=p4->next;
p4->next=p5->next;
free(p5);
}
}
voidInput()
{s=(linklist)malloc(sizeof(listnode));

printf(" 請輸入該用戶的信息:");

cout<<"name:";
cin>>s->name;
cout<<"tel_no:";
cin>>s->tel_no;
cout<<"sim_no:";
cin>>s->sim_no;
cout<<"e_addr:";
cin>>s->e_addr;
cout<<"arch:";
cin>>s->arch;

if(head==NULL)printf(" ");
else
{p8=head;
while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!=0)
p8=p8->next;
if(p8!=NULL)
{printf("您添加的用戶已存在!");
free(s);}}

if(head==NULL)
{head=s;head->next=NULL;}
else
{r->next=s;
r=s;r->next=NULL;}
}

voidAlter()
{

printf(" 請輸入姓名:");

cin>>name1;
p3=head;
while(p3!=NULL&&strcmp(name1,p3->name)!=0)
p3=p3->next;
if(p3==NULL)
printf(" 您選擇的用戶不存在!");
else
{printf(" 請輸入該用戶的新信息!");

cout<<"name:";
cin>>name1;
cout<<"tel_no:";
cin>>tel_no1;
cout<<"e_addr:";
cin>>e_addr1;
cout<<"sim_no:";
cin>>sim_no1;
cout<<"arch:";
cin>>arch1;
while(p9!=NULL&&strcmp(name1,p9->name)!=0&&strcmp(tel_no1,p9->tel_no)!=0)
p9=p9->next;
if(p9==NULL)
{strcpy(p3->name,name1);
strcpy(p3->tel_no,tel_no1);
strcpy(p3->e_addr,e_addr1);
p3->sim_no=sim_no1;
p3->arch=arch1;
}
else
printf("您添加的用戶已存在!");

}
}
voidDial()
{inta;charb;
cout<<"1.撥叫用戶:"<<endl;
cout<<"2.使用單鍵撥號:"<<endl;
cin>>a;
p0=head;
if(a==1)
{cout<<"請輸入撥叫用戶的姓名:";
cin>>name1;
while(strcmp(name1,p0->name)!=0&&p0!=NULL)
p0=p0->next;
if(p0==NULL)
cout<<"您選擇的用戶不存在!";
else
/*for(c=0;c<15;c++)
{cout<<endl;
cout<<(*p0).tel_no[c];}*/
{cout<<endl;
cout<<p0->tel_no;
cout<<endl;}
}
else
{cout<<"請輸入單鍵號碼:";
cin>>b;
while(p0!=NULL&&b!=p0->sim_no)
p0=p0->next;
if(p0==NULL)
cout<<"您輸入的單鍵號碼不存在!";
else
{cout<<endl;
cout<<p0->name<<endl;
cout<<p0->tel_no;
cout<<endl;}
}
}

voidSave()
{intj;
fp=fopen("數據文件.txt","w");
for(p2=head,j=0;p2!=NULL;j++,p2=p2->next)
{
strcpy(persons[j].name,p2->name);
strcpy(persons[j].tel_no,p2->tel_no);
persons[j].sim_no=p2->sim_no;
strcpy(persons[j].e_addr,p2->e_addr);
persons[j].arch=p2->arch;
fwrite(&persons[j],sizeof(structpersons),1,fp);
}
}

voidmain()
{creat();
do
{
printf("**********************************************************");
printf(" 歡迎來到通訊錄!");
printf(" 請選擇操作:");
printf(" 1.顯示通訊錄");
printf(" 2.刪除通訊錄");

printf(" 3.添加通訊錄");
printf(" 4.編輯通訊錄");
printf(" 5.撥號功能");
printf(" 6.保存剛才的操作並退出 ");
printf("**********************************************************");
printf(" ");
printf(" 選擇您想要的操作:");
cin>>ch;
switch(ch)
{case'1':Show();
break;
case'2':Delete();
break;
case'3':Input();
break;
case'4':Alter();
break;
case'5':Dial();
break;
case'6':Save();
fclose(fp);
exit(0);
break;
default:
printf(" ********************************* ");
printf(" Thenumshould1-6!!! ");
printf(" **********************************");
break;
}
}while(1);
}

㈥ c語言課程報告設計

一 引言
人類已進入21世紀,科學技術突飛猛進,經濟知識和信息產業初見端倪,特別是信息技術和網路技術的訊速發展和廣泛應用,對社會的政治、經濟、軍事、文化等領域產生越來越深刻的影響,也正在改變人們的工作、生活學習、交流方式。信息的獲取、處理、交流和應用能力,已經成為人們最重要的能力之一。 在不久的將來知識經濟將佔世界經濟發展的主導地位,國家綜合國力和國際競爭能力越來越取決於教育發展、科學技術和知識創新的水平,教育在經濟和社會發展過程中將呈現出越來越突出的重要作用。學生成績管理系統是一個學校不可缺少的部分,它的內容對於學校的決策者和管理者來說都至關重要,所以學生成績管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。
1 系統的需求分析
當今時代是飛速發展的信息時代,在各行各業中離不開信息處理,這正是計算機被廣泛應用於信息管理系統的環境。計算機的最大好處在於利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對於復雜的信息管理,計算機能夠充分發揮它的優越性。
管理信息系統是進行信息的採集、存儲、加工、維護和使用的系統[1,2],它是隨著管理科學和技術科學的發展而形成的。學生成績管理系統是一個教育單位不可缺少的部分,它的內容對於學校的決策者和管理者來說都至關重要,所以學生成績管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段,對學生來說可以輕松的查閱自己在校的成績以及信息等。但是一直以來人們都是靠傳統人工的方式管理學生成績,這種管理方式存在著許多缺點,如:效率低,另外時間一長,將產生大量的文件和數據,這對於查找、更新和維護都帶來了不少的困難。
另外,隨著學校規模的不斷擴大,專業、班級、學生的數量急劇增加,有關學生各門課程的成績的各種信息量也成倍增長,而目前許多高校的學生成績管理仍停留在復雜的人工操作上,重復工作較多,工作量大,效率低,因此,迫切需要開發學生成績管理系統。
2 設計系統的意義
在學生成績的規范管理、科學統計和快速查詢方面具有較大的實用意義。它提高了信息的開放性,大大地改善了學生、教師對其最新信息查詢的准確性。建立學生成績管理系統,採用計算機對學生成績進行管理,進一步提高辦學效益和現代化水平。幫助廣大教師提高工作效率,實現學生成績信息管理工作流程的系統化、規范化和自動化。
作為計算機應用的一部分,使用計算機對學生成績管理系統進行信息管理,有著手工管理所無法比擬的優點,這些優點能夠極大地提高學生成績系統管理的效率,也是學校的科學化、正規化管理重要條件。

二 系統總體設計
1 系統設計方案
通過本課程設計可以在復習、鞏固C語言的基礎知識的同時,進一步加深對C語言的理解和掌握。主要運用C語言中的結構體、數組、鏈表、文件等數據結構進行設計一個簡單的管理系統應用程序,使程序具有數據錄入、查詢、刪除、顯示等基本功能。主要的設計思想是通過編寫各種不同類型的函數模塊來實現該系統的不同功能,還採用創建結構體類型來見不同的數據類型組合成一個有機的整體。
2 函數實現說明:
(1) luru( )函數:
該函數主要用於數據的輸入和添加,將各個學生的成績信息准確錄入到系統中為後面的操作提供基礎數據,以供學生查詢。
(2) display( )函數:
該函數是一個顯示函數。它通過for語句的運用,將所有已輸入的學生成績信息清楚的顯示在眼前,使我們對學生成績一目瞭然。
(3) paixu( )函數:
該函數構成了一個排序模塊,它實現了學生成績的排序。該函數定義的變數雖少,但通過文件的連接和if循環語句的使用[1],該功能完整的顯現出來了,仍然使用for語句,實現了目標。
(4) del( )函數:
該函數實現的是刪除功能。該函數雖然定義的變數不多,但通過if語句和scanf語句的使用,對文件進行了讀取和運用,簡便的刪除所選的目標。
(5) chaxun1( )和chaxun2( )函數:
該函數都是通過if和for語句實現不同的查詢功能,前者是根據學號查詢,後者是根據姓名查詢。
(6) main()函數:
一個程序主函數不能少。當以上的函數均編完之後,要實現各個功能操作的連接,還必須有主函數將它們聯系起來,這樣才能達到理想的結果。對以上函數的連接,此程序採用了switch語句,格式清晰、容易接受。至此學生成績管理的基本功能便基本實
3 系統總體設計框圖

圖1 系統總體設計框圖

3系統總體設計流程圖

圖2 系統總體設計流程圖

三 詳細設計
1 錄入函數

圖3 錄入函數設計流程圖

2 顯示函數

圖4 顯示函數設計流程圖

3 排序函數

圖5 排序函數設計流程圖
4 按照學號查詢

圖6 學號查詢函數設計流程圖

5 按照姓名查詢

圖7 姓名查詢函數設計流程圖

四 總結
經歷了這次學生成績管理程序的編輯之後,我們發現編程初看起來似乎是一件很枯燥、乏味的事情,但是其實裡面還是充滿樂趣的。雖然本程序運用的函數不多,再編寫過程中也出現這樣那樣的錯誤,這一切的一切無疑地說明我是多麼粗心,自己還有很多要學的東西。編程尤其是調試,是一項細致深入的工作,需要下工夫、動腦子、善於積累經驗,這往往能反映出一個人的水平、經驗和科學態度。我在編寫系統過程中曾經出現系統報錯但就是找不到原因在哪兒,最後咨詢老師才知道原來區分全形半形的。另外,編譯、連接的成功並不意味著程序的最終成功。邏輯上的錯誤機器不易檢查出來,這時需要對數據結果進行分析。這種錯誤的查找是最難的,需要編程序的人有相當的耐心和細心去把問題找出來。這也是本次程序編輯過程中碰到的最大的難題。
不過值得高興的是最後還是完成任務,雖然這個系統還不算好,還有很多功能不能實現,但能在能有這樣的成果我很欣慰。在編寫程序的過程中,我們得到了老師的精心指導以及孜孜不倦的教誨,在老師的指導下,我們的能力得到了提高,同時養成了科學、嚴謹的作風和習慣,在此,我們對老師的精心栽培表示衷心的感謝!

參考文獻
[1]譚浩強,張基溫.C語言程序設計教程[M].第3版.高等教育出版社,2006
[2] 袁志祥,秦鋒主.數據結構(C語言版)例題詳解與課程設計指導.第二版.中國科學技術大學出版社出版.112

附錄
……
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct score /*各科成績*/
{
float s;
};

struct student /*學生數據*/
{
int num;
struct score f[9];
char name[20];
float ave;
float sum;
};
int i=0; /*統計個數*/
struct student stu[99];
void luru(struct student a[] ); /*錄入函數*/
void paixu(struct student a[]); /*排序函數*/
void del(struct student a[]); /*刪除函數*/
void display(struct student a[]); /*顯示函數*/
void cprint(struct student a[],int m); /*查詢輸出函數*/
void chaxun1(struct student a[]); /*學號查詢函數*/
void chaxun2(struct student a[]); /*姓名查詢函數*/
void main()
{ int number;
printf("\n\n");
printf(" 歡迎使用學生成績管理系統 \n");
printf("-------------------------------------------------------------\n\n");

printf(" ****************** 學生成績管理系統 ****************** \n\n\n");
printf("1.錄入新學生成績數據 ");
printf("2.顯示學生成績數據\n\n");
printf("3.按總成績排序 ");
printf("4.刪除學生成績數據\n\n");
printf("5.按學生學號查詢 ");
printf("6.按學生姓名查詢\n\n");
printf("7.退出\n\n\n");
printf("\t\t\t請輸入功能選擇編號(1-7):\n");

printf("**************************************************************\n");

do
{
scanf("%d",&number);
printf("--------------------------------------------------------------\n");
switch (number)
{
case 1:luru(stu);break; /*錄入新學生成績數據*/
case 2:display(stu);break; /*顯示學生成績數據*/
case 3:paixu(stu);break; /*按總成績排序*/
case 4:del(stu);break; /*刪除學生成績數據*/
case 5:chaxun1(stu);break; /*按學生學號查詢*/
case 6:chaxun2(stu);break; /*按學生姓名查詢*/
case 7:break; /*退出*/
}
}while(number!=7);
printf("--------------------------------------------------------------\n");
printf(" 謝謝使用! ");
}
void luru(struct student a[]) /*錄入函數*/
{
int m;
int k;
char b;
float sum=0;

printf("請輸入科目數(最多6科):");
scanf("%d",&m);
printf("請輸入學生信息\n");
do
{
printf("學號:");
scanf("%d",&a[i].num);
printf("姓名:");
scanf("%s",a[i].name);
for(k=0;k<m;k++)
{
printf("請輸入第%d科目成績:",k+1);
float temp;
scanf("%f",&temp);
a[i].f[k].s = temp;
}
/*計算總分*/
a[i].sum=0;
for(k=0;k<m;k++)
{
a[i].sum=a[i].sum+a[i].f[k].s;
}
/*計算平均分*/
a[i].ave=0;
a[i].ave=a[i].sum/m;
i++;
printf("是否繼續錄入學生數據?\n(Y/N)");
fflush(stdin); /*刷新標准輸入緩沖區*/
scanf("%c",&b);
}while(b=='Y'||b=='y');
display(a);
}

void display(struct student a[]) /*顯示函數*/
{
int k,m;
system("cls"); /*清屏*/
printf("學號\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t總分\t平均分\n");
printf("\n------------------------------------------------------------------------------\n\n");
for(k=0;k<i;k++)
{
printf("%d\t%s\t",a[k].num,a[k].name);
for(m=0;m<6;m++)
{
printf("%.2f\t",a[k].f[m].s);
}
printf("%.2f\t%.2f\n",a[k].sum,a[k].ave);
}
printf("\n------------------------------------------------------------------------\n\n");
printf("請選擇功能:\n1.錄入\t2.顯示\t3.排序\t4.刪除\t5.學號查詢\t6.姓名查詢\t7.退出\n\n");
}

void paixu(struct student a[]) /*排序函數*/
{
int j,k;
struct student temp;
for(k=0;k<i;k++)
{
for(j=0;j<i-k;j++)
{
if(a[j].ave<a[j+1].ave)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("按總分排升序後的學生數據如下\n");
display(a);
}

void del(struct student a[]) /*刪除函數*/
{
int k,j;
printf("請輸入要刪除的學生學號:");
scanf("%d",&k);
for(j=0;j<i;j++)
{
if(k==a[j].num) /*記錄要刪除的學生的位置*/
{
break;
}
}

if (j<i)
{
for(;j<i;j++)
{
a[j]=a[j+1];
}
i--;
printf("刪除後的學生數據\n");
display(a);
}
else
{
printf("\n\t\t沒有您要刪除的學生數據\n\n");
printf("\n請選擇功能:\n1.錄入\t2.顯示\t3.排序\t4.刪除\t5.學號查詢6.姓名查詢\t7.退出\n\n");
}
}

void cprint(struct student a[],int m)/*查詢輸出函數*/
{
int o;
system("cls"); /*清屏*/
printf("學號\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t總分\t平均分\n");
printf("\n------------------------------------------------------------------------------\n\n");
printf("%d\t%s\t",a[m].num,a[m].name);
for(o=0;o<6;o++)
{
printf("%.2f\t",a[m].f[o].s);
}
printf("%.2f\t%.2f\n",a[m].sum,a[m].ave);
printf("\n------------------------------------------------------------------------------\n\n");
printf("\n請選擇功能:\n1.錄入\t2.顯示\t3.排序\t4.刪除\t5.學號查詢\t6.姓名查詢\t7.退出\n\n");
}

void chaxun1(struct student a[])/*學號查詢函數*/
{
int m,t;
printf("請輸入要查詢的學號:");
scanf("%d",&t);
for(m=0;m<=i;m++)
{

if(a[m].num==t)
{
cprint(a,m);
break;

}
if(m==i&&a[m].num!=t)
{
system("cls"); /*清屏*/
printf("\n\t\t沒有查到您要找的學生資料\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("\n請選擇功能:\n1.錄入\t2.顯示\t3.排序\t4.刪除\t5.學號查詢\t6.姓名查詢\t7.退出\n\n");
}
}
}

void chaxun2(struct student a[]) /*姓名查詢函數*/
{
int m;
char t[20];
printf("請輸入要查詢的姓名:");
scanf("%s",t);
for(m=0;m<=i;m++)
{

if(strcmp(a[m].name,t)==0)
{
cprint(a,m);
break;

}
if(m==i&&(strcmp(a[m].name,t)!=0))
{
system("cls"); /*清屏*/
printf("\n\t\t沒有查到您要找的學生資料\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("\n請選擇功能:\n1.錄入\t2.顯示\t3.排序\t4.刪除\t5.學號查詢\t6姓名查詢\t7.退出\n\n");
}
}
}

㈦ C語言課程設計 簡單的.....

Answer To Question 1 & 2 :

充分利用ISO組織於1999年通過的C語言國際標准中的庫函數即可實現第一題。利用簡單的雙重循環即可解決問題二,用遞歸演算法不是好的選擇。

第一題完整源碼
(注意:本源碼中,函數GetWeekDay的返回值僅僅表示輸入參數是否「正確/有效」(例如前三個參數使用2001,2,29就是無效參數),能否得到預期的星期值;真正的星期值則是通過輸出變數返回給主調函數的。)
////////////////////////////////////////////
#include <time.h>
#include <stdio.h>

int GetWeekDay(int nYear,int nMon,int nDay, int *npWeekDay);

int main()
{
int nMyWeekDay;
int nResult;

nResult = GetWeekDay(2007,1,10,&nMyWeekDay);

return 0;
}

//輸入日期,返回星期的C語言函數
int GetWeekDay(int nYear,int nMon,int nDay, int *npWeekDay)
{
int nRetVal = 0;
time_t tMyDateTime;
struct tm tmMyDate,*tmpMyDate;

if((nYear<1900||nYear>=3000)
|| (nMon<1 || nMon>12)
|| (nDay<1||nDay>31) )
{
nRetVal = 1;
*npWeekDay = -1;
return nRetVal;
}
//memset(tmMyDate,0,sizeof(struct tm));
tmMyDate.tm_year = nYear-1900;
tmMyDate.tm_mon = nMon-1;
tmMyDate.tm_mday = nDay;
tmMyDate.tm_hour =16;
tmMyDate.tm_min =30;
tmMyDate.tm_sec =30;

tMyDateTime = mktime(&tmMyDate);
if(tMyDateTime<0)
{
nRetVal = 1;
*npWeekDay = -1;
return nRetVal;
}
tmpMyDate = localtime(&tMyDateTime);
*npWeekDay = tmpMyDate->tm_wday;
return nRetVal;
}
//Over

////////////////////////////////////////////////////
第二題:
#include <time.h>
#include <stdio.h>

int Sum(int n, int a);

int main()
{

//出題者可以自己將此處改為要求操作人鍵入N/A的值
int n=5,a=2,s;

s = Sum(n,a);

return 0;
}

//解決問題的函數
int Sum(int n, int a)
{
int nSum =0;
int nTmp;
int i,j;

for(i=1;i<=n; i++)
{
nTmp =a;
for(j=1;j<=i;j++)
{
nTmp += a*10*(j-1);
}
nSum += nTmp;
}
return nSum;
}

㈧ 急求一個c語言課程設計!!越快越好!

大哥啊,這個東西給你做了要用好多時間噢。雖然懸賞分比較高,但是…恐怕沒人給你答案噢。自己努力…

熱點內容
我的世界伺服器等級如何升 發布:2025-01-15 12:45:55 瀏覽:687
c語言程序填空題 發布:2025-01-15 12:45:53 瀏覽:543
怎麼配置氯化鈉濃度 發布:2025-01-15 12:34:06 瀏覽:205
4000除以125簡便演算法 發布:2025-01-15 12:27:41 瀏覽:463
源碼商用 發布:2025-01-15 12:26:54 瀏覽:74
價錢演算法 發布:2025-01-15 12:26:03 瀏覽:400
蘋果手機安卓功能在哪裡 發布:2025-01-15 12:21:34 瀏覽:786
伺服器地址埠名稱怎麼找 發布:2025-01-15 12:15:32 瀏覽:705
怎麼把電腦程序改安卓 發布:2025-01-15 12:13:52 瀏覽:576
安卓如何設置格子 發布:2025-01-15 12:02:11 瀏覽:936