c語言編一個考試系統的簡單介紹

本文目錄一覽:

做一個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(c1||c9)

{

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;inum;i++)

{

here: th=rand()%n;

tem[i]=th;

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

if(tem[j]==tem[i])

{

goto here;

}

printf(” =============================================\n”);

printf(” 題目:%s\n”,p[th].tm);

for(j=0;j4;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;in+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(in)

{

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;in;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(in)

{

printf(” =============================================\n”);

printf(” 題目:%s\n”,p[i].tm);

for(j=0;j4;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語言編寫單項選擇題標準化考試系統

一、課程設計計劃

(一) 課程設計目的

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

(二)基本要求

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

c語言 程序考試報名管理系統

#include stdio.h 

#include stdlib.h 

#define STU_NUM 10 /*宏定義學生的數量*/ 

struct student /*定義一個結構體用來存放學生學號、三門課成績、總分及平均成績*/ 

char stu_id[20]; /*學生學號;*/ 

float score[3]; /*三門課成績;*/ 

float total; /*總成績;*/ 

float aver; /*平均成績;*/ 

}; 

/*排序用一個函數來實現*/ 

void SortScore(student *stu,int n) 

student stud; 

for(int i = 0; i  n-1; i++) 

for(int j = i+1 ; j  n; j++) 

if(stu[i].total  stu[j].total) 

stud = stu[i]; 

stu[i] = stu[j]; 

stu[j] = stud; 

int main( ) 

student stu[STU_NUM]; /*創建結構體數組中有10個元素,分別用來保存這10個人的相關信息。*/ 

/*輸入這十個學生的相關信息*/ 

for(int i = 0; iSTU_NUM; i++) 

printf(“請輸入第%d個學生的學號:”,i+1); 

scanf(“%s”,stu[i].stu_id); 

printf(“輸入第%d個學生的數學成績:”,i+1); 

scanf(“%f”,stu[i].score[0]); 

printf(“輸入第%d個學生的英語成績:”,i+1); 

scanf(“%f”,stu[i].score[1]); 

printf(“輸入第%d個學生的計算機成績:”,i+1); 

scanf(“%f”,stu[i].score[2]); 

stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2]; 

stu[i].aver = stu[i].total/3; 

printf(“\n”); 

SortScore(stu,STU_NUM);/*調用排序函數*/ 

/*輸出排序後的各學生的成績*/ 

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

printf(“序號: %d\t”,i); 

printf(“學號:%s\t”,stu[i].stu_id); 

printf(“數學:%f\t”,stu[i].score[0]); 

printf(“英語:%f\t”,stu[i].score[1]); 

printf(“計算機:%f\t”,stu[i].score[2]); 

printf(“平均成績:%f\t”,stu[i].aver); 

printf(“總分:%f\t”,stu[i].total); 

printf(“\n\n”); 

return 0; 

註:(源程序中主要標識符含義說明) 

#define STU_NUM 10 /*宏定義學生的數量*/ 

struct student /*定義一個結構體用來存放學生學號、三門課成績、總分及平均成績*/ 

char stu_id[20]; /*學生學號;*/ 

float score[3]; /*三門課成績;*/ 

float total; /*總成績;*/ 

float aver; /*平均成績;*/ 

}

用C語言設計一個學生成績管理系統

#include stdio.h

#include string.h

#include stdlib.h

#define MAX 1000

/*定義學生成績信息結構*/

struct stu

{

char id[8];

char name[8];

擴展資料:

short:修飾int,短整型數據,可省略被修飾的int。(KR時期引入)

long:修飾int,長整型數據,可省略被修飾的int。(KR時期引入)

long long:修飾int,超長整型數據,可省略被修飾的int。(C99標準新增)

signed:修飾整型數據,有符號數據類型。(C89標準新增)

unsigned:修飾整型數據,無符號數據類型。(KR時期引入)

restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的唯一且初始的方式。(C99標準新增)

複雜類型關鍵字

struct:結構體聲明。(KR時期引入)

union:聯合體聲明。(KR時期引入)

enum:枚舉聲明。(C89標準新增)

typedef:聲明類型別名。(KR時期引入)

sizeof:得到特定類型或特定類型變數的大小。(KR時期引入)

inline:內聯函數用於取代宏定義,會在任何調用它的地方展開。(C99標準新增)

參考資料來源:百度百科-c語言

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 05:49
下一篇 2024-11-25 05:49

相關推薦

  • Deepin系統分區設置教程

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

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 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
  • 如何在樹莓派上安裝Windows 7系統?

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

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

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

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

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

    編程 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

發表回復

登錄後才能評論