Ⅰ C語言編一個課表查詢
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
struct classlist
{
char time[12];
char kecheng[10];
classlist *next;
};
void main()
{
classlist *head=(classlist *)malloc(sizeof(classlist));
head->next=NULL;
for(int i=0;i<3;i++)
{
classlist *s=(classlist *)malloc(sizeof(classlist));
s->next=head->next;
head->next=s;
if(i==0)
{
strcpy(s->time,"9:00-10:00");
strcpy(s->kecheng,"英語");
}
else if(i==1)
{
strcpy(s->time,"10:00-11:00");
strcpy(s->kecheng,"數學");
}
else if(i==2)
{
strcpy(s->time,"11:00-12:00");
strcpy(s->kecheng,"語文");
}
}
printf("請輸入時間(格式: 9:00-10:00)");
char time1[12];
scanf("%s",time1);
while(head->next!=NULL)
{
if(strcmp(head->next->time,time1)==0)
{
printf("%s",head->next->kecheng);
break;
}
else
head=head->next;
}
}
Ⅱ 用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>
#include<string.h>
intmain()
{
char*p[8][5],*a;
inti=0,j=0,n;
a=(char*)malloc(sizeof(char));
for(j=0;j<5;j++)
for(i=0;i<8;i++)
{
printf("周%d第%d節",j+1,i+1);
scanf("%s",a);
p[j][i]=a;
a=(char*)malloc(sizeof(char));
}
printf("周一 周二 周三 周四 周五 ");
for(j=0;j<5;j++){
for(i=0;i<8;i++)
{
printf("%s ",p[j][i]);
}
printf(" ");
}
}
Ⅲ 利用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; i<8; 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; i<n; 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; i<n; i++)
for (j=i+1; j<n; 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; i<n; 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; i<n; i++)
if (student[i].StudentID == k)
if (m == 1)
Ⅳ 求救!!!用C語言編一個課程表
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain()
{
char*p[8][5],*a;
inti=0,j=0,n;
a=(char*)malloc(sizeof(char));
for(j=0;j<5;j++)
for(i=0;i<8;i++)
{
printf("周%d第%d節",j+1,i+1);
scanf("%s",a);
p[j][i]=a;
a=(char*)malloc(sizeof(char));
}
printf("周一 周二 周三 周四 周五 ");
for(j=0;j<5;j++){
for(i=0;i<8;i++)
{
printf("%s ",p[j][i]);
}
printf(" ");
}
}