c語言課程設計增加功能,c語言選課系統設計

本文目錄一覽:

請用C語言完成課程設計拜託了各位 謝謝

#include stdio.h #include stdlib.h #include string.h struct student { char name[60]; char ID[7]; int score; }; int dq(struct student st[]); void xianshi(); void bc(struct student st[]); void add(); void select(); void zz(); void chazhao(); void xhcz(); void xmcz(); void del(); void xmsc(); void xhsc(); void tj(); void px(); void bjg(); void xg(); void xhxg(); void xmxg(); void bca(); void fh(); struct student st[300]; //這個數組用來保存所有的學生信息 和文件裡面的一致 int Number=0; //記錄總的學生人數 也就是數組/文件裡面的學生人數 void main() { int choose=0; FILE *fp=NULL; char yesorno; if((fp=fopen(“C://student.dat”,”rb”))==NULL) { printf(“\n=========提示:文件不存在,是否要創建一個?(y/n)\n”); scanf(“%c”,yesorno); if(yesorno==’y’||yesorno==’Y’) { //這裡僅為了建立文件 fp=fopen(“C://student.dat”,”wb”); fclose(fp); } else exit(0); } else { Number=dq(st); //要是文件只能夠已經有數據 將數據初始化到數組中 } system(“cls”); while(true) { xianshi(); printf(“\t\t====請選擇:”); scanf(“%d”,choose); system(“cls”); switch(choose) { case 0: exit(0); //退出 break; case 1: add(); fh();//增加學生成績 break; case 2: select(); fh();//查看學生成績 break; case 3: chazhao(); fh();// 查找 break; case 4: del(); fh();//刪除 break; case 5: tj(); fh();//統計 break; case 6: px(); fh();//排序 break; case 7: bjg(); fh();//輸出不及格 break; case 8: xg(); fh();//修改 break; case 9:zz(); fh();//作者 break; case 10:bca(); fh();//保存 break; default: break; } fflush(stdin); getchar(); system(“cls”); } } void bca() { printf(“\t=====程序在運行時已自動保存…..\n”); } void fh() { printf(“\t===按Enter鍵返回主菜單\n”); } void xg() //修改學生信息 { int way=0; printf(“請選擇修改查找方式\n”); printf(“1 按姓名查找修改\n”); printf(“2 按學號查找修改\n”); scanf(“%d”,way); switch(way) { case 1: xmxg(); break; case 2: xhxg(); break; default: printf(“輸入有誤,結束!\n”); break; } } //按姓名修改 void xmxg() { FILE *fp=NULL; char name[60]; int i=0; int changeIndex=0; int index=0; printf(“請輸入要修改的學生姓名:”); scanf(“%s”,name); for (i=0;iNumber;i++) { if (strcmp(name,st[i].name)) { changeIndex=i; //保存要修改的人的下標 } break; } printf(“\t姓名\t學號\t成績\n”); printf(“\t%s\t%s\t%d\n\n”,st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score); printf(“請重新輸入該學生信息”); printf(“姓名:”); scanf(“%s”,st[changeIndex].name); printf(“學號:”); scanf(“%s”,st[changeIndex].ID); printf(“成績:”); scanf(“%d”,st[changeIndex].score); //信息修改後重新更新文件裡面的數據 以保持數據一致性 fp=fopen(“C://student.dat”,”wb”); for (i=0;iNumber;i++) { fwrite(st[i],sizeof(struct student),1,fp); } fclose(fp); } void xhxg()//按學號修改 { FILE *fp=NULL; char id[60]; int i=0; int changeIndex=0; int index=0; printf(“請輸入要修改的學生學號:”); scanf(“%s”,id); for (i=0;iNumber;i++) { if (strcmp(id,st[i].ID)) { changeIndex=i; //保存要修改的人的下標 } break; } printf(“\t姓名\t學號\t成績\n”); printf(“\t%s\t%s\t%d\n\n”,st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score); printf(“請重新輸入該學生信息”); printf(“姓名:”); scanf(“%s”,st[changeIndex].name); printf(“學號:”); scanf(“%s”,st[changeIndex].ID); printf(“成績:”); scanf(“%d”,st[changeIndex].score); //信息修改後重新更新文件裡面的數據 以保持數據一致性 fp=fopen(“C://student.dat”,”wb”); for (i=0;iNumber;i++) { fwrite(st[i],sizeof(struct student),1,fp); } fclose(fp); printf(“\t=======修改成功\n”); } void bjg() //輸出不及格人數 { int i=0; printf(“以下是不及格:\n”); printf(“\t姓名\t學號\t成績\n”); for (i=0;iNumber;i++) { if (st[i].score60) { printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score); } } } void px()//排序 { struct student temp; int wantNUmber=0; int i=0; int j=0; for(i=0;iNumber-1;i++) { for(j=i;jNumber-1;j++) { if(st[j].scorest[j+1].score) { temp=st[j]; st[j]=st[j+1]; st[j+1]=temp; } } } printf(“你想輸出前幾名的成績:”); scanf(“%d”,wantNUmber); if (wantNUmberNumber) { wantNUmber=Number; } printf(“\t姓名\t學號\t成績\n”); for(i=0;iwantNUmber;i++) { printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score); } } void tj()//統計 { int i=0; double sum=0.0; for(i=0;iNumber;i++) { sum+=st[i].score; } printf(“全班總分為:%f\n”,sum); printf(“平均分為:%f\n”,sum/Number); } void del()//刪除 { int n=0; printf(“1 按姓名刪除\n”); printf(“2 按學號刪除\n”); scanf(“%d”,n); switch(n) { case 1: xmsc(); break; case 2: xhsc(); break; } } void xmsc()//按姓名刪除 { FILE *fp=NULL; char name[60]; int i=0; int j=0; printf(“請輸入要刪除的學生姓名:”); scanf(“%s”,name); for(i=0;iNumber;i++) { if (strcmp(name,st[i].name)==0) //如果查找到就刪除 { for (j=i;jNumber-1;j++) { st[j]=st[j+1]; } Number–; } } //將剩餘數據寫入文件 重新一寫的方式打開文件 把以前的數據擦除了 fp=fopen(“C://student.dat”,”wb”); for (i=0;iNumber;i++) { fwrite(st[i],sizeof(struct student),1,fp); } fclose(fp); printf(“刪除成功;\n”); } void xhsc()//按學號刪除 { FILE *fp=NULL; char id[60]; int i=0; int j=0; printf(“請輸入要刪除的學生學號:”); scanf(“%s”,id); for(i=0;iNumber;i++) { if (strcmp(id,st[i].ID)==0) //如果查找到就刪除 { for (j=i;jNumber-1;j++) { st[j]=st[j+1]; } Number–; } } //將剩餘數據寫入文件 重新一寫的方式打開文件 把以前的數據擦除了 fp=fopen(“C://student.dat”,”wb”); for (i=0;iNumber;i++) { fwrite(st[i],sizeof(struct student),1,fp); } fclose(fp); printf(“刪除成功;\n”); } void chazhao()//查找學生 { int n=0; printf(“1 按姓名查找\n”); printf(“2 按學號查找\n”); scanf(“%d”,n); switch(n) { case 1: xmcz(); break; case 2: xhcz(); break; default: printf(“輸入有誤,結束!\n”); break; } } void xhcz()//按學號查找 { char id[7]; int i=0; printf(“請輸入要查找學生學號:”); scanf(“%s”,id); system(“cls”); printf(“\t姓名\t學號\t成績\n”); for (i=0;iNumber;i++) { if (strcmp(id,st[i].ID)==0) { printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score); } } } void xmcz()//按姓名查找 { char name[7]; int i=0; printf(“請輸入要查找學生姓名:”); scanf(“%s”,name); system(“cls”); printf(“\t姓名\t學號\t成績\n”); for (i=0;iNumber;i++) { if (strcmp(name,st[i].name)==0) { printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score); } } } void zz() { printf(“\t**********************************************************\n\n”); printf(“\t^^^^^^^^^^ 武漢工程大學郵電與信息工程學院 ^^^^^^^^^^\n\n”); printf(“\t^^^^^^^^^ 07網絡與安全管理2班 ^^^^^^^^^\n\n”); printf(“\t^^^^^^^^ 易樊製作 ^^^^^^^^\n\n”); printf(“\t^^^^^^^^^ 禁止CTRL+C 謝謝合作 ^^^^^^^^^\n\n”); printf(“\t^^^^^^^^^^ QQ:895115828\n\n”); printf(“\t**********************************************************\n\n”); } void select()//查看學生 { int i=0; printf(“以下是全部學生成績\n”); printf(“\t姓名\t學號\t成績\n”); for(i=0;iNumber;i++) { printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score); } } void add()//增加學生 { int numberTemp=0; int i=0; struct student temp; //臨時保存信息 printf(“請輸入要增加學生成績個數:”); scanf(“%d”,numberTemp); for(i=0;inumberTemp;i++) { printf(“輸入第%d個同學信息\n”,i+1); printf(“姓名:”); scanf(“%s”,temp.name); printf(“學號:”); scanf(“%s”,temp.ID); printf(“成績:”); scanf(“%d”,temp.score); st[Number++]=temp; //將剛添加的寫入到數組 bc(temp); //將剛添加的寫入到文件 } printf(“添加成功\n”); } void bc(struct student *st) { FILE *fp=NULL; fp=fopen(“C://student.dat”,”ab+”); fwrite(st,sizeof(struct student),1,fp); fclose(fp); } int dq(struct student st[]) { FILE *fp=NULL; int i=0; fp=fopen(“C://student.dat”,”rb”); while(fread(st[i],sizeof(struct student),1,fp)) i++; fclose(fp); return i; } void xianshi() { printf(“\t*****************************************************************\n”); printf(“\t* *\n”); printf(“\t* 學生成績管理系統 *\n”); printf(“\t* *\n”); printf(“\t* [1] 增加學生成績 [2] 查看學生成績 *\n”); printf(“\t* [3] 查找學生成績 [4] 刪除學生成績 *\n”); printf(“\t* [5] 統計(總成績和平均分) [6] 輸出前N名學生成績 *\n”); printf(“\t* [7] 輸出不及格人數 [8] 修改學生信息 *\n”); printf(“\t* [9] 關於作者 [10] 保存數據 *\n”); printf(“\t* [0] 退出系統 *\n”); printf(“\t*****************************************************************\n”); } 稍微改下就可以了,祝你成功!~

C語言課程設計學生成績管理系統 功能:學生成績管理系統,每個學

參考以下,部分代碼改了即可:首先將記錄儲存再TXT文件下,格式如下所示:學號姓名性別等級筆試機試類別1張三男二級66772李四男三級88993張二男二級40604李二女二級50595王五女三級99996王三男二級77617劉四男四級60598劉五女二級88779張五女二級648110李六女二級5930————————————————————-代碼如下,本人親自編寫,無錯誤通過——————————————————————–#include#include#include#includeusingnamespacestd;voidadd_information(stringstr);voiddelete_information(stringstr);voidedit_information(stringstr);voidscanf_information(stringstr);voidscore_scanf(stringstr);voidpingfen(stringstr);voidpass_total(stringstr);main(){coutnumber;stringname;//統計用的科目名switch(number){case1:coutnumber;switch(number){case1:add_information(str);break;case2:delete_information(str);break;case3:edit_information(str);break;case4:scanf_information(str);break;default:coutabcdef;outstream.precision(6);//顯示精度outstreamname_1;stringa,b,c,d,e,f;ofstreamoutstream;//暫存的中間文件outstream.open(“temp.txt”);boolflag=0;//是否查找到while(1){//刪除操作,自己感覺都有點麻煩instreamabcdef;if(name_1!=a){outstreamname_1;stringa,b,c,d,e,f;ofstreamoutstream;//暫存的中間文件outstream.open(“temp.txt”);boolflag=0;//是否查找到while(1){//刪除操作,自己感覺都有點麻煩instreamabcdef;if(name_1==a){//找到修改的記錄flag=1;coutabcdef;}outstreamabcdef;coutname_1;stringa,b,c,d,e,f,g;boolflag=0;//是否查找到while(1){//刪除操作,自己感覺都有點麻煩instreamabcdefg;if(name_1==g){//找到修改的記錄flag=1;coutabcdef;outstream=85)outstream=70f=60f=70e=70)outstream=60f=60e=60)outstreamabcdefg;if(g==”優秀”||g==”良好”||g==”及格”)count++;if(instream.eof())break;}cout”合格的人數為:”

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”

#includedos.h

#includestdio.h

#includestdlib.h

#includestring.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(C1||C3)

{

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==0q.data==0r.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!=0q.data!=0r.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;iN;i++)

{

m=rand()%10; //產生一個數字

if(i==0)

*c1=m;

else

{

for(j=0;ji;j++)

{

if(m==*(c1+j)//若原有數據之中已經有了與m相同的數字,則重新產生數字

{

i–;

break;

}

*(c1+i)=m;

}

}

}

printf(“\t系統產生的數據為:”);

for(i=0;iN;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;iN;i++)

{

c[i]=*(p+i);

}

for(m=0;mTIME;m++)

{

if(m==(TIME-1))

{

printf(“\t**請注意:**\n”);

printf(“\t**僅剩下一次機會了!**\n”);

printf(“\t**努力!加油!**\n”);

}

printf(“\t請輸入第%d次猜測的數字:\t”,m+1);

for(j=0;jN;j++)

{

scanf(“%d”,n);

a[j]=n;

}

A=0;

B=0;

for(i=0;iN;i++)

{

if(a[i]==c[i])

A++;

}

for(i=0;iN;i++)

{

for(j=0;jN;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(S10)

{

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(n1||n5)

n=0;

return n;

}

c語言課程設計

這個,,,,太複雜了呀,而且你才只給5分,就算會的話,估計也沒有人給你做的,,若換成是你的話,你給 做嗎!我問這樣的問題都給100分的!你一點誠心都沒有啊!

C語言課程設計,多媒體教室管理系統

只作為參考,網上太難找,只能自己去改咯!

#include “stdio.h”

#include “stdlib.h”

#include “string.h”

int shoudsave=0; /* */

struct student

{

char num[10];/* 學號 */

char name[20];

char sex[4];

int cgrade;

int mgrade;

int egrade;

int totle;

int ave;

char neartime[10];/* 最近更新時間 */

};

typedef struct node

{

struct student data;

struct node *next;

}Node,*Link;

void menu()

{

printf(“********************************************************************************”);

printf(“\t1登記學生資料\t\t\t\t\t2刪除學生資料\n”);

printf(“\t3查詢學生資料\t\t\t\t\t4修改學生資料\n”);

printf(“\t5保存學生資料\t\t\t\t\t0退出系統\n”);

printf(“********************************************************************************\n”);

}

void printstart()

{

printf(“———————————————————————–\n”);

}

void Wrong()

{

printf(“\n=====提示:輸入錯誤!\n”);

}

void Nofind()

{

printf(“\n=====提示:沒有找到該學生!\n”);

}

void printc() /* 本函數用於輸出中文 */

{

printf(” 學號\t 姓名 性別 英語成績 數學成績 C語言成績 總分 平均分\n”);

}

void printe(Node *p)/* 本函數用於輸出英文 */

{

printf(“%-12s%s\t%s\t%d\t%d\t%d\t %d\t %d\n”,p-data.num,p-data.name,p-data.sex,p-data.egrade,p-data.mgrade,p-data.cgrade,p-data.totle,p-data.ave);

}

Node* Locate(Link l,char findmess[],char nameornum[]) /* 該函數用於定位連表中符合要求的接點,並返回該指針 */

{

Node *r;

if(strcmp(nameornum,”num”)==0) /* 按學號查詢 */

{

r=l-next;

while(r!=NULL)

{

if(strcmp(r-data.num,findmess)==0)

return r;

r=r-next;

}

}

else if(strcmp(nameornum,”name”)==0) /* 按姓名查詢 */

{

r=l-next;

while(r!=NULL)

{

if(strcmp(r-data.name,findmess)==0)

return r;

r=r-next;

}

}

return 0;

}

void Add(Link l) /* 增加學生 */

{

Node *p,*r,*s;

char num[10];

r=l;

s=l-next;

while(r-next!=NULL)

r=r-next; /* 將指針置於最末尾 */

while(1)

{

printf(“請你輸入學號(以’0’返回上一級菜單:)”);

scanf(“%s”,num);

if(strcmp(num,”0″)==0)

break;

while(s)

{

if(strcmp(s-data.num,num)==0)

{

printf(“=====提示:學號為’%s’的學生已經存在,若要修改請你選擇’4 修改’!\n”,num);

printstart();

printc();

printe(s);

printstart();

printf(“\n”);

return;

}

s=s-next;

}

p=(Node *)malloc(sizeof(Node));

strcpy(p-data.num,num);

printf(“請你輸入姓名:”);

scanf(“%s”,p-data.name);

getchar();

printf(“請你輸入性別:”);

scanf(“%s”,p-data.sex);

getchar();

printf(“請你輸入c語言成績:”);

scanf(“%d”,p-data.cgrade);

getchar();

printf(“請你輸入數學成績:”);

scanf(“%d”,p-data.mgrade);

getchar();

printf(“請你輸入英語成績:”);

scanf(“%d”,p-data.egrade);

getchar();

p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;

p-data.ave=p-data.totle / 3;

/* 信息輸入已經完成 */

p-next=NULL;

r-next=p;

r=p;

shoudsave=1;

}

}

void Qur(Link l) /* 查詢學生 */

{

int sel;

char findmess[20];

Node *p;

if(!l-next)

{

printf(“\n=====提示:沒有資料可以查詢!\n”);

return;

}

printf(“\n=====1按學號查找\n=====2按姓名查找\n”);

scanf(“%d”,sel);

if(sel==1)/* 學號 */

{

printf(“請你輸入要查找的學號:”);

scanf(“%s”,findmess);

p=Locate(l,findmess,”num”);

if(p)

{

printf(“\t\t\t\t查找結果\n”);

printstart();

printc();

printe(p);

printstart();

}

else

Nofind();

}

else if(sel==2) /* 姓名 */

{

printf(“請你輸入要查找的姓名:”);

scanf(“%s”,findmess);

p=Locate(l,findmess,”name”);

if(p)

{

printf(“\t\t\t\t查找結果\n”);

printstart();

printc();

printe(p);

printstart();

}

else

Nofind();

}

else

Wrong();

}

void Del(Link l) /* 刪除 */

{

int sel;

Node *p,*r;

char findmess[20];

if(!l-next)

{

printf(“\n=====提示:沒有資料可以刪除!\n”);

return;

}

printf(“\n=====1按學號刪除\n=====2按姓名刪除\n”);

scanf(“%d”,sel);

if(sel==1)

{

printf(“請你輸入要刪除的學號:”);

scanf(“%s”,findmess);

p=Locate(l,findmess,”num”);

if(p)

{

r=l;

while(r-next!=p)

r=r-next;

r-next=p-next;

free(p);

printf(“\n=====提示:該學生已經成功刪除!\n”);

shoudsave=1;

}

else

Nofind();

}

else if(sel==2)

{

printf(“請你輸入要刪除的姓名:”);

scanf(“%s”,findmess);

p=Locate(l,findmess,”name”);

if(p)

{

r=l;

while(r-next!=p)

r=r-next;

r-next=p-next;

free(p);

printf(“\n=====提示:該學生已經成功刪除!\n”);

shoudsave=1;

}

else

Nofind();

}

else

Wrong();

}

void Modify(Link l)

{

Node *p;

char findmess[20];

if(!l-next)

{

printf(“\n=====提示:沒有資料可以修改!\n”);

return;

}

printf(“請你輸入要修改的學生學號:”);

scanf(“%s”,findmess);

p=Locate(l,findmess,”num”);

if(p)

{

printf(“請你輸入新學號(原來是%s):”,p-data.num);

scanf(“%s”,p-data.num);

printf(“請你輸入新姓名(原來是%s):”,p-data.name);

scanf(“%s”,p-data.name);

getchar();

printf(“請你輸入新性別(原來是%s):”,p-data.sex);

scanf(“%s”,p-data.sex);

printf(“請你輸入新的c語言成績(原來是%d分):”,p-data.cgrade);

scanf(“%d”,p-data.cgrade);

getchar();

printf(“請你輸入新的數學成績(原來是%d分):”,p-data.mgrade);

scanf(“%d”,p-data.mgrade);

getchar();

printf(“請你輸入新的英語成績(原來是%d分):”,p-data.egrade);

scanf(“%d”,p-data.egrade);

p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;

p-data.ave=p-data.totle/3;

printf(“\n=====提示:資料修改成功!\n”);

shoudsave=1;

}

else

Nofind();

}

void Disp(Link l)

{

int count=0;

Node *p;

p=l-next;

if(!p)

{

printf(“\n=====提示:沒有資料可以顯示!\n”);

return;

}

printf(“\t\t\t\t顯示結果\n”);

printstart();

printc();

printf(“\n”);

while(p)

{

printe(p);

p=p-next;

}

printstart();

printf(“\n”);

}

void Tongji(Link l)

{

Node *pm,*pe,*pc,*pt,*pa; /* 用於指向分數最高的接點 */

Node *r=l-next;

if(!r)

{

printf(“\n=====提示:沒有資料可以統計!\n”);

return ;

}

pm=pe=pc=pt=pa=r;

while(r!=NULL)

{

if(r-data.cgrade=pc-data.cgrade)

pc=r;

if(r-data.mgrade=pm-data.mgrade)

pm=r;

if(r-data.egrade=pe-data.egrade)

pe=r;

if(r-data.totle=pt-data.totle)

pt=r;

if(r-data.ave=pa-data.ave)

pa=r;

r=r-next;

}

printf(“——————————統計結果——————————–\n”);

printf(“總分最高者:\t%s %d分\n”,pt-data.name,pt-data.totle);

printf(“平均分最高者:\t%s %d分\n”,pa-data.name,pa-data.ave);

printf(“英語最高者:\t%s %d分\n”,pe-data.name,pe-data.egrade);

printf(“數學最高者:\t%s %d分\n”,pm-data.name,pm-data.mgrade);

printf(“c語言最高者:\t%s %d分\n”,pc-data.name,pc-data.cgrade);

printstart();

}

void Sort(Link l)

{

Link ll;

Node *p,*rr,*s;

ll=(Link)malloc(sizeof(Node)); /* 用於做新的連表 */

ll-next=NULL;

if(l-next==NULL)

{

printf(“\n=====提示:沒有資料可以排序!\n”);

return ;

}

p=l-next;

while(p)

{

s=(Node*)malloc(sizeof(Node)); /* 新建接點用於保存信息 */

s-data=p-data;

s-next=NULL;

rr=ll;

while(rr-next!=NULL rr-next-data.totle=p-data.totle)

rr=rr-next;

if(rr-next==NULL)

rr-next=s;

else

{

s-next=rr-next;

rr-next=s;

}

p=p-next;

}

free(l);

l-next=ll-next;

printf(“\n=====提示:排序已經完成!\n”);

}

void Save(Link l)

{

FILE* fp;

Node *p;

int flag=1,count=0;

fp=fopen(“c:\\student”,”wb”);

if(fp==NULL)

{

printf(“\n=====提示:重新打開文件時發生錯誤!\n”);

exit(1);

}

p=l-next;

while(p)

{

if(fwrite(p,sizeof(Node),1,fp)==1)

{

p=p-next;

count++;

}

else

{

flag=0;

break;

}

}

if(flag)

{

printf(“\n=====提示:文件保存成功.(有%d條記錄已經保存.)\n”,count);

shoudsave=0;

}

fclose(fp);

}

void main()

{

Link l;/* 連表 */

FILE *fp; /* 文件指針 */

int sel;

char ch;

char jian;

int count=0;

Node *p,*r;

l=(Node*)malloc(sizeof(Node));

l-next=NULL;

r=l;

fp=fopen(“C:\\student”,”rb”);

if(fp==NULL)

{

printf(“\n=====提示:文件還不存在,是否創建?(y/n)\n”);

scanf(“%c”,jian);

if(jian==’y’||jian==’Y’)

fp=fopen(“C:\\student”,”wb”);

else

exit(0);

}

printf(“\n=====提示:文件已經打開,正在導入記錄……\n”);

while(!feof(fp))

{

p=(Node*)malloc(sizeof(Node));

if(fread(p,sizeof(Node),1,fp)) /* 將文件的內容放入接點中 */

{

p-next=NULL;

r-next=p;

r=p; /* 將該接點掛入連中 */

count++;

}

}

fclose(fp); /* 關閉文件 */

printf(“\n=====提示:記錄導入完畢,共導入%d條記錄.\n”,count);

while(1)

{

menu();

printf(“請你選擇操作:”);

scanf(“%d”,sel);

if(sel==0)

{

if(shoudsave==1)

{ getchar();

printf(“\n=====提示:資料已經改動,是否將改動保存到文件中(y/n)?\n”);

scanf(“%c”,ch);

if(ch==’y’||ch==’Y’)

Save(l);

}

printf(“\n=====提示:你已經退出系統,再見!\n”);

break;

}

switch(sel)

{

case 1:Add(l);break; /* 增加學生 */

case 2:Del(l);break;/* 刪除學生 */

case 3:Qur(l);break;/* 查詢學生 */

case 4:Modify(l);break;/* 修改學生 */

case 5:Save(l);break;/* 保存學生 */

case 9:printf(“\t\t\t==========幫助信息==========\n”);break;

default: Wrong();getchar();break;

}

}

}

/* */

C語言課程設計 題目為設計一個多功能計算軟件實現功能 求完美的代碼

參考下這個:

#include stdio.h

#include windows.h

//輸入操作數和操作符

void inputNum(double num_one,double num_two,short operatorNum)

{

printf(“第一個數:”);

double num;

scanf(“%lf”,num);

if(num==0)

{

num_one=num_one;

}

else

{

num_one=num;

}

printf(“選擇運算:”);

scanf(“%d”,operatorNum);

printf(“第二個數:”);

scanf(“%lf”,num_two);

}

//返回操作符號

char intputOperator(short typeOperator)

{

char signal;

switch (typeOperator)

{

case 1:

signal=’+’;break;

case 2:

signal=’-‘;break;

case 3:

signal=’*’;break;

case 4:

signal=’/’;break;

default:

printf(“無此運算符”);

}

return signal;

}

//顯示菜單

void showMenu()

{

printf(“操作符選擇:\n1:\t加法(+)\n2:\t減法(-)\n3:\t乘法(×)\n4:\t除法(÷)\n註:若想把上次的結果作為下次的第一運算數那麼請輸入0\n\n”);

}

//清屏操作

void clearScreen()

{

printf(“輸入C 清除屏幕,輸入R回到主菜單,輸入S繼續計算\n輸入:”);

char ch;

getchar();

scanf(“%c”,ch);

if(ch==’C’)

{

system(“cls”);

}

else if(ch==’R’)

{

system(“cls”);

showMenu();

}

else if (ch==’S’)

{

}

else

{

printf(“輸入錯誤,請重新輸入!\n”);

clearScreen();

}

}

//計算結果

void GetResult(double num_one,double num_two,short typeOperator)

{

char signal;

signal=intputOperator(typeOperator);

double res=0.0;

switch (signal)

{

case ‘+’:

res=num_one+num_two;break;

case ‘-‘:

res=num_one-num_two;break;

case ‘*’:

res=num_one*num_two;break;

case ‘/’:

if(num_two == 0)

{

printf(“除數不能為0\n”);break;

}

res=num_one/num_two;break;

default:

printf(“無此運算方法”);

}

printf(“=%lf\n\n”,res);

num_one=res;

}

void main()

{

double num_one,num_two; //聲明操作數

short operator_num; //聲明操作符

showMenu(); //顯示菜單

while (1)

{

inputNum(num_one,num_two,operator_num); //輸入操作數和操作符

GetResult(num_one,num_two,operator_num); //計算結果以及顯示結果

clearScreen(); //清屏工作

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/277720.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-19 13:20
下一篇 2024-12-19 13:20

相關推薦

  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • Python數據處理課程設計

    本文將從多個方面對Python數據處理課程設計進行詳細闡述,包括數據讀取、數據清洗、數據分析和數據可視化四個方面。通過本文的學習,讀者將能夠了解使用Python進行數據處理的基本知…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • 如何在樹莓派上安裝Windows 7系統?

    隨着樹莓派的普及,許多用戶想在樹莓派上安裝Windows 7操作系統。 一、準備工作 在開始之前,需要準備以下材料: 1.樹莓派4B一台; 2.一張8GB以上的SD卡; 3.下載並…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • 分銷系統開發搭建

    本文主要介紹如何搭建一套完整的分銷系統,從需求分析、技術選型、開發、部署等方面進行說明。 一、需求分析 在進行分銷系統的開發之前,我們首先需要對系統進行需求分析。一般來說,分銷系統…

    編程 2025-04-29

發表回復

登錄後才能評論