//Data: 2019/3/9 --2019/3/10
//2019/03/13晚 更新邮箱功能
//2019/03/14 下午 增加管理员页面
//Name: Range
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
typedef struct Problem
{
char title[1000];
char a[1000];
char b[1000];
char c[1000];
char d[1000];
char answer;
}Pro;
typedef struct Grade
{
int id;
char name[20];
int t;
int f;
float gra;
}Gra;
typedef struct User
{
int ID;
char name[20];
char password[20];
}Use;
typedef struct mail
{
int addressee;
char addresseeName[20];
int sender;
char senderName[20];
char text[10000];
int read;
}Mail;
Use allUser[1000];
Use user;
Pro problem[1000];
Gra grade[1000];
Mail mails[10000];
int n = 0, a = 0, b = 0, ma = 0;
void OpenFile();//打开文件
void SaveFile();//保存文件
int LoginPage();//登陆页面
void menu();//主菜单
void menu2();//二级菜单
int search(int id);//查询账号
void reg();//注册账号
void design();//出题系统
void check();//查看题库
void del();//删除题目
void alter();//修改题目
void revision();//修改密码
void exam();//考试模块
void examgrade();//考查看成绩
void rank();//查询排名
void sender();//发送邮件
void senderMenu();//发送邮件菜单
void addresseeMenu();//收邮件菜单
void unread();//查看未读邮件
void read();//查看已读邮件
void readsender();//查看发送邮件
void AdministratorMenu();//管理员界面
void AccountShows();//账户显示
void AccountQuery();//账户查询
void MailShow();//显示邮件
void ChangePassword();//管理员修改密码
int main()
{
int i, t = 0;
OpenFile();
a: menu();
printf("\n\n*请输入您选择的功能:");
scanf("%d", &i);
system("CLS");
switch(i)
{
case 1:
reg();
system("CLS");
goto a;
break;
case 2:
t = LoginPage();
if(t == 0)
goto a;
break;
default:
printf("\a\a\n *您输入的选项错误请重新输入 :)\n\n");
system("pause");
goto a;
}
while(1)
{
system("CLS");
menu2();
b: printf("\n\n*请输入您选择的功能:");
scanf("%d", &i);
getchar();
system("CLS");
switch(i)
{
case 1:
exam();
break;
case 2:
examgrade();
break;
case 3:
rank();
break;
case 4:
revision();
break;
case 5:
design();
break;
case 6:
check();
break;
case 7:
del();
break;
case 8:
alter();
break;
case 9:
senderMenu();
break;
case 10:
addresseeMenu();
break;
case 0:
SaveFile();
printf("\n *数据保存成功:)\n");
printf("\n *期待您的下次使用:)\n\n");
system("pause");
return 0;
default:
printf("\a\a\n*您输入的选项错误请重新输入 :)\n\n");
system("pause");
goto b;
}
}
}
void menu()//主菜单
{
printf("\n ************************考试系统*************************\n");
printf(" * 1.账号注册 2.账号登陆 *\n");
printf(" *********************************************************\n");
}
void menu2()//二级菜单
{
printf("\n *************************菜单****************************\n");
printf(" * 1.我要考试 2.查询成绩 *\n");
printf(" * 3.成绩排名 4.修改密码 *\n");
printf(" * 5.我要出题 6.查看题库 *\n");
printf(" * 7.删除题目 8.修改题目 *\n");
printf(" * 9.发送邮件 10.收件箱 *\n");
printf(" * 0.退出系统 *\n");
printf(" *********************************************************\n");
printf("\n*%s 同学您好,欢迎登陆本答题系统 :) 您的登陆ID为:%d\n", user.name, user.ID);
}
void reg()//注册账号
{
char key[20];
int t;
printf("\n ************************注册页面*************************\n");
printf(" *请输入您的name: ");
scanf("%s", &allUser[n].name);
printf(" *\n");
printf(" *请输入您的password: ");
scanf("%s", &allUser[n].password);
do
{
printf(" *请再次输入您的password: ");
scanf("%s", &key);
if(strcmp(key, allUser[n].password) == 0)
t = 0;
else
{
t = 1;
printf(" *您输入的密码错误,请重新输入 :) \n");
}
}while(t == 1);
printf(" *\n");
printf(" *注册成功!\n");
allUser[n].ID = n + 1000;
printf(" *\n");
printf(" *您的ID: %d\n", allUser[n].ID);
system("pause");
n++;
}
int LoginPage()//登陆页面
{
int t;
char key[20];
printf("\n ************************登陆页面*************************\n");
printf(" *请输入您的ID: ");
scanf("%d", &user.ID);
if(user.ID == 101)//判断是否为管理员
{
do
{
printf(" *请输入您的password: ");
scanf("%s", &key);
if(strcmp(key, "54759") == 0)
t = 0;
else
{
t = 1;
printf(" *您输入的密码错误,请重新输入 :) \n");
}
}while(t == 1);
system("CLS");
AdministratorMenu();
system("CLS");
return 0;
}
getchar();
printf(" *\n");
t = search(user.ID);
if(!t)
{
printf(" *您输入的账号未注册,请注册账号后再次使用本程序 :) \n");
return 0;
}
do
{
printf(" *请输入您的password: ");
scanf("%s", &key);
if(strcmp(key, user.password) == 0)
t = 0;
else
{
t = 1;
printf(" *您输入的密码错误,请重新输入 :) \n");
}
}while(t == 1);
return 1;
}
int search(int id)//查询账号
{
int i;
for(i = 0; i < n; i++)
if(allUser[i].ID == id)
break;
if(i == n)
return 0;
else
{
user = allUser[i];
return 1;
}
}
void exam()//考试模块
{
int book[1000] = {0};
int i, t, num;
char key;
printf("\n *本系统题库共有 %d 道题目\n\n", a);
printf(" *请输入您要测试的题数 :");
scanf("%d", &t);
getchar();
printf("\n *您准备好了吗?考试即将开始!祝您有个好成绩 :)\n\n");
grade[b].id = user.ID;
strcpy(grade[b].name, user.name);
system("pause");
system("CLS");
printf("\n ***ps.请注意,所有答案均需要填大写。否则,系统将认为您的答案错误!\n***");
for(i = 0; i < t; i++)
{
srand(time(NULL)); //设置随机种子
num = rand() % a;//随机生成数字
if(book[num] == 1)
{
i--;
continue;
}
book[num] = 1;
printf("\nNo.%d\n", i + 1);
printf("Title:\n");
printf("%s\n", problem[num].title);
printf(" A:%s\n", problem[num].a);
printf(" B:%s\n", problem[num].b);
printf(" C:%s\n", problem[num].c);
printf(" D:%s\n", problem[num].d);
printf("请输入您的答案:");
key = getchar();
getchar();
if(key == problem[num].answer)
{
grade[b].t++;
printf("回答正确!!!\n\n");
}
else
{
grade[b].f++;
printf("回答错误... :( \n");
printf("正确答案是 %c\n\n", problem[num].answer);
}
}
grade[b].gra = (float)grade[b].t / t * 100;
printf(" ***本次考试结束... 您的正确率为 %.2f%% !***\n\n", grade[b].gra);
b++;
system("pause");
}
void examgrade()//考查看成绩
{
int i, t = 0;
printf("\n 参考人员 正确个数 错误个数 正确率\n");
for(i = 0; i < b; i++)
{
if(grade[i].id != user.ID)
continue;
t++;
printf("%d. %6s %6d %6d %4.2f%%\n", t, grade[i].name, grade[i].t, grade[i].f, grade[i].gra);
}
printf("\n\n ***以上是您的所有考试成绩,即将跳转回主页面 :) ***\n\n");
system("pause");
}
void rank()//查询排名
{
int i, j;
Gra temp;
for(i = 0; i < b; i++)
for(j = i + 1; j < b; j++)
if(grade[i].gra < grade[j].gra)
{
temp = grade[i];
grade[i] = grade[j];
grade[j] = temp;
}
printf(" ***目前所有用户共进行过 %d 次测试,以下是所有排名 :) ***\n", b);
printf("\n 参考人员 正确个数 错误个数 正确率\n");
for(i = 0; i < b; i++)
printf("%d. %6s %6d %6d %4.2f%%\n", i + 1, grade[i].name, grade[i].t, grade[i].f, grade[i].gra);
printf("\n\n ***以上是您的所有考试成绩,即将跳转回主页面 :) ***\n\n");
system("pause");
}
void design()//出题系统
{
printf("\n*请输入题目:\n");
gets(problem[a].title);
printf("*\n*请输入A选项:\n");
gets(problem[a].a);
printf("*\n*请输入B选项:\n");
gets(problem[a].b);
printf("*\n*请输入C选项:\n");
gets(problem[a].
没有合适的资源?快使用搜索试试~ 我知道了~
C语言实现考试管理系统,优秀毕业设计,小白必看!
共6个文件
dat:4个
exe:1个
c:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 32 浏览量
2023-04-27
14:30:43
上传
评论 1
收藏 28KB ZIP 举报
温馨提示
本项目分为学生端和管理端 学生端:注册、登录、答题、排名、发邮件、收邮件、题目的增删改查…… 管理端:查询修改用户、查询邮箱…… 本项目功能很丰富。 管理端:直接输入账号:101,密码:54759 即可登录成功。
资源推荐
资源详情
资源评论
收起资源包目录
examination-system.zip (6个子文件)
examination-system
demonstration program
成绩信息data.dat 0B
邮件信息data.dat 0B
考试系统.exe 65KB
用户信息data.dat 0B
题库信息data.dat 54KB
code
考试系统.c 24KB
共 6 条
- 1
资源评论
- xushaohui0982024-01-01资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
- 苟着吧2023-07-04资源内容详尽,对我有使用价值,谢谢资源主的分享。
振华OPPO
- 粉丝: 28w+
- 资源: 534
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 卡方数据.sav
- Python实现基于Django框架的二手物品购物网站设计源码+数据库.zip
- 基于Python和Django的二手物品购物网站设计源码+数据库脚本.zip
- 【计算机毕业设计】基于h5的移动网赚项目小程序【源码+lw+部署文档+讲解】
- 【计算机毕业设计】基于ssm-vue的oa系统设计与实现【源码+lw+部署文档+讲解】
- 基于pytorch实现的YOLOV5+SORT的车辆行人目标识别及追踪系统源码.zip
- 【计算机毕业设计】基于servlet+jdbc的在线选房系统设计与实现【源码+lw+部署文档+讲解】
- 投身科技创新,勇担时代先锋.pptx
- 【计算机毕业设计】基于SSM的仿微博系统的设计与实现【源码+lw+部署文档+讲解】
- 使用 Web Components 实现,遵循 Material You 设计规范的 Web 前端组件库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功