本文目錄一覽:
- 1、請用C語言完成課程設計拜託了各位 謝謝
- 2、C語言課程設計學生成績管理系統 功能:學生成績管理系統,每個學
- 3、C語言課程設計
- 4、c語言課程設計
- 5、C語言課程設計,多媒體教室管理系統
- 6、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-tw/n/277720.html