當前位置:首頁 » 編程語言 » c語言填空題考試系統
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言填空題考試系統

發布時間: 2022-07-22 22:41:45

『壹』 做一個c語言程序單項選擇題標准化考試系統

h"
ncompare()
{
char s[100];
char key[100]="haha";
while(1)
{
printf("請輸入密碼進行驗證:");
there: scanf("%s",s);
if(strcmp(s,key)==0)
{
printf("密碼驗證正確,進入答題系統........\n");
break;
}
else
{
printf("密碼錯誤,請重新輸入:");
goto there;
}

}

}
//菜單
menu_list()
{

int c;
printf(" *******************主菜單**********************\n");
printf(" 1 進入答題\n");
printf(" 2 錄入新的試題\n");
printf(" 3 刪除記錄試題\n");
printf(" 4 插入試題到指定位置\n");
printf(" 5 保存試題到文本\n");
printf(" 6 判斷試題,查看成績\n");
printf(" 7 輸出例題以及答案\n");
printf(" 8 載入試題庫\n");
printf(" 9 退出答題系統\n");
printf(" ***********************************************\n");
printf(" 請選擇你想要的操作(1-9):");
scanf("%d",&c);
if(c<1||c>9)
{
printf("操作數據錯誤!請重新輸入選項:\n");
return 0;
}
else
return c;

}
//答題系統
test_test(struct test *p,int n)
{
int j;
int num;
int i;
int th=0;
int tem[100];
if(n==0)
printf("目前題庫中還沒有題目,請載入題庫後在進行操作\n");
else
{
printf("首先請輸入你希望測試的題目個數,系統會隨機分配你輸入個數的題目(目前總題目個數為%d)\n請輸入要測試的題目個數:",n);
scanf("%d",&num);
for(i=0;i<num;i++)
{

here: th=rand()%n;
tem[i]=th;
for(j=0;j<i;j++)
if(tem[j]==tem[i])
{
goto here;
}
printf(" =============================================\n");
printf(" 題目:%s\n",p[th].tm);
for(j=0;j<4;j++)
{
printf(" 選項:%s\n",p[th].xx[j]);
}
printf(" 請輸入你的答案(注意是大小寫,大小寫錯誤記零分):");
scanf("%s",p[th].as);
printf(" =============================================\n");

}
}
}
//試題錄入
test_in(struct test *p,int n)
{
int i,j=0;
char sign='y';
while(sign=='Y'||sign=='y')
{
printf("===========請按提示輸入數據===========\n");
printf("請輸入題目:");
getchar();
aa: gets(p[n+j].tm);
for(i=0;i<n+j;i++)
if(p[n+j].tm[0]==p[i].tm[0])
{
printf("已有題號,請重新輸入!\n題號:");
goto aa;
}
for(i=1;i<=4;i++)
{
printf("請輸入第%d個選項:",i);
gets(p[n+j].xx[i-1]);
}
printf("請輸入正確答案:");
scanf("%s",p[n+j].da);
printf("====>提示是否繼續錄入試題(Y or y繼續,任意鍵退出):\n");
getchar();
scanf("%c",&sign);
j++;
}
printf(" ===============轉到主菜單==================\n");
return n+j;

}
//文件保存
void save(struct test *ts,int n)
{
FILE *fp;
int i=0;
char filename[50];
printf("請輸入導出文件夾,列如:G:\\f1\\score.txt\n");
scanf("%s",filename);
if((fp=fopen(filename,"w+"))==NULL)
{
printf("文件保存失敗!");
exit(1);
}
while(i<n)
{
fwrite(&ts[i],sizeof(struct test),1,fp);
i++;
}
fclose(fp);
printf("------記錄已保存到文件中-------\n");
}
//評分系統
test_compare(struct test *p,int n)
{
int i;
int temp=0;
int count=0;
if(n==0)
{
printf("目前題庫中還沒有題目,請載入題庫後在進行操作\n");
return 0;
}
else
{

for(i=0;i<n;i++)
{

if(!strcmp(p[i].da,p[i].as))
{
count++;
}

}
printf("你答對的總題數是%d\n",count);
return n;
}
}
//例題以及答案
test_out(struct test *p,int n)
{
int i=0,j=0;
if(n==0)
{
printf("很抱歉,試題庫中暫時沒有任何試題!\n");
printf(" ===============轉到主菜單==================\n");
}
else
while(i<n)
{
printf(" =============================================\n");
printf(" 題目:%s\n",p[i].tm);
for(j=0;j<4;j++)
{
printf(" 選項:%s\n",p[i].xx[j]);
}
printf(" 正確答案:%s\n",p[i].da);
printf(" =============================================\n");
i++;
}

}
//試題庫載入
test_under(struct test *p)
{
int i;
FILE *fp;
char filename[20];
printf("請輸入你要導入的文件名及路徑:");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("文件打開失敗!\n");
return 0;
}
i=0;
while(!feof(fp))
{
if(1!=fread(&p[i],sizeof(struct test),1,fp))
break;
i++;
}
fclose(fp);
printf("已經成功從文件%s導入數據!\n",filename);
return i;

}
//主函數
main()
{
int n=0;
struct test ts[100];
system("color 1f");
ncompare();
while(1)
{

switch(menu_list())
{
case 1: test_test(ts,n);break;
case 2: n=test_in(ts,n);break;
case 3: n=delete1(ts,n);break;
case 4: n=insert(ts,n);break;
case 5: save(ts,n);break;
case 6: test_compare(ts,n);break;
case 7: test_out(ts,n);break;
case 8: n=test_under(ts);break;
case 9: exit(0);
}

}
}

『貳』 C語言程序設計 單項選擇題標准化考試系統


檢舉|40 分鍾前lijing2099 | 分類:C/C++ | 瀏覽21次

『叄』 C語言設計:單項選擇題標准化考試系統

#include "insert_delete.h"
ncompare()
{
char s[100];
char key[100]="haha";
while(1)
{
printf("請輸入密碼進行驗證:");
there: scanf("%s",s);
if(strcmp(s,key)==0)
{
printf("密碼驗證正確,進入答題系統........\n");
break;
}
else
{
printf("密碼錯誤,請重新輸入:");
goto there;
}

}

}
//菜單
menu_list()
{

int c;
printf(" *******************主菜單**********************\n");
printf(" 1 進入答題\n");
printf(" 2 錄入新的試題\n");
printf(" 3 刪除記錄試題\n");
printf(" 4 插入試題到指定位置\n");
printf(" 5 保存試題到文本\n");
printf(" 6 判斷試題,查看成績\n");
printf(" 7 輸出例題以及答案\n");
printf(" 8 載入試題庫\n");
printf(" 9 退出答題系統\n");
printf(" ***********************************************\n");
printf(" 請選擇你想要的操作(1-9):");
scanf("%d",&c);
if(c<1||c>9)
{
printf("操作數據錯誤!請重新輸入選項:\n");
return 0;
}
else
return c;

}
//答題系統
test_test(struct test *p,int n)
{
int j;
int num;
int i;
int th=0;
int tem[100];
if(n==0)
printf("目前題庫中還沒有題目,請載入題庫後在進行操作\n");
else
{
printf("首先請輸入你希望測試的題目個數,系統會隨機分配你輸入個數的題目(目前總題目個數為%d)\n請輸入要測試的題目個數:",n);
scanf("%d",&num);
for(i=0;i<num;i++)
{

here: th=rand()%n;
tem[i]=th;
for(j=0;j<i;j++)
if(tem[j]==tem[i])
{
goto here;
}
printf(" =============================================\n");
printf(" 題目:%s\n",p[th].tm);
for(j=0;j<4;j++)
{
printf(" 選項:%s\n",p[th].xx[j]);
}
printf(" 請輸入你的答案(注意是大小寫,大小寫錯誤記零分):");
scanf("%s",p[th].as);
printf(" =============================================\n");

}
}
}
//試題錄入
test_in(struct test *p,int n)
{
int i,j=0;
char sign='y';
while(sign=='Y'||sign=='y')
{
printf("===========請按提示輸入數據===========\n");
printf("請輸入題目:");
getchar();
aa: gets(p[n+j].tm);
for(i=0;i<n+j;i++)
if(p[n+j].tm[0]==p[i].tm[0])
{
printf("已有題號,請重新輸入!\n題號:");
goto aa;
}
for(i=1;i<=4;i++)
{
printf("請輸入第%d個選項:",i);
gets(p[n+j].xx[i-1]);
}
printf("請輸入正確答案:");
scanf("%s",p[n+j].da);
printf("====>提示是否繼續錄入試題(Y or y繼續,任意鍵退出):\n");
getchar();
scanf("%c",&sign);
j++;
}
printf(" ===============轉到主菜單==================\n");
return n+j;

}
//文件保存
void save(struct test *ts,int n)
{
FILE *fp;
int i=0;
char filename[50];
printf("請輸入導出文件夾,列如:G:\\f1\\score.txt\n");
scanf("%s",filename);
if((fp=fopen(filename,"w+"))==NULL)
{
printf("文件保存失敗!");
exit(1);
}
while(i<n)
{
fwrite(&ts[i],sizeof(struct test),1,fp);
i++;
}
fclose(fp);
printf("------記錄已保存到文件中-------\n");
}
//評分系統
test_compare(struct test *p,int n)
{
int i;
int temp=0;
int count=0;
if(n==0)
{
printf("目前題庫中還沒有題目,請載入題庫後在進行操作\n");
return 0;
}
else
{

for(i=0;i<n;i++)
{

if(!strcmp(p[i].da,p[i].as))
{
count++;
}

}
printf("你答對的總題數是%d\n",count);
return n;
}
}
//例題以及答案
test_out(struct test *p,int n)
{
int i=0,j=0;
if(n==0)
{
printf("很抱歉,試題庫中暫時沒有任何試題!\n");
printf(" ===============轉到主菜單==================\n");
}
else
while(i<n)
{
printf(" =============================================\n");
printf(" 題目:%s\n",p[i].tm);
for(j=0;j<4;j++)
{
printf(" 選項:%s\n",p[i].xx[j]);
}
printf(" 正確答案:%s\n",p[i].da);
printf(" =============================================\n");
i++;
}

}
//試題庫載入
test_under(struct test *p)
{
int i;
FILE *fp;
char filename[20];
printf("請輸入你要導入的文件名及路徑:");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("文件打開失敗!\n");
return 0;
}
i=0;
while(!feof(fp))
{
if(1!=fread(&p[i],sizeof(struct test),1,fp))
break;
i++;
}
fclose(fp);
printf("已經成功從文件%s導入數據!\n",filename);
return i;

}
//主函數
main()
{
int n=0;
struct test ts[100];
system("color 1f");
ncompare();
while(1)
{

switch(menu_list())
{
case 1: test_test(ts,n);break;
case 2: n=test_in(ts,n);break;
case 3: n=delete1(ts,n);break;
case 4: n=insert(ts,n);break;
case 5: save(ts,n);break;
case 6: test_compare(ts,n);break;
case 7: test_out(ts,n);break;
case 8: n=test_under(ts);break;
case 9: exit(0);
}

}
}

『肆』 c語言單項選擇題標准化考試系統流程圖

記得給分哦!O(∩_∩)O謝謝

『伍』 C語言程序設計 做一個選擇題考試系統的程序

你好!

三天前的提問了。程序完成了嗎?

『陸』 C語言課設題--考試系統(有高手幫幫看看)

1)建立考題庫
分別用兩個模塊實現考題的錄入功能,如圖1,要求用密碼確定進入本模塊
選擇題庫用"file1.dat"文件中存放選擇題,包括:題號 題目 abc選項內容 正確答案;
在判選擇題卷時,把答案結果與file1.dat文件中的正確答案比較,一致給10分 否則給0分
(2)考試答題
其主要功能是考試進入考試題庫,開始考試
主要內容包括
確定考生身份,考升首先輸入學號和姓名,然後 檢查該考生的學號是否已經在文件"num_name.dat"中,如果已經在該文件中,則說明該學生已考過一次,不允許再考.如果考升沒有記錄,則該考生的學號和姓名存放在num_name.dat中,作為已考過的學生記錄
驗證考生身份後,開始考試,要求選擇題10道,通過調整用文件file1.dat題庫,抽取考題,考生答一道,確認一次是否繼續,如果繼續則再抽去一道題由考生答
最多隻能打10道題,系統就推出考試答題
做完題又顯示主菜單,但這時不允許再選擇考試答踢
選擇"顯示考試結果"彩單時,要求修改某題目的答案
選擇"顯示本人分數並推出"菜單時,要求顯示學生的分數,然後推出本系統
(3)統計分析
統計分析是為管理者設計的,系統首先確定管理者身份後才能進入本模塊,如果密碼不正確,程序不能進入本模塊,返回到主菜單.主要包括:顯示所有考生分數,考生信息查詢
顯示所有考生分數,分屏幕顯示所有已考試學生的學號 姓名 分數
考生信息查詢,可以按學號查詢某考生,並顯示該考生的學號 姓名 分數 各題目 正確答案和考生答案,如果是選擇題 還顯示abcd選項內容
(4)選擇0.退出系統
以下是3個有關的圖 請高手幫忙啊
|-----------------------------------|
| 請輸入選項編號(0--3) |
|-----------------------------------|
| 1---建立試題庫 |
| 2---考試答題 |
| 3---統計分析 |
| 0---退出 |
|-----------------------------------|

|----------------------------------|
| 請輸入選項編號(0-4) |
|----------------------------------|
| 1---開始作題 |
| 2---顯示作題結果 |
| 3---修改答案 |
| 4---顯示本人分數並退出 |
| 0---退出 |

『柒』 C語言實訓 考試系統

自己修改 只有模式

關於04級軟體技術與ATA公司合作進行課程置換的總結報告

自04級軟體技術與ATA公司合作,開展6門課程置換的工作以來,我們已經完成了2門課程的教學與考證,正在進行1門課程的教學,下學期將有2門課程的合作,再下一學期完成最後1門課程的教學與考證。現將有關工作情況作一個小結。

一、 不斷提供師資的教學水平

通過與ATA合作之後,講授合作課程的教師需要通過高職類微軟課程全國性的師資培訓。我們共派出4位教師,參加了6門課程的微軟師資培訓,並全部獲得合格的培訓證書。

通過師資培訓,更新了教師的知識結構,強化了對高職類微軟課程的理解,掌握了一定的教學方法和教學技巧,同時也擴大了對同行的交往和互相學習。

目前,ATA公司已經組建網路教學平台供全國的相關教師共享資源,並在全國范圍內,通過評選微軟的銀牌講師、金牌講師來不斷提高師資的教學水平。

二、 實施認證考試

合作的每門課程均提供相應的技能型考證,包括微軟以及Borland大公司的廠商認證,含金量較高。如果單獨交費參加這些認證考試,考試費用大大超過我們之間的合作費用。

以下是已經結束的2門課程的認證考試(微軟的全球認證考試)情況。

課程名稱
程序設計導論
關系資料庫基礎

學生數
53
53

第一次通過人數
28
42

第一次通過率
53%
79%

第二次通過人數
40
48

第二次通過率
75%
91%

以上2門課為基礎課,對於核心課程要達到上述的通過率,我們要正視困難,努力提高師資的教學水平。

三、 對核心課程實施案例教學

對於3門核心課程,ATA公司均提供難得的較為全面的實際開發項目,作為案例供我們的教學使用,這將是我們最為受用的寶貴教學資源,但是,目前我們還沒有實施這三門課程,有待下一步的教學檢驗其效果。

四、 不足之處

師資培訓的力度不夠,有些講授合作課程的教師沒有經過微軟的系統培訓。

合作課程的講授教師一般只有1名,數量不夠,不能組成團隊,形成我們的教學特色

『捌』 用c語言編寫單項選擇題標准化考試系統

一、課程設計計劃

(一) 課程設計目的

學生通過本課程的課程設計實踐,能進一步掌握高級語言程序設計基本概念,掌握基本的程序設計方法;通過設計一個完整的小型程序,初步掌握開發軟體所需的需求定義能力、功能分解能力和程序設計能力、代碼調試技能;學習編寫軟體設計文檔;為未來的軟體設計打下良好的基礎。

(二)基本要求

要求學生認真對待本次課程設計,積極利用機房、網路資源,熟練掌握程序設計的方法和計算機基本技能操作實訓,具備一定的程序設計能力。在課程設計中聽從指導教師的安排,認真完成老師布置的各項任務,並以小組為單位,上交課程設計報告。

『玖』 c語言考試系統填空題為什麼答對了會是0分

可能你的程序輸出格式錯誤
例如一些行末有無空格和回車的
這個比較很有可能是嚴格要求的
如果試題沒有嚴格說明需要嚴格格式的話,建議尋找老師復議成績
另外還有一種可能,你的程序返回值不是0.就是你的main函數退出之前沒有return 0;
因為return 0的含義代表程序正常退出,如果你忘記寫return 0或者某個地方導致程序結束,但那個地方程序前卻沒有return 0也會導致程序錯誤
因為return 別的一些返回值代表別的含義,例如有些返回值代表runtime error

『拾』 c語言考試如何通過考試系統做改錯題

以下對改錯題的改錯方式做一些總結,當然這些總結只能對大部分改錯行有效。
1、若錯誤行是函數首部,可分為以下幾種情況:
A、該行最後若有分號則刪除,中間若有分號則改成逗號
B、形參類型不一致的問題,特別是指針類型,若後面用到某形參時有指針運算則該形參必為指針類型;若形參是二維數組或指向m個元素的指針變數,則第二維的長度必須與main中對應數組的第二維長度相同
C、函數類型不一致的問題,若函數中沒有return語句則函數類型為void,若有return語句則函數的類型必須與return後變數的類型一致。
div id="googlead" style="background-position: left;display: block;float: left;width:336px;height:280px"></div>
2、若錯誤行是if或while語句,則首先看有沒有用小括弧將整個表達式括起,若沒有則加上小括弧。
3、若錯誤行中有if、while、for則要特別注意條件表達式的錯誤問題:
A、指針變數的應用,若表達式中有指針變數且沒有指針運算符,則加上指針運算符
B、若條件表達式中只有一個等於號,則改成兩個等於號,若為其它比較運算符則一般是進行逆轉或加一個等於號
C、for中要用分號分隔表達式,而不是用逗號
4、語法錯誤
A、語句缺少分號,若錯誤行中有語句沒有用分號結束,則加上分號。
B、大小寫不對,若錯誤行中有大寫字母則一般都改成小寫字母。
5、指針變數的運用,若錯誤行中有指針變數,並且該變數名前沒有指針運算符則一般都是加上指針運算符
6、若錯誤行為return語句,則首先看是否是缺少分號若是則加上分號即可;否則就是return後的變數或表達式錯誤(此時可通過看題意,來分析該返回哪一變數或表達式)
7、若錯誤行中見到整型1除以某個表達式時,一概改成1.0。但若是整型變數或表達式則只能用強制轉換
8、復合運算符寫錯
9、字元串結束符寫錯,若有字元串結束符則要特別注意有沒有寫錯,但第11題例外,因為該題是要將數字字元轉換成對應的數字。
10、若錯誤行是定義語句,則首先看類型是否符合;再看所賦初值是否正確;若以上均不是,則看是否少定義了某個變數或少了花括弧。
11、表達式錯誤(占的份量最多,並且沒有統一的改法,我們只能通過題目要求來分析並修改)
12、若錯誤行中有一條橫線,則必須將橫線刪除再填空。填空題中亦是如此。