c語言課程表,c語言課程表的管理與實現

本文目錄一覽:

如何用C語言實現大學排課

#include stdio.h

#include stdlib.h

#define M 100

struct Student

{

int StudentID;

char name[50];

float PeacetimeScore;

float TestScore;

float TotalScore;

};

int main()

{

int InputInformation (struct Student student[]);

void TotalScoreStatistics (struct Student student[], int n);

void TotalScoreSort (struct Student student[], int n);

void ScoreRevise (struct Student student[], int n);

void display (struct Student student[], int n);

int menu ();

int n = 1, count;

struct Student student[M];

while (n)

{

n = menu ();

switch (n)

{

case 1:

count = InputInformation (student);

break;

case 2:

TotalScoreStatistics (student, count);

break;

case 3:

TotalScoreSort (student, count);

break;

case 4:

ScoreRevise (student, count);

break;

case 5:

display (student, count);

break;

case 0:

printf (“您選擇了退出!\n”);

break;

default :

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

break;

}

}

return 0;

}

int menu ()

{

int n, i;

char * menu[]={“* * * * * * * * * * * * * * *MENU* * * * * * * * * * * * * * *”,

” 1.學生信息錄入”,

” 2.總成績統計”,

” 3.總成績排序”,

” 4.成績更改”,

” 5.顯示所有學生信息”,

” 0.退出”,

“* * * * * * * * * * * * * * *MENU* * * * * * * * * * * * * * *”};

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

printf (“%s\n”, menu[i]);

printf (“請選擇(輸入序號):”);

scanf (“%d”, n);

return n;

}

int InputInformation (struct Student student[])

{

int i;

FILE *fp;

for (i=0; ; i++)

{

printf (“輸入第 %d 個學生的如下信息:\n”, i+1);

printf (“學號:”);

scanf (“%d”, student[i].StudentID);

if (student[i].StudentID == 0) //如果學號輸入是0則結束輸入

break;

getchar ();

printf (“姓名:”);

gets (student[i].name);

printf (“平時成績:”);

scanf (“%f”, student[i].PeacetimeScore);

printf (“考試成績:”);

scanf (“%f”, student[i].TestScore);

fp = fopen (“myfile.txt”, “a”);

if (fp == NULL)

{

printf (“文件打開失敗!\n”);

exit (-1);

}

fprintf (fp, “%d %s %.2f %.2f\n”, student[i].StudentID, student[i].name,

student[i].PeacetimeScore, student[i].TestScore);

}

fclose (fp); //關閉文件

return i;

}

void TotalScoreStatistics (struct Student student[], int n)

{

int i;

printf (“\n 學號 姓名 總成績\n\n”);

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

{

student[i].TotalScore = student[i].PeacetimeScore * 0.2 + student[i].TestScore * 0.8;

printf (” %d %s %.2f\n”, student[i].StudentID, student[i].name, student[i].TotalScore);

}

}

void TotalScoreSort (struct Student student[], int n)

{

int i, j;

float temp;

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

for (j=i+1; jn; j++)

if (student[i].TotalScore student[j].TotalScore)

{

temp = student[i].TotalScore;

student[i].TotalScore = student[j].TotalScore;

student[j].TotalScore =temp;

}

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

printf (“%.2f “, student[i].TotalScore);

printf (“\n”);

}

void ScoreRevise (struct Student student[], int n)

{

int m, k, i = 0;

FILE *fp;

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

scanf (“%d”, k);

printf (“您是要修改平時成績還是考試成績呢?\n”);

printf (“1.修改平時成績\n”);

printf (“2.修改考試成績\n”);

printf (“輸入您的選擇:”);

scanf (“%d”, m);

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

if (student[i].StudentID == k)

if (m == 1)

用c語言如何編輯課程表,來個大神教教吧!最後做出來的課程表格式是exe格式,自己怎麼也做不好。

寫了一個,比較笨,不知行不行

生成exe程序在 Release 目錄下

急急!!用C語言編課程表,要求:每星期5天,每天不超過6節課,有語文、數學、英語、政治、歷史、音樂

#include stdio.h

#include time.h

#include stdlib.h

#define DAYS_OF_A_WEEK 5

#define MAX_CLASSES_A_DAY 6

#define MAX_CLASS_NAME_LEN 10

#define TOTAL_CLASSESS_TYPE_NUM 5

typedef struct

{

char class_name[MAX_CLASS_NAME_LEN];

int class_num_per_week;

}Class;

Class class_data[]=

{

{“語文”,3},{“數學”,3},{“英語”,3},{“政治”,2},{“歷史”,2},{“音樂”,2}

};

char week_days_name[][10] ={“星期天”,”星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”};

char class_arrange_table[MAX_CLASSES_A_DAY][DAYS_OF_A_WEEK][MAX_CLASS_NAME_LEN]={0};

int main(int argc, char *argv[])

{

int i,j,k;

int row,col;

srand(time(NULL));

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

{

for(j=0;jclass_data[i].class_num_per_week;j++)

{

row = rand()% DAYS_OF_A_WEEK ;

col = rand()% MAX_CLASSES_A_DAY;

while(strlen(class_arrange_table[row][col]) != 0)

{

row = rand()% DAYS_OF_A_WEEK ;

col = rand()% MAX_CLASSES_A_DAY;

}

strcpy(class_arrange_table[row][col],class_data[i].class_name);

}

}

printf(“%4s”,””);

for(i=1;i=DAYS_OF_A_WEEK;i++)

{

printf(“|%10s”,week_days_name[i]);

}

printf(“\n”);

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

{

for(j=0;j4+DAYS_OF_A_WEEK*10+DAYS_OF_A_WEEK;j++){ printf(“-“); }

printf(“\n”);

printf(“%4d”,i+1);

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

{

printf(“|%10s”,class_arrange_table[i][j]);

}

printf(“\n”);

}

for(j=0;j4+DAYS_OF_A_WEEK*10+DAYS_OF_A_WEEK;j++){ printf(“-“); }

printf(“\n”);

return 0;

}

c語言怎樣編寫課程表,請問程序怎樣寫?

//2020年3月12日編寫

#includestdio.h

char c=’ ‘;

void chang()//長函數

{

printf(“___________”);

}

void kuang()//寬函數

{

printf(“|”);

}

void zon(char cc)//總匯函數

{

int a;

printf(“\n”);

printf(“|”);

for(a=0;a4;a++)

{

chang();

if(a3)

printf(“%c”,cc);

}

printf(“|”);

}

void zon2(char a1[],char a2[],char a3[],char a4[])//總匯函數2

{

printf(“\n”);

printf(“|%-11s|”,a1);printf(“%-11s|”,a2);printf(“%-11s|”,a3);printf(“%-11s|”,a4);

}//函數;

main()

{

int a,b;

for(a=0;a4;a++)//第一行

{

printf(” “);

chang();

}

printf(“\n|%21c課程表%20c|”,c,c);

zon(‘ ‘);

zon2(”  “,”1.2節”,”3.4節”,”5.6節”);

zon(‘|’);

zon2(“星期一”,”語文”,”計算機”,”體育”);//第二行

zon(‘|’);

zon2(“星期二”,”數學”,”政治”,”數學”);//第三行

zon(‘|’);

zon2(“星期三”,”英語”,”體育”,”自習”);//第四行

zon(‘|’);

zon2(“星期四”,”計算機”,”語文”,”體育”);//第五行

zon(‘|’);

zon2(“星期五”,”計算機”,”英語”,”自習”);//第六行

zon(‘|’);

}

/*

printf(” ___________\n”);//  -=11;

printf(“|  語   文  |\n”);// |%2d字%3d字%2d|

printf(“|___________|\n”);// |%11d|

*/

用C語言怎麼編出來課程表

一、功能模塊概要說明:

1.輸入函數:

char* uscanf(int,int,int) //圖形模式下輸入函數,大小寫26個字母0-9數字外加空格鍵為有效輸入,可以使用BACKSPACE。

2.開始界面,退出界面和主界面:

void starting() //開始界面

void end() //結束界面

char* index() //主選擇界面函數,返回選擇信息(字符串);

3.數據輸入、創建鏈表模塊

char* tinkey(char*,int,int) //輸入切換處理

char* recourse(char*,int,int) //課程輸入

int wdetect(struct person*,char*) //課程輸入檢測,檢測課表一星期同一天同一時間段內課程安排是否重複,如果重複給出修改提示信息

char* infuse(char*,char*,int) //課表輸入

struct course *ccreat(char*) //創建課程單向鏈表

struct person* pcreat(char *) //創建個人課表節點

char *infcreat(char**,struct person**,struct person**,char*)

//創建課表雙向鏈表

4.課表輸出

char *print(char*) //課表輸出背景界面

char *pkey() //課表輸出按紐界面及處理

int table(int,int,struct person*) //在指定區域一表格形式輸出一個人的課表

int forebox(struct person*) //初略顯示下三個人的課表提示

5.文件存儲和裝載

char* save(char *,struct person *) //保存為磁盤文件,在圖形模式下進行文件讀寫操作之後,程序出現莫名其妙的異常顯示情形

6.課表查詢:

struct person *pdemand(struct person *,char *) //按人名字查詢其課表安排。

struct person* wddemand(struct person*,int) //按星期幾查詢課程安排情況。

struct person *cdemand(struct person *,char *) //按課程查詢老師或學生課程安排情況。

char *demand(struct person *) // 查詢切換,並顯示查詢結果,按名字查詢一次只能一個。按星期幾和課程查詢可以查詢到多個,如查詢到多個接果,按任意鍵可依次輸出。

7.排序。

struct course *csort(struct course *) //按課程編號排序課表節點中課程鏈表

struct person *psort(struct person *) //按人學號或老師編號排序課錶鏈表

char sort(struct person*) //排序切換,並提示排序結果

8.插入。

char *insert(char *,struct person **,struct person **)

//擦入課表節點

9.刪除。

char *delete(struct person **,char *)

//按人名刪除其課表節點

二、操作說明:

1. Infuse:選定這個鍵後按Enter進入學生輸入菜單,你可以輸入學生的學號,姓名,學生在一學期內的所學課程的課程名,課程號,學時,以及在一周內上課的地址。如果當輸入某課程上課地址有重複時,系統自動發出報警信息,並提示出錯的地方,以便修改,

當選定couse時,表明此學生所學的該課程的信息輸入完成再輸入另外所學課程的信息,如上所寫照樣輸入,

當選定finish時,並按回車鍵後,表明此學生在這一學期內所學的課程信息輸入完成。如要繼續輸入學生的信息如前所述。

當選定back時,並按下回車鍵後,返回TIME TABLE主菜單,選擇主菜單里的功能對所輸入的信息進行處理。

當選定exit時,並按下回車鍵後,返回程序。結束程序。

2.SAVE/LOAD 選定此並按回車。此鍵作用對所輸入的信息進行格式輸出/載入。輸入你要保存信息的文件名,文件格式系統自動生成。利用鍵盤上的方向鍵和TAB鍵進行控制。

3.DEMAND:按ENTER鍵開始輸入,按反向鍵進行查詢切換。當按星期幾和課程查詢時候,如遇到查詢到多個結果,按任意鍵可依次輸出直到完。

4.INSERT:按ENTER鍵開始輸入,按反向鍵進行查詢切換。輸入同INFURE項。

5. DELETE: 按ENTER鍵顯示輸入框開始輸入。其他同上。

6.SORT:當提示框中SORT變為紅色時候,表示被選中,按ENTER鍵開始插入,如成功給出提示信息。

7.PRINT:依次輸出鏈表,如果輸出鏈表為空則不進仍輸出頁面。NEXT為下一個,PRO為上一個。下面FORENOTICE 框顯示後三個節點。

8.EXIT:退出系統。效果同按ESC。

三、例程:

#include stdio.h

#include stdlib.h

#includestring.h

int main()

{

 char *p[8][5],*a;

 int i=0,j=0,n;

 a=(char *)malloc(sizeof(char));

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

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

  { 

   printf(“周%d第%d節”,j+1,i+1);

   scanf(“%s”,a);

   p[j][i]=a;

   a=(char *)malloc(sizeof(char));

  }

 printf(“周一\t\t周二\t\t周三\t\t周四\t\t周五\n”);

 for(j=0;j5;j++){

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

  { 

   printf(“%s\t\t”,p[j][i]);

  }

  printf(“\n”);

 }

}

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

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

相關推薦

  • AES加密解密算法的C語言實現

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

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

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

    編程 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
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論